/*!
 * pixi.js - v4.5.3
 * Compiled Wed, 14 Jun 2017 20:12:21 UTC
 *
 * pixi.js is licensed under the MIT License.
 * http://www.opensource.org/licenses/mit-license
 */

/**
 * isMobile.js v0.4.0
 *
 * A simple library to detect Apple phones and tablets,
 * Android phones and tablets, other mobile devices (like blackberry, mini-opera and windows phone),
 * and any kind of seven inch device, via user agent sniffing.
 *
 * @author: Kai Mallea (kmallea@gmail.com)
 *
 * @license: http://creativecommons.org/publicdomain/zero/1.0/
 */

/*
object-assign
(c) Sindre Sorhus
@license MIT
*/

// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

/*! https://mths.be/punycode v1.4.1 by @mathias */

/**
 * The height of the top row (c)
 *
 * @member {number}
 * @memberof PIXI.NineSlicePlane#
 * @override
 */

/**
 * @license
 * lodash 3.10.1 (Custom Build) <https://lodash.com/>
 * Build: `lodash compat exports="amd" -d -o /rdisks/sf-netapp01-jenkinbuild/workspace/SkateboardPlatform-MessageBus-mainline/target/checkout/target/messagebus/lodash.js include="main,after,arraySome,debounce,createForEach,arrayEach,baseEach,baseAssign,arrayFilter,isEqual,keys,arrayMap,throttle,root,isObject,now,bindCallback,isArray,baseForOwn,createBaseEach,baseCopy,baseIsEqual,getNative,isArrayLike,shimKeys,each,extend,bind,reduce,defaults,map,any,filter,find,contains,clone,without,cloneDeep,isPlainObject"`
 * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 * Available under MIT license <https://lodash.com/license>
 */

/*!
 *
 * Copyright 2009-2012 Kris Kowal under the terms of the MIT
 * license found at http://github.com/kriskowal/q/raw/master/LICENSE
 *
 * With parts by Tyler Close
 * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found
 * at http://www.opensource.org/licenses/mit-license.html
 * Forked at ref_send.js version: 2009-05-11
 *
 * With parts by Mark Miller
 * Copyright (C) 2011 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

//     Underscore.js 1.8.3
//     http://underscorejs.org
//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
//     Underscore may be freely distributed under the MIT license.

/**
 * riveter - Mix-in, inheritance and constructor extend behavior for your JavaScript enjoyment.
 * © 2012 - Copyright appendTo, LLC 
 * Author(s): Jim Cowart, Nicholas Cloud, Doug Neiner
 * Version: v0.1.2
 * Url: https://github.com/a2labs/riveter
 * License(s): MIT
 */

/**
 * Fast UUID generator, RFC4122 version 4 compliant.
 * @author Jeff Ward (jcward.com).
 * @license MIT license
 * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
 **/

! function() {
    define("skbJet/component/gameMsgBus/GameMsgBus", [], function() {
            function t(t) {
                setTimeout(function() {
                    r.publish("error", {
                        errorCode: "GM-003",
                        message: "" + t
                    })
                }, 3)
            }

            function e(t, e) {
                setTimeout(function() {
                    e(t)
                }, 0)
            }
            var n = {},
                r = {};
            return r.subscribe = function(t, e) {
                if (!t) return r;
                if (!e) return r;
                var i = n[t];
                return i || (i = [], n[t] = i), i.indexOf(e) < 0 && i.push(e), r
            }, r.unsubscribe = function(t, e) {
                var i = n[t];
                if (i) {
                    var o = i.indexOf(e);
                    o >= 0 && i.splice(o, 1)
                }
                return r
            }, r.publish = function(i, o, a) {
                var s = n[i];
                if (!s) return r;
                for (var u = 0; u < s.length; u++) try {
                    a ? e(o, s[u]) : s[u](o)
                } catch (e) {
                    t(e)
                }
                return r
            }, r
        }),
        function(t) {
            if ("object" == typeof exports && "undefined" != typeof module) module.exports = t();
            else if ("function" == typeof define && define.amd) define("com/pixijs/pixi", [], t);
            else {
                var e;
                e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, e.PIXI = t()
            }
        }(function() {
            var t;
            return function t(e, n, r) {
                function i(a, s) {
                    if (!n[a]) {
                        if (!e[a]) {
                            var u = "function" == typeof require && require;
                            if (!s && u) return u(a, !0);
                            if (o) return o(a, !0);
                            var l = new Error("Cannot find module '" + a + "'");
                            throw l.code = "MODULE_NOT_FOUND", l
                        }
                        var c = n[a] = {
                            exports: {}
                        };
                        e[a][0].call(c.exports, function(t) {
                            var n = e[a][1][t];
                            return i(n || t)
                        }, c, c.exports, t, e, n, r)
                    }
                    return n[a].exports
                }
                for (var o = "function" == typeof require && require, a = 0; a < r.length; a++) i(r[a]);
                return i
            }({
                1: [function(t, e, n) {
                    "use restrict";

                    function r(t) {
                        var e = 32;
                        return t &= -t, t && e--, 65535 & t && (e -= 16), 16711935 & t && (e -= 8), 252645135 & t && (e -= 4), 858993459 & t && (e -= 2), 1431655765 & t && (e -= 1), e
                    }
                    n.INT_BITS = 32, n.INT_MAX = 2147483647, n.INT_MIN = -1 << 31, n.sign = function(t) {
                        return (t > 0) - (t < 0)
                    }, n.abs = function(t) {
                        var e = t >> 31;
                        return (t ^ e) - e
                    }, n.min = function(t, e) {
                        return e ^ (t ^ e) & -(t < e)
                    }, n.max = function(t, e) {
                        return t ^ (t ^ e) & -(t < e)
                    }, n.isPow2 = function(t) {
                        return !(t & t - 1 || !t)
                    }, n.log2 = function(t) {
                        var e, n;
                        return e = (t > 65535) << 4, t >>>= e, n = (t > 255) << 3, t >>>= n, e |= n, n = (t > 15) << 2, t >>>= n, e |= n, n = (t > 3) << 1, t >>>= n, (e |= n) | t >> 1
                    }, n.log10 = function(t) {
                        return t >= 1e9 ? 9 : t >= 1e8 ? 8 : t >= 1e7 ? 7 : t >= 1e6 ? 6 : t >= 1e5 ? 5 : t >= 1e4 ? 4 : t >= 1e3 ? 3 : t >= 100 ? 2 : t >= 10 ? 1 : 0
                    }, n.popCount = function(t) {
                        return t -= t >>> 1 & 1431655765, 16843009 * ((t = (858993459 & t) + (t >>> 2 & 858993459)) + (t >>> 4) & 252645135) >>> 24
                    }, n.countTrailingZeros = r, n.nextPow2 = function(t) {
                        return t += 0 === t, --t, t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, (t |= t >>> 16) + 1
                    }, n.prevPow2 = function(t) {
                        return t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, (t |= t >>> 16) - (t >>> 1)
                    }, n.parity = function(t) {
                        return t ^= t >>> 16, t ^= t >>> 8, t ^= t >>> 4, 27030 >>> (t &= 15) & 1
                    };
                    var i = new Array(256);
                    ! function(t) {
                        for (var e = 0; e < 256; ++e) {
                            var n = e,
                                r = e,
                                i = 7;
                            for (n >>>= 1; n; n >>>= 1) r <<= 1, r |= 1 & n, --i;
                            t[e] = r << i & 255
                        }
                    }(i), n.reverse = function(t) {
                        return i[255 & t] << 24 | i[t >>> 8 & 255] << 16 | i[t >>> 16 & 255] << 8 | i[t >>> 24 & 255]
                    }, n.interleave2 = function(t, e) {
                        return t &= 65535, t = 16711935 & (t | t << 8), t = 252645135 & (t | t << 4), t = 858993459 & (t | t << 2), t = 1431655765 & (t | t << 1), e &= 65535, e = 16711935 & (e | e << 8), e = 252645135 & (e | e << 4), e = 858993459 & (e | e << 2), e = 1431655765 & (e | e << 1), t | e << 1
                    }, n.deinterleave2 = function(t, e) {
                        return t = t >>> e & 1431655765, t = 858993459 & (t | t >>> 1), t = 252645135 & (t | t >>> 2), t = 16711935 & (t | t >>> 4), (t = 65535 & (t | t >>> 16)) << 16 >> 16
                    }, n.interleave3 = function(t, e, n) {
                        return t &= 1023, t = 4278190335 & (t | t << 16), t = 251719695 & (t | t << 8), t = 3272356035 & (t | t << 4), t = 1227133513 & (t | t << 2), e &= 1023, e = 4278190335 & (e | e << 16), e = 251719695 & (e | e << 8), e = 3272356035 & (e | e << 4), e = 1227133513 & (e | e << 2), t |= e << 1, n &= 1023, n = 4278190335 & (n | n << 16), n = 251719695 & (n | n << 8), n = 3272356035 & (n | n << 4), n = 1227133513 & (n | n << 2), t | n << 2
                    }, n.deinterleave3 = function(t, e) {
                        return t = t >>> e & 1227133513, t = 3272356035 & (t | t >>> 2), t = 251719695 & (t | t >>> 4), t = 4278190335 & (t | t >>> 8), (t = 1023 & (t | t >>> 16)) << 22 >> 22
                    }, n.nextCombination = function(t) {
                        var e = t | t - 1;
                        return e + 1 | (~e & -~e) - 1 >>> r(t) + 1
                    }
                }, {}],
                2: [function(t, e, n) {
                    "use strict";

                    function r(t, e, n) {
                        n = n || 2;
                        var r = e && e.length,
                            o = r ? e[0] * n : t.length,
                            s = i(t, 0, o, n, !0),
                            u = [];
                        if (!s) return u;
                        var l, c, d, f, p, g, m;
                        if (r && (s = h(t, e, s, n)), t.length > 80 * n) {
                            l = d = t[0], c = f = t[1];
                            for (var y = n; y < o; y += n) p = t[y], g = t[y + 1], p < l && (l = p), g < c && (c = g), p > d && (d = p), g > f && (f = g);
                            m = Math.max(d - l, f - c)
                        }
                        return a(s, u, n, l, c, m), u
                    }

                    function i(t, e, n, r, i) {
                        var o, a;
                        if (i === M(t, e, n, r) > 0)
                            for (o = e; o < n; o += r) a = P(o, t[o], t[o + 1], a);
                        else
                            for (o = n - r; o >= e; o -= r) a = P(o, t[o], t[o + 1], a);
                        return a && T(a, a.next) && (A(a), a = a.next), a
                    }

                    function o(t, e) {
                        if (!t) return t;
                        e || (e = t);
                        var n, r = t;
                        do {
                            if (n = !1, r.steiner || !T(r, r.next) && 0 !== x(r.prev, r, r.next)) r = r.next;
                            else {
                                if (A(r), (r = e = r.prev) === r.next) return null;
                                n = !0
                            }
                        } while (n || r !== e);
                        return e
                    }

                    function a(t, e, n, r, i, h, d) {
                        if (t) {
                            !d && h && g(t, r, i, h);
                            for (var f, p, m = t; t.prev !== t.next;)
                                if (f = t.prev, p = t.next, h ? u(t, r, i, h) : s(t)) e.push(f.i / n), e.push(t.i / n), e.push(p.i / n), A(t), t = p.next, m = p.next;
                                else if ((t = p) === m) {
                                d ? 1 === d ? (t = l(t, e, n), a(t, e, n, r, i, h, 2)) : 2 === d && c(t, e, n, r, i, h) : a(o(t), e, n, r, i, h, 1);
                                break
                            }
                        }
                    }

                    function s(t) {
                        var e = t.prev,
                            n = t,
                            r = t.next;
                        if (x(e, n, r) >= 0) return !1;
                        for (var i = t.next.next; i !== t.prev;) {
                            if (v(e.x, e.y, n.x, n.y, r.x, r.y, i.x, i.y) && x(i.prev, i, i.next) >= 0) return !1;
                            i = i.next
                        }
                        return !0
                    }

                    function u(t, e, n, r) {
                        var i = t.prev,
                            o = t,
                            a = t.next;
                        if (x(i, o, a) >= 0) return !1;
                        for (var s = i.x < o.x ? i.x < a.x ? i.x : a.x : o.x < a.x ? o.x : a.x, u = i.y < o.y ? i.y < a.y ? i.y : a.y : o.y < a.y ? o.y : a.y, l = i.x > o.x ? i.x > a.x ? i.x : a.x : o.x > a.x ? o.x : a.x, c = i.y > o.y ? i.y > a.y ? i.y : a.y : o.y > a.y ? o.y : a.y, h = y(s, u, e, n, r), d = y(l, c, e, n, r), f = t.nextZ; f && f.z <= d;) {
                            if (f !== t.prev && f !== t.next && v(i.x, i.y, o.x, o.y, a.x, a.y, f.x, f.y) && x(f.prev, f, f.next) >= 0) return !1;
                            f = f.nextZ
                        }
                        for (f = t.prevZ; f && f.z >= h;) {
                            if (f !== t.prev && f !== t.next && v(i.x, i.y, o.x, o.y, a.x, a.y, f.x, f.y) && x(f.prev, f, f.next) >= 0) return !1;
                            f = f.prevZ
                        }
                        return !0
                    }

                    function l(t, e, n) {
                        var r = t;
                        do {
                            var i = r.prev,
                                o = r.next.next;
                            !T(i, o) && w(i, r, r.next, o) && C(i, o) && C(o, i) && (e.push(i.i / n), e.push(r.i / n), e.push(o.i / n), A(r), A(r.next), r = t = o), r = r.next
                        } while (r !== t);
                        return r
                    }

                    function c(t, e, n, r, i, s) {
                        var u = t;
                        do {
                            for (var l = u.next.next; l !== u.prev;) {
                                if (u.i !== l.i && _(u, l)) {
                                    var c = O(u, l);
                                    return u = o(u, u.next), c = o(c, c.next), a(u, e, n, r, i, s), void a(c, e, n, r, i, s)
                                }
                                l = l.next
                            }
                            u = u.next
                        } while (u !== t)
                    }

                    function h(t, e, n, r) {
                        var a, s, u, l, c, h = [];
                        for (a = 0, s = e.length; a < s; a++) u = e[a] * r, l = a < s - 1 ? e[a + 1] * r : t.length, c = i(t, u, l, r, !1), c === c.next && (c.steiner = !0), h.push(b(c));
                        for (h.sort(d), a = 0; a < h.length; a++) f(h[a], n), n = o(n, n.next);
                        return n
                    }

                    function d(t, e) {
                        return t.x - e.x
                    }

                    function f(t, e) {
                        if (e = p(t, e)) {
                            var n = O(e, t);
                            o(n, n.next)
                        }
                    }

                    function p(t, e) {
                        var n, r = e,
                            i = t.x,
                            o = t.y,
                            a = -1 / 0;
                        do {
                            if (o <= r.y && o >= r.next.y) {
                                var s = r.x + (o - r.y) * (r.next.x - r.x) / (r.next.y - r.y);
                                if (s <= i && s > a) {
                                    if (a = s, s === i) {
                                        if (o === r.y) return r;
                                        if (o === r.next.y) return r.next
                                    }
                                    n = r.x < r.next.x ? r : r.next
                                }
                            }
                            r = r.next
                        } while (r !== e);
                        if (!n) return null;
                        if (i === a) return n.prev;
                        var u, l = n,
                            c = n.x,
                            h = n.y,
                            d = 1 / 0;
                        for (r = n.next; r !== l;) i >= r.x && r.x >= c && v(o < h ? i : a, o, c, h, o < h ? a : i, o, r.x, r.y) && ((u = Math.abs(o - r.y) / (i - r.x)) < d || u === d && r.x > n.x) && C(r, t) && (n = r, d = u), r = r.next;
                        return n
                    }

                    function g(t, e, n, r) {
                        var i = t;
                        do {
                            null === i.z && (i.z = y(i.x, i.y, e, n, r)), i.prevZ = i.prev, i.nextZ = i.next, i = i.next
                        } while (i !== t);
                        i.prevZ.nextZ = null, i.prevZ = null, m(i)
                    }

                    function m(t) {
                        var e, n, r, i, o, a, s, u, l = 1;
                        do {
                            for (n = t, t = null, o = null, a = 0; n;) {
                                for (a++, r = n, s = 0, e = 0; e < l && (s++, r = r.nextZ); e++);
                                for (u = l; s > 0 || u > 0 && r;) 0 === s ? (i = r, r = r.nextZ, u--) : 0 !== u && r ? n.z <= r.z ? (i = n, n = n.nextZ, s--) : (i = r, r = r.nextZ, u--) : (i = n, n = n.nextZ, s--), o ? o.nextZ = i : t = i, i.prevZ = o, o = i;
                                n = r
                            }
                            o.nextZ = null, l *= 2
                        } while (a > 1);
                        return t
                    }

                    function y(t, e, n, r, i) {
                        return t = 32767 * (t - n) / i, e = 32767 * (e - r) / i, t = 16711935 & (t | t << 8), t = 252645135 & (t | t << 4), t = 858993459 & (t | t << 2), t = 1431655765 & (t | t << 1), e = 16711935 & (e | e << 8), e = 252645135 & (e | e << 4), e = 858993459 & (e | e << 2), e = 1431655765 & (e | e << 1), t | e << 1
                    }

                    function b(t) {
                        var e = t,
                            n = t;
                        do {
                            e.x < n.x && (n = e), e = e.next
                        } while (e !== t);
                        return n
                    }

                    function v(t, e, n, r, i, o, a, s) {
                        return (i - a) * (e - s) - (t - a) * (o - s) >= 0 && (t - a) * (r - s) - (n - a) * (e - s) >= 0 && (n - a) * (o - s) - (i - a) * (r - s) >= 0
                    }

                    function _(t, e) {
                        return t.next.i !== e.i && t.prev.i !== e.i && !S(t, e) && C(t, e) && C(e, t) && E(t, e)
                    }

                    function x(t, e, n) {
                        return (e.y - t.y) * (n.x - e.x) - (e.x - t.x) * (n.y - e.y)
                    }

                    function T(t, e) {
                        return t.x === e.x && t.y === e.y
                    }

                    function w(t, e, n, r) {
                        return !!(T(t, e) && T(n, r) || T(t, r) && T(n, e)) || x(t, e, n) > 0 != x(t, e, r) > 0 && x(n, r, t) > 0 != x(n, r, e) > 0
                    }

                    function S(t, e) {
                        var n = t;
                        do {
                            if (n.i !== t.i && n.next.i !== t.i && n.i !== e.i && n.next.i !== e.i && w(n, n.next, t, e)) return !0;
                            n = n.next
                        } while (n !== t);
                        return !1
                    }

                    function C(t, e) {
                        return x(t.prev, t, t.next) < 0 ? x(t, e, t.next) >= 0 && x(t, t.prev, e) >= 0 : x(t, e, t.prev) < 0 || x(t, t.next, e) < 0
                    }

                    function E(t, e) {
                        var n = t,
                            r = !1,
                            i = (t.x + e.x) / 2,
                            o = (t.y + e.y) / 2;
                        do {
                            n.y > o != n.next.y > o && i < (n.next.x - n.x) * (o - n.y) / (n.next.y - n.y) + n.x && (r = !r), n = n.next
                        } while (n !== t);
                        return r
                    }

                    function O(t, e) {
                        var n = new R(t.i, t.x, t.y),
                            r = new R(e.i, e.x, e.y),
                            i = t.next,
                            o = e.prev;
                        return t.next = e, e.prev = t, n.next = i, i.prev = n, r.next = n, n.prev = r, o.next = r, r.prev = o, r
                    }

                    function P(t, e, n, r) {
                        var i = new R(t, e, n);
                        return r ? (i.next = r.next, i.prev = r, r.next.prev = i, r.next = i) : (i.prev = i, i.next = i), i
                    }

                    function A(t) {
                        t.next.prev = t.prev, t.prev.next = t.next, t.prevZ && (t.prevZ.nextZ = t.nextZ), t.nextZ && (t.nextZ.prevZ = t.prevZ)
                    }

                    function R(t, e, n) {
                        this.i = t, this.x = e, this.y = n, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = !1
                    }

                    function M(t, e, n, r) {
                        for (var i = 0, o = e, a = n - r; o < n; o += r) i += (t[a] - t[o]) * (t[o + 1] + t[a + 1]), a = o;
                        return i
                    }
                    e.exports = r, r.deviation = function(t, e, n, r) {
                        var i = e && e.length,
                            o = i ? e[0] * n : t.length,
                            a = Math.abs(M(t, 0, o, n));
                        if (i)
                            for (var s = 0, u = e.length; s < u; s++) {
                                var l = e[s] * n,
                                    c = s < u - 1 ? e[s + 1] * n : t.length;
                                a -= Math.abs(M(t, l, c, n))
                            }
                        var h = 0;
                        for (s = 0; s < r.length; s += 3) {
                            var d = r[s] * n,
                                f = r[s + 1] * n,
                                p = r[s + 2] * n;
                            h += Math.abs((t[d] - t[p]) * (t[f + 1] - t[d + 1]) - (t[d] - t[f]) * (t[p + 1] - t[d + 1]))
                        }
                        return 0 === a && 0 === h ? 0 : Math.abs((h - a) / a)
                    }, r.flatten = function(t) {
                        for (var e = t[0][0].length, n = {
                                vertices: [],
                                holes: [],
                                dimensions: e
                            }, r = 0, i = 0; i < t.length; i++) {
                            for (var o = 0; o < t[i].length; o++)
                                for (var a = 0; a < e; a++) n.vertices.push(t[i][o][a]);
                            i > 0 && (r += t[i - 1].length, n.holes.push(r))
                        }
                        return n
                    }
                }, {}],
                3: [function(t, e, n) {
                    "use strict";

                    function r() {}

                    function i(t, e, n) {
                        this.fn = t, this.context = e, this.once = n || !1
                    }

                    function o() {
                        this._events = new r, this._eventsCount = 0
                    }
                    var a = Object.prototype.hasOwnProperty,
                        s = "~";
                    Object.create && (r.prototype = Object.create(null), (new r).__proto__ || (s = !1)), o.prototype.eventNames = function() {
                        var t, e, n = [];
                        if (0 === this._eventsCount) return n;
                        for (e in t = this._events) a.call(t, e) && n.push(s ? e.slice(1) : e);
                        return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(t)) : n
                    }, o.prototype.listeners = function(t, e) {
                        var n = s ? s + t : t,
                            r = this._events[n];
                        if (e) return !!r;
                        if (!r) return [];
                        if (r.fn) return [r.fn];
                        for (var i = 0, o = r.length, a = new Array(o); i < o; i++) a[i] = r[i].fn;
                        return a
                    }, o.prototype.emit = function(t, e, n, r, i, o) {
                        var a = s ? s + t : t;
                        if (!this._events[a]) return !1;
                        var u, l, c = this._events[a],
                            h = arguments.length;
                        if (c.fn) {
                            switch (c.once && this.removeListener(t, c.fn, void 0, !0), h) {
                                case 1:
                                    return c.fn.call(c.context), !0;
                                case 2:
                                    return c.fn.call(c.context, e), !0;
                                case 3:
                                    return c.fn.call(c.context, e, n), !0;
                                case 4:
                                    return c.fn.call(c.context, e, n, r), !0;
                                case 5:
                                    return c.fn.call(c.context, e, n, r, i), !0;
                                case 6:
                                    return c.fn.call(c.context, e, n, r, i, o), !0
                            }
                            for (l = 1, u = new Array(h - 1); l < h; l++) u[l - 1] = arguments[l];
                            c.fn.apply(c.context, u)
                        } else {
                            var d, f = c.length;
                            for (l = 0; l < f; l++) switch (c[l].once && this.removeListener(t, c[l].fn, void 0, !0), h) {
                                case 1:
                                    c[l].fn.call(c[l].context);
                                    break;
                                case 2:
                                    c[l].fn.call(c[l].context, e);
                                    break;
                                case 3:
                                    c[l].fn.call(c[l].context, e, n);
                                    break;
                                case 4:
                                    c[l].fn.call(c[l].context, e, n, r);
                                    break;
                                default:
                                    if (!u)
                                        for (d = 1, u = new Array(h - 1); d < h; d++) u[d - 1] = arguments[d];
                                    c[l].fn.apply(c[l].context, u)
                            }
                        }
                        return !0
                    }, o.prototype.on = function(t, e, n) {
                        var r = new i(e, n || this),
                            o = s ? s + t : t;
                        return this._events[o] ? this._events[o].fn ? this._events[o] = [this._events[o], r] : this._events[o].push(r) : (this._events[o] = r, this._eventsCount++), this
                    }, o.prototype.once = function(t, e, n) {
                        var r = new i(e, n || this, !0),
                            o = s ? s + t : t;
                        return this._events[o] ? this._events[o].fn ? this._events[o] = [this._events[o], r] : this._events[o].push(r) : (this._events[o] = r, this._eventsCount++), this
                    }, o.prototype.removeListener = function(t, e, n, i) {
                        var o = s ? s + t : t;
                        if (!this._events[o]) return this;
                        if (!e) return 0 == --this._eventsCount ? this._events = new r : delete this._events[o], this;
                        var a = this._events[o];
                        if (a.fn) a.fn !== e || i && !a.once || n && a.context !== n || (0 == --this._eventsCount ? this._events = new r : delete this._events[o]);
                        else {
                            for (var u = 0, l = [], c = a.length; u < c; u++)(a[u].fn !== e || i && !a[u].once || n && a[u].context !== n) && l.push(a[u]);
                            l.length ? this._events[o] = 1 === l.length ? l[0] : l : 0 == --this._eventsCount ? this._events = new r : delete this._events[o]
                        }
                        return this
                    }, o.prototype.removeAllListeners = function(t) {
                        var e;
                        return t ? (e = s ? s + t : t, this._events[e] && (0 == --this._eventsCount ? this._events = new r : delete this._events[e])) : (this._events = new r, this._eventsCount = 0), this
                    }, o.prototype.off = o.prototype.removeListener, o.prototype.addListener = o.prototype.on, o.prototype.setMaxListeners = function() {
                        return this
                    }, o.prefixed = s, o.EventEmitter = o, void 0 !== e && (e.exports = o)
                }, {}],
                4: [function(e, n, r) {
                    ! function(e) {
                        var r = /iPhone/i,
                            i = /iPod/i,
                            o = /iPad/i,
                            a = /(?=.*\bAndroid\b)(?=.*\bMobile\b)/i,
                            s = /Android/i,
                            u = /(?=.*\bAndroid\b)(?=.*\bSD4930UR\b)/i,
                            l = /(?=.*\bAndroid\b)(?=.*\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\b)/i,
                            c = /IEMobile/i,
                            h = /(?=.*\bWindows\b)(?=.*\bARM\b)/i,
                            d = /BlackBerry/i,
                            f = /BB10/i,
                            p = /Opera Mini/i,
                            g = /(CriOS|Chrome)(?=.*\bMobile\b)/i,
                            m = /(?=.*\bFirefox\b)(?=.*\bMobile\b)/i,
                            y = new RegExp("(?:Nexus 7|BNTV250|Kindle Fire|Silk|GT-P1000)", "i"),
                            b = function(t, e) {
                                return t.test(e)
                            },
                            v = function(t) {
                                var e = t || navigator.userAgent,
                                    n = e.split("[FBAN");
                                if (void 0 !== n[1] && (e = n[0]), n = e.split("Twitter"), void 0 !== n[1] && (e = n[0]), this.apple = {
                                        phone: b(r, e),
                                        ipod: b(i, e),
                                        tablet: !b(r, e) && b(o, e),
                                        device: b(r, e) || b(i, e) || b(o, e)
                                    }, this.amazon = {
                                        phone: b(u, e),
                                        tablet: !b(u, e) && b(l, e),
                                        device: b(u, e) || b(l, e)
                                    }, this.android = {
                                        phone: b(u, e) || b(a, e),
                                        tablet: !b(u, e) && !b(a, e) && (b(l, e) || b(s, e)),
                                        device: b(u, e) || b(l, e) || b(a, e) || b(s, e)
                                    }, this.windows = {
                                        phone: b(c, e),
                                        tablet: b(h, e),
                                        device: b(c, e) || b(h, e)
                                    }, this.other = {
                                        blackberry: b(d, e),
                                        blackberry10: b(f, e),
                                        opera: b(p, e),
                                        firefox: b(m, e),
                                        chrome: b(g, e),
                                        device: b(d, e) || b(f, e) || b(p, e) || b(m, e) || b(g, e)
                                    }, this.seven_inch = b(y, e), this.any = this.apple.device || this.android.device || this.windows.device || this.other.device || this.seven_inch, this.phone = this.apple.phone || this.android.phone || this.windows.phone, this.tablet = this.apple.tablet || this.android.tablet || this.windows.tablet, "undefined" == typeof window) return this
                            },
                            _ = function() {
                                var t = new v;
                                return t.Class = v, t
                            };
                        void 0 !== n && n.exports && "undefined" == typeof window ? n.exports = v : void 0 !== n && n.exports && "undefined" != typeof window ? n.exports = _() : "function" == typeof t && t.amd ? t("isMobile", [], e.isMobile = _()) : e.isMobile = _()
                    }(this)
                }, {}],
                5: [function(t, e, n) {
                    function r(t) {
                        if (null === t || void 0 === t) throw new TypeError("Object.assign cannot be called with null or undefined");
                        return Object(t)
                    }
                    var i = Object.getOwnPropertySymbols,
                        o = Object.prototype.hasOwnProperty,
                        a = Object.prototype.propertyIsEnumerable;
                    e.exports = function() {
                        try {
                            if (!Object.assign) return !1;
                            var t = new String("abc");
                            if (t[5] = "de", "5" === Object.getOwnPropertyNames(t)[0]) return !1;
                            for (var e = {}, n = 0; n < 10; n++) e["_" + String.fromCharCode(n)] = n;
                            if ("0123456789" !== Object.getOwnPropertyNames(e).map(function(t) {
                                    return e[t]
                                }).join("")) return !1;
                            var r = {};
                            return "abcdefghijklmnopqrst".split("").forEach(function(t) {
                                r[t] = t
                            }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, r)).join("")
                        } catch (t) {
                            return !1
                        }
                    }() ? Object.assign : function(t, e) {
                        for (var n, s, u = r(t), l = 1; l < arguments.length; l++) {
                            n = Object(arguments[l]);
                            for (var c in n) o.call(n, c) && (u[c] = n[c]);
                            if (i) {
                                s = i(n);
                                for (var h = 0; h < s.length; h++) a.call(n, s[h]) && (u[s[h]] = n[s[h]])
                            }
                        }
                        return u
                    }
                }, {}],
                6: [function(t, e, n) {
                    var r = new ArrayBuffer(0),
                        i = function(t, e, n, i) {
                            this.gl = t, this.buffer = t.createBuffer(), this.type = e || t.ARRAY_BUFFER, this.drawType = i || t.STATIC_DRAW, this.data = r, n && this.upload(n)
                        };
                    i.prototype.upload = function(t, e, n) {
                        n || this.bind();
                        var r = this.gl;
                        t = t || this.data, e = e || 0, this.data.byteLength >= t.byteLength ? r.bufferSubData(this.type, e, t) : r.bufferData(this.type, t, this.drawType), this.data = t
                    }, i.prototype.bind = function() {
                        this.gl.bindBuffer(this.type, this.buffer)
                    }, i.createVertexBuffer = function(t, e, n) {
                        return new i(t, t.ARRAY_BUFFER, e, n)
                    }, i.createIndexBuffer = function(t, e, n) {
                        return new i(t, t.ELEMENT_ARRAY_BUFFER, e, n)
                    }, i.create = function(t, e, n, r) {
                        return new i(t, e, n, r)
                    }, i.prototype.destroy = function() {
                        this.gl.deleteBuffer(this.buffer)
                    }, e.exports = i
                }, {}],
                7: [function(t, e, n) {
                    var r = t("./GLTexture"),
                        i = function(t, e, n) {
                            this.gl = t, this.framebuffer = t.createFramebuffer(), this.stencil = null, this.texture = null, this.width = e || 100, this.height = n || 100
                        };
                    i.prototype.enableTexture = function(t) {
                        var e = this.gl;
                        this.texture = t || new r(e), this.texture.bind(), this.bind(), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0, e.TEXTURE_2D, this.texture.texture, 0)
                    }, i.prototype.enableStencil = function() {
                        if (!this.stencil) {
                            var t = this.gl;
                            this.stencil = t.createRenderbuffer(), t.bindRenderbuffer(t.RENDERBUFFER, this.stencil), t.framebufferRenderbuffer(t.FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, t.RENDERBUFFER, this.stencil), t.renderbufferStorage(t.RENDERBUFFER, t.DEPTH_STENCIL, this.width, this.height)
                        }
                    }, i.prototype.clear = function(t, e, n, r) {
                        this.bind();
                        var i = this.gl;
                        i.clearColor(t, e, n, r), i.clear(i.COLOR_BUFFER_BIT)
                    }, i.prototype.bind = function() {
                        var t = this.gl;
                        t.bindFramebuffer(t.FRAMEBUFFER, this.framebuffer)
                    }, i.prototype.unbind = function() {
                        var t = this.gl;
                        t.bindFramebuffer(t.FRAMEBUFFER, null)
                    }, i.prototype.resize = function(t, e) {
                        var n = this.gl;
                        this.width = t, this.height = e, this.texture && this.texture.uploadData(null, t, e), this.stencil && (n.bindRenderbuffer(n.RENDERBUFFER, this.stencil), n.renderbufferStorage(n.RENDERBUFFER, n.DEPTH_STENCIL, t, e))
                    }, i.prototype.destroy = function() {
                        var t = this.gl;
                        this.texture && this.texture.destroy(), t.deleteFramebuffer(this.framebuffer), this.gl = null, this.stencil = null, this.texture = null
                    }, i.createRGBA = function(t, e, n, o) {
                        var a = r.fromData(t, null, e, n);
                        a.enableNearestScaling(), a.enableWrapClamp();
                        var s = new i(t, e, n);
                        return s.enableTexture(a), s.unbind(), s
                    }, i.createFloat32 = function(t, e, n, o) {
                        var a = new r.fromData(t, o, e, n);
                        a.enableNearestScaling(), a.enableWrapClamp();
                        var s = new i(t, e, n);
                        return s.enableTexture(a), s.unbind(), s
                    }, e.exports = i
                }, {
                    "./GLTexture": 9
                }],
                8: [function(t, e, n) {
                    var r = t("./shader/compileProgram"),
                        i = t("./shader/extractAttributes"),
                        o = t("./shader/extractUniforms"),
                        a = t("./shader/generateUniformAccessObject"),
                        s = function(t, e, n) {
                            this.gl = t, this.program = r(t, e, n), this.attributes = i(t, this.program);
                            var s = o(t, this.program);
                            this.uniforms = a(t, s)
                        };
                    s.prototype.bind = function() {
                        this.gl.useProgram(this.program)
                    }, s.prototype.destroy = function() {}, e.exports = s
                }, {
                    "./shader/compileProgram": 14,
                    "./shader/extractAttributes": 16,
                    "./shader/extractUniforms": 17,
                    "./shader/generateUniformAccessObject": 18
                }],
                9: [function(t, e, n) {
                    var r = function(t, e, n, r, i) {
                        this.gl = t, this.texture = t.createTexture(), this.mipmap = !1, this.premultiplyAlpha = !1, this.width = e || -1, this.height = n || -1, this.format = r || t.RGBA, this.type = i || t.UNSIGNED_BYTE
                    };
                    r.prototype.upload = function(t) {
                        this.bind();
                        var e = this.gl;
                        e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);
                        var n = t.videoWidth || t.width,
                            r = t.videoHeight || t.height;
                        r !== this.height || n !== this.width ? e.texImage2D(e.TEXTURE_2D, 0, this.format, this.format, this.type, t) : e.texSubImage2D(e.TEXTURE_2D, 0, 0, 0, this.format, this.type, t), this.width = n, this.height = r
                    };
                    var i = !1;
                    r.prototype.uploadData = function(t, e, n) {
                        this.bind();
                        var r = this.gl;
                        if (t instanceof Float32Array) {
                            if (!i) {
                                if (!r.getExtension("OES_texture_float")) throw new Error("floating point textures not available");
                                i = !0
                            }
                            this.type = r.FLOAT
                        } else this.type = r.UNSIGNED_BYTE;
                        r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha), e !== this.width || n !== this.height ? r.texImage2D(r.TEXTURE_2D, 0, this.format, e, n, 0, this.format, this.type, t || null) : r.texSubImage2D(r.TEXTURE_2D, 0, 0, 0, e, n, this.format, this.type, t || null), this.width = e, this.height = n
                    }, r.prototype.bind = function(t) {
                        var e = this.gl;
                        void 0 !== t && e.activeTexture(e.TEXTURE0 + t), e.bindTexture(e.TEXTURE_2D, this.texture)
                    }, r.prototype.unbind = function() {
                        var t = this.gl;
                        t.bindTexture(t.TEXTURE_2D, null)
                    }, r.prototype.minFilter = function(t) {
                        var e = this.gl;
                        this.bind(), this.mipmap ? e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, t ? e.LINEAR_MIPMAP_LINEAR : e.NEAREST_MIPMAP_NEAREST) : e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, t ? e.LINEAR : e.NEAREST)
                    }, r.prototype.magFilter = function(t) {
                        var e = this.gl;
                        this.bind(), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, t ? e.LINEAR : e.NEAREST)
                    }, r.prototype.enableMipmap = function() {
                        var t = this.gl;
                        this.bind(), this.mipmap = !0, t.generateMipmap(t.TEXTURE_2D)
                    }, r.prototype.enableLinearScaling = function() {
                        this.minFilter(!0), this.magFilter(!0)
                    }, r.prototype.enableNearestScaling = function() {
                        this.minFilter(!1), this.magFilter(!1)
                    }, r.prototype.enableWrapClamp = function() {
                        var t = this.gl;
                        this.bind(), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE)
                    }, r.prototype.enableWrapRepeat = function() {
                        var t = this.gl;
                        this.bind(), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.REPEAT), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.REPEAT)
                    }, r.prototype.enableWrapMirrorRepeat = function() {
                        var t = this.gl;
                        this.bind(), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.MIRRORED_REPEAT), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.MIRRORED_REPEAT)
                    }, r.prototype.destroy = function() {
                        this.gl.deleteTexture(this.texture)
                    }, r.fromSource = function(t, e, n) {
                        var i = new r(t);
                        return i.premultiplyAlpha = n || !1, i.upload(e), i
                    }, r.fromData = function(t, e, n, i) {
                        var o = new r(t);
                        return o.uploadData(e, n, i), o
                    }, e.exports = r
                }, {}],
                10: [function(t, e, n) {
                    function r(t, e) {
                        if (this.nativeVaoExtension = null, r.FORCE_NATIVE || (this.nativeVaoExtension = t.getExtension("OES_vertex_array_object") || t.getExtension("MOZ_OES_vertex_array_object") || t.getExtension("WEBKIT_OES_vertex_array_object")), this.nativeState = e, this.nativeVaoExtension) {
                            this.nativeVao = this.nativeVaoExtension.createVertexArrayOES();
                            var n = t.getParameter(t.MAX_VERTEX_ATTRIBS);
                            this.nativeState = {
                                tempAttribState: new Array(n),
                                attribState: new Array(n)
                            }
                        }
                        this.gl = t, this.attributes = [], this.indexBuffer = null, this.dirty = !1
                    }
                    var i = t("./setVertexAttribArrays");
                    r.prototype.constructor = r, e.exports = r, r.FORCE_NATIVE = !1, r.prototype.bind = function() {
                        return this.nativeVao ? (this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao), this.dirty && (this.dirty = !1, this.activate())) : this.activate(), this
                    }, r.prototype.unbind = function() {
                        return this.nativeVao && this.nativeVaoExtension.bindVertexArrayOES(null), this
                    }, r.prototype.activate = function() {
                        for (var t = this.gl, e = null, n = 0; n < this.attributes.length; n++) {
                            var r = this.attributes[n];
                            e !== r.buffer && (r.buffer.bind(), e = r.buffer), t.vertexAttribPointer(r.attribute.location, r.attribute.size, r.type || t.FLOAT, r.normalized || !1, r.stride || 0, r.start || 0)
                        }
                        return i(t, this.attributes, this.nativeState), this.indexBuffer.bind(), this
                    }, r.prototype.addAttribute = function(t, e, n, r, i, o) {
                        return this.attributes.push({
                            buffer: t,
                            attribute: e,
                            location: e.location,
                            type: n || this.gl.FLOAT,
                            normalized: r || !1,
                            stride: i || 0,
                            start: o || 0
                        }), this.dirty = !0, this
                    }, r.prototype.addIndex = function(t) {
                        return this.indexBuffer = t, this.dirty = !0, this
                    }, r.prototype.clear = function() {
                        return this.nativeVao && this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao), this.attributes.length = 0, this.indexBuffer = null, this
                    }, r.prototype.draw = function(t, e, n) {
                        var r = this.gl;
                        return r.drawElements(t, e, r.UNSIGNED_SHORT, n || 0), this
                    }, r.prototype.destroy = function() {
                        this.gl = null, this.indexBuffer = null, this.attributes = null, this.nativeState = null, this.nativeVao && this.nativeVaoExtension.deleteVertexArrayOES(this.nativeVao), this.nativeVaoExtension = null, this.nativeVao = null
                    }
                }, {
                    "./setVertexAttribArrays": 13
                }],
                11: [function(t, e, n) {
                    var r = function(t, e) {
                        var n = t.getContext("webgl", e) || t.getContext("experimental-webgl", e);
                        if (!n) throw new Error("This browser does not support webGL. Try using the canvas renderer");
                        return n
                    };
                    e.exports = r
                }, {}],
                12: [function(t, e, n) {
                    var r = {
                        createContext: t("./createContext"),
                        setVertexAttribArrays: t("./setVertexAttribArrays"),
                        GLBuffer: t("./GLBuffer"),
                        GLFramebuffer: t("./GLFramebuffer"),
                        GLShader: t("./GLShader"),
                        GLTexture: t("./GLTexture"),
                        VertexArrayObject: t("./VertexArrayObject"),
                        shader: t("./shader")
                    };
                    void 0 !== e && e.exports && (e.exports = r), "undefined" != typeof window && (window.PIXI = window.PIXI || {}, window.PIXI.glCore = r)
                }, {
                    "./GLBuffer": 6,
                    "./GLFramebuffer": 7,
                    "./GLShader": 8,
                    "./GLTexture": 9,
                    "./VertexArrayObject": 10,
                    "./createContext": 11,
                    "./setVertexAttribArrays": 13,
                    "./shader": 19
                }],
                13: [function(t, e, n) {
                    var r = function(t, e, n) {
                        var r;
                        if (n) {
                            var i = n.tempAttribState,
                                o = n.attribState;
                            for (r = 0; r < i.length; r++) i[r] = !1;
                            for (r = 0; r < e.length; r++) i[e[r].attribute.location] = !0;
                            for (r = 0; r < o.length; r++) o[r] !== i[r] && (o[r] = i[r], n.attribState[r] ? t.enableVertexAttribArray(r) : t.disableVertexAttribArray(r))
                        } else
                            for (r = 0; r < e.length; r++) {
                                var a = e[r];
                                t.enableVertexAttribArray(a.attribute.location)
                            }
                    };
                    e.exports = r
                }, {}],
                14: [function(t, e, n) {
                    var r = function(t, e, n) {
                            var r = i(t, t.VERTEX_SHADER, e),
                                o = i(t, t.FRAGMENT_SHADER, n),
                                a = t.createProgram();
                            return t.attachShader(a, r), t.attachShader(a, o), t.linkProgram(a), t.getProgramParameter(a, t.LINK_STATUS) || (t.getProgramInfoLog(a), t.deleteProgram(a), a = null), t.deleteShader(r), t.deleteShader(o), a
                        },
                        i = function(t, e, n) {
                            var r = t.createShader(e);
                            return t.shaderSource(r, n), t.compileShader(r), t.getShaderParameter(r, t.COMPILE_STATUS) ? r : null
                        };
                    e.exports = r
                }, {}],
                15: [function(t, e, n) {
                    var r = function(t, e) {
                            switch (t) {
                                case "float":
                                    return 0;
                                case "vec2":
                                    return new Float32Array(2 * e);
                                case "vec3":
                                    return new Float32Array(3 * e);
                                case "vec4":
                                    return new Float32Array(4 * e);
                                case "int":
                                case "sampler2D":
                                    return 0;
                                case "ivec2":
                                    return new Int32Array(2 * e);
                                case "ivec3":
                                    return new Int32Array(3 * e);
                                case "ivec4":
                                    return new Int32Array(4 * e);
                                case "bool":
                                    return !1;
                                case "bvec2":
                                    return i(2 * e);
                                case "bvec3":
                                    return i(3 * e);
                                case "bvec4":
                                    return i(4 * e);
                                case "mat2":
                                    return new Float32Array([1, 0, 0, 1]);
                                case "mat3":
                                    return new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
                                case "mat4":
                                    return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])
                            }
                        },
                        i = function(t) {
                            for (var e = new Array(t), n = 0; n < e.length; n++) e[n] = !1;
                            return e
                        };
                    e.exports = r
                }, {}],
                16: [function(t, e, n) {
                    var r = t("./mapType"),
                        i = t("./mapSize"),
                        o = function(t, e) {
                            for (var n = {}, o = t.getProgramParameter(e, t.ACTIVE_ATTRIBUTES), s = 0; s < o; s++) {
                                var u = t.getActiveAttrib(e, s),
                                    l = r(t, u.type);
                                n[u.name] = {
                                    type: l,
                                    size: i(l),
                                    location: t.getAttribLocation(e, u.name),
                                    pointer: a
                                }
                            }
                            return n
                        },
                        a = function(t, e, n, r) {
                            gl.vertexAttribPointer(this.location, this.size, t || gl.FLOAT, e || !1, n || 0, r || 0)
                        };
                    e.exports = o
                }, {
                    "./mapSize": 20,
                    "./mapType": 21
                }],
                17: [function(t, e, n) {
                    var r = t("./mapType"),
                        i = t("./defaultValue"),
                        o = function(t, e) {
                            for (var n = {}, o = t.getProgramParameter(e, t.ACTIVE_UNIFORMS), a = 0; a < o; a++) {
                                var s = t.getActiveUniform(e, a),
                                    u = s.name.replace(/\[.*?\]/, ""),
                                    l = r(t, s.type);
                                n[u] = {
                                    type: l,
                                    size: s.size,
                                    location: t.getUniformLocation(e, u),
                                    value: i(l, s.size)
                                }
                            }
                            return n
                        };
                    e.exports = o
                }, {
                    "./defaultValue": 15,
                    "./mapType": 21
                }],
                18: [function(t, e, n) {
                    var r = function(t, e) {
                            var n = {
                                data: {}
                            };
                            n.gl = t;
                            for (var r = Object.keys(e), s = 0; s < r.length; s++) {
                                var u = r[s],
                                    l = u.split("."),
                                    c = l[l.length - 1],
                                    h = a(l, n),
                                    d = e[u];
                                h.data[c] = d, h.gl = t, Object.defineProperty(h, c, {
                                    get: i(c),
                                    set: o(c, d)
                                })
                            }
                            return n
                        },
                        i = function(t) {
                            var e = s.replace("%%", t);
                            return new Function(e)
                        },
                        o = function(t, e) {
                            var n, r = u.replace(/%%/g, t);
                            return n = 1 === e.size ? l[e.type] : c[e.type], n && (r += "\nthis.gl." + n + ";"), new Function("value", r)
                        },
                        a = function(t, e) {
                            for (var n = e, r = 0; r < t.length - 1; r++) {
                                var i = n[t[r]] || {
                                    data: {}
                                };
                                n[t[r]] = i, n = i
                            }
                            return n
                        },
                        s = ["return this.data.%%.value;"].join("\n"),
                        u = ["this.data.%%.value = value;", "var location = this.data.%%.location;"].join("\n"),
                        l = {
                            float: "uniform1f(location, value)",
                            vec2: "uniform2f(location, value[0], value[1])",
                            vec3: "uniform3f(location, value[0], value[1], value[2])",
                            vec4: "uniform4f(location, value[0], value[1], value[2], value[3])",
                            int: "uniform1i(location, value)",
                            ivec2: "uniform2i(location, value[0], value[1])",
                            ivec3: "uniform3i(location, value[0], value[1], value[2])",
                            ivec4: "uniform4i(location, value[0], value[1], value[2], value[3])",
                            bool: "uniform1i(location, value)",
                            bvec2: "uniform2i(location, value[0], value[1])",
                            bvec3: "uniform3i(location, value[0], value[1], value[2])",
                            bvec4: "uniform4i(location, value[0], value[1], value[2], value[3])",
                            mat2: "uniformMatrix2fv(location, false, value)",
                            mat3: "uniformMatrix3fv(location, false, value)",
                            mat4: "uniformMatrix4fv(location, false, value)",
                            sampler2D: "uniform1i(location, value)"
                        },
                        c = {
                            float: "uniform1fv(location, value)",
                            vec2: "uniform2fv(location, value)",
                            vec3: "uniform3fv(location, value)",
                            vec4: "uniform4fv(location, value)",
                            int: "uniform1iv(location, value)",
                            ivec2: "uniform2iv(location, value)",
                            ivec3: "uniform3iv(location, value)",
                            ivec4: "uniform4iv(location, value)",
                            bool: "uniform1iv(location, value)",
                            bvec2: "uniform2iv(location, value)",
                            bvec3: "uniform3iv(location, value)",
                            bvec4: "uniform4iv(location, value)",
                            sampler2D: "uniform1iv(location, value)"
                        };
                    e.exports = r
                }, {}],
                19: [function(t, e, n) {
                    e.exports = {
                        compileProgram: t("./compileProgram"),
                        defaultValue: t("./defaultValue"),
                        extractAttributes: t("./extractAttributes"),
                        extractUniforms: t("./extractUniforms"),
                        generateUniformAccessObject: t("./generateUniformAccessObject"),
                        mapSize: t("./mapSize"),
                        mapType: t("./mapType")
                    }
                }, {
                    "./compileProgram": 14,
                    "./defaultValue": 15,
                    "./extractAttributes": 16,
                    "./extractUniforms": 17,
                    "./generateUniformAccessObject": 18,
                    "./mapSize": 20,
                    "./mapType": 21
                }],
                20: [function(t, e, n) {
                    var r = function(t) {
                            return i[t]
                        },
                        i = {
                            float: 1,
                            vec2: 2,
                            vec3: 3,
                            vec4: 4,
                            int: 1,
                            ivec2: 2,
                            ivec3: 3,
                            ivec4: 4,
                            bool: 1,
                            bvec2: 2,
                            bvec3: 3,
                            bvec4: 4,
                            mat2: 4,
                            mat3: 9,
                            mat4: 16,
                            sampler2D: 1
                        };
                    e.exports = r
                }, {}],
                21: [function(t, e, n) {
                    var r = function(t, e) {
                            if (!i) {
                                var n = Object.keys(o);
                                i = {};
                                for (var r = 0; r < n.length; ++r) {
                                    var a = n[r];
                                    i[t[a]] = o[a]
                                }
                            }
                            return i[e]
                        },
                        i = null,
                        o = {
                            FLOAT: "float",
                            FLOAT_VEC2: "vec2",
                            FLOAT_VEC3: "vec3",
                            FLOAT_VEC4: "vec4",
                            INT: "int",
                            INT_VEC2: "ivec2",
                            INT_VEC3: "ivec3",
                            INT_VEC4: "ivec4",
                            BOOL: "bool",
                            BOOL_VEC2: "bvec2",
                            BOOL_VEC3: "bvec3",
                            BOOL_VEC4: "bvec4",
                            FLOAT_MAT2: "mat2",
                            FLOAT_MAT3: "mat3",
                            FLOAT_MAT4: "mat4",
                            SAMPLER_2D: "sampler2D"
                        };
                    e.exports = r
                }, {}],
                22: [function(t, e, n) {
                    (function(t) {
                        function e(t, e) {
                            for (var n = 0, r = t.length - 1; r >= 0; r--) {
                                var i = t[r];
                                "." === i ? t.splice(r, 1) : ".." === i ? (t.splice(r, 1), n++) : n && (t.splice(r, 1), n--)
                            }
                            if (e)
                                for (; n--; n) t.unshift("..");
                            return t
                        }

                        function r(t, e) {
                            if (t.filter) return t.filter(e);
                            for (var n = [], r = 0; r < t.length; r++) e(t[r], r, t) && n.push(t[r]);
                            return n
                        }
                        var i = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,
                            o = function(t) {
                                return i.exec(t).slice(1)
                            };
                        n.resolve = function() {
                            for (var n = "", i = !1, o = arguments.length - 1; o >= -1 && !i; o--) {
                                var a = o >= 0 ? arguments[o] : t.cwd();
                                if ("string" != typeof a) throw new TypeError("Arguments to path.resolve must be strings");
                                a && (n = a + "/" + n, i = "/" === a.charAt(0))
                            }
                            return n = e(r(n.split("/"), function(t) {
                                return !!t
                            }), !i).join("/"), (i ? "/" : "") + n || "."
                        }, n.normalize = function(t) {
                            var i = n.isAbsolute(t),
                                o = "/" === a(t, -1);
                            return t = e(r(t.split("/"), function(t) {
                                return !!t
                            }), !i).join("/"), t || i || (t = "."), t && o && (t += "/"), (i ? "/" : "") + t
                        }, n.isAbsolute = function(t) {
                            return "/" === t.charAt(0)
                        }, n.join = function() {
                            var t = Array.prototype.slice.call(arguments, 0);
                            return n.normalize(r(t, function(t, e) {
                                if ("string" != typeof t) throw new TypeError("Arguments to path.join must be strings");
                                return t
                            }).join("/"))
                        }, n.relative = function(t, e) {
                            function r(t) {
                                for (var e = 0; e < t.length && "" === t[e]; e++);
                                for (var n = t.length - 1; n >= 0 && "" === t[n]; n--);
                                return e > n ? [] : t.slice(e, n - e + 1)
                            }
                            t = n.resolve(t).substr(1), e = n.resolve(e).substr(1);
                            for (var i = r(t.split("/")), o = r(e.split("/")), a = Math.min(i.length, o.length), s = a, u = 0; u < a; u++)
                                if (i[u] !== o[u]) {
                                    s = u;
                                    break
                                }
                            for (var l = [], u = s; u < i.length; u++) l.push("..");
                            return l = l.concat(o.slice(s)), l.join("/")
                        }, n.sep = "/", n.delimiter = ":", n.dirname = function(t) {
                            var e = o(t),
                                n = e[0],
                                r = e[1];
                            return n || r ? (r && (r = r.substr(0, r.length - 1)), n + r) : "."
                        }, n.basename = function(t, e) {
                            var n = o(t)[2];
                            return e && n.substr(-1 * e.length) === e && (n = n.substr(0, n.length - e.length)), n
                        }, n.extname = function(t) {
                            return o(t)[3]
                        };
                        var a = "b" === "ab".substr(-1) ? function(t, e, n) {
                            return t.substr(e, n)
                        } : function(t, e, n) {
                            return e < 0 && (e = t.length + e), t.substr(e, n)
                        }
                    }).call(this, t("_process"))
                }, {
                    _process: 23
                }],
                23: [function(t, e, n) {
                    function r() {
                        throw new Error("setTimeout has not been defined")
                    }

                    function i() {
                        throw new Error("clearTimeout has not been defined")
                    }

                    function o(t) {
                        if (h === setTimeout) return setTimeout(t, 0);
                        if ((h === r || !h) && setTimeout) return h = setTimeout, setTimeout(t, 0);
                        try {
                            return h(t, 0)
                        } catch (e) {
                            try {
                                return h.call(null, t, 0)
                            } catch (e) {
                                return h.call(this, t, 0)
                            }
                        }
                    }

                    function a(t) {
                        if (d === clearTimeout) return clearTimeout(t);
                        if ((d === i || !d) && clearTimeout) return d = clearTimeout, clearTimeout(t);
                        try {
                            return d(t)
                        } catch (e) {
                            try {
                                return d.call(null, t)
                            } catch (e) {
                                return d.call(this, t)
                            }
                        }
                    }

                    function s() {
                        m && p && (m = !1, p.length ? g = p.concat(g) : y = -1, g.length && u())
                    }

                    function u() {
                        if (!m) {
                            var t = o(s);
                            m = !0;
                            for (var e = g.length; e;) {
                                for (p = g, g = []; ++y < e;) p && p[y].run();
                                y = -1, e = g.length
                            }
                            p = null, m = !1, a(t)
                        }
                    }

                    function l(t, e) {
                        this.fun = t, this.array = e
                    }

                    function c() {}
                    var h, d, f = e.exports = {};
                    ! function() {
                        try {
                            h = "function" == typeof setTimeout ? setTimeout : r
                        } catch (t) {
                            h = r
                        }
                        try {
                            d = "function" == typeof clearTimeout ? clearTimeout : i
                        } catch (t) {
                            d = i
                        }
                    }();
                    var p, g = [],
                        m = !1,
                        y = -1;
                    f.nextTick = function(t) {
                        var e = new Array(arguments.length - 1);
                        if (arguments.length > 1)
                            for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
                        g.push(new l(t, e)), 1 !== g.length || m || o(u)
                    }, l.prototype.run = function() {
                        this.fun.apply(null, this.array)
                    }, f.title = "browser", f.browser = !0, f.env = {}, f.argv = [], f.version = "", f.versions = {}, f.on = c, f.addListener = c, f.once = c, f.off = c, f.removeListener = c, f.removeAllListeners = c, f.emit = c, f.binding = function(t) {
                        throw new Error("process.binding is not supported")
                    }, f.cwd = function() {
                        return "/"
                    }, f.chdir = function(t) {
                        throw new Error("process.chdir is not supported")
                    }, f.umask = function() {
                        return 0
                    }
                }, {}],
                24: [function(e, n, r) {
                    (function(e) {
                        ! function(i) {
                            function o(t) {
                                throw new RangeError(L[t])
                            }

                            function a(t, e) {
                                for (var n = t.length, r = []; n--;) r[n] = e(t[n]);
                                return r
                            }

                            function s(t, e) {
                                var n = t.split("@"),
                                    r = "";
                                return n.length > 1 && (r = n[0] + "@", t = n[1]), t = t.replace(D, "."), r + a(t.split("."), e).join(".")
                            }

                            function u(t) {
                                for (var e, n, r = [], i = 0, o = t.length; i < o;) e = t.charCodeAt(i++), e >= 55296 && e <= 56319 && i < o ? (n = t.charCodeAt(i++), 56320 == (64512 & n) ? r.push(((1023 & e) << 10) + (1023 & n) + 65536) : (r.push(e), i--)) : r.push(e);
                                return r
                            }

                            function l(t) {
                                return a(t, function(t) {
                                    var e = "";
                                    return t > 65535 && (t -= 65536, e += B(t >>> 10 & 1023 | 55296), t = 56320 | 1023 & t), e += B(t)
                                }).join("")
                            }

                            function c(t) {
                                return t - 48 < 10 ? t - 22 : t - 65 < 26 ? t - 65 : t - 97 < 26 ? t - 97 : w
                            }

                            function h(t, e) {
                                return t + 22 + 75 * (t < 26) - ((0 != e) << 5)
                            }

                            function d(t, e, n) {
                                var r = 0;
                                for (t = n ? F(t / O) : t >> 1, t += F(t / e); t > k * C >> 1; r += w) t = F(t / k);
                                return F(r + (k + 1) * t / (t + E))
                            }

                            function f(t) {
                                var e, n, r, i, a, s, u, h, f, p, g = [],
                                    m = t.length,
                                    y = 0,
                                    b = A,
                                    v = P;
                                for (n = t.lastIndexOf(R), n < 0 && (n = 0), r = 0; r < n; ++r) t.charCodeAt(r) >= 128 && o("not-basic"), g.push(t.charCodeAt(r));
                                for (i = n > 0 ? n + 1 : 0; i < m;) {
                                    for (a = y, s = 1, u = w; i >= m && o("invalid-input"), h = c(t.charCodeAt(i++)), (h >= w || h > F((T - y) / s)) && o("overflow"), y += h * s, f = u <= v ? S : u >= v + C ? C : u - v, !(h < f); u += w) p = w - f, s > F(T / p) && o("overflow"), s *= p;
                                    e = g.length + 1, v = d(y - a, e, 0 == a), F(y / e) > T - b && o("overflow"), b += F(y / e), y %= e, g.splice(y++, 0, b)
                                }
                                return l(g)
                            }

                            function p(t) {
                                var e, n, r, i, a, s, l, c, f, p, g, m, y, b, v, _ = [];
                                for (t = u(t), m = t.length, e = A, n = 0, a = P, s = 0; s < m; ++s)(g = t[s]) < 128 && _.push(B(g));
                                for (r = i = _.length, i && _.push(R); r < m;) {
                                    for (l = T, s = 0; s < m; ++s)(g = t[s]) >= e && g < l && (l = g);
                                    for (y = r + 1, l - e > F((T - n) / y) && o("overflow"), n += (l - e) * y, e = l, s = 0; s < m; ++s)
                                        if (g = t[s], g < e && ++n > T && o("overflow"), g == e) {
                                            for (c = n, f = w; p = f <= a ? S : f >= a + C ? C : f - a, !(c < p); f += w) v = c - p, b = w - p, _.push(B(h(p + v % b, 0))), c = F(v / b);
                                            _.push(B(h(c, 0))), a = d(n, y, r == i), n = 0, ++r
                                        }++n, ++e
                                }
                                return _.join("")
                            }

                            function g(t) {
                                return s(t, function(t) {
                                    return M.test(t) ? f(t.slice(4).toLowerCase()) : t
                                })
                            }

                            function m(t) {
                                return s(t, function(t) {
                                    return I.test(t) ? "xn--" + p(t) : t
                                })
                            }
                            var y = "object" == typeof r && r && !r.nodeType && r,
                                b = "object" == typeof n && n && !n.nodeType && n,
                                v = "object" == typeof e && e;
                            v.global !== v && v.window !== v && v.self !== v || (i = v);
                            var _, x, T = 2147483647,
                                w = 36,
                                S = 1,
                                C = 26,
                                E = 38,
                                O = 700,
                                P = 72,
                                A = 128,
                                R = "-",
                                M = /^xn--/,
                                I = /[^\x20-\x7E]/,
                                D = /[\x2E\u3002\uFF0E\uFF61]/g,
                                L = {
                                    overflow: "Overflow: input needs wider integers to process",
                                    "not-basic": "Illegal input >= 0x80 (not a basic code point)",
                                    "invalid-input": "Invalid input"
                                },
                                k = w - S,
                                F = Math.floor,
                                B = String.fromCharCode;
                            if (_ = {
                                    version: "1.4.1",
                                    ucs2: {
                                        decode: u,
                                        encode: l
                                    },
                                    decode: f,
                                    encode: p,
                                    toASCII: m,
                                    toUnicode: g
                                }, "function" == typeof t && "object" == typeof t.amd && t.amd) t("punycode", function() {
                                return _
                            });
                            else if (y && b)
                                if (n.exports == y) b.exports = _;
                                else
                                    for (x in _) _.hasOwnProperty(x) && (y[x] = _[x]);
                            else i.punycode = _
                        }(this)
                    }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
                }, {}],
                25: [function(t, e, n) {
                    function r(t, e) {
                        return Object.prototype.hasOwnProperty.call(t, e)
                    }
                    e.exports = function(t, e, n, o) {
                        e = e || "&", n = n || "=";
                        var a = {};
                        if ("string" != typeof t || 0 === t.length) return a;
                        var s = /\+/g;
                        t = t.split(e);
                        var u = 1e3;
                        o && "number" == typeof o.maxKeys && (u = o.maxKeys);
                        var l = t.length;
                        u > 0 && l > u && (l = u);
                        for (var c = 0; c < l; ++c) {
                            var h, d, f, p, g = t[c].replace(s, "%20"),
                                m = g.indexOf(n);
                            m >= 0 ? (h = g.substr(0, m), d = g.substr(m + 1)) : (h = g, d = ""), f = decodeURIComponent(h), p = decodeURIComponent(d), r(a, f) ? i(a[f]) ? a[f].push(p) : a[f] = [a[f], p] : a[f] = p
                        }
                        return a
                    };
                    var i = Array.isArray || function(t) {
                        return "[object Array]" === Object.prototype.toString.call(t)
                    }
                }, {}],
                26: [function(t, e, n) {
                    function r(t, e) {
                        if (t.map) return t.map(e);
                        for (var n = [], r = 0; r < t.length; r++) n.push(e(t[r], r));
                        return n
                    }
                    var i = function(t) {
                        switch (typeof t) {
                            case "string":
                                return t;
                            case "boolean":
                                return t ? "true" : "false";
                            case "number":
                                return isFinite(t) ? t : "";
                            default:
                                return ""
                        }
                    };
                    e.exports = function(t, e, n, s) {
                        return e = e || "&", n = n || "=", null === t && (t = void 0), "object" == typeof t ? r(a(t), function(a) {
                            var s = encodeURIComponent(i(a)) + n;
                            return o(t[a]) ? r(t[a], function(t) {
                                return s + encodeURIComponent(i(t))
                            }).join(e) : s + encodeURIComponent(i(t[a]))
                        }).join(e) : s ? encodeURIComponent(i(s)) + n + encodeURIComponent(i(t)) : ""
                    };
                    var o = Array.isArray || function(t) {
                            return "[object Array]" === Object.prototype.toString.call(t)
                        },
                        a = Object.keys || function(t) {
                            var e = [];
                            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e.push(n);
                            return e
                        }
                }, {}],
                27: [function(t, e, n) {
                    "use strict";
                    n.decode = n.parse = t("./decode"), n.encode = n.stringify = t("./encode")
                }, {
                    "./decode": 25,
                    "./encode": 26
                }],
                28: [function(t, e, n) {
                    function r() {
                        this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null
                    }

                    function i(t, e, n) {
                        if (t && l.isObject(t) && t instanceof r) return t;
                        var i = new r;
                        return i.parse(t, e, n), i
                    }

                    function o(t) {
                        return l.isString(t) && (t = i(t)), t instanceof r ? t.format() : r.prototype.format.call(t)
                    }

                    function a(t, e) {
                        return i(t, !1, !0).resolve(e)
                    }

                    function s(t, e) {
                        return t ? i(t, !1, !0).resolveObject(e) : e
                    }
                    var u = t("punycode"),
                        l = t("./util");
                    n.parse = i, n.resolve = a, n.resolveObject = s, n.format = o, n.Url = r;
                    var c = /^([a-z0-9.+-]+:)/i,
                        h = /:[0-9]*$/,
                        d = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
                        f = ["<", ">", '"', "`", " ", "\r", "\n", "\t"],
                        p = ["{", "}", "|", "\\", "^", "`"].concat(f),
                        g = ["'"].concat(p),
                        m = ["%", "/", "?", ";", "#"].concat(g),
                        y = ["/", "?", "#"],
                        b = /^[+a-z0-9A-Z_-]{0,63}$/,
                        v = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
                        _ = {
                            javascript: !0,
                            "javascript:": !0
                        },
                        x = {
                            javascript: !0,
                            "javascript:": !0
                        },
                        T = {
                            http: !0,
                            https: !0,
                            ftp: !0,
                            gopher: !0,
                            file: !0,
                            "http:": !0,
                            "https:": !0,
                            "ftp:": !0,
                            "gopher:": !0,
                            "file:": !0
                        },
                        w = t("querystring");
                    r.prototype.parse = function(t, e, n) {
                        if (!l.isString(t)) throw new TypeError("Parameter 'url' must be a string, not " + typeof t);
                        var r = t.indexOf("?"),
                            i = -1 !== r && r < t.indexOf("#") ? "?" : "#",
                            o = t.split(i),
                            a = /\\/g;
                        o[0] = o[0].replace(a, "/"), t = o.join(i);
                        var s = t;
                        if (s = s.trim(), !n && 1 === t.split("#").length) {
                            var h = d.exec(s);
                            if (h) return this.path = s, this.href = s, this.pathname = h[1], h[2] ? (this.search = h[2], this.query = e ? w.parse(this.search.substr(1)) : this.search.substr(1)) : e && (this.search = "", this.query = {}), this
                        }
                        var f = c.exec(s);
                        if (f) {
                            f = f[0];
                            var p = f.toLowerCase();
                            this.protocol = p, s = s.substr(f.length)
                        }
                        if (n || f || s.match(/^\/\/[^@\/]+@[^@\/]+/)) {
                            var S = "//" === s.substr(0, 2);
                            !S || f && x[f] || (s = s.substr(2), this.slashes = !0)
                        }
                        if (!x[f] && (S || f && !T[f])) {
                            for (var C = -1, E = 0; E < y.length; E++) {
                                var O = s.indexOf(y[E]); - 1 !== O && (-1 === C || O < C) && (C = O)
                            }
                            var P, A;
                            A = -1 === C ? s.lastIndexOf("@") : s.lastIndexOf("@", C), -1 !== A && (P = s.slice(0, A), s = s.slice(A + 1), this.auth = decodeURIComponent(P)), C = -1;
                            for (var E = 0; E < m.length; E++) {
                                var O = s.indexOf(m[E]); - 1 !== O && (-1 === C || O < C) && (C = O)
                            } - 1 === C && (C = s.length), this.host = s.slice(0, C), s = s.slice(C), this.parseHost(), this.hostname = this.hostname || "";
                            var R = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1];
                            if (!R)
                                for (var M = this.hostname.split(/\./), E = 0, I = M.length; E < I; E++) {
                                    var D = M[E];
                                    if (D && !D.match(b)) {
                                        for (var L = "", k = 0, F = D.length; k < F; k++) D.charCodeAt(k) > 127 ? L += "x" : L += D[k];
                                        if (!L.match(b)) {
                                            var B = M.slice(0, E),
                                                N = M.slice(E + 1),
                                                j = D.match(v);
                                            j && (B.push(j[1]), N.unshift(j[2])), N.length && (s = "/" + N.join(".") + s), this.hostname = B.join(".");
                                            break
                                        }
                                    }
                                }
                            this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), R || (this.hostname = u.toASCII(this.hostname));
                            var G = this.port ? ":" + this.port : "",
                                U = this.hostname || "";
                            this.host = U + G, this.href += this.host, R && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== s[0] && (s = "/" + s))
                        }
                        if (!_[p])
                            for (var E = 0, I = g.length; E < I; E++) {
                                var W = g[E];
                                if (-1 !== s.indexOf(W)) {
                                    var H = encodeURIComponent(W);
                                    H === W && (H = escape(W)), s = s.split(W).join(H)
                                }
                            }
                        var X = s.indexOf("#"); - 1 !== X && (this.hash = s.substr(X), s = s.slice(0, X));
                        var V = s.indexOf("?");
                        if (-1 !== V ? (this.search = s.substr(V), this.query = s.substr(V + 1), e && (this.query = w.parse(this.query)), s = s.slice(0, V)) : e && (this.search = "", this.query = {}), s && (this.pathname = s), T[p] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) {
                            var G = this.pathname || "",
                                z = this.search || "";
                            this.path = G + z
                        }
                        return this.href = this.format(), this
                    }, r.prototype.format = function() {
                        var t = this.auth || "";
                        t && (t = encodeURIComponent(t), t = t.replace(/%3A/i, ":"), t += "@");
                        var e = this.protocol || "",
                            n = this.pathname || "",
                            r = this.hash || "",
                            i = !1,
                            o = "";
                        this.host ? i = t + this.host : this.hostname && (i = t + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (i += ":" + this.port)), this.query && l.isObject(this.query) && Object.keys(this.query).length && (o = w.stringify(this.query));
                        var a = this.search || o && "?" + o || "";
                        return e && ":" !== e.substr(-1) && (e += ":"), this.slashes || (!e || T[e]) && !1 !== i ? (i = "//" + (i || ""), n && "/" !== n.charAt(0) && (n = "/" + n)) : i || (i = ""), r && "#" !== r.charAt(0) && (r = "#" + r), a && "?" !== a.charAt(0) && (a = "?" + a), n = n.replace(/[?#]/g, function(t) {
                            return encodeURIComponent(t)
                        }), a = a.replace("#", "%23"), e + i + n + a + r
                    }, r.prototype.resolve = function(t) {
                        return this.resolveObject(i(t, !1, !0)).format()
                    }, r.prototype.resolveObject = function(t) {
                        if (l.isString(t)) {
                            var e = new r;
                            e.parse(t, !1, !0), t = e
                        }
                        for (var n = new r, i = Object.keys(this), o = 0; o < i.length; o++) {
                            var a = i[o];
                            n[a] = this[a]
                        }
                        if (n.hash = t.hash, "" === t.href) return n.href = n.format(), n;
                        if (t.slashes && !t.protocol) {
                            for (var s = Object.keys(t), u = 0; u < s.length; u++) {
                                var c = s[u];
                                "protocol" !== c && (n[c] = t[c])
                            }
                            return T[n.protocol] && n.hostname && !n.pathname && (n.path = n.pathname = "/"), n.href = n.format(), n
                        }
                        if (t.protocol && t.protocol !== n.protocol) {
                            if (!T[t.protocol]) {
                                for (var h = Object.keys(t), d = 0; d < h.length; d++) {
                                    var f = h[d];
                                    n[f] = t[f]
                                }
                                return n.href = n.format(), n
                            }
                            if (n.protocol = t.protocol, t.host || x[t.protocol]) n.pathname = t.pathname;
                            else {
                                for (var p = (t.pathname || "").split("/"); p.length && !(t.host = p.shift()););
                                t.host || (t.host = ""), t.hostname || (t.hostname = ""), "" !== p[0] && p.unshift(""), p.length < 2 && p.unshift(""), n.pathname = p.join("/")
                            }
                            if (n.search = t.search, n.query = t.query, n.host = t.host || "", n.auth = t.auth, n.hostname = t.hostname || t.host, n.port = t.port, n.pathname || n.search) {
                                var g = n.pathname || "",
                                    m = n.search || "";
                                n.path = g + m
                            }
                            return n.slashes = n.slashes || t.slashes, n.href = n.format(), n
                        }
                        var y = n.pathname && "/" === n.pathname.charAt(0),
                            b = t.host || t.pathname && "/" === t.pathname.charAt(0),
                            v = b || y || n.host && t.pathname,
                            _ = v,
                            w = n.pathname && n.pathname.split("/") || [],
                            p = t.pathname && t.pathname.split("/") || [],
                            S = n.protocol && !T[n.protocol];
                        if (S && (n.hostname = "", n.port = null, n.host && ("" === w[0] ? w[0] = n.host : w.unshift(n.host)), n.host = "", t.protocol && (t.hostname = null, t.port = null, t.host && ("" === p[0] ? p[0] = t.host : p.unshift(t.host)), t.host = null), v = v && ("" === p[0] || "" === w[0])), b) n.host = t.host || "" === t.host ? t.host : n.host, n.hostname = t.hostname || "" === t.hostname ? t.hostname : n.hostname, n.search = t.search, n.query = t.query, w = p;
                        else if (p.length) w || (w = []), w.pop(), w = w.concat(p), n.search = t.search, n.query = t.query;
                        else if (!l.isNullOrUndefined(t.search)) {
                            if (S) {
                                n.hostname = n.host = w.shift();
                                var C = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@");
                                C && (n.auth = C.shift(), n.host = n.hostname = C.shift())
                            }
                            return n.search = t.search, n.query = t.query, l.isNull(n.pathname) && l.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.href = n.format(), n
                        }
                        if (!w.length) return n.pathname = null, n.search ? n.path = "/" + n.search : n.path = null, n.href = n.format(), n;
                        for (var E = w.slice(-1)[0], O = (n.host || t.host || w.length > 1) && ("." === E || ".." === E) || "" === E, P = 0, A = w.length; A >= 0; A--) E = w[A], "." === E ? w.splice(A, 1) : ".." === E ? (w.splice(A, 1), P++) : P && (w.splice(A, 1), P--);
                        if (!v && !_)
                            for (; P--; P) w.unshift("..");
                        !v || "" === w[0] || w[0] && "/" === w[0].charAt(0) || w.unshift(""), O && "/" !== w.join("/").substr(-1) && w.push("");
                        var R = "" === w[0] || w[0] && "/" === w[0].charAt(0);
                        if (S) {
                            n.hostname = n.host = R ? "" : w.length ? w.shift() : "";
                            var C = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@");
                            C && (n.auth = C.shift(), n.host = n.hostname = C.shift())
                        }
                        return v = v || n.host && w.length, v && !R && w.unshift(""), w.length ? n.pathname = w.join("/") : (n.pathname = null, n.path = null), l.isNull(n.pathname) && l.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.auth = t.auth || n.auth, n.slashes = n.slashes || t.slashes, n.href = n.format(), n
                    }, r.prototype.parseHost = function() {
                        var t = this.host,
                            e = h.exec(t);
                        e && (e = e[0], ":" !== e && (this.port = e.substr(1)), t = t.substr(0, t.length - e.length)), t && (this.hostname = t)
                    }
                }, {
                    "./util": 29,
                    punycode: 24,
                    querystring: 27
                }],
                29: [function(t, e, n) {
                    "use strict";
                    e.exports = {
                        isString: function(t) {
                            return "string" == typeof t
                        },
                        isObject: function(t) {
                            return "object" == typeof t && null !== t
                        },
                        isNull: function(t) {
                            return null === t
                        },
                        isNullOrUndefined: function(t) {
                            return null == t
                        }
                    }
                }, {}],
                30: [function(t, e, n) {
                    "use strict";
                    e.exports = function(t, e, n) {
                        var r, i = t.length;
                        if (!(e >= i || 0 === n)) {
                            n = e + n > i ? i - e : n;
                            var o = i - n;
                            for (r = e; r < o; ++r) t[r] = t[r + n];
                            t.length = o
                        }
                    }
                }, {}],
                31: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                            return typeof t
                        } : function(t) {
                            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                        },
                        a = t("mini-signals"),
                        s = r(a),
                        u = t("parse-uri"),
                        l = r(u),
                        c = t("./async"),
                        h = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(c),
                        d = t("./Resource"),
                        f = r(d),
                        p = /(#[\w-]+)?$/,
                        g = function() {
                            function t() {
                                var e = this,
                                    n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
                                    r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 10;
                                i(this, t), this.baseUrl = n, this.progress = 0, this.loading = !1, this.defaultQueryString = "", this._beforeMiddleware = [], this._afterMiddleware = [], this._resourcesParsing = [], this._boundLoadResource = function(t, n) {
                                    return e._loadResource(t, n)
                                }, this._queue = h.queue(this._boundLoadResource, r), this._queue.pause(), this.resources = {}, this.onProgress = new s.default, this.onError = new s.default, this.onLoad = new s.default, this.onStart = new s.default, this.onComplete = new s.default
                            }
                            return t.prototype.add = function(t, e, n, r) {
                                if (Array.isArray(t)) {
                                    for (var i = 0; i < t.length; ++i) this.add(t[i]);
                                    return this
                                }
                                if ("object" === (void 0 === t ? "undefined" : o(t)) && (r = e || t.callback || t.onComplete, n = t, e = t.url, t = t.name || t.key || t.url), "string" != typeof e && (r = n, n = e, e = t), "string" != typeof e) throw new Error("No url passed to add resource to loader.");
                                if ("function" == typeof n && (r = n, n = null), this.loading && (!n || !n.parentResource)) throw new Error("Cannot add resources while the loader is running.");
                                if (this.resources[t]) throw new Error('Resource named "' + t + '" already exists.');
                                if (e = this._prepareUrl(e), this.resources[t] = new f.default(t, e, n), "function" == typeof r && this.resources[t].onAfterMiddleware.once(r), this.loading) {
                                    for (var a = n.parentResource, s = [], u = 0; u < a.children.length; ++u) a.children[u].isComplete || s.push(a.children[u]);
                                    var l = a.progressChunk * (s.length + 1),
                                        c = l / (s.length + 2);
                                    a.children.push(this.resources[t]), a.progressChunk = c;
                                    for (var h = 0; h < s.length; ++h) s[h].progressChunk = c;
                                    this.resources[t].progressChunk = c
                                }
                                return this._queue.push(this.resources[t]), this
                            }, t.prototype.pre = function(t) {
                                return this._beforeMiddleware.push(t), this
                            }, t.prototype.use = function(t) {
                                return this._afterMiddleware.push(t), this
                            }, t.prototype.reset = function() {
                                this.progress = 0, this.loading = !1, this._queue.kill(), this._queue.pause();
                                for (var t in this.resources) {
                                    var e = this.resources[t];
                                    e._onLoadBinding && e._onLoadBinding.detach(), e.isLoading && e.abort()
                                }
                                return this.resources = {}, this
                            }, t.prototype.load = function(t) {
                                if ("function" == typeof t && this.onComplete.once(t), this.loading) return this;
                                for (var e = 100 / this._queue._tasks.length, n = 0; n < this._queue._tasks.length; ++n) this._queue._tasks[n].data.progressChunk = e;
                                return this.loading = !0, this.onStart.dispatch(this), this._queue.resume(), this
                            }, t.prototype._prepareUrl = function(t) {
                                var e = (0, l.default)(t, {
                                        strictMode: !0
                                    }),
                                    n = void 0;
                                if (n = e.protocol || !e.path || 0 === t.indexOf("//") ? t : this.baseUrl.length && this.baseUrl.lastIndexOf("/") !== this.baseUrl.length - 1 && "/" !== t.charAt(0) ? this.baseUrl + "/" + t : this.baseUrl + t, this.defaultQueryString) {
                                    var r = p.exec(n)[0];
                                    n = n.substr(0, n.length - r.length), -1 !== n.indexOf("?") ? n += "&" + this.defaultQueryString : n += "?" + this.defaultQueryString, n += r
                                }
                                return n
                            }, t.prototype._loadResource = function(t, e) {
                                var n = this;
                                t._dequeue = e, h.eachSeries(this._beforeMiddleware, function(e, r) {
                                    e.call(n, t, function() {
                                        r(t.isComplete ? {} : null)
                                    })
                                }, function() {
                                    t.isComplete ? n._onLoad(t) : (t._onLoadBinding = t.onComplete.once(n._onLoad, n), t.load())
                                })
                            }, t.prototype._onComplete = function() {
                                this.loading = !1, this.onComplete.dispatch(this, this.resources)
                            }, t.prototype._onLoad = function(t) {
                                var e = this;
                                t._onLoadBinding = null, t._dequeue(), this._resourcesParsing.push(t), h.eachSeries(this._afterMiddleware, function(n, r) {
                                    n.call(e, t, r)
                                }, function() {
                                    t.onAfterMiddleware.dispatch(t), e.progress += t.progressChunk, e.onProgress.dispatch(e, t), t.error ? e.onError.dispatch(t.error, e, t) : e.onLoad.dispatch(e, t), e._resourcesParsing.splice(e._resourcesParsing.indexOf(t), 1), e._queue.idle() && 0 === e._resourcesParsing.length && (e.progress = 100, e._onComplete())
                                })
                            }, t
                        }();
                    n.default = g
                }, {
                    "./Resource": 32,
                    "./async": 33,
                    "mini-signals": 37,
                    "parse-uri": 38
                }],
                32: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o() {}

                    function a(t, e, n) {
                        e && 0 === e.indexOf(".") && (e = e.substring(1)), e && (t[e] = n)
                    }

                    function s(t) {
                        return t.toString().replace("object ", "")
                    }
                    n.__esModule = !0;
                    var u = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        l = t("parse-uri"),
                        c = r(l),
                        h = t("mini-signals"),
                        d = r(h),
                        f = !(!window.XDomainRequest || "withCredentials" in new XMLHttpRequest),
                        p = null,
                        g = function() {
                            function t(e, n, r) {
                                if (i(this, t), "string" != typeof e || "string" != typeof n) throw new Error("Both name and url are required for constructing a resource.");
                                r = r || {}, this._flags = 0, this._setFlag(t.STATUS_FLAGS.DATA_URL, 0 === n.indexOf("data:")), this.name = e, this.url = n, this.extension = this._getExtension(), this.data = null, this.crossOrigin = !0 === r.crossOrigin ? "anonymous" : r.crossOrigin, this.loadType = r.loadType || this._determineLoadType(), this.xhrType = r.xhrType, this.metadata = r.metadata || {}, this.error = null, this.xhr = null, this.children = [], this.type = t.TYPE.UNKNOWN, this.progressChunk = 0, this._dequeue = o, this._onLoadBinding = null, this._boundComplete = this.complete.bind(this), this._boundOnError = this._onError.bind(this), this._boundOnProgress = this._onProgress.bind(this), this._boundXhrOnError = this._xhrOnError.bind(this), this._boundXhrOnAbort = this._xhrOnAbort.bind(this), this._boundXhrOnLoad = this._xhrOnLoad.bind(this), this._boundXdrOnTimeout = this._xdrOnTimeout.bind(this), this.onStart = new d.default, this.onProgress = new d.default, this.onComplete = new d.default, this.onAfterMiddleware = new d.default
                            }
                            return t.setExtensionLoadType = function(e, n) {
                                a(t._loadTypeMap, e, n)
                            }, t.setExtensionXhrType = function(e, n) {
                                a(t._xhrTypeMap, e, n)
                            }, t.prototype.complete = function() {
                                if (this.data && this.data.removeEventListener && (this.data.removeEventListener("error", this._boundOnError, !1), this.data.removeEventListener("load", this._boundComplete, !1), this.data.removeEventListener("progress", this._boundOnProgress, !1), this.data.removeEventListener("canplaythrough", this._boundComplete, !1)), this.xhr && (this.xhr.removeEventListener ? (this.xhr.removeEventListener("error", this._boundXhrOnError, !1), this.xhr.removeEventListener("abort", this._boundXhrOnAbort, !1), this.xhr.removeEventListener("progress", this._boundOnProgress, !1), this.xhr.removeEventListener("load", this._boundXhrOnLoad, !1)) : (this.xhr.onerror = null, this.xhr.ontimeout = null, this.xhr.onprogress = null, this.xhr.onload = null)), this.isComplete) throw new Error("Complete called again for an already completed resource.");
                                this._setFlag(t.STATUS_FLAGS.COMPLETE, !0), this._setFlag(t.STATUS_FLAGS.LOADING, !1), this.onComplete.dispatch(this)
                            }, t.prototype.abort = function(e) {
                                if (!this.error) {
                                    if (this.error = new Error(e), this.xhr) this.xhr.abort();
                                    else if (this.xdr) this.xdr.abort();
                                    else if (this.data)
                                        if (this.data.src) this.data.src = t.EMPTY_GIF;
                                        else
                                            for (; this.data.firstChild;) this.data.removeChild(this.data.firstChild);
                                    this.complete()
                                }
                            }, t.prototype.load = function(e) {
                                var n = this;
                                if (!this.isLoading) {
                                    if (this.isComplete) return void(e && setTimeout(function() {
                                        return e(n)
                                    }, 1));
                                    switch (e && this.onComplete.once(e), this._setFlag(t.STATUS_FLAGS.LOADING, !0), this.onStart.dispatch(this), !1 !== this.crossOrigin && "string" == typeof this.crossOrigin || (this.crossOrigin = this._determineCrossOrigin(this.url)), this.loadType) {
                                        case t.LOAD_TYPE.IMAGE:
                                            this.type = t.TYPE.IMAGE, this._loadElement("image");
                                            break;
                                        case t.LOAD_TYPE.AUDIO:
                                            this.type = t.TYPE.AUDIO, this._loadSourceElement("audio");
                                            break;
                                        case t.LOAD_TYPE.VIDEO:
                                            this.type = t.TYPE.VIDEO, this._loadSourceElement("video");
                                            break;
                                        case t.LOAD_TYPE.XHR:
                                        default:
                                            f && this.crossOrigin ? this._loadXdr() : this._loadXhr()
                                    }
                                }
                            }, t.prototype._hasFlag = function(t) {
                                return !!(this._flags & t)
                            }, t.prototype._setFlag = function(t, e) {
                                this._flags = e ? this._flags | t : this._flags & ~t
                            }, t.prototype._loadElement = function(t) {
                                this.metadata.loadElement ? this.data = this.metadata.loadElement : "image" === t && void 0 !== window.Image ? this.data = new Image : this.data = document.createElement(t), this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), this.metadata.skipSource || (this.data.src = this.url), this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1)
                            }, t.prototype._loadSourceElement = function(t) {
                                if (this.metadata.loadElement ? this.data = this.metadata.loadElement : "audio" === t && void 0 !== window.Audio ? this.data = new Audio : this.data = document.createElement(t), null === this.data) return void this.abort("Unsupported element: " + t);
                                if (!this.metadata.skipSource)
                                    if (navigator.isCocoonJS) this.data.src = Array.isArray(this.url) ? this.url[0] : this.url;
                                    else if (Array.isArray(this.url))
                                    for (var e = 0; e < this.url.length; ++e) this.data.appendChild(this._createSource(t, this.url[e]));
                                else this.data.appendChild(this._createSource(t, this.url));
                                this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.data.addEventListener("canplaythrough", this._boundComplete, !1), this.data.load()
                            }, t.prototype._loadXhr = function() {
                                "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType());
                                var e = this.xhr = new XMLHttpRequest;
                                e.open("GET", this.url, !0), this.xhrType === t.XHR_RESPONSE_TYPE.JSON || this.xhrType === t.XHR_RESPONSE_TYPE.DOCUMENT ? e.responseType = t.XHR_RESPONSE_TYPE.TEXT : e.responseType = this.xhrType, e.addEventListener("error", this._boundXhrOnError, !1), e.addEventListener("abort", this._boundXhrOnAbort, !1), e.addEventListener("progress", this._boundOnProgress, !1), e.addEventListener("load", this._boundXhrOnLoad, !1), e.send()
                            }, t.prototype._loadXdr = function() {
                                "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType());
                                var t = this.xhr = new XDomainRequest;
                                t.timeout = 5e3, t.onerror = this._boundXhrOnError, t.ontimeout = this._boundXdrOnTimeout, t.onprogress = this._boundOnProgress, t.onload = this._boundXhrOnLoad, t.open("GET", this.url, !0), setTimeout(function() {
                                    return t.send()
                                }, 1)
                            }, t.prototype._createSource = function(t, e, n) {
                                n || (n = t + "/" + e.substr(e.lastIndexOf(".") + 1));
                                var r = document.createElement("source");
                                return r.src = e, r.type = n, r
                            }, t.prototype._onError = function(t) {
                                this.abort("Failed to load element using: " + t.target.nodeName)
                            }, t.prototype._onProgress = function(t) {
                                t && t.lengthComputable && this.onProgress.dispatch(this, t.loaded / t.total)
                            }, t.prototype._xhrOnError = function() {
                                var t = this.xhr;
                                this.abort(s(t) + " Request failed. Status: " + t.status + ', text: "' + t.statusText + '"')
                            }, t.prototype._xhrOnAbort = function() {
                                this.abort(s(this.xhr) + " Request was aborted by the user.")
                            }, t.prototype._xdrOnTimeout = function() {
                                this.abort(s(this.xhr) + " Request timed out.")
                            }, t.prototype._xhrOnLoad = function() {
                                var e = this.xhr,
                                    n = void 0 === e.status ? e.status : 200;
                                if (!(200 === n || 204 === n || 0 === n && e.responseText.length > 0)) return void this.abort("[" + e.status + "] " + e.statusText + ": " + e.responseURL);
                                if (this.xhrType === t.XHR_RESPONSE_TYPE.TEXT) this.data = e.responseText, this.type = t.TYPE.TEXT;
                                else if (this.xhrType === t.XHR_RESPONSE_TYPE.JSON) try {
                                    this.data = JSON.parse(e.responseText), this.type = t.TYPE.JSON
                                } catch (t) {
                                    return void this.abort("Error trying to parse loaded json: " + t)
                                } else if (this.xhrType === t.XHR_RESPONSE_TYPE.DOCUMENT) try {
                                    if (window.DOMParser) {
                                        var r = new DOMParser;
                                        this.data = r.parseFromString(e.responseText, "text/xml")
                                    } else {
                                        var i = document.createElement("div");
                                        i.innerHTML = e.responseText, this.data = i
                                    }
                                    this.type = t.TYPE.XML
                                } catch (t) {
                                    return void this.abort("Error trying to parse loaded xml: " + t)
                                } else this.data = e.response || e.responseText;
                                this.complete()
                            }, t.prototype._determineCrossOrigin = function(t, e) {
                                if (0 === t.indexOf("data:")) return "";
                                e = e || window.location, p || (p = document.createElement("a")), p.href = t, t = (0, c.default)(p.href, {
                                    strictMode: !0
                                });
                                var n = !t.port && "" === e.port || t.port === e.port,
                                    r = t.protocol ? t.protocol + ":" : "";
                                return t.host === e.hostname && n && r === e.protocol ? "" : "anonymous"
                            }, t.prototype._determineXhrType = function() {
                                return t._xhrTypeMap[this.extension] || t.XHR_RESPONSE_TYPE.TEXT
                            }, t.prototype._determineLoadType = function() {
                                return t._loadTypeMap[this.extension] || t.LOAD_TYPE.XHR
                            }, t.prototype._getExtension = function() {
                                var t = this.url,
                                    e = "";
                                if (this.isDataUrl) {
                                    var n = t.indexOf("/");
                                    e = t.substring(n + 1, t.indexOf(";", n))
                                } else {
                                    var r = t.indexOf("?"); - 1 !== r && (t = t.substring(0, r)), e = t.substring(t.lastIndexOf(".") + 1)
                                }
                                return e.toLowerCase()
                            }, t.prototype._getMimeFromXhrType = function(e) {
                                switch (e) {
                                    case t.XHR_RESPONSE_TYPE.BUFFER:
                                        return "application/octet-binary";
                                    case t.XHR_RESPONSE_TYPE.BLOB:
                                        return "application/blob";
                                    case t.XHR_RESPONSE_TYPE.DOCUMENT:
                                        return "application/xml";
                                    case t.XHR_RESPONSE_TYPE.JSON:
                                        return "application/json";
                                    case t.XHR_RESPONSE_TYPE.DEFAULT:
                                    case t.XHR_RESPONSE_TYPE.TEXT:
                                    default:
                                        return "text/plain"
                                }
                            }, u(t, [{
                                key: "isDataUrl",
                                get: function() {
                                    return this._hasFlag(t.STATUS_FLAGS.DATA_URL)
                                }
                            }, {
                                key: "isComplete",
                                get: function() {
                                    return this._hasFlag(t.STATUS_FLAGS.COMPLETE)
                                }
                            }, {
                                key: "isLoading",
                                get: function() {
                                    return this._hasFlag(t.STATUS_FLAGS.LOADING)
                                }
                            }]), t
                        }();
                    n.default = g, g.STATUS_FLAGS = {
                        NONE: 0,
                        DATA_URL: 1,
                        COMPLETE: 2,
                        LOADING: 4
                    }, g.TYPE = {
                        UNKNOWN: 0,
                        JSON: 1,
                        XML: 2,
                        IMAGE: 3,
                        AUDIO: 4,
                        VIDEO: 5,
                        TEXT: 6
                    }, g.LOAD_TYPE = {
                        XHR: 1,
                        IMAGE: 2,
                        AUDIO: 3,
                        VIDEO: 4
                    }, g.XHR_RESPONSE_TYPE = {
                        DEFAULT: "text",
                        BUFFER: "arraybuffer",
                        BLOB: "blob",
                        DOCUMENT: "document",
                        JSON: "json",
                        TEXT: "text"
                    }, g._loadTypeMap = {
                        gif: g.LOAD_TYPE.IMAGE,
                        png: g.LOAD_TYPE.IMAGE,
                        bmp: g.LOAD_TYPE.IMAGE,
                        jpg: g.LOAD_TYPE.IMAGE,
                        jpeg: g.LOAD_TYPE.IMAGE,
                        tif: g.LOAD_TYPE.IMAGE,
                        tiff: g.LOAD_TYPE.IMAGE,
                        webp: g.LOAD_TYPE.IMAGE,
                        tga: g.LOAD_TYPE.IMAGE,
                        svg: g.LOAD_TYPE.IMAGE,
                        "svg+xml": g.LOAD_TYPE.IMAGE,
                        mp3: g.LOAD_TYPE.AUDIO,
                        ogg: g.LOAD_TYPE.AUDIO,
                        wav: g.LOAD_TYPE.AUDIO,
                        mp4: g.LOAD_TYPE.VIDEO,
                        webm: g.LOAD_TYPE.VIDEO
                    }, g._xhrTypeMap = {
                        xhtml: g.XHR_RESPONSE_TYPE.DOCUMENT,
                        html: g.XHR_RESPONSE_TYPE.DOCUMENT,
                        htm: g.XHR_RESPONSE_TYPE.DOCUMENT,
                        xml: g.XHR_RESPONSE_TYPE.DOCUMENT,
                        tmx: g.XHR_RESPONSE_TYPE.DOCUMENT,
                        svg: g.XHR_RESPONSE_TYPE.DOCUMENT,
                        tsx: g.XHR_RESPONSE_TYPE.DOCUMENT,
                        gif: g.XHR_RESPONSE_TYPE.BLOB,
                        png: g.XHR_RESPONSE_TYPE.BLOB,
                        bmp: g.XHR_RESPONSE_TYPE.BLOB,
                        jpg: g.XHR_RESPONSE_TYPE.BLOB,
                        jpeg: g.XHR_RESPONSE_TYPE.BLOB,
                        tif: g.XHR_RESPONSE_TYPE.BLOB,
                        tiff: g.XHR_RESPONSE_TYPE.BLOB,
                        webp: g.XHR_RESPONSE_TYPE.BLOB,
                        tga: g.XHR_RESPONSE_TYPE.BLOB,
                        json: g.XHR_RESPONSE_TYPE.JSON,
                        text: g.XHR_RESPONSE_TYPE.TEXT,
                        txt: g.XHR_RESPONSE_TYPE.TEXT,
                        ttf: g.XHR_RESPONSE_TYPE.BUFFER,
                        otf: g.XHR_RESPONSE_TYPE.BUFFER
                    }, g.EMPTY_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
                }, {
                    "mini-signals": 37,
                    "parse-uri": 38
                }],
                33: [function(t, e, n) {
                    "use strict";

                    function r() {}

                    function i(t, e, n) {
                        var r = 0,
                            i = t.length;
                        ! function o(a) {
                            if (a || r === i) return void(n && n(a));
                            e(t[r++], o)
                        }()
                    }

                    function o(t) {
                        return function() {
                            if (null === t) throw new Error("Callback was already called.");
                            var e = t;
                            t = null, e.apply(this, arguments)
                        }
                    }

                    function a(t, e) {
                        function n(t, e, n) {
                            if (null != n && "function" != typeof n) throw new Error("task callback must be a function");
                            if (s.started = !0, null == t && s.idle()) return void setTimeout(function() {
                                return s.drain()
                            }, 1);
                            var i = {
                                data: t,
                                callback: "function" == typeof n ? n : r
                            };
                            e ? s._tasks.unshift(i) : s._tasks.push(i), setTimeout(function() {
                                return s.process()
                            }, 1)
                        }

                        function i(t) {
                            return function() {
                                a -= 1, t.callback.apply(t, arguments), null != arguments[0] && s.error(arguments[0], t.data), a <= s.concurrency - s.buffer && s.unsaturated(), s.idle() && s.drain(), s.process()
                            }
                        }
                        if (null == e) e = 1;
                        else if (0 === e) throw new Error("Concurrency must not be zero");
                        var a = 0,
                            s = {
                                _tasks: [],
                                concurrency: e,
                                saturated: r,
                                unsaturated: r,
                                buffer: e / 4,
                                empty: r,
                                drain: r,
                                error: r,
                                started: !1,
                                paused: !1,
                                push: function(t, e) {
                                    n(t, !1, e)
                                },
                                kill: function() {
                                    a = 0, s.drain = r, s.started = !1, s._tasks = []
                                },
                                unshift: function(t, e) {
                                    n(t, !0, e)
                                },
                                process: function() {
                                    for (; !s.paused && a < s.concurrency && s._tasks.length;) {
                                        var e = s._tasks.shift();
                                        0 === s._tasks.length && s.empty(), a += 1, a === s.concurrency && s.saturated(), t(e.data, o(i(e)))
                                    }
                                },
                                length: function() {
                                    return s._tasks.length
                                },
                                running: function() {
                                    return a
                                },
                                idle: function() {
                                    return s._tasks.length + a === 0
                                },
                                pause: function() {
                                    !0 !== s.paused && (s.paused = !0)
                                },
                                resume: function() {
                                    if (!1 !== s.paused) {
                                        s.paused = !1;
                                        for (var t = 1; t <= s.concurrency; t++) s.process()
                                    }
                                }
                            };
                        return s
                    }
                    n.__esModule = !0, n.eachSeries = i, n.queue = a
                }, {}],
                34: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        for (var e = "", n = 0; n < t.length;) {
                            for (var r = [0, 0, 0], o = [0, 0, 0, 0], a = 0; a < r.length; ++a) n < t.length ? r[a] = 255 & t.charCodeAt(n++) : r[a] = 0;
                            o[0] = r[0] >> 2, o[1] = (3 & r[0]) << 4 | r[1] >> 4, o[2] = (15 & r[1]) << 2 | r[2] >> 6, o[3] = 63 & r[2];
                            switch (n - (t.length - 1)) {
                                case 2:
                                    o[3] = 64, o[2] = 64;
                                    break;
                                case 1:
                                    o[3] = 64
                            }
                            for (var s = 0; s < o.length; ++s) e += i.charAt(o[s])
                        }
                        return e
                    }
                    n.__esModule = !0, n.encodeBinary = r;
                    var i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
                }, {}],
                35: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        if (t && t.__esModule) return t;
                        var e = {};
                        if (null != t)
                            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                        return e.default = t, e
                    }

                    function i(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var o = t("./Loader"),
                        a = i(o),
                        s = t("./Resource"),
                        u = i(s),
                        l = t("./async"),
                        c = r(l),
                        h = t("./b64"),
                        d = r(h);
                    a.default.Resource = u.default, a.default.async = c, a.default.base64 = d, e.exports = a.default, n.default = a.default
                }, {
                    "./Loader": 31,
                    "./Resource": 32,
                    "./async": 33,
                    "./b64": 34
                }],
                36: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i() {
                        return function(t, e) {
                            if (!t.data) return void e();
                            if (t.xhr && t.xhrType === s.default.XHR_RESPONSE_TYPE.BLOB)
                                if (window.Blob && "string" != typeof t.data) {
                                    if (0 === t.data.type.indexOf("image")) {
                                        var n = function() {
                                            var n = c.createObjectURL(t.data);
                                            return t.blob = t.data, t.data = new Image, t.data.src = n, t.type = s.default.TYPE.IMAGE, t.data.onload = function() {
                                                c.revokeObjectURL(n), t.data.onload = null, e()
                                            }, {
                                                v: void 0
                                            }
                                        }();
                                        if ("object" === (void 0 === n ? "undefined" : o(n))) return n.v
                                    }
                                } else {
                                    var r = t.xhr.getResponseHeader("content-type");
                                    if (r && 0 === r.indexOf("image")) return t.data = new Image, t.data.src = "data:" + r + ";base64," + l.default.encodeBinary(t.xhr.responseText), t.type = s.default.TYPE.IMAGE, void(t.data.onload = function() {
                                        t.data.onload = null, e()
                                    })
                                }
                            e()
                        }
                    }
                    n.__esModule = !0;
                    var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                        return typeof t
                    } : function(t) {
                        return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                    };
                    n.blobMiddlewareFactory = i;
                    var a = t("../../Resource"),
                        s = r(a),
                        u = t("../../b64"),
                        l = r(u),
                        c = window.URL || window.webkitURL
                }, {
                    "../../Resource": 32,
                    "../../b64": 34
                }],
                37: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        return t._head ? (t._tail._next = e, e._prev = t._tail, t._tail = e) : (t._head = e, t._tail = e), e._owner = t, e
                    }
                    Object.defineProperty(n, "__esModule", {
                        value: !0
                    });
                    var o = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        a = function() {
                            function t(e, n, i) {
                                void 0 === n && (n = !1), r(this, t), this._fn = e, this._once = n, this._thisArg = i, this._next = this._prev = this._owner = null
                            }
                            return o(t, [{
                                key: "detach",
                                value: function() {
                                    return null !== this._owner && (this._owner.detach(this), !0)
                                }
                            }]), t
                        }(),
                        s = function() {
                            function t() {
                                r(this, t), this._head = this._tail = void 0
                            }
                            return o(t, [{
                                key: "handlers",
                                value: function() {
                                    var t = !(arguments.length <= 0 || void 0 === arguments[0]) && arguments[0],
                                        e = this._head;
                                    if (t) return !!e;
                                    for (var n = []; e;) n.push(e), e = e._next;
                                    return n
                                }
                            }, {
                                key: "has",
                                value: function(t) {
                                    if (!(t instanceof a)) throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object.");
                                    return t._owner === this
                                }
                            }, {
                                key: "dispatch",
                                value: function() {
                                    var t = this._head;
                                    if (!t) return !1;
                                    for (; t;) t._once && this.detach(t), t._fn.apply(t._thisArg, arguments), t = t._next;
                                    return !0
                                }
                            }, {
                                key: "add",
                                value: function(t) {
                                    var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1];
                                    if ("function" != typeof t) throw new Error("MiniSignal#add(): First arg must be a Function.");
                                    return i(this, new a(t, !1, e))
                                }
                            }, {
                                key: "once",
                                value: function(t) {
                                    var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1];
                                    if ("function" != typeof t) throw new Error("MiniSignal#once(): First arg must be a Function.");
                                    return i(this, new a(t, !0, e))
                                }
                            }, {
                                key: "detach",
                                value: function(t) {
                                    if (!(t instanceof a)) throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object.");
                                    return t._owner !== this ? this : (t._prev && (t._prev._next = t._next), t._next && (t._next._prev = t._prev), t === this._head ? (this._head = t._next, null === t._next && (this._tail = null)) : t === this._tail && (this._tail = t._prev, this._tail._next = null), t._owner = null, this)
                                }
                            }, {
                                key: "detachAll",
                                value: function() {
                                    var t = this._head;
                                    if (!t) return this;
                                    for (this._head = this._tail = null; t;) t._owner = null, t = t._next;
                                    return this
                                }
                            }]), t
                        }();
                    s.MiniSignalBinding = a, n.default = s, e.exports = n.default
                }, {}],
                38: [function(t, e, n) {
                    "use strict";
                    e.exports = function(t, e) {
                        e = e || {};
                        for (var n = {
                                key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
                                q: {
                                    name: "queryKey",
                                    parser: /(?:^|&)([^&=]*)=?([^&]*)/g
                                },
                                parser: {
                                    strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
                                    loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
                                }
                            }, r = n.parser[e.strictMode ? "strict" : "loose"].exec(t), i = {}, o = 14; o--;) i[n.key[o]] = r[o] || "";
                        return i[n.q.name] = {}, i[n.key[12]].replace(n.q.parser, function(t, e, r) {
                            e && (i[n.q.name][e] = r)
                        }), i
                    }
                }, {}],
                39: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = t("../core"),
                        a = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(o),
                        s = t("ismobilejs"),
                        u = r(s),
                        l = t("./accessibleTarget"),
                        c = r(l);
                    a.utils.mixins.delayMixin(a.DisplayObject.prototype, c.default);
                    var h = 100,
                        d = 0,
                        f = 0,
                        p = 2,
                        g = function() {
                            function t(e) {
                                i(this, t), !u.default.tablet && !u.default.phone || navigator.isCocoonJS || this.createTouchHook();
                                var n = document.createElement("div");
                                n.style.width = h + "px", n.style.height = h + "px", n.style.position = "absolute", n.style.top = d + "px", n.style.left = f + "px", n.style.zIndex = p, this.div = n, this.pool = [], this.renderId = 0, this.debug = !1, this.renderer = e, this.children = [], this._onKeyDown = this._onKeyDown.bind(this), this._onMouseMove = this._onMouseMove.bind(this), this.isActive = !1, this.isMobileAccessabillity = !1, window.addEventListener("keydown", this._onKeyDown, !1)
                            }
                            return t.prototype.createTouchHook = function() {
                                var t = this,
                                    e = document.createElement("button");
                                e.style.width = "1px", e.style.height = "1px", e.style.position = "absolute", e.style.top = "-1000px", e.style.left = "-1000px", e.style.zIndex = 2, e.style.backgroundColor = "#FF0000", e.title = "HOOK DIV", e.addEventListener("focus", function() {
                                    t.isMobileAccessabillity = !0, t.activate(), document.body.removeChild(e)
                                }), document.body.appendChild(e)
                            }, t.prototype.activate = function() {
                                this.isActive || (this.isActive = !0, window.document.addEventListener("mousemove", this._onMouseMove, !0), window.removeEventListener("keydown", this._onKeyDown, !1), this.renderer.on("postrender", this.update, this), this.renderer.view.parentNode && this.renderer.view.parentNode.appendChild(this.div))
                            }, t.prototype.deactivate = function() {
                                this.isActive && !this.isMobileAccessabillity && (this.isActive = !1, window.document.removeEventListener("mousemove", this._onMouseMove), window.addEventListener("keydown", this._onKeyDown, !1), this.renderer.off("postrender", this.update), this.div.parentNode && this.div.parentNode.removeChild(this.div))
                            }, t.prototype.updateAccessibleObjects = function(t) {
                                if (t.visible) {
                                    t.accessible && t.interactive && (t._accessibleActive || this.addChild(t), t.renderId = this.renderId);
                                    for (var e = t.children, n = e.length - 1; n >= 0; n--) this.updateAccessibleObjects(e[n])
                                }
                            }, t.prototype.update = function() {
                                if (this.renderer.renderingToScreen) {
                                    this.updateAccessibleObjects(this.renderer._lastObjectRendered);
                                    var t = this.renderer.view.getBoundingClientRect(),
                                        e = t.width / this.renderer.width,
                                        n = t.height / this.renderer.height,
                                        r = this.div;
                                    r.style.left = t.left + "px", r.style.top = t.top + "px", r.style.width = this.renderer.width + "px", r.style.height = this.renderer.height + "px";
                                    for (var i = 0; i < this.children.length; i++) {
                                        var o = this.children[i];
                                        if (o.renderId !== this.renderId) o._accessibleActive = !1, a.utils.removeItems(this.children, i, 1), this.div.removeChild(o._accessibleDiv), this.pool.push(o._accessibleDiv), o._accessibleDiv = null, i--, 0 === this.children.length && this.deactivate();
                                        else {
                                            r = o._accessibleDiv;
                                            var s = o.hitArea,
                                                u = o.worldTransform;
                                            o.hitArea ? (r.style.left = (u.tx + s.x * u.a) * e + "px", r.style.top = (u.ty + s.y * u.d) * n + "px", r.style.width = s.width * u.a * e + "px", r.style.height = s.height * u.d * n + "px") : (s = o.getBounds(), this.capHitArea(s), r.style.left = s.x * e + "px", r.style.top = s.y * n + "px", r.style.width = s.width * e + "px", r.style.height = s.height * n + "px")
                                        }
                                    }
                                    this.renderId++
                                }
                            }, t.prototype.capHitArea = function(t) {
                                t.x < 0 && (t.width += t.x, t.x = 0), t.y < 0 && (t.height += t.y, t.y = 0), t.x + t.width > this.renderer.width && (t.width = this.renderer.width - t.x), t.y + t.height > this.renderer.height && (t.height = this.renderer.height - t.y)
                            }, t.prototype.addChild = function(t) {
                                var e = this.pool.pop();
                                e || (e = document.createElement("button"), e.style.width = h + "px", e.style.height = h + "px", e.style.backgroundColor = this.debug ? "rgba(255,0,0,0.5)" : "transparent", e.style.position = "absolute", e.style.zIndex = p, e.style.borderStyle = "none", e.addEventListener("click", this._onClick.bind(this)), e.addEventListener("focus", this._onFocus.bind(this)), e.addEventListener("focusout", this._onFocusOut.bind(this))), t.accessibleTitle ? e.title = t.accessibleTitle : t.accessibleTitle || t.accessibleHint || (e.title = "displayObject " + this.tabIndex), t.accessibleHint && e.setAttribute("aria-label", t.accessibleHint), t._accessibleActive = !0, t._accessibleDiv = e, e.displayObject = t, this.children.push(t), this.div.appendChild(t._accessibleDiv), t._accessibleDiv.tabIndex = t.tabIndex
                            }, t.prototype._onClick = function(t) {
                                var e = this.renderer.plugins.interaction;
                                e.dispatchEvent(t.target.displayObject, "click", e.eventData)
                            }, t.prototype._onFocus = function(t) {
                                var e = this.renderer.plugins.interaction;
                                e.dispatchEvent(t.target.displayObject, "mouseover", e.eventData)
                            }, t.prototype._onFocusOut = function(t) {
                                var e = this.renderer.plugins.interaction;
                                e.dispatchEvent(t.target.displayObject, "mouseout", e.eventData)
                            }, t.prototype._onKeyDown = function(t) {
                                9 === t.keyCode && this.activate()
                            }, t.prototype._onMouseMove = function() {
                                this.deactivate()
                            }, t.prototype.destroy = function() {
                                this.div = null;
                                for (var t = 0; t < this.children.length; t++) this.children[t].div = null;
                                window.document.removeEventListener("mousemove", this._onMouseMove), window.removeEventListener("keydown", this._onKeyDown), this.pool = null, this.children = null, this.renderer = null
                            }, t
                        }();
                    n.default = g, a.WebGLRenderer.registerPlugin("accessibility", g), a.CanvasRenderer.registerPlugin("accessibility", g)
                }, {
                    "../core": 64,
                    "./accessibleTarget": 40,
                    ismobilejs: 4
                }],
                40: [function(t, e, n) {
                    "use strict";
                    n.__esModule = !0, n.default = {
                        accessible: !1,
                        accessibleTitle: null,
                        accessibleHint: null,
                        tabIndex: 0,
                        _accessibleActive: !1,
                        _accessibleDiv: !1
                    }
                }, {}],
                41: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./accessibleTarget");
                    Object.defineProperty(n, "accessibleTarget", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./AccessibilityManager");
                    Object.defineProperty(n, "AccessibilityManager", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    })
                }, {
                    "./AccessibilityManager": 39,
                    "./accessibleTarget": 40
                }],
                42: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        a = t("./autoDetectRenderer"),
                        s = t("./display/Container"),
                        u = r(s),
                        l = t("./ticker"),
                        c = t("./settings"),
                        h = r(c),
                        d = t("./const"),
                        f = function() {
                            function t(e, n, r, o, s) {
                                i(this, t), "number" == typeof e && (e = Object.assign({
                                    width: e,
                                    height: n || h.default.RENDER_OPTIONS.height,
                                    forceCanvas: !!o,
                                    sharedTicker: !!s
                                }, r)), this._options = e = Object.assign({
                                    sharedTicker: !1,
                                    forceCanvas: !1,
                                    sharedLoader: !1
                                }, e), this.renderer = (0, a.autoDetectRenderer)(e), this.stage = new u.default, this._ticker = null, this.ticker = e.sharedTicker ? l.shared : new l.Ticker, this.start()
                            }
                            return t.prototype.render = function() {
                                this.renderer.render(this.stage)
                            }, t.prototype.stop = function() {
                                this._ticker.stop()
                            }, t.prototype.start = function() {
                                this._ticker.start()
                            }, t.prototype.destroy = function(t) {
                                var e = this._ticker;
                                this.ticker = null, e.destroy(), this.stage.destroy(), this.stage = null, this.renderer.destroy(t), this.renderer = null, this._options = null
                            }, o(t, [{
                                key: "ticker",
                                set: function(t) {
                                    this._ticker && this._ticker.remove(this.render, this), this._ticker = t, t && t.add(this.render, this, d.UPDATE_PRIORITY.LOW)
                                },
                                get: function() {
                                    return this._ticker
                                }
                            }, {
                                key: "view",
                                get: function() {
                                    return this.renderer.view
                                }
                            }, {
                                key: "screen",
                                get: function() {
                                    return this.renderer.screen
                                }
                            }]), t
                        }();
                    n.default = f
                }, {
                    "./autoDetectRenderer": 44,
                    "./const": 45,
                    "./display/Container": 47,
                    "./settings": 100,
                    "./ticker": 119
                }],
                43: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }

                    function a(t, e) {
                        if (t instanceof Array) {
                            if ("precision" !== t[0].substring(0, 9)) {
                                var n = t.slice(0);
                                return n.unshift("precision " + e + " float;"), n
                            }
                        } else if ("precision" !== t.substring(0, 9)) return "precision " + e + " float;\n" + t;
                        return t
                    }
                    n.__esModule = !0;
                    var s = t("pixi-gl-core"),
                        u = t("./settings"),
                        l = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(u),
                        c = function(t) {
                            function e(n, o, s) {
                                return r(this, e), i(this, t.call(this, n, a(o, l.default.PRECISION_VERTEX), a(s, l.default.PRECISION_FRAGMENT)))
                            }
                            return o(e, t), e
                        }(s.GLShader);
                    n.default = c
                }, {
                    "./settings": 100,
                    "pixi-gl-core": 12
                }],
                44: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e, n, r) {
                        var i = t && t.forceCanvas;
                        return void 0 !== r && (i = r), !i && a.isWebGLSupported() ? new c.default(t, e, n) : new u.default(t, e, n)
                    }
                    n.__esModule = !0, n.autoDetectRenderer = i;
                    var o = t("./utils"),
                        a = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(o),
                        s = t("./renderers/canvas/CanvasRenderer"),
                        u = r(s),
                        l = t("./renderers/webgl/WebGLRenderer"),
                        c = r(l)
                }, {
                    "./renderers/canvas/CanvasRenderer": 76,
                    "./renderers/webgl/WebGLRenderer": 83,
                    "./utils": 123
                }],
                45: [function(t, e, n) {
                    "use strict";
                    n.__esModule = !0;
                    n.VERSION = "4.5.3", n.PI_2 = 2 * Math.PI, n.RAD_TO_DEG = 180 / Math.PI, n.DEG_TO_RAD = Math.PI / 180, n.RENDERER_TYPE = {
                        UNKNOWN: 0,
                        WEBGL: 1,
                        CANVAS: 2
                    }, n.BLEND_MODES = {
                        NORMAL: 0,
                        ADD: 1,
                        MULTIPLY: 2,
                        SCREEN: 3,
                        OVERLAY: 4,
                        DARKEN: 5,
                        LIGHTEN: 6,
                        COLOR_DODGE: 7,
                        COLOR_BURN: 8,
                        HARD_LIGHT: 9,
                        SOFT_LIGHT: 10,
                        DIFFERENCE: 11,
                        EXCLUSION: 12,
                        HUE: 13,
                        SATURATION: 14,
                        COLOR: 15,
                        LUMINOSITY: 16,
                        NORMAL_NPM: 17,
                        ADD_NPM: 18,
                        SCREEN_NPM: 19
                    }, n.DRAW_MODES = {
                        POINTS: 0,
                        LINES: 1,
                        LINE_LOOP: 2,
                        LINE_STRIP: 3,
                        TRIANGLES: 4,
                        TRIANGLE_STRIP: 5,
                        TRIANGLE_FAN: 6
                    }, n.SCALE_MODES = {
                        LINEAR: 0,
                        NEAREST: 1
                    }, n.WRAP_MODES = {
                        CLAMP: 0,
                        REPEAT: 1,
                        MIRRORED_REPEAT: 2
                    }, n.GC_MODES = {
                        AUTO: 0,
                        MANUAL: 1
                    }, n.URL_FILE_EXTENSION = /\.(\w{3,4})(?:$|\?|#)/i, n.DATA_URI = /^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;(charset=[\w-]+|base64))?,(.*)/i, n.SVG_SIZE = /<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i, n.SHAPES = {
                        POLY: 0,
                        RECT: 1,
                        CIRC: 2,
                        ELIP: 3,
                        RREC: 4
                    }, n.PRECISION = {
                        LOW: "lowp",
                        MEDIUM: "mediump",
                        HIGH: "highp"
                    }, n.TRANSFORM_MODE = {
                        STATIC: 0,
                        DYNAMIC: 1
                    }, n.TEXT_GRADIENT = {
                        LINEAR_VERTICAL: 0,
                        LINEAR_HORIZONTAL: 1
                    }, n.UPDATE_PRIORITY = {
                        INTERACTION: 50,
                        HIGH: 25,
                        NORMAL: 0,
                        LOW: -25,
                        UTILITY: -50
                    }
                }, {}],
                46: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../math"),
                        o = function() {
                            function t() {
                                r(this, t), this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, this.rect = null
                            }
                            return t.prototype.isEmpty = function() {
                                return this.minX > this.maxX || this.minY > this.maxY
                            }, t.prototype.clear = function() {
                                this.updateID++, this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0
                            }, t.prototype.getRectangle = function(t) {
                                return this.minX > this.maxX || this.minY > this.maxY ? i.Rectangle.EMPTY : (t = t || new i.Rectangle(0, 0, 1, 1), t.x = this.minX, t.y = this.minY, t.width = this.maxX - this.minX, t.height = this.maxY - this.minY, t)
                            }, t.prototype.addPoint = function(t) {
                                this.minX = Math.min(this.minX, t.x), this.maxX = Math.max(this.maxX, t.x), this.minY = Math.min(this.minY, t.y), this.maxY = Math.max(this.maxY, t.y)
                            }, t.prototype.addQuad = function(t) {
                                var e = this.minX,
                                    n = this.minY,
                                    r = this.maxX,
                                    i = this.maxY,
                                    o = t[0],
                                    a = t[1];
                                e = o < e ? o : e, n = a < n ? a : n, r = o > r ? o : r, i = a > i ? a : i, o = t[2], a = t[3], e = o < e ? o : e, n = a < n ? a : n, r = o > r ? o : r, i = a > i ? a : i, o = t[4], a = t[5], e = o < e ? o : e, n = a < n ? a : n, r = o > r ? o : r, i = a > i ? a : i, o = t[6], a = t[7], e = o < e ? o : e, n = a < n ? a : n, r = o > r ? o : r, i = a > i ? a : i, this.minX = e, this.minY = n, this.maxX = r, this.maxY = i
                            }, t.prototype.addFrame = function(t, e, n, r, i) {
                                var o = t.worldTransform,
                                    a = o.a,
                                    s = o.b,
                                    u = o.c,
                                    l = o.d,
                                    c = o.tx,
                                    h = o.ty,
                                    d = this.minX,
                                    f = this.minY,
                                    p = this.maxX,
                                    g = this.maxY,
                                    m = a * e + u * n + c,
                                    y = s * e + l * n + h;
                                d = m < d ? m : d, f = y < f ? y : f, p = m > p ? m : p, g = y > g ? y : g, m = a * r + u * n + c, y = s * r + l * n + h, d = m < d ? m : d, f = y < f ? y : f, p = m > p ? m : p, g = y > g ? y : g, m = a * e + u * i + c, y = s * e + l * i + h, d = m < d ? m : d, f = y < f ? y : f, p = m > p ? m : p, g = y > g ? y : g, m = a * r + u * i + c, y = s * r + l * i + h, d = m < d ? m : d, f = y < f ? y : f, p = m > p ? m : p, g = y > g ? y : g, this.minX = d, this.minY = f, this.maxX = p, this.maxY = g
                            }, t.prototype.addVertices = function(t, e, n, r) {
                                for (var i = t.worldTransform, o = i.a, a = i.b, s = i.c, u = i.d, l = i.tx, c = i.ty, h = this.minX, d = this.minY, f = this.maxX, p = this.maxY, g = n; g < r; g += 2) {
                                    var m = e[g],
                                        y = e[g + 1],
                                        b = o * m + s * y + l,
                                        v = u * y + a * m + c;
                                    h = b < h ? b : h, d = v < d ? v : d, f = b > f ? b : f, p = v > p ? v : p
                                }
                                this.minX = h, this.minY = d, this.maxX = f, this.maxY = p
                            }, t.prototype.addBounds = function(t) {
                                var e = this.minX,
                                    n = this.minY,
                                    r = this.maxX,
                                    i = this.maxY;
                                this.minX = t.minX < e ? t.minX : e, this.minY = t.minY < n ? t.minY : n, this.maxX = t.maxX > r ? t.maxX : r, this.maxY = t.maxY > i ? t.maxY : i
                            }, t.prototype.addBoundsMask = function(t, e) {
                                var n = t.minX > e.minX ? t.minX : e.minX,
                                    r = t.minY > e.minY ? t.minY : e.minY,
                                    i = t.maxX < e.maxX ? t.maxX : e.maxX,
                                    o = t.maxY < e.maxY ? t.maxY : e.maxY;
                                if (n <= i && r <= o) {
                                    var a = this.minX,
                                        s = this.minY,
                                        u = this.maxX,
                                        l = this.maxY;
                                    this.minX = n < a ? n : a, this.minY = r < s ? r : s, this.maxX = i > u ? i : u, this.maxY = o > l ? o : l
                                }
                            }, t.prototype.addBoundsArea = function(t, e) {
                                var n = t.minX > e.x ? t.minX : e.x,
                                    r = t.minY > e.y ? t.minY : e.y,
                                    i = t.maxX < e.x + e.width ? t.maxX : e.x + e.width,
                                    o = t.maxY < e.y + e.height ? t.maxY : e.y + e.height;
                                if (n <= i && r <= o) {
                                    var a = this.minX,
                                        s = this.minY,
                                        u = this.maxX,
                                        l = this.maxY;
                                    this.minX = n < a ? n : a, this.minY = r < s ? r : s, this.maxX = i > u ? i : u, this.maxY = o > l ? o : l
                                }
                            }, t
                        }();
                    n.default = o
                }, {
                    "../math": 69
                }],
                47: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../utils"),
                        u = t("./DisplayObject"),
                        l = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(u),
                        c = function(t) {
                            function e() {
                                r(this, e);
                                var n = i(this, t.call(this));
                                return n.children = [], n
                            }
                            return o(e, t), e.prototype.onChildrenChange = function() {}, e.prototype.addChild = function(t) {
                                var e = arguments.length;
                                if (e > 1)
                                    for (var n = 0; n < e; n++) this.addChild(arguments[n]);
                                else t.parent && t.parent.removeChild(t), t.parent = this, t.transform._parentID = -1, this.children.push(t), this._boundsID++, this.onChildrenChange(this.children.length - 1), t.emit("added", this);
                                return t
                            }, e.prototype.addChildAt = function(t, e) {
                                if (e < 0 || e > this.children.length) throw new Error(t + "addChildAt: The index " + e + " supplied is out of bounds " + this.children.length);
                                return t.parent && t.parent.removeChild(t), t.parent = this, t.transform._parentID = -1, this.children.splice(e, 0, t), this._boundsID++, this.onChildrenChange(e), t.emit("added", this), t
                            }, e.prototype.swapChildren = function(t, e) {
                                if (t !== e) {
                                    var n = this.getChildIndex(t),
                                        r = this.getChildIndex(e);
                                    this.children[n] = e, this.children[r] = t, this.onChildrenChange(n < r ? n : r)
                                }
                            }, e.prototype.getChildIndex = function(t) {
                                var e = this.children.indexOf(t);
                                if (-1 === e) throw new Error("The supplied DisplayObject must be a child of the caller");
                                return e
                            }, e.prototype.setChildIndex = function(t, e) {
                                if (e < 0 || e >= this.children.length) throw new Error("The supplied index is out of bounds");
                                var n = this.getChildIndex(t);
                                (0, s.removeItems)(this.children, n, 1), this.children.splice(e, 0, t), this.onChildrenChange(e)
                            }, e.prototype.getChildAt = function(t) {
                                if (t < 0 || t >= this.children.length) throw new Error("getChildAt: Index (" + t + ") does not exist.");
                                return this.children[t]
                            }, e.prototype.removeChild = function(t) {
                                var e = arguments.length;
                                if (e > 1)
                                    for (var n = 0; n < e; n++) this.removeChild(arguments[n]);
                                else {
                                    var r = this.children.indexOf(t);
                                    if (-1 === r) return null;
                                    t.parent = null, t.transform._parentID = -1, (0, s.removeItems)(this.children, r, 1), this._boundsID++, this.onChildrenChange(r), t.emit("removed", this)
                                }
                                return t
                            }, e.prototype.removeChildAt = function(t) {
                                var e = this.getChildAt(t);
                                return e.parent = null, e.transform._parentID = -1, (0, s.removeItems)(this.children, t, 1), this._boundsID++, this.onChildrenChange(t), e.emit("removed", this), e
                            }, e.prototype.removeChildren = function() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    e = arguments[1],
                                    n = t,
                                    r = "number" == typeof e ? e : this.children.length,
                                    i = r - n,
                                    o = void 0;
                                if (i > 0 && i <= r) {
                                    o = this.children.splice(n, i);
                                    for (var a = 0; a < o.length; ++a) o[a].parent = null, o[a].transform && (o[a].transform._parentID = -1);
                                    this._boundsID++, this.onChildrenChange(t);
                                    for (var s = 0; s < o.length; ++s) o[s].emit("removed", this);
                                    return o
                                }
                                if (0 === i && 0 === this.children.length) return [];
                                throw new RangeError("removeChildren: numeric values are outside the acceptable range.")
                            }, e.prototype.updateTransform = function() {
                                this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha;
                                for (var t = 0, e = this.children.length; t < e; ++t) {
                                    var n = this.children[t];
                                    n.visible && n.updateTransform()
                                }
                            }, e.prototype.calculateBounds = function() {
                                this._bounds.clear(), this._calculateBounds();
                                for (var t = 0; t < this.children.length; t++) {
                                    var e = this.children[t];
                                    e.visible && e.renderable && (e.calculateBounds(), e._mask ? (e._mask.calculateBounds(), this._bounds.addBoundsMask(e._bounds, e._mask._bounds)) : e.filterArea ? this._bounds.addBoundsArea(e._bounds, e.filterArea) : this._bounds.addBounds(e._bounds))
                                }
                                this._lastBoundsID = this._boundsID
                            }, e.prototype._calculateBounds = function() {}, e.prototype.renderWebGL = function(t) {
                                if (this.visible && !(this.worldAlpha <= 0) && this.renderable)
                                    if (this._mask || this._filters) this.renderAdvancedWebGL(t);
                                    else {
                                        this._renderWebGL(t);
                                        for (var e = 0, n = this.children.length; e < n; ++e) this.children[e].renderWebGL(t)
                                    }
                            }, e.prototype.renderAdvancedWebGL = function(t) {
                                t.flush();
                                var e = this._filters,
                                    n = this._mask;
                                if (e) {
                                    this._enabledFilters || (this._enabledFilters = []), this._enabledFilters.length = 0;
                                    for (var r = 0; r < e.length; r++) e[r].enabled && this._enabledFilters.push(e[r]);
                                    this._enabledFilters.length && t.filterManager.pushFilter(this, this._enabledFilters)
                                }
                                n && t.maskManager.pushMask(this, this._mask), this._renderWebGL(t);
                                for (var i = 0, o = this.children.length; i < o; i++) this.children[i].renderWebGL(t);
                                t.flush(), n && t.maskManager.popMask(this, this._mask), e && this._enabledFilters && this._enabledFilters.length && t.filterManager.popFilter()
                            }, e.prototype._renderWebGL = function(t) {}, e.prototype._renderCanvas = function(t) {}, e.prototype.renderCanvas = function(t) {
                                if (this.visible && !(this.worldAlpha <= 0) && this.renderable) {
                                    this._mask && t.maskManager.pushMask(this._mask), this._renderCanvas(t);
                                    for (var e = 0, n = this.children.length; e < n; ++e) this.children[e].renderCanvas(t);
                                    this._mask && t.maskManager.popMask(t)
                                }
                            }, e.prototype.destroy = function(e) {
                                t.prototype.destroy.call(this);
                                var n = "boolean" == typeof e ? e : e && e.children,
                                    r = this.removeChildren(0, this.children.length);
                                if (n)
                                    for (var i = 0; i < r.length; ++i) r[i].destroy(e)
                            }, a(e, [{
                                key: "width",
                                get: function() {
                                    return this.scale.x * this.getLocalBounds().width
                                },
                                set: function(t) {
                                    var e = this.getLocalBounds().width;
                                    this.scale.x = 0 !== e ? t / e : 1, this._width = t
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.scale.y * this.getLocalBounds().height
                                },
                                set: function(t) {
                                    var e = this.getLocalBounds().height;
                                    this.scale.y = 0 !== e ? t / e : 1, this._height = t
                                }
                            }]), e
                        }(l.default);
                    n.default = c, c.prototype.containerUpdateTransform = c.prototype.updateTransform
                }, {
                    "../utils": 123,
                    "./DisplayObject": 48
                }],
                48: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("eventemitter3"),
                        l = r(u),
                        c = t("../const"),
                        h = t("../settings"),
                        d = r(h),
                        f = t("./TransformStatic"),
                        p = r(f),
                        g = t("./Transform"),
                        m = r(g),
                        y = t("./Bounds"),
                        b = r(y),
                        v = t("../math"),
                        _ = function(t) {
                            function e() {
                                i(this, e);
                                var n = o(this, t.call(this)),
                                    r = d.default.TRANSFORM_MODE === c.TRANSFORM_MODE.STATIC ? p.default : m.default;
                                return n.tempDisplayObjectParent = null, n.transform = new r, n.alpha = 1, n.visible = !0, n.renderable = !0, n.parent = null, n.worldAlpha = 1, n.filterArea = null, n._filters = null, n._enabledFilters = null, n._bounds = new b.default, n._boundsID = 0, n._lastBoundsID = -1, n._boundsRect = null, n._localBoundsRect = null, n._mask = null, n._destroyed = !1, n
                            }
                            return a(e, t), e.prototype.updateTransform = function() {
                                this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha, this._bounds.updateID++
                            }, e.prototype._recursivePostUpdateTransform = function() {
                                this.parent ? (this.parent._recursivePostUpdateTransform(), this.transform.updateTransform(this.parent.transform)) : this.transform.updateTransform(this._tempDisplayObjectParent.transform)
                            }, e.prototype.getBounds = function(t, e) {
                                return t || (this.parent ? (this._recursivePostUpdateTransform(), this.updateTransform()) : (this.parent = this._tempDisplayObjectParent, this.updateTransform(), this.parent = null)), this._boundsID !== this._lastBoundsID && this.calculateBounds(), e || (this._boundsRect || (this._boundsRect = new v.Rectangle), e = this._boundsRect), this._bounds.getRectangle(e)
                            }, e.prototype.getLocalBounds = function(t) {
                                var e = this.transform,
                                    n = this.parent;
                                this.parent = null, this.transform = this._tempDisplayObjectParent.transform, t || (this._localBoundsRect || (this._localBoundsRect = new v.Rectangle), t = this._localBoundsRect);
                                var r = this.getBounds(!1, t);
                                return this.parent = n, this.transform = e, r
                            }, e.prototype.toGlobal = function(t, e) {
                                return arguments.length > 2 && void 0 !== arguments[2] && arguments[2] || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.apply(t, e)
                            }, e.prototype.toLocal = function(t, e, n, r) {
                                return e && (t = e.toGlobal(t, n, r)), r || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.applyInverse(t, n)
                            }, e.prototype.renderWebGL = function(t) {}, e.prototype.renderCanvas = function(t) {}, e.prototype.setParent = function(t) {
                                if (!t || !t.addChild) throw new Error("setParent: Argument must be a Container");
                                return t.addChild(this), t
                            }, e.prototype.setTransform = function() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1,
                                    r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1,
                                    i = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0,
                                    o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0,
                                    a = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0,
                                    s = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0,
                                    u = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0;
                                return this.position.x = t, this.position.y = e, this.scale.x = n || 1, this.scale.y = r || 1, this.rotation = i, this.skew.x = o, this.skew.y = a, this.pivot.x = s, this.pivot.y = u, this
                            }, e.prototype.destroy = function() {
                                this.removeAllListeners(), this.parent && this.parent.removeChild(this), this.transform = null, this.parent = null, this._bounds = null, this._currentBounds = null, this._mask = null, this.filterArea = null, this.interactive = !1, this.interactiveChildren = !1, this._destroyed = !0
                            }, s(e, [{
                                key: "_tempDisplayObjectParent",
                                get: function() {
                                    return null === this.tempDisplayObjectParent && (this.tempDisplayObjectParent = new e), this.tempDisplayObjectParent
                                }
                            }, {
                                key: "x",
                                get: function() {
                                    return this.position.x
                                },
                                set: function(t) {
                                    this.transform.position.x = t
                                }
                            }, {
                                key: "y",
                                get: function() {
                                    return this.position.y
                                },
                                set: function(t) {
                                    this.transform.position.y = t
                                }
                            }, {
                                key: "worldTransform",
                                get: function() {
                                    return this.transform.worldTransform
                                }
                            }, {
                                key: "localTransform",
                                get: function() {
                                    return this.transform.localTransform
                                }
                            }, {
                                key: "position",
                                get: function() {
                                    return this.transform.position
                                },
                                set: function(t) {
                                    this.transform.position.copy(t)
                                }
                            }, {
                                key: "scale",
                                get: function() {
                                    return this.transform.scale
                                },
                                set: function(t) {
                                    this.transform.scale.copy(t)
                                }
                            }, {
                                key: "pivot",
                                get: function() {
                                    return this.transform.pivot
                                },
                                set: function(t) {
                                    this.transform.pivot.copy(t)
                                }
                            }, {
                                key: "skew",
                                get: function() {
                                    return this.transform.skew
                                },
                                set: function(t) {
                                    this.transform.skew.copy(t)
                                }
                            }, {
                                key: "rotation",
                                get: function() {
                                    return this.transform.rotation
                                },
                                set: function(t) {
                                    this.transform.rotation = t
                                }
                            }, {
                                key: "worldVisible",
                                get: function() {
                                    var t = this;
                                    do {
                                        if (!t.visible) return !1;
                                        t = t.parent
                                    } while (t);
                                    return !0
                                }
                            }, {
                                key: "mask",
                                get: function() {
                                    return this._mask
                                },
                                set: function(t) {
                                    this._mask && (this._mask.renderable = !0), this._mask = t, this._mask && (this._mask.renderable = !1)
                                }
                            }, {
                                key: "filters",
                                get: function() {
                                    return this._filters && this._filters.slice()
                                },
                                set: function(t) {
                                    this._filters = t && t.slice()
                                }
                            }]), e
                        }(l.default);
                    n.default = _, _.prototype.displayObjectUpdateTransform = _.prototype.updateTransform
                }, {
                    "../const": 45,
                    "../math": 69,
                    "../settings": 100,
                    "./Bounds": 46,
                    "./Transform": 49,
                    "./TransformStatic": 51,
                    eventemitter3: 3
                }],
                49: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../math"),
                        u = t("./TransformBase"),
                        l = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(u),
                        c = function(t) {
                            function e() {
                                r(this, e);
                                var n = i(this, t.call(this));
                                return n.position = new s.Point(0, 0), n.scale = new s.Point(1, 1), n.skew = new s.ObservablePoint(n.updateSkew, n, 0, 0), n.pivot = new s.Point(0, 0), n._rotation = 0, n._cx = 1, n._sx = 0, n._cy = 0, n._sy = 1, n
                            }
                            return o(e, t), e.prototype.updateSkew = function() {
                                this._cx = Math.cos(this._rotation + this.skew._y), this._sx = Math.sin(this._rotation + this.skew._y), this._cy = -Math.sin(this._rotation - this.skew._x), this._sy = Math.cos(this._rotation - this.skew._x)
                            }, e.prototype.updateLocalTransform = function() {
                                var t = this.localTransform;
                                t.a = this._cx * this.scale.x, t.b = this._sx * this.scale.x, t.c = this._cy * this.scale.y, t.d = this._sy * this.scale.y, t.tx = this.position.x - (this.pivot.x * t.a + this.pivot.y * t.c), t.ty = this.position.y - (this.pivot.x * t.b + this.pivot.y * t.d)
                            }, e.prototype.updateTransform = function(t) {
                                var e = this.localTransform;
                                e.a = this._cx * this.scale.x, e.b = this._sx * this.scale.x, e.c = this._cy * this.scale.y, e.d = this._sy * this.scale.y, e.tx = this.position.x - (this.pivot.x * e.a + this.pivot.y * e.c), e.ty = this.position.y - (this.pivot.x * e.b + this.pivot.y * e.d);
                                var n = t.worldTransform,
                                    r = this.worldTransform;
                                r.a = e.a * n.a + e.b * n.c, r.b = e.a * n.b + e.b * n.d, r.c = e.c * n.a + e.d * n.c, r.d = e.c * n.b + e.d * n.d, r.tx = e.tx * n.a + e.ty * n.c + n.tx, r.ty = e.tx * n.b + e.ty * n.d + n.ty, this._worldID++
                            }, e.prototype.setFromMatrix = function(t) {
                                t.decompose(this)
                            }, a(e, [{
                                key: "rotation",
                                get: function() {
                                    return this._rotation
                                },
                                set: function(t) {
                                    this._rotation = t, this.updateSkew()
                                }
                            }]), e
                        }(l.default);
                    n.default = c
                }, {
                    "../math": 69,
                    "./TransformBase": 50
                }],
                50: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../math"),
                        o = function() {
                            function t() {
                                r(this, t), this.worldTransform = new i.Matrix, this.localTransform = new i.Matrix, this._worldID = 0, this._parentID = 0
                            }
                            return t.prototype.updateLocalTransform = function() {}, t.prototype.updateTransform = function(t) {
                                var e = t.worldTransform,
                                    n = this.worldTransform,
                                    r = this.localTransform;
                                n.a = r.a * e.a + r.b * e.c, n.b = r.a * e.b + r.b * e.d, n.c = r.c * e.a + r.d * e.c, n.d = r.c * e.b + r.d * e.d, n.tx = r.tx * e.a + r.ty * e.c + e.tx, n.ty = r.tx * e.b + r.ty * e.d + e.ty,
                                    this._worldID++
                            }, t
                        }();
                    n.default = o, o.prototype.updateWorldTransform = o.prototype.updateTransform, o.IDENTITY = new o
                }, {
                    "../math": 69
                }],
                51: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../math"),
                        u = t("./TransformBase"),
                        l = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(u),
                        c = function(t) {
                            function e() {
                                r(this, e);
                                var n = i(this, t.call(this));
                                return n.position = new s.ObservablePoint(n.onChange, n, 0, 0), n.scale = new s.ObservablePoint(n.onChange, n, 1, 1), n.pivot = new s.ObservablePoint(n.onChange, n, 0, 0), n.skew = new s.ObservablePoint(n.updateSkew, n, 0, 0), n._rotation = 0, n._cx = 1, n._sx = 0, n._cy = 0, n._sy = 1, n._localID = 0, n._currentLocalID = 0, n
                            }
                            return o(e, t), e.prototype.onChange = function() {
                                this._localID++
                            }, e.prototype.updateSkew = function() {
                                this._cx = Math.cos(this._rotation + this.skew._y), this._sx = Math.sin(this._rotation + this.skew._y), this._cy = -Math.sin(this._rotation - this.skew._x), this._sy = Math.cos(this._rotation - this.skew._x), this._localID++
                            }, e.prototype.updateLocalTransform = function() {
                                var t = this.localTransform;
                                this._localID !== this._currentLocalID && (t.a = this._cx * this.scale._x, t.b = this._sx * this.scale._x, t.c = this._cy * this.scale._y, t.d = this._sy * this.scale._y, t.tx = this.position._x - (this.pivot._x * t.a + this.pivot._y * t.c), t.ty = this.position._y - (this.pivot._x * t.b + this.pivot._y * t.d), this._currentLocalID = this._localID, this._parentID = -1)
                            }, e.prototype.updateTransform = function(t) {
                                var e = this.localTransform;
                                if (this._localID !== this._currentLocalID && (e.a = this._cx * this.scale._x, e.b = this._sx * this.scale._x, e.c = this._cy * this.scale._y, e.d = this._sy * this.scale._y, e.tx = this.position._x - (this.pivot._x * e.a + this.pivot._y * e.c), e.ty = this.position._y - (this.pivot._x * e.b + this.pivot._y * e.d), this._currentLocalID = this._localID, this._parentID = -1), this._parentID !== t._worldID) {
                                    var n = t.worldTransform,
                                        r = this.worldTransform;
                                    r.a = e.a * n.a + e.b * n.c, r.b = e.a * n.b + e.b * n.d, r.c = e.c * n.a + e.d * n.c, r.d = e.c * n.b + e.d * n.d, r.tx = e.tx * n.a + e.ty * n.c + n.tx, r.ty = e.tx * n.b + e.ty * n.d + n.ty, this._parentID = t._worldID, this._worldID++
                                }
                            }, e.prototype.setFromMatrix = function(t) {
                                t.decompose(this), this._localID++
                            }, a(e, [{
                                key: "rotation",
                                get: function() {
                                    return this._rotation
                                },
                                set: function(t) {
                                    this._rotation = t, this.updateSkew()
                                }
                            }]), e
                        }(l.default);
                    n.default = c
                }, {
                    "../math": 69,
                    "./TransformBase": 50
                }],
                52: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("../display/Container"),
                        u = r(s),
                        l = t("../textures/RenderTexture"),
                        c = r(l),
                        h = t("../textures/Texture"),
                        d = r(h),
                        f = t("./GraphicsData"),
                        p = r(f),
                        g = t("../sprites/Sprite"),
                        m = r(g),
                        y = t("../math"),
                        b = t("../utils"),
                        v = t("../const"),
                        _ = t("../display/Bounds"),
                        x = r(_),
                        T = t("./utils/bezierCurveTo"),
                        w = r(T),
                        S = t("../renderers/canvas/CanvasRenderer"),
                        C = r(S),
                        E = void 0,
                        O = new y.Matrix,
                        P = new y.Point,
                        A = new Float32Array(4),
                        R = new Float32Array(4),
                        M = function(t) {
                            function e() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                                i(this, e);
                                var r = o(this, t.call(this));
                                return r.fillAlpha = 1, r.lineWidth = 0, r.nativeLines = n, r.lineColor = 0, r.graphicsData = [], r.tint = 16777215, r._prevTint = 16777215, r.blendMode = v.BLEND_MODES.NORMAL, r.currentPath = null, r._webGL = {}, r.isMask = !1, r.boundsPadding = 0, r._localBounds = new x.default, r.dirty = 0, r.fastRectDirty = -1, r.clearDirty = 0, r.boundsDirty = -1, r.cachedSpriteDirty = !1, r._spriteRect = null, r._fastRect = !1, r
                            }
                            return a(e, t), e.prototype.clone = function() {
                                var t = new e;
                                t.renderable = this.renderable, t.fillAlpha = this.fillAlpha, t.lineWidth = this.lineWidth, t.lineColor = this.lineColor, t.tint = this.tint, t.blendMode = this.blendMode, t.isMask = this.isMask, t.boundsPadding = this.boundsPadding, t.dirty = 0, t.cachedSpriteDirty = this.cachedSpriteDirty;
                                for (var n = 0; n < this.graphicsData.length; ++n) t.graphicsData.push(this.graphicsData[n].clone());
                                return t.currentPath = t.graphicsData[t.graphicsData.length - 1], t.updateLocalBounds(), t
                            }, e.prototype.lineStyle = function() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;
                                if (this.lineWidth = t, this.lineColor = e, this.lineAlpha = n, this.currentPath)
                                    if (this.currentPath.shape.points.length) {
                                        var r = new y.Polygon(this.currentPath.shape.points.slice(-2));
                                        r.closed = !1, this.drawShape(r)
                                    } else this.currentPath.lineWidth = this.lineWidth, this.currentPath.lineColor = this.lineColor, this.currentPath.lineAlpha = this.lineAlpha;
                                return this
                            }, e.prototype.moveTo = function(t, e) {
                                var n = new y.Polygon([t, e]);
                                return n.closed = !1, this.drawShape(n), this
                            }, e.prototype.lineTo = function(t, e) {
                                return this.currentPath.shape.points.push(t, e), this.dirty++, this
                            }, e.prototype.quadraticCurveTo = function(t, e, n, r) {
                                this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0);
                                var i = this.currentPath.shape.points,
                                    o = 0,
                                    a = 0;
                                0 === i.length && this.moveTo(0, 0);
                                for (var s = i[i.length - 2], u = i[i.length - 1], l = 1; l <= 20; ++l) {
                                    var c = l / 20;
                                    o = s + (t - s) * c, a = u + (e - u) * c, i.push(o + (t + (n - t) * c - o) * c, a + (e + (r - e) * c - a) * c)
                                }
                                return this.dirty++, this
                            }, e.prototype.bezierCurveTo = function(t, e, n, r, i, o) {
                                this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0);
                                var a = this.currentPath.shape.points,
                                    s = a[a.length - 2],
                                    u = a[a.length - 1];
                                return a.length -= 2, (0, w.default)(s, u, t, e, n, r, i, o, a), this.dirty++, this
                            }, e.prototype.arcTo = function(t, e, n, r, i) {
                                this.currentPath ? 0 === this.currentPath.shape.points.length && this.currentPath.shape.points.push(t, e) : this.moveTo(t, e);
                                var o = this.currentPath.shape.points,
                                    a = o[o.length - 2],
                                    s = o[o.length - 1],
                                    u = s - e,
                                    l = a - t,
                                    c = r - e,
                                    h = n - t,
                                    d = Math.abs(u * h - l * c);
                                if (d < 1e-8 || 0 === i) o[o.length - 2] === t && o[o.length - 1] === e || o.push(t, e);
                                else {
                                    var f = u * u + l * l,
                                        p = c * c + h * h,
                                        g = u * c + l * h,
                                        m = i * Math.sqrt(f) / d,
                                        y = i * Math.sqrt(p) / d,
                                        b = m * g / f,
                                        v = y * g / p,
                                        _ = m * h + y * l,
                                        x = m * c + y * u,
                                        T = l * (y + b),
                                        w = u * (y + b),
                                        S = h * (m + v),
                                        C = c * (m + v),
                                        E = Math.atan2(w - x, T - _),
                                        O = Math.atan2(C - x, S - _);
                                    this.arc(_ + t, x + e, i, E, O, l * c > h * u)
                                }
                                return this.dirty++, this
                            }, e.prototype.arc = function(t, e, n, r, i) {
                                var o = arguments.length > 5 && void 0 !== arguments[5] && arguments[5];
                                if (r === i) return this;
                                !o && i <= r ? i += 2 * Math.PI : o && r <= i && (r += 2 * Math.PI);
                                var a = i - r,
                                    s = 40 * Math.ceil(Math.abs(a) / (2 * Math.PI));
                                if (0 === a) return this;
                                var u = t + Math.cos(r) * n,
                                    l = e + Math.sin(r) * n,
                                    c = this.currentPath ? this.currentPath.shape.points : null;
                                c ? c[c.length - 2] === u && c[c.length - 1] === l || c.push(u, l) : (this.moveTo(u, l), c = this.currentPath.shape.points);
                                for (var h = a / (2 * s), d = 2 * h, f = Math.cos(h), p = Math.sin(h), g = s - 1, m = g % 1 / g, y = 0; y <= g; ++y) {
                                    var b = y + m * y,
                                        v = h + r + d * b,
                                        _ = Math.cos(v),
                                        x = -Math.sin(v);
                                    c.push((f * _ + p * x) * n + t, (f * -x + p * _) * n + e)
                                }
                                return this.dirty++, this
                            }, e.prototype.beginFill = function() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
                                return this.filling = !0, this.fillColor = t, this.fillAlpha = e, this.currentPath && this.currentPath.shape.points.length <= 2 && (this.currentPath.fill = this.filling, this.currentPath.fillColor = this.fillColor, this.currentPath.fillAlpha = this.fillAlpha), this
                            }, e.prototype.endFill = function() {
                                return this.filling = !1, this.fillColor = null, this.fillAlpha = 1, this
                            }, e.prototype.drawRect = function(t, e, n, r) {
                                return this.drawShape(new y.Rectangle(t, e, n, r)), this
                            }, e.prototype.drawRoundedRect = function(t, e, n, r, i) {
                                return this.drawShape(new y.RoundedRectangle(t, e, n, r, i)), this
                            }, e.prototype.drawCircle = function(t, e, n) {
                                return this.drawShape(new y.Circle(t, e, n)), this
                            }, e.prototype.drawEllipse = function(t, e, n, r) {
                                return this.drawShape(new y.Ellipse(t, e, n, r)), this
                            }, e.prototype.drawPolygon = function(t) {
                                var e = t,
                                    n = !0;
                                if (e instanceof y.Polygon && (n = e.closed, e = e.points), !Array.isArray(e)) {
                                    e = new Array(arguments.length);
                                    for (var r = 0; r < e.length; ++r) e[r] = arguments[r]
                                }
                                var i = new y.Polygon(e);
                                return i.closed = n, this.drawShape(i), this
                            }, e.prototype.clear = function() {
                                return (this.lineWidth || this.filling || this.graphicsData.length > 0) && (this.lineWidth = 0, this.filling = !1, this.boundsDirty = -1, this.dirty++, this.clearDirty++, this.graphicsData.length = 0), this.currentPath = null, this._spriteRect = null, this
                            }, e.prototype.isFastRect = function() {
                                return 1 === this.graphicsData.length && this.graphicsData[0].shape.type === v.SHAPES.RECT && !this.graphicsData[0].lineWidth
                            }, e.prototype._renderWebGL = function(t) {
                                this.dirty !== this.fastRectDirty && (this.fastRectDirty = this.dirty, this._fastRect = this.isFastRect()), this._fastRect ? this._renderSpriteRect(t) : (t.setObjectRenderer(t.plugins.graphics), t.plugins.graphics.render(this))
                            }, e.prototype._renderSpriteRect = function(t) {
                                var e = this.graphicsData[0].shape;
                                this._spriteRect || (this._spriteRect = new m.default(new d.default(d.default.WHITE)));
                                var n = this._spriteRect;
                                if (16777215 === this.tint) n.tint = this.graphicsData[0].fillColor;
                                else {
                                    var r = A,
                                        i = R;
                                    (0, b.hex2rgb)(this.graphicsData[0].fillColor, r), (0, b.hex2rgb)(this.tint, i), r[0] *= i[0], r[1] *= i[1], r[2] *= i[2], n.tint = (0, b.rgb2hex)(r)
                                }
                                n.alpha = this.graphicsData[0].fillAlpha, n.worldAlpha = this.worldAlpha * n.alpha, n.blendMode = this.blendMode, n._texture._frame.width = e.width, n._texture._frame.height = e.height, n.transform.worldTransform = this.transform.worldTransform, n.anchor.set(-e.x / e.width, -e.y / e.height), n._onAnchorUpdate(), n._renderWebGL(t)
                            }, e.prototype._renderCanvas = function(t) {
                                !0 !== this.isMask && t.plugins.graphics.render(this)
                            }, e.prototype._calculateBounds = function() {
                                this.boundsDirty !== this.dirty && (this.boundsDirty = this.dirty, this.updateLocalBounds(), this.cachedSpriteDirty = !0);
                                var t = this._localBounds;
                                this._bounds.addFrame(this.transform, t.minX, t.minY, t.maxX, t.maxY)
                            }, e.prototype.containsPoint = function(t) {
                                this.worldTransform.applyInverse(t, P);
                                for (var e = this.graphicsData, n = 0; n < e.length; ++n) {
                                    var r = e[n];
                                    if (r.fill && (r.shape && r.shape.contains(P.x, P.y))) {
                                        if (r.holes)
                                            for (var i = 0; i < r.holes.length; i++) {
                                                var o = r.holes[i];
                                                if (o.contains(P.x, P.y)) return !1
                                            }
                                        return !0
                                    }
                                }
                                return !1
                            }, e.prototype.updateLocalBounds = function() {
                                var t = 1 / 0,
                                    e = -1 / 0,
                                    n = 1 / 0,
                                    r = -1 / 0;
                                if (this.graphicsData.length)
                                    for (var i = 0, o = 0, a = 0, s = 0, u = 0, l = 0; l < this.graphicsData.length; l++) {
                                        var c = this.graphicsData[l],
                                            h = c.type,
                                            d = c.lineWidth;
                                        if (i = c.shape, h === v.SHAPES.RECT || h === v.SHAPES.RREC) o = i.x - d / 2, a = i.y - d / 2, s = i.width + d, u = i.height + d, t = o < t ? o : t, e = o + s > e ? o + s : e, n = a < n ? a : n, r = a + u > r ? a + u : r;
                                        else if (h === v.SHAPES.CIRC) o = i.x, a = i.y, s = i.radius + d / 2, u = i.radius + d / 2, t = o - s < t ? o - s : t, e = o + s > e ? o + s : e, n = a - u < n ? a - u : n, r = a + u > r ? a + u : r;
                                        else if (h === v.SHAPES.ELIP) o = i.x, a = i.y, s = i.width + d / 2, u = i.height + d / 2, t = o - s < t ? o - s : t, e = o + s > e ? o + s : e, n = a - u < n ? a - u : n, r = a + u > r ? a + u : r;
                                        else
                                            for (var f = i.points, p = 0, g = 0, m = 0, y = 0, b = 0, _ = 0, x = 0, T = 0, w = 0; w + 2 < f.length; w += 2) o = f[w], a = f[w + 1], p = f[w + 2], g = f[w + 3], m = Math.abs(p - o), y = Math.abs(g - a), u = d, (s = Math.sqrt(m * m + y * y)) < 1e-9 || (b = (u / s * y + m) / 2, _ = (u / s * m + y) / 2, x = (p + o) / 2, T = (g + a) / 2, t = x - b < t ? x - b : t, e = x + b > e ? x + b : e, n = T - _ < n ? T - _ : n, r = T + _ > r ? T + _ : r)
                                    } else t = 0, e = 0, n = 0, r = 0;
                                var S = this.boundsPadding;
                                this._localBounds.minX = t - S, this._localBounds.maxX = e + S, this._localBounds.minY = n - S, this._localBounds.maxY = r + S
                            }, e.prototype.drawShape = function(t) {
                                this.currentPath && this.currentPath.shape.points.length <= 2 && this.graphicsData.pop(), this.currentPath = null;
                                var e = new p.default(this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.filling, this.nativeLines, t);
                                return this.graphicsData.push(e), e.type === v.SHAPES.POLY && (e.shape.closed = e.shape.closed || this.filling, this.currentPath = e), this.dirty++, e
                            }, e.prototype.generateCanvasTexture = function(t) {
                                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1,
                                    n = this.getLocalBounds(),
                                    r = c.default.create(n.width, n.height, t, e);
                                E || (E = new C.default), this.transform.updateLocalTransform(), this.transform.localTransform.copy(O), O.invert(), O.tx -= n.x, O.ty -= n.y, E.render(this, r, !0, O);
                                var i = d.default.fromCanvas(r.baseTexture._canvasRenderTarget.canvas, t, "graphics");
                                return i.baseTexture.resolution = e, i.baseTexture.update(), i
                            }, e.prototype.closePath = function() {
                                var t = this.currentPath;
                                return t && t.shape && t.shape.close(), this
                            }, e.prototype.addHole = function() {
                                var t = this.graphicsData.pop();
                                return this.currentPath = this.graphicsData[this.graphicsData.length - 1], this.currentPath.addHole(t.shape), this.currentPath = null, this
                            }, e.prototype.destroy = function(e) {
                                t.prototype.destroy.call(this, e);
                                for (var n = 0; n < this.graphicsData.length; ++n) this.graphicsData[n].destroy();
                                for (var r in this._webgl)
                                    for (var i = 0; i < this._webgl[r].data.length; ++i) this._webgl[r].data[i].destroy();
                                this._spriteRect && this._spriteRect.destroy(), this.graphicsData = null, this.currentPath = null, this._webgl = null, this._localBounds = null
                            }, e
                        }(u.default);
                    n.default = M, M._SPRITE_TEXTURE = null
                }, {
                    "../const": 45,
                    "../display/Bounds": 46,
                    "../display/Container": 47,
                    "../math": 69,
                    "../renderers/canvas/CanvasRenderer": 76,
                    "../sprites/Sprite": 101,
                    "../textures/RenderTexture": 112,
                    "../textures/Texture": 114,
                    "../utils": 123,
                    "./GraphicsData": 53,
                    "./utils/bezierCurveTo": 55
                }],
                53: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t(e, n, i, o, a, s, u, l) {
                            r(this, t), this.lineWidth = e, this.nativeLines = u, this.lineColor = n, this.lineAlpha = i, this._lineTint = n, this.fillColor = o, this.fillAlpha = a, this._fillTint = o, this.fill = s, this.holes = [], this.shape = l, this.type = l.type
                        }
                        return t.prototype.clone = function() {
                            return new t(this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.fill, this.nativeLines, this.shape)
                        }, t.prototype.addHole = function(t) {
                            this.holes.push(t)
                        }, t.prototype.destroy = function() {
                            this.shape = null, this.holes = null
                        }, t
                    }();
                    n.default = i
                }, {}],
                54: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../../renderers/canvas/CanvasRenderer"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = t("../../const"),
                        s = function() {
                            function t(e) {
                                r(this, t), this.renderer = e
                            }
                            return t.prototype.render = function(t) {
                                var e = this.renderer,
                                    n = e.context,
                                    r = t.worldAlpha,
                                    i = t.transform.worldTransform,
                                    o = e.resolution;
                                this._prevTint !== this.tint && (this.dirty = !0), n.setTransform(i.a * o, i.b * o, i.c * o, i.d * o, i.tx * o, i.ty * o), t.dirty && (this.updateGraphicsTint(t), t.dirty = !1), e.setBlendMode(t.blendMode);
                                for (var s = 0; s < t.graphicsData.length; s++) {
                                    var u = t.graphicsData[s],
                                        l = u.shape,
                                        c = u._fillTint,
                                        h = u._lineTint;
                                    if (n.lineWidth = u.lineWidth, u.type === a.SHAPES.POLY) {
                                        n.beginPath(), this.renderPolygon(l.points, l.closed, n);
                                        for (var d = 0; d < u.holes.length; d++) this.renderPolygon(u.holes[d].points, !0, n);
                                        u.fill && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                                    } else if (u.type === a.SHAPES.RECT)(u.fillColor || 0 === u.fillColor) && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fillRect(l.x, l.y, l.width, l.height)), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.strokeRect(l.x, l.y, l.width, l.height));
                                    else if (u.type === a.SHAPES.CIRC) n.beginPath(), n.arc(l.x, l.y, l.radius, 0, 2 * Math.PI), n.closePath(), u.fill && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke());
                                    else if (u.type === a.SHAPES.ELIP) {
                                        var f = 2 * l.width,
                                            p = 2 * l.height,
                                            g = l.x - f / 2,
                                            m = l.y - p / 2;
                                        n.beginPath();
                                        var y = f / 2 * .5522848,
                                            b = p / 2 * .5522848,
                                            v = g + f,
                                            _ = m + p,
                                            x = g + f / 2,
                                            T = m + p / 2;
                                        n.moveTo(g, T), n.bezierCurveTo(g, T - b, x - y, m, x, m), n.bezierCurveTo(x + y, m, v, T - b, v, T), n.bezierCurveTo(v, T + b, x + y, _, x, _), n.bezierCurveTo(x - y, _, g, T + b, g, T), n.closePath(), u.fill && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                                    } else if (u.type === a.SHAPES.RREC) {
                                        var w = l.x,
                                            S = l.y,
                                            C = l.width,
                                            E = l.height,
                                            O = l.radius,
                                            P = Math.min(C, E) / 2 | 0;
                                        O = O > P ? P : O, n.beginPath(), n.moveTo(w, S + O), n.lineTo(w, S + E - O), n.quadraticCurveTo(w, S + E, w + O, S + E), n.lineTo(w + C - O, S + E), n.quadraticCurveTo(w + C, S + E, w + C, S + E - O), n.lineTo(w + C, S + O), n.quadraticCurveTo(w + C, S, w + C - O, S), n.lineTo(w + O, S), n.quadraticCurveTo(w, S, w, S + O), n.closePath(), (u.fillColor || 0 === u.fillColor) && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                                    }
                                }
                            }, t.prototype.updateGraphicsTint = function(t) {
                                t._prevTint = t.tint;
                                for (var e = (t.tint >> 16 & 255) / 255, n = (t.tint >> 8 & 255) / 255, r = (255 & t.tint) / 255, i = 0; i < t.graphicsData.length; ++i) {
                                    var o = t.graphicsData[i],
                                        a = 0 | o.fillColor,
                                        s = 0 | o.lineColor;
                                    o._fillTint = ((a >> 16 & 255) / 255 * e * 255 << 16) + ((a >> 8 & 255) / 255 * n * 255 << 8) + (255 & a) / 255 * r * 255, o._lineTint = ((s >> 16 & 255) / 255 * e * 255 << 16) + ((s >> 8 & 255) / 255 * n * 255 << 8) + (255 & s) / 255 * r * 255
                                }
                            }, t.prototype.renderPolygon = function(t, e, n) {
                                n.moveTo(t[0], t[1]);
                                for (var r = 1; r < t.length / 2; ++r) n.lineTo(t[2 * r], t[2 * r + 1]);
                                e && n.closePath()
                            }, t.prototype.destroy = function() {
                                this.renderer = null
                            }, t
                        }();
                    n.default = s, o.default.registerPlugin("graphics", s)
                }, {
                    "../../const": 45,
                    "../../renderers/canvas/CanvasRenderer": 76
                }],
                55: [function(t, e, n) {
                    "use strict";

                    function r(t, e, n, r, i, o, a, s) {
                        var u = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : [],
                            l = 0,
                            c = 0,
                            h = 0,
                            d = 0,
                            f = 0;
                        u.push(t, e);
                        for (var p = 1, g = 0; p <= 20; ++p) g = p / 20, l = 1 - g, c = l * l, h = c * l, d = g * g, f = d * g, u.push(h * t + 3 * c * g * n + 3 * l * d * i + f * a, h * e + 3 * c * g * r + 3 * l * d * o + f * s);
                        return u
                    }
                    n.__esModule = !0, n.default = r
                }, {}],
                56: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("../../utils"),
                        u = t("../../const"),
                        l = t("../../renderers/webgl/utils/ObjectRenderer"),
                        c = r(l),
                        h = t("../../renderers/webgl/WebGLRenderer"),
                        d = r(h),
                        f = t("./WebGLGraphicsData"),
                        p = r(f),
                        g = t("./shaders/PrimitiveShader"),
                        m = r(g),
                        y = t("./utils/buildPoly"),
                        b = r(y),
                        v = t("./utils/buildRectangle"),
                        _ = r(v),
                        x = t("./utils/buildRoundedRectangle"),
                        T = r(x),
                        w = t("./utils/buildCircle"),
                        S = r(w),
                        C = function(t) {
                            function e(n) {
                                i(this, e);
                                var r = o(this, t.call(this, n));
                                return r.graphicsDataPool = [], r.primitiveShader = null, r.gl = n.gl, r.CONTEXT_UID = 0, r
                            }
                            return a(e, t), e.prototype.onContextChange = function() {
                                this.gl = this.renderer.gl, this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.primitiveShader = new m.default(this.gl)
                            }, e.prototype.destroy = function() {
                                c.default.prototype.destroy.call(this);
                                for (var t = 0; t < this.graphicsDataPool.length; ++t) this.graphicsDataPool[t].destroy();
                                this.graphicsDataPool = null
                            }, e.prototype.render = function(t) {
                                var e = this.renderer,
                                    n = e.gl,
                                    r = void 0,
                                    i = t._webGL[this.CONTEXT_UID];
                                i && t.dirty === i.dirty || (this.updateGraphics(t), i = t._webGL[this.CONTEXT_UID]);
                                var o = this.primitiveShader;
                                e.bindShader(o), e.state.setBlendMode(t.blendMode);
                                for (var a = 0, u = i.data.length; a < u; a++) {
                                    r = i.data[a];
                                    var l = r.shader;
                                    e.bindShader(l), l.uniforms.translationMatrix = t.transform.worldTransform.toArray(!0), l.uniforms.tint = (0, s.hex2rgb)(t.tint), l.uniforms.alpha = t.worldAlpha, e.bindVao(r.vao), r.nativeLines ? n.drawArrays(n.LINES, 0, r.points.length / 6) : r.vao.draw(n.TRIANGLE_STRIP, r.indices.length)
                                }
                            }, e.prototype.updateGraphics = function(t) {
                                var e = this.renderer.gl,
                                    n = t._webGL[this.CONTEXT_UID];
                                if (n || (n = t._webGL[this.CONTEXT_UID] = {
                                        lastIndex: 0,
                                        data: [],
                                        gl: e,
                                        clearDirty: -1,
                                        dirty: -1
                                    }), n.dirty = t.dirty, t.clearDirty !== n.clearDirty) {
                                    n.clearDirty = t.clearDirty;
                                    for (var r = 0; r < n.data.length; r++) this.graphicsDataPool.push(n.data[r]);
                                    n.data.length = 0, n.lastIndex = 0
                                }
                                for (var i = void 0, o = void 0, a = n.lastIndex; a < t.graphicsData.length; a++) {
                                    var s = t.graphicsData[a];
                                    i = this.getWebGLData(n, 0), s.nativeLines && s.lineWidth && (o = this.getWebGLData(n, 0, !0), n.lastIndex++), s.type === u.SHAPES.POLY && (0, b.default)(s, i, o), s.type === u.SHAPES.RECT ? (0, _.default)(s, i, o) : s.type === u.SHAPES.CIRC || s.type === u.SHAPES.ELIP ? (0, S.default)(s, i, o) : s.type === u.SHAPES.RREC && (0, T.default)(s, i, o), n.lastIndex++
                                }
                                this.renderer.bindVao(null);
                                for (var l = 0; l < n.data.length; l++) i = n.data[l], i.dirty && i.upload()
                            }, e.prototype.getWebGLData = function(t, e, n) {
                                var r = t.data[t.data.length - 1];
                                return (!r || r.nativeLines !== n || r.points.length > 32e4) && (r = this.graphicsDataPool.pop() || new p.default(this.renderer.gl, this.primitiveShader, this.renderer.state.attribsState), r.nativeLines = n, r.reset(e), t.data.push(r)), r.dirty = !0, r
                            }, e
                        }(c.default);
                    n.default = C, d.default.registerPlugin("graphics", C)
                }, {
                    "../../const": 45,
                    "../../renderers/webgl/WebGLRenderer": 83,
                    "../../renderers/webgl/utils/ObjectRenderer": 93,
                    "../../utils": 123,
                    "./WebGLGraphicsData": 57,
                    "./shaders/PrimitiveShader": 58,
                    "./utils/buildCircle": 59,
                    "./utils/buildPoly": 61,
                    "./utils/buildRectangle": 62,
                    "./utils/buildRoundedRectangle": 63
                }],
                57: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("pixi-gl-core"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = function() {
                            function t(e, n, i) {
                                r(this, t), this.gl = e, this.color = [0, 0, 0], this.points = [], this.indices = [], this.buffer = o.default.GLBuffer.createVertexBuffer(e), this.indexBuffer = o.default.GLBuffer.createIndexBuffer(e), this.dirty = !0, this.nativeLines = !1, this.glPoints = null, this.glIndices = null, this.shader = n, this.vao = new o.default.VertexArrayObject(e, i).addIndex(this.indexBuffer).addAttribute(this.buffer, n.attributes.aVertexPosition, e.FLOAT, !1, 24, 0).addAttribute(this.buffer, n.attributes.aColor, e.FLOAT, !1, 24, 8)
                            }
                            return t.prototype.reset = function() {
                                this.points.length = 0, this.indices.length = 0
                            }, t.prototype.upload = function() {
                                this.glPoints = new Float32Array(this.points), this.buffer.upload(this.glPoints), this.glIndices = new Uint16Array(this.indices), this.indexBuffer.upload(this.glIndices), this.dirty = !1
                            }, t.prototype.destroy = function() {
                                this.color = null, this.points = null, this.indices = null, this.vao.destroy(), this.buffer.destroy(), this.indexBuffer.destroy(), this.gl = null, this.buffer = null, this.indexBuffer = null, this.glPoints = null, this.glIndices = null
                            }, t
                        }();
                    n.default = a
                }, {
                    "pixi-gl-core": 12
                }],
                58: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("../../../Shader"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = function(t) {
                            function e(n) {
                                return r(this, e), i(this, t.call(this, n, ["attribute vec2 aVertexPosition;", "attribute vec4 aColor;", "uniform mat3 translationMatrix;", "uniform mat3 projectionMatrix;", "uniform float alpha;", "uniform vec3 tint;", "varying vec4 vColor;", "void main(void){", "   gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);", "   vColor = aColor * vec4(tint * alpha, alpha);", "}"].join("\n"), ["varying vec4 vColor;", "void main(void){", "   gl_FragColor = vColor;", "}"].join("\n")))
                            }
                            return o(e, t), e
                        }(s.default);
                    n.default = u
                }, {
                    "../../../Shader": 43
                }],
                59: [function(t, e, n) {
                    "use strict";

                    function r(t, e, n) {
                        var r = t.shape,
                            i = r.x,
                            u = r.y,
                            l = void 0,
                            c = void 0;
                        if (t.type === a.SHAPES.CIRC ? (l = r.radius, c = r.radius) : (l = r.width, c = r.height), 0 !== l && 0 !== c) {
                            var h = Math.floor(30 * Math.sqrt(r.radius)) || Math.floor(15 * Math.sqrt(r.width + r.height)),
                                d = 2 * Math.PI / h;
                            if (t.fill) {
                                var f = (0, s.hex2rgb)(t.fillColor),
                                    p = t.fillAlpha,
                                    g = f[0] * p,
                                    m = f[1] * p,
                                    y = f[2] * p,
                                    b = e.points,
                                    v = e.indices,
                                    _ = b.length / 6;
                                v.push(_);
                                for (var x = 0; x < h + 1; x++) b.push(i, u, g, m, y, p), b.push(i + Math.sin(d * x) * l, u + Math.cos(d * x) * c, g, m, y, p), v.push(_++, _++);
                                v.push(_ - 1)
                            }
                            if (t.lineWidth) {
                                var T = t.points;
                                t.points = [];
                                for (var w = 0; w < h + 1; w++) t.points.push(i + Math.sin(d * w) * l, u + Math.cos(d * w) * c);
                                (0, o.default)(t, e, n), t.points = T
                            }
                        }
                    }
                    n.__esModule = !0, n.default = r;
                    var i = t("./buildLine"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = t("../../../const"),
                        s = t("../../../utils")
                }, {
                    "../../../const": 45,
                    "../../../utils": 123,
                    "./buildLine": 60
                }],
                60: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        var n = t.points;
                        if (0 !== n.length) {
                            var r = new o.Point(n[0], n[1]),
                                i = new o.Point(n[n.length - 2], n[n.length - 1]);
                            if (r.x === i.x && r.y === i.y) {
                                n = n.slice(), n.pop(), n.pop(), i = new o.Point(n[n.length - 2], n[n.length - 1]);
                                var s = i.x + .5 * (r.x - i.x),
                                    u = i.y + .5 * (r.y - i.y);
                                n.unshift(s, u), n.push(s, u)
                            }
                            var l = e.points,
                                c = e.indices,
                                h = n.length / 2,
                                d = n.length,
                                f = l.length / 6,
                                p = t.lineWidth / 2,
                                g = (0, a.hex2rgb)(t.lineColor),
                                m = t.lineAlpha,
                                y = g[0] * m,
                                b = g[1] * m,
                                v = g[2] * m,
                                _ = n[0],
                                x = n[1],
                                T = n[2],
                                w = n[3],
                                S = 0,
                                C = 0,
                                E = -(x - w),
                                O = _ - T,
                                P = 0,
                                A = 0,
                                R = 0,
                                M = 0,
                                I = Math.sqrt(E * E + O * O);
                            E /= I, O /= I, E *= p, O *= p, l.push(_ - E, x - O, y, b, v, m), l.push(_ + E, x + O, y, b, v, m);
                            for (var D = 1; D < h - 1; ++D) {
                                _ = n[2 * (D - 1)], x = n[2 * (D - 1) + 1], T = n[2 * D], w = n[2 * D + 1], S = n[2 * (D + 1)], C = n[2 * (D + 1) + 1], E = -(x - w), O = _ - T, I = Math.sqrt(E * E + O * O), E /= I, O /= I, E *= p, O *= p, P = -(w - C), A = T - S, I = Math.sqrt(P * P + A * A), P /= I, A /= I, P *= p, A *= p;
                                var L = -O + x - (-O + w),
                                    k = -E + T - (-E + _),
                                    F = (-E + _) * (-O + w) - (-E + T) * (-O + x),
                                    B = -A + C - (-A + w),
                                    N = -P + T - (-P + S),
                                    j = (-P + S) * (-A + w) - (-P + T) * (-A + C),
                                    G = L * N - B * k;
                                if (Math.abs(G) < .1) G += 10.1, l.push(T - E, w - O, y, b, v, m), l.push(T + E, w + O, y, b, v, m);
                                else {
                                    var U = (k * j - N * F) / G,
                                        W = (B * F - L * j) / G;
                                    (U - T) * (U - T) + (W - w) * (W - w) > 196 * p * p ? (R = E - P, M = O - A, I = Math.sqrt(R * R + M * M), R /= I, M /= I, R *= p, M *= p, l.push(T - R, w - M), l.push(y, b, v, m), l.push(T + R, w + M), l.push(y, b, v, m), l.push(T - R, w - M), l.push(y, b, v, m), d++) : (l.push(U, W), l.push(y, b, v, m), l.push(T - (U - T), w - (W - w)), l.push(y, b, v, m))
                                }
                            }
                            _ = n[2 * (h - 2)], x = n[2 * (h - 2) + 1], T = n[2 * (h - 1)], w = n[2 * (h - 1) + 1], E = -(x - w), O = _ - T, I = Math.sqrt(E * E + O * O), E /= I, O /= I, E *= p, O *= p, l.push(T - E, w - O), l.push(y, b, v, m), l.push(T + E, w + O), l.push(y, b, v, m), c.push(f);
                            for (var H = 0; H < d; ++H) c.push(f++);
                            c.push(f - 1)
                        }
                    }

                    function i(t, e) {
                        var n = 0,
                            r = t.points;
                        if (0 !== r.length) {
                            var i = e.points,
                                o = r.length / 2,
                                s = (0, a.hex2rgb)(t.lineColor),
                                u = t.lineAlpha,
                                l = s[0] * u,
                                c = s[1] * u,
                                h = s[2] * u;
                            for (n = 1; n < o; n++) {
                                var d = r[2 * (n - 1)],
                                    f = r[2 * (n - 1) + 1],
                                    p = r[2 * n],
                                    g = r[2 * n + 1];
                                i.push(d, f), i.push(l, c, h, u), i.push(p, g), i.push(l, c, h, u)
                            }
                        }
                    }
                    n.__esModule = !0, n.default = function(t, e, n) {
                        t.nativeLines ? i(t, n) : r(t, e)
                    };
                    var o = t("../../../math"),
                        a = t("../../../utils")
                }, {
                    "../../../math": 69,
                    "../../../utils": 123
                }],
                61: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e, n) {
                        t.points = t.shape.points.slice();
                        var r = t.points;
                        if (t.fill && r.length >= 6) {
                            for (var i = [], o = t.holes, u = 0; u < o.length; u++) {
                                var c = o[u];
                                i.push(r.length / 2), r = r.concat(c.points)
                            }
                            var h = e.points,
                                d = e.indices,
                                f = r.length / 2,
                                p = (0, s.hex2rgb)(t.fillColor),
                                g = t.fillAlpha,
                                m = p[0] * g,
                                y = p[1] * g,
                                b = p[2] * g,
                                v = (0, l.default)(r, i, 2);
                            if (!v) return;
                            for (var _ = h.length / 6, x = 0; x < v.length; x += 3) d.push(v[x] + _), d.push(v[x] + _), d.push(v[x + 1] + _), d.push(v[x + 2] + _), d.push(v[x + 2] + _);
                            for (var T = 0; T < f; T++) h.push(r[2 * T], r[2 * T + 1], m, y, b, g)
                        }
                        t.lineWidth > 0 && (0, a.default)(t, e, n)
                    }
                    n.__esModule = !0, n.default = i;
                    var o = t("./buildLine"),
                        a = r(o),
                        s = t("../../../utils"),
                        u = t("earcut"),
                        l = r(u)
                }, {
                    "../../../utils": 123,
                    "./buildLine": 60,
                    earcut: 2
                }],
                62: [function(t, e, n) {
                    "use strict";

                    function r(t, e, n) {
                        var r = t.shape,
                            i = r.x,
                            s = r.y,
                            u = r.width,
                            l = r.height;
                        if (t.fill) {
                            var c = (0, a.hex2rgb)(t.fillColor),
                                h = t.fillAlpha,
                                d = c[0] * h,
                                f = c[1] * h,
                                p = c[2] * h,
                                g = e.points,
                                m = e.indices,
                                y = g.length / 6;
                            g.push(i, s), g.push(d, f, p, h), g.push(i + u, s), g.push(d, f, p, h), g.push(i, s + l), g.push(d, f, p, h), g.push(i + u, s + l), g.push(d, f, p, h), m.push(y, y, y + 1, y + 2, y + 3, y + 3)
                        }
                        if (t.lineWidth) {
                            var b = t.points;
                            t.points = [i, s, i + u, s, i + u, s + l, i, s + l, i, s], (0, o.default)(t, e, n), t.points = b
                        }
                    }
                    n.__esModule = !0, n.default = r;
                    var i = t("./buildLine"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = t("../../../utils")
                }, {
                    "../../../utils": 123,
                    "./buildLine": 60
                }],
                63: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e, n) {
                        var r = t.shape,
                            i = r.x,
                            o = r.y,
                            s = r.width,
                            l = r.height,
                            d = r.radius,
                            f = [];
                        if (f.push(i, o + d), a(i, o + l - d, i, o + l, i + d, o + l, f), a(i + s - d, o + l, i + s, o + l, i + s, o + l - d, f), a(i + s, o + d, i + s, o, i + s - d, o, f), a(i + d, o, i, o, i, o + d + 1e-10, f), t.fill) {
                            for (var p = (0, h.hex2rgb)(t.fillColor), g = t.fillAlpha, m = p[0] * g, y = p[1] * g, b = p[2] * g, v = e.points, _ = e.indices, x = v.length / 6, T = (0, u.default)(f, null, 2), w = 0, S = T.length; w < S; w += 3) _.push(T[w] + x), _.push(T[w] + x), _.push(T[w + 1] + x), _.push(T[w + 2] + x), _.push(T[w + 2] + x);
                            for (var C = 0, E = f.length; C < E; C++) v.push(f[C], f[++C], m, y, b, g)
                        }
                        if (t.lineWidth) {
                            var O = t.points;
                            t.points = f, (0, c.default)(t, e, n), t.points = O
                        }
                    }

                    function o(t, e, n) {
                        return t + (e - t) * n
                    }

                    function a(t, e, n, r, i, a) {
                        for (var s = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : [], u = s, l = 0, c = 0, h = 0, d = 0, f = 0, p = 0, g = 0, m = 0; g <= 20; ++g) m = g / 20, l = o(t, n, m), c = o(e, r, m), h = o(n, i, m), d = o(r, a, m), f = o(l, h, m), p = o(c, d, m), u.push(f, p);
                        return u
                    }
                    n.__esModule = !0, n.default = i;
                    var s = t("earcut"),
                        u = r(s),
                        l = t("./buildLine"),
                        c = r(l),
                        h = t("../../../utils")
                }, {
                    "../../../utils": 123,
                    "./buildLine": 60,
                    earcut: 2
                }],
                64: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        if (t && t.__esModule) return t;
                        var e = {};
                        if (null != t)
                            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                        return e.default = t, e
                    }

                    function i(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0, n.autoDetectRenderer = n.Application = n.Filter = n.SpriteMaskFilter = n.Quad = n.RenderTarget = n.ObjectRenderer = n.WebGLManager = n.Shader = n.CanvasRenderTarget = n.TextureUvs = n.VideoBaseTexture = n.BaseRenderTexture = n.RenderTexture = n.BaseTexture = n.Texture = n.Spritesheet = n.CanvasGraphicsRenderer = n.GraphicsRenderer = n.GraphicsData = n.Graphics = n.TextMetrics = n.TextStyle = n.Text = n.SpriteRenderer = n.CanvasTinter = n.CanvasSpriteRenderer = n.Sprite = n.TransformBase = n.TransformStatic = n.Transform = n.Container = n.DisplayObject = n.Bounds = n.glCore = n.WebGLRenderer = n.CanvasRenderer = n.ticker = n.utils = n.settings = void 0;
                    var o = t("./const");
                    Object.keys(o).forEach(function(t) {
                        "default" !== t && "__esModule" !== t && Object.defineProperty(n, t, {
                            enumerable: !0,
                            get: function() {
                                return o[t]
                            }
                        })
                    });
                    var a = t("./math");
                    Object.keys(a).forEach(function(t) {
                        "default" !== t && "__esModule" !== t && Object.defineProperty(n, t, {
                            enumerable: !0,
                            get: function() {
                                return a[t]
                            }
                        })
                    });
                    var s = t("pixi-gl-core");
                    Object.defineProperty(n, "glCore", {
                        enumerable: !0,
                        get: function() {
                            return i(s).default
                        }
                    });
                    var u = t("./display/Bounds");
                    Object.defineProperty(n, "Bounds", {
                        enumerable: !0,
                        get: function() {
                            return i(u).default
                        }
                    });
                    var l = t("./display/DisplayObject");
                    Object.defineProperty(n, "DisplayObject", {
                        enumerable: !0,
                        get: function() {
                            return i(l).default
                        }
                    });
                    var c = t("./display/Container");
                    Object.defineProperty(n, "Container", {
                        enumerable: !0,
                        get: function() {
                            return i(c).default
                        }
                    });
                    var h = t("./display/Transform");
                    Object.defineProperty(n, "Transform", {
                        enumerable: !0,
                        get: function() {
                            return i(h).default
                        }
                    });
                    var d = t("./display/TransformStatic");
                    Object.defineProperty(n, "TransformStatic", {
                        enumerable: !0,
                        get: function() {
                            return i(d).default
                        }
                    });
                    var f = t("./display/TransformBase");
                    Object.defineProperty(n, "TransformBase", {
                        enumerable: !0,
                        get: function() {
                            return i(f).default
                        }
                    });
                    var p = t("./sprites/Sprite");
                    Object.defineProperty(n, "Sprite", {
                        enumerable: !0,
                        get: function() {
                            return i(p).default
                        }
                    });
                    var g = t("./sprites/canvas/CanvasSpriteRenderer");
                    Object.defineProperty(n, "CanvasSpriteRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(g).default
                        }
                    });
                    var m = t("./sprites/canvas/CanvasTinter");
                    Object.defineProperty(n, "CanvasTinter", {
                        enumerable: !0,
                        get: function() {
                            return i(m).default
                        }
                    });
                    var y = t("./sprites/webgl/SpriteRenderer");
                    Object.defineProperty(n, "SpriteRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(y).default
                        }
                    });
                    var b = t("./text/Text");
                    Object.defineProperty(n, "Text", {
                        enumerable: !0,
                        get: function() {
                            return i(b).default
                        }
                    });
                    var v = t("./text/TextStyle");
                    Object.defineProperty(n, "TextStyle", {
                        enumerable: !0,
                        get: function() {
                            return i(v).default
                        }
                    });
                    var _ = t("./text/TextMetrics");
                    Object.defineProperty(n, "TextMetrics", {
                        enumerable: !0,
                        get: function() {
                            return i(_).default
                        }
                    });
                    var x = t("./graphics/Graphics");
                    Object.defineProperty(n, "Graphics", {
                        enumerable: !0,
                        get: function() {
                            return i(x).default
                        }
                    });
                    var T = t("./graphics/GraphicsData");
                    Object.defineProperty(n, "GraphicsData", {
                        enumerable: !0,
                        get: function() {
                            return i(T).default
                        }
                    });
                    var w = t("./graphics/webgl/GraphicsRenderer");
                    Object.defineProperty(n, "GraphicsRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(w).default
                        }
                    });
                    var S = t("./graphics/canvas/CanvasGraphicsRenderer");
                    Object.defineProperty(n, "CanvasGraphicsRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(S).default
                        }
                    });
                    var C = t("./textures/Spritesheet");
                    Object.defineProperty(n, "Spritesheet", {
                        enumerable: !0,
                        get: function() {
                            return i(C).default
                        }
                    });
                    var E = t("./textures/Texture");
                    Object.defineProperty(n, "Texture", {
                        enumerable: !0,
                        get: function() {
                            return i(E).default
                        }
                    });
                    var O = t("./textures/BaseTexture");
                    Object.defineProperty(n, "BaseTexture", {
                        enumerable: !0,
                        get: function() {
                            return i(O).default
                        }
                    });
                    var P = t("./textures/RenderTexture");
                    Object.defineProperty(n, "RenderTexture", {
                        enumerable: !0,
                        get: function() {
                            return i(P).default
                        }
                    });
                    var A = t("./textures/BaseRenderTexture");
                    Object.defineProperty(n, "BaseRenderTexture", {
                        enumerable: !0,
                        get: function() {
                            return i(A).default
                        }
                    });
                    var R = t("./textures/VideoBaseTexture");
                    Object.defineProperty(n, "VideoBaseTexture", {
                        enumerable: !0,
                        get: function() {
                            return i(R).default
                        }
                    });
                    var M = t("./textures/TextureUvs");
                    Object.defineProperty(n, "TextureUvs", {
                        enumerable: !0,
                        get: function() {
                            return i(M).default
                        }
                    });
                    var I = t("./renderers/canvas/utils/CanvasRenderTarget");
                    Object.defineProperty(n, "CanvasRenderTarget", {
                        enumerable: !0,
                        get: function() {
                            return i(I).default
                        }
                    });
                    var D = t("./Shader");
                    Object.defineProperty(n, "Shader", {
                        enumerable: !0,
                        get: function() {
                            return i(D).default
                        }
                    });
                    var L = t("./renderers/webgl/managers/WebGLManager");
                    Object.defineProperty(n, "WebGLManager", {
                        enumerable: !0,
                        get: function() {
                            return i(L).default
                        }
                    });
                    var k = t("./renderers/webgl/utils/ObjectRenderer");
                    Object.defineProperty(n, "ObjectRenderer", {
                        enumerable: !0,
                        get: function() {
                            return i(k).default
                        }
                    });
                    var F = t("./renderers/webgl/utils/RenderTarget");
                    Object.defineProperty(n, "RenderTarget", {
                        enumerable: !0,
                        get: function() {
                            return i(F).default
                        }
                    });
                    var B = t("./renderers/webgl/utils/Quad");
                    Object.defineProperty(n, "Quad", {
                        enumerable: !0,
                        get: function() {
                            return i(B).default
                        }
                    });
                    var N = t("./renderers/webgl/filters/spriteMask/SpriteMaskFilter");
                    Object.defineProperty(n, "SpriteMaskFilter", {
                        enumerable: !0,
                        get: function() {
                            return i(N).default
                        }
                    });
                    var j = t("./renderers/webgl/filters/Filter");
                    Object.defineProperty(n, "Filter", {
                        enumerable: !0,
                        get: function() {
                            return i(j).default
                        }
                    });
                    var G = t("./Application");
                    Object.defineProperty(n, "Application", {
                        enumerable: !0,
                        get: function() {
                            return i(G).default
                        }
                    });
                    var U = t("./autoDetectRenderer");
                    Object.defineProperty(n, "autoDetectRenderer", {
                        enumerable: !0,
                        get: function() {
                            return U.autoDetectRenderer
                        }
                    });
                    var W = t("./utils"),
                        H = r(W),
                        X = t("./ticker"),
                        V = r(X),
                        z = t("./settings"),
                        Y = i(z),
                        q = t("./renderers/canvas/CanvasRenderer"),
                        J = i(q),
                        K = t("./renderers/webgl/WebGLRenderer"),
                        $ = i(K);
                    n.settings = Y.default, n.utils = H, n.ticker = V, n.CanvasRenderer = J.default, n.WebGLRenderer = $.default
                }, {
                    "./Application": 42,
                    "./Shader": 43,
                    "./autoDetectRenderer": 44,
                    "./const": 45,
                    "./display/Bounds": 46,
                    "./display/Container": 47,
                    "./display/DisplayObject": 48,
                    "./display/Transform": 49,
                    "./display/TransformBase": 50,
                    "./display/TransformStatic": 51,
                    "./graphics/Graphics": 52,
                    "./graphics/GraphicsData": 53,
                    "./graphics/canvas/CanvasGraphicsRenderer": 54,
                    "./graphics/webgl/GraphicsRenderer": 56,
                    "./math": 69,
                    "./renderers/canvas/CanvasRenderer": 76,
                    "./renderers/canvas/utils/CanvasRenderTarget": 78,
                    "./renderers/webgl/WebGLRenderer": 83,
                    "./renderers/webgl/filters/Filter": 85,
                    "./renderers/webgl/filters/spriteMask/SpriteMaskFilter": 88,
                    "./renderers/webgl/managers/WebGLManager": 92,
                    "./renderers/webgl/utils/ObjectRenderer": 93,
                    "./renderers/webgl/utils/Quad": 94,
                    "./renderers/webgl/utils/RenderTarget": 95,
                    "./settings": 100,
                    "./sprites/Sprite": 101,
                    "./sprites/canvas/CanvasSpriteRenderer": 102,
                    "./sprites/canvas/CanvasTinter": 103,
                    "./sprites/webgl/SpriteRenderer": 105,
                    "./text/Text": 107,
                    "./text/TextMetrics": 108,
                    "./text/TextStyle": 109,
                    "./textures/BaseRenderTexture": 110,
                    "./textures/BaseTexture": 111,
                    "./textures/RenderTexture": 112,
                    "./textures/Spritesheet": 113,
                    "./textures/Texture": 114,
                    "./textures/TextureUvs": 115,
                    "./textures/VideoBaseTexture": 116,
                    "./ticker": 119,
                    "./utils": 123,
                    "pixi-gl-core": 12
                }],
                65: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t < 0 ? -1 : t > 0 ? 1 : 0
                    }
                    n.__esModule = !0;
                    var i = t("./Matrix"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1],
                        s = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1],
                        u = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1],
                        l = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1],
                        c = [],
                        h = [];
                    ! function() {
                        for (var t = 0; t < 16; t++) {
                            var e = [];
                            h.push(e);
                            for (var n = 0; n < 16; n++)
                                for (var i = r(a[t] * a[n] + u[t] * s[n]), d = r(s[t] * a[n] + l[t] * s[n]), f = r(a[t] * u[n] + u[t] * l[n]), p = r(s[t] * u[n] + l[t] * l[n]), g = 0; g < 16; g++)
                                    if (a[g] === i && s[g] === d && u[g] === f && l[g] === p) {
                                        e.push(g);
                                        break
                                    }
                        }
                        for (var m = 0; m < 16; m++) {
                            var y = new o.default;
                            y.set(a[m], s[m], u[m], l[m], 0, 0), c.push(y)
                        }
                    }();
                    var d = {
                        E: 0,
                        SE: 1,
                        S: 2,
                        SW: 3,
                        W: 4,
                        NW: 5,
                        N: 6,
                        NE: 7,
                        MIRROR_VERTICAL: 8,
                        MIRROR_HORIZONTAL: 12,
                        uX: function(t) {
                            return a[t]
                        },
                        uY: function(t) {
                            return s[t]
                        },
                        vX: function(t) {
                            return u[t]
                        },
                        vY: function(t) {
                            return l[t]
                        },
                        inv: function(t) {
                            return 8 & t ? 15 & t : 7 & -t
                        },
                        add: function(t, e) {
                            return h[t][e]
                        },
                        sub: function(t, e) {
                            return h[t][d.inv(e)]
                        },
                        rotate180: function(t) {
                            return 4 ^ t
                        },
                        isSwapWidthHeight: function(t) {
                            return 2 == (3 & t)
                        },
                        byDirection: function(t, e) {
                            return 2 * Math.abs(t) <= Math.abs(e) ? e >= 0 ? d.S : d.N : 2 * Math.abs(e) <= Math.abs(t) ? t > 0 ? d.E : d.W : e > 0 ? t > 0 ? d.SE : d.SW : t > 0 ? d.NE : d.NW
                        },
                        matrixAppendRotationInv: function(t, e) {
                            var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,
                                i = c[d.inv(e)];
                            i.tx = n, i.ty = r, t.append(i)
                        }
                    };
                    n.default = d
                }, {
                    "./Matrix": 66
                }],
                66: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        o = t("./Point"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o),
                        s = function() {
                            function t() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1,
                                    a = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0,
                                    s = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0;
                                r(this, t), this.a = e, this.b = n, this.c = i, this.d = o, this.tx = a, this.ty = s, this.array = null
                            }
                            return t.prototype.fromArray = function(t) {
                                this.a = t[0], this.b = t[1], this.c = t[3], this.d = t[4], this.tx = t[2], this.ty = t[5]
                            }, t.prototype.set = function(t, e, n, r, i, o) {
                                return this.a = t, this.b = e, this.c = n, this.d = r, this.tx = i, this.ty = o, this
                            }, t.prototype.toArray = function(t, e) {
                                this.array || (this.array = new Float32Array(9));
                                var n = e || this.array;
                                return t ? (n[0] = this.a, n[1] = this.b, n[2] = 0, n[3] = this.c, n[4] = this.d, n[5] = 0, n[6] = this.tx, n[7] = this.ty, n[8] = 1) : (n[0] = this.a, n[1] = this.c, n[2] = this.tx, n[3] = this.b, n[4] = this.d, n[5] = this.ty, n[6] = 0, n[7] = 0, n[8] = 1), n
                            }, t.prototype.apply = function(t, e) {
                                e = e || new a.default;
                                var n = t.x,
                                    r = t.y;
                                return e.x = this.a * n + this.c * r + this.tx, e.y = this.b * n + this.d * r + this.ty, e
                            }, t.prototype.applyInverse = function(t, e) {
                                e = e || new a.default;
                                var n = 1 / (this.a * this.d + this.c * -this.b),
                                    r = t.x,
                                    i = t.y;
                                return e.x = this.d * n * r + -this.c * n * i + (this.ty * this.c - this.tx * this.d) * n, e.y = this.a * n * i + -this.b * n * r + (-this.ty * this.a + this.tx * this.b) * n, e
                            }, t.prototype.translate = function(t, e) {
                                return this.tx += t, this.ty += e, this
                            }, t.prototype.scale = function(t, e) {
                                return this.a *= t, this.d *= e, this.c *= t, this.b *= e, this.tx *= t, this.ty *= e, this
                            }, t.prototype.rotate = function(t) {
                                var e = Math.cos(t),
                                    n = Math.sin(t),
                                    r = this.a,
                                    i = this.c,
                                    o = this.tx;
                                return this.a = r * e - this.b * n, this.b = r * n + this.b * e, this.c = i * e - this.d * n, this.d = i * n + this.d * e, this.tx = o * e - this.ty * n, this.ty = o * n + this.ty * e, this
                            }, t.prototype.append = function(t) {
                                var e = this.a,
                                    n = this.b,
                                    r = this.c,
                                    i = this.d;
                                return this.a = t.a * e + t.b * r, this.b = t.a * n + t.b * i, this.c = t.c * e + t.d * r, this.d = t.c * n + t.d * i, this.tx = t.tx * e + t.ty * r + this.tx, this.ty = t.tx * n + t.ty * i + this.ty, this
                            }, t.prototype.setTransform = function(t, e, n, r, i, o, a, s, u) {
                                var l = Math.sin(a),
                                    c = Math.cos(a),
                                    h = Math.cos(u),
                                    d = Math.sin(u),
                                    f = -Math.sin(s),
                                    p = Math.cos(s),
                                    g = c * i,
                                    m = l * i,
                                    y = -l * o,
                                    b = c * o;
                                return this.a = h * g + d * y, this.b = h * m + d * b, this.c = f * g + p * y, this.d = f * m + p * b, this.tx = t + (n * g + r * y), this.ty = e + (n * m + r * b), this
                            }, t.prototype.prepend = function(t) {
                                var e = this.tx;
                                if (1 !== t.a || 0 !== t.b || 0 !== t.c || 1 !== t.d) {
                                    var n = this.a,
                                        r = this.c;
                                    this.a = n * t.a + this.b * t.c, this.b = n * t.b + this.b * t.d, this.c = r * t.a + this.d * t.c, this.d = r * t.b + this.d * t.d
                                }
                                return this.tx = e * t.a + this.ty * t.c + t.tx, this.ty = e * t.b + this.ty * t.d + t.ty, this
                            }, t.prototype.decompose = function(t) {
                                var e = this.a,
                                    n = this.b,
                                    r = this.c,
                                    i = this.d,
                                    o = -Math.atan2(-r, i),
                                    a = Math.atan2(n, e);
                                return Math.abs(o + a) < 1e-5 ? (t.rotation = a, e < 0 && i >= 0 && (t.rotation += t.rotation <= 0 ? Math.PI : -Math.PI), t.skew.x = t.skew.y = 0) : (t.skew.x = o, t.skew.y = a), t.scale.x = Math.sqrt(e * e + n * n), t.scale.y = Math.sqrt(r * r + i * i), t.position.x = this.tx, t.position.y = this.ty, t
                            }, t.prototype.invert = function() {
                                var t = this.a,
                                    e = this.b,
                                    n = this.c,
                                    r = this.d,
                                    i = this.tx,
                                    o = t * r - e * n;
                                return this.a = r / o, this.b = -e / o, this.c = -n / o, this.d = t / o, this.tx = (n * this.ty - r * i) / o, this.ty = -(t * this.ty - e * i) / o, this
                            }, t.prototype.identity = function() {
                                return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this
                            }, t.prototype.clone = function() {
                                var e = new t;
                                return e.a = this.a, e.b = this.b, e.c = this.c, e.d = this.d, e.tx = this.tx, e.ty = this.ty, e
                            }, t.prototype.copy = function(t) {
                                return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t
                            }, i(t, null, [{
                                key: "IDENTITY",
                                get: function() {
                                    return new t
                                }
                            }, {
                                key: "TEMP_MATRIX",
                                get: function() {
                                    return new t
                                }
                            }]), t
                        }();
                    n.default = s
                }, {
                    "./Point": 68
                }],
                67: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        o = function() {
                            function t(e, n) {
                                var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                                r(this, t), this._x = i, this._y = o, this.cb = e, this.scope = n
                            }
                            return t.prototype.set = function(t, e) {
                                var n = t || 0,
                                    r = e || (0 !== e ? n : 0);
                                this._x === n && this._y === r || (this._x = n, this._y = r, this.cb.call(this.scope))
                            }, t.prototype.copy = function(t) {
                                this._x === t.x && this._y === t.y || (this._x = t.x, this._y = t.y, this.cb.call(this.scope))
                            }, i(t, [{
                                key: "x",
                                get: function() {
                                    return this._x
                                },
                                set: function(t) {
                                    this._x !== t && (this._x = t, this.cb.call(this.scope))
                                }
                            }, {
                                key: "y",
                                get: function() {
                                    return this._y
                                },
                                set: function(t) {
                                    this._y !== t && (this._y = t, this.cb.call(this.scope))
                                }
                            }]), t
                        }();
                    n.default = o
                }, {}],
                68: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t() {
                            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
                            r(this, t), this.x = e, this.y = n
                        }
                        return t.prototype.clone = function() {
                            return new t(this.x, this.y)
                        }, t.prototype.copy = function(t) {
                            this.set(t.x, t.y)
                        }, t.prototype.equals = function(t) {
                            return t.x === this.x && t.y === this.y
                        }, t.prototype.set = function(t, e) {
                            this.x = t || 0, this.y = e || (0 !== e ? this.x : 0)
                        }, t
                    }();
                    n.default = i
                }, {}],
                69: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./Point");
                    Object.defineProperty(n, "Point", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./ObservablePoint");
                    Object.defineProperty(n, "ObservablePoint", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    });
                    var a = t("./Matrix");
                    Object.defineProperty(n, "Matrix", {
                        enumerable: !0,
                        get: function() {
                            return r(a).default
                        }
                    });
                    var s = t("./GroupD8");
                    Object.defineProperty(n, "GroupD8", {
                        enumerable: !0,
                        get: function() {
                            return r(s).default
                        }
                    });
                    var u = t("./shapes/Circle");
                    Object.defineProperty(n, "Circle", {
                        enumerable: !0,
                        get: function() {
                            return r(u).default
                        }
                    });
                    var l = t("./shapes/Ellipse");
                    Object.defineProperty(n, "Ellipse", {
                        enumerable: !0,
                        get: function() {
                            return r(l).default
                        }
                    });
                    var c = t("./shapes/Polygon");
                    Object.defineProperty(n, "Polygon", {
                        enumerable: !0,
                        get: function() {
                            return r(c).default
                        }
                    });
                    var h = t("./shapes/Rectangle");
                    Object.defineProperty(n, "Rectangle", {
                        enumerable: !0,
                        get: function() {
                            return r(h).default
                        }
                    });
                    var d = t("./shapes/RoundedRectangle");
                    Object.defineProperty(n, "RoundedRectangle", {
                        enumerable: !0,
                        get: function() {
                            return r(d).default
                        }
                    })
                }, {
                    "./GroupD8": 65,
                    "./Matrix": 66,
                    "./ObservablePoint": 67,
                    "./Point": 68,
                    "./shapes/Circle": 70,
                    "./shapes/Ellipse": 71,
                    "./shapes/Polygon": 72,
                    "./shapes/Rectangle": 73,
                    "./shapes/RoundedRectangle": 74
                }],
                70: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("./Rectangle"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = t("../../const"),
                        s = function() {
                            function t() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
                                r(this, t), this.x = e, this.y = n, this.radius = i, this.type = a.SHAPES.CIRC
                            }
                            return t.prototype.clone = function() {
                                return new t(this.x, this.y, this.radius)
                            }, t.prototype.contains = function(t, e) {
                                if (this.radius <= 0) return !1;
                                var n = this.radius * this.radius,
                                    r = this.x - t,
                                    i = this.y - e;
                                return r *= r, i *= i, r + i <= n
                            }, t.prototype.getBounds = function() {
                                return new o.default(this.x - this.radius, this.y - this.radius, 2 * this.radius, 2 * this.radius)
                            }, t
                        }();
                    n.default = s
                }, {
                    "../../const": 45,
                    "./Rectangle": 73
                }],
                71: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("./Rectangle"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = t("../../const"),
                        s = function() {
                            function t() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                                r(this, t), this.x = e, this.y = n, this.width = i, this.height = o, this.type = a.SHAPES.ELIP
                            }
                            return t.prototype.clone = function() {
                                return new t(this.x, this.y, this.width, this.height)
                            }, t.prototype.contains = function(t, e) {
                                if (this.width <= 0 || this.height <= 0) return !1;
                                var n = (t - this.x) / this.width,
                                    r = (e - this.y) / this.height;
                                return n *= n, r *= r, n + r <= 1
                            }, t.prototype.getBounds = function() {
                                return new o.default(this.x - this.width, this.y - this.height, this.width, this.height)
                            }, t
                        }();
                    n.default = s
                }, {
                    "../../const": 45,
                    "./Rectangle": 73
                }],
                72: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../Point"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = t("../../const"),
                        s = function() {
                            function t() {
                                for (var e = arguments.length, n = Array(e), i = 0; i < e; i++) n[i] = arguments[i];
                                if (r(this, t), Array.isArray(n[0]) && (n = n[0]), n[0] instanceof o.default) {
                                    for (var s = [], u = 0, l = n.length; u < l; u++) s.push(n[u].x, n[u].y);
                                    n = s
                                }
                                this.closed = !0, this.points = n, this.type = a.SHAPES.POLY
                            }
                            return t.prototype.clone = function() {
                                return new t(this.points.slice())
                            }, t.prototype.close = function() {
                                var t = this.points;
                                t[0] === t[t.length - 2] && t[1] === t[t.length - 1] || t.push(t[0], t[1])
                            }, t.prototype.contains = function(t, e) {
                                for (var n = !1, r = this.points.length / 2, i = 0, o = r - 1; i < r; o = i++) {
                                    var a = this.points[2 * i],
                                        s = this.points[2 * i + 1],
                                        u = this.points[2 * o],
                                        l = this.points[2 * o + 1];
                                    s > e != l > e && t < (e - s) / (l - s) * (u - a) + a && (n = !n)
                                }
                                return n
                            }, t
                        }();
                    n.default = s
                }, {
                    "../../const": 45,
                    "../Point": 68
                }],
                73: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        o = t("../../const"),
                        a = function() {
                            function t() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                                r(this, t), this.x = e, this.y = n, this.width = i, this.height = a, this.type = o.SHAPES.RECT
                            }
                            return t.prototype.clone = function() {
                                return new t(this.x, this.y, this.width, this.height)
                            }, t.prototype.copy = function(t) {
                                return this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height, this
                            }, t.prototype.contains = function(t, e) {
                                return !(this.width <= 0 || this.height <= 0) && (t >= this.x && t < this.x + this.width && e >= this.y && e < this.y + this.height)
                            }, t.prototype.pad = function(t, e) {
                                t = t || 0, e = e || (0 !== e ? t : 0), this.x -= t, this.y -= e, this.width += 2 * t, this.height += 2 * e
                            }, t.prototype.fit = function(t) {
                                this.x < t.x && (this.width += this.x, this.width < 0 && (this.width = 0), this.x = t.x), this.y < t.y && (this.height += this.y, this.height < 0 && (this.height = 0), this.y = t.y), this.x + this.width > t.x + t.width && (this.width = t.width - this.x, this.width < 0 && (this.width = 0)), this.y + this.height > t.y + t.height && (this.height = t.height - this.y, this.height < 0 && (this.height = 0))
                            }, t.prototype.enlarge = function(t) {
                                var e = Math.min(this.x, t.x),
                                    n = Math.max(this.x + this.width, t.x + t.width),
                                    r = Math.min(this.y, t.y),
                                    i = Math.max(this.y + this.height, t.y + t.height);
                                this.x = e, this.width = n - e, this.y = r, this.height = i - r
                            }, i(t, [{
                                key: "left",
                                get: function() {
                                    return this.x
                                }
                            }, {
                                key: "right",
                                get: function() {
                                    return this.x + this.width
                                }
                            }, {
                                key: "top",
                                get: function() {
                                    return this.y
                                }
                            }, {
                                key: "bottom",
                                get: function() {
                                    return this.y + this.height
                                }
                            }], [{
                                key: "EMPTY",
                                get: function() {
                                    return new t(0, 0, 0, 0)
                                }
                            }]), t
                        }();
                    n.default = a
                }, {
                    "../../const": 45
                }],
                74: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../../const"),
                        o = function() {
                            function t() {
                                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                                    o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                    a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,
                                    s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 20;
                                r(this, t), this.x = e, this.y = n, this.width = o, this.height = a, this.radius = s, this.type = i.SHAPES.RREC
                            }
                            return t.prototype.clone = function() {
                                return new t(this.x, this.y, this.width, this.height, this.radius)
                            }, t.prototype.contains = function(t, e) {
                                if (this.width <= 0 || this.height <= 0) return !1;
                                if (t >= this.x && t <= this.x + this.width && e >= this.y && e <= this.y + this.height) {
                                    if (e >= this.y + this.radius && e <= this.y + this.height - this.radius || t >= this.x + this.radius && t <= this.x + this.width - this.radius) return !0;
                                    var n = t - (this.x + this.radius),
                                        r = e - (this.y + this.radius),
                                        i = this.radius * this.radius;
                                    if (n * n + r * r <= i) return !0;
                                    if ((n = t - (this.x + this.width - this.radius)) * n + r * r <= i) return !0;
                                    if (r = e - (this.y + this.height - this.radius), n * n + r * r <= i) return !0;
                                    if ((n = t - (this.x + this.radius)) * n + r * r <= i) return !0
                                }
                                return !1
                            }, t
                        }();
                    n.default = o
                }, {
                    "../../const": 45
                }],
                75: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../utils"),
                        l = t("../math"),
                        c = t("../const"),
                        h = t("../settings"),
                        d = r(h),
                        f = t("../display/Container"),
                        p = r(f),
                        g = t("../textures/RenderTexture"),
                        m = r(g),
                        y = t("eventemitter3"),
                        b = r(y),
                        v = new l.Matrix,
                        _ = function(t) {
                            function e(n, r, a, s) {
                                i(this, e);
                                var h = o(this, t.call(this));
                                return (0, u.sayHello)(n), "number" == typeof r && (r = Object.assign({
                                    width: r,
                                    height: a || d.default.RENDER_OPTIONS.height
                                }, s)), r = Object.assign({}, d.default.RENDER_OPTIONS, r), h.options = r, h.type = c.RENDERER_TYPE.UNKNOWN, h.screen = new l.Rectangle(0, 0, r.width, r.height), h.view = r.view || document.createElement("canvas"), h.resolution = r.resolution || d.default.RESOLUTION, h.transparent = r.transparent, h.autoResize = r.autoResize || !1, h.blendModes = null, h.preserveDrawingBuffer = r.preserveDrawingBuffer, h.clearBeforeRender = r.clearBeforeRender, h.roundPixels = r.roundPixels, h._backgroundColor = 0, h._backgroundColorRgba = [0, 0, 0, 0], h._backgroundColorString = "#000000", h.backgroundColor = r.backgroundColor || h._backgroundColor, h._tempDisplayObjectParent = new p.default, h._lastObjectRendered = h._tempDisplayObjectParent, h
                            }
                            return a(e, t), e.prototype.resize = function(t, e) {
                                this.screen.width = t, this.screen.height = e, this.view.width = t * this.resolution, this.view.height = e * this.resolution, this.autoResize && (this.view.style.width = t + "px", this.view.style.height = e + "px")
                            }, e.prototype.generateTexture = function(t, e, n) {
                                var r = t.getLocalBounds(),
                                    i = m.default.create(0 | r.width, 0 | r.height, e, n);
                                return v.tx = -r.x, v.ty = -r.y, this.render(t, i, !1, v, !0), i
                            }, e.prototype.destroy = function(t) {
                                t && this.view.parentNode && this.view.parentNode.removeChild(this.view), this.type = c.RENDERER_TYPE.UNKNOWN, this.view = null, this.screen = null, this.resolution = 0, this.transparent = !1, this.autoResize = !1, this.blendModes = null, this.options = null, this.preserveDrawingBuffer = !1, this.clearBeforeRender = !1, this.roundPixels = !1, this._backgroundColor = 0, this._backgroundColorRgba = null, this._backgroundColorString = null, this._tempDisplayObjectParent = null, this._lastObjectRendered = null
                            }, s(e, [{
                                key: "width",
                                get: function() {
                                    return this.view.width
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.view.height
                                }
                            }, {
                                key: "backgroundColor",
                                get: function() {
                                    return this._backgroundColor
                                },
                                set: function(t) {
                                    this._backgroundColor = t, this._backgroundColorString = (0, u.hex2string)(t), (0, u.hex2rgb)(t, this._backgroundColorRgba)
                                }
                            }]), e
                        }(b.default);
                    n.default = _
                }, {
                    "../const": 45,
                    "../display/Container": 47,
                    "../math": 69,
                    "../settings": 100,
                    "../textures/RenderTexture": 112,
                    "../utils": 123,
                    eventemitter3: 3
                }],
                76: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("../SystemRenderer"),
                        u = r(s),
                        l = t("./utils/CanvasMaskManager"),
                        c = r(l),
                        h = t("./utils/CanvasRenderTarget"),
                        d = r(h),
                        f = t("./utils/mapCanvasBlendModesToPixi"),
                        p = r(f),
                        g = t("../../utils"),
                        m = t("../../const"),
                        y = t("../../settings"),
                        b = r(y),
                        v = function(t) {
                            function e(n, r, a) {
                                i(this, e);
                                var s = o(this, t.call(this, "Canvas", n, r, a));
                                return s.type = m.RENDERER_TYPE.CANVAS, s.rootContext = s.view.getContext("2d", {
                                    alpha: s.transparent
                                }), s.context = s.rootContext, s.refresh = !0, s.maskManager = new c.default(s), s.smoothProperty = "imageSmoothingEnabled", s.rootContext.imageSmoothingEnabled || (s.rootContext.webkitImageSmoothingEnabled ? s.smoothProperty = "webkitImageSmoothingEnabled" : s.rootContext.mozImageSmoothingEnabled ? s.smoothProperty = "mozImageSmoothingEnabled" : s.rootContext.oImageSmoothingEnabled ? s.smoothProperty = "oImageSmoothingEnabled" : s.rootContext.msImageSmoothingEnabled && (s.smoothProperty = "msImageSmoothingEnabled")), s.initPlugins(), s.blendModes = (0, p.default)(), s._activeBlendMode = null, s.renderingToScreen = !1, s.resize(s.options.width, s.options.height), s
                            }
                            return a(e, t), e.prototype.render = function(t, e, n, r, i) {
                                if (this.view) {
                                    this.renderingToScreen = !e, this.emit("prerender");
                                    var o = this.resolution;
                                    e ? (e = e.baseTexture || e, e._canvasRenderTarget || (e._canvasRenderTarget = new d.default(e.width, e.height, e.resolution), e.source = e._canvasRenderTarget.canvas, e.valid = !0), this.context = e._canvasRenderTarget.context, this.resolution = e._canvasRenderTarget.resolution) : this.context = this.rootContext;
                                    var a = this.context;
                                    if (e || (this._lastObjectRendered = t), !i) {
                                        var s = t.parent,
                                            u = this._tempDisplayObjectParent.transform.worldTransform;
                                        r ? (r.copy(u), this._tempDisplayObjectParent.transform._worldID = -1) : u.identity(), t.parent = this._tempDisplayObjectParent, t.updateTransform(), t.parent = s
                                    }
                                    a.setTransform(1, 0, 0, 1, 0, 0), a.globalAlpha = 1, a.globalCompositeOperation = this.blendModes[m.BLEND_MODES.NORMAL], navigator.isCocoonJS && this.view.screencanvas && (a.fillStyle = "black", a.clear()), (void 0 !== n ? n : this.clearBeforeRender) && this.renderingToScreen && (this.transparent ? a.clearRect(0, 0, this.width, this.height) : (a.fillStyle = this._backgroundColorString, a.fillRect(0, 0, this.width, this.height)));
                                    var l = this.context;
                                    this.context = a, t.renderCanvas(this), this.context = l, this.resolution = o, this.emit("postrender")
                                }
                            }, e.prototype.clear = function(t) {
                                var e = this.context;
                                t = t || this._backgroundColorString, !this.transparent && t ? (e.fillStyle = t, e.fillRect(0, 0, this.width, this.height)) : e.clearRect(0, 0, this.width, this.height)
                            }, e.prototype.setBlendMode = function(t) {
                                this._activeBlendMode !== t && (this._activeBlendMode = t, this.context.globalCompositeOperation = this.blendModes[t])
                            }, e.prototype.destroy = function(e) {
                                this.destroyPlugins(), t.prototype.destroy.call(this, e), this.context = null, this.refresh = !0, this.maskManager.destroy(), this.maskManager = null, this.smoothProperty = null
                            }, e.prototype.resize = function(e, n) {
                                t.prototype.resize.call(this, e, n), this.smoothProperty && (this.rootContext[this.smoothProperty] = b.default.SCALE_MODE === m.SCALE_MODES.LINEAR)
                            }, e
                        }(u.default);
                    n.default = v, g.pluginTarget.mixin(v)
                }, {
                    "../../const": 45,
                    "../../settings": 100,
                    "../../utils": 123,
                    "../SystemRenderer": 75,
                    "./utils/CanvasMaskManager": 77,
                    "./utils/CanvasRenderTarget": 78,
                    "./utils/mapCanvasBlendModesToPixi": 80
                }],
                77: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../../../const"),
                        o = function() {
                            function t(e) {
                                r(this, t), this.renderer = e
                            }
                            return t.prototype.pushMask = function(t) {
                                var e = this.renderer;
                                e.context.save();
                                var n = t.alpha,
                                    r = t.transform.worldTransform,
                                    i = e.resolution;
                                e.context.setTransform(r.a * i, r.b * i, r.c * i, r.d * i, r.tx * i, r.ty * i), t._texture || (this.renderGraphicsShape(t), e.context.clip()), t.worldAlpha = n
                            }, t.prototype.renderGraphicsShape = function(t) {
                                var e = this.renderer.context,
                                    n = t.graphicsData.length;
                                if (0 !== n) {
                                    e.beginPath();
                                    for (var r = 0; r < n; r++) {
                                        var o = t.graphicsData[r],
                                            a = o.shape;
                                        if (o.type === i.SHAPES.POLY) {
                                            var s = a.points;
                                            e.moveTo(s[0], s[1]);
                                            for (var u = 1; u < s.length / 2; u++) e.lineTo(s[2 * u], s[2 * u + 1]);
                                            s[0] === s[s.length - 2] && s[1] === s[s.length - 1] && e.closePath()
                                        } else if (o.type === i.SHAPES.RECT) e.rect(a.x, a.y, a.width, a.height), e.closePath();
                                        else if (o.type === i.SHAPES.CIRC) e.arc(a.x, a.y, a.radius, 0, 2 * Math.PI), e.closePath();
                                        else if (o.type === i.SHAPES.ELIP) {
                                            var l = 2 * a.width,
                                                c = 2 * a.height,
                                                h = a.x - l / 2,
                                                d = a.y - c / 2,
                                                f = l / 2 * .5522848,
                                                p = c / 2 * .5522848,
                                                g = h + l,
                                                m = d + c,
                                                y = h + l / 2,
                                                b = d + c / 2;
                                            e.moveTo(h, b), e.bezierCurveTo(h, b - p, y - f, d, y, d), e.bezierCurveTo(y + f, d, g, b - p, g, b), e.bezierCurveTo(g, b + p, y + f, m, y, m), e.bezierCurveTo(y - f, m, h, b + p, h, b), e.closePath()
                                        } else if (o.type === i.SHAPES.RREC) {
                                            var v = a.x,
                                                _ = a.y,
                                                x = a.width,
                                                T = a.height,
                                                w = a.radius,
                                                S = Math.min(x, T) / 2 | 0;
                                            w = w > S ? S : w, e.moveTo(v, _ + w), e.lineTo(v, _ + T - w), e.quadraticCurveTo(v, _ + T, v + w, _ + T), e.lineTo(v + x - w, _ + T), e.quadraticCurveTo(v + x, _ + T, v + x, _ + T - w), e.lineTo(v + x, _ + w), e.quadraticCurveTo(v + x, _, v + x - w, _), e.lineTo(v + w, _), e.quadraticCurveTo(v, _, v, _ + w), e.closePath()
                                        }
                                    }
                                }
                            }, t.prototype.popMask = function(t) {
                                t.context.restore()
                            }, t.prototype.destroy = function() {}, t
                        }();
                    n.default = o
                }, {
                    "../../../const": 45
                }],
                78: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        o = t("../../../settings"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o),
                        s = function() {
                            function t(e, n, i) {
                                r(this, t), this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), this.resolution = i || a.default.RESOLUTION, this.resize(e, n)
                            }
                            return t.prototype.clear = function() {
                                this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.clearRect(0, 0, this.canvas.width, this.canvas.height)
                            }, t.prototype.resize = function(t, e) {
                                this.canvas.width = t * this.resolution, this.canvas.height = e * this.resolution
                            }, t.prototype.destroy = function() {
                                this.context = null, this.canvas = null
                            }, i(t, [{
                                key: "width",
                                get: function() {
                                    return this.canvas.width
                                },
                                set: function(t) {
                                    this.canvas.width = t
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.canvas.height
                                },
                                set: function(t) {
                                    this.canvas.height = t
                                }
                            }]), t
                        }();
                    n.default = s
                }, {
                    "../../../settings": 100
                }],
                79: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        var e = document.createElement("canvas");
                        e.width = 6, e.height = 1;
                        var n = e.getContext("2d");
                        return n.fillStyle = t, n.fillRect(0, 0, 6, 1), e
                    }

                    function i() {
                        if ("undefined" == typeof document) return !1;
                        var t = r("#ff00ff"),
                            e = r("#ffff00"),
                            n = document.createElement("canvas");
                        n.width = 6, n.height = 1;
                        var i = n.getContext("2d");
                        i.globalCompositeOperation = "multiply", i.drawImage(t, 0, 0), i.drawImage(e, 2, 0);
                        var o = i.getImageData(2, 0, 1, 1);
                        if (!o) return !1;
                        var a = o.data;
                        return 255 === a[0] && 0 === a[1] && 0 === a[2]
                    }
                    n.__esModule = !0, n.default = i
                }, {}],
                80: [function(t, e, n) {
                    "use strict";

                    function r() {
                        var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
                        return (0, a.default)() ? (t[i.BLEND_MODES.NORMAL] = "source-over", t[i.BLEND_MODES.ADD] = "lighter", t[i.BLEND_MODES.MULTIPLY] = "multiply", t[i.BLEND_MODES.SCREEN] = "screen", t[i.BLEND_MODES.OVERLAY] = "overlay", t[i.BLEND_MODES.DARKEN] = "darken", t[i.BLEND_MODES.LIGHTEN] = "lighten", t[i.BLEND_MODES.COLOR_DODGE] = "color-dodge", t[i.BLEND_MODES.COLOR_BURN] = "color-burn", t[i.BLEND_MODES.HARD_LIGHT] = "hard-light", t[i.BLEND_MODES.SOFT_LIGHT] = "soft-light", t[i.BLEND_MODES.DIFFERENCE] = "difference", t[i.BLEND_MODES.EXCLUSION] = "exclusion", t[i.BLEND_MODES.HUE] = "hue", t[i.BLEND_MODES.SATURATION] = "saturate", t[i.BLEND_MODES.COLOR] = "color", t[i.BLEND_MODES.LUMINOSITY] = "luminosity") : (t[i.BLEND_MODES.NORMAL] = "source-over", t[i.BLEND_MODES.ADD] = "lighter", t[i.BLEND_MODES.MULTIPLY] = "source-over", t[i.BLEND_MODES.SCREEN] = "source-over", t[i.BLEND_MODES.OVERLAY] = "source-over", t[i.BLEND_MODES.DARKEN] = "source-over", t[i.BLEND_MODES.LIGHTEN] = "source-over", t[i.BLEND_MODES.COLOR_DODGE] = "source-over", t[i.BLEND_MODES.COLOR_BURN] = "source-over", t[i.BLEND_MODES.HARD_LIGHT] = "source-over", t[i.BLEND_MODES.SOFT_LIGHT] = "source-over", t[i.BLEND_MODES.DIFFERENCE] = "source-over",
                            t[i.BLEND_MODES.EXCLUSION] = "source-over", t[i.BLEND_MODES.HUE] = "source-over", t[i.BLEND_MODES.SATURATION] = "source-over", t[i.BLEND_MODES.COLOR] = "source-over", t[i.BLEND_MODES.LUMINOSITY] = "source-over"), t[i.BLEND_MODES.NORMAL_NPM] = t[i.BLEND_MODES.NORMAL], t[i.BLEND_MODES.ADD_NPM] = t[i.BLEND_MODES.ADD], t[i.BLEND_MODES.SCREEN_NPM] = t[i.BLEND_MODES.SCREEN], t
                    }
                    n.__esModule = !0, n.default = r;
                    var i = t("../../../const"),
                        o = t("./canUseNewCanvasBlendModes"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o)
                }, {
                    "../../../const": 45,
                    "./canUseNewCanvasBlendModes": 79
                }],
                81: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../../const"),
                        o = t("../../settings"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o),
                        s = function() {
                            function t(e) {
                                r(this, t), this.renderer = e, this.count = 0, this.checkCount = 0, this.maxIdle = a.default.GC_MAX_IDLE, this.checkCountMax = a.default.GC_MAX_CHECK_COUNT, this.mode = a.default.GC_MODE
                            }
                            return t.prototype.update = function() {
                                this.count++, this.mode !== i.GC_MODES.MANUAL && ++this.checkCount > this.checkCountMax && (this.checkCount = 0, this.run())
                            }, t.prototype.run = function() {
                                for (var t = this.renderer.textureManager, e = t._managedTextures, n = !1, r = 0; r < e.length; r++) {
                                    var i = e[r];
                                    !i._glRenderTargets && this.count - i.touched > this.maxIdle && (t.destroyTexture(i, !0), e[r] = null, n = !0)
                                }
                                if (n) {
                                    for (var o = 0, a = 0; a < e.length; a++) null !== e[a] && (e[o++] = e[a]);
                                    e.length = o
                                }
                            }, t.prototype.unload = function(t) {
                                var e = this.renderer.textureManager;
                                t._texture && t._texture._glRenderTargets && e.destroyTexture(t._texture, !0);
                                for (var n = t.children.length - 1; n >= 0; n--) this.unload(t.children[n])
                            }, t
                        }();
                    n.default = s
                }, {
                    "../../const": 45,
                    "../../settings": 100
                }],
                82: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("pixi-gl-core"),
                        o = t("../../const"),
                        a = t("./utils/RenderTarget"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = t("../../utils"),
                        l = function() {
                            function t(e) {
                                r(this, t), this.renderer = e, this.gl = e.gl, this._managedTextures = []
                            }
                            return t.prototype.bindTexture = function() {}, t.prototype.getTexture = function() {}, t.prototype.updateTexture = function(t, e) {
                                var n = this.gl,
                                    r = !!t._glRenderTargets;
                                if (!t.hasLoaded) return null;
                                var a = this.renderer.boundTextures;
                                if (void 0 === e) {
                                    e = 0;
                                    for (var u = 0; u < a.length; ++u)
                                        if (a[u] === t) {
                                            e = u;
                                            break
                                        }
                                }
                                a[e] = t, n.activeTexture(n.TEXTURE0 + e);
                                var l = t._glTextures[this.renderer.CONTEXT_UID];
                                if (l) r ? t._glRenderTargets[this.renderer.CONTEXT_UID].resize(t.width, t.height) : l.upload(t.source);
                                else {
                                    if (r) {
                                        var c = new s.default(this.gl, t.width, t.height, t.scaleMode, t.resolution);
                                        c.resize(t.width, t.height), t._glRenderTargets[this.renderer.CONTEXT_UID] = c, l = c.texture
                                    } else l = new i.GLTexture(this.gl, null, null, null, null), l.bind(e), l.premultiplyAlpha = !0, l.upload(t.source);
                                    t._glTextures[this.renderer.CONTEXT_UID] = l, t.on("update", this.updateTexture, this), t.on("dispose", this.destroyTexture, this), this._managedTextures.push(t), t.isPowerOfTwo ? (t.mipmap && l.enableMipmap(), t.wrapMode === o.WRAP_MODES.CLAMP ? l.enableWrapClamp() : t.wrapMode === o.WRAP_MODES.REPEAT ? l.enableWrapRepeat() : l.enableWrapMirrorRepeat()) : l.enableWrapClamp(), t.scaleMode === o.SCALE_MODES.NEAREST ? l.enableNearestScaling() : l.enableLinearScaling()
                                }
                                return l
                            }, t.prototype.destroyTexture = function(t, e) {
                                if (t = t.baseTexture || t, t.hasLoaded && t._glTextures[this.renderer.CONTEXT_UID] && (this.renderer.unbindTexture(t), t._glTextures[this.renderer.CONTEXT_UID].destroy(), t.off("update", this.updateTexture, this), t.off("dispose", this.destroyTexture, this), delete t._glTextures[this.renderer.CONTEXT_UID], !e)) {
                                    var n = this._managedTextures.indexOf(t); - 1 !== n && (0, u.removeItems)(this._managedTextures, n, 1)
                                }
                            }, t.prototype.removeAll = function() {
                                for (var t = 0; t < this._managedTextures.length; ++t) {
                                    var e = this._managedTextures[t];
                                    e._glTextures[this.renderer.CONTEXT_UID] && delete e._glTextures[this.renderer.CONTEXT_UID]
                                }
                            }, t.prototype.destroy = function() {
                                for (var t = 0; t < this._managedTextures.length; ++t) {
                                    var e = this._managedTextures[t];
                                    this.destroyTexture(e, !0), e.off("update", this.updateTexture, this), e.off("dispose", this.destroyTexture, this)
                                }
                                this._managedTextures = null
                            }, t
                        }();
                    n.default = l
                }, {
                    "../../const": 45,
                    "../../utils": 123,
                    "./utils/RenderTarget": 95,
                    "pixi-gl-core": 12
                }],
                83: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("../SystemRenderer"),
                        u = r(s),
                        l = t("./managers/MaskManager"),
                        c = r(l),
                        h = t("./managers/StencilManager"),
                        d = r(h),
                        f = t("./managers/FilterManager"),
                        p = r(f),
                        g = t("./utils/RenderTarget"),
                        m = r(g),
                        y = t("./utils/ObjectRenderer"),
                        b = r(y),
                        v = t("./TextureManager"),
                        _ = r(v),
                        x = t("../../textures/BaseTexture"),
                        T = r(x),
                        w = t("./TextureGarbageCollector"),
                        S = r(w),
                        C = t("./WebGLState"),
                        E = r(C),
                        O = t("./utils/mapWebGLDrawModesToPixi"),
                        P = r(O),
                        A = t("./utils/validateContext"),
                        R = r(A),
                        M = t("../../utils"),
                        I = t("pixi-gl-core"),
                        D = r(I),
                        L = t("../../const"),
                        k = 0,
                        F = function(t) {
                            function e(n, r, a) {
                                i(this, e);
                                var s = o(this, t.call(this, "WebGL", n, r, a));
                                return s.legacy = s.options.legacy, s.legacy && (D.default.VertexArrayObject.FORCE_NATIVE = !0), s.type = L.RENDERER_TYPE.WEBGL, s.handleContextLost = s.handleContextLost.bind(s), s.handleContextRestored = s.handleContextRestored.bind(s), s.view.addEventListener("webglcontextlost", s.handleContextLost, !1), s.view.addEventListener("webglcontextrestored", s.handleContextRestored, !1), s._contextOptions = {
                                    alpha: s.transparent,
                                    antialias: s.options.antialias,
                                    premultipliedAlpha: s.transparent && "notMultiplied" !== s.transparent,
                                    stencil: !0,
                                    preserveDrawingBuffer: s.options.preserveDrawingBuffer
                                }, s._backgroundColorRgba[3] = s.transparent ? 0 : 1, s.maskManager = new c.default(s), s.stencilManager = new d.default(s), s.emptyRenderer = new b.default(s), s.currentRenderer = s.emptyRenderer, s.initPlugins(), s.options.context && (0, R.default)(s.options.context), s.gl = s.options.context || D.default.createContext(s.view, s._contextOptions), s.CONTEXT_UID = k++, s.state = new E.default(s.gl), s.renderingToScreen = !0, s.boundTextures = null, s._activeShader = null, s._activeVao = null, s._activeRenderTarget = null, s._initContext(), s.filterManager = new p.default(s), s.drawModes = (0, P.default)(s.gl), s._nextTextureLocation = 0, s.setBlendMode(0), s
                            }
                            return a(e, t), e.prototype._initContext = function() {
                                var t = this.gl;
                                t.isContextLost() && t.getExtension("WEBGL_lose_context") && t.getExtension("WEBGL_lose_context").restoreContext();
                                var e = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);
                                this._activeShader = null, this._activeVao = null, this.boundTextures = new Array(e), this.emptyTextures = new Array(e), this.textureManager = new _.default(this), this.textureGC = new S.default(this), this.state.resetToDefault(), this.rootRenderTarget = new m.default(t, this.width, this.height, null, this.resolution, !0), this.rootRenderTarget.clearColor = this._backgroundColorRgba, this.bindRenderTarget(this.rootRenderTarget);
                                var n = new D.default.GLTexture.fromData(t, null, 1, 1),
                                    r = {
                                        _glTextures: {}
                                    };
                                r._glTextures[this.CONTEXT_UID] = {};
                                for (var i = 0; i < e; i++) {
                                    var o = new T.default;
                                    o._glTextures[this.CONTEXT_UID] = n, this.boundTextures[i] = r, this.emptyTextures[i] = o, this.bindTexture(null, i)
                                }
                                this.emit("context", t), this.resize(this.screen.width, this.screen.height)
                            }, e.prototype.render = function(t, e, n, r, i) {
                                if (this.renderingToScreen = !e, this.emit("prerender"), this.gl && !this.gl.isContextLost()) {
                                    if (this._nextTextureLocation = 0, e || (this._lastObjectRendered = t), !i) {
                                        var o = t.parent;
                                        t.parent = this._tempDisplayObjectParent, t.updateTransform(), t.parent = o
                                    }
                                    this.bindRenderTexture(e, r), this.currentRenderer.start(), (void 0 !== n ? n : this.clearBeforeRender) && this._activeRenderTarget.clear(), t.renderWebGL(this), this.currentRenderer.flush(), this.textureGC.update(), this.emit("postrender")
                                }
                            }, e.prototype.setObjectRenderer = function(t) {
                                this.currentRenderer !== t && (this.currentRenderer.stop(), this.currentRenderer = t, this.currentRenderer.start())
                            }, e.prototype.flush = function() {
                                this.setObjectRenderer(this.emptyRenderer)
                            }, e.prototype.resize = function(t, e) {
                                u.default.prototype.resize.call(this, t, e), this.rootRenderTarget.resize(t, e), this._activeRenderTarget === this.rootRenderTarget && (this.rootRenderTarget.activate(), this._activeShader && (this._activeShader.uniforms.projectionMatrix = this.rootRenderTarget.projectionMatrix.toArray(!0)))
                            }, e.prototype.setBlendMode = function(t) {
                                this.state.setBlendMode(t)
                            }, e.prototype.clear = function(t) {
                                this._activeRenderTarget.clear(t)
                            }, e.prototype.setTransform = function(t) {
                                this._activeRenderTarget.transform = t
                            }, e.prototype.clearRenderTexture = function(t, e) {
                                var n = t.baseTexture,
                                    r = n._glRenderTargets[this.CONTEXT_UID];
                                return r && r.clear(e), this
                            }, e.prototype.bindRenderTexture = function(t, e) {
                                var n = void 0;
                                if (t) {
                                    var r = t.baseTexture;
                                    r._glRenderTargets[this.CONTEXT_UID] || this.textureManager.updateTexture(r, 0), this.unbindTexture(r), n = r._glRenderTargets[this.CONTEXT_UID], n.setFrame(t.frame)
                                } else n = this.rootRenderTarget;
                                return n.transform = e, this.bindRenderTarget(n), this
                            }, e.prototype.bindRenderTarget = function(t) {
                                return t !== this._activeRenderTarget && (this._activeRenderTarget = t, t.activate(), this._activeShader && (this._activeShader.uniforms.projectionMatrix = t.projectionMatrix.toArray(!0)), this.stencilManager.setMaskStack(t.stencilMaskStack)), this
                            }, e.prototype.bindShader = function(t, e) {
                                return this._activeShader !== t && (this._activeShader = t, t.bind(), !1 !== e && (t.uniforms.projectionMatrix = this._activeRenderTarget.projectionMatrix.toArray(!0))), this
                            }, e.prototype.bindTexture = function(t, e, n) {
                                if (t = t || this.emptyTextures[e], t = t.baseTexture || t, t.touched = this.textureGC.count, n) e = e || 0;
                                else {
                                    for (var r = 0; r < this.boundTextures.length; r++)
                                        if (this.boundTextures[r] === t) return r;
                                    void 0 === e && (this._nextTextureLocation++, this._nextTextureLocation %= this.boundTextures.length, e = this.boundTextures.length - this._nextTextureLocation - 1)
                                }
                                var i = this.gl,
                                    o = t._glTextures[this.CONTEXT_UID];
                                return o ? (this.boundTextures[e] = t, i.activeTexture(i.TEXTURE0 + e), i.bindTexture(i.TEXTURE_2D, o.texture)) : this.textureManager.updateTexture(t, e), e
                            }, e.prototype.unbindTexture = function(t) {
                                var e = this.gl;
                                t = t.baseTexture || t;
                                for (var n = 0; n < this.boundTextures.length; n++) this.boundTextures[n] === t && (this.boundTextures[n] = this.emptyTextures[n], e.activeTexture(e.TEXTURE0 + n), e.bindTexture(e.TEXTURE_2D, this.emptyTextures[n]._glTextures[this.CONTEXT_UID].texture));
                                return this
                            }, e.prototype.createVao = function() {
                                return new D.default.VertexArrayObject(this.gl, this.state.attribState)
                            }, e.prototype.bindVao = function(t) {
                                return this._activeVao === t ? this : (t ? t.bind() : this._activeVao && this._activeVao.unbind(), this._activeVao = t, this)
                            }, e.prototype.reset = function() {
                                return this.setObjectRenderer(this.emptyRenderer), this._activeShader = null, this._activeRenderTarget = this.rootRenderTarget, this.rootRenderTarget.activate(), this.state.resetToDefault(), this
                            }, e.prototype.handleContextLost = function(t) {
                                t.preventDefault()
                            }, e.prototype.handleContextRestored = function() {
                                this.textureManager.removeAll(), this._initContext()
                            }, e.prototype.destroy = function(e) {
                                this.destroyPlugins(), this.view.removeEventListener("webglcontextlost", this.handleContextLost), this.view.removeEventListener("webglcontextrestored", this.handleContextRestored), this.textureManager.destroy(), t.prototype.destroy.call(this, e), this.uid = 0, this.maskManager.destroy(), this.stencilManager.destroy(), this.filterManager.destroy(), this.maskManager = null, this.filterManager = null, this.textureManager = null, this.currentRenderer = null, this.handleContextLost = null, this.handleContextRestored = null, this._contextOptions = null, this.gl.useProgram(null), this.gl.getExtension("WEBGL_lose_context") && this.gl.getExtension("WEBGL_lose_context").loseContext(), this.gl = null
                            }, e
                        }(u.default);
                    n.default = F, M.pluginTarget.mixin(F)
                }, {
                    "../../const": 45,
                    "../../textures/BaseTexture": 111,
                    "../../utils": 123,
                    "../SystemRenderer": 75,
                    "./TextureGarbageCollector": 81,
                    "./TextureManager": 82,
                    "./WebGLState": 84,
                    "./managers/FilterManager": 89,
                    "./managers/MaskManager": 90,
                    "./managers/StencilManager": 91,
                    "./utils/ObjectRenderer": 93,
                    "./utils/RenderTarget": 95,
                    "./utils/mapWebGLDrawModesToPixi": 98,
                    "./utils/validateContext": 99,
                    "pixi-gl-core": 12
                }],
                84: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("./utils/mapWebGLBlendModesToPixi"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = function() {
                            function t(e) {
                                r(this, t), this.activeState = new Uint8Array(16), this.defaultState = new Uint8Array(16), this.defaultState[0] = 1, this.stackIndex = 0, this.stack = [], this.gl = e, this.maxAttribs = e.getParameter(e.MAX_VERTEX_ATTRIBS), this.attribState = {
                                    tempAttribState: new Array(this.maxAttribs),
                                    attribState: new Array(this.maxAttribs)
                                }, this.blendModes = (0, o.default)(e), this.nativeVaoExtension = e.getExtension("OES_vertex_array_object") || e.getExtension("MOZ_OES_vertex_array_object") || e.getExtension("WEBKIT_OES_vertex_array_object")
                            }
                            return t.prototype.push = function() {
                                var t = this.stack[this.stackIndex];
                                t || (t = this.stack[this.stackIndex] = new Uint8Array(16)), ++this.stackIndex;
                                for (var e = 0; e < this.activeState.length; e++) t[e] = this.activeState[e]
                            }, t.prototype.pop = function() {
                                var t = this.stack[--this.stackIndex];
                                this.setState(t)
                            }, t.prototype.setState = function(t) {
                                this.setBlend(t[0]), this.setDepthTest(t[1]), this.setFrontFace(t[2]), this.setCullFace(t[3]), this.setBlendMode(t[4])
                            }, t.prototype.setBlend = function(t) {
                                t = t ? 1 : 0, this.activeState[0] !== t && (this.activeState[0] = t, this.gl[t ? "enable" : "disable"](this.gl.BLEND))
                            }, t.prototype.setBlendMode = function(t) {
                                if (t !== this.activeState[4]) {
                                    this.activeState[4] = t;
                                    var e = this.blendModes[t];
                                    2 === e.length ? this.gl.blendFunc(e[0], e[1]) : this.gl.blendFuncSeparate(e[0], e[1], e[2], e[3])
                                }
                            }, t.prototype.setDepthTest = function(t) {
                                t = t ? 1 : 0, this.activeState[1] !== t && (this.activeState[1] = t, this.gl[t ? "enable" : "disable"](this.gl.DEPTH_TEST))
                            }, t.prototype.setCullFace = function(t) {
                                t = t ? 1 : 0, this.activeState[3] !== t && (this.activeState[3] = t, this.gl[t ? "enable" : "disable"](this.gl.CULL_FACE))
                            }, t.prototype.setFrontFace = function(t) {
                                t = t ? 1 : 0, this.activeState[2] !== t && (this.activeState[2] = t, this.gl.frontFace(this.gl[t ? "CW" : "CCW"]))
                            }, t.prototype.resetAttributes = function() {
                                for (var t = 0; t < this.attribState.tempAttribState.length; t++) this.attribState.tempAttribState[t] = 0;
                                for (var e = 0; e < this.attribState.attribState.length; e++) this.attribState.attribState[e] = 0;
                                for (var n = 1; n < this.maxAttribs; n++) this.gl.disableVertexAttribArray(n)
                            }, t.prototype.resetToDefault = function() {
                                this.nativeVaoExtension && this.nativeVaoExtension.bindVertexArrayOES(null), this.resetAttributes();
                                for (var t = 0; t < this.activeState.length; ++t) this.activeState[t] = 32;
                                this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, !1), this.setState(this.defaultState)
                            }, t
                        }();
                    n.default = a
                }, {
                    "./utils/mapWebGLBlendModesToPixi": 97
                }],
                85: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        a = t("./extractUniformsFromSrc"),
                        s = r(a),
                        u = t("../../../utils"),
                        l = t("../../../const"),
                        c = t("../../../settings"),
                        h = r(c),
                        d = {},
                        f = function() {
                            function t(e, n, r) {
                                i(this, t), this.vertexSrc = e || t.defaultVertexSrc, this.fragmentSrc = n || t.defaultFragmentSrc, this.blendMode = l.BLEND_MODES.NORMAL, this.uniformData = r || (0, s.default)(this.vertexSrc, this.fragmentSrc, "projectionMatrix|uSampler"), this.uniforms = {};
                                for (var o in this.uniformData) this.uniforms[o] = this.uniformData[o].value;
                                this.glShaders = {}, d[this.vertexSrc + this.fragmentSrc] || (d[this.vertexSrc + this.fragmentSrc] = (0, u.uid)()), this.glShaderKey = d[this.vertexSrc + this.fragmentSrc], this.padding = 4, this.resolution = h.default.RESOLUTION, this.enabled = !0, this.autoFit = !0
                            }
                            return t.prototype.apply = function(t, e, n, r, i) {
                                t.applyFilter(this, e, n, r)
                            }, o(t, null, [{
                                key: "defaultVertexSrc",
                                get: function() {
                                    return ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "uniform mat3 projectionMatrix;", "uniform mat3 filterMatrix;", "varying vec2 vTextureCoord;", "varying vec2 vFilterCoord;", "void main(void){", "   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);", "   vFilterCoord = ( filterMatrix * vec3( aTextureCoord, 1.0)  ).xy;", "   vTextureCoord = aTextureCoord ;", "}"].join("\n")
                                }
                            }, {
                                key: "defaultFragmentSrc",
                                get: function() {
                                    return ["varying vec2 vTextureCoord;", "varying vec2 vFilterCoord;", "uniform sampler2D uSampler;", "uniform sampler2D filterSampler;", "void main(void){", "   vec4 masky = texture2D(filterSampler, vFilterCoord);", "   vec4 sample = texture2D(uSampler, vTextureCoord);", "   vec4 color;", "   if(mod(vFilterCoord.x, 1.0) > 0.5)", "   {", "     color = vec4(1.0, 0.0, 0.0, 1.0);", "   }", "   else", "   {", "     color = vec4(0.0, 1.0, 0.0, 1.0);", "   }", "   gl_FragColor = mix(sample, masky, 0.5);", "   gl_FragColor *= sample.a;", "}"].join("\n")
                                }
                            }]), t
                        }();
                    n.default = f
                }, {
                    "../../../const": 45,
                    "../../../settings": 100,
                    "../../../utils": 123,
                    "./extractUniformsFromSrc": 86
                }],
                86: [function(t, e, n) {
                    "use strict";

                    function r(t, e, n) {
                        var r = i(t),
                            o = i(e);
                        return Object.assign(r, o)
                    }

                    function i(t) {
                        for (var e = new RegExp("^(projectionMatrix|uSampler|filterArea|filterClamp)$"), n = {}, r = void 0, i = t.replace(/\s+/g, " ").split(/\s*;\s*/), o = 0; o < i.length; o++) {
                            var a = i[o].trim();
                            if (a.indexOf("uniform") > -1) {
                                var u = a.split(" "),
                                    l = u[1],
                                    c = u[2],
                                    h = 1;
                                c.indexOf("[") > -1 && (r = c.split(/\[|]/), c = r[0], h *= Number(r[1])), c.match(e) || (n[c] = {
                                    value: s(l, h),
                                    name: c,
                                    type: l
                                })
                            }
                        }
                        return n
                    }
                    n.__esModule = !0, n.default = r;
                    var o = t("pixi-gl-core"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o),
                        s = a.default.shader.defaultValue
                }, {
                    "pixi-gl-core": 12
                }],
                87: [function(t, e, n) {
                    "use strict";

                    function r(t, e, n) {
                        var r = t.identity();
                        return r.translate(e.x / n.width, e.y / n.height), r.scale(n.width, n.height), r
                    }

                    function i(t, e, n) {
                        var r = t.identity();
                        r.translate(e.x / n.width, e.y / n.height);
                        var i = n.width / e.width,
                            o = n.height / e.height;
                        return r.scale(i, o), r
                    }

                    function o(t, e, n, r) {
                        var i = r.worldTransform.copy(a.Matrix.TEMP_MATRIX),
                            o = r._texture.baseTexture,
                            s = t.identity(),
                            u = n.height / n.width;
                        s.translate(e.x / n.width, e.y / n.height), s.scale(1, u);
                        var l = n.width / o.width,
                            c = n.height / o.height;
                        return i.tx /= o.width * l, i.ty /= o.width * l, i.invert(), s.prepend(i), s.scale(1, 1 / u), s.scale(l, c), s.translate(r.anchor.x, r.anchor.y), s
                    }
                    n.__esModule = !0, n.calculateScreenSpaceMatrix = r, n.calculateNormalizedScreenSpaceMatrix = i, n.calculateSpriteMatrix = o;
                    var a = t("../../../math")
                }, {
                    "../../../math": 69
                }],
                88: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("../Filter"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = t("../../../../math"),
                        l = (t("path"), function(t) {
                            function e(n) {
                                r(this, e);
                                var o = new u.Matrix,
                                    a = i(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = aTextureCoord;\n    vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0)  ).xy;\n}\n", "varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float alpha;\nuniform sampler2D mask;\n\nvoid main(void)\n{\n    // check clip! this will stop the mask bleeding out from the edges\n    vec2 text = abs( vMaskCoord - 0.5 );\n    text = step(0.5, text);\n\n    float clip = 1.0 - max(text.y, text.x);\n    vec4 original = texture2D(uSampler, vTextureCoord);\n    vec4 masky = texture2D(mask, vMaskCoord);\n\n    original *= (masky.r * masky.a * alpha * clip);\n\n    gl_FragColor = original;\n}\n"));
                                return n.renderable = !1, a.maskSprite = n, a.maskMatrix = o, a
                            }
                            return o(e, t), e.prototype.apply = function(t, e, n) {
                                var r = this.maskSprite;
                                this.uniforms.mask = r._texture, this.uniforms.otherMatrix = t.calculateSpriteMatrix(this.maskMatrix, r), this.uniforms.alpha = r.worldAlpha, t.applyFilter(this, e, n)
                            }, e
                        }(s.default));
                    n.default = l
                }, {
                    "../../../../math": 69,
                    "../Filter": 85,
                    path: 22
                }],
                89: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }

                    function a(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var s = t("./WebGLManager"),
                        u = r(s),
                        l = t("../utils/RenderTarget"),
                        c = r(l),
                        h = t("../utils/Quad"),
                        d = r(h),
                        f = t("../../../math"),
                        p = t("../../../Shader"),
                        g = r(p),
                        m = t("../filters/filterTransforms"),
                        y = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(m),
                        b = t("bit-twiddle"),
                        v = r(b),
                        _ = function t() {
                            a(this, t), this.renderTarget = null, this.sourceFrame = new f.Rectangle, this.destinationFrame = new f.Rectangle, this.filters = [], this.target = null, this.resolution = 1
                        },
                        x = function(t) {
                            function e(n) {
                                a(this, e);
                                var r = i(this, t.call(this, n));
                                return r.gl = r.renderer.gl, r.quad = new d.default(r.gl, n.state.attribState), r.shaderCache = {}, r.pool = {}, r.filterData = null, r
                            }
                            return o(e, t), e.prototype.pushFilter = function(t, e) {
                                var n = this.renderer,
                                    r = this.filterData;
                                if (!r) {
                                    r = this.renderer._activeRenderTarget.filterStack;
                                    var i = new _;
                                    i.sourceFrame = i.destinationFrame = this.renderer._activeRenderTarget.size, i.renderTarget = n._activeRenderTarget, this.renderer._activeRenderTarget.filterData = r = {
                                        index: 0,
                                        stack: [i]
                                    }, this.filterData = r
                                }
                                var o = r.stack[++r.index];
                                o || (o = r.stack[r.index] = new _);
                                var a = e[0].resolution,
                                    s = 0 | e[0].padding,
                                    u = t.filterArea || t.getBounds(!0),
                                    l = o.sourceFrame,
                                    c = o.destinationFrame;
                                l.x = (u.x * a | 0) / a, l.y = (u.y * a | 0) / a, l.width = (u.width * a | 0) / a, l.height = (u.height * a | 0) / a, r.stack[0].renderTarget.transform || e[0].autoFit && l.fit(r.stack[0].destinationFrame), l.pad(s), c.width = l.width, c.height = l.height;
                                var h = this.getPotRenderTarget(n.gl, l.width, l.height, a);
                                o.target = t, o.filters = e, o.resolution = a, o.renderTarget = h, h.setFrame(c, l), n.bindRenderTarget(h), h.clear()
                            }, e.prototype.popFilter = function() {
                                var t = this.filterData,
                                    e = t.stack[t.index - 1],
                                    n = t.stack[t.index];
                                this.quad.map(n.renderTarget.size, n.sourceFrame).upload();
                                var r = n.filters;
                                if (1 === r.length) r[0].apply(this, n.renderTarget, e.renderTarget, !1, n), this.freePotRenderTarget(n.renderTarget);
                                else {
                                    var i = n.renderTarget,
                                        o = this.getPotRenderTarget(this.renderer.gl, n.sourceFrame.width, n.sourceFrame.height, n.resolution);
                                    o.setFrame(n.destinationFrame, n.sourceFrame), o.clear();
                                    var a = 0;
                                    for (a = 0; a < r.length - 1; ++a) {
                                        r[a].apply(this, i, o, !0, n);
                                        var s = i;
                                        i = o, o = s
                                    }
                                    r[a].apply(this, i, e.renderTarget, !1, n), this.freePotRenderTarget(i), this.freePotRenderTarget(o)
                                }
                                0 === --t.index && (this.filterData = null)
                            }, e.prototype.applyFilter = function(t, e, n, r) {
                                var i = this.renderer,
                                    o = i.gl,
                                    a = t.glShaders[i.CONTEXT_UID];
                                a || (t.glShaderKey ? (a = this.shaderCache[t.glShaderKey]) || (a = new g.default(this.gl, t.vertexSrc, t.fragmentSrc), t.glShaders[i.CONTEXT_UID] = this.shaderCache[t.glShaderKey] = a) : a = t.glShaders[i.CONTEXT_UID] = new g.default(this.gl, t.vertexSrc, t.fragmentSrc), i.bindVao(null), this.quad.initVao(a)), i.bindVao(this.quad.vao), i.bindRenderTarget(n), r && (o.disable(o.SCISSOR_TEST), i.clear(), o.enable(o.SCISSOR_TEST)), n === i.maskManager.scissorRenderTarget && i.maskManager.pushScissorMask(null, i.maskManager.scissorData), i.bindShader(a);
                                var s = this.renderer.emptyTextures[0];
                                this.renderer.boundTextures[0] = s, this.syncUniforms(a, t), i.state.setBlendMode(t.blendMode), o.activeTexture(o.TEXTURE0), o.bindTexture(o.TEXTURE_2D, e.texture.texture), this.quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0), o.bindTexture(o.TEXTURE_2D, s._glTextures[this.renderer.CONTEXT_UID].texture)
                            }, e.prototype.syncUniforms = function(t, e) {
                                var n = e.uniformData,
                                    r = e.uniforms,
                                    i = 1,
                                    o = void 0;
                                if (t.uniforms.filterArea) {
                                    o = this.filterData.stack[this.filterData.index];
                                    var a = t.uniforms.filterArea;
                                    a[0] = o.renderTarget.size.width, a[1] = o.renderTarget.size.height, a[2] = o.sourceFrame.x, a[3] = o.sourceFrame.y, t.uniforms.filterArea = a
                                }
                                if (t.uniforms.filterClamp) {
                                    o = o || this.filterData.stack[this.filterData.index];
                                    var s = t.uniforms.filterClamp;
                                    s[0] = 0, s[1] = 0, s[2] = (o.sourceFrame.width - 1) / o.renderTarget.size.width, s[3] = (o.sourceFrame.height - 1) / o.renderTarget.size.height, t.uniforms.filterClamp = s
                                }
                                for (var u in n)
                                    if ("sampler2D" === n[u].type && 0 !== r[u]) {
                                        if (r[u].baseTexture) t.uniforms[u] = this.renderer.bindTexture(r[u].baseTexture, i);
                                        else {
                                            t.uniforms[u] = i;
                                            var l = this.renderer.gl;
                                            this.renderer.boundTextures[i] = this.renderer.emptyTextures[i], l.activeTexture(l.TEXTURE0 + i), r[u].texture.bind()
                                        }
                                        i++
                                    } else if ("mat3" === n[u].type) void 0 !== r[u].a ? t.uniforms[u] = r[u].toArray(!0) : t.uniforms[u] = r[u];
                                else if ("vec2" === n[u].type)
                                    if (void 0 !== r[u].x) {
                                        var c = t.uniforms[u] || new Float32Array(2);
                                        c[0] = r[u].x, c[1] = r[u].y, t.uniforms[u] = c
                                    } else t.uniforms[u] = r[u];
                                else "float" === n[u].type ? t.uniforms.data[u].value !== n[u] && (t.uniforms[u] = r[u]) : t.uniforms[u] = r[u]
                            }, e.prototype.getRenderTarget = function(t, e) {
                                var n = this.filterData.stack[this.filterData.index],
                                    r = this.getPotRenderTarget(this.renderer.gl, n.sourceFrame.width, n.sourceFrame.height, e || n.resolution);
                                return r.setFrame(n.destinationFrame, n.sourceFrame), r
                            }, e.prototype.returnRenderTarget = function(t) {
                                this.freePotRenderTarget(t)
                            }, e.prototype.calculateScreenSpaceMatrix = function(t) {
                                var e = this.filterData.stack[this.filterData.index];
                                return y.calculateScreenSpaceMatrix(t, e.sourceFrame, e.renderTarget.size)
                            }, e.prototype.calculateNormalizedScreenSpaceMatrix = function(t) {
                                var e = this.filterData.stack[this.filterData.index];
                                return y.calculateNormalizedScreenSpaceMatrix(t, e.sourceFrame, e.renderTarget.size, e.destinationFrame)
                            }, e.prototype.calculateSpriteMatrix = function(t, e) {
                                var n = this.filterData.stack[this.filterData.index];
                                return y.calculateSpriteMatrix(t, n.sourceFrame, n.renderTarget.size, e)
                            }, e.prototype.destroy = function() {
                                this.shaderCache = {}, this.emptyPool()
                            }, e.prototype.getPotRenderTarget = function(t, e, n, r) {
                                e = v.default.nextPow2(e * r), n = v.default.nextPow2(n * r);
                                var i = (65535 & e) << 16 | 65535 & n;
                                this.pool[i] || (this.pool[i] = []);
                                var o = this.pool[i].pop();
                                if (!o) {
                                    var a = this.renderer.boundTextures[0];
                                    t.activeTexture(t.TEXTURE0), o = new c.default(t, e, n, null, 1), t.bindTexture(t.TEXTURE_2D, a._glTextures[this.renderer.CONTEXT_UID].texture)
                                }
                                return o.resolution = r, o.defaultFrame.width = o.size.width = e / r, o.defaultFrame.height = o.size.height = n / r, o
                            }, e.prototype.emptyPool = function() {
                                for (var t in this.pool) {
                                    var e = this.pool[t];
                                    if (e)
                                        for (var n = 0; n < e.length; n++) e[n].destroy(!0)
                                }
                                this.pool = {}
                            }, e.prototype.freePotRenderTarget = function(t) {
                                var e = t.size.width * t.resolution,
                                    n = t.size.height * t.resolution,
                                    r = (65535 & e) << 16 | 65535 & n;
                                this.pool[r].push(t)
                            }, e
                        }(u.default);
                    n.default = x
                }, {
                    "../../../Shader": 43,
                    "../../../math": 69,
                    "../filters/filterTransforms": 87,
                    "../utils/Quad": 94,
                    "../utils/RenderTarget": 95,
                    "./WebGLManager": 92,
                    "bit-twiddle": 1
                }],
                90: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("./WebGLManager"),
                        u = r(s),
                        l = t("../filters/spriteMask/SpriteMaskFilter"),
                        c = r(l),
                        h = function(t) {
                            function e(n) {
                                i(this, e);
                                var r = o(this, t.call(this, n));
                                return r.scissor = !1, r.scissorData = null, r.scissorRenderTarget = null, r.enableScissor = !0, r.alphaMaskPool = [], r.alphaMaskIndex = 0, r
                            }
                            return a(e, t), e.prototype.pushMask = function(t, e) {
                                if (e.texture) this.pushSpriteMask(t, e);
                                else if (this.enableScissor && !this.scissor && this.renderer._activeRenderTarget.root && !this.renderer.stencilManager.stencilMaskStack.length && e.isFastRect()) {
                                    var n = e.worldTransform,
                                        r = Math.atan2(n.b, n.a);
                                    r = Math.round(r * (180 / Math.PI)), r % 90 ? this.pushStencilMask(e) : this.pushScissorMask(t, e)
                                } else this.pushStencilMask(e)
                            }, e.prototype.popMask = function(t, e) {
                                e.texture ? this.popSpriteMask(t, e) : this.enableScissor && !this.renderer.stencilManager.stencilMaskStack.length ? this.popScissorMask(t, e) : this.popStencilMask(t, e)
                            }, e.prototype.pushSpriteMask = function(t, e) {
                                var n = this.alphaMaskPool[this.alphaMaskIndex];
                                n || (n = this.alphaMaskPool[this.alphaMaskIndex] = [new c.default(e)]), n[0].resolution = this.renderer.resolution, n[0].maskSprite = e, t.filterArea = e.getBounds(!0), this.renderer.filterManager.pushFilter(t, n), this.alphaMaskIndex++
                            }, e.prototype.popSpriteMask = function() {
                                this.renderer.filterManager.popFilter(), this.alphaMaskIndex--
                            }, e.prototype.pushStencilMask = function(t) {
                                this.renderer.currentRenderer.stop(), this.renderer.stencilManager.pushStencil(t)
                            }, e.prototype.popStencilMask = function() {
                                this.renderer.currentRenderer.stop(), this.renderer.stencilManager.popStencil()
                            }, e.prototype.pushScissorMask = function(t, e) {
                                e.renderable = !0;
                                var n = this.renderer._activeRenderTarget,
                                    r = e.getBounds();
                                r.fit(n.size), e.renderable = !1, this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST);
                                var i = this.renderer.resolution;
                                this.renderer.gl.scissor(r.x * i, (n.root ? n.size.height - r.y - r.height : r.y) * i, r.width * i, r.height * i), this.scissorRenderTarget = n, this.scissorData = e, this.scissor = !0
                            }, e.prototype.popScissorMask = function() {
                                this.scissorRenderTarget = null, this.scissorData = null, this.scissor = !1;
                                var t = this.renderer.gl;
                                t.disable(t.SCISSOR_TEST)
                            }, e
                        }(u.default);
                    n.default = h
                }, {
                    "../filters/spriteMask/SpriteMaskFilter": 88,
                    "./WebGLManager": 92
                }],
                91: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("./WebGLManager"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = function(t) {
                            function e(n) {
                                r(this, e);
                                var o = i(this, t.call(this, n));
                                return o.stencilMaskStack = null, o
                            }
                            return o(e, t), e.prototype.setMaskStack = function(t) {
                                this.stencilMaskStack = t;
                                var e = this.renderer.gl;
                                0 === t.length ? e.disable(e.STENCIL_TEST) : e.enable(e.STENCIL_TEST)
                            }, e.prototype.pushStencil = function(t) {
                                this.renderer.setObjectRenderer(this.renderer.plugins.graphics), this.renderer._activeRenderTarget.attachStencilBuffer();
                                var e = this.renderer.gl,
                                    n = this.stencilMaskStack;
                                0 === n.length && (e.enable(e.STENCIL_TEST),
                                    e.clear(e.STENCIL_BUFFER_BIT), e.stencilFunc(e.ALWAYS, 1, 1)), n.push(t), e.colorMask(!1, !1, !1, !1), e.stencilOp(e.KEEP, e.KEEP, e.INCR), this.renderer.plugins.graphics.render(t), e.colorMask(!0, !0, !0, !0), e.stencilFunc(e.NOTEQUAL, 0, n.length), e.stencilOp(e.KEEP, e.KEEP, e.KEEP)
                            }, e.prototype.popStencil = function() {
                                this.renderer.setObjectRenderer(this.renderer.plugins.graphics);
                                var t = this.renderer.gl,
                                    e = this.stencilMaskStack,
                                    n = e.pop();
                                0 === e.length ? t.disable(t.STENCIL_TEST) : (t.colorMask(!1, !1, !1, !1), t.stencilOp(t.KEEP, t.KEEP, t.DECR), this.renderer.plugins.graphics.render(n), t.colorMask(!0, !0, !0, !0), t.stencilFunc(t.NOTEQUAL, 0, e.length), t.stencilOp(t.KEEP, t.KEEP, t.KEEP))
                            }, e.prototype.destroy = function() {
                                s.default.prototype.destroy.call(this), this.stencilMaskStack.stencilStack = null
                            }, e
                        }(s.default);
                    n.default = u
                }, {
                    "./WebGLManager": 92
                }],
                92: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t(e) {
                            r(this, t), this.renderer = e, this.renderer.on("context", this.onContextChange, this)
                        }
                        return t.prototype.onContextChange = function() {}, t.prototype.destroy = function() {
                            this.renderer.off("context", this.onContextChange, this), this.renderer = null
                        }, t
                    }();
                    n.default = i
                }, {}],
                93: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("../managers/WebGLManager"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = function(t) {
                            function e() {
                                return r(this, e), i(this, t.apply(this, arguments))
                            }
                            return o(e, t), e.prototype.start = function() {}, e.prototype.stop = function() {
                                this.flush()
                            }, e.prototype.flush = function() {}, e.prototype.render = function(t) {}, e
                        }(s.default);
                    n.default = u
                }, {
                    "../managers/WebGLManager": 92
                }],
                94: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = t("pixi-gl-core"),
                        a = r(o),
                        s = t("../../../utils/createIndicesForQuads"),
                        u = r(s),
                        l = function() {
                            function t(e, n) {
                                i(this, t), this.gl = e, this.vertices = new Float32Array([-1, -1, 1, -1, 1, 1, -1, 1]), this.uvs = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]), this.interleaved = new Float32Array(16);
                                for (var r = 0; r < 4; r++) this.interleaved[4 * r] = this.vertices[2 * r], this.interleaved[4 * r + 1] = this.vertices[2 * r + 1], this.interleaved[4 * r + 2] = this.uvs[2 * r], this.interleaved[4 * r + 3] = this.uvs[2 * r + 1];
                                this.indices = (0, u.default)(1), this.vertexBuffer = a.default.GLBuffer.createVertexBuffer(e, this.interleaved, e.STATIC_DRAW), this.indexBuffer = a.default.GLBuffer.createIndexBuffer(e, this.indices, e.STATIC_DRAW), this.vao = new a.default.VertexArrayObject(e, n)
                            }
                            return t.prototype.initVao = function(t) {
                                this.vao.clear().addIndex(this.indexBuffer).addAttribute(this.vertexBuffer, t.attributes.aVertexPosition, this.gl.FLOAT, !1, 16, 0).addAttribute(this.vertexBuffer, t.attributes.aTextureCoord, this.gl.FLOAT, !1, 16, 8)
                            }, t.prototype.map = function(t, e) {
                                var n = 0,
                                    r = 0;
                                return this.uvs[0] = n, this.uvs[1] = r, this.uvs[2] = n + e.width / t.width, this.uvs[3] = r, this.uvs[4] = n + e.width / t.width, this.uvs[5] = r + e.height / t.height, this.uvs[6] = n, this.uvs[7] = r + e.height / t.height, n = e.x, r = e.y, this.vertices[0] = n, this.vertices[1] = r, this.vertices[2] = n + e.width, this.vertices[3] = r, this.vertices[4] = n + e.width, this.vertices[5] = r + e.height, this.vertices[6] = n, this.vertices[7] = r + e.height, this
                            }, t.prototype.upload = function() {
                                for (var t = 0; t < 4; t++) this.interleaved[4 * t] = this.vertices[2 * t], this.interleaved[4 * t + 1] = this.vertices[2 * t + 1], this.interleaved[4 * t + 2] = this.uvs[2 * t], this.interleaved[4 * t + 3] = this.uvs[2 * t + 1];
                                return this.vertexBuffer.upload(this.interleaved), this
                            }, t.prototype.destroy = function() {
                                var t = this.gl;
                                t.deleteBuffer(this.vertexBuffer), t.deleteBuffer(this.indexBuffer)
                            }, t
                        }();
                    n.default = l
                }, {
                    "../../../utils/createIndicesForQuads": 121,
                    "pixi-gl-core": 12
                }],
                95: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../../../math"),
                        o = t("../../../const"),
                        a = t("../../../settings"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = t("pixi-gl-core"),
                        l = function() {
                            function t(e, n, a, l, c, h) {
                                r(this, t), this.gl = e, this.frameBuffer = null, this.texture = null, this.clearColor = [0, 0, 0, 0], this.size = new i.Rectangle(0, 0, 1, 1), this.resolution = c || s.default.RESOLUTION, this.projectionMatrix = new i.Matrix, this.transform = null, this.frame = null, this.defaultFrame = new i.Rectangle, this.destinationFrame = null, this.sourceFrame = null, this.stencilBuffer = null, this.stencilMaskStack = [], this.filterData = null, this.scaleMode = void 0 !== l ? l : s.default.SCALE_MODE, this.root = h, this.root ? (this.frameBuffer = new u.GLFramebuffer(e, 100, 100), this.frameBuffer.framebuffer = null) : (this.frameBuffer = u.GLFramebuffer.createRGBA(e, 100, 100), this.scaleMode === o.SCALE_MODES.NEAREST ? this.frameBuffer.texture.enableNearestScaling() : this.frameBuffer.texture.enableLinearScaling(), this.texture = this.frameBuffer.texture), this.setFrame(), this.resize(n, a)
                            }
                            return t.prototype.clear = function(t) {
                                var e = t || this.clearColor;
                                this.frameBuffer.clear(e[0], e[1], e[2], e[3])
                            }, t.prototype.attachStencilBuffer = function() {
                                this.root || this.frameBuffer.enableStencil()
                            }, t.prototype.setFrame = function(t, e) {
                                this.destinationFrame = t || this.destinationFrame || this.defaultFrame, this.sourceFrame = e || this.sourceFrame || this.destinationFrame
                            }, t.prototype.activate = function() {
                                var t = this.gl;
                                this.frameBuffer.bind(), this.calculateProjection(this.destinationFrame, this.sourceFrame), this.transform && this.projectionMatrix.append(this.transform), this.destinationFrame !== this.sourceFrame ? (t.enable(t.SCISSOR_TEST), t.scissor(0 | this.destinationFrame.x, 0 | this.destinationFrame.y, this.destinationFrame.width * this.resolution | 0, this.destinationFrame.height * this.resolution | 0)) : t.disable(t.SCISSOR_TEST), t.viewport(0 | this.destinationFrame.x, 0 | this.destinationFrame.y, this.destinationFrame.width * this.resolution | 0, this.destinationFrame.height * this.resolution | 0)
                            }, t.prototype.calculateProjection = function(t, e) {
                                var n = this.projectionMatrix;
                                e = e || t, n.identity(), this.root ? (n.a = 1 / t.width * 2, n.d = -1 / t.height * 2, n.tx = -1 - e.x * n.a, n.ty = 1 - e.y * n.d) : (n.a = 1 / t.width * 2, n.d = 1 / t.height * 2, n.tx = -1 - e.x * n.a, n.ty = -1 - e.y * n.d)
                            }, t.prototype.resize = function(t, e) {
                                if (t |= 0, e |= 0, this.size.width !== t || this.size.height !== e) {
                                    this.size.width = t, this.size.height = e, this.defaultFrame.width = t, this.defaultFrame.height = e, this.frameBuffer.resize(t * this.resolution, e * this.resolution);
                                    var n = this.frame || this.size;
                                    this.calculateProjection(n)
                                }
                            }, t.prototype.destroy = function() {
                                this.frameBuffer.destroy(), this.frameBuffer = null, this.texture = null
                            }, t
                        }();
                    n.default = l
                }, {
                    "../../../const": 45,
                    "../../../math": 69,
                    "../../../settings": 100,
                    "pixi-gl-core": 12
                }],
                96: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        var n = !e;
                        if (0 === t) throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");
                        if (n) {
                            var r = document.createElement("canvas");
                            r.width = 1, r.height = 1, e = a.default.createContext(r)
                        }
                        for (var o = e.createShader(e.FRAGMENT_SHADER);;) {
                            var u = s.replace(/%forloop%/gi, i(t));
                            if (e.shaderSource(o, u), e.compileShader(o), e.getShaderParameter(o, e.COMPILE_STATUS)) break;
                            t = t / 2 | 0
                        }
                        return n && e.getExtension("WEBGL_lose_context") && e.getExtension("WEBGL_lose_context").loseContext(), t
                    }

                    function i(t) {
                        for (var e = "", n = 0; n < t; ++n) n > 0 && (e += "\nelse "), n < t - 1 && (e += "if(test == " + n + ".0){}");
                        return e
                    }
                    n.__esModule = !0, n.default = r;
                    var o = t("pixi-gl-core"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o),
                        s = ["precision mediump float;", "void main(void){", "float test = 0.1;", "%forloop%", "gl_FragColor = vec4(0.0);", "}"].join("\n")
                }, {
                    "pixi-gl-core": 12
                }],
                97: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
                        return e[i.BLEND_MODES.NORMAL] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.ADD] = [t.ONE, t.DST_ALPHA], e[i.BLEND_MODES.MULTIPLY] = [t.DST_COLOR, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.SCREEN] = [t.ONE, t.ONE_MINUS_SRC_COLOR], e[i.BLEND_MODES.OVERLAY] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.DARKEN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.LIGHTEN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.COLOR_DODGE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.COLOR_BURN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.HARD_LIGHT] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.SOFT_LIGHT] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.DIFFERENCE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.EXCLUSION] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.HUE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.SATURATION] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.COLOR] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.LUMINOSITY] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.NORMAL_NPM] = [t.SRC_ALPHA, t.ONE_MINUS_SRC_ALPHA, t.ONE, t.ONE_MINUS_SRC_ALPHA], e[i.BLEND_MODES.ADD_NPM] = [t.SRC_ALPHA, t.DST_ALPHA, t.ONE, t.DST_ALPHA], e[i.BLEND_MODES.SCREEN_NPM] = [t.SRC_ALPHA, t.ONE_MINUS_SRC_COLOR, t.ONE, t.ONE_MINUS_SRC_COLOR], e
                    }
                    n.__esModule = !0, n.default = r;
                    var i = t("../../../const")
                }, {
                    "../../../const": 45
                }],
                98: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                        return e[i.DRAW_MODES.POINTS] = t.POINTS, e[i.DRAW_MODES.LINES] = t.LINES, e[i.DRAW_MODES.LINE_LOOP] = t.LINE_LOOP, e[i.DRAW_MODES.LINE_STRIP] = t.LINE_STRIP, e[i.DRAW_MODES.TRIANGLES] = t.TRIANGLES, e[i.DRAW_MODES.TRIANGLE_STRIP] = t.TRIANGLE_STRIP, e[i.DRAW_MODES.TRIANGLE_FAN] = t.TRIANGLE_FAN, e
                    }
                    n.__esModule = !0, n.default = r;
                    var i = t("../../../const")
                }, {
                    "../../../const": 45
                }],
                99: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        t.getContextAttributes().stencil
                    }
                    n.__esModule = !0, n.default = r
                }, {}],
                100: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./utils/maxRecommendedTextures"),
                        o = r(i),
                        a = t("./utils/canUploadSameBuffer"),
                        s = r(a);
                    n.default = {
                        TARGET_FPMS: .06,
                        MIPMAP_TEXTURES: !0,
                        RESOLUTION: 1,
                        FILTER_RESOLUTION: 1,
                        SPRITE_MAX_TEXTURES: (0, o.default)(32),
                        SPRITE_BATCH_SIZE: 4096,
                        RETINA_PREFIX: /@([0-9\.]+)x/,
                        RENDER_OPTIONS: {
                            view: null,
                            antialias: !1,
                            forceFXAA: !1,
                            autoResize: !1,
                            transparent: !1,
                            backgroundColor: 0,
                            clearBeforeRender: !0,
                            preserveDrawingBuffer: !1,
                            roundPixels: !1,
                            width: 800,
                            height: 600,
                            legacy: !1
                        },
                        TRANSFORM_MODE: 0,
                        GC_MODE: 0,
                        GC_MAX_IDLE: 3600,
                        GC_MAX_CHECK_COUNT: 600,
                        WRAP_MODE: 0,
                        SCALE_MODE: 0,
                        PRECISION_VERTEX: "highp",
                        PRECISION_FRAGMENT: "mediump",
                        CAN_UPLOAD_SAME_BUFFER: (0, s.default)()
                    }
                }, {
                    "./utils/canUploadSameBuffer": 120,
                    "./utils/maxRecommendedTextures": 125
                }],
                101: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../math"),
                        l = t("../utils"),
                        c = t("../const"),
                        h = t("../textures/Texture"),
                        d = r(h),
                        f = t("../display/Container"),
                        p = r(f),
                        g = new u.Point,
                        m = function(t) {
                            function e(n) {
                                i(this, e);
                                var r = o(this, t.call(this));
                                return r._anchor = new u.ObservablePoint(r._onAnchorUpdate, r), r._texture = null, r._width = 0, r._height = 0, r._tint = null, r._tintRGB = null, r.tint = 16777215, r.blendMode = c.BLEND_MODES.NORMAL, r.shader = null, r.cachedTint = 16777215, r.texture = n || d.default.EMPTY, r.vertexData = new Float32Array(8), r.vertexTrimmedData = null, r._transformID = -1, r._textureID = -1, r._transformTrimmedID = -1, r._textureTrimmedID = -1, r.pluginName = "sprite", r
                            }
                            return a(e, t), e.prototype._onTextureUpdate = function() {
                                this._textureID = -1, this._textureTrimmedID = -1, this._width && (this.scale.x = (0, l.sign)(this.scale.x) * this._width / this._texture.orig.width), this._height && (this.scale.y = (0, l.sign)(this.scale.y) * this._height / this._texture.orig.height)
                            }, e.prototype._onAnchorUpdate = function() {
                                this._transformID = -1, this._transformTrimmedID = -1
                            }, e.prototype.calculateVertices = function() {
                                if (this._transformID !== this.transform._worldID || this._textureID !== this._texture._updateID) {
                                    this._transformID = this.transform._worldID, this._textureID = this._texture._updateID;
                                    var t = this._texture,
                                        e = this.transform.worldTransform,
                                        n = e.a,
                                        r = e.b,
                                        i = e.c,
                                        o = e.d,
                                        a = e.tx,
                                        s = e.ty,
                                        u = this.vertexData,
                                        l = t.trim,
                                        c = t.orig,
                                        h = this._anchor,
                                        d = 0,
                                        f = 0,
                                        p = 0,
                                        g = 0;
                                    l ? (f = l.x - h._x * c.width, d = f + l.width, g = l.y - h._y * c.height, p = g + l.height) : (f = -h._x * c.width, d = f + c.width, g = -h._y * c.height, p = g + c.height), u[0] = n * f + i * g + a, u[1] = o * g + r * f + s, u[2] = n * d + i * g + a, u[3] = o * g + r * d + s, u[4] = n * d + i * p + a, u[5] = o * p + r * d + s, u[6] = n * f + i * p + a, u[7] = o * p + r * f + s
                                }
                            }, e.prototype.calculateTrimmedVertices = function() {
                                if (this.vertexTrimmedData) {
                                    if (this._transformTrimmedID === this.transform._worldID && this._textureTrimmedID === this._texture._updateID) return
                                } else this.vertexTrimmedData = new Float32Array(8);
                                this._transformTrimmedID = this.transform._worldID, this._textureTrimmedID = this._texture._updateID;
                                var t = this._texture,
                                    e = this.vertexTrimmedData,
                                    n = t.orig,
                                    r = this._anchor,
                                    i = this.transform.worldTransform,
                                    o = i.a,
                                    a = i.b,
                                    s = i.c,
                                    u = i.d,
                                    l = i.tx,
                                    c = i.ty,
                                    h = -r._x * n.width,
                                    d = h + n.width,
                                    f = -r._y * n.height,
                                    p = f + n.height;
                                e[0] = o * h + s * f + l, e[1] = u * f + a * h + c, e[2] = o * d + s * f + l, e[3] = u * f + a * d + c, e[4] = o * d + s * p + l, e[5] = u * p + a * d + c, e[6] = o * h + s * p + l, e[7] = u * p + a * h + c
                            }, e.prototype._renderWebGL = function(t) {
                                this.calculateVertices(), t.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this)
                            }, e.prototype._renderCanvas = function(t) {
                                t.plugins[this.pluginName].render(this)
                            }, e.prototype._calculateBounds = function() {
                                var t = this._texture.trim,
                                    e = this._texture.orig;
                                !t || t.width === e.width && t.height === e.height ? (this.calculateVertices(), this._bounds.addQuad(this.vertexData)) : (this.calculateTrimmedVertices(), this._bounds.addQuad(this.vertexTrimmedData))
                            }, e.prototype.getLocalBounds = function(e) {
                                return 0 === this.children.length ? (this._bounds.minX = this._texture.orig.width * -this._anchor._x, this._bounds.minY = this._texture.orig.height * -this._anchor._y, this._bounds.maxX = this._texture.orig.width * (1 - this._anchor._x), this._bounds.maxY = this._texture.orig.height * (1 - this._anchor._x), e || (this._localBoundsRect || (this._localBoundsRect = new u.Rectangle), e = this._localBoundsRect), this._bounds.getRectangle(e)) : t.prototype.getLocalBounds.call(this, e)
                            }, e.prototype.containsPoint = function(t) {
                                this.worldTransform.applyInverse(t, g);
                                var e = this._texture.orig.width,
                                    n = this._texture.orig.height,
                                    r = -e * this.anchor.x,
                                    i = 0;
                                return g.x >= r && g.x < r + e && (i = -n * this.anchor.y, g.y >= i && g.y < i + n)
                            }, e.prototype.destroy = function(e) {
                                if (t.prototype.destroy.call(this, e), this._anchor = null, "boolean" == typeof e ? e : e && e.texture) {
                                    var n = "boolean" == typeof e ? e : e && e.baseTexture;
                                    this._texture.destroy(!!n)
                                }
                                this._texture = null, this.shader = null
                            }, e.from = function(t) {
                                return new e(d.default.from(t))
                            }, e.fromFrame = function(t) {
                                var n = l.TextureCache[t];
                                if (!n) throw new Error('The frameId "' + t + '" does not exist in the texture cache');
                                return new e(n)
                            }, e.fromImage = function(t, n, r) {
                                return new e(d.default.fromImage(t, n, r))
                            }, s(e, [{
                                key: "width",
                                get: function() {
                                    return Math.abs(this.scale.x) * this._texture.orig.width
                                },
                                set: function(t) {
                                    var e = (0, l.sign)(this.scale.x) || 1;
                                    this.scale.x = e * t / this._texture.orig.width, this._width = t
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return Math.abs(this.scale.y) * this._texture.orig.height
                                },
                                set: function(t) {
                                    var e = (0, l.sign)(this.scale.y) || 1;
                                    this.scale.y = e * t / this._texture.orig.height, this._height = t
                                }
                            }, {
                                key: "anchor",
                                get: function() {
                                    return this._anchor
                                },
                                set: function(t) {
                                    this._anchor.copy(t)
                                }
                            }, {
                                key: "tint",
                                get: function() {
                                    return this._tint
                                },
                                set: function(t) {
                                    this._tint = t, this._tintRGB = (t >> 16) + (65280 & t) + ((255 & t) << 16)
                                }
                            }, {
                                key: "texture",
                                get: function() {
                                    return this._texture
                                },
                                set: function(t) {
                                    this._texture !== t && (this._texture = t, this.cachedTint = 16777215, this._textureID = -1, this._textureTrimmedID = -1, t && (t.baseTexture.hasLoaded ? this._onTextureUpdate() : t.once("update", this._onTextureUpdate, this)))
                                }
                            }]), e
                        }(p.default);
                    n.default = m
                }, {
                    "../const": 45,
                    "../display/Container": 47,
                    "../math": 69,
                    "../textures/Texture": 114,
                    "../utils": 123
                }],
                102: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = t("../../renderers/canvas/CanvasRenderer"),
                        a = r(o),
                        s = t("../../const"),
                        u = t("../../math"),
                        l = t("./CanvasTinter"),
                        c = r(l),
                        h = new u.Matrix,
                        d = function() {
                            function t(e) {
                                i(this, t), this.renderer = e
                            }
                            return t.prototype.render = function(t) {
                                var e = t._texture,
                                    n = this.renderer,
                                    r = e._frame.width,
                                    i = e._frame.height,
                                    o = t.transform.worldTransform,
                                    a = 0,
                                    l = 0;
                                if (!(e.orig.width <= 0 || e.orig.height <= 0) && e.baseTexture.source && (n.setBlendMode(t.blendMode), e.valid)) {
                                    n.context.globalAlpha = t.worldAlpha;
                                    var d = e.baseTexture.scaleMode === s.SCALE_MODES.LINEAR;
                                    n.smoothProperty && n.context[n.smoothProperty] !== d && (n.context[n.smoothProperty] = d), e.trim ? (a = e.trim.width / 2 + e.trim.x - t.anchor.x * e.orig.width, l = e.trim.height / 2 + e.trim.y - t.anchor.y * e.orig.height) : (a = (.5 - t.anchor.x) * e.orig.width, l = (.5 - t.anchor.y) * e.orig.height), e.rotate && (o.copy(h), o = h, u.GroupD8.matrixAppendRotationInv(o, e.rotate, a, l), a = 0, l = 0), a -= r / 2, l -= i / 2, n.roundPixels ? (n.context.setTransform(o.a, o.b, o.c, o.d, o.tx * n.resolution | 0, o.ty * n.resolution | 0), a |= 0, l |= 0) : n.context.setTransform(o.a, o.b, o.c, o.d, o.tx * n.resolution, o.ty * n.resolution);
                                    var f = e.baseTexture.resolution;
                                    16777215 !== t.tint ? (t.cachedTint === t.tint && t.tintedTexture.tintId === t._texture._updateID || (t.cachedTint = t.tint, t.tintedTexture = c.default.getTintedTexture(t, t.tint)), n.context.drawImage(t.tintedTexture, 0, 0, r * f, i * f, a * n.resolution, l * n.resolution, r * n.resolution, i * n.resolution)) : n.context.drawImage(e.baseTexture.source, e._frame.x * f, e._frame.y * f, r * f, i * f, a * n.resolution, l * n.resolution, r * n.resolution, i * n.resolution)
                                }
                            }, t.prototype.destroy = function() {
                                this.renderer = null
                            }, t
                        }();
                    n.default = d, a.default.registerPlugin("sprite", d)
                }, {
                    "../../const": 45,
                    "../../math": 69,
                    "../../renderers/canvas/CanvasRenderer": 76,
                    "./CanvasTinter": 103
                }],
                103: [function(t, e, n) {
                    "use strict";
                    n.__esModule = !0;
                    var r = t("../../utils"),
                        i = t("../../renderers/canvas/utils/canUseNewCanvasBlendModes"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = {
                            getTintedTexture: function(t, e) {
                                var n = t._texture;
                                e = a.roundColor(e);
                                var r = "#" + ("00000" + (0 | e).toString(16)).substr(-6);
                                n.tintCache = n.tintCache || {};
                                var i = n.tintCache[r],
                                    o = void 0;
                                if (i) {
                                    if (i.tintId === n._updateID) return n.tintCache[r];
                                    o = n.tintCache[r]
                                } else o = a.canvas || document.createElement("canvas");
                                if (a.tintMethod(n, e, o), o.tintId = n._updateID, a.convertTintToImage) {
                                    var s = new Image;
                                    s.src = o.toDataURL(), n.tintCache[r] = s
                                } else n.tintCache[r] = o, a.canvas = null;
                                return o
                            },
                            tintWithMultiply: function(t, e, n) {
                                var r = n.getContext("2d"),
                                    i = t._frame.clone(),
                                    o = t.baseTexture.resolution;
                                i.x *= o, i.y *= o, i.width *= o, i.height *= o, n.width = Math.ceil(i.width), n.height = Math.ceil(i.height), r.fillStyle = "#" + ("00000" + (0 | e).toString(16)).substr(-6), r.fillRect(0, 0, i.width, i.height), r.globalCompositeOperation = "multiply", r.drawImage(t.baseTexture.source, i.x, i.y, i.width, i.height, 0, 0, i.width, i.height), r.globalCompositeOperation = "destination-atop", r.drawImage(t.baseTexture.source, i.x, i.y, i.width, i.height, 0, 0, i.width, i.height)
                            },
                            tintWithOverlay: function(t, e, n) {
                                var r = n.getContext("2d"),
                                    i = t._frame.clone(),
                                    o = t.baseTexture.resolution;
                                i.x *= o, i.y *= o, i.width *= o, i.height *= o, n.width = Math.ceil(i.width), n.height = Math.ceil(i.height), r.globalCompositeOperation = "copy", r.fillStyle = "#" + ("00000" + (0 | e).toString(16)).substr(-6), r.fillRect(0, 0, i.width, i.height), r.globalCompositeOperation = "destination-atop", r.drawImage(t.baseTexture.source, i.x, i.y, i.width, i.height, 0, 0, i.width, i.height)
                            },
                            tintWithPerPixel: function(t, e, n) {
                                var i = n.getContext("2d"),
                                    o = t._frame.clone(),
                                    a = t.baseTexture.resolution;
                                o.x *= a, o.y *= a, o.width *= a, o.height *= a, n.width = Math.ceil(o.width), n.height = Math.ceil(o.height), i.globalCompositeOperation = "copy", i.drawImage(t.baseTexture.source, o.x, o.y, o.width, o.height, 0, 0, o.width, o.height);
                                for (var s = (0, r.hex2rgb)(e), u = s[0], l = s[1], c = s[2], h = i.getImageData(0, 0, o.width, o.height), d = h.data, f = 0; f < d.length; f += 4) d[f + 0] *= u, d[f + 1] *= l, d[f + 2] *= c;
                                i.putImageData(h, 0, 0)
                            },
                            roundColor: function(t) {
                                var e = a.cacheStepsPerColorChannel,
                                    n = (0, r.hex2rgb)(t);
                                return n[0] = Math.min(255, n[0] / e * e), n[1] = Math.min(255, n[1] / e * e), n[2] = Math.min(255, n[2] / e * e), (0, r.rgb2hex)(n)
                            },
                            cacheStepsPerColorChannel: 8,
                            convertTintToImage: !1,
                            canUseMultiply: (0, o.default)(),
                            tintMethod: 0
                        };
                    a.tintMethod = a.canUseMultiply ? a.tintWithMultiply : a.tintWithPerPixel, n.default = a
                }, {
                    "../../renderers/canvas/utils/canUseNewCanvasBlendModes": 79,
                    "../../utils": 123
                }],
                104: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t(e) {
                            r(this, t), this.vertices = new ArrayBuffer(e), this.float32View = new Float32Array(this.vertices), this.uint32View = new Uint32Array(this.vertices)
                        }
                        return t.prototype.destroy = function() {
                            this.vertices = null, this.positions = null, this.uvs = null, this.colors = null
                        }, t
                    }();
                    n.default = i
                }, {}],
                105: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("../../renderers/webgl/utils/ObjectRenderer"),
                        u = r(s),
                        l = t("../../renderers/webgl/WebGLRenderer"),
                        c = r(l),
                        h = t("../../utils/createIndicesForQuads"),
                        d = r(h),
                        f = t("./generateMultiTextureShader"),
                        p = r(f),
                        g = t("../../renderers/webgl/utils/checkMaxIfStatmentsInShader"),
                        m = r(g),
                        y = t("./BatchBuffer"),
                        b = r(y),
                        v = t("../../settings"),
                        _ = r(v),
                        x = t("../../utils"),
                        T = t("pixi-gl-core"),
                        w = r(T),
                        S = t("bit-twiddle"),
                        C = r(S),
                        E = 0,
                        O = 0,
                        P = function(t) {
                            function e(n) {
                                i(this, e);
                                var r = o(this, t.call(this, n));
                                r.vertSize = 5, r.vertByteSize = 4 * r.vertSize, r.size = _.default.SPRITE_BATCH_SIZE, r.buffers = [];
                                for (var a = 1; a <= C.default.nextPow2(r.size); a *= 2) r.buffers.push(new b.default(4 * a * r.vertByteSize));
                                r.indices = (0, d.default)(r.size), r.shader = null, r.currentIndex = 0, r.groups = [];
                                for (var s = 0; s < r.size; s++) r.groups[s] = {
                                    textures: [],
                                    textureCount: 0,
                                    ids: [],
                                    size: 0,
                                    start: 0,
                                    blend: 0
                                };
                                return r.sprites = [], r.vertexBuffers = [], r.vaos = [], r.vaoMax = 2, r.vertexCount = 0, r.renderer.on("prerender", r.onPrerender, r), r
                            }
                            return a(e, t), e.prototype.onContextChange = function() {
                                var t = this.renderer.gl;
                                this.renderer.legacy ? this.MAX_TEXTURES = 1 : (this.MAX_TEXTURES = Math.min(t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS), _.default.SPRITE_MAX_TEXTURES), this.MAX_TEXTURES = (0, m.default)(this.MAX_TEXTURES, t)), this.shader = (0, p.default)(t, this.MAX_TEXTURES), this.indexBuffer = w.default.GLBuffer.createIndexBuffer(t, this.indices, t.STATIC_DRAW), this.renderer.bindVao(null);
                                for (var e = this.shader.attributes, n = 0; n < this.vaoMax; n++) {
                                    var r = this.vertexBuffers[n] = w.default.GLBuffer.createVertexBuffer(t, null, t.STREAM_DRAW),
                                        i = this.renderer.createVao().addIndex(this.indexBuffer).addAttribute(r, e.aVertexPosition, t.FLOAT, !1, this.vertByteSize, 0).addAttribute(r, e.aTextureCoord, t.UNSIGNED_SHORT, !0, this.vertByteSize, 8).addAttribute(r, e.aColor, t.UNSIGNED_BYTE, !0, this.vertByteSize, 12);
                                    e.aTextureId && i.addAttribute(r, e.aTextureId, t.FLOAT, !1, this.vertByteSize, 16), this.vaos[n] = i
                                }
                                this.vao = this.vaos[0], this.currentBlendMode = 99999, this.boundTextures = new Array(this.MAX_TEXTURES)
                            }, e.prototype.onPrerender = function() {
                                this.vertexCount = 0
                            }, e.prototype.render = function(t) {
                                this.currentIndex >= this.size && this.flush(), t._texture._uvs && (this.sprites[this.currentIndex++] = t)
                            }, e.prototype.flush = function() {
                                if (0 !== this.currentIndex) {
                                    var t = this.renderer.gl,
                                        e = this.MAX_TEXTURES,
                                        n = C.default.nextPow2(this.currentIndex),
                                        r = C.default.log2(n),
                                        i = this.buffers[r],
                                        o = this.sprites,
                                        a = this.groups,
                                        s = i.float32View,
                                        u = i.uint32View,
                                        l = this.boundTextures,
                                        c = this.renderer.boundTextures,
                                        h = this.renderer.textureGC.count,
                                        d = 0,
                                        f = void 0,
                                        p = void 0,
                                        g = 1,
                                        m = 0,
                                        y = a[0],
                                        b = void 0,
                                        v = void 0,
                                        T = x.premultiplyBlendMode[o[0]._texture.baseTexture.premultipliedAlpha ? 1 : 0][o[0].blendMode];
                                    y.textureCount = 0, y.start = 0, y.blend = T, E++;
                                    var S = void 0;
                                    for (S = 0; S < e; ++S) l[S] = c[S], l[S]._virtalBoundId = S;
                                    for (S = 0; S < this.currentIndex; ++S) {
                                        var P = o[S];
                                        f = P._texture.baseTexture;
                                        var A = x.premultiplyBlendMode[Number(f.premultipliedAlpha)][P.blendMode];
                                        if (T !== A && (T = A, p = null, m = e, E++), p !== f && (p = f, f._enabled !== E)) {
                                            if (m === e && (E++, y.size = S - y.start, m = 0, y = a[g++], y.blend = T, y.textureCount = 0, y.start = S), f.touched = h, -1 === f._virtalBoundId)
                                                for (var R = 0; R < e; ++R) {
                                                    var M = (R + O) % e,
                                                        I = l[M];
                                                    if (I._enabled !== E) {
                                                        O++, I._virtalBoundId = -1, f._virtalBoundId = M, l[M] = f;
                                                        break
                                                    }
                                                }
                                            f._enabled = E, y.textureCount++, y.ids[m] = f._virtalBoundId, y.textures[m++] = f
                                        }
                                        if (b = P.vertexData, v = P._texture._uvs.uvsUint32, this.renderer.roundPixels) {
                                            var D = this.renderer.resolution;
                                            s[d] = (b[0] * D | 0) / D, s[d + 1] = (b[1] * D | 0) / D, s[d + 5] = (b[2] * D | 0) / D, s[d + 6] = (b[3] * D | 0) / D, s[d + 10] = (b[4] * D | 0) / D, s[d + 11] = (b[5] * D | 0) / D, s[d + 15] = (b[6] * D | 0) / D, s[d + 16] = (b[7] * D | 0) / D
                                        } else s[d] = b[0], s[d + 1] = b[1], s[d + 5] = b[2], s[d + 6] = b[3], s[d + 10] = b[4], s[d + 11] = b[5], s[d + 15] = b[6], s[d + 16] = b[7];
                                        u[d + 2] = v[0], u[d + 7] = v[1], u[d + 12] = v[2], u[d + 17] = v[3];
                                        var L = Math.min(P.worldAlpha, 1),
                                            k = L < 1 && f.premultipliedAlpha ? (0, x.premultiplyTint)(P._tintRGB, L) : P._tintRGB + (255 * L << 24);
                                        u[d + 3] = u[d + 8] = u[d + 13] = u[d + 18] = k, s[d + 4] = s[d + 9] = s[d + 14] = s[d + 19] = f._virtalBoundId, d += 20
                                    }
                                    if (y.size = S - y.start, _.default.CAN_UPLOAD_SAME_BUFFER) this.vertexBuffers[this.vertexCount].upload(i.vertices, 0, !0);
                                    else {
                                        if (this.vaoMax <= this.vertexCount) {
                                            this.vaoMax++;
                                            var F = this.shader.attributes,
                                                B = this.vertexBuffers[this.vertexCount] = w.default.GLBuffer.createVertexBuffer(t, null, t.STREAM_DRAW),
                                                N = this.renderer.createVao().addIndex(this.indexBuffer).addAttribute(B, F.aVertexPosition, t.FLOAT, !1, this.vertByteSize, 0).addAttribute(B, F.aTextureCoord, t.UNSIGNED_SHORT, !0, this.vertByteSize, 8).addAttribute(B, F.aColor, t.UNSIGNED_BYTE, !0, this.vertByteSize, 12);
                                            F.aTextureId && N.addAttribute(B, F.aTextureId, t.FLOAT, !1, this.vertByteSize, 16), this.vaos[this.vertexCount] = N
                                        }
                                        this.renderer.bindVao(this.vaos[this.vertexCount]), this.vertexBuffers[this.vertexCount].upload(i.vertices, 0, !1), this.vertexCount++
                                    }
                                    for (S = 0; S < e; ++S) c[S]._virtalBoundId = -1;
                                    for (S = 0; S < g; ++S) {
                                        for (var j = a[S], G = j.textureCount, U = 0; U < G; U++) p = j.textures[U], c[j.ids[U]] !== p && this.renderer.bindTexture(p, j.ids[U], !0), p._virtalBoundId = -1;
                                        this.renderer.state.setBlendMode(j.blend), t.drawElements(t.TRIANGLES, 6 * j.size, t.UNSIGNED_SHORT, 6 * j.start * 2)
                                    }
                                    this.currentIndex = 0
                                }
                            }, e.prototype.start = function() {
                                this.renderer.bindShader(this.shader), _.default.CAN_UPLOAD_SAME_BUFFER && (this.renderer.bindVao(this.vaos[this.vertexCount]), this.vertexBuffers[this.vertexCount].bind())
                            }, e.prototype.stop = function() {
                                this.flush()
                            }, e.prototype.destroy = function() {
                                for (var e = 0; e < this.vaoMax; e++) this.vertexBuffers[e] && this.vertexBuffers[e].destroy(), this.vaos[e] && this.vaos[e].destroy();
                                this.indexBuffer && this.indexBuffer.destroy(), this.renderer.off("prerender", this.onPrerender, this), t.prototype.destroy.call(this), this.shader && (this.shader.destroy(), this.shader = null), this.vertexBuffers = null, this.vaos = null, this.indexBuffer = null, this.indices = null, this.sprites = null;
                                for (var n = 0; n < this.buffers.length; ++n) this.buffers[n].destroy()
                            }, e
                        }(u.default);
                    n.default = P, c.default.registerPlugin("sprite", P)
                }, {
                    "../../renderers/webgl/WebGLRenderer": 83,
                    "../../renderers/webgl/utils/ObjectRenderer": 93,
                    "../../renderers/webgl/utils/checkMaxIfStatmentsInShader": 96,
                    "../../settings": 100,
                    "../../utils": 123,
                    "../../utils/createIndicesForQuads": 121,
                    "./BatchBuffer": 104,
                    "./generateMultiTextureShader": 106,
                    "bit-twiddle": 1,
                    "pixi-gl-core": 12
                }],
                106: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        var n = s;
                        n = n.replace(/%count%/gi, e), n = n.replace(/%forloop%/gi, i(e));
                        for (var r = new a.default(t, "precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = aTextureCoord;\n    vTextureId = aTextureId;\n    vColor = aColor;\n}\n", n), o = [], u = 0; u < e; u++) o[u] = u;
                        return r.bind(), r.uniforms.uSamplers = o, r
                    }

                    function i(t) {
                        var e = "";
                        e += "\n", e += "\n";
                        for (var n = 0; n < t; n++) n > 0 && (e += "\nelse "), n < t - 1 && (e += "if(textureId == " + n + ".0)"), e += "\n{", e += "\n\tcolor = texture2D(uSamplers[" + n + "], vTextureCoord);", e += "\n}";
                        return e += "\n", e += "\n"
                    }
                    n.__esModule = !0, n.default = r;
                    var o = t("../../Shader"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o),
                        s = (t("path"), ["varying vec2 vTextureCoord;", "varying vec4 vColor;", "varying float vTextureId;", "uniform sampler2D uSamplers[%count%];", "void main(void){", "vec4 color;", "float textureId = floor(vTextureId+0.5);", "%forloop%", "gl_FragColor = color * vColor;", "}"].join("\n"))
                }, {
                    "../../Shader": 43,
                    path: 22
                }],
                107: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../sprites/Sprite"),
                        l = r(u),
                        c = t("../textures/Texture"),
                        h = r(c),
                        d = t("../math"),
                        f = t("../utils"),
                        p = t("../const"),
                        g = t("../settings"),
                        m = r(g),
                        y = t("./TextStyle"),
                        b = r(y),
                        v = t("./TextMetrics"),
                        _ = r(v),
                        x = t("../utils/trimCanvas"),
                        T = r(x),
                        w = {
                            texture: !0,
                            children: !1,
                            baseTexture: !0
                        },
                        S = function(t) {
                            function e(n, r, a) {
                                i(this, e), a = a || document.createElement("canvas"), a.width = 3, a.height = 3;
                                var s = h.default.fromCanvas(a, m.default.SCALE_MODE, "text");
                                s.orig = new d.Rectangle, s.trim = new d.Rectangle;
                                var u = o(this, t.call(this, s));
                                return h.default.addToCache(u._texture, u._texture.baseTexture.textureCacheIds[0]), u.canvas = a, u.context = u.canvas.getContext("2d"), u.resolution = m.default.RESOLUTION, u._text = null, u._style = null, u._styleListener = null, u._font = "", u.text = n, u.style = r, u.localStyleID = -1, u
                            }
                            return a(e, t), e.prototype.updateText = function(t) {
                                var e = this._style;
                                if (this.localStyleID !== e.styleID && (this.dirty = !0, this.localStyleID = e.styleID), this.dirty || !t) {
                                    this._font = this._style.toFontString();
                                    var n = this.context,
                                        r = _.default.measureText(this._text, this._style, this._style.wordWrap, this.canvas),
                                        i = r.width,
                                        o = r.height,
                                        a = r.lines,
                                        s = r.lineHeight,
                                        u = r.lineWidths,
                                        l = r.maxLineWidth,
                                        c = r.fontProperties;
                                    this.canvas.width = Math.ceil((i + 2 * e.padding) * this.resolution), this.canvas.height = Math.ceil((o + 2 * e.padding) * this.resolution), n.scale(this.resolution, this.resolution), n.clearRect(0, 0, this.canvas.width, this.canvas.height), n.font = this._font, n.strokeStyle = e.stroke,
                                        n.lineWidth = e.strokeThickness, n.textBaseline = e.textBaseline, n.lineJoin = e.lineJoin, n.miterLimit = e.miterLimit;
                                    var h = void 0,
                                        d = void 0;
                                    if (e.dropShadow) {
                                        n.fillStyle = e.dropShadowColor, n.globalAlpha = e.dropShadowAlpha, n.shadowBlur = e.dropShadowBlur, e.dropShadowBlur > 0 && (n.shadowColor = e.dropShadowColor);
                                        for (var f = Math.cos(e.dropShadowAngle) * e.dropShadowDistance, p = Math.sin(e.dropShadowAngle) * e.dropShadowDistance, g = 0; g < a.length; g++) h = e.strokeThickness / 2, d = e.strokeThickness / 2 + g * s + c.ascent, "right" === e.align ? h += l - u[g] : "center" === e.align && (h += (l - u[g]) / 2), e.fill && (this.drawLetterSpacing(a[g], h + f + e.padding, d + p + e.padding), e.stroke && e.strokeThickness && (n.strokeStyle = e.dropShadowColor, this.drawLetterSpacing(a[g], h + f + e.padding, d + p + e.padding, !0), n.strokeStyle = e.stroke))
                                    }
                                    n.shadowBlur = 0, n.globalAlpha = 1, n.fillStyle = this._generateFillStyle(e, a);
                                    for (var m = 0; m < a.length; m++) h = e.strokeThickness / 2, d = e.strokeThickness / 2 + m * s + c.ascent, "right" === e.align ? h += l - u[m] : "center" === e.align && (h += (l - u[m]) / 2), e.stroke && e.strokeThickness && this.drawLetterSpacing(a[m], h + e.padding, d + e.padding, !0), e.fill && this.drawLetterSpacing(a[m], h + e.padding, d + e.padding);
                                    this.updateTexture()
                                }
                            }, e.prototype.drawLetterSpacing = function(t, e, n) {
                                var r = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],
                                    i = this._style,
                                    o = i.letterSpacing;
                                if (0 === o) return void(r ? this.context.strokeText(t, e, n) : this.context.fillText(t, e, n));
                                for (var a = String.prototype.split.call(t, ""), s = e, u = 0, l = ""; u < t.length;) l = a[u++], r ? this.context.strokeText(l, s, n) : this.context.fillText(l, s, n), s += this.context.measureText(l).width + o
                            }, e.prototype.updateTexture = function() {
                                var t = this.canvas;
                                if (this._style.trim) {
                                    var e = (0, T.default)(t);
                                    t.width = e.width, t.height = e.height, this.context.putImageData(e.data, 0, 0)
                                }
                                var n = this._texture,
                                    r = this._style,
                                    i = r.trim ? 0 : r.padding,
                                    o = n.baseTexture;
                                o.hasLoaded = !0, o.resolution = this.resolution, o.realWidth = t.width, o.realHeight = t.height, o.width = t.width / this.resolution, o.height = t.height / this.resolution, n.trim.width = n._frame.width = t.width / this.resolution, n.trim.height = n._frame.height = t.height / this.resolution, n.trim.x = -i, n.trim.y = -i, n.orig.width = n._frame.width - 2 * i, n.orig.height = n._frame.height - 2 * i, this._onTextureUpdate(), o.emit("update", o), this.dirty = !1
                            }, e.prototype.renderWebGL = function(e) {
                                this.resolution !== e.resolution && (this.resolution = e.resolution, this.dirty = !0), this.updateText(!0), t.prototype.renderWebGL.call(this, e)
                            }, e.prototype._renderCanvas = function(e) {
                                this.resolution !== e.resolution && (this.resolution = e.resolution, this.dirty = !0), this.updateText(!0), t.prototype._renderCanvas.call(this, e)
                            }, e.prototype.getLocalBounds = function(e) {
                                return this.updateText(!0), t.prototype.getLocalBounds.call(this, e)
                            }, e.prototype._calculateBounds = function() {
                                this.updateText(!0), this.calculateVertices(), this._bounds.addQuad(this.vertexData)
                            }, e.prototype._onStyleChange = function() {
                                this.dirty = !0
                            }, e.prototype._generateFillStyle = function(t, e) {
                                if (!Array.isArray(t.fill)) return t.fill;
                                if (navigator.isCocoonJS) return t.fill[0];
                                var n = void 0,
                                    r = void 0,
                                    i = void 0,
                                    o = void 0,
                                    a = this.canvas.width / this.resolution,
                                    s = this.canvas.height / this.resolution,
                                    u = t.fill.slice(),
                                    l = t.fillGradientStops.slice();
                                if (!l.length)
                                    for (var c = u.length + 1, h = 1; h < c; ++h) l.push(h / c);
                                if (u.unshift(t.fill[0]), l.unshift(0), u.push(t.fill[t.fill.length - 1]), l.push(1), t.fillGradientType === p.TEXT_GRADIENT.LINEAR_VERTICAL) {
                                    n = this.context.createLinearGradient(a / 2, 0, a / 2, s), r = (u.length + 1) * e.length, i = 0;
                                    for (var d = 0; d < e.length; d++) {
                                        i += 1;
                                        for (var f = 0; f < u.length; f++) o = "number" == typeof l[f] ? l[f] / e.length + d / e.length : i / r, n.addColorStop(o, u[f]), i++
                                    }
                                } else {
                                    n = this.context.createLinearGradient(0, s / 2, a, s / 2), r = u.length + 1, i = 1;
                                    for (var g = 0; g < u.length; g++) o = "number" == typeof l[g] ? l[g] : i / r, n.addColorStop(o, u[g]), i++
                                }
                                return n
                            }, e.prototype.destroy = function(e) {
                                "boolean" == typeof e && (e = {
                                    children: e
                                }), e = Object.assign({}, w, e), t.prototype.destroy.call(this, e), this.context = null, this.canvas = null, this._style = null
                            }, s(e, [{
                                key: "width",
                                get: function() {
                                    return this.updateText(!0), Math.abs(this.scale.x) * this._texture.orig.width
                                },
                                set: function(t) {
                                    this.updateText(!0);
                                    var e = (0, f.sign)(this.scale.x) || 1;
                                    this.scale.x = e * t / this._texture.orig.width, this._width = t
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.updateText(!0), Math.abs(this.scale.y) * this._texture.orig.height
                                },
                                set: function(t) {
                                    this.updateText(!0);
                                    var e = (0, f.sign)(this.scale.y) || 1;
                                    this.scale.y = e * t / this._texture.orig.height, this._height = t
                                }
                            }, {
                                key: "style",
                                get: function() {
                                    return this._style
                                },
                                set: function(t) {
                                    t = t || {}, t instanceof b.default ? this._style = t : this._style = new b.default(t), this.localStyleID = -1, this.dirty = !0
                                }
                            }, {
                                key: "text",
                                get: function() {
                                    return this._text
                                },
                                set: function(t) {
                                    t = String("" === t || null === t || void 0 === t ? " " : t), this._text !== t && (this._text = t, this.dirty = !0)
                                }
                            }]), e
                        }(l.default);
                    n.default = S
                }, {
                    "../const": 45,
                    "../math": 69,
                    "../settings": 100,
                    "../sprites/Sprite": 101,
                    "../textures/Texture": 114,
                    "../utils": 123,
                    "../utils/trimCanvas": 128,
                    "./TextMetrics": 108,
                    "./TextStyle": 109
                }],
                108: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t(e, n, i, o, a, s, u, l, c) {
                            r(this, t), this.text = e, this.style = n, this.width = i, this.height = o, this.lines = a, this.lineWidths = s, this.lineHeight = u, this.maxLineWidth = l, this.fontProperties = c
                        }
                        return t.measureText = function(e, n, r) {
                            var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : t._canvas;
                            r = r || n.wordWrap;
                            var o = n.toFontString(),
                                a = t.measureFont(o),
                                s = i.getContext("2d");
                            s.font = o;
                            for (var u = r ? t.wordWrap(e, n, i) : e, l = u.split(/(?:\r\n|\r|\n)/), c = new Array(l.length), h = 0, d = 0; d < l.length; d++) {
                                var f = s.measureText(l[d]).width + (l[d].length - 1) * n.letterSpacing;
                                c[d] = f, h = Math.max(h, f)
                            }
                            var p = h + n.strokeThickness;
                            n.dropShadow && (p += n.dropShadowDistance);
                            var g = n.lineHeight || a.fontSize + n.strokeThickness,
                                m = Math.max(g, a.fontSize + n.strokeThickness) + (l.length - 1) * g;
                            return n.dropShadow && (m += n.dropShadowDistance), new t(e, n, p, m, l, c, g, h, a)
                        }, t.wordWrap = function(e, n) {
                            for (var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t._canvas, i = r.getContext("2d"), o = "", a = e.split("\n"), s = n.wordWrapWidth, u = {}, l = 0; l < a.length; l++) {
                                for (var c = s, h = a[l].split(" "), d = 0; d < h.length; d++) {
                                    var f = i.measureText(h[d]).width;
                                    if (n.breakWords && f > s)
                                        for (var p = h[d].split(""), g = 0; g < p.length; g++) {
                                            var m = p[g],
                                                y = u[m];
                                            void 0 === y && (y = i.measureText(m).width, u[m] = y), y > c ? (o += "\n" + m, c = s - y) : (0 === g && (o += " "), o += m, c -= y)
                                        } else {
                                            var b = f + i.measureText(" ").width;
                                            0 === d || b > c ? (d > 0 && (o += "\n"), o += h[d], c = s - f) : (c -= b, o += " " + h[d])
                                        }
                                }
                                l < a.length - 1 && (o += "\n")
                            }
                            return o
                        }, t.measureFont = function(e) {
                            if (t._fonts[e]) return t._fonts[e];
                            var n = {},
                                r = t._canvas,
                                i = t._context;
                            i.font = e;
                            var o = Math.ceil(i.measureText("|MÃ‰q").width),
                                a = Math.ceil(i.measureText("M").width),
                                s = 2 * a;
                            a = 1.4 * a | 0, r.width = o, r.height = s, i.fillStyle = "#f00", i.fillRect(0, 0, o, s), i.font = e, i.textBaseline = "alphabetic", i.fillStyle = "#000", i.fillText("|MÃ‰q", 0, a);
                            var u = i.getImageData(0, 0, o, s).data,
                                l = u.length,
                                c = 4 * o,
                                h = 0,
                                d = 0,
                                f = !1;
                            for (h = 0; h < a; ++h) {
                                for (var p = 0; p < c; p += 4)
                                    if (255 !== u[d + p]) {
                                        f = !0;
                                        break
                                    }
                                if (f) break;
                                d += c
                            }
                            for (n.ascent = a - h, d = l - c, f = !1, h = s; h > a; --h) {
                                for (var g = 0; g < c; g += 4)
                                    if (255 !== u[d + g]) {
                                        f = !0;
                                        break
                                    }
                                if (f) break;
                                d -= c
                            }
                            return n.descent = h - a, n.fontSize = n.ascent + n.descent, t._fonts[e] = n, n
                        }, t
                    }();
                    n.default = i;
                    var o = document.createElement("canvas");
                    o.width = o.height = 10, i._canvas = o, i._context = o.getContext("2d"), i._fonts = {}
                }, {}],
                109: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t) {
                        return "number" == typeof t ? (0, l.hex2string)(t) : ("string" == typeof t && 0 === t.indexOf("0x") && (t = t.replace("0x", "#")), t)
                    }

                    function o(t) {
                        if (Array.isArray(t)) {
                            for (var e = 0; e < t.length; ++e) t[e] = i(t[e]);
                            return t
                        }
                        return i(t)
                    }

                    function a(t, e) {
                        if (!Array.isArray(t) || !Array.isArray(e)) return !1;
                        if (t.length !== e.length) return !1;
                        for (var n = 0; n < t.length; ++n)
                            if (t[n] !== e[n]) return !1;
                        return !0
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../const"),
                        l = t("../utils"),
                        c = {
                            align: "left",
                            breakWords: !1,
                            dropShadow: !1,
                            dropShadowAlpha: 1,
                            dropShadowAngle: Math.PI / 6,
                            dropShadowBlur: 0,
                            dropShadowColor: "black",
                            dropShadowDistance: 5,
                            fill: "black",
                            fillGradientType: u.TEXT_GRADIENT.LINEAR_VERTICAL,
                            fillGradientStops: [],
                            fontFamily: "Arial",
                            fontSize: 26,
                            fontStyle: "normal",
                            fontVariant: "normal",
                            fontWeight: "normal",
                            letterSpacing: 0,
                            lineHeight: 0,
                            lineJoin: "miter",
                            miterLimit: 10,
                            padding: 0,
                            stroke: "black",
                            strokeThickness: 0,
                            textBaseline: "alphabetic",
                            trim: !1,
                            wordWrap: !1,
                            wordWrapWidth: 100
                        },
                        h = function() {
                            function t(e) {
                                r(this, t), this.styleID = 0, Object.assign(this, c, e)
                            }
                            return t.prototype.clone = function() {
                                var e = {};
                                for (var n in c) e[n] = this[n];
                                return new t(e)
                            }, t.prototype.reset = function() {
                                Object.assign(this, c)
                            }, t.prototype.toFontString = function() {
                                var t = "number" == typeof this.fontSize ? this.fontSize + "px" : this.fontSize,
                                    e = this.fontFamily;
                                Array.isArray(this.fontFamily) || (e = this.fontFamily.split(","));
                                for (var n = e.length - 1; n >= 0; n--) {
                                    var r = e[n].trim();
                                    /([\"\'])[^\'\"]+\1/.test(r) || (r = '"' + r + '"'), e[n] = r
                                }
                                return this.fontStyle + " " + this.fontVariant + " " + this.fontWeight + " " + t + " " + e.join(",")
                            }, s(t, [{
                                key: "align",
                                get: function() {
                                    return this._align
                                },
                                set: function(t) {
                                    this._align !== t && (this._align = t, this.styleID++)
                                }
                            }, {
                                key: "breakWords",
                                get: function() {
                                    return this._breakWords
                                },
                                set: function(t) {
                                    this._breakWords !== t && (this._breakWords = t, this.styleID++)
                                }
                            }, {
                                key: "dropShadow",
                                get: function() {
                                    return this._dropShadow
                                },
                                set: function(t) {
                                    this._dropShadow !== t && (this._dropShadow = t, this.styleID++)
                                }
                            }, {
                                key: "dropShadowAlpha",
                                get: function() {
                                    return this._dropShadowAlpha
                                },
                                set: function(t) {
                                    this._dropShadowAlpha !== t && (this._dropShadowAlpha = t, this.styleID++)
                                }
                            }, {
                                key: "dropShadowAngle",
                                get: function() {
                                    return this._dropShadowAngle
                                },
                                set: function(t) {
                                    this._dropShadowAngle !== t && (this._dropShadowAngle = t, this.styleID++)
                                }
                            }, {
                                key: "dropShadowBlur",
                                get: function() {
                                    return this._dropShadowBlur
                                },
                                set: function(t) {
                                    this._dropShadowBlur !== t && (this._dropShadowBlur = t, this.styleID++)
                                }
                            }, {
                                key: "dropShadowColor",
                                get: function() {
                                    return this._dropShadowColor
                                },
                                set: function(t) {
                                    var e = o(t);
                                    this._dropShadowColor !== e && (this._dropShadowColor = e, this.styleID++)
                                }
                            }, {
                                key: "dropShadowDistance",
                                get: function() {
                                    return this._dropShadowDistance
                                },
                                set: function(t) {
                                    this._dropShadowDistance !== t && (this._dropShadowDistance = t, this.styleID++)
                                }
                            }, {
                                key: "fill",
                                get: function() {
                                    return this._fill
                                },
                                set: function(t) {
                                    var e = o(t);
                                    this._fill !== e && (this._fill = e, this.styleID++)
                                }
                            }, {
                                key: "fillGradientType",
                                get: function() {
                                    return this._fillGradientType
                                },
                                set: function(t) {
                                    this._fillGradientType !== t && (this._fillGradientType = t, this.styleID++)
                                }
                            }, {
                                key: "fillGradientStops",
                                get: function() {
                                    return this._fillGradientStops
                                },
                                set: function(t) {
                                    a(this._fillGradientStops, t) || (this._fillGradientStops = t, this.styleID++)
                                }
                            }, {
                                key: "fontFamily",
                                get: function() {
                                    return this._fontFamily
                                },
                                set: function(t) {
                                    this.fontFamily !== t && (this._fontFamily = t, this.styleID++)
                                }
                            }, {
                                key: "fontSize",
                                get: function() {
                                    return this._fontSize
                                },
                                set: function(t) {
                                    this._fontSize !== t && (this._fontSize = t, this.styleID++)
                                }
                            }, {
                                key: "fontStyle",
                                get: function() {
                                    return this._fontStyle
                                },
                                set: function(t) {
                                    this._fontStyle !== t && (this._fontStyle = t, this.styleID++)
                                }
                            }, {
                                key: "fontVariant",
                                get: function() {
                                    return this._fontVariant
                                },
                                set: function(t) {
                                    this._fontVariant !== t && (this._fontVariant = t, this.styleID++)
                                }
                            }, {
                                key: "fontWeight",
                                get: function() {
                                    return this._fontWeight
                                },
                                set: function(t) {
                                    this._fontWeight !== t && (this._fontWeight = t, this.styleID++)
                                }
                            }, {
                                key: "letterSpacing",
                                get: function() {
                                    return this._letterSpacing
                                },
                                set: function(t) {
                                    this._letterSpacing !== t && (this._letterSpacing = t, this.styleID++)
                                }
                            }, {
                                key: "lineHeight",
                                get: function() {
                                    return this._lineHeight
                                },
                                set: function(t) {
                                    this._lineHeight !== t && (this._lineHeight = t, this.styleID++)
                                }
                            }, {
                                key: "lineJoin",
                                get: function() {
                                    return this._lineJoin
                                },
                                set: function(t) {
                                    this._lineJoin !== t && (this._lineJoin = t, this.styleID++)
                                }
                            }, {
                                key: "miterLimit",
                                get: function() {
                                    return this._miterLimit
                                },
                                set: function(t) {
                                    this._miterLimit !== t && (this._miterLimit = t, this.styleID++)
                                }
                            }, {
                                key: "padding",
                                get: function() {
                                    return this._padding
                                },
                                set: function(t) {
                                    this._padding !== t && (this._padding = t, this.styleID++)
                                }
                            }, {
                                key: "stroke",
                                get: function() {
                                    return this._stroke
                                },
                                set: function(t) {
                                    var e = o(t);
                                    this._stroke !== e && (this._stroke = e, this.styleID++)
                                }
                            }, {
                                key: "strokeThickness",
                                get: function() {
                                    return this._strokeThickness
                                },
                                set: function(t) {
                                    this._strokeThickness !== t && (this._strokeThickness = t, this.styleID++)
                                }
                            }, {
                                key: "textBaseline",
                                get: function() {
                                    return this._textBaseline
                                },
                                set: function(t) {
                                    this._textBaseline !== t && (this._textBaseline = t, this.styleID++)
                                }
                            }, {
                                key: "trim",
                                get: function() {
                                    return this._trim
                                },
                                set: function(t) {
                                    this._trim !== t && (this._trim = t, this.styleID++)
                                }
                            }, {
                                key: "wordWrap",
                                get: function() {
                                    return this._wordWrap
                                },
                                set: function(t) {
                                    this._wordWrap !== t && (this._wordWrap = t, this.styleID++)
                                }
                            }, {
                                key: "wordWrapWidth",
                                get: function() {
                                    return this._wordWrapWidth
                                },
                                set: function(t) {
                                    this._wordWrapWidth !== t && (this._wordWrapWidth = t, this.styleID++)
                                }
                            }]), t
                        }();
                    n.default = h
                }, {
                    "../const": 45,
                    "../utils": 123
                }],
                110: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("./BaseTexture"),
                        u = r(s),
                        l = t("../settings"),
                        c = r(l),
                        h = function(t) {
                            function e() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 100,
                                    r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 100,
                                    a = arguments[2],
                                    s = arguments[3];
                                i(this, e);
                                var u = o(this, t.call(this, null, a));
                                return u.resolution = s || c.default.RESOLUTION, u.width = n, u.height = r, u.realWidth = u.width * u.resolution, u.realHeight = u.height * u.resolution, u.scaleMode = void 0 !== a ? a : c.default.SCALE_MODE, u.hasLoaded = !0, u._glRenderTargets = {}, u._canvasRenderTarget = null, u.valid = !1, u
                            }
                            return a(e, t), e.prototype.resize = function(t, e) {
                                t === this.width && e === this.height || (this.valid = t > 0 && e > 0, this.width = t, this.height = e, this.realWidth = this.width * this.resolution, this.realHeight = this.height * this.resolution, this.valid && this.emit("update", this))
                            }, e.prototype.destroy = function() {
                                t.prototype.destroy.call(this, !0), this.renderer = null
                            }, e
                        }(u.default);
                    n.default = h
                }, {
                    "../settings": 100,
                    "./BaseTexture": 111
                }],
                111: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                            return typeof t
                        } : function(t) {
                            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                        },
                        u = t("../utils"),
                        l = t("../settings"),
                        c = r(l),
                        h = t("eventemitter3"),
                        d = r(h),
                        f = t("../utils/determineCrossOrigin"),
                        p = r(f),
                        g = t("bit-twiddle"),
                        m = r(g),
                        y = function(t) {
                            function e(n, r, a) {
                                i(this, e);
                                var s = o(this, t.call(this));
                                return s.uid = (0, u.uid)(), s.touched = 0, s.resolution = a || c.default.RESOLUTION, s.width = 100, s.height = 100, s.realWidth = 100, s.realHeight = 100, s.scaleMode = void 0 !== r ? r : c.default.SCALE_MODE, s.hasLoaded = !1, s.isLoading = !1, s.source = null, s.origSource = null, s.imageType = null, s.sourceScale = 1, s.premultipliedAlpha = !0, s.imageUrl = null, s.isPowerOfTwo = !1, s.mipmap = c.default.MIPMAP_TEXTURES, s.wrapMode = c.default.WRAP_MODE, s._glTextures = {}, s._enabled = 0, s._virtalBoundId = -1, s._destroyed = !1, s.textureCacheIds = [], n && s.loadSource(n), s
                            }
                            return a(e, t), e.prototype.update = function() {
                                "svg" !== this.imageType && (this.realWidth = this.source.naturalWidth || this.source.videoWidth || this.source.width, this.realHeight = this.source.naturalHeight || this.source.videoHeight || this.source.height, this._updateDimensions()), this.emit("update", this)
                            }, e.prototype._updateDimensions = function() {
                                this.width = this.realWidth / this.resolution, this.height = this.realHeight / this.resolution, this.isPowerOfTwo = m.default.isPow2(this.realWidth) && m.default.isPow2(this.realHeight)
                            }, e.prototype.loadSource = function(t) {
                                var e = this,
                                    n = this.isLoading;
                                this.hasLoaded = !1, this.isLoading = !1, n && this.source && (this.source.onload = null, this.source.onerror = null);
                                var r = !this.source;
                                if (this.source = t, (t.src && t.complete || t.getContext) && t.width && t.height) this._updateImageType(), "svg" === this.imageType ? this._loadSvgSource() : this._sourceLoaded(), r && this.emit("loaded", this);
                                else if (!t.getContext) {
                                    var i = function() {
                                        e.isLoading = !0;
                                        var r = e;
                                        if (t.onload = function() {
                                                if (r._updateImageType(), t.onload = null, t.onerror = null, r.isLoading) {
                                                    if (r.isLoading = !1, r._sourceLoaded(), "svg" === r.imageType) return void r._loadSvgSource();
                                                    r.emit("loaded", r)
                                                }
                                            }, t.onerror = function() {
                                                t.onload = null, t.onerror = null, r.isLoading && (r.isLoading = !1, r.emit("error", r))
                                            }, t.complete && t.src) {
                                            if (t.onload = null, t.onerror = null, "svg" === r.imageType) return r._loadSvgSource(), {
                                                v: void 0
                                            };
                                            e.isLoading = !1, t.width && t.height ? (e._sourceLoaded(), n && e.emit("loaded", e)) : n && e.emit("error", e)
                                        }
                                    }();
                                    if ("object" === (void 0 === i ? "undefined" : s(i))) return i.v
                                }
                            }, e.prototype._updateImageType = function() {
                                if (this.imageUrl) {
                                    var t = (0, u.decomposeDataUri)(this.imageUrl),
                                        e = void 0;
                                    if (t && "image" === t.mediaType) {
                                        var n = t.subType.split("+")[0];
                                        if (!(e = (0, u.getUrlFileExtension)("." + n))) throw new Error("Invalid image type in data URI.")
                                    } else(e = (0, u.getUrlFileExtension)(this.imageUrl)) || (e = "png");
                                    this.imageType = e
                                }
                            }, e.prototype._loadSvgSource = function() {
                                if ("svg" === this.imageType) {
                                    var t = (0, u.decomposeDataUri)(this.imageUrl);
                                    t ? this._loadSvgSourceUsingDataUri(t) : this._loadSvgSourceUsingXhr()
                                }
                            }, e.prototype._loadSvgSourceUsingDataUri = function(t) {
                                var e = void 0;
                                if ("base64" === t.encoding) {
                                    if (!atob) throw new Error("Your browser doesn't support base64 conversions.");
                                    e = atob(t.data)
                                } else e = t.data;
                                this._loadSvgSourceUsingString(e)
                            }, e.prototype._loadSvgSourceUsingXhr = function() {
                                var t = this,
                                    e = new XMLHttpRequest;
                                e.onload = function() {
                                    if (e.readyState !== e.DONE || 200 !== e.status) throw new Error("Failed to load SVG using XHR.");
                                    t._loadSvgSourceUsingString(e.response)
                                }, e.onerror = function() {
                                    return t.emit("error", t)
                                }, e.open("GET", this.imageUrl, !0), e.send()
                            }, e.prototype._loadSvgSourceUsingString = function(t) {
                                var n = (0, u.getSvgSize)(t),
                                    r = n.width,
                                    i = n.height;
                                if (!r || !i) throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");
                                this.realWidth = Math.round(r * this.sourceScale), this.realHeight = Math.round(i * this.sourceScale), this._updateDimensions();
                                var o = document.createElement("canvas");
                                o.width = this.realWidth, o.height = this.realHeight, o._pixiId = "canvas_" + (0, u.uid)(), o.getContext("2d").drawImage(this.source, 0, 0, r, i, 0, 0, this.realWidth, this.realHeight), this.origSource = this.source, this.source = o, e.addToCache(this, o._pixiId), this.isLoading = !1, this._sourceLoaded(), this.emit("loaded", this)
                            }, e.prototype._sourceLoaded = function() {
                                this.hasLoaded = !0, this.update()
                            }, e.prototype.destroy = function() {
                                this.imageUrl && (delete u.TextureCache[this.imageUrl], this.imageUrl = null, navigator.isCocoonJS || (this.source.src = "")), this.source = null, this.dispose(), e.removeFromCache(this), this.textureCacheIds = null, this._destroyed = !0
                            }, e.prototype.dispose = function() {
                                this.emit("dispose", this)
                            }, e.prototype.updateSourceImage = function(t) {
                                this.source.src = t, this.loadSource(this.source)
                            }, e.fromImage = function(t, n, r, i) {
                                var o = u.BaseTextureCache[t];
                                if (!o) {
                                    var a = new Image;
                                    void 0 === n && 0 !== t.indexOf("data:") ? a.crossOrigin = (0, p.default)(t) : n && (a.crossOrigin = "string" == typeof n ? n : "anonymous"), o = new e(a, r), o.imageUrl = t, i && (o.sourceScale = i), o.resolution = (0, u.getResolutionOfUrl)(t), a.src = t, e.addToCache(o, t)
                                }
                                return o
                            }, e.fromCanvas = function(t, n) {
                                var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "canvas";
                                t._pixiId || (t._pixiId = r + "_" + (0, u.uid)());
                                var i = u.BaseTextureCache[t._pixiId];
                                return i || (i = new e(t, n), e.addToCache(i, t._pixiId)), i
                            }, e.from = function(t, n, r) {
                                if ("string" == typeof t) return e.fromImage(t, void 0, n, r);
                                if (t instanceof HTMLImageElement) {
                                    var i = t.src,
                                        o = u.BaseTextureCache[i];
                                    return o || (o = new e(t, n), o.imageUrl = i, r && (o.sourceScale = r), o.resolution = (0, u.getResolutionOfUrl)(i), e.addToCache(o, i)), o
                                }
                                return t instanceof HTMLCanvasElement ? e.fromCanvas(t, n) : t
                            }, e.addToCache = function(t, e) {
                                e && (-1 === t.textureCacheIds.indexOf(e) && t.textureCacheIds.push(e), u.BaseTextureCache[e], u.BaseTextureCache[e] = t)
                            }, e.removeFromCache = function(t) {
                                if ("string" == typeof t) {
                                    var e = u.BaseTextureCache[t];
                                    if (e) {
                                        var n = e.textureCacheIds.indexOf(t);
                                        return n > -1 && e.textureCacheIds.splice(n, 1), delete u.BaseTextureCache[t], e
                                    }
                                } else if (t && t.textureCacheIds) {
                                    for (var r = 0; r < t.textureCacheIds.length; ++r) delete u.BaseTextureCache[t.textureCacheIds[r]];
                                    return t.textureCacheIds.length = 0, t
                                }
                                return null
                            }, e
                        }(d.default);
                    n.default = y
                }, {
                    "../settings": 100,
                    "../utils": 123,
                    "../utils/determineCrossOrigin": 122,
                    "bit-twiddle": 1,
                    eventemitter3: 3
                }],
                112: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("./BaseRenderTexture"),
                        u = r(s),
                        l = t("./Texture"),
                        c = r(l),
                        h = function(t) {
                            function e(n, r) {
                                i(this, e);
                                var a = null;
                                if (!(n instanceof u.default)) {
                                    var s = arguments[1],
                                        l = arguments[2],
                                        c = arguments[3],
                                        h = arguments[4];
                                    a = arguments[0], r = null, n = new u.default(s, l, c, h)
                                }
                                var d = o(this, t.call(this, n, r));
                                return d.legacyRenderer = a, d.valid = !0, d._updateUvs(), d
                            }
                            return a(e, t), e.prototype.resize = function(t, e, n) {
                                this.valid = t > 0 && e > 0, this._frame.width = this.orig.width = t, this._frame.height = this.orig.height = e, n || this.baseTexture.resize(t, e), this._updateUvs()
                            }, e.create = function(t, n, r, i) {
                                return new e(new u.default(t, n, r, i))
                            }, e
                        }(c.default);
                    n.default = h
                }, {
                    "./BaseRenderTexture": 110,
                    "./Texture": 114
                }],
                113: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        o = t("../"),
                        a = t("../utils"),
                        s = function() {
                            function t(e, n) {
                                var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
                                r(this, t), this.baseTexture = e, this.textures = {}, this.data = n, this.resolution = this._updateResolution(i || this.baseTexture.imageUrl), this._frames = this.data.frames, this._frameKeys = Object.keys(this._frames), this._batchIndex = 0, this._callback = null
                            }
                            return i(t, null, [{
                                key: "BATCH_SIZE",
                                get: function() {
                                    return 1e3
                                }
                            }]), t.prototype._updateResolution = function(t) {
                                var e = this.data.meta.scale,
                                    n = (0, a.getResolutionOfUrl)(t, null);
                                return null === n && (n = void 0 !== e ? parseFloat(e) : 1), 1 !== n && (this.baseTexture.resolution = n, this.baseTexture.update()), n
                            }, t.prototype.parse = function(e) {
                                this._batchIndex = 0, this._callback = e, this._frameKeys.length <= t.BATCH_SIZE ? (this._processFrames(0), this._parseComplete()) : this._nextBatch()
                            }, t.prototype._processFrames = function(e) {
                                for (var n = e, r = t.BATCH_SIZE; n - e < r && n < this._frameKeys.length;) {
                                    var i = this._frameKeys[n],
                                        a = this._frames[i].frame;
                                    if (a) {
                                        var s = null,
                                            u = null,
                                            l = new o.Rectangle(0, 0, this._frames[i].sourceSize.w / this.resolution, this._frames[i].sourceSize.h / this.resolution);
                                        s = this._frames[i].rotated ? new o.Rectangle(a.x / this.resolution, a.y / this.resolution, a.h / this.resolution, a.w / this.resolution) : new o.Rectangle(a.x / this.resolution, a.y / this.resolution, a.w / this.resolution, a.h / this.resolution), this._frames[i].trimmed && (u = new o.Rectangle(this._frames[i].spriteSourceSize.x / this.resolution, this._frames[i].spriteSourceSize.y / this.resolution, a.w / this.resolution, a.h / this.resolution)), this.textures[i] = new o.Texture(this.baseTexture, s, l, u, this._frames[i].rotated ? 2 : 0), o.Texture.addToCache(this.textures[i], i)
                                    }
                                    n++
                                }
                            }, t.prototype._parseComplete = function() {
                                var t = this._callback;
                                this._callback = null, this._batchIndex = 0, t.call(this, this.textures)
                            }, t.prototype._nextBatch = function() {
                                var e = this;
                                this._processFrames(this._batchIndex * t.BATCH_SIZE), this._batchIndex++, setTimeout(function() {
                                    e._batchIndex * t.BATCH_SIZE < e._frameKeys.length ? e._nextBatch() : e._parseComplete()
                                }, 0)
                            }, t.prototype.destroy = function() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                                for (var e in this.textures) this.textures[e].destroy();
                                this._frames = null, this._frameKeys = null, this.data = null, this.textures = null, t && this.baseTexture.destroy(), this.baseTexture = null
                            }, t
                        }();
                    n.default = s
                }, {
                    "../": 64,
                    "../utils": 123
                }],
                114: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }

                    function s(t) {
                        t.destroy = function() {}, t.on = function() {}, t.once = function() {}, t.emit = function() {}
                    }
                    n.__esModule = !0;
                    var u = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        l = t("./BaseTexture"),
                        c = r(l),
                        h = t("./VideoBaseTexture"),
                        d = r(h),
                        f = t("./TextureUvs"),
                        p = r(f),
                        g = t("eventemitter3"),
                        m = r(g),
                        y = t("../math"),
                        b = t("../utils"),
                        v = t("../settings"),
                        _ = r(v),
                        x = function(t) {
                            function e(n, r, a, s, u) {
                                i(this, e);
                                var l = o(this, t.call(this));
                                if (l.noFrame = !1, r || (l.noFrame = !0, r = new y.Rectangle(0, 0, 1, 1)), n instanceof e && (n = n.baseTexture), l.baseTexture = n, l._frame = r, l.trim = s, l.valid = !1, l.requiresUpdate = !1, l._uvs = null, l.orig = a || r, l._rotate = Number(u || 0), !0 === u) l._rotate = 2;
                                else if (l._rotate % 2 != 0) throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");
                                return n.hasLoaded ? (l.noFrame && (r = new y.Rectangle(0, 0, n.width, n.height), n.on("update", l.onBaseTextureUpdated, l)), l.frame = r) : n.once("loaded", l.onBaseTextureLoaded, l), l._updateID = 0, l.transform = null, l.textureCacheIds = [], l
                            }
                            return a(e, t), e.prototype.update = function() {
                                this.baseTexture.update()
                            }, e.prototype.onBaseTextureLoaded = function(t) {
                                this._updateID++, this.noFrame ? this.frame = new y.Rectangle(0, 0, t.width, t.height) : this.frame = this._frame, this.baseTexture.on("update", this.onBaseTextureUpdated, this), this.emit("update", this)
                            }, e.prototype.onBaseTextureUpdated = function(t) {
                                this._updateID++, this._frame.width = t.width, this._frame.height = t.height, this.emit("update", this)
                            }, e.prototype.destroy = function(t) {
                                this.baseTexture && (t && (b.TextureCache[this.baseTexture.imageUrl] && e.removeFromCache(this.baseTexture.imageUrl), this.baseTexture.destroy()), this.baseTexture.off("update", this.onBaseTextureUpdated, this), this.baseTexture.off("loaded", this.onBaseTextureLoaded, this), this.baseTexture = null), this._frame = null, this._uvs = null, this.trim = null, this.orig = null, this.valid = !1, e.removeFromCache(this), this.textureCacheIds = null
                            }, e.prototype.clone = function() {
                                return new e(this.baseTexture, this.frame, this.orig, this.trim, this.rotate)
                            }, e.prototype._updateUvs = function() {
                                this._uvs || (this._uvs = new p.default), this._uvs.set(this._frame, this.baseTexture, this.rotate), this._updateID++
                            }, e.fromImage = function(t, n, r, i) {
                                var o = b.TextureCache[t];
                                return o || (o = new e(c.default.fromImage(t, n, r, i)), e.addToCache(o, t)), o
                            }, e.fromFrame = function(t) {
                                var e = b.TextureCache[t];
                                if (!e) throw new Error('The frameId "' + t + '" does not exist in the texture cache');
                                return e
                            }, e.fromCanvas = function(t, n) {
                                var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "canvas";
                                return new e(c.default.fromCanvas(t, n, r))
                            }, e.fromVideo = function(t, n) {
                                return "string" == typeof t ? e.fromVideoUrl(t, n) : new e(d.default.fromVideo(t, n))
                            }, e.fromVideoUrl = function(t, n) {
                                return new e(d.default.fromUrl(t, n))
                            }, e.from = function(t) {
                                if ("string" == typeof t) {
                                    var n = b.TextureCache[t];
                                    if (!n) {
                                        return null !== t.match(/\.(mp4|webm|ogg|h264|avi|mov)$/) ? e.fromVideoUrl(t) : e.fromImage(t)
                                    }
                                    return n
                                }
                                return t instanceof HTMLImageElement ? new e(c.default.from(t)) : t instanceof HTMLCanvasElement ? e.fromCanvas(t, _.default.SCALE_MODE, "HTMLCanvasElement") : t instanceof HTMLVideoElement ? e.fromVideo(t) : t instanceof c.default ? new e(t) : t
                            }, e.fromLoader = function(t, n, r) {
                                var i = new c.default(t, void 0, (0, b.getResolutionOfUrl)(n)),
                                    o = new e(i);
                                return i.imageUrl = n, r || (r = n), c.default.addToCache(o.baseTexture, r), e.addToCache(o, r), r !== n && (c.default.addToCache(o.baseTexture, n), e.addToCache(o, n)), o
                            }, e.addToCache = function(t, e) {
                                e && (-1 === t.textureCacheIds.indexOf(e) && t.textureCacheIds.push(e), b.TextureCache[e], b.TextureCache[e] = t)
                            }, e.removeFromCache = function(t) {
                                if ("string" == typeof t) {
                                    var e = b.TextureCache[t];
                                    if (e) {
                                        var n = e.textureCacheIds.indexOf(t);
                                        return n > -1 && e.textureCacheIds.splice(n, 1), delete b.TextureCache[t], e
                                    }
                                } else if (t && t.textureCacheIds) {
                                    for (var r = 0; r < t.textureCacheIds.length; ++r) delete b.TextureCache[t.textureCacheIds[r]];
                                    return t.textureCacheIds.length = 0, t
                                }
                                return null
                            }, u(e, [{
                                key: "frame",
                                get: function() {
                                    return this._frame
                                },
                                set: function(t) {
                                    if (this._frame = t, this.noFrame = !1, t.x + t.width > this.baseTexture.width || t.y + t.height > this.baseTexture.height) throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: X: " + t.x + " + " + t.width + " > " + this.baseTexture.width + " Y: " + t.y + " + " + t.height + " > " + this.baseTexture.height);
                                    this.valid = t && t.width && t.height && this.baseTexture.hasLoaded, this.trim || this.rotate || (this.orig = t), this.valid && this._updateUvs()
                                }
                            }, {
                                key: "rotate",
                                get: function() {
                                    return this._rotate
                                },
                                set: function(t) {
                                    this._rotate = t, this.valid && this._updateUvs()
                                }
                            }, {
                                key: "width",
                                get: function() {
                                    return this.orig.width
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this.orig.height
                                }
                            }]), e
                        }(m.default);
                    n.default = x, x.EMPTY = new x(new c.default), s(x.EMPTY), s(x.EMPTY.baseTexture), x.WHITE = function() {
                        var t = document.createElement("canvas");
                        t.width = 10, t.height = 10;
                        var e = t.getContext("2d");
                        return e.fillStyle = "white", e.fillRect(0, 0, 10, 10), new x(new c.default(t))
                    }(), s(x.WHITE), s(x.WHITE.baseTexture)
                }, {
                    "../math": 69,
                    "../settings": 100,
                    "../utils": 123,
                    "./BaseTexture": 111,
                    "./TextureUvs": 115,
                    "./VideoBaseTexture": 116,
                    eventemitter3: 3
                }],
                115: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../math/GroupD8"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = function() {
                            function t() {
                                r(this, t), this.x0 = 0, this.y0 = 0, this.x1 = 1, this.y1 = 0, this.x2 = 1, this.y2 = 1, this.x3 = 0, this.y3 = 1, this.uvsUint32 = new Uint32Array(4)
                            }
                            return t.prototype.set = function(t, e, n) {
                                var r = e.width,
                                    i = e.height;
                                if (n) {
                                    var a = t.width / 2 / r,
                                        s = t.height / 2 / i,
                                        u = t.x / r + a,
                                        l = t.y / i + s;
                                    n = o.default.add(n, o.default.NW), this.x0 = u + a * o.default.uX(n), this.y0 = l + s * o.default.uY(n), n = o.default.add(n, 2), this.x1 = u + a * o.default.uX(n), this.y1 = l + s * o.default.uY(n), n = o.default.add(n, 2), this.x2 = u + a * o.default.uX(n), this.y2 = l + s * o.default.uY(n),
                                        n = o.default.add(n, 2), this.x3 = u + a * o.default.uX(n), this.y3 = l + s * o.default.uY(n)
                                } else this.x0 = t.x / r, this.y0 = t.y / i, this.x1 = (t.x + t.width) / r, this.y1 = t.y / i, this.x2 = (t.x + t.width) / r, this.y2 = (t.y + t.height) / i, this.x3 = t.x / r, this.y3 = (t.y + t.height) / i;
                                this.uvsUint32[0] = (65535 * this.y0 & 65535) << 16 | 65535 * this.x0 & 65535, this.uvsUint32[1] = (65535 * this.y1 & 65535) << 16 | 65535 * this.x1 & 65535, this.uvsUint32[2] = (65535 * this.y2 & 65535) << 16 | 65535 * this.x2 & 65535, this.uvsUint32[3] = (65535 * this.y3 & 65535) << 16 | 65535 * this.x3 & 65535
                            }, t
                        }();
                    n.default = a
                }, {
                    "../math/GroupD8": 65
                }],
                116: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }

                    function a(t, e) {
                        e || (e = "video/" + t.substr(t.lastIndexOf(".") + 1));
                        var n = document.createElement("source");
                        return n.src = t, n.type = e, n
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("./BaseTexture"),
                        l = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(u),
                        c = t("../utils"),
                        h = t("../ticker"),
                        d = t("../const"),
                        f = function(t) {
                            function e(n, o) {
                                if (r(this, e), !n) throw new Error("No video source element specified.");
                                (n.readyState === n.HAVE_ENOUGH_DATA || n.readyState === n.HAVE_FUTURE_DATA) && n.width && n.height && (n.complete = !0);
                                var a = i(this, t.call(this, n, o));
                                return a.width = n.videoWidth, a.height = n.videoHeight, a._autoUpdate = !0, a._isAutoUpdating = !1, a.autoPlay = !0, a.update = a.update.bind(a), a._onCanPlay = a._onCanPlay.bind(a), n.addEventListener("play", a._onPlayStart.bind(a)), n.addEventListener("pause", a._onPlayStop.bind(a)), a.hasLoaded = !1, a.__loaded = !1, a._isSourceReady() ? a._onCanPlay() : (n.addEventListener("canplay", a._onCanPlay), n.addEventListener("canplaythrough", a._onCanPlay)), a
                            }
                            return o(e, t), e.prototype._isSourcePlaying = function() {
                                var t = this.source;
                                return t.currentTime > 0 && !1 === t.paused && !1 === t.ended && t.readyState > 2
                            }, e.prototype._isSourceReady = function() {
                                return 3 === this.source.readyState || 4 === this.source.readyState
                            }, e.prototype._onPlayStart = function() {
                                this.hasLoaded || this._onCanPlay(), !this._isAutoUpdating && this.autoUpdate && (h.shared.add(this.update, this, d.UPDATE_PRIORITY.HIGH), this._isAutoUpdating = !0)
                            }, e.prototype._onPlayStop = function() {
                                this._isAutoUpdating && (h.shared.remove(this.update, this), this._isAutoUpdating = !1)
                            }, e.prototype._onCanPlay = function() {
                                this.hasLoaded = !0, this.source && (this.source.removeEventListener("canplay", this._onCanPlay), this.source.removeEventListener("canplaythrough", this._onCanPlay), this.width = this.source.videoWidth, this.height = this.source.videoHeight, this.__loaded || (this.__loaded = !0, this.emit("loaded", this)), this._isSourcePlaying() ? this._onPlayStart() : this.autoPlay && this.source.play())
                            }, e.prototype.destroy = function() {
                                this._isAutoUpdating && h.shared.remove(this.update, this), this.source && this.source._pixiId && (l.default.removeFromCache(this.source._pixiId), delete this.source._pixiId), t.prototype.destroy.call(this)
                            }, e.fromVideo = function(t, n) {
                                t._pixiId || (t._pixiId = "video_" + (0, c.uid)());
                                var r = c.BaseTextureCache[t._pixiId];
                                return r || (r = new e(t, n), l.default.addToCache(r, t._pixiId)), r
                            }, e.fromUrl = function(t, n) {
                                var r = document.createElement("video");
                                if (r.setAttribute("webkit-playsinline", ""), r.setAttribute("playsinline", ""), Array.isArray(t))
                                    for (var i = 0; i < t.length; ++i) r.appendChild(a(t[i].src || t[i], t[i].mime));
                                else r.appendChild(a(t.src || t, t.mime));
                                return r.load(), e.fromVideo(r, n)
                            }, s(e, [{
                                key: "autoUpdate",
                                get: function() {
                                    return this._autoUpdate
                                },
                                set: function(t) {
                                    t !== this._autoUpdate && (this._autoUpdate = t, !this._autoUpdate && this._isAutoUpdating ? (h.shared.remove(this.update, this), this._isAutoUpdating = !1) : this._autoUpdate && !this._isAutoUpdating && (h.shared.add(this.update, this, d.UPDATE_PRIORITY.HIGH), this._isAutoUpdating = !0))
                                }
                            }]), e
                        }(l.default);
                    n.default = f, f.fromUrls = f.fromUrl
                }, {
                    "../const": 45,
                    "../ticker": 119,
                    "../utils": 123,
                    "./BaseTexture": 111
                }],
                117: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        a = t("../settings"),
                        s = r(a),
                        u = t("../const"),
                        l = t("./TickerListener"),
                        c = r(l),
                        h = function() {
                            function t() {
                                var e = this;
                                i(this, t), this._head = new c.default(null, null, 1 / 0), this._requestId = null, this._maxElapsedMS = 100, this.autoStart = !1, this.deltaTime = 1, this.elapsedMS = 1 / s.default.TARGET_FPMS, this.lastTime = 0, this.speed = 1, this.started = !1, this._tick = function(t) {
                                    e._requestId = null, e.started && (e.update(t), e.started && null === e._requestId && e._head.next && (e._requestId = requestAnimationFrame(e._tick)))
                                }
                            }
                            return t.prototype._requestIfNeeded = function() {
                                null === this._requestId && this._head.next && (this.lastTime = performance.now(), this._requestId = requestAnimationFrame(this._tick))
                            }, t.prototype._cancelIfNeeded = function() {
                                null !== this._requestId && (cancelAnimationFrame(this._requestId), this._requestId = null)
                            }, t.prototype._startIfPossible = function() {
                                this.started ? this._requestIfNeeded() : this.autoStart && this.start()
                            }, t.prototype.add = function(t, e) {
                                var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : u.UPDATE_PRIORITY.NORMAL;
                                return this._addListener(new c.default(t, e, n))
                            }, t.prototype.addOnce = function(t, e) {
                                var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : u.UPDATE_PRIORITY.NORMAL;
                                return this._addListener(new c.default(t, e, n, !0))
                            }, t.prototype._addListener = function(t) {
                                var e = this._head.next,
                                    n = this._head;
                                if (e) {
                                    for (; e;) {
                                        if (t.priority > e.priority) {
                                            t.connect(n);
                                            break
                                        }
                                        n = e, e = e.next
                                    }
                                    t.previous || t.connect(n)
                                } else t.connect(n);
                                return this._startIfPossible(), this
                            }, t.prototype.remove = function(t, e) {
                                for (var n = this._head.next; n;) n = n.match(t, e) ? n.destroy() : n.next;
                                return this._head.next || this._cancelIfNeeded(), this
                            }, t.prototype.start = function() {
                                this.started || (this.started = !0, this._requestIfNeeded())
                            }, t.prototype.stop = function() {
                                this.started && (this.started = !1, this._cancelIfNeeded())
                            }, t.prototype.destroy = function() {
                                this.stop();
                                for (var t = this._head.next; t;) t = t.destroy(!0);
                                this._head.destroy(), this._head = null
                            }, t.prototype.update = function() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : performance.now(),
                                    e = void 0;
                                if (t > this.lastTime) {
                                    e = this.elapsedMS = t - this.lastTime, e > this._maxElapsedMS && (e = this._maxElapsedMS), this.deltaTime = e * s.default.TARGET_FPMS * this.speed;
                                    for (var n = this._head, r = n.next; r;) r = r.emit(this.deltaTime);
                                    n.next || this._cancelIfNeeded()
                                } else this.deltaTime = this.elapsedMS = 0;
                                this.lastTime = t
                            }, o(t, [{
                                key: "FPS",
                                get: function() {
                                    return 1e3 / this.elapsedMS
                                }
                            }, {
                                key: "minFPS",
                                get: function() {
                                    return 1e3 / this._maxElapsedMS
                                },
                                set: function(t) {
                                    var e = Math.min(Math.max(0, t) / 1e3, s.default.TARGET_FPMS);
                                    this._maxElapsedMS = 1 / e
                                }
                            }]), t
                        }();
                    n.default = h
                }, {
                    "../const": 45,
                    "../settings": 100,
                    "./TickerListener": 118
                }],
                118: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t(e) {
                            var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
                                i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                                o = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
                            r(this, t), this.fn = e, this.context = n, this.priority = i, this.once = o, this.next = null, this.previous = null, this._destroyed = !1
                        }
                        return t.prototype.match = function(t, e) {
                            return e = e || null, this.fn === t && this.context === e
                        }, t.prototype.emit = function(t) {
                            this.fn && (this.context ? this.fn.call(this.context, t) : this.fn(t));
                            var e = this.next;
                            return this.once && this.destroy(!0), this._destroyed && (this.next = null), e
                        }, t.prototype.connect = function(t) {
                            this.previous = t, t.next && (t.next.previous = this), this.next = t.next, t.next = this
                        }, t.prototype.destroy = function() {
                            var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                            this._destroyed = !0, this.fn = null, this.context = null, this.previous && (this.previous.next = this.next), this.next && (this.next.previous = this.previous);
                            var e = this.previous;
                            return this.next = t ? null : e, this.previous = null, e
                        }, t
                    }();
                    n.default = i
                }, {}],
                119: [function(t, e, n) {
                    "use strict";
                    n.__esModule = !0, n.Ticker = n.shared = void 0;
                    var r = t("./Ticker"),
                        i = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(r),
                        o = new i.default;
                    o.autoStart = !0, o.destroy = function() {}, n.shared = o, n.Ticker = i.default
                }, {
                    "./Ticker": 117
                }],
                120: [function(t, e, n) {
                    "use strict";

                    function r() {
                        return !(!!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform))
                    }
                    n.__esModule = !0, n.default = r
                }, {}],
                121: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        for (var e = 6 * t, n = new Uint16Array(e), r = 0, i = 0; r < e; r += 6, i += 4) n[r + 0] = i + 0, n[r + 1] = i + 1, n[r + 2] = i + 2, n[r + 3] = i + 0, n[r + 4] = i + 2, n[r + 5] = i + 3;
                        return n
                    }
                    n.__esModule = !0, n.default = r
                }, {}],
                122: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : window.location;
                        if (0 === t.indexOf("data:")) return "";
                        e = e || window.location, a || (a = document.createElement("a")), a.href = t, t = o.default.parse(a.href);
                        var n = !t.port && "" === e.port || t.port === e.port;
                        return t.hostname === e.hostname && n && t.protocol === e.protocol ? "" : "anonymous"
                    }
                    n.__esModule = !0, n.default = r;
                    var i = t("url"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i),
                        a = void 0
                }, {
                    url: 28
                }],
                123: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        if (t && t.__esModule) return t;
                        var e = {};
                        if (null != t)
                            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                        return e.default = t, e
                    }

                    function i(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function o() {
                        return ++N
                    }

                    function a(t, e) {
                        return e = e || [], e[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255, e
                    }

                    function s(t) {
                        return t = t.toString(16), "#" + (t = "000000".substr(0, 6 - t.length) + t)
                    }

                    function u(t) {
                        return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0)
                    }

                    function l(t, e) {
                        var n = C.default.RETINA_PREFIX.exec(t);
                        return n ? parseFloat(n[1]) : void 0 !== e ? e : 1
                    }

                    function c(t) {
                        var e = w.DATA_URI.exec(t);
                        if (e) return {
                            mediaType: e[1] ? e[1].toLowerCase() : void 0,
                            subType: e[2] ? e[2].toLowerCase() : void 0,
                            encoding: e[3] ? e[3].toLowerCase() : void 0,
                            data: e[4]
                        }
                    }

                    function h(t) {
                        var e = w.URL_FILE_EXTENSION.exec(t);
                        if (e) return e[1].toLowerCase()
                    }

                    function d(t) {
                        var e = w.SVG_SIZE.exec(t),
                            n = {};
                        return e && (n[e[1]] = Math.round(parseFloat(e[3])), n[e[5]] = Math.round(parseFloat(e[7]))), n
                    }

                    function f() {
                        j = !0
                    }

                    function p(t) {
                        if (!j) {
                            if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) {
                                var e = ["\n %c %c %c Pixi.js " + w.VERSION + " - ✰ " + t + " ✰  %c  %c  http://www.pixijs.com/  %c %c ♥%c♥%c♥ \n\n", "background: #ff66a5; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff66a5; background: #030307; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "background: #ffc3dc; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;"];
                                window.console.log.apply(console, e)
                            } else window.console && window.console.log("Pixi.js " + w.VERSION + " - " + t + " - http://www.pixijs.com/");
                            j = !0
                        }
                    }

                    function g() {
                        var t = {
                            stencil: !0,
                            failIfMajorPerformanceCaveat: !0
                        };
                        try {
                            if (!window.WebGLRenderingContext) return !1;
                            var e = document.createElement("canvas"),
                                n = e.getContext("webgl", t) || e.getContext("experimental-webgl", t),
                                r = !(!n || !n.getContextAttributes().stencil);
                            if (n) {
                                var i = n.getExtension("WEBGL_lose_context");
                                i && i.loseContext()
                            }
                            return n = null, r
                        } catch (t) {
                            return !1
                        }
                    }

                    function m(t) {
                        return 0 === t ? 0 : t < 0 ? -1 : 1
                    }

                    function y() {
                        var t = void 0;
                        for (t in G) G[t].destroy();
                        for (t in U) U[t].destroy()
                    }

                    function b() {
                        var t = void 0;
                        for (t in G) delete G[t];
                        for (t in U) delete U[t]
                    }

                    function v(t, e) {
                        return W[e ? 1 : 0][t]
                    }

                    function _(t, e) {
                        if (1 === e) return (255 * e << 24) + t;
                        if (0 === e) return 0;
                        var n = t >> 16 & 255,
                            r = t >> 8 & 255,
                            i = 255 & t;
                        return n = n * e + .5 | 0, r = r * e + .5 | 0, i = i * e + .5 | 0, (255 * e << 24) + (n << 16) + (r << 8) + i
                    }

                    function x(t, e, n, r) {
                        return n = n || new Float32Array(4), r || void 0 === r ? (n[0] = t[0] * e, n[1] = t[1] * e, n[2] = t[2] * e) : (n[0] = t[0], n[1] = t[1], n[2] = t[2]), n[3] = e, n
                    }

                    function T(t, e, n, r) {
                        return n = n || new Float32Array(4), n[0] = (t >> 16 & 255) / 255, n[1] = (t >> 8 & 255) / 255, n[2] = (255 & t) / 255, (r || void 0 === r) && (n[0] *= e, n[1] *= e, n[2] *= e), n[3] = e, n
                    }
                    n.__esModule = !0, n.premultiplyBlendMode = n.BaseTextureCache = n.TextureCache = n.mixins = n.pluginTarget = n.EventEmitter = n.removeItems = n.isMobile = void 0, n.uid = o, n.hex2rgb = a, n.hex2string = s, n.rgb2hex = u, n.getResolutionOfUrl = l, n.decomposeDataUri = c, n.getUrlFileExtension = h, n.getSvgSize = d, n.skipHello = f, n.sayHello = p, n.isWebGLSupported = g, n.sign = m, n.destroyTextureCache = y, n.clearTextureCache = b, n.correctBlendMode = v, n.premultiplyTint = _, n.premultiplyRgba = x, n.premultiplyTintToRgba = T;
                    var w = t("../const"),
                        S = t("../settings"),
                        C = i(S),
                        E = t("eventemitter3"),
                        O = i(E),
                        P = t("./pluginTarget"),
                        A = i(P),
                        R = t("./mixin"),
                        M = r(R),
                        I = t("ismobilejs"),
                        D = r(I),
                        L = t("remove-array-items"),
                        k = i(L),
                        F = t("./mapPremultipliedBlendModes"),
                        B = i(F),
                        N = 0,
                        j = !1;
                    n.isMobile = D, n.removeItems = k.default, n.EventEmitter = O.default, n.pluginTarget = A.default, n.mixins = M;
                    var G = n.TextureCache = Object.create(null),
                        U = n.BaseTextureCache = Object.create(null),
                        W = n.premultiplyBlendMode = (0, B.default)()
                }, {
                    "../const": 45,
                    "../settings": 100,
                    "./mapPremultipliedBlendModes": 124,
                    "./mixin": 126,
                    "./pluginTarget": 127,
                    eventemitter3: 3,
                    ismobilejs: 4,
                    "remove-array-items": 30
                }],
                124: [function(t, e, n) {
                    "use strict";

                    function r() {
                        for (var t = [], e = [], n = 0; n < 32; n++) t[n] = n, e[n] = n;
                        t[i.BLEND_MODES.NORMAL_NPM] = i.BLEND_MODES.NORMAL, t[i.BLEND_MODES.ADD_NPM] = i.BLEND_MODES.ADD, t[i.BLEND_MODES.SCREEN_NPM] = i.BLEND_MODES.SCREEN, e[i.BLEND_MODES.NORMAL] = i.BLEND_MODES.NORMAL_NPM, e[i.BLEND_MODES.ADD] = i.BLEND_MODES.ADD_NPM, e[i.BLEND_MODES.SCREEN] = i.BLEND_MODES.SCREEN_NPM;
                        var r = [];
                        return r.push(e), r.push(t), r
                    }
                    n.__esModule = !0, n.default = r;
                    var i = t("../const")
                }, {
                    "../const": 45
                }],
                125: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return o.default.tablet || o.default.phone ? 4 : t
                    }
                    n.__esModule = !0, n.default = r;
                    var i = t("ismobilejs"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i)
                }, {
                    ismobilejs: 4
                }],
                126: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (t && e)
                            for (var n = Object.keys(e), r = 0; r < n.length; ++r) {
                                var i = n[r];
                                Object.defineProperty(t, i, Object.getOwnPropertyDescriptor(e, i))
                            }
                    }

                    function i(t, e) {
                        a.push(t, e)
                    }

                    function o() {
                        for (var t = 0; t < a.length; t += 2) r(a[t], a[t + 1]);
                        a.length = 0
                    }
                    n.__esModule = !0, n.mixin = r, n.delayMixin = i, n.performMixins = o;
                    var a = []
                }, {}],
                127: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        t.__plugins = {}, t.registerPlugin = function(e, n) {
                            t.__plugins[e] = n
                        }, t.prototype.initPlugins = function() {
                            this.plugins = this.plugins || {};
                            for (var e in t.__plugins) this.plugins[e] = new t.__plugins[e](this)
                        }, t.prototype.destroyPlugins = function() {
                            for (var t in this.plugins) this.plugins[t].destroy(), this.plugins[t] = null;
                            this.plugins = null
                        }
                    }
                    n.__esModule = !0, n.default = {
                        mixin: function(t) {
                            r(t)
                        }
                    }
                }, {}],
                128: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        var e = t.width,
                            n = t.height,
                            r = t.getContext("2d"),
                            i = r.getImageData(0, 0, e, n),
                            o = i.data,
                            a = o.length,
                            s = {
                                top: null,
                                left: null,
                                right: null,
                                bottom: null
                            },
                            u = void 0,
                            l = void 0,
                            c = void 0;
                        for (u = 0; u < a; u += 4) 0 !== o[u + 3] && (l = u / 4 % e, c = ~~(u / 4 / e), null === s.top && (s.top = c), null === s.left ? s.left = l : l < s.left && (s.left = l), null === s.right ? s.right = l + 1 : s.right < l && (s.right = l + 1), null === s.bottom ? s.bottom = c : s.bottom < c && (s.bottom = c));
                        return e = s.right - s.left, n = s.bottom - s.top + 1, {
                            height: n,
                            width: e,
                            data: r.getImageData(s.left, s.top, e, n)
                        }
                    }
                    n.__esModule = !0, n.default = r
                }, {}],
                129: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        var e = (new Error).stack;
                        void 0 === e || (e = e.split("\n").splice(3).join("\n"), console.groupCollapsed)
                    }

                    function i(t) {
                        var e = t.mesh,
                            n = t.particles,
                            i = t.extras,
                            o = t.filters,
                            a = t.prepare,
                            s = t.loaders,
                            u = t.interaction;
                        Object.defineProperties(t, {
                            SpriteBatch: {
                                get: function() {
                                    throw new ReferenceError("SpriteBatch does not exist any more, please use the new ParticleContainer instead.")
                                }
                            },
                            AssetLoader: {
                                get: function() {
                                    throw new ReferenceError("The loader system was overhauled in pixi v3, please see the new PIXI.loaders.Loader class.")
                                }
                            },
                            Stage: {
                                get: function() {
                                    return r("You do not need to use a PIXI Stage any more, you can simply render any container."), t.Container
                                }
                            },
                            DisplayObjectContainer: {
                                get: function() {
                                    return r("DisplayObjectContainer has been shortened to Container, please use Container from now on."), t.Container
                                }
                            },
                            Strip: {
                                get: function() {
                                    return r("The Strip class has been renamed to Mesh and moved to mesh.Mesh, please use mesh.Mesh from now on."), e.Mesh
                                }
                            },
                            Rope: {
                                get: function() {
                                    return r("The Rope class has been moved to mesh.Rope, please use mesh.Rope from now on."), e.Rope
                                }
                            },
                            ParticleContainer: {
                                get: function() {
                                    return r("The ParticleContainer class has been moved to particles.ParticleContainer, please use particles.ParticleContainer from now on."), n.ParticleContainer
                                }
                            },
                            MovieClip: {
                                get: function() {
                                    return r("The MovieClip class has been moved to extras.AnimatedSprite, please use extras.AnimatedSprite."), i.AnimatedSprite
                                }
                            },
                            TilingSprite: {
                                get: function() {
                                    return r("The TilingSprite class has been moved to extras.TilingSprite, please use extras.TilingSprite from now on."), i.TilingSprite
                                }
                            },
                            BitmapText: {
                                get: function() {
                                    return r("The BitmapText class has been moved to extras.BitmapText, please use extras.BitmapText from now on."), i.BitmapText
                                }
                            },
                            blendModes: {
                                get: function() {
                                    return r("The blendModes has been moved to BLEND_MODES, please use BLEND_MODES from now on."), t.BLEND_MODES
                                }
                            },
                            scaleModes: {
                                get: function() {
                                    return r("The scaleModes has been moved to SCALE_MODES, please use SCALE_MODES from now on."), t.SCALE_MODES
                                }
                            },
                            BaseTextureCache: {
                                get: function() {
                                    return r("The BaseTextureCache class has been moved to utils.BaseTextureCache, please use utils.BaseTextureCache from now on."), t.utils.BaseTextureCache
                                }
                            },
                            TextureCache: {
                                get: function() {
                                    return r("The TextureCache class has been moved to utils.TextureCache, please use utils.TextureCache from now on."), t.utils.TextureCache
                                }
                            },
                            math: {
                                get: function() {
                                    return r("The math namespace is deprecated, please access members already accessible on PIXI."), t
                                }
                            },
                            AbstractFilter: {
                                get: function() {
                                    return r("AstractFilter has been renamed to Filter, please use PIXI.Filter"), t.Filter
                                }
                            },
                            TransformManual: {
                                get: function() {
                                    return r("TransformManual has been renamed to TransformBase, please update your pixi-spine"), t.TransformBase
                                }
                            },
                            TARGET_FPMS: {
                                get: function() {
                                    return r("PIXI.TARGET_FPMS has been deprecated, please use PIXI.settings.TARGET_FPMS"), t.settings.TARGET_FPMS
                                },
                                set: function(e) {
                                    r("PIXI.TARGET_FPMS has been deprecated, please use PIXI.settings.TARGET_FPMS"), t.settings.TARGET_FPMS = e
                                }
                            },
                            FILTER_RESOLUTION: {
                                get: function() {
                                    return r("PIXI.FILTER_RESOLUTION has been deprecated, please use PIXI.settings.FILTER_RESOLUTION"), t.settings.FILTER_RESOLUTION
                                },
                                set: function(e) {
                                    r("PIXI.FILTER_RESOLUTION has been deprecated, please use PIXI.settings.FILTER_RESOLUTION"), t.settings.FILTER_RESOLUTION = e
                                }
                            },
                            RESOLUTION: {
                                get: function() {
                                    return r("PIXI.RESOLUTION has been deprecated, please use PIXI.settings.RESOLUTION"), t.settings.RESOLUTION
                                },
                                set: function(e) {
                                    r("PIXI.RESOLUTION has been deprecated, please use PIXI.settings.RESOLUTION"), t.settings.RESOLUTION = e
                                }
                            },
                            MIPMAP_TEXTURES: {
                                get: function() {
                                    return r("PIXI.MIPMAP_TEXTURES has been deprecated, please use PIXI.settings.MIPMAP_TEXTURES"), t.settings.MIPMAP_TEXTURES
                                },
                                set: function(e) {
                                    r("PIXI.MIPMAP_TEXTURES has been deprecated, please use PIXI.settings.MIPMAP_TEXTURES"), t.settings.MIPMAP_TEXTURES = e
                                }
                            },
                            SPRITE_BATCH_SIZE: {
                                get: function() {
                                    return r("PIXI.SPRITE_BATCH_SIZE has been deprecated, please use PIXI.settings.SPRITE_BATCH_SIZE"), t.settings.SPRITE_BATCH_SIZE
                                },
                                set: function(e) {
                                    r("PIXI.SPRITE_BATCH_SIZE has been deprecated, please use PIXI.settings.SPRITE_BATCH_SIZE"), t.settings.SPRITE_BATCH_SIZE = e
                                }
                            },
                            SPRITE_MAX_TEXTURES: {
                                get: function() {
                                    return r("PIXI.SPRITE_MAX_TEXTURES has been deprecated, please use PIXI.settings.SPRITE_MAX_TEXTURES"), t.settings.SPRITE_MAX_TEXTURES
                                },
                                set: function(e) {
                                    r("PIXI.SPRITE_MAX_TEXTURES has been deprecated, please use PIXI.settings.SPRITE_MAX_TEXTURES"), t.settings.SPRITE_MAX_TEXTURES = e
                                }
                            },
                            RETINA_PREFIX: {
                                get: function() {
                                    return r("PIXI.RETINA_PREFIX has been deprecated, please use PIXI.settings.RETINA_PREFIX"), t.settings.RETINA_PREFIX
                                },
                                set: function(e) {
                                    r("PIXI.RETINA_PREFIX has been deprecated, please use PIXI.settings.RETINA_PREFIX"), t.settings.RETINA_PREFIX = e
                                }
                            },
                            DEFAULT_RENDER_OPTIONS: {
                                get: function() {
                                    return r("PIXI.DEFAULT_RENDER_OPTIONS has been deprecated, please use PIXI.settings.DEFAULT_RENDER_OPTIONS"), t.settings.RENDER_OPTIONS
                                }
                            }
                        });
                        for (var l = [{
                                parent: "TRANSFORM_MODE",
                                target: "TRANSFORM_MODE"
                            }, {
                                parent: "GC_MODES",
                                target: "GC_MODE"
                            }, {
                                parent: "WRAP_MODES",
                                target: "WRAP_MODE"
                            }, {
                                parent: "SCALE_MODES",
                                target: "SCALE_MODE"
                            }, {
                                parent: "PRECISION",
                                target: "PRECISION_FRAGMENT"
                            }], c = 0; c < l.length; c++) ! function(e) {
                            var n = l[e];
                            Object.defineProperty(t[n.parent], "DEFAULT", {
                                get: function() {
                                    return r("PIXI." + n.parent + ".DEFAULT has been deprecated, please use PIXI.settings." + n.target), t.settings[n.target]
                                },
                                set: function(e) {
                                    r("PIXI." + n.parent + ".DEFAULT has been deprecated, please use PIXI.settings." + n.target), t.settings[n.target] = e
                                }
                            })
                        }(c);
                        Object.defineProperties(t.settings, {
                            PRECISION: {
                                get: function() {
                                    return r("PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT"), t.settings.PRECISION_FRAGMENT
                                },
                                set: function(e) {
                                    r("PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT"), t.settings.PRECISION_FRAGMENT = e
                                }
                            }
                        }), i.AnimatedSprite && Object.defineProperties(i, {
                            MovieClip: {
                                get: function() {
                                    return r("The MovieClip class has been renamed to AnimatedSprite, please use AnimatedSprite from now on."), i.AnimatedSprite
                                }
                            }
                        }), t.DisplayObject.prototype.generateTexture = function(t, e, n) {
                            return r("generateTexture has moved to the renderer, please use renderer.generateTexture(displayObject)"), t.generateTexture(this, e, n)
                        }, t.Graphics.prototype.generateTexture = function(t, e) {
                            return r("graphics generate texture has moved to the renderer. Or to render a graphics to a texture using canvas please use generateCanvasTexture"), this.generateCanvasTexture(t, e)
                        }, t.RenderTexture.prototype.render = function(t, e, n, i) {
                            this.legacyRenderer.render(t, this, n, e, !i), r("RenderTexture.render is now deprecated, please use renderer.render(displayObject, renderTexture)")
                        }, t.RenderTexture.prototype.getImage = function(t) {
                            return r("RenderTexture.getImage is now deprecated, please use renderer.extract.image(target)"), this.legacyRenderer.extract.image(t)
                        }, t.RenderTexture.prototype.getBase64 = function(t) {
                            return r("RenderTexture.getBase64 is now deprecated, please use renderer.extract.base64(target)"), this.legacyRenderer.extract.base64(t)
                        }, t.RenderTexture.prototype.getCanvas = function(t) {
                            return r("RenderTexture.getCanvas is now deprecated, please use renderer.extract.canvas(target)"), this.legacyRenderer.extract.canvas(t)
                        }, t.RenderTexture.prototype.getPixels = function(t) {
                            return r("RenderTexture.getPixels is now deprecated, please use renderer.extract.pixels(target)"), this.legacyRenderer.pixels(t)
                        }, t.Sprite.prototype.setTexture = function(t) {
                            this.texture = t, r("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;")
                        }, i.BitmapText && (i.BitmapText.prototype.setText = function(t) {
                            this.text = t, r("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';")
                        }), t.Text.prototype.setText = function(t) {
                            this.text = t, r("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';")
                        }, t.Text.calculateFontProperties = function(e) {
                            return r("Text.calculateFontProperties is now deprecated, please use the TextMetrics.measureFont"), t.TextMetrics.measureFont(e)
                        }, Object.defineProperties(t.Text, {
                            fontPropertiesCache: {
                                get: function() {
                                    return r("Text.fontPropertiesCache is deprecated"), t.TextMetrics._fonts
                                }
                            },
                            fontPropertiesCanvas: {
                                get: function() {
                                    return r("Text.fontPropertiesCanvas is deprecated"), t.TextMetrics._canvas
                                }
                            },
                            fontPropertiesContext: {
                                get: function() {
                                    return r("Text.fontPropertiesContext is deprecated"), t.TextMetrics._context
                                }
                            }
                        }), t.Text.prototype.setStyle = function(t) {
                            this.style = t, r("setStyle is now deprecated, please use the style property, e.g : myText.style = style;")
                        }, t.Text.prototype.determineFontProperties = function(e) {
                            return r("determineFontProperties is now deprecated, please use TextMetrics.measureFont method"), t.TextMetrics.measureFont(e)
                        }, t.Text.getFontStyle = function(e) {
                            return r("getFontStyle is now deprecated, please use TextStyle.toFontString() instead"), e = e || {}, e instanceof t.TextStyle || (e = new t.TextStyle(e)), e.toFontString()
                        }, Object.defineProperties(t.TextStyle.prototype, {
                            font: {
                                get: function() {
                                    r("text style property 'font' is now deprecated, please use the 'fontFamily', 'fontSize', 'fontStyle', 'fontVariant' and 'fontWeight' properties from now on");
                                    var t = "number" == typeof this._fontSize ? this._fontSize + "px" : this._fontSize;
                                    return this._fontStyle + " " + this._fontVariant + " " + this._fontWeight + " " + t + " " + this._fontFamily
                                },
                                set: function(t) {
                                    r("text style property 'font' is now deprecated, please use the 'fontFamily','fontSize',fontStyle','fontVariant' and 'fontWeight' properties from now on"), t.indexOf("italic") > 1 ? this._fontStyle = "italic" : t.indexOf("oblique") > -1 ? this._fontStyle = "oblique" : this._fontStyle = "normal", t.indexOf("small-caps") > -1 ? this._fontVariant = "small-caps" : this._fontVariant = "normal";
                                    var e = t.split(" "),
                                        n = -1;
                                    this._fontSize = 26;
                                    for (var i = 0; i < e.length; ++i)
                                        if (e[i].match(/(px|pt|em|%)/)) {
                                            n = i, this._fontSize = e[i];
                                            break
                                        }
                                    this._fontWeight = "normal";
                                    for (var o = 0; o < n; ++o)
                                        if (e[o].match(/(bold|bolder|lighter|100|200|300|400|500|600|700|800|900)/)) {
                                            this._fontWeight = e[o];
                                            break
                                        }
                                    if (n > -1 && n < e.length - 1) {
                                        this._fontFamily = "";
                                        for (var a = n + 1; a < e.length; ++a) this._fontFamily += e[a] + " ";
                                        this._fontFamily = this._fontFamily.slice(0, -1)
                                    } else this._fontFamily = "Arial";
                                    this.styleID++
                                }
                            }
                        }), t.Texture.prototype.setFrame = function(t) {
                            this.frame = t, r("setFrame is now deprecated, please use the frame property, e.g: myTexture.frame = frame;")
                        }, t.Texture.addTextureToCache = function(e, n) {
                            t.Texture.addToCache(e, n), r("Texture.addTextureToCache is deprecated, please use Texture.addToCache from now on.")
                        }, t.Texture.removeTextureFromCache = function(e) {
                            return r("Texture.removeTextureFromCache is deprecated, please use Texture.removeFromCache from now on. Be aware that Texture.removeFromCache does not automatically its BaseTexture from the BaseTextureCache. For that, use BaseTexture.removeFromCache"), t.BaseTexture.removeFromCache(e), t.Texture.removeFromCache(e)
                        }, Object.defineProperties(o, {
                            AbstractFilter: {
                                get: function() {
                                    return r("AstractFilter has been renamed to Filter, please use PIXI.Filter"), t.AbstractFilter
                                }
                            },
                            SpriteMaskFilter: {
                                get: function() {
                                    return r("filters.SpriteMaskFilter is an undocumented alias, please use SpriteMaskFilter from now on."), t.SpriteMaskFilter
                                }
                            }
                        }), t.utils.uuid = function() {
                            return r("utils.uuid() is deprecated, please use utils.uid() from now on."), t.utils.uid()
                        }, t.utils.canUseNewCanvasBlendModes = function() {
                            return r("utils.canUseNewCanvasBlendModes() is deprecated, please use CanvasTinter.canUseMultiply from now on"), t.CanvasTinter.canUseMultiply
                        };
                        var h = !0;
                        Object.defineProperty(t.utils, "_saidHello", {
                            set: function(t) {
                                t && (r("PIXI.utils._saidHello is deprecated, please use PIXI.utils.skipHello()"), this.skipHello()), h = t
                            },
                            get: function() {
                                return h
                            }
                        }), a.BasePrepare && (a.BasePrepare.prototype.register = function(t, e) {
                            return r("renderer.plugins.prepare.register is now deprecated, please use renderer.plugins.prepare.registerFindHook & renderer.plugins.prepare.registerUploadHook"), t && this.registerFindHook(t), e && this.registerUploadHook(e), this
                        }), a.canvas && Object.defineProperty(a.canvas, "UPLOADS_PER_FRAME", {
                            set: function() {
                                r("PIXI.CanvasPrepare.UPLOADS_PER_FRAME has been removed. Please set renderer.plugins.prepare.limiter.maxItemsPerFrame on your renderer")
                            },
                            get: function() {
                                return r("PIXI.CanvasPrepare.UPLOADS_PER_FRAME has been removed. Please use renderer.plugins.prepare.limiter"), NaN
                            }
                        }), a.webgl && Object.defineProperty(a.webgl, "UPLOADS_PER_FRAME", {
                            set: function() {
                                r("PIXI.WebGLPrepare.UPLOADS_PER_FRAME has been removed. Please set renderer.plugins.prepare.limiter.maxItemsPerFrame on your renderer")
                            },
                            get: function() {
                                return r("PIXI.WebGLPrepare.UPLOADS_PER_FRAME has been removed. Please use renderer.plugins.prepare.limiter"), NaN
                            }
                        }), s.Loader && function() {
                            var t = s.Resource,
                                e = s.Loader;
                            Object.defineProperties(t.prototype, {
                                isJson: {
                                    get: function() {
                                        return r("The isJson property is deprecated, please use `resource.type === Resource.TYPE.JSON`."), this.type === t.TYPE.JSON
                                    }
                                },
                                isXml: {
                                    get: function() {
                                        return r("The isXml property is deprecated, please use `resource.type === Resource.TYPE.XML`."), this.type === t.TYPE.XML
                                    }
                                },
                                isImage: {
                                    get: function() {
                                        return r("The isImage property is deprecated, please use `resource.type === Resource.TYPE.IMAGE`."), this.type === t.TYPE.IMAGE
                                    }
                                },
                                isAudio: {
                                    get: function() {
                                        return r("The isAudio property is deprecated, please use `resource.type === Resource.TYPE.AUDIO`."), this.type === t.TYPE.AUDIO
                                    }
                                },
                                isVideo: {
                                    get: function() {
                                        return r("The isVideo property is deprecated, please use `resource.type === Resource.TYPE.VIDEO`."), this.type === t.TYPE.VIDEO
                                    }
                                }
                            }), Object.defineProperties(e.prototype, {
                                before: {
                                    get: function() {
                                        return r("The before() method is deprecated, please use pre()."), this.pre
                                    }
                                },
                                after: {
                                    get: function() {
                                        return r("The after() method is deprecated, please use use()."), this.use
                                    }
                                }
                            })
                        }(), u.interactiveTarget && Object.defineProperty(u.interactiveTarget, "defaultCursor", {
                            set: function(t) {
                                r("Property defaultCursor has been replaced with 'cursor'. "), this.cursor = t
                            },
                            get: function() {
                                return r("Property defaultCursor has been replaced with 'cursor'. "), this.cursor
                            }
                        }), u.InteractionManager && (Object.defineProperty(u.InteractionManager, "defaultCursorStyle", {
                            set: function(t) {
                                r("Property defaultCursorStyle has been replaced with 'cursorStyles.default'. "), this.cursorStyles.default = t
                            },
                            get: function() {
                                return r("Property defaultCursorStyle has been replaced with 'cursorStyles.default'. "), this.cursorStyles.default
                            }
                        }), Object.defineProperty(u.InteractionManager, "currentCursorStyle", {
                            set: function(t) {
                                r("Property currentCursorStyle has been removed.See the currentCursorMode property, which works differently."), this.currentCursorMode = t
                            },
                            get: function() {
                                return r("Property currentCursorStyle has been removed.See the currentCursorMode property, which works differently."), this.currentCursorMode
                            }
                        }))
                    }
                    n.__esModule = !0, n.default = i
                }, {}],
                130: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../../core"),
                        o = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(i),
                        a = new o.Rectangle,
                        s = function() {
                            function t(e) {
                                r(this, t), this.renderer = e, e.extract = this
                            }
                            return t.prototype.image = function(t) {
                                var e = new Image;
                                return e.src = this.base64(t), e
                            }, t.prototype.base64 = function(t) {
                                return this.canvas(t).toDataURL()
                            }, t.prototype.canvas = function(t) {
                                var e = this.renderer,
                                    n = void 0,
                                    r = void 0,
                                    i = void 0,
                                    s = void 0;
                                t && (s = t instanceof o.RenderTexture ? t : e.generateTexture(t)), s ? (n = s.baseTexture._canvasRenderTarget.context, r = s.baseTexture._canvasRenderTarget.resolution, i = s.frame) : (n = e.rootContext, i = a, i.width = this.renderer.width, i.height = this.renderer.height);
                                var u = i.width * r,
                                    l = i.height * r,
                                    c = new o.CanvasRenderTarget(u, l),
                                    h = n.getImageData(i.x * r, i.y * r, u, l);
                                return c.context.putImageData(h, 0, 0), c.canvas
                            }, t.prototype.pixels = function(t) {
                                var e = this.renderer,
                                    n = void 0,
                                    r = void 0,
                                    i = void 0,
                                    s = void 0;
                                return t && (s = t instanceof o.RenderTexture ? t : e.generateTexture(t)), s ? (n = s.baseTexture._canvasRenderTarget.context, r = s.baseTexture._canvasRenderTarget.resolution, i = s.frame) : (n = e.rootContext, i = a, i.width = e.width, i.height = e.height), n.getImageData(0, 0, i.width * r, i.height * r).data
                            }, t.prototype.destroy = function() {
                                this.renderer.extract = null, this.renderer = null
                            }, t
                        }();
                    n.default = s, o.CanvasRenderer.registerPlugin("extract", s)
                }, {
                    "../../core": 64
                }],
                131: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./webgl/WebGLExtract");
                    Object.defineProperty(n, "webgl", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./canvas/CanvasExtract");
                    Object.defineProperty(n, "canvas", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    })
                }, {
                    "./canvas/CanvasExtract": 130,
                    "./webgl/WebGLExtract": 132
                }],
                132: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../../core"),
                        o = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(i),
                        a = new o.Rectangle,
                        s = function() {
                            function t(e) {
                                r(this, t), this.renderer = e, e.extract = this
                            }
                            return t.prototype.image = function(t) {
                                var e = new Image;
                                return e.src = this.base64(t), e
                            }, t.prototype.base64 = function(t) {
                                return this.canvas(t).toDataURL()
                            }, t.prototype.canvas = function(t) {
                                var e = this.renderer,
                                    n = void 0,
                                    r = void 0,
                                    i = void 0,
                                    s = !1,
                                    u = void 0;
                                t && (u = t instanceof o.RenderTexture ? t : this.renderer.generateTexture(t)), u ? (n = u.baseTexture._glRenderTargets[this.renderer.CONTEXT_UID], r = n.resolution, i = u.frame, s = !1) : (n = this.renderer.rootRenderTarget, r = n.resolution, s = !0, i = a, i.width = n.size.width, i.height = n.size.height);
                                var l = i.width * r,
                                    c = i.height * r,
                                    h = new o.CanvasRenderTarget(l, c);
                                if (n) {
                                    e.bindRenderTarget(n);
                                    var d = new Uint8Array(4 * l * c),
                                        f = e.gl;
                                    f.readPixels(i.x * r, i.y * r, l, c, f.RGBA, f.UNSIGNED_BYTE, d);
                                    var p = h.context.getImageData(0, 0, l, c);
                                    p.data.set(d), h.context.putImageData(p, 0, 0), s && (h.context.scale(1, -1), h.context.drawImage(h.canvas, 0, -c))
                                }
                                return h.canvas
                            }, t.prototype.pixels = function(t) {
                                var e = this.renderer,
                                    n = void 0,
                                    r = void 0,
                                    i = void 0,
                                    s = void 0;
                                t && (s = t instanceof o.RenderTexture ? t : this.renderer.generateTexture(t)), s ? (n = s.baseTexture._glRenderTargets[this.renderer.CONTEXT_UID], r = n.resolution, i = s.frame) : (n = this.renderer.rootRenderTarget, r = n.resolution, i = a, i.width = n.size.width, i.height = n.size.height);
                                var u = i.width * r,
                                    l = i.height * r,
                                    c = new Uint8Array(4 * u * l);
                                if (n) {
                                    e.bindRenderTarget(n);
                                    var h = e.gl;
                                    h.readPixels(i.x * r, i.y * r, u, l, h.RGBA, h.UNSIGNED_BYTE, c)
                                }
                                return c
                            }, t.prototype.destroy = function() {
                                this.renderer.extract = null, this.renderer = null
                            }, t
                        }();
                    n.default = s, o.WebGLRenderer.registerPlugin("extract", s)
                }, {
                    "../../core": 64
                }],
                133: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = function(t) {
                            function e(n, o) {
                                r(this, e);
                                var a = i(this, t.call(this, n[0] instanceof u.Texture ? n[0] : n[0].texture));
                                return a._textures = null, a._durations = null, a.textures = n, a._autoUpdate = !1 !== o, a.animationSpeed = 1, a.loop = !0, a.onComplete = null, a.onFrameChange = null, a.onLoop = null, a._currentTime = 0, a.playing = !1, a
                            }
                            return o(e, t), e.prototype.stop = function() {
                                this.playing && (this.playing = !1, this._autoUpdate && u.ticker.shared.remove(this.update, this))
                            }, e.prototype.play = function() {
                                this.playing || (this.playing = !0, this._autoUpdate && u.ticker.shared.add(this.update, this, u.UPDATE_PRIORITY.HIGH))
                            }, e.prototype.gotoAndStop = function(t) {
                                this.stop();
                                var e = this.currentFrame;
                                this._currentTime = t, e !== this.currentFrame && this.updateTexture()
                            }, e.prototype.gotoAndPlay = function(t) {
                                var e = this.currentFrame;
                                this._currentTime = t, e !== this.currentFrame && this.updateTexture(), this.play()
                            }, e.prototype.update = function(t) {
                                var e = this.animationSpeed * t,
                                    n = this.currentFrame;
                                if (null !== this._durations) {
                                    var r = this._currentTime % 1 * this._durations[this.currentFrame];
                                    for (r += e / 60 * 1e3; r < 0;) this._currentTime--, r += this._durations[this.currentFrame];
                                    var i = Math.sign(this.animationSpeed * t);
                                    for (this._currentTime = Math.floor(this._currentTime); r >= this._durations[this.currentFrame];) r -= this._durations[this.currentFrame] * i, this._currentTime += i;
                                    this._currentTime += r / this._durations[this.currentFrame]
                                } else this._currentTime += e;
                                this._currentTime < 0 && !this.loop ? (this.gotoAndStop(0), this.onComplete && this.onComplete()) : this._currentTime >= this._textures.length && !this.loop ? (this.gotoAndStop(this._textures.length - 1), this.onComplete && this.onComplete()) : n !== this.currentFrame && (this.loop && this.onLoop && (this.animationSpeed > 0 && this.currentFrame < n ? this.onLoop() : this.animationSpeed < 0 && this.currentFrame > n && this.onLoop()), this.updateTexture())
                            }, e.prototype.updateTexture = function() {
                                this._texture = this._textures[this.currentFrame], this._textureID = -1, this.onFrameChange && this.onFrameChange(this.currentFrame)
                            }, e.prototype.destroy = function(e) {
                                this.stop(), t.prototype.destroy.call(this, e)
                            }, e.fromFrames = function(t) {
                                for (var n = [], r = 0; r < t.length; ++r) n.push(u.Texture.fromFrame(t[r]));
                                return new e(n)
                            }, e.fromImages = function(t) {
                                for (var n = [], r = 0; r < t.length; ++r) n.push(u.Texture.fromImage(t[r]));
                                return new e(n)
                            }, a(e, [{
                                key: "totalFrames",
                                get: function() {
                                    return this._textures.length
                                }
                            }, {
                                key: "textures",
                                get: function() {
                                    return this._textures
                                },
                                set: function(t) {
                                    if (t[0] instanceof u.Texture) this._textures = t, this._durations = null;
                                    else {
                                        this._textures = [], this._durations = [];
                                        for (var e = 0; e < t.length; e++) this._textures.push(t[e].texture), this._durations.push(t[e].time)
                                    }
                                    this.gotoAndStop(0), this.updateTexture()
                                }
                            }, {
                                key: "currentFrame",
                                get: function() {
                                    var t = Math.floor(this._currentTime) % this._textures.length;
                                    return t < 0 && (t += this._textures.length), t
                                }
                            }]), e
                        }(u.Sprite);
                    n.default = l
                }, {
                    "../core": 64
                }],
                134: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../core"),
                        l = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(u),
                        c = t("../core/math/ObservablePoint"),
                        h = r(c),
                        d = t("../core/settings"),
                        f = r(d),
                        p = function(t) {
                            function e(n) {
                                var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                                i(this, e);
                                var a = o(this, t.call(this));
                                return a._textWidth = 0, a._textHeight = 0, a._glyphs = [], a._font = {
                                    tint: void 0 !== r.tint ? r.tint : 16777215,
                                    align: r.align || "left",
                                    name: null,
                                    size: 0
                                }, a.font = r.font, a._text = n, a._maxWidth = 0, a._maxLineHeight = 0, a._anchor = new h.default(function() {
                                    a.dirty = !0
                                }, a, 0, 0), a.dirty = !1, a.updateText(), a
                            }
                            return a(e, t), e.prototype.updateText = function() {
                                for (var t = e.fonts[this._font.name], n = this._font.size / t.size, r = new l.Point, i = [], o = [], a = null, s = 0, u = 0, c = 0, h = -1, d = 0, f = 0, p = 0, g = 0; g < this.text.length; g++) {
                                    var m = this.text.charCodeAt(g);
                                    if (/(\s)/.test(this.text.charAt(g)) && (h = g, d = s), /(?:\r\n|\r|\n)/.test(this.text.charAt(g))) o.push(s), u = Math.max(u, s), c++, r.x = 0, r.y += t.lineHeight, a = null;
                                    else if (-1 !== h && this._maxWidth > 0 && r.x * n > this._maxWidth) l.utils.removeItems(i, h - f, g - h), g = h, h = -1, ++f, o.push(d), u = Math.max(u, d), c++, r.x = 0, r.y += t.lineHeight, a = null;
                                    else {
                                        var y = t.chars[m];
                                        y && (a && y.kerning[a] && (r.x += y.kerning[a]), i.push({
                                            texture: y.texture,
                                            line: c,
                                            charCode: m,
                                            position: new l.Point(r.x + y.xOffset, r.y + y.yOffset)
                                        }), s = r.x + (y.texture.width + y.xOffset), r.x += y.xAdvance, p = Math.max(p, y.yOffset + y.texture.height), a = m)
                                    }
                                }
                                o.push(s), u = Math.max(u, s);
                                for (var b = [], v = 0; v <= c; v++) {
                                    var _ = 0;
                                    "right" === this._font.align ? _ = u - o[v] : "center" === this._font.align && (_ = (u - o[v]) / 2), b.push(_)
                                }
                                for (var x = i.length, T = this.tint, w = 0; w < x; w++) {
                                    var S = this._glyphs[w];
                                    S ? S.texture = i[w].texture : (S = new l.Sprite(i[w].texture), this._glyphs.push(S)), S.position.x = (i[w].position.x + b[i[w].line]) * n, S.position.y = i[w].position.y * n, S.scale.x = S.scale.y = n, S.tint = T, S.parent || this.addChild(S)
                                }
                                for (var C = x; C < this._glyphs.length; ++C) this.removeChild(this._glyphs[C]);
                                if (this._textWidth = u * n, this._textHeight = (r.y + t.lineHeight) * n, 0 !== this.anchor.x || 0 !== this.anchor.y)
                                    for (var E = 0; E < x; E++) this._glyphs[E].x -= this._textWidth * this.anchor.x, this._glyphs[E].y -= this._textHeight * this.anchor.y;
                                this._maxLineHeight = p * n
                            }, e.prototype.updateTransform = function() {
                                this.validate(), this.containerUpdateTransform()
                            }, e.prototype.getLocalBounds = function() {
                                return this.validate(), t.prototype.getLocalBounds.call(this)
                            }, e.prototype.validate = function() {
                                this.dirty && (this.updateText(), this.dirty = !1)
                            }, e.registerFont = function(t, n) {
                                var r = {},
                                    i = t.getElementsByTagName("info")[0],
                                    o = t.getElementsByTagName("common")[0],
                                    a = n.baseTexture.resolution || f.default.RESOLUTION;
                                r.font = i.getAttribute("face"), r.size = parseInt(i.getAttribute("size"), 10), r.lineHeight = parseInt(o.getAttribute("lineHeight"), 10) / a, r.chars = {};
                                for (var s = t.getElementsByTagName("char"), u = 0; u < s.length; u++) {
                                    var c = s[u],
                                        h = parseInt(c.getAttribute("id"), 10),
                                        d = new l.Rectangle(parseInt(c.getAttribute("x"), 10) / a + n.frame.x / a, parseInt(c.getAttribute("y"), 10) / a + n.frame.y / a, parseInt(c.getAttribute("width"), 10) / a, parseInt(c.getAttribute("height"), 10) / a);
                                    r.chars[h] = {
                                        xOffset: parseInt(c.getAttribute("xoffset"), 10) / a,
                                        yOffset: parseInt(c.getAttribute("yoffset"), 10) / a,
                                        xAdvance: parseInt(c.getAttribute("xadvance"), 10) / a,
                                        kerning: {},
                                        texture: new l.Texture(n.baseTexture, d)
                                    }
                                }
                                for (var p = t.getElementsByTagName("kerning"), g = 0; g < p.length; g++) {
                                    var m = p[g],
                                        y = parseInt(m.getAttribute("first"), 10) / a,
                                        b = parseInt(m.getAttribute("second"), 10) / a,
                                        v = parseInt(m.getAttribute("amount"), 10) / a;
                                    r.chars[b] && (r.chars[b].kerning[y] = v)
                                }
                                return e.fonts[r.font] = r, r
                            }, s(e, [{
                                key: "tint",
                                get: function() {
                                    return this._font.tint
                                },
                                set: function(t) {
                                    this._font.tint = "number" == typeof t && t >= 0 ? t : 16777215, this.dirty = !0
                                }
                            }, {
                                key: "align",
                                get: function() {
                                    return this._font.align
                                },
                                set: function(t) {
                                    this._font.align = t || "left", this.dirty = !0
                                }
                            }, {
                                key: "anchor",
                                get: function() {
                                    return this._anchor
                                },
                                set: function(t) {
                                    "number" == typeof t ? this._anchor.set(t) : this._anchor.copy(t)
                                }
                            }, {
                                key: "font",
                                get: function() {
                                    return this._font
                                },
                                set: function(t) {
                                    t && ("string" == typeof t ? (t = t.split(" "), this._font.name = 1 === t.length ? t[0] : t.slice(1).join(" "), this._font.size = t.length >= 2 ? parseInt(t[0], 10) : e.fonts[this._font.name].size) : (this._font.name = t.name, this._font.size = "number" == typeof t.size ? t.size : parseInt(t.size, 10)), this.dirty = !0)
                                }
                            }, {
                                key: "text",
                                get: function() {
                                    return this._text
                                },
                                set: function(t) {
                                    t = t.toString() || " ", this._text !== t && (this._text = t, this.dirty = !0)
                                }
                            }, {
                                key: "maxWidth",
                                get: function() {
                                    return this._maxWidth
                                },
                                set: function(t) {
                                    this._maxWidth !== t && (this._maxWidth = t, this.dirty = !0)
                                }
                            }, {
                                key: "maxLineHeight",
                                get: function() {
                                    return this.validate(), this._maxLineHeight
                                }
                            }, {
                                key: "textWidth",
                                get: function() {
                                    return this.validate(), this._textWidth
                                }
                            }, {
                                key: "textHeight",
                                get: function() {
                                    return this.validate(), this._textHeight
                                }
                            }]), e
                        }(l.Container);
                    n.default = p, p.fonts = {}
                }, {
                    "../core": 64,
                    "../core/math/ObservablePoint": 67,
                    "../core/settings": 100
                }],
                135: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        o = t("../core/math/Matrix"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o),
                        s = new a.default,
                        u = function() {
                            function t(e, n) {
                                r(this, t), this._texture = e, this.mapCoord = new a.default, this.uClampFrame = new Float32Array(4), this.uClampOffset = new Float32Array(2), this._lastTextureID = -1, this.clampOffset = 0, this.clampMargin = void 0 === n ? .5 : n
                            }
                            return t.prototype.multiplyUvs = function(t, e) {
                                void 0 === e && (e = t);
                                for (var n = this.mapCoord, r = 0; r < t.length; r += 2) {
                                    var i = t[r],
                                        o = t[r + 1];
                                    e[r] = i * n.a + o * n.c + n.tx, e[r + 1] = i * n.b + o * n.d + n.ty
                                }
                                return e
                            }, t.prototype.update = function(t) {
                                var e = this._texture;
                                if (!e || !e.valid) return !1;
                                if (!t && this._lastTextureID === e._updateID) return !1;
                                this._lastTextureID = e._updateID;
                                var n = e._uvs;
                                this.mapCoord.set(n.x1 - n.x0, n.y1 - n.y0, n.x3 - n.x0, n.y3 - n.y0, n.x0, n.y0);
                                var r = e.orig,
                                    i = e.trim;
                                i && (s.set(r.width / i.width, 0, 0, r.height / i.height, -i.x / i.width, -i.y / i.height), this.mapCoord.append(s));
                                var o = e.baseTexture,
                                    a = this.uClampFrame,
                                    u = this.clampMargin / o.resolution,
                                    l = this.clampOffset;
                                return a[0] = (e._frame.x + u + l) / o.width, a[1] = (e._frame.y + u + l) / o.height, a[2] = (e._frame.x + e._frame.width - u + l) / o.width, a[3] = (e._frame.y + e._frame.height - u + l) / o.height, this.uClampOffset[0] = l / o.realWidth, this.uClampOffset[1] = l / o.realHeight, !0
                            }, i(t, [{
                                key: "texture",
                                get: function() {
                                    return this._texture
                                },
                                set: function(t) {
                                    this._texture = t, this._lastTextureID = -1
                                }
                            }]), t
                        }();
                    n.default = u
                }, {
                    "../core/math/Matrix": 66
                }],
                136: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../core"),
                        l = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(u),
                        c = t("../core/sprites/canvas/CanvasTinter"),
                        h = r(c),
                        d = t("./TextureTransform"),
                        f = r(d),
                        p = new l.Point,
                        g = function(t) {
                            function e(n) {
                                var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 100,
                                    a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 100;
                                i(this, e);
                                var s = o(this, t.call(this, n));
                                return s.tileTransform = new l.TransformStatic, s._width = r, s._height = a, s._canvasPattern = null, s.uvTransform = n.transform || new f.default(n), s.pluginName = "tilingSprite", s.uvRespectAnchor = !1, s
                            }
                            return a(e, t), e.prototype._onTextureUpdate = function() {
                                this.uvTransform && (this.uvTransform.texture = this._texture)
                            }, e.prototype._renderWebGL = function(t) {
                                var e = this._texture;
                                e && e.valid && (this.tileTransform.updateLocalTransform(), this.uvTransform.update(), t.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this))
                            }, e.prototype._renderCanvas = function(t) {
                                var e = this._texture;
                                if (e.baseTexture.hasLoaded) {
                                    var n = t.context,
                                        r = this.worldTransform,
                                        i = t.resolution,
                                        o = e.baseTexture,
                                        a = o.resolution,
                                        s = this.tilePosition.x / this.tileScale.x % e._frame.width * a,
                                        u = this.tilePosition.y / this.tileScale.y % e._frame.height * a;
                                    if (!this._canvasPattern) {
                                        var c = new l.CanvasRenderTarget(e._frame.width, e._frame.height, a);
                                        16777215 !== this.tint ? (this.cachedTint !== this.tint && (this.cachedTint = this.tint, this.tintedTexture = h.default.getTintedTexture(this, this.tint)), c.context.drawImage(this.tintedTexture, 0, 0)) : c.context.drawImage(o.source, -e._frame.x * a, -e._frame.y * a), this._canvasPattern = c.context.createPattern(c.canvas, "repeat")
                                    }
                                    n.globalAlpha = this.worldAlpha, n.setTransform(r.a * i, r.b * i, r.c * i, r.d * i, r.tx * i, r.ty * i), t.setBlendMode(this.blendMode), n.fillStyle = this._canvasPattern, n.scale(this.tileScale.x / a, this.tileScale.y / a);
                                    var d = this.anchor.x * -this._width,
                                        f = this.anchor.y * -this._height;
                                    this.uvRespectAnchor ? (n.translate(s, u), n.fillRect(-s + d, -u + f, this._width / this.tileScale.x * a, this._height / this.tileScale.y * a)) : (n.translate(s + d, u + f), n.fillRect(-s, -u, this._width / this.tileScale.x * a, this._height / this.tileScale.y * a))
                                }
                            }, e.prototype._calculateBounds = function() {
                                var t = this._width * -this._anchor._x,
                                    e = this._height * -this._anchor._y,
                                    n = this._width * (1 - this._anchor._x),
                                    r = this._height * (1 - this._anchor._y);
                                this._bounds.addFrame(this.transform, t, e, n, r)
                            }, e.prototype.getLocalBounds = function(e) {
                                return 0 === this.children.length ? (this._bounds.minX = this._width * -this._anchor._x, this._bounds.minY = this._height * -this._anchor._y, this._bounds.maxX = this._width * (1 - this._anchor._x), this._bounds.maxY = this._height * (1 - this._anchor._x), e || (this._localBoundsRect || (this._localBoundsRect = new l.Rectangle), e = this._localBoundsRect), this._bounds.getRectangle(e)) : t.prototype.getLocalBounds.call(this, e)
                            }, e.prototype.containsPoint = function(t) {
                                this.worldTransform.applyInverse(t, p);
                                var e = this._width,
                                    n = this._height,
                                    r = -e * this.anchor._x;
                                if (p.x >= r && p.x < r + e) {
                                    var i = -n * this.anchor._y;
                                    if (p.y >= i && p.y < i + n) return !0
                                }
                                return !1
                            }, e.prototype.destroy = function(e) {
                                t.prototype.destroy.call(this, e), this.tileTransform = null, this.uvTransform = null
                            }, e.from = function(t, n, r) {
                                return new e(l.Texture.from(t), n, r)
                            }, e.fromFrame = function(t, n, r) {
                                var i = l.utils.TextureCache[t];
                                if (!i) throw new Error('The frameId "' + t + '" does not exist in the texture cache ' + this);
                                return new e(i, n, r)
                            }, e.fromImage = function(t, n, r, i, o) {
                                return new e(l.Texture.fromImage(t, i, o), n, r)
                            }, s(e, [{
                                key: "clampMargin",
                                get: function() {
                                    return this.uvTransform.clampMargin
                                },
                                set: function(t) {
                                    this.uvTransform.clampMargin = t, this.uvTransform.update(!0)
                                }
                            }, {
                                key: "tileScale",
                                get: function() {
                                    return this.tileTransform.scale
                                },
                                set: function(t) {
                                    this.tileTransform.scale.copy(t)
                                }
                            }, {
                                key: "tilePosition",
                                get: function() {
                                    return this.tileTransform.position
                                },
                                set: function(t) {
                                    this.tileTransform.position.copy(t)
                                }
                            }, {
                                key: "width",
                                get: function() {
                                    return this._width
                                },
                                set: function(t) {
                                    this._width = t
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this._height
                                },
                                set: function(t) {
                                    this._height = t
                                }
                            }]), e
                        }(l.Sprite);
                    n.default = g
                }, {
                    "../core": 64,
                    "../core/sprites/canvas/CanvasTinter": 103,
                    "./TextureTransform": 135
                }],
                137: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    var o = t("../core"),
                        a = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(o),
                        s = t("../core/textures/Texture"),
                        u = r(s),
                        l = t("../core/textures/BaseTexture"),
                        c = r(l),
                        h = t("../core/utils"),
                        d = a.DisplayObject,
                        f = new a.Matrix;
                    d.prototype._cacheAsBitmap = !1, d.prototype._cacheData = !1;
                    var p = function t() {
                        i(this, t), this.textureCacheId = null, this.originalRenderWebGL = null, this.originalRenderCanvas = null, this.originalCalculateBounds = null, this.originalGetLocalBounds = null, this.originalUpdateTransform = null, this.originalHitTest = null, this.originalDestroy = null, this.originalMask = null, this.originalFilterArea = null, this.sprite = null
                    };
                    Object.defineProperties(d.prototype, {
                        cacheAsBitmap: {
                            get: function() {
                                return this._cacheAsBitmap
                            },
                            set: function(t) {
                                if (this._cacheAsBitmap !== t) {
                                    this._cacheAsBitmap = t;
                                    var e = void 0;
                                    t ? (this._cacheData || (this._cacheData = new p), e = this._cacheData, e.originalRenderWebGL = this.renderWebGL, e.originalRenderCanvas = this.renderCanvas, e.originalUpdateTransform = this.updateTransform, e.originalCalculateBounds = this._calculateBounds, e.originalGetLocalBounds = this.getLocalBounds, e.originalDestroy = this.destroy, e.originalContainsPoint = this.containsPoint, e.originalMask = this._mask, e.originalFilterArea = this.filterArea, this.renderWebGL = this._renderCachedWebGL, this.renderCanvas = this._renderCachedCanvas, this.destroy = this._cacheAsBitmapDestroy) : (e = this._cacheData, e.sprite && this._destroyCachedDisplayObject(), this.renderWebGL = e.originalRenderWebGL, this.renderCanvas = e.originalRenderCanvas, this._calculateBounds = e.originalCalculateBounds, this.getLocalBounds = e.originalGetLocalBounds, this.destroy = e.originalDestroy, this.updateTransform = e.originalUpdateTransform, this.containsPoint = e.originalContainsPoint, this._mask = e.originalMask, this.filterArea = e.originalFilterArea)
                                }
                            }
                        }
                    }), d.prototype._renderCachedWebGL = function(t) {
                        !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObject(t), this._cacheData.sprite._transformID = -1, this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._renderWebGL(t))
                    }, d.prototype._initCachedDisplayObject = function(t) {
                        if (!this._cacheData || !this._cacheData.sprite) {
                            var e = this.alpha;
                            this.alpha = 1, t.currentRenderer.flush();
                            var n = this.getLocalBounds().clone();
                            if (this._filters) {
                                var r = this._filters[0].padding;
                                n.pad(r)
                            }
                            var i = t._activeRenderTarget,
                                o = t.filterManager.filterStack,
                                s = a.RenderTexture.create(0 | n.width, 0 | n.height),
                                l = "cacheAsBitmap_" + (0, h.uid)();
                            this._cacheData.textureCacheId = l, c.default.addToCache(s.baseTexture, l), u.default.addToCache(s, l);
                            var d = f;
                            d.tx = -n.x, d.ty = -n.y, this.transform.worldTransform.identity(), this.renderWebGL = this._cacheData.originalRenderWebGL, t.render(this, s, !0, d, !0), t.bindRenderTarget(i), t.filterManager.filterStack = o, this.renderWebGL = this._renderCachedWebGL, this.updateTransform = this.displayObjectUpdateTransform, this._mask = null, this.filterArea = null;
                            var p = new a.Sprite(s);
                            p.transform.worldTransform = this.transform.worldTransform, p.anchor.x = -n.x / n.width, p.anchor.y = -n.y / n.height, p.alpha = e, p._bounds = this._bounds, this._calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._cacheData.sprite = p, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = t._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = p.containsPoint.bind(p)
                        }
                    }, d.prototype._renderCachedCanvas = function(t) {
                        !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObjectCanvas(t), this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite.renderCanvas(t))
                    }, d.prototype._initCachedDisplayObjectCanvas = function(t) {
                        if (!this._cacheData || !this._cacheData.sprite) {
                            var e = this.getLocalBounds(),
                                n = this.alpha;
                            this.alpha = 1;
                            var r = t.context,
                                i = a.RenderTexture.create(0 | e.width, 0 | e.height),
                                o = "cacheAsBitmap_" + (0, h.uid)();
                            this._cacheData.textureCacheId = o, c.default.addToCache(i.baseTexture, o), u.default.addToCache(i, o);
                            var s = f;
                            this.transform.localTransform.copy(s), s.invert(), s.tx -= e.x, s.ty -= e.y, this.renderCanvas = this._cacheData.originalRenderCanvas, t.render(this, i, !0, s, !1), t.context = r, this.renderCanvas = this._renderCachedCanvas, this._calculateBounds = this._calculateCachedBounds, this._mask = null, this.filterArea = null;
                            var l = new a.Sprite(i);
                            l.transform.worldTransform = this.transform.worldTransform, l.anchor.x = -e.x / e.width, l.anchor.y = -e.y / e.height, l._bounds = this._bounds, l.alpha = n, this.parent ? this.updateTransform() : (this.parent = t._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.updateTransform = this.displayObjectUpdateTransform, this._cacheData.sprite = l, this.containsPoint = l.containsPoint.bind(l)
                        }
                    }, d.prototype._calculateCachedBounds = function() {
                        this._cacheData.sprite._calculateBounds()
                    }, d.prototype._getCachedLocalBounds = function() {
                        return this._cacheData.sprite.getLocalBounds()
                    }, d.prototype._destroyCachedDisplayObject = function() {
                        this._cacheData.sprite._texture.destroy(!0), this._cacheData.sprite = null, c.default.removeFromCache(this._cacheData.textureCacheId), u.default.removeFromCache(this._cacheData.textureCacheId), this._cacheData.textureCacheId = null
                    }, d.prototype._cacheAsBitmapDestroy = function(t) {
                        this.cacheAsBitmap = !1, this.destroy(t)
                    }
                }, {
                    "../core": 64,
                    "../core/textures/BaseTexture": 111,
                    "../core/textures/Texture": 114,
                    "../core/utils": 123
                }],
                138: [function(t, e, n) {
                    "use strict";
                    var r = t("../core"),
                        i = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(r);
                    i.DisplayObject.prototype.name = null, i.Container.prototype.getChildByName = function(t) {
                        for (var e = 0; e < this.children.length; e++)
                            if (this.children[e].name === t) return this.children[e];
                        return null
                    }
                }, {
                    "../core": 64
                }],
                139: [function(t, e, n) {
                    "use strict";
                    var r = t("../core"),
                        i = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(r);
                    i.DisplayObject.prototype.getGlobalPosition = function() {
                        var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new i.Point,
                            e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
                        return this.parent ? this.parent.toGlobal(this.position, t, e) : (t.x = this.position.x, t.y = this.position.y), t
                    }
                }, {
                    "../core": 64
                }],
                140: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0, n.BitmapText = n.TilingSpriteRenderer = n.TilingSprite = n.TextureTransform = n.AnimatedSprite = void 0;
                    var i = t("./AnimatedSprite");
                    Object.defineProperty(n, "AnimatedSprite", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./TextureTransform");
                    Object.defineProperty(n, "TextureTransform", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    });
                    var a = t("./TilingSprite");
                    Object.defineProperty(n, "TilingSprite", {
                        enumerable: !0,
                        get: function() {
                            return r(a).default
                        }
                    });
                    var s = t("./webgl/TilingSpriteRenderer");
                    Object.defineProperty(n, "TilingSpriteRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(s).default
                        }
                    });
                    var u = t("./BitmapText");
                    Object.defineProperty(n, "BitmapText", {
                        enumerable: !0,
                        get: function() {
                            return r(u).default
                        }
                    }), t("./cacheAsBitmap"), t("./getChildByName"), t("./getGlobalPosition")
                }, {
                    "./AnimatedSprite": 133,
                    "./BitmapText": 134,
                    "./TextureTransform": 135,
                    "./TilingSprite": 136,
                    "./cacheAsBitmap": 137,
                    "./getChildByName": 138,
                    "./getGlobalPosition": 139,
                    "./webgl/TilingSpriteRenderer": 141
                }],
                141: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("../../core"),
                        s = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(a),
                        u = t("../../core/const"),
                        l = (t("path"), new s.Matrix),
                        c = function(t) {
                            function e(n) {
                                r(this, e);
                                var o = i(this, t.call(this, n));
                                return o.shader = null, o.simpleShader = null, o.quad = null, o
                            }
                            return o(e, t), e.prototype.onContextChange = function() {
                                var t = this.renderer.gl;
                                this.shader = new s.Shader(t, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n    vec2 coord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;\n    coord = (uMapCoord * vec3(coord, 1.0)).xy;\n    coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n    vec4 sample = texture2D(uSampler, coord);\n    vec4 color = vec4(uColor.rgb * uColor.a, uColor.a);\n\n    gl_FragColor = sample * color ;\n}\n"), this.simpleShader = new s.Shader(t, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n    vec4 sample = texture2D(uSampler, vTextureCoord);\n    vec4 color = vec4(uColor.rgb * uColor.a, uColor.a);\n    gl_FragColor = sample * color;\n}\n"), this.renderer.bindVao(null), this.quad = new s.Quad(t, this.renderer.state.attribState), this.quad.initVao(this.shader)
                            }, e.prototype.render = function(t) {
                                var e = this.renderer,
                                    n = this.quad;
                                e.bindVao(n.vao);
                                var r = n.vertices;
                                r[0] = r[6] = t._width * -t.anchor.x, r[1] = r[3] = t._height * -t.anchor.y, r[2] = r[4] = t._width * (1 - t.anchor.x), r[5] = r[7] = t._height * (1 - t.anchor.y), t.uvRespectAnchor && (r = n.uvs, r[0] = r[6] = -t.anchor.x, r[1] = r[3] = -t.anchor.y, r[2] = r[4] = 1 - t.anchor.x, r[5] = r[7] = 1 - t.anchor.y), n.upload();
                                var i = t._texture,
                                    o = i.baseTexture,
                                    a = t.tileTransform.localTransform,
                                    c = t.uvTransform,
                                    h = o.isPowerOfTwo && i.frame.width === o.width && i.frame.height === o.height;
                                h && (o._glTextures[e.CONTEXT_UID] ? h = o.wrapMode !== u.WRAP_MODES.CLAMP : o.wrapMode === u.WRAP_MODES.CLAMP && (o.wrapMode = u.WRAP_MODES.REPEAT));
                                var d = h ? this.simpleShader : this.shader;
                                e.bindShader(d);
                                var f = i.width,
                                    p = i.height,
                                    g = t._width,
                                    m = t._height;
                                l.set(a.a * f / g, a.b * f / m, a.c * p / g, a.d * p / m, a.tx / g, a.ty / m), l.invert(), h ? l.prepend(c.mapCoord) : (d.uniforms.uMapCoord = c.mapCoord.toArray(!0), d.uniforms.uClampFrame = c.uClampFrame, d.uniforms.uClampOffset = c.uClampOffset), d.uniforms.uTransform = l.toArray(!0), d.uniforms.uColor = s.utils.premultiplyTintToRgba(t.tint, t.worldAlpha, d.uniforms.uColor, o.premultipliedAlpha), d.uniforms.translationMatrix = t.transform.worldTransform.toArray(!0), d.uniforms.uSampler = e.bindTexture(i), e.setBlendMode(s.utils.correctBlendMode(t.blendMode, o.premultipliedAlpha)), n.vao.draw(this.renderer.gl.TRIANGLES, 6, 0)
                            }, e
                        }(s.ObjectRenderer);
                    n.default = c, s.WebGLRenderer.registerPlugin("tilingSprite", c)
                }, {
                    "../../core": 64,
                    "../../core/const": 45,
                    path: 22
                }],
                142: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../../core"),
                        l = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(u),
                        c = t("./BlurXFilter"),
                        h = r(c),
                        d = t("./BlurYFilter"),
                        f = r(d),
                        p = function(t) {
                            function e(n, r, a, s) {
                                i(this, e);
                                var u = o(this, t.call(this));
                                return u.blurXFilter = new h.default(n, r, a, s), u.blurYFilter = new f.default(n, r, a, s), u.padding = 0, u.resolution = a || l.settings.RESOLUTION, u.quality = r || 4, u.blur = n || 8, u
                            }
                            return a(e, t), e.prototype.apply = function(t, e, n) {
                                var r = t.getRenderTarget(!0);
                                this.blurXFilter.apply(t, e, r, !0),
                                    this.blurYFilter.apply(t, r, n, !1), t.returnRenderTarget(r)
                            }, s(e, [{
                                key: "blur",
                                get: function() {
                                    return this.blurXFilter.blur
                                },
                                set: function(t) {
                                    this.blurXFilter.blur = this.blurYFilter.blur = t, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
                                }
                            }, {
                                key: "quality",
                                get: function() {
                                    return this.blurXFilter.quality
                                },
                                set: function(t) {
                                    this.blurXFilter.quality = this.blurYFilter.quality = t
                                }
                            }, {
                                key: "blurX",
                                get: function() {
                                    return this.blurXFilter.blur
                                },
                                set: function(t) {
                                    this.blurXFilter.blur = t, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
                                }
                            }, {
                                key: "blurY",
                                get: function() {
                                    return this.blurYFilter.blur
                                },
                                set: function(t) {
                                    this.blurYFilter.blur = t, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
                                }
                            }]), e
                        }(l.Filter);
                    n.default = p
                }, {
                    "../../core": 64,
                    "./BlurXFilter": 143,
                    "./BlurYFilter": 144
                }],
                143: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../../core"),
                        l = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(u),
                        c = t("./generateBlurVertSource"),
                        h = r(c),
                        d = t("./generateBlurFragSource"),
                        f = r(d),
                        p = t("./getMaxBlurKernelSize"),
                        g = r(p),
                        m = function(t) {
                            function e(n, r, a, s) {
                                i(this, e), s = s || 5;
                                var u = (0, h.default)(s, !0),
                                    c = (0, f.default)(s),
                                    d = o(this, t.call(this, u, c));
                                return d.resolution = a || l.settings.RESOLUTION, d._quality = 0, d.quality = r || 4, d.strength = n || 8, d.firstRun = !0, d
                            }
                            return a(e, t), e.prototype.apply = function(t, e, n, r) {
                                if (this.firstRun) {
                                    var i = t.renderer.gl,
                                        o = (0, g.default)(i);
                                    this.vertexSrc = (0, h.default)(o, !0), this.fragmentSrc = (0, f.default)(o), this.firstRun = !1
                                }
                                if (this.uniforms.strength = 1 / n.size.width * (n.size.width / e.size.width), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, 1 === this.passes) t.applyFilter(this, e, n, r);
                                else {
                                    for (var a = t.getRenderTarget(!0), s = e, u = a, l = 0; l < this.passes - 1; l++) {
                                        t.applyFilter(this, s, u, !0);
                                        var c = u;
                                        u = s, s = c
                                    }
                                    t.applyFilter(this, s, n, r), t.returnRenderTarget(a)
                                }
                            }, s(e, [{
                                key: "blur",
                                get: function() {
                                    return this.strength
                                },
                                set: function(t) {
                                    this.padding = 2 * Math.abs(t), this.strength = t
                                }
                            }, {
                                key: "quality",
                                get: function() {
                                    return this._quality
                                },
                                set: function(t) {
                                    this._quality = t, this.passes = t
                                }
                            }]), e
                        }(l.Filter);
                    n.default = m
                }, {
                    "../../core": 64,
                    "./generateBlurFragSource": 145,
                    "./generateBlurVertSource": 146,
                    "./getMaxBlurKernelSize": 147
                }],
                144: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        u = t("../../core"),
                        l = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(u),
                        c = t("./generateBlurVertSource"),
                        h = r(c),
                        d = t("./generateBlurFragSource"),
                        f = r(d),
                        p = t("./getMaxBlurKernelSize"),
                        g = r(p),
                        m = function(t) {
                            function e(n, r, a, s) {
                                i(this, e), s = s || 5;
                                var u = (0, h.default)(s, !1),
                                    c = (0, f.default)(s),
                                    d = o(this, t.call(this, u, c));
                                return d.resolution = a || l.settings.RESOLUTION, d._quality = 0, d.quality = r || 4, d.strength = n || 8, d.firstRun = !0, d
                            }
                            return a(e, t), e.prototype.apply = function(t, e, n, r) {
                                if (this.firstRun) {
                                    var i = t.renderer.gl,
                                        o = (0, g.default)(i);
                                    this.vertexSrc = (0, h.default)(o, !1), this.fragmentSrc = (0, f.default)(o), this.firstRun = !1
                                }
                                if (this.uniforms.strength = 1 / n.size.height * (n.size.height / e.size.height), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, 1 === this.passes) t.applyFilter(this, e, n, r);
                                else {
                                    for (var a = t.getRenderTarget(!0), s = e, u = a, l = 0; l < this.passes - 1; l++) {
                                        t.applyFilter(this, s, u, !0);
                                        var c = u;
                                        u = s, s = c
                                    }
                                    t.applyFilter(this, s, n, r), t.returnRenderTarget(a)
                                }
                            }, s(e, [{
                                key: "blur",
                                get: function() {
                                    return this.strength
                                },
                                set: function(t) {
                                    this.padding = 2 * Math.abs(t), this.strength = t
                                }
                            }, {
                                key: "quality",
                                get: function() {
                                    return this._quality
                                },
                                set: function(t) {
                                    this._quality = t, this.passes = t
                                }
                            }]), e
                        }(l.Filter);
                    n.default = m
                }, {
                    "../../core": 64,
                    "./generateBlurFragSource": 145,
                    "./generateBlurVertSource": 146,
                    "./getMaxBlurKernelSize": 147
                }],
                145: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        for (var e = i[t], n = e.length, r = o, a = "", s = "gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;", u = void 0, l = 0; l < t; l++) {
                            var c = s.replace("%index%", l);
                            u = l, l >= n && (u = t - l - 1), c = c.replace("%value%", e[u]), a += c, a += "\n"
                        }
                        return r = r.replace("%blur%", a), r = r.replace("%size%", t)
                    }
                    n.__esModule = !0, n.default = r;
                    var i = {
                            5: [.153388, .221461, .250301],
                            7: [.071303, .131514, .189879, .214607],
                            9: [.028532, .067234, .124009, .179044, .20236],
                            11: [.0093, .028002, .065984, .121703, .175713, .198596],
                            13: [.002406, .009255, .027867, .065666, .121117, .174868, .197641],
                            15: [489e-6, .002403, .009246, .02784, .065602, .120999, .174697, .197448]
                        },
                        o = ["varying vec2 vBlurTexCoords[%size%];", "uniform sampler2D uSampler;", "void main(void)", "{", "    gl_FragColor = vec4(0.0);", "    %blur%", "}"].join("\n")
                }, {}],
                146: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        var n = Math.ceil(t / 2),
                            r = i,
                            o = "",
                            a = void 0;
                        a = e ? "vBlurTexCoords[%index%] = aTextureCoord + vec2(%sampleIndex% * strength, 0.0);" : "vBlurTexCoords[%index%] = aTextureCoord + vec2(0.0, %sampleIndex% * strength);";
                        for (var s = 0; s < t; s++) {
                            var u = a.replace("%index%", s);
                            u = u.replace("%sampleIndex%", s - (n - 1) + ".0"), o += u, o += "\n"
                        }
                        return r = r.replace("%blur%", o), r = r.replace("%size%", t)
                    }
                    n.__esModule = !0, n.default = r;
                    var i = ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "uniform float strength;", "uniform mat3 projectionMatrix;", "varying vec2 vBlurTexCoords[%size%];", "void main(void)", "{", "gl_Position = vec4((projectionMatrix * vec3((aVertexPosition), 1.0)).xy, 0.0, 1.0);", "%blur%", "}"].join("\n")
                }, {}],
                147: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        for (var e = t.getParameter(t.MAX_VARYING_VECTORS), n = 15; n > e;) n -= 2;
                        return n
                    }
                    n.__esModule = !0, n.default = r
                }, {}],
                148: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = (t("path"), function(t) {
                            function e() {
                                r(this, e);
                                var n = i(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float m[20];\nuniform float uAlpha;\n\nvoid main(void)\n{\n    vec4 c = texture2D(uSampler, vTextureCoord);\n\n    if (uAlpha == 0.0) {\n        gl_FragColor = c;\n        return;\n    }\n\n    // Un-premultiply alpha before applying the color matrix. See issue #3539.\n    if (c.a > 0.0) {\n      c.rgb /= c.a;\n    }\n\n    vec4 result;\n\n    result.r = (m[0] * c.r);\n        result.r += (m[1] * c.g);\n        result.r += (m[2] * c.b);\n        result.r += (m[3] * c.a);\n        result.r += m[4];\n\n    result.g = (m[5] * c.r);\n        result.g += (m[6] * c.g);\n        result.g += (m[7] * c.b);\n        result.g += (m[8] * c.a);\n        result.g += m[9];\n\n    result.b = (m[10] * c.r);\n       result.b += (m[11] * c.g);\n       result.b += (m[12] * c.b);\n       result.b += (m[13] * c.a);\n       result.b += m[14];\n\n    result.a = (m[15] * c.r);\n       result.a += (m[16] * c.g);\n       result.a += (m[17] * c.b);\n       result.a += (m[18] * c.a);\n       result.a += m[19];\n\n    vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n    // Premultiply alpha again.\n    rgb *= result.a;\n\n    gl_FragColor = vec4(rgb, result.a);\n}\n"));
                                return n.uniforms.m = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], n.alpha = 1, n
                            }
                            return o(e, t), e.prototype._loadMatrix = function(t) {
                                var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
                                    n = t;
                                e && (this._multiply(n, this.uniforms.m, t), n = this._colorMatrix(n)), this.uniforms.m = n
                            }, e.prototype._multiply = function(t, e, n) {
                                return t[0] = e[0] * n[0] + e[1] * n[5] + e[2] * n[10] + e[3] * n[15], t[1] = e[0] * n[1] + e[1] * n[6] + e[2] * n[11] + e[3] * n[16], t[2] = e[0] * n[2] + e[1] * n[7] + e[2] * n[12] + e[3] * n[17], t[3] = e[0] * n[3] + e[1] * n[8] + e[2] * n[13] + e[3] * n[18], t[4] = e[0] * n[4] + e[1] * n[9] + e[2] * n[14] + e[3] * n[19] + e[4], t[5] = e[5] * n[0] + e[6] * n[5] + e[7] * n[10] + e[8] * n[15], t[6] = e[5] * n[1] + e[6] * n[6] + e[7] * n[11] + e[8] * n[16], t[7] = e[5] * n[2] + e[6] * n[7] + e[7] * n[12] + e[8] * n[17], t[8] = e[5] * n[3] + e[6] * n[8] + e[7] * n[13] + e[8] * n[18], t[9] = e[5] * n[4] + e[6] * n[9] + e[7] * n[14] + e[8] * n[19] + e[9], t[10] = e[10] * n[0] + e[11] * n[5] + e[12] * n[10] + e[13] * n[15], t[11] = e[10] * n[1] + e[11] * n[6] + e[12] * n[11] + e[13] * n[16], t[12] = e[10] * n[2] + e[11] * n[7] + e[12] * n[12] + e[13] * n[17], t[13] = e[10] * n[3] + e[11] * n[8] + e[12] * n[13] + e[13] * n[18], t[14] = e[10] * n[4] + e[11] * n[9] + e[12] * n[14] + e[13] * n[19] + e[14], t[15] = e[15] * n[0] + e[16] * n[5] + e[17] * n[10] + e[18] * n[15], t[16] = e[15] * n[1] + e[16] * n[6] + e[17] * n[11] + e[18] * n[16], t[17] = e[15] * n[2] + e[16] * n[7] + e[17] * n[12] + e[18] * n[17], t[18] = e[15] * n[3] + e[16] * n[8] + e[17] * n[13] + e[18] * n[18], t[19] = e[15] * n[4] + e[16] * n[9] + e[17] * n[14] + e[18] * n[19] + e[19], t
                            }, e.prototype._colorMatrix = function(t) {
                                var e = new Float32Array(t);
                                return e[4] /= 255, e[9] /= 255, e[14] /= 255, e[19] /= 255, e
                            }, e.prototype.brightness = function(t, e) {
                                var n = [t, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(n, e)
                            }, e.prototype.greyscale = function(t, e) {
                                var n = [t, t, t, 0, 0, t, t, t, 0, 0, t, t, t, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(n, e)
                            }, e.prototype.blackAndWhite = function(t) {
                                var e = [.3, .6, .1, 0, 0, .3, .6, .1, 0, 0, .3, .6, .1, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.hue = function(t, e) {
                                t = (t || 0) / 180 * Math.PI;
                                var n = Math.cos(t),
                                    r = Math.sin(t),
                                    i = Math.sqrt,
                                    o = 1 / 3,
                                    a = i(o),
                                    s = n + (1 - n) * o,
                                    u = o * (1 - n) - a * r,
                                    l = o * (1 - n) + a * r,
                                    c = o * (1 - n) + a * r,
                                    h = n + o * (1 - n),
                                    d = o * (1 - n) - a * r,
                                    f = o * (1 - n) - a * r,
                                    p = o * (1 - n) + a * r,
                                    g = n + o * (1 - n),
                                    m = [s, u, l, 0, 0, c, h, d, 0, 0, f, p, g, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(m, e)
                            }, e.prototype.contrast = function(t, e) {
                                var n = (t || 0) + 1,
                                    r = -128 * (n - 1),
                                    i = [n, 0, 0, 0, r, 0, n, 0, 0, r, 0, 0, n, 0, r, 0, 0, 0, 1, 0];
                                this._loadMatrix(i, e)
                            }, e.prototype.saturate = function() {
                                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                                    e = arguments[1],
                                    n = 2 * t / 3 + 1,
                                    r = -.5 * (n - 1),
                                    i = [n, r, r, 0, 0, r, n, r, 0, 0, r, r, n, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(i, e)
                            }, e.prototype.desaturate = function() {
                                this.saturate(-1)
                            }, e.prototype.negative = function(t) {
                                var e = [0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.sepia = function(t) {
                                var e = [.393, .7689999, .18899999, 0, 0, .349, .6859999, .16799999, 0, 0, .272, .5339999, .13099999, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.technicolor = function(t) {
                                var e = [1.9125277891456083, -.8545344976951645, -.09155508482755585, 0, 11.793603434377337, -.3087833385928097, 1.7658908555458428, -.10601743074722245, 0, -70.35205161461398, -.231103377548616, -.7501899197440212, 1.847597816108189, 0, 30.950940869491138, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.polaroid = function(t) {
                                var e = [1.438, -.062, -.062, 0, 0, -.122, 1.378, -.122, 0, 0, -.016, -.016, 1.483, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.toBGR = function(t) {
                                var e = [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.kodachrome = function(t) {
                                var e = [1.1285582396593525, -.3967382283601348, -.03992559172921793, 0, 63.72958762196502, -.16404339962244616, 1.0835251566291304, -.05498805115633132, 0, 24.732407896706203, -.16786010706155763, -.5603416277695248, 1.6014850761964943, 0, 35.62982807460946, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.browni = function(t) {
                                var e = [.5997023498159715, .34553243048391263, -.2708298674538042, 0, 47.43192855600873, -.037703249837783157, .8609577587992641, .15059552388459913, 0, -36.96841498319127, .24113635128153335, -.07441037908422492, .44972182064877153, 0, -7.562075277591283, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.vintage = function(t) {
                                var e = [.6279345635605994, .3202183420819367, -.03965408211312453, 0, 9.651285835294123, .02578397704808868, .6441188644374771, .03259127616149294, 0, 7.462829176470591, .0466055556782719, -.0851232987247891, .5241648018700465, 0, 5.159190588235296, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.colorTone = function(t, e, n, r, i) {
                                t = t || .2, e = e || .15, n = n || 16770432, r = r || 3375104;
                                var o = (n >> 16 & 255) / 255,
                                    a = (n >> 8 & 255) / 255,
                                    s = (255 & n) / 255,
                                    u = (r >> 16 & 255) / 255,
                                    l = (r >> 8 & 255) / 255,
                                    c = (255 & r) / 255,
                                    h = [.3, .59, .11, 0, 0, o, a, s, t, 0, u, l, c, e, 0, o - u, a - l, s - c, 0, 0];
                                this._loadMatrix(h, i)
                            }, e.prototype.night = function(t, e) {
                                t = t || .1;
                                var n = [-2 * t, -t, 0, 0, 0, -t, 0, t, 0, 0, 0, t, 2 * t, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(n, e)
                            }, e.prototype.predator = function(t, e) {
                                var n = [11.224130630493164 * t, -4.794486999511719 * t, -2.8746118545532227 * t, 0 * t, .40342438220977783 * t, -3.6330697536468506 * t, 9.193157196044922 * t, -2.951810836791992 * t, 0 * t, -1.316135048866272 * t, -3.2184197902679443 * t, -4.2375030517578125 * t, 7.476448059082031 * t, 0 * t, .8044459223747253 * t, 0, 0, 0, 1, 0];
                                this._loadMatrix(n, e)
                            }, e.prototype.lsd = function(t) {
                                var e = [2, -.4, .5, 0, 0, -.5, 2, -.4, 0, 0, -.4, -.5, 3, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(e, t)
                            }, e.prototype.reset = function() {
                                var t = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
                                this._loadMatrix(t, !1)
                            }, a(e, [{
                                key: "matrix",
                                get: function() {
                                    return this.uniforms.m
                                },
                                set: function(t) {
                                    this.uniforms.m = t
                                }
                            }, {
                                key: "alpha",
                                get: function() {
                                    return this.uniforms.uAlpha
                                },
                                set: function(t) {
                                    this.uniforms.uAlpha = t
                                }
                            }]), e
                        }(u.Filter));
                    n.default = l, l.prototype.grayscale = l.prototype.greyscale
                }, {
                    "../../core": 64,
                    path: 22
                }],
                149: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = (t("path"), function(t) {
                            function e(n, o) {
                                r(this, e);
                                var a = new u.Matrix;
                                n.renderable = !1;
                                var s = i(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 filterMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vFilterCoord;\n\nvoid main(void)\n{\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n   vFilterCoord = ( filterMatrix * vec3( aTextureCoord, 1.0)  ).xy;\n   vTextureCoord = aTextureCoord;\n}", "varying vec2 vFilterCoord;\nvarying vec2 vTextureCoord;\n\nuniform vec2 scale;\n\nuniform sampler2D uSampler;\nuniform sampler2D mapSampler;\n\nuniform vec4 filterClamp;\n\nvoid main(void)\n{\n   vec4 map =  texture2D(mapSampler, vFilterCoord);\n\n   map -= 0.5;\n   map.xy *= scale;\n\n   gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), filterClamp.xy, filterClamp.zw));\n}\n"));
                                return s.maskSprite = n, s.maskMatrix = a, s.uniforms.mapSampler = n._texture, s.uniforms.filterMatrix = a, s.uniforms.scale = {
                                    x: 1,
                                    y: 1
                                }, null !== o && void 0 !== o || (o = 20), s.scale = new u.Point(o, o), s
                            }
                            return o(e, t), e.prototype.apply = function(t, e, n) {
                                var r = 1 / n.destinationFrame.width * (n.size.width / e.size.width);
                                this.uniforms.filterMatrix = t.calculateSpriteMatrix(this.maskMatrix, this.maskSprite), this.uniforms.scale.x = this.scale.x * r, this.uniforms.scale.y = this.scale.y * r, t.applyFilter(this, e, n)
                            }, a(e, [{
                                key: "map",
                                get: function() {
                                    return this.uniforms.mapSampler
                                },
                                set: function(t) {
                                    this.uniforms.mapSampler = t
                                }
                            }]), e
                        }(u.Filter));
                    n.default = l
                }, {
                    "../../core": 64,
                    path: 22
                }],
                150: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("../../core"),
                        s = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(a),
                        u = (t("path"), function(t) {
                            function e() {
                                return r(this, e), i(this, t.call(this, "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nuniform vec4 filterArea;\n\nvarying vec2 vTextureCoord;\n\nvec2 mapCoord( vec2 coord )\n{\n    coord *= filterArea.xy;\n    coord += filterArea.zw;\n\n    return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n    coord -= filterArea.zw;\n    coord /= filterArea.xy;\n\n    return coord;\n}\n\nvoid texcoords(vec2 fragCoord, vec2 resolution,\n               out vec2 v_rgbNW, out vec2 v_rgbNE,\n               out vec2 v_rgbSW, out vec2 v_rgbSE,\n               out vec2 v_rgbM) {\n    vec2 inverseVP = 1.0 / resolution.xy;\n    v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\n    v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\n    v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\n    v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\n    v_rgbM = vec2(fragCoord * inverseVP);\n}\n\nvoid main(void) {\n\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n   vTextureCoord = aTextureCoord;\n\n   vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n   texcoords(fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n}", 'varying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\n/**\n Basic FXAA implementation based on the code on geeks3d.com with the\n modification that the texture2DLod stuff was removed since it\'s\n unsupported by WebGL.\n \n --\n \n From:\n https://github.com/mitsuhiko/webgl-meincraft\n \n Copyright (c) 2011 by Armin Ronacher.\n \n Some rights reserved.\n \n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n \n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials provided\n with the distribution.\n \n * The names of the contributors may not be used to endorse or\n promote products derived from this software without specific\n prior written permission.\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#ifndef FXAA_REDUCE_MIN\n#define FXAA_REDUCE_MIN   (1.0/ 128.0)\n#endif\n#ifndef FXAA_REDUCE_MUL\n#define FXAA_REDUCE_MUL   (1.0 / 8.0)\n#endif\n#ifndef FXAA_SPAN_MAX\n#define FXAA_SPAN_MAX     8.0\n#endif\n\n//optimized version for mobile, where dependent\n//texture reads can be a bottleneck\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 resolution,\n          vec2 v_rgbNW, vec2 v_rgbNE,\n          vec2 v_rgbSW, vec2 v_rgbSE,\n          vec2 v_rgbM) {\n    vec4 color;\n    mediump vec2 inverseVP = vec2(1.0 / resolution.x, 1.0 / resolution.y);\n    vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;\n    vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;\n    vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;\n    vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;\n    vec4 texColor = texture2D(tex, v_rgbM);\n    vec3 rgbM  = texColor.xyz;\n    vec3 luma = vec3(0.299, 0.587, 0.114);\n    float lumaNW = dot(rgbNW, luma);\n    float lumaNE = dot(rgbNE, luma);\n    float lumaSW = dot(rgbSW, luma);\n    float lumaSE = dot(rgbSE, luma);\n    float lumaM  = dot(rgbM,  luma);\n    float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n    float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n    \n    mediump vec2 dir;\n    dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n    dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n    \n    float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\n                          (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\n    \n    float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\n    dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n              max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n                  dir * rcpDirMin)) * inverseVP;\n    \n    vec3 rgbA = 0.5 * (\n                       texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\n                       texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\n    vec3 rgbB = rgbA * 0.5 + 0.25 * (\n                                     texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +\n                                     texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\n    \n    float lumaB = dot(rgbB, luma);\n    if ((lumaB < lumaMin) || (lumaB > lumaMax))\n        color = vec4(rgbA, texColor.a);\n    else\n        color = vec4(rgbB, texColor.a);\n    return color;\n}\n\nvoid main() {\n\n      vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n      vec4 color;\n\n    color = fxaa(uSampler, fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n      gl_FragColor = color;\n}\n'))
                            }
                            return o(e, t), e
                        }(s.Filter));
                    n.default = u
                }, {
                    "../../core": 64,
                    path: 22
                }],
                151: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./fxaa/FXAAFilter");
                    Object.defineProperty(n, "FXAAFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./noise/NoiseFilter");
                    Object.defineProperty(n, "NoiseFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    });
                    var a = t("./displacement/DisplacementFilter");
                    Object.defineProperty(n, "DisplacementFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(a).default
                        }
                    });
                    var s = t("./blur/BlurFilter");
                    Object.defineProperty(n, "BlurFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(s).default
                        }
                    });
                    var u = t("./blur/BlurXFilter");
                    Object.defineProperty(n, "BlurXFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(u).default
                        }
                    });
                    var l = t("./blur/BlurYFilter");
                    Object.defineProperty(n, "BlurYFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(l).default
                        }
                    });
                    var c = t("./colormatrix/ColorMatrixFilter");
                    Object.defineProperty(n, "ColorMatrixFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(c).default
                        }
                    });
                    var h = t("./void/VoidFilter");
                    Object.defineProperty(n, "VoidFilter", {
                        enumerable: !0,
                        get: function() {
                            return r(h).default
                        }
                    })
                }, {
                    "./blur/BlurFilter": 142,
                    "./blur/BlurXFilter": 143,
                    "./blur/BlurYFilter": 144,
                    "./colormatrix/ColorMatrixFilter": 148,
                    "./displacement/DisplacementFilter": 149,
                    "./fxaa/FXAAFilter": 150,
                    "./noise/NoiseFilter": 152,
                    "./void/VoidFilter": 153
                }],
                152: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = (t("path"), function(t) {
                            function e() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5,
                                    o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Math.random();
                                r(this, e);
                                var a = i(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "precision highp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uSampler;\n\nfloat rand(vec2 co)\n{\n    return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n    vec4 color = texture2D(uSampler, vTextureCoord);\n    float randomValue = rand(gl_FragCoord.xy * uSeed);\n    float diff = (randomValue - 0.5) * uNoise;\n\n    // Un-premultiply alpha before applying the color matrix. See issue #3539.\n    if (color.a > 0.0) {\n        color.rgb /= color.a;\n    }\n\n    color.r += diff;\n    color.g += diff;\n    color.b += diff;\n\n    // Premultiply alpha again.\n    color.rgb *= color.a;\n\n    gl_FragColor = color;\n}\n"));
                                return a.noise = n, a.seed = o, a
                            }
                            return o(e, t), a(e, [{
                                key: "noise",
                                get: function() {
                                    return this.uniforms.uNoise
                                },
                                set: function(t) {
                                    this.uniforms.uNoise = t
                                }
                            }, {
                                key: "seed",
                                get: function() {
                                    return this.uniforms.uSeed
                                },
                                set: function(t) {
                                    this.uniforms.uSeed = t
                                }
                            }]), e
                        }(u.Filter));
                    n.default = l
                }, {
                    "../../core": 64,
                    path: 22
                }],
                153: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("../../core"),
                        s = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(a),
                        u = (t("path"), function(t) {
                            function e() {
                                r(this, e);
                                var n = i(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n   gl_FragColor = texture2D(uSampler, vTextureCoord);\n}\n"));
                                return n.glShaderKey = "void", n
                            }
                            return o(e, t), e
                        }(s.Filter));
                    n.default = u
                }, {
                    "../../core": 64,
                    path: 22
                }],
                154: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        o = t("../core"),
                        a = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(o),
                        s = function() {
                            function t() {
                                r(this, t), this.global = new a.Point, this.target = null, this.originalEvent = null, this.identifier = null, this.isPrimary = !1, this.button = 0, this.buttons = 0, this.width = 0, this.height = 0, this.tiltX = 0, this.tiltY = 0, this.pointerType = null, this.pressure = 0, this.rotationAngle = 0, this.twist = 0, this.tangentialPressure = 0
                            }
                            return t.prototype.getLocalPosition = function(t, e, n) {
                                return t.worldTransform.applyInverse(n || this.global, e)
                            }, t.prototype._copyEvent = function(t) {
                                t.isPrimary && (this.isPrimary = !0), this.button = t.button, this.buttons = t.buttons, this.width = t.width, this.height = t.height, this.tiltX = t.tiltX, this.tiltY = t.tiltY, this.pointerType = t.pointerType, this.pressure = t.pressure, this.rotationAngle = t.rotationAngle, this.twist = t.twist || 0, this.tangentialPressure = t.tangentialPressure || 0
                            }, t.prototype._reset = function() {
                                this.isPrimary = !1
                            }, i(t, [{
                                key: "pointerId",
                                get: function() {
                                    return this.identifier
                                }
                            }]), t
                        }();
                    n.default = s
                }, {
                    "../core": 64
                }],
                155: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t() {
                            r(this, t), this.stopped = !1, this.target = null, this.currentTarget = null, this.type = null, this.data = null
                        }
                        return t.prototype.stopPropagation = function() {
                            this.stopped = !0
                        }, t.prototype._reset = function() {
                            this.stopped = !1, this.currentTarget = null, this.target = null
                        }, t
                    }();
                    n.default = i
                }, {}],
                156: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                            return typeof t
                        } : function(t) {
                            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                        },
                        u = t("../core"),
                        l = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(u),
                        c = t("./InteractionData"),
                        h = r(c),
                        d = t("./InteractionEvent"),
                        f = r(d),
                        p = t("./InteractionTrackingData"),
                        g = r(p),
                        m = t("eventemitter3"),
                        y = r(m),
                        b = t("./interactiveTarget"),
                        v = r(b);
                    l.utils.mixins.delayMixin(l.DisplayObject.prototype, v.default);
                    var _ = "MOUSE",
                        x = {
                            target: null,
                            data: {
                                global: null
                            }
                        },
                        T = function(t) {
                            function e(n, r) {
                                i(this, e);
                                var a = o(this, t.call(this));
                                return r = r || {}, a.renderer = n, a.autoPreventDefault = void 0 === r.autoPreventDefault || r.autoPreventDefault, a.interactionFrequency = r.interactionFrequency || 10, a.mouse = new h.default, a.mouse.identifier = _, a.mouse.global.set(-999999), a.activeInteractionData = {}, a.activeInteractionData[_] = a.mouse, a.interactionDataPool = [], a.eventData = new f.default, a.interactionDOMElement = null, a.moveWhenInside = !1, a.eventsAdded = !1, a.mouseOverRenderer = !1, a.supportsTouchEvents = "ontouchstart" in window, a.supportsPointerEvents = !!window.PointerEvent, a.onPointerUp = a.onPointerUp.bind(a), a.processPointerUp = a.processPointerUp.bind(a), a.onPointerCancel = a.onPointerCancel.bind(a), a.processPointerCancel = a.processPointerCancel.bind(a), a.onPointerDown = a.onPointerDown.bind(a), a.processPointerDown = a.processPointerDown.bind(a), a.onPointerMove = a.onPointerMove.bind(a), a.processPointerMove = a.processPointerMove.bind(a), a.onPointerOut = a.onPointerOut.bind(a), a.processPointerOverOut = a.processPointerOverOut.bind(a), a.onPointerOver = a.onPointerOver.bind(a), a.cursorStyles = {
                                    default: "inherit",
                                    pointer: "pointer"
                                }, a.currentCursorMode = null, a.cursor = null, a._tempPoint = new l.Point, a.resolution = 1, a.setTargetElement(a.renderer.view, a.renderer.resolution), a
                            }
                            return a(e, t), e.prototype.hitTest = function(t, e) {
                                return x.target = null, x.data.global = t, e || (e = this.renderer._lastObjectRendered), this.processInteractive(x, e, null, !0), x.target
                            }, e.prototype.setTargetElement = function(t) {
                                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
                                this.removeEvents(), this.interactionDOMElement = t, this.resolution = e, this.addEvents()
                            }, e.prototype.addEvents = function() {
                                this.interactionDOMElement && (l.ticker.shared.add(this.update, this, l.UPDATE_PRIORITY.INTERACTION), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "none", this.interactionDOMElement.style["-ms-touch-action"] = "none") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = "none"), this.supportsPointerEvents ? (window.document.addEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("pointerover", this.onPointerOver, !0), window.addEventListener("pointercancel", this.onPointerCancel, !0), window.addEventListener("pointerup", this.onPointerUp, !0)) : (window.document.addEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("mouseover", this.onPointerOver, !0), window.addEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.addEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.addEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.addEventListener("touchmove", this.onPointerMove, !0)), this.eventsAdded = !0)
                            }, e.prototype.removeEvents = function() {
                                this.interactionDOMElement && (l.ticker.shared.remove(this.update, this), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "", this.interactionDOMElement.style["-ms-touch-action"] = "") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = ""), this.supportsPointerEvents ? (window.document.removeEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("pointerover", this.onPointerOver, !0), window.removeEventListener("pointercancel", this.onPointerCancel, !0), window.removeEventListener("pointerup", this.onPointerUp, !0)) : (window.document.removeEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("mouseover", this.onPointerOver, !0), window.removeEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.removeEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.removeEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.removeEventListener("touchmove", this.onPointerMove, !0)), this.interactionDOMElement = null, this.eventsAdded = !1)
                            }, e.prototype.update = function(t) {
                                if (this._deltaTime += t, !(this._deltaTime < this.interactionFrequency) && (this._deltaTime = 0, this.interactionDOMElement)) {
                                    if (this.didMove) return void(this.didMove = !1);
                                    this.cursor = null;
                                    for (var e in this.activeInteractionData)
                                        if (this.activeInteractionData.hasOwnProperty(e)) {
                                            var n = this.activeInteractionData[e];
                                            if (n.originalEvent && "touch" !== n.pointerType) {
                                                var r = this.configureInteractionEventForDOMEvent(this.eventData, n.originalEvent, n);
                                                this.processInteractive(r, this.renderer._lastObjectRendered, this.processPointerOverOut, !0)
                                            }
                                        }
                                    this.setCursorMode(this.cursor)
                                }
                            }, e.prototype.setCursorMode = function(t) {
                                if (t = t || "default", this.currentCursorMode !== t) {
                                    this.currentCursorMode = t;
                                    var e = this.cursorStyles[t];
                                    if (e) switch (void 0 === e ? "undefined" : s(e)) {
                                        case "string":
                                            this.interactionDOMElement.style.cursor = e;
                                            break;
                                        case "function":
                                            e(t);
                                            break;
                                        case "object":
                                            Object.assign(this.interactionDOMElement.style, e)
                                    } else "string" != typeof t || Object.prototype.hasOwnProperty.call(this.cursorStyles, t) || (this.interactionDOMElement.style.cursor = t)
                                }
                            }, e.prototype.dispatchEvent = function(t, e, n) {
                                n.stopped || (n.currentTarget = t, n.type = e, t.emit(e, n), t[e] && t[e](n))
                            }, e.prototype.mapPositionToPoint = function(t, e, n) {
                                var r = void 0;
                                r = this.interactionDOMElement.parentElement ? this.interactionDOMElement.getBoundingClientRect() : {
                                    x: 0,
                                    y: 0,
                                    width: 0,
                                    height: 0
                                };
                                var i = navigator.isCocoonJS ? this.resolution : 1 / this.resolution;
                                t.x = (e - r.left) * (this.interactionDOMElement.width / r.width) * i, t.y = (n - r.top) * (this.interactionDOMElement.height / r.height) * i
                            }, e.prototype.processInteractive = function(t, e, n, r, i) {
                                if (!e || !e.visible) return !1;
                                var o = t.data.global;
                                i = e.interactive || i;
                                var a = !1,
                                    s = i;
                                if (e.hitArea ? s = !1 : r && e._mask && (e._mask.containsPoint(o) || (r = !1)), e.interactiveChildren && e.children)
                                    for (var u = e.children, l = u.length - 1; l >= 0; l--) {
                                        var c = u[l],
                                            h = this.processInteractive(t, c, n, r, s);
                                        if (h) {
                                            if (!c.parent) continue;
                                            s = !1, h && (t.target && (r = !1), a = !0)
                                        }
                                    }
                                return i && (r && !t.target && (e.hitArea ? (e.worldTransform.applyInverse(o, this._tempPoint), e.hitArea.contains(this._tempPoint.x, this._tempPoint.y) && (a = !0)) : e.containsPoint && e.containsPoint(o) && (a = !0)), e.interactive && (a && !t.target && (t.target = e), n && n(t, e, !!a))), a
                            }, e.prototype.onPointerDown = function(t) {
                                if (!this.supportsTouchEvents || "touch" !== t.pointerType) {
                                    var e = this.normalizeToPointerData(t);
                                    this.autoPreventDefault && e[0].isNormalized && t.preventDefault();
                                    for (var n = e.length, r = 0; r < n; r++) {
                                        var i = e[r],
                                            o = this.getInteractionDataForPointerId(i),
                                            a = this.configureInteractionEventForDOMEvent(this.eventData, i, o);
                                        if (a.data.originalEvent = t, this.processInteractive(a, this.renderer._lastObjectRendered, this.processPointerDown, !0), this.emit("pointerdown", a), "touch" === i.pointerType) this.emit("touchstart", a);
                                        else if ("mouse" === i.pointerType || "pen" === i.pointerType) {
                                            var s = 2 === i.button;
                                            this.emit(s ? "rightdown" : "mousedown", this.eventData)
                                        }
                                    }
                                }
                            }, e.prototype.processPointerDown = function(t, e, n) {
                                var r = t.data,
                                    i = t.data.identifier;
                                if (n)
                                    if (e.trackedPointers[i] || (e.trackedPointers[i] = new g.default(i)), this.dispatchEvent(e, "pointerdown", t), "touch" === r.pointerType) this.dispatchEvent(e, "touchstart", t);
                                    else if ("mouse" === r.pointerType || "pen" === r.pointerType) {
                                    var o = 2 === r.button;
                                    o ? e.trackedPointers[i].rightDown = !0 : e.trackedPointers[i].leftDown = !0, this.dispatchEvent(e, o ? "rightdown" : "mousedown", t)
                                }
                            }, e.prototype.onPointerComplete = function(t, e, n) {
                                for (var r = this.normalizeToPointerData(t), i = r.length, o = t.target !== this.interactionDOMElement ? "outside" : "", a = 0; a < i; a++) {
                                    var s = r[a],
                                        u = this.getInteractionDataForPointerId(s),
                                        l = this.configureInteractionEventForDOMEvent(this.eventData, s, u);
                                    if (l.data.originalEvent = t, this.processInteractive(l, this.renderer._lastObjectRendered, n, e || !o), this.emit(e ? "pointercancel" : "pointerup" + o, l), "mouse" === s.pointerType || "pen" === s.pointerType) {
                                        var c = 2 === s.button;
                                        this.emit(c ? "rightup" + o : "mouseup" + o, l)
                                    } else "touch" === s.pointerType && (this.emit(e ? "touchcancel" : "touchend" + o, l), this.releaseInteractionDataForPointerId(s.pointerId, u))
                                }
                            }, e.prototype.onPointerCancel = function(t) {
                                this.supportsTouchEvents && "touch" === t.pointerType || this.onPointerComplete(t, !0, this.processPointerCancel)
                            }, e.prototype.processPointerCancel = function(t, e) {
                                var n = t.data,
                                    r = t.data.identifier;
                                void 0 !== e.trackedPointers[r] && (delete e.trackedPointers[r], this.dispatchEvent(e, "pointercancel", t), "touch" === n.pointerType && this.dispatchEvent(e, "touchcancel", t))
                            }, e.prototype.onPointerUp = function(t) {
                                this.supportsTouchEvents && "touch" === t.pointerType || this.onPointerComplete(t, !1, this.processPointerUp)
                            }, e.prototype.processPointerUp = function(t, e, n) {
                                var r = t.data,
                                    i = t.data.identifier,
                                    o = e.trackedPointers[i],
                                    a = "touch" === r.pointerType;
                                if ("mouse" === r.pointerType || "pen" === r.pointerType) {
                                    var s = 2 === r.button,
                                        u = g.default.FLAGS,
                                        l = s ? u.RIGHT_DOWN : u.LEFT_DOWN,
                                        c = void 0 !== o && o.flags & l;
                                    n ? (this.dispatchEvent(e, s ? "rightup" : "mouseup", t), c && this.dispatchEvent(e, s ? "rightclick" : "click", t)) : c && this.dispatchEvent(e, s ? "rightupoutside" : "mouseupoutside", t), o && (s ? o.rightDown = !1 : o.leftDown = !1)
                                }
                                n ? (this.dispatchEvent(e, "pointerup", t), a && this.dispatchEvent(e, "touchend", t), o && (this.dispatchEvent(e, "pointertap", t), a && (this.dispatchEvent(e, "tap", t), o.over = !1))) : o && (this.dispatchEvent(e, "pointerupoutside", t), a && this.dispatchEvent(e, "touchendoutside", t)), o && o.none && delete e.trackedPointers[i]
                            }, e.prototype.onPointerMove = function(t) {
                                if (!this.supportsTouchEvents || "touch" !== t.pointerType) {
                                    var e = this.normalizeToPointerData(t);
                                    "mouse" === e[0].pointerType && (this.didMove = !0, this.cursor = null);
                                    for (var n = e.length, r = 0; r < n; r++) {
                                        var i = e[r],
                                            o = this.getInteractionDataForPointerId(i),
                                            a = this.configureInteractionEventForDOMEvent(this.eventData, i, o);
                                        a.data.originalEvent = t;
                                        var s = "touch" !== i.pointerType || this.moveWhenInside;
                                        this.processInteractive(a, this.renderer._lastObjectRendered, this.processPointerMove, s), this.emit("pointermove", a), "touch" === i.pointerType && this.emit("touchmove", a), "mouse" !== i.pointerType && "pen" !== i.pointerType || this.emit("mousemove", a)
                                    }
                                    "mouse" === e[0].pointerType && this.setCursorMode(this.cursor)
                                }
                            }, e.prototype.processPointerMove = function(t, e, n) {
                                var r = t.data,
                                    i = "touch" === r.pointerType,
                                    o = "mouse" === r.pointerType || "pen" === r.pointerType;
                                o && this.processPointerOverOut(t, e, n), this.moveWhenInside && !n || (this.dispatchEvent(e, "pointermove", t), i && this.dispatchEvent(e, "touchmove", t), o && this.dispatchEvent(e, "mousemove", t))
                            }, e.prototype.onPointerOut = function(t) {
                                if (!this.supportsTouchEvents || "touch" !== t.pointerType) {
                                    var e = this.normalizeToPointerData(t),
                                        n = e[0];
                                    "mouse" === n.pointerType && (this.mouseOverRenderer = !1, this.setCursorMode(null));
                                    var r = this.getInteractionDataForPointerId(n),
                                        i = this.configureInteractionEventForDOMEvent(this.eventData, n, r);
                                    i.data.originalEvent = n, this.processInteractive(i, this.renderer._lastObjectRendered, this.processPointerOverOut, !1), this.emit("pointerout", i), "mouse" === n.pointerType || "pen" === n.pointerType ? this.emit("mouseout", i) : this.releaseInteractionDataForPointerId(r.identifier)
                                }
                            }, e.prototype.processPointerOverOut = function(t, e, n) {
                                var r = t.data,
                                    i = t.data.identifier,
                                    o = "mouse" === r.pointerType || "pen" === r.pointerType,
                                    a = e.trackedPointers[i];
                                n && !a && (a = e.trackedPointers[i] = new g.default(i)), void 0 !== a && (n && this.mouseOverRenderer ? (a.over || (a.over = !0, this.dispatchEvent(e, "pointerover", t), o && this.dispatchEvent(e, "mouseover", t)), o && null === this.cursor && (this.cursor = e.cursor)) : a.over && (a.over = !1, this.dispatchEvent(e, "pointerout", this.eventData), o && this.dispatchEvent(e, "mouseout", t), a.none && delete e.trackedPointers[i]))
                            }, e.prototype.onPointerOver = function(t) {
                                var e = this.normalizeToPointerData(t),
                                    n = e[0],
                                    r = this.getInteractionDataForPointerId(n),
                                    i = this.configureInteractionEventForDOMEvent(this.eventData, n, r);
                                i.data.originalEvent = n, "mouse" === n.pointerType && (this.mouseOverRenderer = !0), this.emit("pointerover", i), "mouse" !== n.pointerType && "pen" !== n.pointerType || this.emit("mouseover", i)
                            }, e.prototype.getInteractionDataForPointerId = function(t) {
                                var e = t.pointerId,
                                    n = void 0;
                                return e === _ || "mouse" === t.pointerType ? n = this.mouse : this.activeInteractionData[e] ? n = this.activeInteractionData[e] : (n = this.interactionDataPool.pop() || new h.default, n.identifier = e, this.activeInteractionData[e] = n), n._copyEvent(t), n
                            }, e.prototype.releaseInteractionDataForPointerId = function(t) {
                                var e = this.activeInteractionData[t];
                                e && (delete this.activeInteractionData[t], e._reset(), this.interactionDataPool.push(e))
                            }, e.prototype.configureInteractionEventForDOMEvent = function(t, e, n) {
                                return t.data = n, this.mapPositionToPoint(n.global, e.clientX, e.clientY), navigator.isCocoonJS && "touch" === e.pointerType && (n.global.x = n.global.x / this.resolution, n.global.y = n.global.y / this.resolution), "touch" === e.pointerType && (e.globalX = n.global.x, e.globalY = n.global.y), n.originalEvent = e, t._reset(), t
                            }, e.prototype.normalizeToPointerData = function(t) {
                                var e = [];
                                if (this.supportsTouchEvents && t instanceof TouchEvent)
                                    for (var n = 0, r = t.changedTouches.length; n < r; n++) {
                                        var i = t.changedTouches[n];
                                        void 0 === i.button && (i.button = t.touches.length ? 1 : 0), void 0 === i.buttons && (i.buttons = t.touches.length ? 1 : 0), void 0 === i.isPrimary && (i.isPrimary = 1 === t.touches.length && "touchstart" === t.type), void 0 === i.width && (i.width = i.radiusX || 1), void 0 === i.height && (i.height = i.radiusY || 1), void 0 === i.tiltX && (i.tiltX = 0), void 0 === i.tiltY && (i.tiltY = 0), void 0 === i.pointerType && (i.pointerType = "touch"), void 0 === i.pointerId && (i.pointerId = i.identifier || 0), void 0 === i.pressure && (i.pressure = i.force || .5), i.twist = 0, i.tangentialPressure = 0, void 0 === i.layerX && (i.layerX = i.offsetX = i.clientX), void 0 === i.layerY && (i.layerY = i.offsetY = i.clientY), i.isNormalized = !0, e.push(i)
                                    } else !(t instanceof MouseEvent) || this.supportsPointerEvents && t instanceof window.PointerEvent ? e.push(t) : (void 0 === t.isPrimary && (t.isPrimary = !0), void 0 === t.width && (t.width = 1), void 0 === t.height && (t.height = 1), void 0 === t.tiltX && (t.tiltX = 0), void 0 === t.tiltY && (t.tiltY = 0), void 0 === t.pointerType && (t.pointerType = "mouse"), void 0 === t.pointerId && (t.pointerId = _), void 0 === t.pressure && (t.pressure = .5), t.twist = 0, t.tangentialPressure = 0, t.isNormalized = !0, e.push(t));
                                return e
                            }, e.prototype.destroy = function() {
                                this.removeEvents(), this.removeAllListeners(), this.renderer = null, this.mouse = null, this.eventData = null, this.interactionDOMElement = null, this.onPointerDown = null, this.processPointerDown = null, this.onPointerUp = null, this.processPointerUp = null, this.onPointerCancel = null, this.processPointerCancel = null, this.onPointerMove = null, this.processPointerMove = null, this.onPointerOut = null, this.processPointerOverOut = null, this.onPointerOver = null, this._tempPoint = null
                            }, e
                        }(y.default);
                    n.default = T, l.WebGLRenderer.registerPlugin("interaction", T), l.CanvasRenderer.registerPlugin("interaction", T)
                }, {
                    "../core": 64,
                    "./InteractionData": 154,
                    "./InteractionEvent": 155,
                    "./InteractionTrackingData": 157,
                    "./interactiveTarget": 159,
                    eventemitter3: 3
                }],
                157: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        o = function() {
                            function t(e) {
                                r(this, t), this._pointerId = e, this._flags = t.FLAGS.NONE
                            }
                            return t.prototype._doSet = function(t, e) {
                                this._flags = e ? this._flags | t : this._flags & ~t
                            }, i(t, [{
                                key: "pointerId",
                                get: function() {
                                    return this._pointerId
                                }
                            }, {
                                key: "flags",
                                get: function() {
                                    return this._flags
                                },
                                set: function(t) {
                                    this._flags = t
                                }
                            }, {
                                key: "none",
                                get: function() {
                                    return this._flags === this.constructor.FLAGS.NONE
                                }
                            }, {
                                key: "over",
                                get: function() {
                                    return 0 != (this._flags & this.constructor.FLAGS.OVER)
                                },
                                set: function(t) {
                                    this._doSet(this.constructor.FLAGS.OVER, t)
                                }
                            }, {
                                key: "rightDown",
                                get: function() {
                                    return 0 != (this._flags & this.constructor.FLAGS.RIGHT_DOWN)
                                },
                                set: function(t) {
                                    this._doSet(this.constructor.FLAGS.RIGHT_DOWN, t)
                                }
                            }, {
                                key: "leftDown",
                                get: function() {
                                    return 0 != (this._flags & this.constructor.FLAGS.LEFT_DOWN)
                                },
                                set: function(t) {
                                    this._doSet(this.constructor.FLAGS.LEFT_DOWN, t)
                                }
                            }]), t
                        }();
                    n.default = o, o.FLAGS = Object.freeze({
                        NONE: 0,
                        OVER: 1,
                        LEFT_DOWN: 2,
                        RIGHT_DOWN: 4
                    })
                }, {}],
                158: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./InteractionData");
                    Object.defineProperty(n, "InteractionData", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./InteractionManager");
                    Object.defineProperty(n, "InteractionManager", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    });
                    var a = t("./interactiveTarget");
                    Object.defineProperty(n, "interactiveTarget", {
                        enumerable: !0,
                        get: function() {
                            return r(a).default
                        }
                    })
                }, {
                    "./InteractionData": 154,
                    "./InteractionManager": 156,
                    "./interactiveTarget": 159
                }],
                159: [function(t, e, n) {
                    "use strict";
                    n.__esModule = !0, n.default = {
                        interactive: !1,
                        interactiveChildren: !0,
                        hitArea: null,
                        get buttonMode() {
                            return "pointer" === this.cursor
                        },
                        set buttonMode(t) {
                            t ? this.cursor = "pointer" : "pointer" === this.cursor && (this.cursor = null)
                        },
                        cursor: null,
                        get trackedPointers() {
                            return void 0 === this._trackedPointers && (this._trackedPointers = {}), this._trackedPointers
                        },
                        _trackedPointers: void 0
                    }
                }, {}],
                160: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        t.bitmapFont = u.BitmapText.registerFont(t.data, e)
                    }
                    n.__esModule = !0, n.parse = r, n.default = function() {
                        return function(t, e) {
                            if (!t.data || t.type !== s.Resource.TYPE.XML) return void e();
                            if (0 === t.data.getElementsByTagName("page").length || 0 === t.data.getElementsByTagName("info").length || null === t.data.getElementsByTagName("info")[0].getAttribute("face")) return void e();
                            var n = t.isDataUrl ? "" : o.dirname(t.url);
                            t.isDataUrl && ("." === n && (n = ""), this.baseUrl && n && "/" === this.baseUrl.charAt(this.baseUrl.length - 1) && (n += "/")), (n = n.replace(this.baseUrl, "")) && "/" !== n.charAt(n.length - 1) && (n += "/");
                            var i = n + t.data.getElementsByTagName("page")[0].getAttribute("file");
                            if (a.utils.TextureCache[i]) r(t, a.utils.TextureCache[i]), e();
                            else {
                                var u = {
                                    crossOrigin: t.crossOrigin,
                                    loadType: s.Resource.LOAD_TYPE.IMAGE,
                                    metadata: t.metadata.imageMetadata,
                                    parentResource: t
                                };
                                this.add(t.name + "_image", i, u, function(n) {
                                    r(t, n.texture), e()
                                })
                            }
                        }
                    };
                    var i = t("path"),
                        o = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(i),
                        a = t("../core"),
                        s = t("resource-loader"),
                        u = t("../extras")
                }, {
                    "../core": 64,
                    "../extras": 140,
                    path: 22,
                    "resource-loader": 35
                }],
                161: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0, n.shared = n.Resource = n.textureParser = n.getResourcePath = n.spritesheetParser = n.parseBitmapFontData = n.bitmapFontParser = n.Loader = void 0;
                    var i = t("./bitmapFontParser");
                    Object.defineProperty(n, "bitmapFontParser", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    }), Object.defineProperty(n, "parseBitmapFontData", {
                        enumerable: !0,
                        get: function() {
                            return i.parse
                        }
                    });
                    var o = t("./spritesheetParser");
                    Object.defineProperty(n, "spritesheetParser", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    }), Object.defineProperty(n, "getResourcePath", {
                        enumerable: !0,
                        get: function() {
                            return o.getResourcePath
                        }
                    });
                    var a = t("./textureParser");
                    Object.defineProperty(n, "textureParser", {
                        enumerable: !0,
                        get: function() {
                            return r(a).default
                        }
                    });
                    var s = t("resource-loader");
                    Object.defineProperty(n, "Resource", {
                        enumerable: !0,
                        get: function() {
                            return s.Resource
                        }
                    });
                    var u = t("../core/Application"),
                        l = r(u),
                        c = t("./loader"),
                        h = r(c);
                    n.Loader = h.default;
                    var d = new h.default;
                    d.destroy = function() {}, n.shared = d;
                    var f = l.default.prototype;
                    f._loader = null, Object.defineProperty(f, "loader", {
                        get: function() {
                            if (!this._loader) {
                                var t = this._options.sharedLoader;
                                this._loader = t ? d : new h.default
                            }
                            return this._loader
                        }
                    }), f._parentDestroy = f.destroy, f.destroy = function(t) {
                        this._loader && (this._loader.destroy(), this._loader = null), this._parentDestroy(t)
                    }
                }, {
                    "../core/Application": 42,
                    "./bitmapFontParser": 160,
                    "./loader": 162,
                    "./spritesheetParser": 163,
                    "./textureParser": 164,
                    "resource-loader": 35
                }],
                162: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("resource-loader"),
                        u = r(s),
                        l = t("resource-loader/lib/middlewares/parsing/blob"),
                        c = t("eventemitter3"),
                        h = r(c),
                        d = t("./textureParser"),
                        f = r(d),
                        p = t("./spritesheetParser"),
                        g = r(p),
                        m = t("./bitmapFontParser"),
                        y = r(m),
                        b = function(t) {
                            function e(n, r) {
                                i(this, e);
                                var a = o(this, t.call(this, n, r));
                                h.default.call(a);
                                for (var s = 0; s < e._pixiMiddleware.length; ++s) a.use(e._pixiMiddleware[s]());
                                return a.onStart.add(function(t) {
                                    return a.emit("start", t)
                                }), a.onProgress.add(function(t, e) {
                                    return a.emit("progress", t, e)
                                }), a.onError.add(function(t, e, n) {
                                    return a.emit("error", t, e, n)
                                }), a.onLoad.add(function(t, e) {
                                    return a.emit("load", t, e)
                                }), a.onComplete.add(function(t, e) {
                                    return a.emit("complete", t, e)
                                }), a
                            }
                            return a(e, t), e.addPixiMiddleware = function(t) {
                                e._pixiMiddleware.push(t)
                            }, e.prototype.destroy = function() {
                                this.removeAllListeners(), this.reset()
                            }, e
                        }(u.default);
                    n.default = b;
                    for (var v in h.default.prototype) b.prototype[v] = h.default.prototype[v];
                    b._pixiMiddleware = [l.blobMiddlewareFactory, f.default, g.default, y.default];
                    var _ = u.default.Resource;
                    _.setExtensionXhrType("fnt", _.XHR_RESPONSE_TYPE.DOCUMENT)
                }, {
                    "./bitmapFontParser": 160,
                    "./spritesheetParser": 163,
                    "./textureParser": 164,
                    eventemitter3: 3,
                    "resource-loader": 35,
                    "resource-loader/lib/middlewares/parsing/blob": 36
                }],
                163: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        return t.isDataUrl ? t.data.meta.image : a.default.resolve(t.url.replace(e, ""), t.data.meta.image)
                    }
                    n.__esModule = !0, n.default = function() {
                        return function(t, e) {
                            var n = t.name + "_image";
                            if (!t.data || t.type !== i.Resource.TYPE.JSON || !t.data.frames || this.resources[n]) return void e();
                            var o = {
                                    crossOrigin: t.crossOrigin,
                                    loadType: i.Resource.LOAD_TYPE.IMAGE,
                                    metadata: t.metadata.imageMetadata,
                                    parentResource: t
                                },
                                a = r(t, this.baseUrl);
                            this.add(n, a, o, function(n) {
                                var r = new s.Spritesheet(n.texture.baseTexture, t.data, t.url);
                                r.parse(function() {
                                    t.spritesheet = r, t.textures = r.textures, e()
                                })
                            })
                        }
                    }, n.getResourcePath = r;
                    var i = t("resource-loader"),
                        o = t("url"),
                        a = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(o),
                        s = t("../core")
                }, {
                    "../core": 64,
                    "resource-loader": 35,
                    url: 28
                }],
                164: [function(t, e, n) {
                    "use strict";
                    n.__esModule = !0, n.default = function() {
                        return function(t, e) {
                            t.data && t.type === r.Resource.TYPE.IMAGE && (t.texture = o.default.fromLoader(t.data, t.url, t.name)), e()
                        }
                    };
                    var r = t("resource-loader"),
                        i = t("../core/textures/Texture"),
                        o = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(i)
                }, {
                    "../core/textures/Texture": 114,
                    "resource-loader": 35
                }],
                165: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = t("../extras/TextureTransform"),
                        c = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(l),
                        h = new u.Point,
                        d = new u.Polygon,
                        f = function(t) {
                            function e(n, o, a, s, l) {
                                r(this, e);
                                var h = i(this, t.call(this));
                                return h._texture = n, h.uvs = a || new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]), h.vertices = o || new Float32Array([0, 0, 100, 0, 100, 100, 0, 100]), h.indices = s || new Uint16Array([0, 1, 3, 2]), h.dirty = 0, h.indexDirty = 0, h.blendMode = u.BLEND_MODES.NORMAL, h.canvasPadding = 0, h.drawMode = l || e.DRAW_MODES.TRIANGLE_MESH, h.shader = null, h.tintRgb = new Float32Array([1, 1, 1]), h._glDatas = {}, h._uvTransform = new c.default(n), h.uploadUvTransform = !1, h.pluginName = "mesh", h
                            }
                            return o(e, t), e.prototype._renderWebGL = function(t) {
                                this.refresh(), t.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this)
                            }, e.prototype._renderCanvas = function(t) {
                                this.refresh(), t.plugins[this.pluginName].render(this)
                            }, e.prototype._onTextureUpdate = function() {
                                this._uvTransform.texture = this._texture, this.refresh()
                            }, e.prototype.multiplyUvs = function() {
                                this.uploadUvTransform || this._uvTransform.multiplyUvs(this.uvs)
                            }, e.prototype.refresh = function(t) {
                                this._uvTransform.update(t) && this._refresh()
                            }, e.prototype._refresh = function() {}, e.prototype._calculateBounds = function() {
                                this._bounds.addVertices(this.transform, this.vertices, 0, this.vertices.length)
                            }, e.prototype.containsPoint = function(t) {
                                if (!this.getBounds().contains(t.x, t.y)) return !1;
                                this.worldTransform.applyInverse(t, h);
                                for (var n = this.vertices, r = d.points, i = this.indices, o = this.indices.length, a = this.drawMode === e.DRAW_MODES.TRIANGLES ? 3 : 1, s = 0; s + 2 < o; s += a) {
                                    var u = 2 * i[s],
                                        l = 2 * i[s + 1],
                                        c = 2 * i[s + 2];
                                    if (r[0] = n[u], r[1] = n[u + 1], r[2] = n[l], r[3] = n[l + 1], r[4] = n[c], r[5] = n[c + 1], d.contains(h.x, h.y)) return !0
                                }
                                return !1
                            }, a(e, [{
                                key: "texture",
                                get: function() {
                                    return this._texture
                                },
                                set: function(t) {
                                    this._texture !== t && (this._texture = t, t && (t.baseTexture.hasLoaded ? this._onTextureUpdate() : t.once("update", this._onTextureUpdate, this)))
                                }
                            }, {
                                key: "tint",
                                get: function() {
                                    return u.utils.rgb2hex(this.tintRgb)
                                },
                                set: function(t) {
                                    this.tintRgb = u.utils.hex2rgb(t, this.tintRgb)
                                }
                            }]), e
                        }(u.Container);
                    n.default = f, f.DRAW_MODES = {
                        TRIANGLE_MESH: 0,
                        TRIANGLES: 1
                    }
                }, {
                    "../core": 64,
                    "../extras/TextureTransform": 135
                }],
                166: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("./Plane"),
                        u = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(s),
                        l = 10,
                        c = function(t) {
                            function e(n, o, a, s, u) {
                                r(this, e);
                                var c = i(this, t.call(this, n, 4, 4));
                                return c._origWidth = n.orig.width, c._origHeight = n.orig.height, c._width = c._origWidth, c._height = c._origHeight, c.leftWidth = void 0 !== o ? o : l, c.rightWidth = void 0 !== s ? s : l, c.topHeight = void 0 !== a ? a : l, c.bottomHeight = void 0 !== u ? u : l, c.refresh(!0), c
                            }
                            return o(e, t), e.prototype.updateHorizontalVertices = function() {
                                var t = this.vertices;
                                t[9] = t[11] = t[13] = t[15] = this._topHeight, t[17] = t[19] = t[21] = t[23] = this._height - this._bottomHeight, t[25] = t[27] = t[29] = t[31] = this._height
                            }, e.prototype.updateVerticalVertices = function() {
                                var t = this.vertices;
                                t[2] = t[10] = t[18] = t[26] = this._leftWidth, t[4] = t[12] = t[20] = t[28] = this._width - this._rightWidth, t[6] = t[14] = t[22] = t[30] = this._width
                            }, e.prototype._renderCanvas = function(t) {
                                var e = t.context;
                                e.globalAlpha = this.worldAlpha;
                                var n = this.worldTransform,
                                    r = t.resolution;
                                t.roundPixels ? e.setTransform(n.a * r, n.b * r, n.c * r, n.d * r, n.tx * r | 0, n.ty * r | 0) : e.setTransform(n.a * r, n.b * r, n.c * r, n.d * r, n.tx * r, n.ty * r);
                                var i = this._texture.baseTexture,
                                    o = i.source,
                                    a = i.width,
                                    s = i.height;
                                this.drawSegment(e, o, a, s, 0, 1, 10, 11), this.drawSegment(e, o, a, s, 2, 3, 12, 13), this.drawSegment(e, o, a, s, 4, 5, 14, 15), this.drawSegment(e, o, a, s, 8, 9, 18, 19), this.drawSegment(e, o, a, s, 10, 11, 20, 21), this.drawSegment(e, o, a, s, 12, 13, 22, 23), this.drawSegment(e, o, a, s, 16, 17, 26, 27), this.drawSegment(e, o, a, s, 18, 19, 28, 29), this.drawSegment(e, o, a, s, 20, 21, 30, 31)
                            }, e.prototype.drawSegment = function(t, e, n, r, i, o, a, s) {
                                var u = this.uvs,
                                    l = this.vertices,
                                    c = (u[a] - u[i]) * n,
                                    h = (u[s] - u[o]) * r,
                                    d = l[a] - l[i],
                                    f = l[s] - l[o];
                                c < 1 && (c = 1), h < 1 && (h = 1), d < 1 && (d = 1), f < 1 && (f = 1), t.drawImage(e, u[i] * n, u[o] * r, c, h, l[i], l[o], d, f)
                            }, e.prototype._refresh = function() {
                                t.prototype._refresh.call(this);
                                var e = this.uvs,
                                    n = this._texture;
                                this._origWidth = n.orig.width, this._origHeight = n.orig.height;
                                var r = 1 / this._origWidth,
                                    i = 1 / this._origHeight;
                                e[0] = e[8] = e[16] = e[24] = 0, e[1] = e[3] = e[5] = e[7] = 0, e[6] = e[14] = e[22] = e[30] = 1, e[25] = e[27] = e[29] = e[31] = 1, e[2] = e[10] = e[18] = e[26] = r * this._leftWidth, e[4] = e[12] = e[20] = e[28] = 1 - r * this._rightWidth, e[9] = e[11] = e[13] = e[15] = i * this._topHeight, e[17] = e[19] = e[21] = e[23] = 1 - i * this._bottomHeight, this.updateHorizontalVertices(), this.updateVerticalVertices(), this.dirty = !0, this.multiplyUvs()
                            }, a(e, [{
                                key: "width",
                                get: function() {
                                    return this._width
                                },
                                set: function(t) {
                                    this._width = t, this._refresh()
                                }
                            }, {
                                key: "height",
                                get: function() {
                                    return this._height
                                },
                                set: function(t) {
                                    this._height = t, this._refresh()
                                }
                            }, {
                                key: "leftWidth",
                                get: function() {
                                    return this._leftWidth
                                },
                                set: function(t) {
                                    this._leftWidth = t, this._refresh()
                                }
                            }, {
                                key: "rightWidth",
                                get: function() {
                                    return this._rightWidth
                                },
                                set: function(t) {
                                    this._rightWidth = t, this._refresh()
                                }
                            }, {
                                key: "topHeight",
                                get: function() {
                                    return this._topHeight
                                },
                                set: function(t) {
                                    this._topHeight = t, this._refresh()
                                }
                            }, {
                                key: "bottomHeight",
                                get: function() {
                                    return this._bottomHeight
                                },
                                set: function(t) {
                                    this._bottomHeight = t, this._refresh()
                                }
                            }]), e
                        }(u.default);
                    n.default = c
                }, {
                    "./Plane": 167
                }],
                167: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("./Mesh"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = function(t) {
                            function e(n, o, a) {
                                r(this, e);
                                var u = i(this, t.call(this, n));
                                return u._ready = !0, u.verticesX = o || 10, u.verticesY = a || 10, u.drawMode = s.default.DRAW_MODES.TRIANGLES, u.refresh(), u
                            }
                            return o(e, t), e.prototype._refresh = function() {
                                for (var t = this._texture, e = this.verticesX * this.verticesY, n = [], r = [], i = [], o = [], a = this.verticesX - 1, s = this.verticesY - 1, u = t.width / a, l = t.height / s, c = 0; c < e; c++) {
                                    var h = c % this.verticesX,
                                        d = c / this.verticesX | 0;
                                    n.push(h * u, d * l), i.push(h / a, d / s)
                                }
                                for (var f = a * s, p = 0; p < f; p++) {
                                    var g = p % a,
                                        m = p / a | 0,
                                        y = m * this.verticesX + g,
                                        b = m * this.verticesX + g + 1,
                                        v = (m + 1) * this.verticesX + g,
                                        _ = (m + 1) * this.verticesX + g + 1;
                                    o.push(y, b, v), o.push(b, _, v)
                                }
                                this.vertices = new Float32Array(n), this.uvs = new Float32Array(i), this.colors = new Float32Array(r), this.indices = new Uint16Array(o), this.indexDirty = !0, this.multiplyUvs()
                            }, e.prototype._onTextureUpdate = function() {
                                s.default.prototype._onTextureUpdate.call(this), this._ready && this.refresh()
                            }, e
                        }(s.default);
                    n.default = u
                }, {
                    "./Mesh": 165
                }],
                168: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("./Mesh"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = function(t) {
                            function e(n, o) {
                                r(this, e);
                                var a = i(this, t.call(this, n));
                                return a.points = o, a.vertices = new Float32Array(4 * o.length), a.uvs = new Float32Array(4 * o.length), a.colors = new Float32Array(2 * o.length), a.indices = new Uint16Array(2 * o.length), a.autoUpdate = !0, a.refresh(), a
                            }
                            return o(e, t), e.prototype._refresh = function() {
                                var t = this.points;
                                if (!(t.length < 1) && this._texture._uvs) {
                                    this.vertices.length / 4 !== t.length && (this.vertices = new Float32Array(4 * t.length), this.uvs = new Float32Array(4 * t.length), this.colors = new Float32Array(2 * t.length), this.indices = new Uint16Array(2 * t.length));
                                    var e = this.uvs,
                                        n = this.indices,
                                        r = this.colors;
                                    e[0] = 0, e[1] = 0, e[2] = 0, e[3] = 1, r[0] = 1, r[1] = 1, n[0] = 0, n[1] = 1;
                                    for (var i = t.length, o = 1; o < i; o++) {
                                        var a = 4 * o,
                                            s = o / (i - 1);
                                        e[a] = s, e[a + 1] = 0, e[a + 2] = s, e[a + 3] = 1, a = 2 * o, r[a] = 1, r[a + 1] = 1, a = 2 * o, n[a] = a, n[a + 1] = a + 1
                                    }
                                    this.dirty++, this.indexDirty++, this.multiplyUvs(), this.refreshVertices()
                                }
                            }, e.prototype.refreshVertices = function() {
                                var t = this.points;
                                if (!(t.length < 1))
                                    for (var e = t[0], n = void 0, r = 0, i = 0, o = this.vertices, a = t.length, s = 0; s < a; s++) {
                                        var u = t[s],
                                            l = 4 * s;
                                        n = s < t.length - 1 ? t[s + 1] : u, i = -(n.x - e.x), r = n.y - e.y;
                                        var c = 10 * (1 - s / (a - 1));
                                        c > 1 && (c = 1);
                                        var h = Math.sqrt(r * r + i * i),
                                            d = this._texture.height / 2;
                                        r /= h, i /= h, r *= d, i *= d, o[l] = u.x + r, o[l + 1] = u.y + i, o[l + 2] = u.x - r, o[l + 3] = u.y - i, e = u
                                    }
                            }, e.prototype.updateTransform = function() {
                                this.autoUpdate && this.refreshVertices(), this.containerUpdateTransform()
                            }, e
                        }(s.default);
                    n.default = u
                }, {
                    "./Mesh": 165
                }],
                169: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = t("../../core"),
                        o = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(i),
                        a = t("../Mesh"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = function() {
                            function t(e) {
                                r(this, t), this.renderer = e
                            }
                            return t.prototype.render = function(t) {
                                var e = this.renderer,
                                    n = e.context,
                                    r = t.worldTransform,
                                    i = e.resolution;
                                e.roundPixels ? n.setTransform(r.a * i, r.b * i, r.c * i, r.d * i, r.tx * i | 0, r.ty * i | 0) : n.setTransform(r.a * i, r.b * i, r.c * i, r.d * i, r.tx * i, r.ty * i), e.setBlendMode(t.blendMode), t.drawMode === s.default.DRAW_MODES.TRIANGLE_MESH ? this._renderTriangleMesh(t) : this._renderTriangles(t)
                            }, t.prototype._renderTriangleMesh = function(t) {
                                for (var e = t.vertices.length / 2, n = 0; n < e - 2; n++) {
                                    var r = 2 * n;
                                    this._renderDrawTriangle(t, r, r + 2, r + 4)
                                }
                            }, t.prototype._renderTriangles = function(t) {
                                for (var e = t.indices, n = e.length, r = 0; r < n; r += 3) {
                                    var i = 2 * e[r],
                                        o = 2 * e[r + 1],
                                        a = 2 * e[r + 2];
                                    this._renderDrawTriangle(t, i, o, a)
                                }
                            }, t.prototype._renderDrawTriangle = function(t, e, n, r) {
                                var i = this.renderer.context,
                                    o = t.uvs,
                                    a = t.vertices,
                                    s = t._texture;
                                if (s.valid) {
                                    var u = s.baseTexture,
                                        l = u.source,
                                        c = u.width,
                                        h = u.height,
                                        d = void 0,
                                        f = void 0,
                                        p = void 0,
                                        g = void 0,
                                        m = void 0,
                                        y = void 0;
                                    if (t.uploadUvTransform) {
                                        var b = t._uvTransform.mapCoord;
                                        d = (o[e] * b.a + o[e + 1] * b.c + b.tx) * u.width, f = (o[n] * b.a + o[n + 1] * b.c + b.tx) * u.width, p = (o[r] * b.a + o[r + 1] * b.c + b.tx) * u.width, g = (o[e] * b.b + o[e + 1] * b.d + b.ty) * u.height, m = (o[n] * b.b + o[n + 1] * b.d + b.ty) * u.height, y = (o[r] * b.b + o[r + 1] * b.d + b.ty) * u.height
                                    } else d = o[e] * u.width, f = o[n] * u.width, p = o[r] * u.width, g = o[e + 1] * u.height, m = o[n + 1] * u.height, y = o[r + 1] * u.height;
                                    var v = a[e],
                                        _ = a[n],
                                        x = a[r],
                                        T = a[e + 1],
                                        w = a[n + 1],
                                        S = a[r + 1];
                                    if (t.canvasPadding > 0) {
                                        var C = t.canvasPadding / t.worldTransform.a,
                                            E = t.canvasPadding / t.worldTransform.d,
                                            O = (v + _ + x) / 3,
                                            P = (T + w + S) / 3,
                                            A = v - O,
                                            R = T - P,
                                            M = Math.sqrt(A * A + R * R);
                                        v = O + A / M * (M + C), T = P + R / M * (M + E), A = _ - O, R = w - P, M = Math.sqrt(A * A + R * R), _ = O + A / M * (M + C), w = P + R / M * (M + E), A = x - O, R = S - P, M = Math.sqrt(A * A + R * R), x = O + A / M * (M + C), S = P + R / M * (M + E)
                                    }
                                    i.save(), i.beginPath(), i.moveTo(v, T), i.lineTo(_, w), i.lineTo(x, S), i.closePath(), i.clip();
                                    var I = d * m + g * p + f * y - m * p - g * f - d * y,
                                        D = v * m + g * x + _ * y - m * x - g * _ - v * y,
                                        L = d * _ + v * p + f * x - _ * p - v * f - d * x,
                                        k = d * m * x + g * _ * p + v * f * y - v * m * p - g * f * x - d * _ * y,
                                        F = T * m + g * S + w * y - m * S - g * w - T * y,
                                        B = d * w + T * p + f * S - w * p - T * f - d * S,
                                        N = d * m * S + g * w * p + T * f * y - T * m * p - g * f * S - d * w * y;
                                    i.transform(D / I, F / I, L / I, B / I, k / I, N / I), i.drawImage(l, 0, 0, c * u.resolution, h * u.resolution, 0, 0, c, h), i.restore()
                                }
                            }, t.prototype.renderMeshFlat = function(t) {
                                var e = this.renderer.context,
                                    n = t.vertices,
                                    r = n.length / 2;
                                e.beginPath();
                                for (var i = 1; i < r - 2; ++i) {
                                    var o = 2 * i,
                                        a = n[o],
                                        s = n[o + 1],
                                        u = n[o + 2],
                                        l = n[o + 3],
                                        c = n[o + 4],
                                        h = n[o + 5];
                                    e.moveTo(a, s), e.lineTo(u, l), e.lineTo(c, h)
                                }
                                e.fillStyle = "#FF0000", e.fill(), e.closePath()
                            }, t.prototype.destroy = function() {
                                this.renderer = null
                            }, t
                        }();
                    n.default = u, o.CanvasRenderer.registerPlugin("mesh", u)
                }, {
                    "../../core": 64,
                    "../Mesh": 165
                }],
                170: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./Mesh");
                    Object.defineProperty(n, "Mesh", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./webgl/MeshRenderer");
                    Object.defineProperty(n, "MeshRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    });
                    var a = t("./canvas/CanvasMeshRenderer");
                    Object.defineProperty(n, "CanvasMeshRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(a).default
                        }
                    });
                    var s = t("./Plane");
                    Object.defineProperty(n, "Plane", {
                        enumerable: !0,
                        get: function() {
                            return r(s).default
                        }
                    });
                    var u = t("./NineSlicePlane");
                    Object.defineProperty(n, "NineSlicePlane", {
                        enumerable: !0,
                        get: function() {
                            return r(u).default
                        }
                    });
                    var l = t("./Rope");
                    Object.defineProperty(n, "Rope", {
                        enumerable: !0,
                        get: function() {
                            return r(l).default
                        }
                    })
                }, {
                    "./Mesh": 165,
                    "./NineSlicePlane": 166,
                    "./Plane": 167,
                    "./Rope": 168,
                    "./canvas/CanvasMeshRenderer": 169,
                    "./webgl/MeshRenderer": 171
                }],
                171: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("../../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = t("pixi-gl-core"),
                        c = r(l),
                        h = t("../Mesh"),
                        d = r(h),
                        f = (t("path"), u.Matrix.IDENTITY),
                        p = function(t) {
                            function e(n) {
                                i(this, e);
                                var r = o(this, t.call(this, n));
                                return r.shader = null, r
                            }
                            return a(e, t), e.prototype.onContextChange = function() {
                                var t = this.renderer.gl;
                                this.shader = new u.Shader(t, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\nuniform vec4 uColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;\n}\n")
                            }, e.prototype.render = function(t) {
                                var e = this.renderer,
                                    n = e.gl,
                                    r = t._texture;
                                if (r.valid) {
                                    var i = t._glDatas[e.CONTEXT_UID];
                                    i || (e.bindVao(null), i = {
                                        shader: this.shader,
                                        vertexBuffer: c.default.GLBuffer.createVertexBuffer(n, t.vertices, n.STREAM_DRAW),
                                        uvBuffer: c.default.GLBuffer.createVertexBuffer(n, t.uvs, n.STREAM_DRAW),
                                        indexBuffer: c.default.GLBuffer.createIndexBuffer(n, t.indices, n.STATIC_DRAW),
                                        vao: null,
                                        dirty: t.dirty,
                                        indexDirty: t.indexDirty
                                    }, i.vao = new c.default.VertexArrayObject(n).addIndex(i.indexBuffer).addAttribute(i.vertexBuffer, i.shader.attributes.aVertexPosition, n.FLOAT, !1, 8, 0).addAttribute(i.uvBuffer, i.shader.attributes.aTextureCoord, n.FLOAT, !1, 8, 0), t._glDatas[e.CONTEXT_UID] = i), e.bindVao(i.vao), t.dirty !== i.dirty && (i.dirty = t.dirty, i.uvBuffer.upload(t.uvs)), t.indexDirty !== i.indexDirty && (i.indexDirty = t.indexDirty, i.indexBuffer.upload(t.indices)), i.vertexBuffer.upload(t.vertices), e.bindShader(i.shader), i.shader.uniforms.uSampler = e.bindTexture(r), e.state.setBlendMode(u.utils.correctBlendMode(t.blendMode, r.baseTexture.premultipliedAlpha)), i.shader.uniforms.uTransform && (t.uploadUvTransform ? i.shader.uniforms.uTransform = t._uvTransform.mapCoord.toArray(!0) : i.shader.uniforms.uTransform = f.toArray(!0)), i.shader.uniforms.translationMatrix = t.worldTransform.toArray(!0), i.shader.uniforms.uColor = u.utils.premultiplyRgba(t.tintRgb, t.worldAlpha, i.shader.uniforms.uColor, r.baseTexture.premultipliedAlpha);
                                    var o = t.drawMode === d.default.DRAW_MODES.TRIANGLE_MESH ? n.TRIANGLE_STRIP : n.TRIANGLES;
                                    i.vao.draw(o, t.indices.length, 0)
                                }
                            }, e
                        }(u.ObjectRenderer);
                    n.default = p, u.WebGLRenderer.registerPlugin("mesh", p)
                }, {
                    "../../core": 64,
                    "../Mesh": 165,
                    path: 22,
                    "pixi-gl-core": 12
                }],
                172: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = function() {
                            function t(t, e) {
                                for (var n = 0; n < e.length; n++) {
                                    var r = e[n];
                                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                                }
                            }
                            return function(e, n, r) {
                                return n && t(e.prototype, n), r && t(e, r), e
                            }
                        }(),
                        s = t("../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = t("../core/utils"),
                        c = function(t) {
                            function e() {
                                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1500,
                                    o = arguments[1],
                                    a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 16384;
                                r(this, e);
                                var s = i(this, t.call(this));
                                return a > 16384 && (a = 16384), a > n && (a = n), s._properties = [!1, !0, !1, !1, !1], s._maxSize = n, s._batchSize = a, s._glBuffers = {}, s._bufferToUpdate = 0, s.interactiveChildren = !1, s.blendMode = u.BLEND_MODES.NORMAL, s.roundPixels = !0, s.baseTexture = null, s.setProperties(o), s._tint = 0, s.tintRgb = new Float32Array(4), s.tint = 16777215, s
                            }
                            return o(e, t), e.prototype.setProperties = function(t) {
                                t && (this._properties[0] = "scale" in t ? !!t.scale : this._properties[0], this._properties[1] = "position" in t ? !!t.position : this._properties[1], this._properties[2] = "rotation" in t ? !!t.rotation : this._properties[2], this._properties[3] = "uvs" in t ? !!t.uvs : this._properties[3], this._properties[4] = "alpha" in t ? !!t.alpha : this._properties[4])
                            }, e.prototype.updateTransform = function() {
                                this.displayObjectUpdateTransform()
                            }, e.prototype.renderWebGL = function(t) {
                                var e = this;
                                this.visible && !(this.worldAlpha <= 0) && this.children.length && this.renderable && (this.baseTexture || (this.baseTexture = this.children[0]._texture.baseTexture, this.baseTexture.hasLoaded || this.baseTexture.once("update", function() {
                                    return e.onChildrenChange(0)
                                })), t.setObjectRenderer(t.plugins.particle), t.plugins.particle.render(this))
                            }, e.prototype.onChildrenChange = function(t) {
                                var e = Math.floor(t / this._batchSize);
                                e < this._bufferToUpdate && (this._bufferToUpdate = e)
                            }, e.prototype.renderCanvas = function(t) {
                                if (this.visible && !(this.worldAlpha <= 0) && this.children.length && this.renderable) {
                                    var e = t.context,
                                        n = this.worldTransform,
                                        r = !0,
                                        i = 0,
                                        o = 0,
                                        a = 0,
                                        s = 0,
                                        u = t.blendModes[this.blendMode];
                                    u !== e.globalCompositeOperation && (e.globalCompositeOperation = u), e.globalAlpha = this.worldAlpha, this.displayObjectUpdateTransform();
                                    for (var l = 0; l < this.children.length; ++l) {
                                        var c = this.children[l];
                                        if (c.visible) {
                                            var h = c._texture.frame;
                                            if (e.globalAlpha = this.worldAlpha * c.alpha, c.rotation % (2 * Math.PI) == 0) r && (e.setTransform(n.a, n.b, n.c, n.d, n.tx * t.resolution, n.ty * t.resolution), r = !1), i = c.anchor.x * (-h.width * c.scale.x) + c.position.x + .5, o = c.anchor.y * (-h.height * c.scale.y) + c.position.y + .5, a = h.width * c.scale.x, s = h.height * c.scale.y;
                                            else {
                                                r || (r = !0), c.displayObjectUpdateTransform();
                                                var d = c.worldTransform;
                                                t.roundPixels ? e.setTransform(d.a, d.b, d.c, d.d, d.tx * t.resolution | 0, d.ty * t.resolution | 0) : e.setTransform(d.a, d.b, d.c, d.d, d.tx * t.resolution, d.ty * t.resolution), i = c.anchor.x * -h.width + .5, o = c.anchor.y * -h.height + .5, a = h.width, s = h.height
                                            }
                                            var f = c._texture.baseTexture.resolution;
                                            e.drawImage(c._texture.baseTexture.source, h.x * f, h.y * f, h.width * f, h.height * f, i * t.resolution, o * t.resolution, a * t.resolution, s * t.resolution)
                                        }
                                    }
                                }
                            }, e.prototype.destroy = function(e) {
                                if (t.prototype.destroy.call(this, e), this._buffers)
                                    for (var n = 0; n < this._buffers.length; ++n) this._buffers[n].destroy();
                                this._properties = null, this._buffers = null
                            }, a(e, [{
                                key: "tint",
                                get: function() {
                                    return this._tint
                                },
                                set: function(t) {
                                    this._tint = t, (0, l.hex2rgb)(t, this.tintRgb)
                                }
                            }]), e
                        }(u.Container);
                    n.default = c
                }, {
                    "../core": 64,
                    "../core/utils": 123
                }],
                173: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./ParticleContainer");
                    Object.defineProperty(n, "ParticleContainer", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./webgl/ParticleRenderer");
                    Object.defineProperty(n, "ParticleRenderer", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    })
                }, {
                    "./ParticleContainer": 172,
                    "./webgl/ParticleRenderer": 175
                }],
                174: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var o = t("pixi-gl-core"),
                        a = r(o),
                        s = t("../../core/utils/createIndicesForQuads"),
                        u = r(s),
                        l = function() {
                            function t(e, n, r, o) {
                                i(this, t), this.gl = e, this.vertSize = 2, this.vertByteSize = 4 * this.vertSize, this.size = o, this.dynamicProperties = [], this.staticProperties = [];
                                for (var a = 0; a < n.length; ++a) {
                                    var s = n[a];
                                    s = {
                                        attribute: s.attribute,
                                        size: s.size,
                                        uploadFunction: s.uploadFunction,
                                        offset: s.offset
                                    }, r[a] ? this.dynamicProperties.push(s) : this.staticProperties.push(s)
                                }
                                this.staticStride = 0, this.staticBuffer = null, this.staticData = null, this.dynamicStride = 0, this.dynamicBuffer = null, this.dynamicData = null, this.initBuffers()
                            }
                            return t.prototype.initBuffers = function() {
                                var t = this.gl,
                                    e = 0;
                                this.indices = (0, u.default)(this.size), this.indexBuffer = a.default.GLBuffer.createIndexBuffer(t, this.indices, t.STATIC_DRAW), this.dynamicStride = 0;
                                for (var n = 0; n < this.dynamicProperties.length; ++n) {
                                    var r = this.dynamicProperties[n];
                                    r.offset = e, e += r.size, this.dynamicStride += r.size
                                }
                                this.dynamicData = new Float32Array(this.size * this.dynamicStride * 4), this.dynamicBuffer = a.default.GLBuffer.createVertexBuffer(t, this.dynamicData, t.STREAM_DRAW);
                                var i = 0;
                                this.staticStride = 0;
                                for (var o = 0; o < this.staticProperties.length; ++o) {
                                    var s = this.staticProperties[o];
                                    s.offset = i, i += s.size, this.staticStride += s.size
                                }
                                this.staticData = new Float32Array(this.size * this.staticStride * 4), this.staticBuffer = a.default.GLBuffer.createVertexBuffer(t, this.staticData, t.STATIC_DRAW), this.vao = new a.default.VertexArrayObject(t).addIndex(this.indexBuffer);
                                for (var l = 0; l < this.dynamicProperties.length; ++l) {
                                    var c = this.dynamicProperties[l];
                                    this.vao.addAttribute(this.dynamicBuffer, c.attribute, t.FLOAT, !1, 4 * this.dynamicStride, 4 * c.offset)
                                }
                                for (var h = 0; h < this.staticProperties.length; ++h) {
                                    var d = this.staticProperties[h];
                                    this.vao.addAttribute(this.staticBuffer, d.attribute, t.FLOAT, !1, 4 * this.staticStride, 4 * d.offset)
                                }
                            }, t.prototype.uploadDynamic = function(t, e, n) {
                                for (var r = 0; r < this.dynamicProperties.length; r++) {
                                    var i = this.dynamicProperties[r];
                                    i.uploadFunction(t, e, n, this.dynamicData, this.dynamicStride, i.offset)
                                }
                                this.dynamicBuffer.upload()
                            }, t.prototype.uploadStatic = function(t, e, n) {
                                for (var r = 0; r < this.staticProperties.length; r++) {
                                    var i = this.staticProperties[r];
                                    i.uploadFunction(t, e, n, this.staticData, this.staticStride, i.offset)
                                }
                                this.staticBuffer.upload()
                            }, t.prototype.destroy = function() {
                                this.dynamicProperties = null, this.dynamicData = null, this.dynamicBuffer.destroy(), this.staticProperties = null, this.staticData = null, this.staticBuffer.destroy()
                            }, t
                        }();
                    n.default = l
                }, {
                    "../../core/utils/createIndicesForQuads": 121,
                    "pixi-gl-core": 12
                }],
                175: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }

                    function i(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function o(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function a(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var s = t("../../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = t("./ParticleShader"),
                        c = r(l),
                        h = t("./ParticleBuffer"),
                        d = r(h),
                        f = function(t) {
                            function e(n) {
                                i(this, e);
                                var r = o(this, t.call(this, n));
                                return r.shader = null, r.indexBuffer = null, r.properties = null, r.tempMatrix = new u.Matrix, r.CONTEXT_UID = 0, r
                            }
                            return a(e, t), e.prototype.onContextChange = function() {
                                var t = this.renderer.gl;
                                this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.shader = new c.default(t), this.properties = [{
                                    attribute: this.shader.attributes.aVertexPosition,
                                    size: 2,
                                    uploadFunction: this.uploadVertices,
                                    offset: 0
                                }, {
                                    attribute: this.shader.attributes.aPositionCoord,
                                    size: 2,
                                    uploadFunction: this.uploadPosition,
                                    offset: 0
                                }, {
                                    attribute: this.shader.attributes.aRotation,
                                    size: 1,
                                    uploadFunction: this.uploadRotation,
                                    offset: 0
                                }, {
                                    attribute: this.shader.attributes.aTextureCoord,
                                    size: 2,
                                    uploadFunction: this.uploadUvs,
                                    offset: 0
                                }, {
                                    attribute: this.shader.attributes.aColor,
                                    size: 1,
                                    uploadFunction: this.uploadAlpha,
                                    offset: 0
                                }]
                            }, e.prototype.start = function() {
                                this.renderer.bindShader(this.shader)
                            }, e.prototype.render = function(t) {
                                var e = t.children,
                                    n = t._maxSize,
                                    r = t._batchSize,
                                    i = this.renderer,
                                    o = e.length;
                                if (0 !== o) {
                                    o > n && (o = n);
                                    var a = t._glBuffers[i.CONTEXT_UID];
                                    a || (a = t._glBuffers[i.CONTEXT_UID] = this.generateBuffers(t));
                                    var s = e[0]._texture.baseTexture;
                                    this.renderer.setBlendMode(u.utils.correctBlendMode(t.blendMode, s.premultipliedAlpha));
                                    var l = i.gl,
                                        c = t.worldTransform.copy(this.tempMatrix);
                                    c.prepend(i._activeRenderTarget.projectionMatrix), this.shader.uniforms.projectionMatrix = c.toArray(!0), this.shader.uniforms.uColor = u.utils.premultiplyRgba(t.tintRgb, t.worldAlpha, this.shader.uniforms.uColor, s.premultipliedAlpha), this.shader.uniforms.uSampler = i.bindTexture(s);
                                    for (var h = 0, d = 0; h < o; h += r, d += 1) {
                                        var f = o - h;
                                        f > r && (f = r);
                                        var p = a[d];
                                        p.uploadDynamic(e, h, f), t._bufferToUpdate === d && (p.uploadStatic(e, h, f), t._bufferToUpdate = d + 1), i.bindVao(p.vao), p.vao.draw(l.TRIANGLES, 6 * f)
                                    }
                                }
                            }, e.prototype.generateBuffers = function(t) {
                                for (var e = this.renderer.gl, n = [], r = t._maxSize, i = t._batchSize, o = t._properties, a = 0; a < r; a += i) n.push(new d.default(e, this.properties, o, i));
                                return n
                            }, e.prototype.uploadVertices = function(t, e, n, r, i, o) {
                                for (var a = 0, s = 0, u = 0, l = 0, c = 0; c < n; ++c) {
                                    var h = t[e + c],
                                        d = h._texture,
                                        f = h.scale.x,
                                        p = h.scale.y,
                                        g = d.trim,
                                        m = d.orig;
                                    g ? (s = g.x - h.anchor.x * m.width, a = s + g.width, l = g.y - h.anchor.y * m.height, u = l + g.height) : (a = m.width * (1 - h.anchor.x), s = m.width * -h.anchor.x, u = m.height * (1 - h.anchor.y), l = m.height * -h.anchor.y), r[o] = s * f, r[o + 1] = l * p, r[o + i] = a * f, r[o + i + 1] = l * p, r[o + 2 * i] = a * f, r[o + 2 * i + 1] = u * p, r[o + 3 * i] = s * f, r[o + 3 * i + 1] = u * p, o += 4 * i
                                }
                            }, e.prototype.uploadPosition = function(t, e, n, r, i, o) {
                                for (var a = 0; a < n; a++) {
                                    var s = t[e + a].position;
                                    r[o] = s.x, r[o + 1] = s.y, r[o + i] = s.x, r[o + i + 1] = s.y, r[o + 2 * i] = s.x, r[o + 2 * i + 1] = s.y, r[o + 3 * i] = s.x, r[o + 3 * i + 1] = s.y, o += 4 * i
                                }
                            }, e.prototype.uploadRotation = function(t, e, n, r, i, o) {
                                for (var a = 0; a < n; a++) {
                                    var s = t[e + a].rotation;
                                    r[o] = s, r[o + i] = s, r[o + 2 * i] = s, r[o + 3 * i] = s, o += 4 * i
                                }
                            }, e.prototype.uploadUvs = function(t, e, n, r, i, o) {
                                for (var a = 0; a < n; ++a) {
                                    var s = t[e + a]._texture._uvs;
                                    s ? (r[o] = s.x0, r[o + 1] = s.y0, r[o + i] = s.x1, r[o + i + 1] = s.y1, r[o + 2 * i] = s.x2, r[o + 2 * i + 1] = s.y2, r[o + 3 * i] = s.x3, r[o + 3 * i + 1] = s.y3, o += 4 * i) : (r[o] = 0, r[o + 1] = 0, r[o + i] = 0, r[o + i + 1] = 0, r[o + 2 * i] = 0, r[o + 2 * i + 1] = 0, r[o + 3 * i] = 0, r[o + 3 * i + 1] = 0, o += 4 * i)
                                }
                            }, e.prototype.uploadAlpha = function(t, e, n, r, i, o) {
                                for (var a = 0; a < n; a++) {
                                    var s = t[e + a].alpha;
                                    r[o] = s, r[o + i] = s, r[o + 2 * i] = s, r[o + 3 * i] = s, o += 4 * i
                                }
                            }, e.prototype.destroy = function() {
                                this.renderer.gl && this.renderer.gl.deleteBuffer(this.indexBuffer), t.prototype.destroy.call(this), this.shader.destroy(), this.indices = null, this.tempMatrix = null
                            }, e
                        }(u.ObjectRenderer);
                    n.default = f, u.WebGLRenderer.registerPlugin("particle", f)
                }, {
                    "../../core": 64,
                    "./ParticleBuffer": 174,
                    "./ParticleShader": 176
                }],
                176: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }
                    n.__esModule = !0;
                    var a = t("../../core/Shader"),
                        s = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(a),
                        u = function(t) {
                            function e(n) {
                                return r(this, e), i(this, t.call(this, n, ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "attribute float aColor;", "attribute vec2 aPositionCoord;", "attribute vec2 aScale;", "attribute float aRotation;", "uniform mat3 projectionMatrix;", "varying vec2 vTextureCoord;", "varying float vColor;", "void main(void){", "   vec2 v = aVertexPosition;", "   v.x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);", "   v.y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);", "   v = v + aPositionCoord;", "   gl_Position = vec4((projectionMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);", "   vTextureCoord = aTextureCoord;", "   vColor = aColor;", "}"].join("\n"), ["varying vec2 vTextureCoord;", "varying float vColor;", "uniform sampler2D uSampler;", "uniform vec4 uColor;", "void main(void){", "  vec4 color = texture2D(uSampler, vTextureCoord) * vColor * uColor;", "  if (color.a == 0.0) discard;", "  gl_FragColor = color;", "}"].join("\n")))
                            }
                            return o(e, t), e
                        }(s.default);
                    n.default = u
                }, {
                    "../../core/Shader": 43
                }],
                177: [function(t, e, n) {
                    "use strict";
                    Math.sign || (Math.sign = function(t) {
                        return t = Number(t), 0 === t || isNaN(t) ? t : t > 0 ? 1 : -1
                    })
                }, {}],
                178: [function(t, e, n) {
                    "use strict";
                    var r = t("object-assign"),
                        i = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(r);
                    Object.assign || (Object.assign = i.default)
                }, {
                    "object-assign": 5
                }],
                179: [function(t, e, n) {
                    "use strict";
                    t("./Object.assign"), t("./requestAnimationFrame"), t("./Math.sign"), window.ArrayBuffer || (window.ArrayBuffer = Array), window.Float32Array || (window.Float32Array = Array), window.Uint32Array || (window.Uint32Array = Array), window.Uint16Array || (window.Uint16Array = Array)
                }, {
                    "./Math.sign": 177,
                    "./Object.assign": 178,
                    "./requestAnimationFrame": 180
                }],
                180: [function(t, e, n) {
                    (function(t) {
                        "use strict";
                        Date.now && Date.prototype.getTime || (Date.now = function() {
                            return (new Date).getTime()
                        }), t.performance && t.performance.now || function() {
                            var e = Date.now();
                            t.performance || (t.performance = {}), t.performance.now = function() {
                                return Date.now() - e
                            }
                        }();
                        for (var e = Date.now(), n = ["ms", "moz", "webkit", "o"], r = 0; r < n.length && !t.requestAnimationFrame; ++r) {
                            var i = n[r];
                            t.requestAnimationFrame = t[i + "RequestAnimationFrame"], t.cancelAnimationFrame = t[i + "CancelAnimationFrame"] || t[i + "CancelRequestAnimationFrame"]
                        }
                        t.requestAnimationFrame || (t.requestAnimationFrame = function(t) {
                            if ("function" != typeof t) throw new TypeError(t + "is not a function");
                            var n = Date.now(),
                                r = 16 + e - n;
                            return r < 0 && (r = 0), e = n, setTimeout(function() {
                                e = Date.now(), t(performance.now())
                            }, r)
                        }), t.cancelAnimationFrame || (t.cancelAnimationFrame = function(t) {
                            return clearTimeout(t)
                        })
                    }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
                }, {}],
                181: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        var n = !1;
                        if (t && t._textures && t._textures.length)
                            for (var r = 0; r < t._textures.length; r++)
                                if (t._textures[r] instanceof d.Texture) {
                                    var i = t._textures[r].baseTexture; - 1 === e.indexOf(i) && (e.push(i), n = !0)
                                }
                        return n
                    }

                    function o(t, e) {
                        return t instanceof d.BaseTexture && (-1 === e.indexOf(t) && e.push(t), !0)
                    }

                    function a(t, e) {
                        if (t._texture && t._texture instanceof d.Texture) {
                            var n = t._texture.baseTexture;
                            return -1 === e.indexOf(n) && e.push(n), !0
                        }
                        return !1
                    }

                    function s(t, e) {
                        return e instanceof d.Text && (e.updateText(!0), !0)
                    }

                    function u(t, e) {
                        if (e instanceof d.TextStyle) {
                            var n = e.toFontString();
                            return d.TextMetrics.measureFont(n), !0
                        }
                        return !1
                    }

                    function l(t, e) {
                        if (t instanceof d.Text) {
                            -1 === e.indexOf(t.style) && e.push(t.style), -1 === e.indexOf(t) && e.push(t);
                            var n = t._texture.baseTexture;
                            return -1 === e.indexOf(n) && e.push(n), !0
                        }
                        return !1
                    }

                    function c(t, e) {
                        return t instanceof d.TextStyle && (-1 === e.indexOf(t) && e.push(t), !0)
                    }
                    n.__esModule = !0;
                    var h = t("../core"),
                        d = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(h),
                        f = t("./limiters/CountLimiter"),
                        p = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(f),
                        g = d.ticker.shared;
                    d.settings.UPLOADS_PER_FRAME = 4;
                    var m = function() {
                        function t(e) {
                            var n = this;
                            r(this, t), this.limiter = new p.default(d.settings.UPLOADS_PER_FRAME), this.renderer = e, this.uploadHookHelper = null, this.queue = [], this.addHooks = [], this.uploadHooks = [], this.completes = [], this.ticking = !1, this.delayedTick = function() {
                                n.queue && n.prepareItems()
                            }, this.registerFindHook(l), this.registerFindHook(c), this.registerFindHook(i), this.registerFindHook(o), this.registerFindHook(a), this.registerUploadHook(s), this.registerUploadHook(u)
                        }
                        return t.prototype.upload = function(t, e) {
                            "function" == typeof t && (e = t, t = null), t && this.add(t), this.queue.length ? (e && this.completes.push(e), this.ticking || (this.ticking = !0, g.addOnce(this.tick, this, d.UPDATE_PRIORITY.UTILITY))) : e && e()
                        }, t.prototype.tick = function() {
                            setTimeout(this.delayedTick, 0)
                        }, t.prototype.prepareItems = function() {
                            for (this.limiter.beginFrame(); this.queue.length && this.limiter.allowedToUpload();) {
                                var t = this.queue[0],
                                    e = !1;
                                if (t && !t._destroyed)
                                    for (var n = 0, r = this.uploadHooks.length; n < r; n++)
                                        if (this.uploadHooks[n](this.uploadHookHelper, t)) {
                                            this.queue.shift(), e = !0;
                                            break
                                        }
                                e || this.queue.shift()
                            }
                            if (this.queue.length) g.addOnce(this.tick, this, d.UPDATE_PRIORITY.UTILITY);
                            else {
                                this.ticking = !1;
                                var i = this.completes.slice(0);
                                this.completes.length = 0;
                                for (var o = 0, a = i.length; o < a; o++) i[o]()
                            }
                        }, t.prototype.registerFindHook = function(t) {
                            return t && this.addHooks.push(t), this
                        }, t.prototype.registerUploadHook = function(t) {
                            return t && this.uploadHooks.push(t), this
                        }, t.prototype.add = function(t) {
                            for (var e = 0, n = this.addHooks.length; e < n && !this.addHooks[e](t, this.queue); e++);
                            if (t instanceof d.Container)
                                for (var r = t.children.length - 1; r >= 0; r--) this.add(t.children[r]);
                            return this
                        }, t.prototype.destroy = function() {
                            this.ticking && g.remove(this.tick, this), this.ticking = !1, this.addHooks = null, this.uploadHooks = null, this.renderer = null, this.completes = null, this.queue = null, this.limiter = null, this.uploadHookHelper = null
                        }, t
                    }();
                    n.default = m
                }, {
                    "../core": 64,
                    "./limiters/CountLimiter": 184
                }],
                182: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }

                    function a(t, e) {
                        if (e instanceof u.BaseTexture) {
                            var n = e.source,
                                r = 0 === n.width ? t.canvas.width : Math.min(t.canvas.width, n.width),
                                i = 0 === n.height ? t.canvas.height : Math.min(t.canvas.height, n.height);
                            return t.ctx.drawImage(n, 0, 0, r, i, 0, 0, t.canvas.width, t.canvas.height), !0
                        }
                        return !1
                    }
                    n.__esModule = !0;
                    var s = t("../../core"),
                        u = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(s),
                        l = t("../BasePrepare"),
                        c = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(l),
                        h = 16,
                        d = function(t) {
                            function e(n) {
                                r(this, e);
                                var o = i(this, t.call(this, n));
                                return o.uploadHookHelper = o, o.canvas = document.createElement("canvas"), o.canvas.width = h, o.canvas.height = h, o.ctx = o.canvas.getContext("2d"), o.registerUploadHook(a), o
                            }
                            return o(e, t), e.prototype.destroy = function() {
                                t.prototype.destroy.call(this), this.ctx = null, this.canvas = null
                            }, e
                        }(c.default);
                    n.default = d, u.CanvasRenderer.registerPlugin("prepare", d)
                }, {
                    "../../core": 64,
                    "../BasePrepare": 181
                }],
                183: [function(t, e, n) {
                    "use strict";

                    function r(t) {
                        return t && t.__esModule ? t : {
                            default: t
                        }
                    }
                    n.__esModule = !0;
                    var i = t("./webgl/WebGLPrepare");
                    Object.defineProperty(n, "webgl", {
                        enumerable: !0,
                        get: function() {
                            return r(i).default
                        }
                    });
                    var o = t("./canvas/CanvasPrepare");
                    Object.defineProperty(n, "canvas", {
                        enumerable: !0,
                        get: function() {
                            return r(o).default
                        }
                    });
                    var a = t("./BasePrepare");
                    Object.defineProperty(n, "BasePrepare", {
                        enumerable: !0,
                        get: function() {
                            return r(a).default
                        }
                    });
                    var s = t("./limiters/CountLimiter");
                    Object.defineProperty(n, "CountLimiter", {
                        enumerable: !0,
                        get: function() {
                            return r(s).default
                        }
                    });
                    var u = t("./limiters/TimeLimiter");
                    Object.defineProperty(n, "TimeLimiter", {
                        enumerable: !0,
                        get: function() {
                            return r(u).default
                        }
                    })
                }, {
                    "./BasePrepare": 181,
                    "./canvas/CanvasPrepare": 182,
                    "./limiters/CountLimiter": 184,
                    "./limiters/TimeLimiter": 185,
                    "./webgl/WebGLPrepare": 186
                }],
                184: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t(e) {
                            r(this, t), this.maxItemsPerFrame = e, this.itemsLeft = 0
                        }
                        return t.prototype.beginFrame = function() {
                            this.itemsLeft = this.maxItemsPerFrame
                        }, t.prototype.allowedToUpload = function() {
                            return this.itemsLeft-- > 0
                        }, t
                    }();
                    n.default = i
                }, {}],
                185: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }
                    n.__esModule = !0;
                    var i = function() {
                        function t(e) {
                            r(this, t), this.maxMilliseconds = e, this.frameStart = 0
                        }
                        return t.prototype.beginFrame = function() {
                            this.frameStart = Date.now()
                        }, t.prototype.allowedToUpload = function() {
                            return Date.now() - this.frameStart < this.maxMilliseconds
                        }, t
                    }();
                    n.default = i
                }, {}],
                186: [function(t, e, n) {
                    "use strict";

                    function r(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }

                    function i(t, e) {
                        if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return !e || "object" != typeof e && "function" != typeof e ? t : e
                    }

                    function o(t, e) {
                        if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                        t.prototype = Object.create(e && e.prototype, {
                            constructor: {
                                value: t,
                                enumerable: !1,
                                writable: !0,
                                configurable: !0
                            }
                        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                    }

                    function a(t, e) {
                        return e instanceof c.BaseTexture && (e._glTextures[t.CONTEXT_UID] || t.textureManager.updateTexture(e), !0)
                    }

                    function s(t, e) {
                        return e instanceof c.Graphics && ((e.dirty || e.clearDirty || !e._webGL[t.plugins.graphics.CONTEXT_UID]) && t.plugins.graphics.updateGraphics(e), !0)
                    }

                    function u(t, e) {
                        return t instanceof c.Graphics && (e.push(t), !0)
                    }
                    n.__esModule = !0;
                    var l = t("../../core"),
                        c = function(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }(l),
                        h = t("../BasePrepare"),
                        d = function(t) {
                            return t && t.__esModule ? t : {
                                default: t
                            }
                        }(h),
                        f = function(t) {
                            function e(n) {
                                r(this, e);
                                var o = i(this, t.call(this, n));
                                return o.uploadHookHelper = o.renderer, o.registerFindHook(u), o.registerUploadHook(a), o.registerUploadHook(s), o
                            }
                            return o(e, t), e
                        }(d.default);
                    n.default = f, c.WebGLRenderer.registerPlugin("prepare", f)
                }, {
                    "../../core": 64,
                    "../BasePrepare": 181
                }],
                187: [function(t, e, n) {
                    (function(e) {
                        "use strict";

                        function r(t) {
                            if (t && t.__esModule) return t;
                            var e = {};
                            if (null != t)
                                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
                            return e.default = t, e
                        }
                        n.__esModule = !0, n.loader = n.prepare = n.particles = n.mesh = n.loaders = n.interaction = n.filters = n.extras = n.extract = n.accessibility = void 0;
                        var i = t("./polyfill");
                        Object.keys(i).forEach(function(t) {
                            "default" !== t && "__esModule" !== t && Object.defineProperty(n, t, {
                                enumerable: !0,
                                get: function() {
                                    return i[t]
                                }
                            })
                        });
                        var o = t("./core");
                        Object.keys(o).forEach(function(t) {
                            "default" !== t && "__esModule" !== t && Object.defineProperty(n, t, {
                                enumerable: !0,
                                get: function() {
                                    return o[t]
                                }
                            })
                        });
                        var a = t("./deprecation"),
                            s = function(t) {
                                return t && t.__esModule ? t : {
                                    default: t
                                }
                            }(a),
                            u = t("./accessibility"),
                            l = r(u),
                            c = t("./extract"),
                            h = r(c),
                            d = t("./extras"),
                            f = r(d),
                            p = t("./filters"),
                            g = r(p),
                            m = t("./interaction"),
                            y = r(m),
                            b = t("./loaders"),
                            v = r(b),
                            _ = t("./mesh"),
                            x = r(_),
                            T = t("./particles"),
                            w = r(T),
                            S = t("./prepare"),
                            C = r(S);
                        o.utils.mixins.performMixins();
                        var E = v.shared || null;
                        n.accessibility = l, n.extract = h, n.extras = f, n.filters = g, n.interaction = y, n.loaders = v, n.mesh = x, n.particles = w, n.prepare = C, n.loader = E, "function" == typeof s.default && (0, s.default)(n), e.PIXI = n
                    }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
                }, {
                    "./accessibility": 41,
                    "./core": 64,
                    "./deprecation": 129,
                    "./extract": 131,
                    "./extras": 140,
                    "./filters": 151,
                    "./interaction": 158,
                    "./loaders": 161,
                    "./mesh": 170,
                    "./particles": 173,
                    "./polyfill": 179,
                    "./prepare": 183
                }]
            }, {}, [187])(187)
        }), define("skbJet/component/gladPixiRenderer/Timer", [], function() {
            function t(e, n) {
                this.index = t.index++, t.map[this.index] = this, this.callBack = e, this.delay = n, this.startTime = Date.now(), this.pauseTime = null;
                var r = this;
                this._innerIndex = window.setTimeout(function() {
                    delete t.map[r.index], r.callBack()
                }, n)
            }

            function e(t, n) {
                this.index = e.index++, e.map[this.index] = this, this.callBack = t, this.delay = n, this.startTime = Date.now(), this.pauseTime = null, this._innerTimeoutIndex = null;
                var r = this;
                this._innerIndex = window.setInterval(r.callBack, n)
            }

            function n(e, n) {
                return new t(e, n).index
            }

            function r(e) {
                t.map[e] && t.map[e].clear()
            }

            function i(t, n) {
                return new e(t, n).index
            }

            function o(t) {
                e.map[t] && e.map[t].clear()
            }

            function a() {
                e.pause(), t.pause()
            }

            function s() {
                e.resume(), t.resume()
            }
            return t.index = 1, t.map = {}, t.pause = function() {
                for (var e in t.map) t.map[e] && t.map[e].pause()
            }, t.resume = function() {
                for (var e in t.map) t.map[e] && t.map[e].resume()
            }, t.prototype.pause = function() {
                var t = this;
                t._innerIndex && (window.clearTimeout(t._innerIndex), t.pauseTime = Date.now() - t.startTime, t._innerIndex = null)
            }, t.prototype.resume = function() {
                var e = this;
                !e._innerIndex && e.pauseTime && (this._innerIndex = window.setTimeout(function() {
                    delete t.map[e.index], e.callBack()
                }, e.delay - e.pauseTime), e.startTime = Date.now() - e.pauseTime, this.pauseTime = null)
            }, t.prototype.clear = function() {
                var e = this;
                e._innerIndex && (window.clearTimeout(e._innerIndex), e._innerIndex = null), delete t.map[e.index]
            }, e.index = 1, e.map = {}, e.pause = function() {
                for (var t in e.map) e.map[t] && e.map[t].pause()
            }, e.resume = function() {
                for (var t in e.map) e.map[t] && e.map[t].resume()
            }, e.prototype.pause = function() {
                var t = this;
                t._innerIndex ? (window.clearInterval(t._innerIndex), t.pauseTime = (Date.now() - t.startTime) % t.delay, t._innerIndex = null, t._innerTimeoutIndex = null) : t._innerTimeoutIndex && (window.clearTimeout(t._innerTimeoutIndex), t.pauseTime = Date.now() - t.startTime, t._innerIndex = null, t._innerTimeoutIndex = null)
            }, e.prototype.resume = function() {
                var t = this;
                t._innerIndex || t._innerTimeoutIndex || !t.pauseTime || (t._innerTimeoutIndex = window.setTimeout(function() {
                    t._innerIndex = window.setInterval(t.callBack, t.delay), t._innerTimeoutIndex = null, t.callBack()
                }, t.delay - t.pauseTime), t.startTime = Date.now() - t.pauseTime, this.pauseTime = null)
            }, e.prototype.clear = function() {
                var t = this;
                t._innerIndex ? (window.clearInterval(t._innerIndex), t._innerIndex = null, t._innerTimeoutIndex = null) : t._innerTimeoutIndex && (window.clearTimeout(t._innerTimeoutIndex), t._innerIndex = null, t._innerTimeoutIndex = null), delete e.map[t.index]
            }, {
                setTimeout: n,
                clearTimeout: r,
                setInterval: i,
                clearInterval: o,
                pause: a,
                resume: s
            }
        }), define("skbJet/component/gladPixiRenderer/Sprite", ["require", "com/pixijs/pixi", "skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(t) {
            function e(t) {
                return t.match(/^_/) ? t.substring(1) : t
            }

            function n() {
                return {
                    _width: 0,
                    _height: 0,
                    _top: 0,
                    _left: 0,
                    _opacity: 1,
                    _background: {
                        _color: null,
                        _imagePlate: null,
                        _position: {
                            _x: 0,
                            _y: 0
                        }
                    },
                    _transform: {
                        _scale: {
                            _x: 1,
                            _y: 1
                        },
                        _rotate: 0
                    },
                    _text: {
                        _align: "center",
                        _color: "000000",
                        _token: "",
                        _lineHeight: 12,
                        _strokeWidth: 0,
                        _strokeColor: ""
                    },
                    _font: {
                        _size: 12,
                        _weight: "normal"
                    },
                    _display: "block"
                }
            }

            function r(t, e) {
                if (!e) return t;
                if (null != e._width && "" !== e._width && (t._width = Number(e._width)), null != e._height && "" !== e._height && (t._height = Number(e._height)), null != e._left && "" !== e._left && (t._left = Number(e._left)), null != e._top && "" !== e._top && (t._top = Number(e._top)), null != e._opacity && ("string" == typeof e._opacity && "" === e._opacity || (t._opacity = Number(e._opacity))), e._background && (t._background || (t._background = {}), e._background._color && (t._background._color = e._background._color), e._background._imagePlate && (t._background._imagePlate = e._background._imagePlate), e._background._position && (null != e._background._position._x && "" !== e._background._position._x && (t._background._position._x = Number(e._background._position._x)), null != e._background._position._y && "" !== e._background._position._y && (t._background._position._y = Number(e._background._position._y)))), e._transform) {
                    if (t._transform || (t._transform = {}), e._transform._scale) {
                        if (t._transform._scale || (t._transform._scale = {}), null != e._transform._scale._x && ("string" != typeof e._transform._scale._x || "" !== e._transform._scale._x)) {
                            var n = Number(e._transform._scale._x);
                            t._transform._scale._x = n
                        }
                        if (null != e._transform._scale._y && ("string" != typeof e._transform._scale._y || "" !== e._transform._scale._y)) {
                            var n = Number(e._transform._scale._y);
                            t._transform._scale._y = n
                        }
                    }
                    null != e._transform._rotate && "" !== e._transform._rotate && (t._transform._rotate = Number(e._transform._rotate))
                }
                return e._text && (t._text || (t._text = {}), e._text._align && (t._text._align = e._text._align), e._text._color && (t._text._color = e._text._color), null != e._text._token && (t._text._token = e._text._token), null != e._text._lineHeight ? t._text._lineHeight = e._text._lineHeight : e._font && e._font._size && (t._text._lineHeight = e._font._size), null != e._text._strokeWidth && (t._text._strokeWidth = e._text._strokeWidth), null != e._text._strokeColor && (t._text._strokeColor = e._text._strokeColor)), e._font && (t._font || (t._font = {}), e._font._size && (t._font._size = e._font._size), e._font._weight && (t._font._weight = e._font._weight), e._font._family && (t._font._family = e._font._family)), e._display && (t._display = e._display), e._overflow && (t._overflow = e._overflow), t
            }

            function i(t) {
                var e = n();
                return r(e, t.data._style), e
            }

            function o(t) {
                return !(null === t || void 0 === t || "" === t)
            }

            function a(t) {
                t.pixiContainer || (t.pixiContainer = new h.Container);
                var n = t._currentStyle,
                    r = t.pixiContainer,
                    i = Number(n._width),
                    a = Number(n._height);
                if (r.pivot.x = i / 2, r.pivot.y = a / 2, r.x = Number(n._left) + r.pivot.x, r.y = Number(n._top) + r.pivot.y, o(n._background)) {
                    if (o(n._background._color)) {
                        var s = n._background._color + "";
                        "#" === s.charAt(0) && (s = s.substring(1)), s = s.toUpperCase(), r.$bgColor || (r.$bgColor = new h.Graphics, r.addChild(r.$bgColor), r.$bgColor.width = i, r.$bgColor.height = a), r.$bgColor.beginFill(Number("0x" + s), 1), r.$bgColor.drawRect(0, 0, i, a), r.$bgColor.endFill()
                    }
                    if (r.$sprite || (r.$sprite = new h.Sprite, r.addChildAt(r.$sprite, 0)), r.$sprite.width = i, r.$sprite.height = a, o(n._background._imagePlate)) {
                        var u = e(n._background._imagePlate);
                        r.$sprite.texture = h.Texture.fromFrame(u)
                    }
                }
                if (o(n._text) && o(n._text._token)) {
                    r.$text || (r.$text = new h.Text, r.addChild(r.$text));
                    var l = r.$text;
                    if (o(n._text._align) && (l.style.align = n._text._align), o(n._text._color) && (l.style.fill = "#" + n._text._color), o(n._font) && (o(n._font._family) && (l.style.fontFamily = n._font._family.split(",")[0]), o(n._font._size) && (l.style.fontSize = n._font._size), o(n._font._weight) && (l.style.fontWeight = "" + n._font._weight)), o(n._text._lineHeight) && (l.style.lineHeight = "" + n._text._lineHeight), o(n._width) && (l.style.wordWrapWidth = Number(n._width), l.style.wordWrap = !0), o(n._height) && (l.style.padding = 1), l.text = n._text._token, o(n._font) && o(n._font._size) && t.autoFontFitText) {
                        l.style.wordWrap = !1;
                        for (var c = Number(n._font._size); c > 1 && l.width > i; c--) l.style.fontSize = c
                    }
                    var d = l.style.align;
                    l.x = "right" === d ? i - l.width : "center" === d ? r.x - l.width / 2 - Number(n._left) : 0
                } else r.$text && (r.$text.text = "");
                o(n._transform) && o(n._transform._scale) && (o(n._transform._scale._x) && (r.scale.x = Number(n._transform._scale._x)), o(n._transform._scale._y) && (r.scale.y = Number(n._transform._scale._y))), o(n._transform) && o(n._transform._rotate) && (r.rotation = Number(n._transform._rotate) * Math.PI / 180), o(n._opacity) && (r.alpha = Number(n._opacity))
            }

            function s(t, e) {
                t._currentStyle || (t._currentStyle = i(t)), r(t._currentStyle, e), a(t)
            }

            function u(e) {
                this.sprites = {}, this.data = e, c || (c = t("skbJet/component/gladPixiRenderer/gladPixiRenderer")), c.lib[e._name] = this, s(this);
                for (var n = 0; n < e._SPRITES.length; n++) this.addChildFromData(e._SPRITES[n])
            }

            function l() {
                var t = {};
                for (var e in h.utils.TextureCache) {
                    var n = e.match(/^(\w+)_\d+$/);
                    if (n) {
                        var r = n[1];
                        t[r] || (t[r] = []), t[r].push(e)
                    }
                }
                for (var i in t) t[i].sort(function(t, e) {
                    return parseInt(t.match(/\d+$/)[0]) - parseInt(e.match(/\d+$/)[0])
                });
                return t
            }
            var c, h = t("com/pixijs/pixi");
            u.prototype.addChildFromData = function(t) {
                var e = new u(t);
                return this.sprites[t._name] = e, e.parent = this, this.pixiContainer.addChild(e.pixiContainer), e
            }, u.prototype.setText = function(t) {
                s(this, {
                    _text: {
                        _token: t
                    }
                })
            }, u.prototype.getText = function() {
                return this.pixiContainer.$text.text
            }, u.prototype.getTextWidth = function() {
                return this.pixiContainer.$text.width
            }, u.prototype.setImage = function(t) {
                h.utils.TextureCache[t] && (r(this._currentStyle, {
                    _background: {
                        _imagePlate: t
                    }
                }), this.pixiContainer.$sprite.texture = h.Texture.fromFrame(t))
            }, u.prototype.getImage = function() {
                return this._currentStyle && this._currentStyle._background ? this._currentStyle._background._imagePlate : null
            }, u.prototype.updateCurrentStyle = function(t) {
                s(this, t)
            }, u.prototype.on = function(t, e) {
                if (this.pixiContainer.interactive = !0, "click" === t) "ontouchstart" in window ? this.pixiContainer.on("touchstart", e) : this.pixiContainer.on("click", e);
                else if ("mouseover" === t) this.pixiContainer.on(t, e);
                else if ("mouseout" === t) "ontouchend" in window ? this.pixiContainer.on("touchendoutside", e) : this.pixiContainer.on("mouseout", e);
                else if ("mousedown" === t) "ontouchstart" in window ? this.pixiContainer.on("touchstart", e) : this.pixiContainer.on("mousedown", e);
                else {
                    if ("mouseup" !== t) throw "Not supported event!";
                    "ontouchend" in window ? this.pixiContainer.on("touchend", e) : this.pixiContainer.on("mouseup", e)
                }
            }, u.prototype.off = function(t, e) {
                if ("click" === t) "ontouchstart" in window ? this.pixiContainer.off("touchstart", e) : this.pixiContainer.off("click", e);
                else if ("mouseover" === t) this.pixiContainer.off("mouseover", e);
                else if ("mouseout" === t) "ontouchend" in window ? this.pixiContainer.off("touchendoutside", e) : this.pixiContainer.off("mouseout", e);
                else if ("mousedown" === t) "ontouchstart" in window ? this.pixiContainer.off("touchstart", e) : this.pixiContainer.off("mousedown", e);
                else {
                    if ("mouseup" !== t) throw "Not supported event!";
                    "ontouchend" in window ? this.pixiContainer.off("touchend", e) : this.pixiContainer.off("mouseup", e)
                }
            }, u.prototype.transformParentCoordinateSystemToSelf = function(t) {
                var e = this._currentStyle._width,
                    n = this._currentStyle._height,
                    r = this._currentStyle._top,
                    i = this._currentStyle._left,
                    o = this._currentStyle._transform._scale._x,
                    a = this._currentStyle._transform._scale._y,
                    s = this._currentStyle._transform._rotate * Math.PI / 180,
                    u = t.x,
                    l = t.y;
                u = u - i - e / 2, l = l - r - n / 2;
                var c = u * Math.cos(s) + l * Math.sin(s),
                    h = l * Math.cos(s) - u * Math.sin(s);
                return u = c / o, l = h / a, u += e / 2, l += n / 2, {
                    x: u,
                    y: l
                }
            }, u.prototype.toLocal = function(t) {
                for (var e = [], n = this, r = t; n._currentStyle;) e.push(n), n = n.parent;
                for (var i = e.length - 1; i >= 0; i--) n = e[i], r = n.transformParentCoordinateSystemToSelf(r);
                return r
            }, u.prototype.transformSelfCoordinateSystemToParent = function(t) {
                var e = this._currentStyle._width,
                    n = this._currentStyle._height,
                    r = this._currentStyle._top,
                    i = this._currentStyle._left,
                    o = this._currentStyle._transform._scale._x,
                    a = this._currentStyle._transform._scale._y,
                    s = this._currentStyle._transform._rotate * Math.PI / 180,
                    u = t.x,
                    l = t.y;
                u -= e / 2, l -= n / 2, u *= o, l *= a;
                var c = u * Math.cos(s) - l * Math.sin(s),
                    h = l * Math.cos(s) + u * Math.sin(s);
                return u = c + i + e / 2, l = h + r + n / 2, {
                    x: u,
                    y: l
                }
            }, u.prototype.toGlobal = function(t) {
                for (var e = this, n = t; e._currentStyle && n;) n = e.transformSelfCoordinateSystemToParent(n), e = e.parent;
                return n
            }, u.prototype.getName = function() {
                return this.data._name
            }, u.prototype.getParent = function() {
                return this.parent
            }, u.prototype.show = function(t) {
                this.pixiContainer.visible = !!t
            };
            var d = null;
            return u.addSpriteSheetAnimation = function(t, e) {
                d || (d = l()), d[t] = e
            }, u.getSpriteSheetAnimationFrameArray = function(t) {
                return d || (d = l()), d[t]
            }, u.prototype.gotoAndPlay = function(t, e, n) {
                if (d || (d = l()), !d[t]) throw "Cannot find sprite animation " + t;
                this.pixiContainer.$sprite ? this.pixiContainer.$sprite.animName !== t && (this.pixiContainer.removeChild(this.pixiContainer.$sprite).destroy(), this.pixiContainer.$sprite = h.extras.AnimatedSprite.fromFrames(d[t]), this.pixiContainer.addChildAt(this.pixiContainer.$sprite, this.data._style._background && this.data._style._background._color ? 1 : 0), this.pixiContainer.$sprite.width = Number(this._currentStyle._width), this.pixiContainer.$sprite.height = Number(this._currentStyle._height)) : (this.pixiContainer.$sprite = h.extras.AnimatedSprite.fromFrames(d[t]), this.pixiContainer.addChildAt(this.pixiContainer.$sprite, this.data._style._background._color ? 1 : 0)), this.pixiContainer.$sprite.animName = t, this.pixiContainer.$sprite.animationSpeed = e || 1, this.pixiContainer.$sprite.loop = !!n, this.pixiContainer.$sprite.onComplete = this.onComplete, this.pixiContainer.$sprite.gotoAndStop(0), this.pixiContainer.$sprite.play()
            }, u.prototype.stopPlay = function() {
                this.pixiContainer.$sprite && this.pixiContainer.$sprite.stop && this.pixiContainer.$sprite.stop()
            }, u.prototype.onComplete = null, u.prototype.autoFontFitText = !1, u
        }), define("skbJet/component/gladPixiRenderer/Layer", ["require", "com/pixijs/pixi", "skbJet/component/gladPixiRenderer/Sprite", "skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(t) {
            function e(e) {
                this.sprites = {}, this.data = e, n || (n = t("skbJet/component/gladPixiRenderer/gladPixiRenderer")), n.lib[e._name] = this, this.pixiContainer = new r.Container;
                for (var o = 0; o < e._SPRITES.length; o++) {
                    var a = e._SPRITES[o];
                    this.sprites[a._name] = new i(a), this.sprites[a._name].parent = this, this.pixiContainer.addChild(this.sprites[a._name].pixiContainer)
                }
            }
            var n, r = t("com/pixijs/pixi"),
                i = t("skbJet/component/gladPixiRenderer/Sprite");
            return e.prototype.show = function(t) {
                this.pixiContainer.visible = !!t
            }, e
        }), define("skbJet/component/gladPixiRenderer/KeyFrameAnimation", ["require", "skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(t) {
            function e(e, n, r) {
                if (this.animData = e, r || (r = this.animData._name), e._keyFrames && e._keyFrames.length > 0) {
                    var i = e._keyFrames[e._keyFrames.length - 1];
                    this.maxTime = Number(i._time), this._spritesNameList = [];
                    for (var o = 0; o < i._SPRITES.length; o++) this._spritesNameList.push(i._SPRITES[o]._name);
                    if (n)
                        for (var o = 0; o < n.length && o < i._SPRITES.length; o++) this._spritesNameList[o] = n[o]
                }
                this._name = r, s || (s = t("skbJet/component/gladPixiRenderer/gladPixiRenderer")), s.animMap[r] = this
            }

            function n(t) {
                t.pause(), t.timeCount = 0, t.loopCount = 0, t.loopNumber = 1, t._frameIndex = 0
            }

            function r(t, e, n) {
                var r = Number(t);
                return (Number(e) - r) * n + r
            }

            function i(t, e, n) {
                if (e = Number(e), t.animData._keyFrames.length <= 1 || e <= 0) return 0;
                n || (n = 0);
                for (var r = n; r < t.animData._keyFrames.length; r++)
                    if (e <= Number(t.animData._keyFrames[r]._time) && e > Number(t.animData._keyFrames[r - 1]._time)) return r;
                return t.animData._keyFrames.length
            }

            function o(t) {
                return !(null === t || void 0 === t || "" === t)
            }

            function a(t, e, n, i) {
                if (n._style) {
                    var a = t._style,
                        s = e._style,
                        u = n._style;
                    o(u._width) && (s._width = r(a._width, u._width, i)), o(u._height) && (s._height = r(a._height, u._height, i)), o(u._top) && (s._top = r(a._top, u._top, i)), o(u._left) && (s._left = r(a._left, u._left, i)), o(u._opacity) && (s._opacity = r(a._opacity, u._opacity, i)), o(u._background) && (s._background = {}, o(u._background._position) && (s._background._position = {}, o(u._background._position._x) && (s._background._position._x = r(a._background._position._x, u._background._position._x, i)), o(u._background._position._y) && (s._background._position._y = r(a._background._position._y, u._background._position._y, i)))), o(u._transform) && (s._transform = {}, o(u._transform._rotate) && (s._transform._rotate = r(a._transform._rotate, u._transform._rotate, i)), o(u._transform._scale) && (s._transform._scale = {}, o(u._transform._scale._x) && (s._transform._scale._x = r(a._transform._scale._x, u._transform._scale._x, i)), o(u._transform._scale._y) && (s._transform._scale._y = r(a._transform._scale._y, u._transform._scale._y, i))), o(u._transform._skew) && (s._transform._skew = {}, o(u._transform._skew._x) && (s._transform._skew._x = r(a._transform._skew._x, u._transform._skew._x, i)), o(u._transform._skew._y) && (s._transform._skew._y = r(a._transform._skew._y, u._transform._skew._y, i))))
                }
            }
            var s;
            return e.prototype.animData = null, e.prototype.isPlaying = !1, e.prototype.maxTime = 0, e.prototype.timeCount = 0, e.prototype.loopCount = 0, e.prototype.loopNumber = 1, e.prototype._frameIndex = 0, e.prototype._onStart = null, e.prototype._onEnd = null, e.prototype._onComplete = null, e.prototype._onLoop = null, e.prototype._onFrame = null, e.prototype._onResume = null, e.prototype.updateStyleIfPlaying = function(t) {
                if (this.isPlaying) {
                    if (0 === this.timeCount && 0 === this.loopCount && this._onStart ? this._onStart() : (this.timeCount > 0 || this.loopCount > 0) && this._onResume && this._onResume(), this.timeCount += t, this.timeCount >= this.maxTime) {
                        if (++this.loopCount >= this.loopNumber) return this.updateStyleToTime(this.maxTime), n(this), void(this._onComplete && this._onComplete());
                        this.timeCount = 0, this._frameIndex = 0, this._onLoop && this._onLoop()
                    }
                    this.updateStyleToTime(this.timeCount)
                }
            }, e.prototype.updateStyleToTime = function(t) {
                if (!(t < 0 || t > this.maxTime)) {
                    var e = this.getFrameAtTime(t);
                    if (e._SPRITES)
                        for (var n = 0; n < this._spritesNameList.length; n++) {
                            var r = s.lib[this._spritesNameList[n]];
                            r.updateCurrentStyle(e._SPRITES[n]._style)
                        }
                }
            }, e.prototype.play = function(t) {
                this.maxTime <= 0 || !0 !== this.isPlaying && (t || (t = 1), this.loopNumber = t, this.lastTimeStamp = null, this.isPlaying = !0, this.timeCount = 0)
            }, e.prototype.stop = function() {
                n(this), this._onEnd && this._onEnd()
            }, e.prototype.pause = function() {
                this.isPlaying = !1, this.lastTimeStamp = null
            }, e.prototype.clone = function(t, n) {
                return new e(this.animData, t, n)
            }, e.prototype.getFrameAtTime = function(t) {
                var e = this;
                if (t = Number(t), 1 === e.animData._keyFrames.length) return t === Number(e.animData._keyFrames[0]._time) ? e.animData._keyFrames[0] : null;
                e._frameIndex = i(e, t, e._frameIndex);
                var n = e.animData._keyFrames[e._frameIndex];
                if (null == n) return null;
                if (n && n._time === t) return n;
                var r = e.animData._keyFrames[e._frameIndex - 1],
                    o = {
                        _time: t,
                        _SPRITES: []
                    },
                    s = o._time;
                e.animData._step && (s = e.animData._step * Math.floor(o._time / e.animData._step));
                for (var u = (s - r._time) / (n._time - r._time), l = 0; l < n._SPRITES.length; l++) {
                    var c = n._SPRITES[l],
                        h = r._SPRITES[l];
                    if (h._id !== c._id) throw "Error: sprite list dismatch in animation frames";
                    var d = {
                        _id: c._id,
                        _name: c._name,
                        _style: {}
                    };
                    a(h, d, c, u), o._SPRITES.push(d)
                }
                return o
            }, e
        }), define("skbJet/component/gladPixiRenderer/Scene", ["require", "com/pixijs/pixi", "skbJet/component/gladPixiRenderer/Layer", "skbJet/component/gladPixiRenderer/KeyFrameAnimation", "skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(t) {
            function e(e) {
                this.layers = {}, this.data = e, r || (r = t("skbJet/component/gladPixiRenderer/gladPixiRenderer")), r.lib[e._name] = this, this.pixiContainer = new i.Container;
                for (var n = 0; n < e._LAYERS.length; n++) {
                    var s = e._LAYERS[n];
                    this.layers[s._name] = new o(s), this.layers[s._name].parent = this, this.pixiContainer.addChild(this.layers[s._name].pixiContainer)
                }
                this._animations = [], this.show = function(t) {
                    this.pixiContainer.visible = t
                };
                for (var n = 0; n < e._ANIMATIONS.length; n++) {
                    "_KEY_FRAME_ANIMATION" === e._ANIMATIONS[n]._type && new a(e._ANIMATIONS[n])
                }
            }

            function n(t) {
                return !(null === t || void 0 === t || "" === t)
            }
            var r, i = t("com/pixijs/pixi"),
                o = t("skbJet/component/gladPixiRenderer/Layer"),
                a = t("skbJet/component/gladPixiRenderer/KeyFrameAnimation");
            return e.prototype.updateCurrentStyle = function(t) {
                var e = this.pixiContainer,
                    i = t,
                    o = Number(i._width),
                    a = Number(i._height);
                o || (o = r.getSize().width), a || (a = r.getSize().height), e.pivot.x = o / 2, e.pivot.y = a / 2, e.x = Number(i._left) + e.pivot.x, e.y = Number(i._top) + e.pivot.y, n(i._transform) && n(i._transform._scale) && (n(i._transform._scale._x) && (e.scale.x = Number(i._transform._scale._x)), n(i._transform._scale._y) && (e.scale.y = Number(i._transform._scale._y))), n(i._transform) && n(i._transform._rotate) && (e.rotation = Number(i._transform._rotate) * Math.PI / 180), n(i._opacity) && (e.alpha = Number(i._opacity))
            }, e
        }), define("skbJet/component/gladPixiRenderer/gladPixiRenderer", ["require", "com/pixijs/pixi", "skbJet/component/gladPixiRenderer/Timer", "skbJet/component/gladPixiRenderer/Scene"], function(t) {
            function e(t) {
                function e(t) {
                    var n = t._style;
                    if (n && (n._width && (n._width = 2 * Number(n._width)), n._height && (n._height = 2 * Number(n._height)), n._top && (n._top = 2 * Number(n._top)), n._left && (n._left = 2 * Number(n._left)), n._background && n._background._position && (n._background._position._x && (n._background._position._x = 2 * Number(n._background._position._x)), n._background._position._y && (n._background._position._y = 2 * Number(n._background._position._y))), n._font && n._font._size && (n._font._size = 2 * Number(n._font._size))), t._SPRITES)
                        for (var r = 0; r < t._SPRITES.length; r++) e(t._SPRITES[r])
                }
                t._width && (t._width = 2 * Number(t._width)), t._height && (t._height = 2 * Number(t._height));
                for (var n = 0; n < t._SCENES.length; n++) {
                    for (var r = 0; r < t._SCENES[n]._LAYERS.length; r++) e(t._SCENES[n]._LAYERS[r]);
                    for (var i = 0; i < t._SCENES[n]._ANIMATIONS.length; i++) {
                        var o = t._SCENES[n]._ANIMATIONS[i];
                        if ("_KEY_FRAME_ANIMATION" !== o._type) throw "Other animation type not support conver sprite pixel rate yet.";
                        for (var a = 0; a < o._keyFrames.length; a++)
                            for (var s = 0; s < o._keyFrames[a]._SPRITES.length; s++) e(o._keyFrames[a]._SPRITES[s])
                    }
                }
            }

            function n(t, e, n, r) {
                r || (r = _), v[t] = "webgl" === r ? new p.WebGLRenderer(e, n, {
                    transparent: !0,
                    resolution: 1,
                    antialias: !0
                }) : "2d" === r ? new p.CanvasRenderer(e, n, {
                    transparent: !0,
                    resolution: 1,
                    antialias: !0
                }) : p.autoDetectRenderer(e, n, {
                    transparent: !0,
                    resolution: 1,
                    antialias: !0
                });
                var i = v[t].view;
                i.style.display = "none", d.appendChild(i)
            }

            function r(t) {
                u && (u.view.style.display = "none"), u = v[t], u.view.style.display = "block", a(x.w, x.h)
            }

            function i(i, o, a) {
                l = i, l || (l = window._gladData), e(l), o || (o = document.getElementById("game")), _ = a, d = o, n("default", l._width, l._height, a), x.w = l._width, x.h = l._height, r("default"), f = {
                    width: l._width,
                    height: l._height
                }, h = new p.Container, s = t("skbJet/component/gladPixiRenderer/Scene");
                for (var g = 0; g < l._SCENES.length; g++) {
                    var v = l._SCENES[g];
                    m[v._name] = new s(v), h.addChild(m[v._name].pixiContainer)
                }
                c = new p.ticker.Ticker, c.add(function() {
                    for (var t in y) y[t].updateStyleIfPlaying(c.elapsedMS);
                    u.render(h)
                }), c.start(), document.addEventListener("visibilitychange", function() {
                    "hidden" === document.visibilityState ? (c.stop(), b.pause()) : (c.start(), b.resume())
                })
            }

            function o(t) {
                if (m[t])
                    for (var e in m) t === e ? m[e].show(!0) : m[e].show(!1)
            }

            function a(t, e) {
                var n = Number(u.view.width),
                    r = Number(u.view.height);
                if (0 !== n && 0 !== r && 0 !== t && 0 !== e) {
                    x.w = t, x.h = e;
                    var i, o, a = r / n;
                    e / t > a ? (i = Math.round(t), o = Math.round(t * a), u.view.style.marginTop = (e - o) / 2 + "px", u.view.style.marginLeft = "0px") : (o = Math.round(e), i = Math.round(e / a), u.view.style.marginLeft = (t - i) / 2 + "px", u.view.style.marginTop = "0px"), u.view.style.width = i + "px", u.view.style.height = o + "px"
                }
            }
            var s, u, l, c, h, d, f, p = t("com/pixijs/pixi"),
                g = {},
                m = {},
                y = {},
                b = t("skbJet/component/gladPixiRenderer/Timer"),
                v = {},
                _ = null,
                x = {
                    w: 0,
                    h: 0
                };
            return {
                init: i,
                lib: g,
                fitSize: a,
                showScene: o,
                animMap: y,
                newPixiRenderer: n,
                switchPixiRenderer: r,
                getSize: function() {
                    return {
                        width: f.width,
                        height: f.height
                    }
                },
                getPixiRenderer: function() {
                    return u
                },
                getTicker: function() {
                    return c
                },
                getTimer: function() {
                    return b
                }
            }
        }), define("skbJet/component/utils/Interface", [], function() {
            function t(t, e) {
                if (this.functions = t || [], e)
                    for (var n = 0; n < e.functions.length; n++) this.functions.indexOf(e.functions[n]) < 0 && this.functions.push(e.functions[n])
            }

            function e() {
                throw "Not implemented yet."
            }
            return t.prototype.implementedBy = function(t) {
                for (var n = 0; n < this.functions.length; n++) t[this.functions[n]] || (t[this.functions[n]] = e)
            }, t.prototype.isImplementedBy = function(t) {
                for (var e = 0; e < this.functions.length; e++) {
                    var n = t[this.functions[e]];
                    if (!n || "function" != typeof n) return !1
                }
                return !0
            }, t
        }), define("skbJet/component/channelAudioPlayer/IChannelAudioPlayer", ["skbJet/component/utils/Interface"], function(t) {
            return new t(["play", "stopChannel", "stopAll", "pauseChannel", "pauseAll", "resumeChannel", "resumeAll", "muteChannel", "muteAll", "volume", "fadeOut", "playAndFadeIn", "cancelFade", "gameAudioControlChanged", "consoleAudioControlChanged"])
        }), define("skbJet/component/resourceLoader/resourceLib", [], function() {
            return {}
        }), define("skbJet/component/channelAudioPlayer/channelAudioPlayerHelper", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/resourceLoader/resourceLib"], function(t, e) {
            function n() {}

            function r(t) {
                d = t
            }

            function i(t) {
                h = t
            }

            function o(e) {
                function n() {
                    var t = Number(window.innerWidth),
                        e = Number(window.innerHeight);
                    o.style.top = (e - 100) / 2 + "px", o.style.left = (t - 240) / 2 + "px";
                    var n = t > e ? e : t,
                        r = n > 600 ? n / 600 : 1;
                    o.style.transform = "scale(" + r + ")"
                }

                function r(e) {
                    var r = e || window.event;
                    r.stopPropagation(), r.cancelBubble = !0, document.body.removeChild(i);
                    var o = !1;
                    "audio_btn_YES" === this.id && (o = !0), h && h(o), setTimeout(function() {
                        d.muteAll(!o), s(o), t.publish("audioPlayer.playerSelectedWhenGameLaunch", o)
                    }, 110), window.removeEventListener("resize", n)
                }
                var i = document.createElement("div");
                i.style.width = "100%", i.style.height = "100%", i.style.backgroundColor = "rgba(0,0,0,.9)", i.style.position = "absolute", i.style.zIndex = 8, i.style.top = "0", i.style.left = "0", document.body.appendChild(i);
                var o = document.createElement("div");
                o.style.width = "240px", o.style.height = "100px", o.style.backgroundColor = "black", o.style.border = "2px solid white", o.style.borderRadius = "14px", o.style.position = "absolute", o.style.zIndex = 10, n(), window.addEventListener("resize", n), i.appendChild(o);
                var a = document.createElement("p");
                a.style.width = "220px", a.style.height = "40px", a.style.margin = "10px", a.style.color = "white", a.style.font = "normal 20px Arial", a.style.textAlign = "center", a.innerHTML = e.query, o.appendChild(a);
                var u = document.createElement("button");
                u.style.width = "60px", u.style.height = "26px", u.style.backgroundColor = "#DDDDDD", u.style.border = "2px solid white", u.style.borderRadius = "5px", u.style.float = "left", u.style.marginLeft = "33px", u.style.color = "balck", u.innerHTML = e.yes, u.id = "audio_btn_YES", o.appendChild(u);
                var l = document.createElement("button");
                l.style.width = "60px", l.style.height = "26px", l.style.backgroundColor = "#DDDDDD", l.style.border = "2px solid white", l.style.borderRadius = "5px", l.style.float = "right", l.style.marginRight = "33px", l.style.color = "balck", l.innerHTML = e.no, l.id = "audio_btn_NO", o.appendChild(l), u.addEventListener("click", r), l.addEventListener("click", r)
            }

            function a(n) {
                if (!g)
                    if ("INT" !== f) {
                        var r = {
                            query: e.i18n.game.audioLoader.confirm,
                            yes: e.i18n.game.audioLoader.yes,
                            no: e.i18n.game.audioLoader.no
                        };
                        o(r)
                    } else {
                        var i;
                        "STD" === p ? i = !0 : "BaseGame" === n.response.OutcomeDetail.NextStage ? (i = !1, localStorage.setItem("audioDefaultSwitchForDesktopmini" + m, i)) : i = null !== localStorage.getItem("audioDefaultSwitchForDesktopmini" + m) && "true" === localStorage.getItem("audioDefaultSwitchForDesktopmini" + m), s(i), setTimeout(function() {
                            d.muteAll(!i), t.publish("audioPlayer.playerSelectedWhenGameLaunch", i)
                        }, 20)
                    }
            }

            function s(n) {
                var r = "Sound",
                    i = "On",
                    o = "Off";
                g = !0, e.i18n.game.MenuCommand.audio && (r = e.i18n.game.MenuCommand.audio.sound, i = e.i18n.game.MenuCommand.audio.on, o = e.i18n.game.MenuCommand.audio.off), t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            name: "sound",
                            text: r,
                            type: "list",
                            enabled: 1,
                            value: n ? 0 : 1,
                            values: ["0", "1"],
                            valueText: [i, o]
                        }]
                    }
                })
            }

            function u(t) {
                "sound" === t.option && d.muteAll("1" === t.value), "INT" === f && "STD" !== p && localStorage.setItem("audioDefaultSwitchForDesktopmini" + m, "1" !== t.value)
            }

            function l(t) {
                f = t.serverConfig.channel, p = t.serverConfig.presenttype, m = t.serverConfig.softwareid
            }

            function c() {
                function n() {
                    if ("device" === r.config.screenEnvironment) {
                        o({
                            query: e.i18n.game.audioLoader.confirm,
                            yes: e.i18n.game.audioLoader.yes,
                            no: e.i18n.game.audioLoader.no
                        })
                    }
                    t.unsubscribe("SKBeInstant.gameParametersUpdated", n)
                }
                var r = require("skbJet/component/SKBeInstant/SKBeInstant");
                r.isSKB() || t.subscribe("SKBeInstant.gameParametersUpdated", n)
            }
            var h, d = {
                    muteAll: n,
                    pauseAll: n,
                    resumeAll: n
                },
                f = null,
                p = null,
                g = !1,
                m = null;
            return document.addEventListener("visibilitychange", function() {
                "hidden" === document.visibilityState ? d.pauseAll() : d.resumeAll()
            }), t.subscribe("platformMsg/Kernel/System.Init", l), t.subscribe("platformMsg/ConsoleService/Game.Control", u), t.subscribe("onBeforeShowStage", a), t.subscribe("jLotteryGame.assetsLoadedAndGameReady", c), {
                setChannelAudioPlayer: r,
                setPlayerAudioChoiceCallBack: i,
                gameAudioControlChanged: function(e) {
                    var n = 0;
                    e && (n = 1), t.publish("toPlatform", {
                        channel: "Game",
                        topic: "Game.Control",
                        data: {
                            name: "sound",
                            event: "change",
                            params: [n]
                        }
                    })
                },
                consoleAudioControlChanged: function(t) {
                    var e = !1;
                    return "sound" === t.option && "1" === t.value && (e = !0), e
                }
            }
        }), define("skbJet/component/resourceLoader/Util", [], function() {
            var t = {};
            return t.httpGetJson = function(e, n, r) {
                t.httpGetText(e, function(t) {
                    n(JSON.parse(t))
                }, r)
            }, t.httpGetText = function(t, e, n) {
                var r = new XMLHttpRequest;
                r.addEventListener("load", function(t) {
                    t.target.status >= 200 && t.target.status < 300 ? e(t.target.responseText) : n()
                }), r.addEventListener("error", n), r.addEventListener("timeout", n), r.open("GET", t), r.send()
            }, t.removeQueryStr = function(t) {
                var e = t.match(/(.*)\?/);
                return e ? e[1] : t
            }, t.getFileNameFromPath = function(t) {
                var e = t.match(/\/?([^\/]+)$/);
                return e ? e[1] : t
            }, t.getFileExt = function(e, n) {
                e = t.removeQueryStr(e), e = t.getFileNameFromPath(e);
                var r = e.match(/\.(\w+)$/);
                return r && r[1] ? n ? r[1].toLowerCase() : r[1] : null
            }, t.getFileNameWithoutExt = function(e) {
                e = t.removeQueryStr(e), e = t.getFileNameFromPath(e);
                var n = e.match(/(.*)(\.\w+)+$/);
                return n ? n[1] : e
            }, t.getParentFolder = function(e) {
                e = t.removeQueryStr(e);
                var n = t.getFileNameFromPath(e);
                return e.substring(0, e.length - n.length)
            }, t
        }),
        define("skbJet/component/resourceLoader/LoaderContext", [], function() {
            function t(t, e, n) {
                this.assetPackUrl = t, this.languageCode = e, this.skinCode = n, this.totalResAmount = 0, this.currentLoaded = 0, this.gameFolder = null, this.i18nParent = null, this.queryStr = "", window._cacheFlag && window._cacheFlag.queryStr && (this.queryStr = window._cacheFlag.queryStr), this.fileListMap = {
                    i18n: null
                }, this.subLoaderMap = {}, this.onFileLoaded = function() {}, this.onLoadFailed = function() {}
            }
            return t
        }), define("skbJet/component/resourceLoader/LoaderChainHandler", [], function() {
            function t() {}
            return t.prototype.next = null, t.prototype.handle = null, t
        }), define("skbJet/component/resourceLoader/handlers/languageListHandler", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/LoaderChainHandler"], function(t, e) {
            function n(t, e) {
                for (var n = {}, r = 0; r < t.length; r++) n[t[r]] = [t[r].toLowerCase()], t[r].indexOf("_") > -1 ? n[t[r]].push(t[r].replace("_", "-").toLowerCase()) : t[r].indexOf("-") > -1 && n[t[r]].push(t[r].replace("-", "_").toLowerCase());
                var i;
                for (var o in n)
                    if (n[o].indexOf("i18n/" + e.languageCode.toLowerCase() + ".json") >= 0) {
                        i = o.substring(o.lastIndexOf("/") + 1, o.lastIndexOf("."));
                        break
                    }
                if (!i)
                    for (var o in n)
                        if (n[o].indexOf("i18n/default.json") >= 0) {
                            i = o.substring(o.lastIndexOf("/") + 1, o.lastIndexOf("."));
                            break
                        }
                if (!i)
                    for (var o in n)
                        if (n[o].indexOf("i18n/en.json") >= 0) {
                            i = o.substring(o.lastIndexOf("/") + 1, o.lastIndexOf("."));
                            break
                        }
                return !!i && (e.languageCode = i, !0)
            }

            function r(e) {
                var n = e.gameFolder,
                    r = !1;
                if (window.location.search.match(/&?custom=true&?/) && (r = !0), window.gtk && window.gtk.jLottery && window.gtk.jLottery.embeddedParams && window.gtk.jLottery.embeddedParams.custom && (r = !0), r) {
                    var i, o = window.location.pathname;
                    o.match(/\/splash\.html$/) || o.match(/\/launcher\.html$/) ? (i = t.getParentFolder(o), i = i.match(/\/([^\/]+\/)$/)[1]) : i = e.gameFolder.match(/\/([^\/]+\/)$/)[1], n = "/custom_lang/" + e.skinCode + "/" + i
                }
                return n
            }
            var i = new e;
            return i.handle = function(e) {
                e.languageCode = e.languageCode || "default", e.languageCode = e.languageCode.toLowerCase();
                var o = e.assetPackUrl.substring(0, e.assetPackUrl.lastIndexOf("/"));
                e.gameFolder = o.substring(0, o.lastIndexOf("/") + 1), e.i18nParent = r(e), t.httpGetJson(e.i18nParent + "i18n.json" + e.queryStr, function(t) {
                    n(t.i18n, e) ? i.next.handle(e) : e.onLoadFailed()
                }, e.onLoadFailed)
            }, i
        }), define("skbJet/component/resourceLoader/handlers/skinListHandler", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/LoaderChainHandler"], function(t, e) {
            function n(t, e) {
                for (var n = 0; n < t.length; n++) {
                    var r = t[n];
                    if (r = r.substring(r.lastIndexOf("/") + 1, r.lastIndexOf(".")), e.skinCode.toLowerCase() === r.toLowerCase()) return
                }
                e.skinCode = "default"
            }
            var r = new e;
            return r.handle = function(e) {
                e.skinCode = e.skinCode || "default";
                var i = e.i18nParent + "i18n/" + e.languageCode + ".json" + e.queryStr;
                t.httpGetJson(i, function(t) {
                    n(t[e.languageCode], e), r.next.handle(e)
                }, e.onLoadFailed)
            }, r
        }), define("skbJet/component/resourceLoader/handlers/fileListHandler", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/LoaderChainHandler"], function(t, e) {
            function n(t, e, n, r) {
                r.fileListMap[t] || (r.fileListMap[t] = {});
                for (var i = 0; i < e.length; i++) r.fileListMap[t][e[i]] = n
            }

            function r(e, r) {
                var o = e.assetPackUrl + ".json" + e.queryStr;
                t.httpGetJson(o, function(t) {
                    for (var o in t) n(o, t[o], e.gameFolder + "assetPacks/", e);
                    var s = e.assetPackUrl.substring(e.assetPackUrl.lastIndexOf("assetPacks"));
                    r && r.indexOf(e.skinCode + "/" + s + ".json") > -1 ? i(e, s) : a.next.handle(e)
                }, e.onLoadFailed)
            }

            function i(e, r) {
                var i = e.i18nParent + "i18n/" + e.languageCode + "/" + e.skinCode + "/",
                    o = i + r + ".json" + e.queryStr;
                t.httpGetJson(o, function(t) {
                    for (var r in t) n(r, t[r], i + "assetPacks/", e);
                    a.next.handle(e)
                }, e.onLoadFailed)
            }

            function o(e) {
                var i = e.i18nParent + "i18n/",
                    o = i + e.languageCode + "/",
                    a = o + e.skinCode + ".json" + e.queryStr;
                t.httpGetJson(a, function(t) {
                    n("i18n", t[e.skinCode], o, e), r(e, t.assetPacks)
                }, e.onLoadFailed)
            }
            var a = new e;
            return a.handle = o, a
        }), define("skbJet/component/resourceLoader/handlers/fileLoadHandler", ["skbJet/component/resourceLoader/LoaderChainHandler"], function(t) {
            function e(t, e, n) {
                setTimeout(function() {
                    t.load(e, n)
                }, 1)
            }
            var n = new t;
            return n.handle = function(t) {
                for (var n in t.fileListMap) t.subLoaderMap[n] && e(t.subLoaderMap[n], t.fileListMap[n], {
                    onFileLoaded: t.onFileLoaded,
                    onLoadFailed: t.onLoadFailed,
                    queryStr: t.queryStr
                })
            }, n.addSubLoader = function(t, e, n) {
                t.subLoaderMap[e] = n
            }, n.summary = function(t) {
                var e = 0,
                    n = 0,
                    r = !0;
                for (var i in t.fileListMap) t.subLoaderMap[i] && (e += t.subLoaderMap[i].getTotal(), n += t.subLoaderMap[i].getCurrent(), r = r && t.subLoaderMap[i].isComplete());
                return {
                    total: e,
                    current: n,
                    complete: r
                }
            }, n
        }), define("skbJet/component/resourceLoader/ResourceLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/LoaderContext", "skbJet/component/resourceLoader/handlers/languageListHandler", "skbJet/component/resourceLoader/handlers/skinListHandler", "skbJet/component/resourceLoader/handlers/fileListHandler", "skbJet/component/resourceLoader/handlers/fileLoadHandler"], function(t, e, n, r, i, o) {
            function a(t, a, s) {
                this.context = new e(t, a, s), this.loadChain = [n, r, i, o]
            }
            var s;
            return a.prototype.load = function(t, e) {
                for (var n = 0; n < this.loadChain.length - 1; n++) this.loadChain[n].next = this.loadChain[n + 1];
                this.context.onFileLoaded = t, this.context.onLoadFailed = e, this.loadChain[0].handle(this.context)
            }, a.prototype.addSubLoader = function(t, e) {
                o.addSubLoader(this.context, t, e)
            }, a.prototype.currentProgress = function() {
                return o.summary(this.context)
            }, a.initDefault = function(t, e, n) {
                if (s) throw "Default loader already inited.";
                s = new a(t, e, n)
            }, a.getDefault = function() {
                return s
            }, a.setDefault = function(t) {
                s = t
            }, a.prototype.addHeartBeat = function(t, e) {
                function n() {
                    var e = r.currentProgress();
                    if (e.complete) return clearInterval(r.heartBeatInterval), void(r.heartBeatInterval = null);
                    t(e)
                }
                var r = this;
                r.heartBeatInterval && (clearInterval(r.heartBeatInterval), r.heartBeatInterval = null), e || (e = 5e3), r.heartBeatInterval = setInterval(n, e)
            }, a.prototype.removeHeartBeat = function() {
                var t = this;
                if (t.heartBeatInterval) return clearInterval(t.heartBeatInterval), void(t.heartBeatInterval = null)
            }, a
        }), define("skbJet/component/resourceLoader/AbstractSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/resourceLib"], function(t, e) {
            function n() {}

            function r() {}
            return r.prototype._initOptions = function(t, n) {
                this._count = {
                    total: 0,
                    current: 0,
                    complete: !1
                }, this.options = n || {}, this.options.type = this.options.type || t, e[this.options.type] || (e[this.options.type] = {})
            }, r.prototype.getTotal = function() {
                return this._count.total
            }, r.prototype.getCurrent = function() {
                return this._count.current
            }, r.prototype.isComplete = function() {
                return this._count.complete
            }, r.prototype._prepareLoad = function(t) {
                t = t || {}, this._count.total = 0, this._count.current = 0, t.queryStr = t.queryStr ? t.queryStr : "", t.onFileLoaded = t.onFileLoaded ? t.onFileLoaded : n, t.onLoadFailed = t.onLoadFailed ? t.onLoadFailed : n;
                for (var e in t) this.options[e] = t[e]
            }, r.prototype.load = function(n, r) {
                this._prepareLoad(r);
                var i = [];
                for (var o in n)
                    if (n[o]) {
                        if (this.options.fileExtFilterList) {
                            var a = t.getFileExt(o, !0);
                            if (this.options.fileExtFilterList.indexOf(a) < 0) continue
                        }
                        this._count.total++, i.push(o)
                    }
                if (0 === this._count.total) return this._count.complete = !0, void this.options.onFileLoaded();
                for (var s = this, u = 0; u < i.length; u++) {
                    var o = i[u];
                    this._doLoadFile(n[o] + o + this.options.queryStr, function(t) {
                        return function(n) {
                            s._count.current++, s._count.current === s._count.total && (s._count.complete = !0), e[s.options.type] = e[s.options.type] || {}, e[s.options.type][t] = n, s.options.onFileLoaded()
                        }
                    }(t.getFileNameWithoutExt(o)), this.options.onLoadFailed)
                }
            }, r.prototype._doLoadFile = function(t, e, n) {
                throw "Not implemented yet. Params: url:" + t + "   success:" + e + "   fail:" + n
            }, r
        }), define("skbJet/component/resourceLoader/subLoaders/TextFilesSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader"], function(t, e) {
            function n(t) {
                this._initOptions("_text_files", t)
            }
            return n.prototype = new e, n.prototype._doLoadFile = function(e, n, r) {
                "json" === t.getFileExt(e, !0) && this.options.parseJson ? t.httpGetJson(e, n, r) : t.httpGetText(e, n, r)
            }, n
        }), define("skbJet/component/resourceLoader/subLoaders/HtmlTagSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader"], function(t, e) {
            function n(t) {
                this._initOptions("_html_tags", t)
            }
            return n.prototype = new e, n.prototype._doLoadFile = function(t, e, n) {
                var r = document.createElement(this.options.tagName);
                if (r.onload = function() {
                        e(r)
                    }, r.onerror = n, this.options.parentTag && this.options.parentTag.appendChild(r), this.options.tagAttributes)
                    for (var i in this.options.tagAttributes) r.setAttribute(i, this.options.tagAttributes[i]);
                r.src = t
            }, n
        }), define("skbJet/component/pixiResourceLoader/PixiSpriteSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader", "com/pixijs/pixi"], function(t, e, n) {
            function r(t) {
                t = t || {}, t.fileExtFilterList = ["json"], this._initOptions("sprites", t)
            }
            return r.prototype = new e, r.prototype._load = r.prototype.load, r.prototype.load = function(e, r) {
                this.loader = new n.loaders.Loader, this.loader.defaultQueryString = "?" === r.queryStr.charAt(0) ? r.queryStr.replace("?", "") : r.queryStr, r.queryStr = null, this._load(e, r);
                var i = this;
                this.loader.on("load", function(e, r) {
                    if (r.textures) {
                        for (var o in r.textures) {
                            var a = t.getFileNameWithoutExt(o);
                            n.Texture.addToCache(r.textures[o], a)
                        }
                        i._count.current++, i.options.onFileLoaded()
                    }
                }), this.loader.once("complete", function() {
                    i._count.current === i._count.total && (i._count.complete = !0, i.options.onFileLoaded())
                }), this.loader.on("error", this.options.onLoadFailed), this.loader.load()
            }, r.prototype._doLoadFile = function(e) {
                var n = t.getFileNameWithoutExt(e);
                this.loader.add(n, e)
            }, r
        }), define("skbJet/component/pixiResourceLoader/PixiImageSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader", "com/pixijs/pixi"], function(t, e, n) {
            function r(t) {
                this._initOptions("images", t)
            }
            return r.prototype = new e, r.prototype._load = r.prototype.load, r.prototype.load = function(t, e) {
                this.loader = new n.loaders.Loader, this._load(t, e);
                var r = this;
                this.loader.on("load", function(t, e) {
                    n.Texture.addToCache(e.texture, e.name), r._count.current++, r.options.onFileLoaded()
                }), this.loader.once("complete", function() {
                    r._count.current === r._count.total && (r._count.complete = !0, r.options.onFileLoaded())
                }), this.loader.on("error", this.options.onLoadFailed), this.loader.load()
            }, r.prototype._doLoadFile = function(e) {
                var n = t.getFileNameWithoutExt(e);
                this.loader.add(n, e)
            }, r
        }), define("skbJet/component/pixiResourceLoader/pixiResourceLoader", ["skbJet/component/gameMsgBus/GameMsgBus", "com/pixijs/pixi", "skbJet/component/resourceLoader/resourceLib", "skbJet/component/resourceLoader/ResourceLoader", "skbJet/component/resourceLoader/subLoaders/TextFilesSubLoader", "skbJet/component/resourceLoader/subLoaders/HtmlTagSubLoader", "skbJet/component/pixiResourceLoader/PixiSpriteSubLoader", "skbJet/component/pixiResourceLoader/PixiImageSubLoader"], function(t, e, n, r, i, o, a, s) {
            function u(e) {
                var r = "resourceLoader." + ("default" === e ? "loadProgress" : "deferredLoadProgress");
                return function() {
                    f[e] = d[e].currentProgress(), f[e].complete && (h.i18n = n.i18n.game || {}, h.i18n.helpHTML = n.i18n.help, h.i18n.paytableHTML = n.i18n.paytable, h.i18n.gameConfig = n.i18n.gameConfig), t.publish(r, {
                        label: e,
                        total: f[e].total,
                        current: f[e].current,
                        complete: f[e].complete
                    })
                }
            }

            function l(e) {
                return function() {
                    t.publish("toPlatform", {
                        channel: "Kernel",
                        topic: "LoadProgress",
                        data: {
                            id: "game",
                            items: f[e].total,
                            current: f[e].current,
                            label: e,
                            complete: !1,
                            fail: !0
                        }
                    })
                }
            }

            function c(t) {
                if (e.utils.TextureCache[t]) {
                    var n = e.utils.TextureCache[t],
                        r = new e.CanvasRenderer(n.orig.width, n.orig.height, {
                            transparent: !0
                        }),
                        i = new e.Sprite(n);
                    g.addChild(i), r.render(g);
                    var o = new Image;
                    o.src = r.view.toDataURL(), p[t] = o, g.removeChild(i)
                }
            }
            n.sounds = n.sounds || {}, n.images = n.images || {}, n.layout = n.layout || {}, n.sprites = n.sprites || {}, n.i18n = n.i18n || {};
            var h = {
                    audio: n.sounds,
                    images: n.images,
                    layout: n.layout,
                    sprites: n.sprites,
                    i18n: null
                },
                d = {},
                f = {
                    default: {}
                };
            h.load = function(t, e, n) {
                r.initDefault(t, e, n), d.default = r.getDefault(), d.default.addSubLoader("images", new s({
                    type: "images"
                })), d.default.addSubLoader("sprites", new a({
                    type: "sprites"
                }));
                var c = new i({
                    type: "i18n",
                    parseJson: !0
                });
                return c.origLoad = c.load, c.load = function(t, e) {
                    for (var n in t) n.match(/splash\.json$/) && delete t[n];
                    this.origLoad(t, e)
                }, d.default.addSubLoader("i18n", c), d.default.addSubLoader("layout", new o({
                    tagName: "script",
                    tagAttributes: {
                        type: "text/javascript"
                    },
                    fileExtFilterList: ["js"],
                    parentTag: document.getElementsByTagName("head")[0]
                })), d.default.load(u("default"), l("default")), d.default
            }, h.loadDeferred = function(t, e, n, i) {
                return f[e] = {}, d[e] = new r(t, n, i), d[e].addSubLoader("images", new s({
                    type: "images"
                })), d[e].addSubLoader("sprites", new a({
                    type: "sprites"
                })), d[e].load(u(e), l(e)), d[e]
            };
            var p = {},
                g = new e.Container;
            return h.getImgObj = function(t) {
                return p[t] || c(t), p[t]
            }, h
        }), define("skbJet/component/utils/PauseTimer", [], function() {
            function t(e, n) {
                this.index = t.index++, t.map[this.index] = this, this.callBack = e, this.delay = n, this.startTime = Date.now(), this.pauseTime = null;
                var r = this;
                this._innerIndex = window.setTimeout(function() {
                    delete t.map[r.index], r.callBack()
                }, n)
            }

            function e(t, n) {
                this.index = e.index++, e.map[this.index] = this, this.callBack = t, this.delay = n, this.startTime = Date.now(), this.pauseTime = null, this._innerTimeoutIndex = null;
                var r = this;
                this._innerIndex = window.setInterval(r.callBack, n)
            }

            function n(e, n) {
                return new t(e, n).index
            }

            function r(e) {
                t.map[e] && t.map[e].clear()
            }

            function i(t, n) {
                return new e(t, n).index
            }

            function o(t) {
                e.map[t] && e.map[t].clear()
            }

            function a() {
                e.pause(), t.pause()
            }

            function s() {
                e.resume(), t.resume()
            }
            t.index = 1, t.map = {}, t.pause = function() {
                for (var e in t.map) t.map[e] && t.map[e].pause()
            }, t.resume = function() {
                for (var e in t.map) t.map[e] && t.map[e].resume()
            }, t.prototype.pause = function() {
                var t = this;
                t._innerIndex && (window.clearTimeout(t._innerIndex), t.pauseTime = Date.now() - t.startTime, t._innerIndex = null)
            }, t.prototype.resume = function() {
                var e = this;
                e._innerIndex || null === e.pauseTime || void 0 === e.pauseTime || (this._innerIndex = window.setTimeout(function() {
                    delete t.map[e.index], e.callBack()
                }, e.delay - e.pauseTime), e.startTime = Date.now() - e.pauseTime, this.pauseTime = null)
            }, t.prototype.clear = function() {
                var e = this;
                e._innerIndex && (window.clearTimeout(e._innerIndex), e._innerIndex = null), delete t.map[e.index]
            }, e.index = 1, e.map = {}, e.pause = function() {
                for (var t in e.map) e.map[t] && e.map[t].pause()
            }, e.resume = function() {
                for (var t in e.map) e.map[t] && e.map[t].resume()
            }, e.prototype.pause = function() {
                var t = this;
                t._innerIndex ? (window.clearInterval(t._innerIndex), t.pauseTime = (Date.now() - t.startTime) % t.delay, t._innerIndex = null, t._innerTimeoutIndex = null) : t._innerTimeoutIndex && (window.clearTimeout(t._innerTimeoutIndex), t.pauseTime = Date.now() - t.startTime, t._innerIndex = null, t._innerTimeoutIndex = null)
            }, e.prototype.resume = function() {
                var t = this;
                t._innerIndex || t._innerTimeoutIndex || null === t.pauseTime || void 0 === t.pauseTime || (t._innerTimeoutIndex = window.setTimeout(function() {
                    t._innerIndex = window.setInterval(t.callBack, t.delay), t._innerTimeoutIndex = null, t.callBack()
                }, t.delay - t.pauseTime), t.startTime = Date.now() - t.pauseTime, this.pauseTime = null)
            }, e.prototype.clear = function() {
                var t = this;
                t._innerIndex ? (window.clearInterval(t._innerIndex), t._innerIndex = null, t._innerTimeoutIndex = null) : t._innerTimeoutIndex && (window.clearTimeout(t._innerTimeoutIndex), t._innerIndex = null, t._innerTimeoutIndex = null), delete e.map[t.index]
            };
            var u = {
                setTimeout: n,
                clearTimeout: r,
                setInterval: i,
                clearInterval: o,
                pause: a,
                resume: s
            };
            return document.addEventListener("visibilitychange", function() {
                "hidden" === document.visibilityState ? u.pause() : u.resume()
            }), u
        }), define("skbJet/component/audioPlayer/WebAudioPlayer", ["skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/utils/PauseTimer"], function(t, e) {
            function n(t) {
                this.channelId = t, this.gainNode = void 0 === s.createGain ? s.createGainNode() : s.createGain()
            }

            function r() {
                this._APchannel._soundName = null, this._APchannel.source = null, this._APchannel._pausePoint = -1
            }

            function i(e) {
                var n = s.createBufferSource();
                e.source = n, n._APchannel = e, n.buffer = t.audio[e._soundName], n.loop = e._loopFlag, n.connect(e.gainNode), n.addEventListener("ended", r), e.gainNode.connect(s.destination), e._onVolumeUpdated();
                var i = e._pausePoint >= 0 ? e._pausePoint : 0;
                i %= n.buffer.duration, void 0 === n.start ? n.noteGrainOn(0, i, n.buffer.duration) : n.start(0, i)
            }

            function o(t) {
                t._fadeInterval && (e.clearInterval(t._fadeInterval), t._fadeInterval = null)
            }
            var a = !1;
            if (window.AudioContext = window.AudioContext || window.webkitAudioContext, window.AudioContext) {
                var s = new window.AudioContext,
                    u = [];
                return n.prototype.gainNode = null, n.prototype.source = null, n.prototype._soundName = null, n.prototype._muteFlag = !1, n.prototype._loopFlag = !1, n.prototype._volume = 1, n.prototype._currentVolume = 1, n.prototype._pausePoint = -1, n.prototype._fakeStartTime = 0, n.prototype.currentPlaying = function() {
                    return this._soundName
                }, n.prototype._onVolumeUpdated = function() {
                    a || this._muteFlag ? this.gainNode.gain.setValueAtTime(0, s.currentTime) : this.gainNode.gain.setValueAtTime(1 * this._volume, s.currentTime)
                }, n.prototype.play = function(t, e) {
                    this.currentPlaying && this.stop(), this._volume = this._currentVolume, this._loopFlag = !!e, this._soundName = t, this._fakeStartTime = s.currentTime, this._pausePoint = -1, i(this)
                }, n.prototype.stop = function() {
                    this.source && (this.source.removeEventListener("ended", r), this.source.stop(), this._soundName = null, this.source = null, this._pausePoint = -1)
                }, n.prototype.pause = function() {
                    this._soundName && this.source && (this._pausePoint >= 0 || (this.source.removeEventListener("ended", r), this.source.stop(), this._pausePoint = (s.currentTime - this._fakeStartTime) % this.source.buffer.duration))
                }, n.prototype.resume = function() {
                    this._soundName && this.source && (this._pausePoint < 0 || (i(this), this._fakeStartTime = s.currentTime - this._pausePoint, this._pausePoint = -1))
                }, n.prototype.mute = function(t) {
                    this._muteFlag = !!t, this._onVolumeUpdated()
                }, n.prototype.volume = function(t) {
                    this._currentVolume = t, this._volume = t, this._onVolumeUpdated()
                }, n.prototype.fadeOut = function(t, n) {
                    n = n || {}, t = t || 1500;
                    var r = this._volume / 20,
                        i = this;
                    o(this), i._fadeInterval = e.setInterval(function() {
                        i._volume - r <= 0 ? (i._volume = 0, i.pause(), e.clearInterval(i._fadeInterval), n.completeCallback && n.completeCallback()) : (i._volume -= r, i._onVolumeUpdated())
                    }, t / 20)
                }, n.prototype.playAndFadeIn = function(t, n, r, i) {
                    i = i || {};
                    var a = this._currentVolume;
                    n = n || !1, r = r || 2e3, this.play(t, n), this._volume = 0, this._onVolumeUpdated();
                    var s = a / 20,
                        u = this;
                    o(this), u._fadeInterval = e.setInterval(function() {
                        u._volume + s >= a ? (u._volume = a, u._onVolumeUpdated(), e.clearInterval(u._fadeInterval), i.completeCallback && i.completeCallback()) : (u._volume += s, u._onVolumeUpdated())
                    }, r / 20)
                }, n.prototype.cancelFade = function() {
                    o(this), this._volume = this._currentVolume, this._onVolumeUpdated(), this.resume()
                }, {
                    play: function(t, e, r) {
                        void 0 === r && (r = !1), void 0 === e && (e = 0), u[e] || (u[e] = new n(e)), "suspended" !== u[e].gainNode.context.state && "interrupted" !== u[e].gainNode.context.state || u[e].gainNode.context.resume(), u[e].play(t, r)
                    },
                    currentPlaying: function(t) {
                        return u[t] ? u[t].currentPlaying() : null
                    },
                    stopChannel: function(t) {
                        u[t] && u[t].stop()
                    },
                    stopAllChannel: function() {
                        for (var t in u) u[t] && u[t].stop()
                    },
                    muteChannel: function(t, e) {
                        u[t] && u[t].mute(e)
                    },
                    muteAll: function(t) {
                        a = !!t;
                        for (var e in u) u[e] && u[e]._onVolumeUpdated()
                    },
                    pauseChannel: function(t) {
                        u[t] && u[t].pause()
                    },
                    pauseAll: function() {
                        for (var t in u) u[t] && u[t].pause()
                    },
                    resumeChannel: function(t) {
                        u[t] && u[t].resume()
                    },
                    resumeAll: function() {
                        for (var t in u) u[t] && u[t].resume()
                    },
                    volume: function(t, e) {
                        u[t] && u[t].volume(e)
                    },
                    playAndFadeIn: function(t, e, r, i, o) {
                        void 0 === t && (t = 0), u[t] || (u[t] = new n(t)), "suspended" !== u[t].gainNode.context.state && "interrupted" !== u[t].gainNode.context.state || u[t].gainNode.context.resume(), u[t].playAndFadeIn(e, r, i, o)
                    },
                    fadeOut: function(t, e, n) {
                        u[t] && u[t].fadeOut(e, n)
                    },
                    cancelFade: function(t) {
                        u[t] && u[t].cancelFade()
                    }
                }
            }
        }), define("skbJet/component/audioPlayer/SingleChannelAudioPlayer", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/utils/PauseTimer"], function(t, e, n) {
            function r(t) {
                function e(t) {
                    t._fadeInterval && (n.clearInterval(t._fadeInterval), t._fadeInterval = null)
                }
                var r = this;
                r.channelId = t, r.currentPlaying = null, r.soundMap = {}, r._currentVolume = 1, r.stop = function() {
                    r.currentPlaying && (r.soundMap[r.currentPlaying].pause(), r.soundMap[r.currentPlaying].currentTime = 0, r.currentPlaying = null)
                }, r.pause = function() {
                    r.currentPlaying && r.soundMap[r.currentPlaying].pause()
                }, r.resume = function() {
                    r.currentPlaying && !r.soundMap[r.currentPlaying].ended && r.soundMap[r.currentPlaying].play()
                }, r.play = function(t, e) {
                    if (r.stop(), !r.soundMap[t]) {
                        if (!a[t]) return;
                        null == a[t]._channel ? (r.soundMap[t] = a[t], a[t]._channel = r.channelId) : a[t]._channel !== r.channelId && (r.soundMap[t] = new Audio(a[t].src))
                    }
                    if (r.soundMap[t].readyState < 4) return void(r.currentPlaying = null);
                    r.currentPlaying = t, r.soundMap[t].loop = !!e, isNaN(r.soundMap[t].duration) || (r.soundMap[t].currentTime = 0), r.soundMap[t].muted = r._muteFlag || u, r.soundMap[t].play(), r.soundMap[t].volume = r._currentVolume
                }, r.getCurrentPlayingSoundName = function() {
                    return r.currentPlaying ? r.soundMap[r.currentPlaying].ended ? (r.currentPlaying = null, null) : r.currentPlaying : null
                }, r.mute = function(t) {
                    r._muteFlag = !!t;
                    for (var e in r.soundMap) r.soundMap[e] && (r.soundMap[e].muted = t || u)
                }, r.volume = function(t) {
                    r.soundMap[r.currentPlaying].volume = t, r._currentVolume = t
                }, r.fadeOut = function(t, i) {
                    i = i || {}, t = t || 1500;
                    var o = r.soundMap[r.currentPlaying].volume / 20,
                        a = r;
                    e(r), a._fadeInterval = n.setInterval(function() {
                        a.soundMap[a.currentPlaying].volume - o <= 0 ? (a.soundMap[a.currentPlaying].volume = 0, a.pause(), n.clearInterval(a._fadeInterval), i.completeCallback && i.completeCallback()) : a.soundMap[r.currentPlaying].volume -= o
                    }, t / 20)
                }, r.playAndFadeIn = function(t, i, o, a) {
                    a = a || {}, o = o || 2e3;
                    var s = r._currentVolume;
                    i = i || !1, r.play(t, i);
                    var u = r;
                    r.soundMap[u.currentPlaying].volume = 0;
                    var l = s / 20;
                    e(r), u._fadeInterval = n.setInterval(function() {
                        u.soundMap[u.currentPlaying].volume + l >= s ? (u.soundMap[u.currentPlaying].volume = s, n.clearInterval(u._fadeInterval), a.completeCallback && a.completeCallback()) : u.soundMap[u.currentPlaying].volume += l
                    }, o / 20)
                }, r.cancelFade = function() {
                    e(this), this.soundMap[this.currentPlaying].volume = this._currentVolume, this.resume()
                }
            }

            function i(t) {
                if (t.total > 0 && t.current === t.total)
                    for (var n in e.audio) a[n] = e.audio[n]
            }
            var o = {},
                a = {},
                s = {},
                u = !1;
            return t.subscribe("resourceLoader.loadProgress", i), o.play = function(t, e, n) {
                e || (e = 0), n = !!n, s[e] || (s[e] = new r(e)), s[e].play(t, n)
            }, o.currentPlaying = function(t) {
                return s[t] ? s[t].getCurrentPlayingSoundName() : null
            }, o.stopChannel = function(t) {
                s[t] && s[t].stop()
            }, o.stopAllChannel = function() {
                for (var t in s) o.stopChannel(t)
            }, o.muteChannel = function(t, e) {
                s[t] && s[t].mute(e)
            }, o.muteAll = function(t) {
                u = t;
                for (var e in s) o.muteChannel(e, u)
            }, o.pauseChannel = function(t) {
                s[t] && s[t].pause()
            }, o.pauseAll = function() {
                for (var t in s) s[t] && s[t].pause()
            }, o.resumeChannel = function(t) {
                s[t] && s[t].resume()
            }, o.resumeAll = function() {
                for (var t in s) s[t] && s[t].resume()
            }, o.volume = function(t, e) {
                s[t] && s[t].volume(e)
            }, o.fadeOut = function(t, e, n) {
                s[t] && s[t].fadeOut(e, n)
            }, o.playAndFadeIn = function(t, e, n, i, o) {
                t || (t = 0), s[t] || (s[t] = new r(t)), s[t].playAndFadeIn(e, n, i, o)
            }, o.cancelFade = function(t) {
                s[t] && s[t].cancelFade()
            }, o
        }), define("skbJet/component/audioPlayer/AudioPlayerProxy", ["skbJet/component/utils/Interface", "skbJet/component/channelAudioPlayer/IChannelAudioPlayer", "skbJet/component/channelAudioPlayer/channelAudioPlayerHelper", "skbJet/component/audioPlayer/WebAudioPlayer", "skbJet/component/audioPlayer/SingleChannelAudioPlayer", "skbJet/component/resourceLoader/resourceLib"], function(t, e, n, r, i, o) {
            function a() {
                u.muteAll(!0);
                for (var t in o.sounds) {
                    u.play(t, "temp"), u.stopChannel("temp");
                    break
                }
            }
            var s = Object.freeze(function() {
                    "use strict";
                    var t = {};
                    return t.compatibility = {},
                        function() {
                            window.AudioContext = window.AudioContext || window.webkitAudioContext, navigator.userAgent.indexOf("Chrome/11.") > -1 && navigator.userAgent.indexOf("Linux x86_64") > -1 ? t.compatibility.webaudio = 0 : (navigator.userAgent.indexOf("4.1.1") > -1 || navigator.userAgent.indexOf("4.1.2") > -1) && (navigator.userAgent.indexOf("GT-I9300") > -1 || navigator.userAgent.indexOf("GT-I9100") > -1) ? t.compatibility.webaudio = 0 : window.AudioContext ? t.compatibility.webaudio = 1 : t.compatibility.webaudio = 0
                        }(), Object.freeze(t.compatibility), Object.freeze(t)
                })(),
                u = s.compatibility.webaudio ? r : i,
                l = {
                    gameAudioControlChanged: n.gameAudioControlChanged,
                    consoleAudioControlChanged: n.consoleAudioControlChanged,
                    play: function(t, e, n) {
                        u.play(t, e, n)
                    },
                    stopChannel: function(t) {
                        u.stopChannel(t)
                    },
                    stopAllChannel: function() {
                        u.stopAllChannel()
                    },
                    stopAll: function() {
                        u.stopAllChannel()
                    },
                    pauseChannel: function(t) {
                        u.pauseChannel(t)
                    },
                    pauseAll: function() {
                        u.pauseAll()
                    },
                    resumeChannel: function(t) {
                        u.resumeChannel(t)
                    },
                    resumeAll: function() {
                        u.resumeAll()
                    },
                    muteChannel: function(t, e) {
                        u.muteChannel(t, e)
                    },
                    muteAll: function(t) {
                        u.muteAll(t)
                    },
                    isMultiChannel: function() {
                        return s.compatibility.webaudio
                    },
                    volume: function(t, e) {
                        u.volume(t, e)
                    },
                    fadeOut: function(t, e, n) {
                        u.fadeOut(t, e, n)
                    },
                    playAndFadeIn: function(t, e, n, r, i) {
                        u.playAndFadeIn(t, e, n, r, i)
                    },
                    cancelFade: function(t) {
                        u.cancelFade(t)
                    },
                    enableAudioDialog: function(t) {
                        n.enableAudioDialog(t)
                    }
                };
            return e.implementedBy(l), n.setChannelAudioPlayer(l), n.setPlayerAudioChoiceCallBack(a), l
        }),
        function() {
            function t(t, e, n) {
                for (var r = t.length, i = n ? r : -1; n ? i-- : ++i < r;)
                    if (e(t[i], i, t)) return i;
                return -1
            }

            function e(t, e, n) {
                if (e !== e) return r(t, n);
                for (var i = n - 1, o = t.length; ++i < o;)
                    if (t[i] === e) return i;
                return -1
            }

            function n(t) {
                return null == t ? "" : t + ""
            }

            function r(t, e, n) {
                for (var r = t.length, i = e + (n ? 0 : -1); n ? i-- : ++i < r;) {
                    var o = t[i];
                    if (o !== o) return i
                }
                return -1
            }

            function i(t) {
                return !!t && "object" == typeof t
            }

            function o(t, e) {
                for (var n = -1, r = t.length, i = -1, o = []; ++n < r;) t[n] === e && (t[n] = Ie, o[++i] = n);
                return o
            }

            function a(t) {
                if (i(t) && !lr(t) && !(t instanceof l)) {
                    if (t instanceof u) return t;
                    if (wn.call(t, "__chain__") && wn.call(t, "__wrapped__")) return Dt(t)
                }
                return new u(t)
            }

            function s() {}

            function u(t, e, n) {
                this.__wrapped__ = t, this.__actions__ = n || [], this.__chain__ = !!e
            }

            function l(t) {
                this.__wrapped__ = t, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = Gn, this.__views__ = []
            }

            function c() {
                var t = new l(this.__wrapped__);
                return t.__actions__ = y(this.__actions__), t.__dir__ = this.__dir__, t.__filtered__ = this.__filtered__, t.__iteratees__ = y(this.__iteratees__), t.__takeCount__ = this.__takeCount__, t.__views__ = y(this.__views__), t
            }

            function h() {
                if (this.__filtered__) {
                    var t = new l(this);
                    t.__dir__ = -1, t.__filtered__ = !0
                } else t = this.clone(), t.__dir__ *= -1;
                return t
            }

            function d() {
                var t = this.__wrapped__.value(),
                    e = this.__dir__,
                    n = lr(t),
                    r = e < 0,
                    i = n ? t.length : 0,
                    o = yt(0, i, this.__views__),
                    a = o.start,
                    s = o.end,
                    u = s - a,
                    l = r ? s : a - 1,
                    c = this.__iteratees__,
                    h = c.length,
                    d = 0,
                    f = Nn(u, this.__takeCount__);
                if (!n || i < Pe || i == u && f == u) return K(t, this.__actions__);
                var p = [];
                t: for (; u-- && d < f;) {
                    l += e;
                    for (var g = -1, m = t[l]; ++g < h;) {
                        var y = c[g],
                            b = y.iteratee,
                            v = y.type,
                            _ = b(m);
                        if (v == Re) m = _;
                        else if (!_) {
                            if (v == Ae) continue t;
                            break t
                        }
                    }
                    p[d++] = m
                }
                return p
            }

            function f(t) {
                var e = t ? t.length : 0;
                for (this.data = {
                        hash: In(null),
                        set: new Pn
                    }; e--;) this.push(t[e])
            }

            function p(t, e) {
                var n = t.data;
                return ("string" == typeof e || ie(e) ? n.set.has(e) : n.hash[e]) ? 0 : -1
            }

            function g(t) {
                var e = this.data;
                "string" == typeof t || ie(t) ? e.set.add(t) : e.hash[t] = !0
            }

            function m(t, e) {
                for (var n = -1, r = t.length, i = -1, o = e.length, a = Array(r + o); ++n < r;) a[n] = t[n];
                for (; ++i < o;) a[n++] = e[i];
                return a
            }

            function y(t, e) {
                var n = -1,
                    r = t.length;
                for (e || (e = Array(r)); ++n < r;) e[n] = t[n];
                return e
            }

            function b(t, e) {
                for (var n = -1, r = t.length; ++n < r && !1 !== e(t[n], n, t););
                return t
            }

            function v(t, e) {
                for (var n = -1, r = t.length, i = -1, o = []; ++n < r;) {
                    var a = t[n];
                    e(a, n, t) && (o[++i] = a)
                }
                return o
            }

            function _(t, e) {
                for (var n = -1, r = t.length, i = Array(r); ++n < r;) i[n] = e(t[n], n, t);
                return i
            }

            function x(t, e) {
                for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n];
                return t
            }

            function T(t, e, n, r) {
                var i = -1,
                    o = t.length;
                for (r && o && (n = t[++i]); ++i < o;) n = e(n, t[i], i, t);
                return n
            }

            function w(t, e) {
                for (var n = -1, r = t.length; ++n < r;)
                    if (e(t[n], n, t)) return !0;
                return !1
            }

            function S(t, e) {
                return t === be ? e : t
            }

            function C(t, e, n) {
                for (var r = -1, i = dr(e), o = i.length; ++r < o;) {
                    var a = i[r],
                        s = t[a],
                        u = n(s, e[a], a, t, e);
                    (u === u ? u === s : s !== s) && (s !== be || a in t) || (t[a] = u)
                }
                return t
            }

            function E(t, e) {
                return null == e ? t : O(e, dr(e), t)
            }

            function O(t, e, n) {
                n || (n = {});
                for (var r = -1, i = e.length; ++r < i;) {
                    var o = e[r];
                    n[o] = t[o]
                }
                return n
            }

            function P(t, e, n) {
                var r = typeof t;
                return "function" == r ? e === be ? t : Q(t, e, n) : null == t ? fe : "object" == r ? W(t) : e === be ? ye(t) : H(t, e)
            }

            function A(t, e, n, r, i, o, a) {
                var s;
                if (n && (s = i ? n(t, r, i) : n(t)), s !== be) return s;
                if (!ie(t)) return t;
                var u = lr(t);
                if (u) {
                    if (s = bt(t), !e) return y(t, s)
                } else {
                    var l = Sn.call(t),
                        c = l == Ne;
                    if (l != Ge && l != De && (!c || i)) return ln[l] ? _t(t, l, e) : i ? t : {};
                    if (yn(t)) return i ? t : {};
                    if (s = vt(c ? {} : t), !e) return E(s, t)
                }
                o || (o = []), a || (a = []);
                for (var h = o.length; h--;)
                    if (o[h] == t) return a[h];
                return o.push(t), a.push(s), (u ? b : k)(t, function(r, i) {
                    s[i] = A(r, e, n, i, t, o, a)
                }), s
            }

            function R(t, n) {
                var r = t ? t.length : 0,
                    i = [];
                if (!r) return i;
                var o = -1,
                    a = pt(),
                    s = a === e,
                    u = s && n.length >= Pe ? it(n) : null,
                    l = n.length;
                u && (a = p, s = !1, n = u);
                t: for (; ++o < r;) {
                    var c = t[o];
                    if (s && c === c) {
                        for (var h = l; h--;)
                            if (n[h] === c) continue t;
                        i.push(c)
                    } else a(n, c, 0) < 0 && i.push(c)
                }
                return i
            }

            function M(t, e) {
                var n = [];
                return Kn(t, function(t, r, i) {
                    e(t, r, i) && n.push(t)
                }), n
            }

            function I(t, e, n, r) {
                var i;
                return n(t, function(t, n, o) {
                    if (e(t, n, o)) return i = r ? n : t, !1
                }), i
            }

            function D(t, e, n, r) {
                r || (r = []);
                for (var o = -1, a = t.length; ++o < a;) {
                    var s = t[o];
                    i(s) && xt(s) && (n || lr(s) || ee(s)) ? e ? D(s, e, n, r) : x(r, s) : n || (r[r.length] = s)
                }
                return r
            }

            function L(t, e) {
                return $n(t, e, le)
            }

            function k(t, e) {
                return $n(t, e, dr)
            }

            function F(t, e) {
                for (var n = -1, r = e.length, i = -1, o = []; ++n < r;) {
                    var a = e[n];
                    re(t[a]) && (o[++i] = a)
                }
                return o
            }

            function B(t, e, n) {
                if (null != t) {
                    t = Mt(t), n !== be && n in t && (e = [n]);
                    for (var r = 0, i = e.length; null != t && r < i;) t = Mt(t)[e[r++]];
                    return r && r == i ? t : be
                }
            }

            function N(t, e, n, r, o, a) {
                return t === e || (null == t || null == e || !ie(t) && !i(e) ? t !== t && e !== e : j(t, e, N, n, r, o, a))
            }

            function j(t, e, n, r, i, o, a) {
                var s = lr(t),
                    u = lr(e),
                    l = Le,
                    c = Le;
                s || (l = Sn.call(t), l == De ? l = Ge : l != Ge && (s = ue(t))), u || (c = Sn.call(e), c == De ? c = Ge : c != Ge && (u = ue(e)));
                var h = l == Ge && !yn(t),
                    d = c == Ge && !yn(e),
                    f = l == c;
                if (f && !s && !h) return ct(t, e, l);
                if (!i) {
                    var p = h && wn.call(t, "__wrapped__"),
                        g = d && wn.call(e, "__wrapped__");
                    if (p || g) return n(p ? t.value() : t, g ? e.value() : e, r, i, o, a)
                }
                if (!f) return !1;
                o || (o = []), a || (a = []);
                for (var m = o.length; m--;)
                    if (o[m] == t) return a[m] == e;
                o.push(t), a.push(e);
                var y = (s ? lt : ht)(t, e, n, r, i, o, a);
                return o.pop(), a.pop(), y
            }

            function G(t, e, n) {
                var r = e.length,
                    i = r,
                    o = !n;
                if (null == t) return !i;
                for (t = Mt(t); r--;) {
                    var a = e[r];
                    if (o && a[2] ? a[1] !== t[a[0]] : !(a[0] in t)) return !1
                }
                for (; ++r < i;) {
                    a = e[r];
                    var s = a[0],
                        u = t[s],
                        l = a[1];
                    if (o && a[2]) {
                        if (u === be && !(s in t)) return !1
                    } else {
                        var c = n ? n(u, l, s) : be;
                        if (!(c === be ? N(l, u, n, !0) : c)) return !1
                    }
                }
                return !0
            }

            function U(t, e) {
                var n = -1,
                    r = xt(t) ? Array(t.length) : [];
                return Kn(t, function(t, i, o) {
                    r[++n] = e(t, i, o)
                }), r
            }

            function W(t) {
                var e = gt(t);
                if (1 == e.length && e[0][2]) {
                    var n = e[0][0],
                        r = e[0][1];
                    return function(t) {
                        return null != t && (t = Mt(t), t[n] === r && (r !== be || n in t))
                    }
                }
                return function(t) {
                    return G(t, e)
                }
            }

            function H(t, e) {
                var n = lr(t),
                    r = St(t) && Ot(e),
                    i = t + "";
                return t = It(t),
                    function(o) {
                        if (null == o) return !1;
                        var a = i;
                        if (o = Mt(o), (n || !r) && !(a in o)) {
                            if (null == (o = 1 == t.length ? o : B(o, Y(t, 0, -1)))) return !1;
                            a = kt(t), o = Mt(o)
                        }
                        return o[a] === e ? e !== be || a in o : N(e, o[a], be, !0)
                    }
            }

            function X(t) {
                return function(e) {
                    return null == e ? be : Mt(e)[t]
                }
            }

            function V(t) {
                var e = t + "";
                return t = It(t),
                    function(n) {
                        return B(n, t, e)
                    }
            }

            function z(t, e, n, r, i) {
                return i(t, function(t, i, o) {
                    n = r ? (r = !1, t) : e(n, t, i, o)
                }), n
            }

            function Y(t, e, n) {
                var r = -1,
                    i = t.length;
                e = null == e ? 0 : +e || 0, e < 0 && (e = -e > i ? 0 : i + e), n = n === be || n > i ? i : +n || 0, n < 0 && (n += i), i = e > n ? 0 : n - e >>> 0, e >>>= 0;
                for (var o = Array(i); ++r < i;) o[r] = t[r + e];
                return o
            }

            function q(t, e) {
                var n;
                return Kn(t, function(t, r, i) {
                    return !(n = e(t, r, i))
                }), !!n
            }

            function J(t, e) {
                for (var n = -1, r = e.length, i = Array(r); ++n < r;) i[n] = t[e[n]];
                return i
            }

            function K(t, e) {
                var n = t;
                n instanceof l && (n = n.value());
                for (var r = -1, i = e.length; ++r < i;) {
                    var o = e[r];
                    n = o.func.apply(o.thisArg, x([n], o.args))
                }
                return n
            }

            function $(t, e, n) {
                var r = 0,
                    i = t ? t.length : r;
                if ("number" == typeof e && e === e && i <= Wn) {
                    for (; r < i;) {
                        var o = r + i >>> 1,
                            a = t[o];
                        (n ? a <= e : a < e) && null !== a ? r = o + 1 : i = o
                    }
                    return i
                }
                return Z(t, e, fe, n)
            }

            function Z(t, e, n, r) {
                e = n(e);
                for (var i = 0, o = t ? t.length : 0, a = e !== e, s = null === e, u = e === be; i < o;) {
                    var l = Dn((i + o) / 2),
                        c = n(t[l]),
                        h = c !== be,
                        d = c === c;
                    if (a) var f = d || r;
                    else f = s ? d && h && (r || null != c) : u ? d && (r || h) : null != c && (r ? c <= e : c < e);
                    f ? i = l + 1 : o = l
                }
                return Nn(o, Un)
            }

            function Q(t, e, n) {
                if ("function" != typeof t) return fe;
                if (e === be) return t;
                switch (n) {
                    case 1:
                        return function(n) {
                            return t.call(e, n)
                        };
                    case 3:
                        return function(n, r, i) {
                            return t.call(e, n, r, i)
                        };
                    case 4:
                        return function(n, r, i, o) {
                            return t.call(e, n, r, i, o)
                        };
                    case 5:
                        return function(n, r, i, o, a) {
                            return t.call(e, n, r, i, o, a)
                        }
                }
                return function() {
                    return t.apply(e, arguments)
                }
            }

            function tt(t) {
                var e = new En(t.byteLength);
                return new Rn(e).set(new Rn(t)), e
            }

            function et(t, e, n) {
                for (var r = n.length, i = -1, o = Bn(t.length - r, 0), a = -1, s = e.length, u = Array(s + o); ++a < s;) u[a] = e[a];
                for (; ++i < r;) u[n[i]] = t[i];
                for (; o--;) u[a++] = t[i++];
                return u
            }

            function nt(t, e, n) {
                for (var r = -1, i = n.length, o = -1, a = Bn(t.length - i, 0), s = -1, u = e.length, l = Array(a + u); ++o < a;) l[o] = t[o];
                for (var c = o; ++s < u;) l[c + s] = e[s];
                for (; ++r < i;) l[c + n[r]] = t[o++];
                return l
            }

            function rt(t, e) {
                function n() {
                    return (this && this !== mn && this instanceof n ? r : t).apply(e, arguments)
                }
                var r = ot(t);
                return n
            }

            function it(t) {
                return In && Pn ? new f(t) : null
            }

            function ot(t) {
                return function() {
                    var e = arguments;
                    switch (e.length) {
                        case 0:
                            return new t;
                        case 1:
                            return new t(e[0]);
                        case 2:
                            return new t(e[0], e[1]);
                        case 3:
                            return new t(e[0], e[1], e[2]);
                        case 4:
                            return new t(e[0], e[1], e[2], e[3]);
                        case 5:
                            return new t(e[0], e[1], e[2], e[3], e[4]);
                        case 6:
                            return new t(e[0], e[1], e[2], e[3], e[4], e[5]);
                        case 7:
                            return new t(e[0], e[1], e[2], e[3], e[4], e[5], e[6])
                    }
                    var n = Jn(t.prototype),
                        r = t.apply(n, e);
                    return ie(r) ? r : n
                }
            }

            function at(t, e, n, r, i, a, s, u, l, c) {
                function h() {
                    for (var _ = arguments.length, x = _, T = Array(_); x--;) T[x] = arguments[x];
                    if (r && (T = et(T, r, i)), a && (T = nt(T, a, s)), g || b) {
                        var w = h.placeholder,
                            S = o(T, w);
                        if ((_ -= S.length) < c) {
                            var C = u ? y(u) : be,
                                E = Bn(c - _, 0),
                                O = g ? S : be,
                                P = g ? be : S,
                                A = g ? T : be,
                                R = g ? be : T;
                            e |= g ? Se : Ce, e &= ~(g ? Ce : Se), m || (e &= ~(ve | _e));
                            var M = [t, e, n, A, O, R, P, C, l, E],
                                I = at.apply(be, M);
                            return Ct(t) && er(I, M), I.placeholder = w, I
                        }
                    }
                    var D = f ? n : this,
                        L = p ? D[t] : t;
                    return u && (T = At(T, u)), d && l < T.length && (T.length = l), this && this !== mn && this instanceof h && (L = v || ot(t)), L.apply(D, T)
                }
                var d = e & Ee,
                    f = e & ve,
                    p = e & _e,
                    g = e & Te,
                    m = e & xe,
                    b = e & we,
                    v = p ? be : ot(t);
                return h
            }

            function st(t, e, n, r) {
                function i() {
                    for (var e = -1, s = arguments.length, u = -1, l = r.length, c = Array(l + s); ++u < l;) c[u] = r[u];
                    for (; s--;) c[u++] = arguments[++e];
                    return (this && this !== mn && this instanceof i ? a : t).apply(o ? n : this, c)
                }
                var o = e & ve,
                    a = ot(t);
                return i
            }

            function ut(t, e, n, r, i, o, a, s) {
                var u = e & _e;
                if (!u && "function" != typeof t) throw new TypeError(Me);
                var l = r ? r.length : 0;
                if (l || (e &= ~(Se | Ce), r = i = be), l -= i ? i.length : 0, e & Ce) {
                    var c = r,
                        h = i;
                    r = i = be
                }
                var d = u ? be : Qn(t),
                    f = [t, e, n, r, i, c, h, o, a, s];
                if (d && (Pt(f, d), e = f[1], s = f[9]), f[9] = null == s ? u ? 0 : t.length : Bn(s - l, 0) || 0, e == ve) var p = rt(f[0], f[2]);
                else p = e != Se && e != (ve | Se) || f[4].length ? at.apply(be, f) : st.apply(be, f);
                return (d ? Zn : er)(p, f)
            }

            function lt(t, e, n, r, i, o, a) {
                var s = -1,
                    u = t.length,
                    l = e.length;
                if (u != l && !(i && l > u)) return !1;
                for (; ++s < u;) {
                    var c = t[s],
                        h = e[s],
                        d = r ? r(i ? h : c, i ? c : h, s) : be;
                    if (d !== be) {
                        if (d) continue;
                        return !1
                    }
                    if (i) {
                        if (!w(e, function(t) {
                                return c === t || n(c, t, r, i, o, a)
                            })) return !1
                    } else if (c !== h && !n(c, h, r, i, o, a)) return !1
                }
                return !0
            }

            function ct(t, e, n) {
                switch (n) {
                    case ke:
                    case Fe:
                        return +t == +e;
                    case Be:
                        return t.name == e.name && t.message == e.message;
                    case je:
                        return t != +t ? e != +e : t == +e;
                    case Ue:
                    case We:
                        return t == e + ""
                }
                return !1
            }

            function ht(t, e, n, r, i, o, a) {
                var s = dr(t),
                    u = s.length;
                if (u != dr(e).length && !i) return !1;
                for (var l = u; l--;) {
                    var c = s[l];
                    if (!(i ? c in e : wn.call(e, c))) return !1
                }
                for (var h = i; ++l < u;) {
                    c = s[l];
                    var d = t[c],
                        f = e[c],
                        p = r ? r(i ? f : d, i ? d : f, c) : be;
                    if (!(p === be ? n(d, f, r, i, o, a) : p)) return !1;
                    h || (h = "constructor" == c)
                }
                if (!h) {
                    var g = t.constructor,
                        m = e.constructor;
                    if (g != m && "constructor" in t && "constructor" in e && !("function" == typeof g && g instanceof g && "function" == typeof m && m instanceof m)) return !1
                }
                return !0
            }

            function dt(t, e, n) {
                var r = a.callback || de;
                return r = r === de ? P : r, n ? r(t, e, n) : r
            }

            function ft(t) {
                for (var e = t.name + "", n = Vn[e], r = n ? n.length : 0; r--;) {
                    var i = n[r],
                        o = i.func;
                    if (null == o || o == t) return i.name
                }
                return e
            }

            function pt(t, n, r) {
                var i = a.indexOf || Lt;
                return i = i === Lt ? e : i, t ? i(t, n, r) : i
            }

            function gt(t) {
                for (var e = ce(t), n = e.length; n--;) e[n][2] = Ot(e[n][1]);
                return e
            }

            function mt(t, e) {
                var n = null == t ? be : t[e];
                return oe(n) ? n : be
            }

            function yt(t, e, n) {
                for (var r = -1, i = n.length; ++r < i;) {
                    var o = n[r],
                        a = o.size;
                    switch (o.type) {
                        case "drop":
                            t += a;
                            break;
                        case "dropRight":
                            e -= a;
                            break;
                        case "take":
                            e = Nn(e, t + a);
                            break;
                        case "takeRight":
                            t = Bn(t, e - a)
                    }
                }
                return {
                    start: t,
                    end: e
                }
            }

            function bt(t) {
                var e = t.length,
                    n = new t.constructor(e);
                return e && "string" == typeof t[0] && wn.call(t, "index") && (n.index = t.index, n.input = t.input), n
            }

            function vt(t) {
                var e = t.constructor;
                return "function" == typeof e && e instanceof e || (e = Object), new e
            }

            function _t(t, e, n) {
                var r = t.constructor;
                switch (e) {
                    case He:
                        return tt(t);
                    case ke:
                    case Fe:
                        return new r(+t);
                    case Xe:
                    case Ve:
                    case ze:
                    case Ye:
                    case qe:
                    case Je:
                    case Ke:
                    case $e:
                    case Ze:
                        r instanceof r && (r = zn[e]);
                        var i = t.buffer;
                        return new r(n ? tt(i) : i, t.byteOffset, t.length);
                    case je:
                    case We:
                        return new r(t);
                    case Ue:
                        var o = new r(t.source, rn.exec(t));
                        o.lastIndex = t.lastIndex
                }
                return o
            }

            function xt(t) {
                return null != t && Et(tr(t))
            }

            function Tt(t, e) {
                return t = "number" == typeof t || an.test(t) ? +t : -1, e = null == e ? Hn : e, t > -1 && t % 1 == 0 && t < e
            }

            function wt(t, e, n) {
                if (!ie(n)) return !1;
                var r = typeof e;
                if ("number" == r ? xt(n) && Tt(e, n.length) : "string" == r && e in n) {
                    var i = n[e];
                    return t === t ? t === i : i !== i
                }
                return !1
            }

            function St(t, e) {
                var n = typeof t;
                return !!("string" == n && tn.test(t) || "number" == n) || !lr(t) && (!Qe.test(t) || null != e && t in Mt(e))
            }

            function Ct(t) {
                var e = ft(t),
                    n = a[e];
                if ("function" != typeof n || !(e in l.prototype)) return !1;
                if (t === n) return !0;
                var r = Qn(n);
                return !!r && t === r[0]
            }

            function Et(t) {
                return "number" == typeof t && t > -1 && t % 1 == 0 && t <= Hn
            }

            function Ot(t) {
                return t === t && !ie(t)
            }

            function Pt(t, e) {
                var n = t[1],
                    r = e[1],
                    i = n | r,
                    a = i < Ee,
                    s = r == Ee && n == Te || r == Ee && n == Oe && t[7].length <= e[8] || r == (Ee | Oe) && n == Te;
                if (!a && !s) return t;
                r & ve && (t[2] = e[2], i |= n & ve ? 0 : xe);
                var u = e[3];
                if (u) {
                    var l = t[3];
                    t[3] = l ? et(l, u, e[4]) : y(u), t[4] = l ? o(t[3], Ie) : y(e[4])
                }
                return u = e[5], u && (l = t[5], t[5] = l ? nt(l, u, e[6]) : y(u), t[6] = l ? o(t[5], Ie) : y(e[6])), u = e[7], u && (t[7] = y(u)), r & Ee && (t[8] = null == t[8] ? e[8] : Nn(t[8], e[8])), null == t[9] && (t[9] = e[9]), t[0] = e[0], t[1] = i, t
            }

            function At(t, e) {
                for (var n = t.length, r = Nn(e.length, n), i = y(t); r--;) {
                    var o = e[r];
                    t[r] = Tt(o, n) ? i[o] : be
                }
                return t
            }

            function Rt(t) {
                for (var e = le(t), n = e.length, r = n && t.length, i = !!r && Et(r) && (lr(t) || ee(t) || se(t)), o = -1, a = []; ++o < n;) {
                    var s = e[o];
                    (i && Tt(s, r) || wn.call(t, s)) && a.push(s)
                }
                return a
            }

            function Mt(t) {
                if (a.support.unindexedChars && se(t)) {
                    for (var e = -1, n = t.length, r = Object(t); ++e < n;) r[e] = t.charAt(e);
                    return r
                }
                return ie(t) ? t : Object(t)
            }

            function It(t) {
                if (lr(t)) return t;
                var e = [];
                return n(t).replace(en, function(t, n, r, i) {
                    e.push(r ? i.replace(nn, "$1") : n || t)
                }), e
            }

            function Dt(t) {
                return t instanceof l ? t.clone() : new u(t.__wrapped__, t.__chain__, y(t.__actions__))
            }

            function Lt(t, n, r) {
                var i = t ? t.length : 0;
                if (!i) return -1;
                if ("number" == typeof r) r = r < 0 ? Bn(i + r, 0) : r;
                else if (r) {
                    var o = $(t, n);
                    return o < i && (n === n ? n === t[o] : t[o] !== t[o]) ? o : -1
                }
                return e(t, n, r || 0)
            }

            function kt(t) {
                var e = t ? t.length : 0;
                return e ? t[e - 1] : be
            }

            function Ft(t) {
                var e = a(t);
                return e.__chain__ = !0, e
            }

            function Bt(t, e, n) {
                return e.call(n, t), t
            }

            function Nt(t, e, n) {
                return e.call(n, t)
            }

            function jt() {
                return Ft(this)
            }

            function Gt() {
                return new u(this.value(), this.__chain__)
            }

            function Ut(t) {
                for (var e, n = this; n instanceof s;) {
                    var r = Dt(n);
                    e ? i.__wrapped__ = r : e = r;
                    var i = r;
                    n = n.__wrapped__
                }
                return i.__wrapped__ = t, e
            }

            function Wt() {
                var t = this.__wrapped__,
                    e = function(t) {
                        return t.reverse()
                    };
                if (t instanceof l) {
                    var n = t;
                    return this.__actions__.length && (n = new l(this)), n = n.reverse(), n.__actions__.push({
                        func: Nt,
                        args: [e],
                        thisArg: be
                    }), new u(n, this.__chain__)
                }
                return this.thru(e)
            }

            function Ht() {
                return this.value() + ""
            }

            function Xt() {
                return K(this.__wrapped__, this.__actions__)
            }

            function Vt(t, e, n) {
                var r = lr(t) ? v : M;
                return e = dt(e, n, 3), r(t, e)
            }

            function zt(t, e, n, r) {
                var i = t ? tr(t) : 0;
                return Et(i) || (t = he(t), i = t.length), n = "number" != typeof n || r && wt(e, n, r) ? 0 : n < 0 ? Bn(i + n, 0) : n || 0, "string" == typeof t || !lr(t) && se(t) ? n <= i && t.indexOf(e, n) > -1 : !!i && pt(t, e, n) > -1
            }

            function Yt(t, e, n) {
                var r = lr(t) ? _ : U;
                return e = dt(e, n, 3), r(t, e)
            }

            function qt(t, e, n) {
                var r = lr(t) ? w : q;
                return n && wt(t, e, n) && (e = be), "function" == typeof e && n === be || (e = dt(e, n, 3)), r(t, e)
            }

            function Jt(t, e) {
                if ("function" != typeof e) {
                    if ("function" != typeof t) throw new TypeError(Me);
                    var n = t;
                    t = e, e = n
                }
                return t = kn(t = +t) ? t : 0,
                    function() {
                        if (--t < 1) return e.apply(this, arguments)
                    }
            }

            function Kt(t, e, n) {
                function r() {
                    f && clearTimeout(f), l && clearTimeout(l), g = 0, l = f = p = be
                }

                function i(e, n) {
                    n && clearTimeout(n), l = f = p = be, e && (g = sr(), c = t.apply(d, u), f || l || (u = d = be))
                }

                function o() {
                    var t = e - (sr() - h);
                    t <= 0 || t > e ? i(p, l) : f = setTimeout(o, t)
                }

                function a() {
                    i(y, f)
                }

                function s() {
                    if (u = arguments, h = sr(), d = this, p = y && (f || !b), !1 === m) var n = b && !f;
                    else {
                        l || b || (g = h);
                        var r = m - (h - g),
                            i = r <= 0 || r > m;
                        i ? (l && (l = clearTimeout(l)), g = h, c = t.apply(d, u)) : l || (l = setTimeout(a, r))
                    }
                    return i && f ? f = clearTimeout(f) : f || e === m || (f = setTimeout(o, e)), n && (i = !0, c = t.apply(d, u)), !i || f || l || (u = d = be), c
                }
                var u, l, c, h, d, f, p, g = 0,
                    m = !1,
                    y = !0;
                if ("function" != typeof t) throw new TypeError(Me);
                if (e = e < 0 ? 0 : +e || 0, !0 === n) {
                    var b = !0;
                    y = !1
                } else ie(n) && (b = !!n.leading, m = "maxWait" in n && Bn(+n.maxWait || 0, e), y = "trailing" in n ? !!n.trailing : y);
                return s.cancel = r, s
            }

            function $t(t, e) {
                if ("function" != typeof t) throw new TypeError(Me);
                return e = Bn(e === be ? t.length - 1 : +e || 0, 0),
                    function() {
                        for (var n = arguments, r = -1, i = Bn(n.length - e, 0), o = Array(i); ++r < i;) o[r] = n[e + r];
                        switch (e) {
                            case 0:
                                return t.call(this, o);
                            case 1:
                                return t.call(this, n[0], o);
                            case 2:
                                return t.call(this, n[0], n[1], o)
                        }
                        var a = Array(e + 1);
                        for (r = -1; ++r < e;) a[r] = n[r];
                        return a[e] = o, t.apply(this, a)
                    }
            }

            function Zt(t, e, n) {
                var r = !0,
                    i = !0;
                if ("function" != typeof t) throw new TypeError(Me);
                return !1 === n ? r = !1 : ie(n) && (r = "leading" in n ? !!n.leading : r, i = "trailing" in n ? !!n.trailing : i), Kt(t, e, {
                    leading: r,
                    maxWait: +e,
                    trailing: i
                })
            }

            function Qt(t, e, n, r) {
                return e && "boolean" != typeof e && wt(t, e, n) ? e = !1 : "function" == typeof e && (r = n, n = e, e = !1), "function" == typeof n ? A(t, e, Q(n, r, 3)) : A(t, e)
            }

            function te(t, e, n) {
                return "function" == typeof e ? A(t, !0, Q(e, n, 3)) : A(t, !0)
            }

            function ee(t) {
                return i(t) && xt(t) && wn.call(t, "callee") && !On.call(t, "callee")
            }

            function ne(t, e, n, r) {
                n = "function" == typeof n ? Q(n, r, 3) : be;
                var i = n ? n(t, e) : be;
                return i === be ? N(t, e, n) : !!i
            }

            function re(t) {
                return ie(t) && Sn.call(t) == Ne
            }

            function ie(t) {
                var e = typeof t;
                return !!t && ("object" == e || "function" == e)
            }

            function oe(t) {
                return null != t && (re(t) ? Cn.test(Tn.call(t)) : i(t) && (yn(t) ? Cn : on).test(t))
            }

            function ae(t) {
                var e;
                if (!i(t) || Sn.call(t) != Ge || yn(t) || ee(t) || !wn.call(t, "constructor") && "function" == typeof(e = t.constructor) && !(e instanceof e)) return !1;
                var n;
                return a.support.ownLast ? (L(t, function(t, e, r) {
                    return n = wn.call(r, e), !1
                }), !1 !== n) : (L(t, function(t, e) {
                    n = e
                }), n === be || wn.call(t, n))
            }

            function se(t) {
                return "string" == typeof t || i(t) && Sn.call(t) == We
            }

            function ue(t) {
                return i(t) && Et(t.length) && !!un[Sn.call(t)]
            }

            function le(t) {
                if (null == t) return [];
                ie(t) || (t = Object(t));
                var e = t.length,
                    n = a.support;
                e = e && Et(e) && (lr(t) || ee(t) || se(t)) && e || 0;
                for (var r = t.constructor, i = -1, o = re(r) && r.prototype || _n, s = o === t, u = Array(e), l = e > 0, c = n.enumErrorProps && (t === vn || t instanceof Error), h = n.enumPrototypes && re(t); ++i < e;) u[i] = i + "";
                for (var d in t) h && "prototype" == d || c && ("message" == d || "name" == d) || l && Tt(d, e) || "constructor" == d && (s || !wn.call(t, d)) || u.push(d);
                if (n.nonEnumShadows && t !== _n) {
                    var f = t === xn ? We : t === vn ? Be : Sn.call(t),
                        p = Yn[f] || Yn[Ge];
                    for (f == Ge && (o = _n), e = sn.length; e--;) {
                        d = sn[e];
                        var g = p[d];
                        s && g || (g ? !wn.call(t, d) : t[d] === o[d]) || u.push(d)
                    }
                }
                return u
            }

            function ce(t) {
                t = Mt(t);
                for (var e = -1, n = dr(t), r = n.length, i = Array(r); ++e < r;) {
                    var o = n[e];
                    i[e] = [o, t[o]]
                }
                return i
            }

            function he(t) {
                return J(t, dr(t))
            }

            function de(t, e, n) {
                return n && wt(t, e, n) && (e = be), i(t) ? pe(t) : P(t, e)
            }

            function fe(t) {
                return t
            }

            function pe(t) {
                return W(A(t, !0))
            }

            function ge(t, e, n) {
                if (null == n) {
                    var r = ie(e),
                        i = r ? dr(e) : be,
                        o = i && i.length ? F(e, i) : be;
                    (o ? o.length : r) || (o = !1, n = e, e = t, t = this)
                }
                o || (o = F(e, dr(e)));
                var a = !0,
                    s = -1,
                    u = re(t),
                    l = o.length;
                !1 === n ? a = !1 : ie(n) && "chain" in n && (a = n.chain);
                for (; ++s < l;) {
                    var c = o[s],
                        h = e[c];
                    t[c] = h, u && (t.prototype[c] = function(e) {
                        return function() {
                            var n = this.__chain__;
                            if (a || n) {
                                var r = t(this.__wrapped__);
                                return (r.__actions__ = y(this.__actions__)).push({
                                    func: e,
                                    args: arguments,
                                    thisArg: t
                                }), r.__chain__ = n, r
                            }
                            return e.apply(t, x([this.value()], arguments))
                        }
                    }(h))
                }
                return t
            }

            function me() {}

            function ye(t) {
                return St(t) ? X(t) : V(t)
            }
            var be, ve = 1,
                _e = 2,
                xe = 4,
                Te = 8,
                we = 16,
                Se = 32,
                Ce = 64,
                Ee = 128,
                Oe = 256,
                Pe = 200,
                Ae = 1,
                Re = 2,
                Me = "Expected a function",
                Ie = "__lodash_placeholder__",
                De = "[object Arguments]",
                Le = "[object Array]",
                ke = "[object Boolean]",
                Fe = "[object Date]",
                Be = "[object Error]",
                Ne = "[object Function]",
                je = "[object Number]",
                Ge = "[object Object]",
                Ue = "[object RegExp]",
                We = "[object String]",
                He = "[object ArrayBuffer]",
                Xe = "[object Float32Array]",
                Ve = "[object Float64Array]",
                ze = "[object Int8Array]",
                Ye = "[object Int16Array]",
                qe = "[object Int32Array]",
                Je = "[object Uint8Array]",
                Ke = "[object Uint8ClampedArray]",
                $e = "[object Uint16Array]",
                Ze = "[object Uint32Array]",
                Qe = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
                tn = /^\w*$/,
                en = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,
                nn = /\\(\\)?/g,
                rn = /\w*$/,
                on = /^\[object .+?Constructor\]$/,
                an = /^\d+$/,
                sn = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"],
                un = {};
            un[Xe] = un[Ve] = un[ze] = un[Ye] = un[qe] = un[Je] = un[Ke] = un[$e] = un[Ze] = !0, un[De] = un[Le] = un[He] = un[ke] = un[Fe] = un[Be] = un[Ne] = un["[object Map]"] = un[je] = un[Ge] = un[Ue] = un["[object Set]"] = un[We] = un["[object WeakMap]"] = !1;
            var ln = {};
            ln[De] = ln[Le] = ln[He] = ln[ke] = ln[Fe] = ln[Xe] = ln[Ve] = ln[ze] = ln[Ye] = ln[qe] = ln[je] = ln[Ge] = ln[Ue] = ln[We] = ln[Je] = ln[Ke] = ln[$e] = ln[Ze] = !0, ln[Be] = ln[Ne] = ln["[object Map]"] = ln["[object Set]"] = ln["[object WeakMap]"] = !1;
            var cn = {
                    function: !0,
                    object: !0
                },
                hn = cn[typeof exports] && exports && !exports.nodeType && exports,
                dn = cn[typeof module] && module && !module.nodeType && module,
                fn = hn && dn && "object" == typeof global && global && global.Object && global,
                pn = cn[typeof self] && self && self.Object && self,
                gn = cn[typeof window] && window && window.Object && window,
                mn = fn || gn !== (this && this.window) && gn || pn || this,
                yn = function() {
                    try {
                        Object({
                            toString: 0
                        } + "")
                    } catch (t) {
                        return function() {
                            return !1
                        }
                    }
                    return function(t) {
                        return "function" != typeof t.toString && "string" == typeof(t + "")
                    }
                }(),
                bn = Array.prototype,
                vn = Error.prototype,
                _n = Object.prototype,
                xn = String.prototype,
                Tn = Function.prototype.toString,
                wn = _n.hasOwnProperty,
                Sn = _n.toString,
                Cn = RegExp("^" + Tn.call(wn).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"),
                En = mn.ArrayBuffer,
                On = _n.propertyIsEnumerable,
                Pn = mt(mn, "Set"),
                An = bn.splice,
                Rn = mn.Uint8Array,
                Mn = mt(mn, "WeakMap"),
                In = mt(Object, "create"),
                Dn = Math.floor,
                Ln = mt(Array, "isArray"),
                kn = mn.isFinite,
                Fn = mt(Object, "keys"),
                Bn = Math.max,
                Nn = Math.min,
                jn = mt(Date, "now"),
                Gn = Number.POSITIVE_INFINITY,
                Un = 4294967294,
                Wn = 2147483647,
                Hn = 9007199254740991,
                Xn = Mn && new Mn,
                Vn = {},
                zn = {};
            zn[Xe] = mn.Float32Array, zn[Ve] = mn.Float64Array, zn[ze] = mn.Int8Array, zn[Ye] = mn.Int16Array, zn[qe] = mn.Int32Array, zn[Je] = Rn, zn[Ke] = mn.Uint8ClampedArray, zn[$e] = mn.Uint16Array, zn[Ze] = mn.Uint32Array;
            var Yn = {};
            Yn[Le] = Yn[Fe] = Yn[je] = {
                constructor: !0,
                toLocaleString: !0,
                toString: !0,
                valueOf: !0
            }, Yn[ke] = Yn[We] = {
                constructor: !0,
                toString: !0,
                valueOf: !0
            }, Yn[Be] = Yn[Ne] = Yn[Ue] = {
                constructor: !0,
                toString: !0
            }, Yn[Ge] = {
                constructor: !0
            }, b(sn, function(t) {
                for (var e in Yn)
                    if (wn.call(Yn, e)) {
                        var n = Yn[e];
                        n[t] = wn.call(n, t)
                    }
            });
            var qn = a.support = {};
            ! function(t) {
                var e = function() {
                        this.x = 1
                    },
                    n = {
                        0: 1,
                        length: 1
                    },
                    r = [];
                e.prototype = {
                    valueOf: 1,
                    y: 1
                };
                for (var i in new e) r.push(i);
                qn.enumErrorProps = On.call(vn, "message") || On.call(vn, "name"), qn.enumPrototypes = On.call(e, "prototype"), qn.nonEnumShadows = !/valueOf/.test(r), qn.ownLast = "x" != r[0], qn.spliceObjects = (An.call(n, 0, 1), !n[0]), qn.unindexedChars = "x" [0] + Object("x")[0] != "xx"
            }();
            var Jn = function() {
                    function t() {}
                    return function(e) {
                        if (ie(e)) {
                            t.prototype = e;
                            var n = new t;
                            t.prototype = be
                        }
                        return n || {}
                    }
                }(),
                Kn = function(t, e) {
                    return function(n, r) {
                        var i = n ? tr(n) : 0;
                        if (!Et(i)) return t(n, r);
                        for (var o = e ? i : -1, a = Mt(n);
                            (e ? o-- : ++o < i) && !1 !== r(a[o], o, a););
                        return n
                    }
                }(k),
                $n = function(t) {
                    return function(e, n, r) {
                        for (var i = Mt(e), o = r(e), a = o.length, s = t ? a : -1; t ? s-- : ++s < a;) {
                            var u = o[s];
                            if (!1 === n(i[u], u, i)) break
                        }
                        return e
                    }
                }(),
                Zn = Xn ? function(t, e) {
                    return Xn.set(t, e), t
                } : fe,
                Qn = Xn ? function(t) {
                    return Xn.get(t)
                } : me,
                tr = X("length"),
                er = function() {
                    var t = 0,
                        e = 0;
                    return function(n, r) {
                        var i = sr(),
                            o = 16 - (i - e);
                        if (e = i, o > 0) {
                            if (++t >= 150) return n
                        } else t = 0;
                        return Zn(n, r)
                    }
                }(),
                nr = $t(function(t, e) {
                    return xt(t) ? R(t, e) : []
                }),
                rr = $t(function(t) {
                    return t = D(t), this.thru(function(e) {
                        return m(lr(e) ? e : [Mt(e)], t)
                    })
                }),
                ir = function(e, n) {
                    return function(r, i, o) {
                        if (i = dt(i, o, 3), lr(r)) {
                            var a = t(r, i, n);
                            return a > -1 ? r[a] : be
                        }
                        return I(r, i, e)
                    }
                }(Kn),
                or = function(t, e) {
                    return function(n, r, i) {
                        return "function" == typeof r && i === be && lr(n) ? t(n, r) : e(n, Q(r, i, 3))
                    }
                }(b, Kn),
                ar = function(t, e) {
                    return function(n, r, i, o) {
                        var a = arguments.length < 3;
                        return "function" == typeof r && o === be && lr(n) ? t(n, r, i, a) : z(n, dt(r, o, 4), i, a, e)
                    }
                }(T, Kn),
                sr = jn || function() {
                    return (new Date).getTime()
                },
                ur = $t(function(t, e, n) {
                    var r = ve;
                    if (n.length) {
                        var i = o(n, ur.placeholder);
                        r |= Se
                    }
                    return ut(t, r, e, n, i)
                }),
                lr = Ln || function(t) {
                    return i(t) && Et(t.length) && Sn.call(t) == Le
                },
                cr = function(t) {
                    return $t(function(e, n) {
                        var r = -1,
                            i = null == e ? 0 : n.length,
                            o = i > 2 ? n[i - 2] : be,
                            a = i > 2 ? n[2] : be,
                            s = i > 1 ? n[i - 1] : be;
                        for ("function" == typeof o ? (o = Q(o, s, 5), i -= 2) : (o = "function" == typeof s ? s : be, i -= o ? 1 : 0), a && wt(n[0], n[1], a) && (o = i < 3 ? be : o, i = 1); ++r < i;) {
                            var u = n[r];
                            u && t(e, u, o)
                        }
                        return e
                    })
                }(function(t, e, n) {
                    return n ? C(t, e, n) : E(t, e)
                }),
                hr = function(t, e) {
                    return $t(function(n) {
                        var r = n[0];
                        return null == r ? r : (n.push(e), t.apply(be, n))
                    })
                }(cr, S),
                dr = Fn ? function(t) {
                    var e = null == t ? be : t.constructor;
                    return "function" == typeof e && e.prototype === t || ("function" == typeof t ? a.support.enumPrototypes : xt(t)) ? Rt(t) : ie(t) ? Fn(t) : []
                } : Rt;
            a.prototype = s.prototype, u.prototype = Jn(s.prototype), u.prototype.constructor = u, l.prototype = Jn(s.prototype), l.prototype.constructor = l, f.prototype.push = g, a.after = Jt, a.assign = cr, a.bind = ur, a.callback = de, a.chain = Ft, a.debounce = Kt, a.defaults = hr, a.filter = Vt, a.forEach = or, a.keys = dr, a.keysIn = le, a.map = Yt, a.matches = pe, a.mixin = ge, a.pairs = ce, a.property = ye, a.restParam = $t, a.tap = Bt, a.throttle = Zt, a.thru = Nt, a.values = he, a.without = nr, a.collect = Yt, a.each = or, a.extend = cr, a.iteratee = de, a.select = Vt, ge(a, a), a.clone = Qt, a.cloneDeep = te, a.find = ir, a.identity = fe, a.includes = zt, a.indexOf = Lt, a.isArguments = ee, a.isArray = lr, a.isEqual = ne, a.isFunction = re, a.isNative = oe, a.isObject = ie, a.isPlainObject = ae, a.isString = se, a.isTypedArray = ue, a.last = kt, a.noop = me, a.now = sr, a.reduce = ar, a.some = qt, a.any = qt, a.contains = zt, a.eq = ne, a.detect = ir, a.foldl = ar, a.include = zt, a.inject = ar, ge(a, function() {
                var t = {};
                return k(a, function(e, n) {
                    a.prototype[n] || (t[n] = e)
                }), t
            }(), !1), a.prototype.sample = function(t) {
                return this.__chain__ || null != t ? this.thru(function(e) {
                    return sample(e, t)
                }) : sample(this.value())
            }, a.VERSION = "3.10.1", ur.placeholder = a, b(["drop", "take"], function(t, e) {
                l.prototype[t] = function(n) {
                    var r = this.__filtered__;
                    if (r && !e) return new l(this);
                    n = null == n ? 1 : Bn(Dn(n) || 0, 0);
                    var i = this.clone();
                    return r ? i.__takeCount__ = Nn(i.__takeCount__, n) : i.__views__.push({
                        size: n,
                        type: t + (i.__dir__ < 0 ? "Right" : "")
                    }), i
                }, l.prototype[t + "Right"] = function(e) {
                    return this.reverse()[t](e).reverse()
                }
            }), b(["filter", "map", "takeWhile"], function(t, e) {
                var n = e + 1,
                    r = n != Re;
                l.prototype[t] = function(t, e) {
                    var i = this.clone();
                    return i.__iteratees__.push({
                        iteratee: dt(t, e, 1),
                        type: n
                    }), i.__filtered__ = i.__filtered__ || r, i
                }
            }), b(["first", "last"], function(t, e) {
                var n = "take" + (e ? "Right" : "");
                l.prototype[t] = function() {
                    return this[n](1).value()[0]
                }
            }), b(["initial", "rest"], function(t, e) {
                var n = "drop" + (e ? "" : "Right");
                l.prototype[t] = function() {
                    return this.__filtered__ ? new l(this) : this[n](1)
                }
            }), b(["pluck", "where"], function(t, e) {
                var n = e ? "filter" : "map",
                    r = e ? W : ye;
                l.prototype[t] = function(t) {
                    return this[n](r(t))
                }
            }), l.prototype.compact = function() {
                return this.filter(fe)
            }, l.prototype.reject = function(t, e) {
                return t = dt(t, e, 1), this.filter(function(e) {
                    return !t(e)
                })
            }, l.prototype.slice = function(t, e) {
                t = null == t ? 0 : +t || 0;
                var n = this;
                return n.__filtered__ && (t > 0 || e < 0) ? new l(n) : (t < 0 ? n = n.takeRight(-t) : t && (n = n.drop(t)), e !== be && (e = +e || 0, n = e < 0 ? n.dropRight(-e) : n.take(e - t)), n)
            }, l.prototype.takeRightWhile = function(t, e) {
                return this.reverse().takeWhile(t, e).reverse()
            }, l.prototype.toArray = function() {
                return this.take(Gn)
            }, k(l.prototype, function(t, e) {
                var n = /^(?:filter|map|reject)|While$/.test(e),
                    r = /^(?:first|last)$/.test(e),
                    i = a[r ? "take" + ("last" == e ? "Right" : "") : e];
                i && (a.prototype[e] = function() {
                    var e = r ? [1] : arguments,
                        o = this.__chain__,
                        a = this.__wrapped__,
                        s = !!this.__actions__.length,
                        c = a instanceof l,
                        h = e[0],
                        d = c || lr(a);
                    d && n && "function" == typeof h && 1 != h.length && (c = d = !1);
                    var f = function(t) {
                            return r && o ? i(t, 1)[0] : i.apply(be, x([t], e))
                        },
                        p = {
                            func: Nt,
                            args: [f],
                            thisArg: be
                        },
                        g = c && !s;
                    if (r && !o) return g ? (a = a.clone(), a.__actions__.push(p), t.call(a)) : i.call(be, this.value())[0];
                    if (!r && d) {
                        a = g ? a : new l(this);
                        var m = t.apply(a, e);
                        return m.__actions__.push(p), new u(m, o)
                    }
                    return this.thru(f)
                })
            }), b(["join", "pop", "push", "replace", "shift", "sort", "splice", "split", "unshift"], function(t) {
                var e = (/^(?:replace|split)$/.test(t) ? xn : bn)[t],
                    n = /^(?:push|sort|unshift)$/.test(t) ? "tap" : "thru",
                    r = !qn.spliceObjects && /^(?:pop|shift|splice)$/.test(t),
                    i = /^(?:join|pop|replace|shift)$/.test(t),
                    o = r ? function() {
                        var t = e.apply(this, arguments);
                        return 0 === this.length && delete this[0], t
                    } : e;
                a.prototype[t] = function() {
                    var t = arguments;
                    return i && !this.__chain__ ? o.apply(this.value(), t) : this[n](function(e) {
                        return o.apply(e, t)
                    })
                }
            }), k(l.prototype, function(t, e) {
                var n = a[e];
                if (n) {
                    var r = n.name + "";
                    (Vn[r] || (Vn[r] = [])).push({
                        name: e,
                        func: n
                    })
                }
            }), Vn[at(be, _e).name] = [{
                name: "wrapper",
                func: be
            }], l.prototype.clone = c, l.prototype.reverse = h, l.prototype.value = d, a.prototype.chain = jt, a.prototype.commit = Gt, a.prototype.concat = rr, a.prototype.plant = Ut, a.prototype.reverse = Wt, a.prototype.toString = Ht, a.prototype.run = a.prototype.toJSON = a.prototype.valueOf = a.prototype.value = Xt, a.prototype.collect = a.prototype.map, a.prototype.head = a.prototype.first, a.prototype.select = a.prototype.filter, a.prototype.tail = a.prototype.rest, "function" == typeof define && "object" == typeof define.amd && define.amd && define("lodash", [], function() {
                return a
            })
        }.call(this),
        function(t, e) {
            "function" == typeof define && define.amd ? define("postal", ["lodash"], function(n) {
                return e(n, t)
            }) : "object" == typeof module && module.exports ? module.exports = e(require("lodash"), this) : t.postal = e(t._, t)
        }(this, function(t, e, n) {
            function r() {
                for (; x.length;) c.unsubscribe(x.shift())
            }

            function i(t, e, n) {
                return function(r, i, o) {
                    r === t && o.splice(i, 1), 0 === o.length && delete n[e]
                }
            }

            function o(t, e, n, r, i) {
                var o = i && i.headers || {};
                return function(i) {
                    var a;
                    h.resolver.compare(i.topic, t, o) && (o.resolverNoCache || (a = e[n] = e[n] || [], a.push(i)), i.cacheKeys.push(n), r && r(i))
                }
            }

            function a(t, e) {
                return {
                    channel: h.SYSTEM_CHANNEL,
                    topic: "subscription." + t,
                    data: {
                        event: "subscription." + t,
                        channel: e.channel,
                        topic: e.topic
                    }
                }
            }

            function s(e, n) {
                return "function" == typeof e ? e : e ? function(r) {
                    var i = 0,
                        o = 0;
                    return t.each(e, function(t, a) {
                        i += 1, ("topic" === a && n.compare(r.topic, e.topic, {
                            resolverNoCache: !0
                        }) || "context" === a && e.context === r._context || r[a] === e[a]) && (o += 1)
                    }), i === o
                } : function() {
                    return !0
                }
            }
            var u = e.postal,
                l = {
                    DEFAULT_CHANNEL: "/",
                    SYSTEM_CHANNEL: "postal",
                    enableSystemMessages: !0,
                    cacheKeyDelimiter: "|",
                    autoCompactResolver: !1
                },
                c = {
                    configuration: t.extend({}, l)
                },
                h = c.configuration,
                d = function(t, e) {
                    this.bus = e, this.channel = t || h.DEFAULT_CHANNEL
                };
            d.prototype.subscribe = function() {
                return this.bus.subscribe({
                    channel: this.channel,
                    topic: 1 === arguments.length ? arguments[0].topic : arguments[0],
                    callback: 1 === arguments.length ? arguments[0].callback : arguments[1]
                })
            }, d.prototype.publish = function() {
                var t, e = {};
                if ("string" == typeof arguments[0] ? (e.topic = arguments[0], e.data = arguments[1], t = arguments[2]) : (e = arguments[0], t = arguments[1]), "object" != typeof e) throw new Error("The first argument to ChannelDefinition.publish should be either an envelope object or a string topic.");
                e.channel = this.channel, this.bus.publish(e, t)
            };
            var f = function(t, e, r) {
                    if (3 !== arguments.length) throw new Error("You must provide a channel, topic and callback when creating a SubscriptionDefinition instance.");
                    if (0 === e.length) throw new Error("Topics cannot be empty");
                    this.channel = t, this.topic = e, this.callback = r, this.pipeline = [], this.cacheKeys = [], this._context = n
                },
                p = function() {
                    var e;
                    return function(n) {
                        var r = !1;
                        return "string" == typeof n ? (r = n === e, e = n) : (r = t.isEqual(n, e), e = t.extend({}, n)), !r
                    }
                },
                g = function() {
                    var e = [];
                    return function(n) {
                        var r = !t.any(e, function(e) {
                            return t.isEqual(n, e)
                        });
                        return r && e.push(n), r
                    }
                };
            f.prototype = {
                catch: function(t) {
                    var e = this.callback,
                        n = function() {
                            try {
                                e.apply(this, arguments)
                            } catch (e) {
                                t(e, arguments[0])
                            }
                        };
                    return this.callback = n, this
                },
                defer: function() {
                    return this.delay(0)
                },
                disposeAfter: function(e) {
                    if ("number" != typeof e || e <= 0) throw new Error("The value provided to disposeAfter (maxCalls) must be a number greater than zero.");
                    var n = this,
                        r = t.after(e, t.bind(function() {
                            n.unsubscribe()
                        }));
                    return n.pipeline.push(function(t, e, n) {
                        n(t, e), r()
                    }), n
                },
                distinct: function() {
                    return this.constraint(new g)
                },
                distinctUntilChanged: function() {
                    return this.constraint(new p)
                },
                invokeSubscriber: function(t, e) {
                    if (!this.inactive) {
                        var n = this,
                            r = n.pipeline,
                            i = r.length,
                            o = n._context,
                            a = -1,
                            s = !1;
                        if (i) {
                            r = r.concat([n.callback]);
                            ! function t(e, u) {
                                a += 1, a < i ? r[a].call(o, e, u, t) : (n.callback.call(o, e, u), s = !0)
                            }(t, e)
                        } else n.callback.call(o, t, e), s = !0;
                        return s
                    }
                },
                logError: function() {
                    if (console) {
                        var t;
                        t = console.warn ? console.warn : console.log, this.catch(t)
                    }
                    return this
                },
                once: function() {
                    return this.disposeAfter(1)
                },
                subscribe: function(t) {
                    return this.callback = t, this
                },
                unsubscribe: function() {
                    this.inactive || c.unsubscribe(this)
                },
                constraint: function(t) {
                    if ("function" != typeof t) throw new Error("Predicate constraint must be a function");
                    return this.pipeline.push(function(e, n, r) {
                        t.call(this, e, n) && r(e, n)
                    }), this
                },
                constraints: function(e) {
                    var n = this;
                    return t.each(e, function(t) {
                        n.constraint(t)
                    }), n
                },
                context: function(t) {
                    return this._context = t, this
                },
                debounce: function(e, n) {
                    if ("number" != typeof e) throw new Error("Milliseconds must be a number");
                    return this.pipeline.push(t.debounce(function(t, e, n) {
                        n(t, e)
                    }, e, !!n)), this
                },
                delay: function(t) {
                    if ("number" != typeof t) throw new Error("Milliseconds must be a number");
                    return this.pipeline.push(function(e, n, r) {
                        setTimeout(function() {
                            r(e, n)
                        }, t)
                    }), this
                },
                throttle: function(e) {
                    if ("number" != typeof e) throw new Error("Milliseconds must be a number");
                    var n = function(t, e, n) {
                        n(t, e)
                    };
                    return this.pipeline.push(t.throttle(n, e)), this
                }
            };
            for (var m = ["withConstraint", "withConstraints", "withContext", "withDebounce", "withDelay", "withThrottle"], y = ["constraint", "constraints", "context", "debounce", "delay", "throttle"], b = 0; b < 6; b++) {
                var v = m[b];
                f.prototype[v] = function(t, e) {
                    return function() {
                        if (console.warn || console.log) {
                            console.warn
                        }
                        return f.prototype[e].apply(this, arguments)
                    }
                }(v, y[b])
            }
            var _ = (h.resolver = {
                    cache: {},
                    regex: {},
                    enableCache: !0,
                    compare: function(e, n, r) {
                        var i, o, a, s = n + h.cacheKeyDelimiter + e,
                            u = this.cache[s],
                            l = r || {},
                            c = this.enableCache && !l.resolverNoCache;
                        return !0 === u ? u : -1 === e.indexOf("#") && -1 === e.indexOf("*") ? (u = n === e, c && (this.cache[s] = u), u) : ((o = this.regex[e]) || (i = "^" + t.map(e.split("."), function(t) {
                            var e = "";
                            return a && (e = "#" !== a ? "\\.\\b" : "\\b"), e += "#" === t ? "[\\s\\S]*" : "*" === t ? "[^.]+" : t, a = t, e
                        }).join("") + "$", o = this.regex[e] = new RegExp(i)), u = o.test(n), c && (this.cache[s] = u), u)
                    },
                    reset: function() {
                        this.cache = {}, this.regex = {}
                    },
                    purge: function(e) {
                        var n = this,
                            r = h.cacheKeyDelimiter,
                            i = function(t, i) {
                                var o = i.split(r),
                                    a = o[0],
                                    s = o[1];
                                void 0 !== e.topic && e.topic !== a || void 0 !== e.binding && e.binding !== s || delete n.cache[i]
                            },
                            o = function(t, e) {
                                var i = e.split(r);
                                0 === c.getSubscribersFor({
                                    topic: i[0]
                                }).length && delete n.cache[e]
                            };
                        if (void 0 === e) this.reset();
                        else {
                            var a = !0 === e.compact ? o : i;
                            t.each(this.cache, a)
                        }
                    }
                }, 0),
                x = [],
                T = 0,
                w = t.bind(a, this, "created"),
                S = t.bind(a, this, "removed");
            if (t.extend(c, {
                    cache: {},
                    subscriptions: {},
                    wireTaps: [],
                    ChannelDefinition: d,
                    SubscriptionDefinition: f,
                    channel: function(t) {
                        return new d(t, this)
                    },
                    addWireTap: function(t) {
                        var e = this;
                        return e.wireTaps.push(t),
                            function() {
                                var n = e.wireTaps.indexOf(t); - 1 !== n && e.wireTaps.splice(n, 1)
                            }
                    },
                    noConflict: function() {
                        if ("undefined" == typeof window || "undefined" != typeof window && "function" == typeof define && define.amd) throw new Error("noConflict can only be used in browser clients which aren't using AMD modules");
                        return e.postal = u, this
                    },
                    getSubscribersFor: function(e) {
                        var n = [],
                            r = this;
                        return t.each(r.subscriptions, function(r) {
                            t.each(r, function(r) {
                                n = n.concat(t.filter(r, s(e, h.resolver)))
                            })
                        }), n
                    },
                    publish: function(e, n) {
                        ++_;
                        var i = e.channel = e.channel || h.DEFAULT_CHANNEL,
                            a = e.topic;
                        e.timeStamp = new Date, this.wireTaps.length && t.each(this.wireTaps, function(t) {
                            t(e.data, e, _)
                        });
                        var s = i + h.cacheKeyDelimiter + a,
                            u = this.cache[s],
                            l = 0,
                            c = 0;
                        if (u) t.each(u, function(t) {
                            t.invokeSubscriber(e.data, e) ? c++ : l++
                        });
                        else {
                            var d = o(a, this.cache, s, function(t) {
                                t.invokeSubscriber(e.data, e) ? c++ : l++
                            }, e);
                            t.each(this.subscriptions[i], function(e) {
                                t.each(e, d)
                            })
                        }
                        0 == --_ && r(), n && n({
                            activated: c,
                            skipped: l
                        })
                    },
                    reset: function() {
                        this.unsubscribeFor(), h.resolver.reset(), this.subscriptions = {}, this.cache = {}
                    },
                    subscribe: function(e) {
                        var n, r = this.subscriptions,
                            i = new f(e.channel || h.DEFAULT_CHANNEL, e.topic, e.callback),
                            a = r[i.channel],
                            s = i.channel.length;
                        return a || (a = r[i.channel] = {}), n = r[i.channel][i.topic], n || (n = r[i.channel][i.topic] = []), n.push(i), t.each(t.keys(this.cache), function(t) {
                            t.substr(0, s) === i.channel && o(t.split(h.cacheKeyDelimiter)[1], this.cache, t)(i)
                        }, this), h.enableSystemMessages && this.publish(w(i)), i
                    },
                    unsubscribe: function() {
                        for (var e, n, r, o, a = arguments.length, s = 0; s < a; s++) {
                            if (e = arguments[s], e.inactive = !0, _) return void x.push(e);
                            if (n = this.subscriptions[e.channel], r = n && n[e.topic]) {
                                var u = r.length;
                                for (o = 0; o < u;) {
                                    if (r[o] === e) {
                                        r.splice(o, 1);
                                        break
                                    }
                                    o += 1
                                }
                                if (0 === r.length && (delete n[e.topic], t.keys(n).length || delete this.subscriptions[e.channel]), e.cacheKeys && e.cacheKeys.length)
                                    for (var l; l = e.cacheKeys.pop();) t.each(this.cache[l], i(e, l, this.cache));
                                if ("function" == typeof h.resolver.purge) {
                                    var c = !0 === h.autoCompactResolver ? 0 : "number" == typeof h.autoCompactResolver && h.autoCompactResolver - 1;
                                    c >= 0 && T === c ? (h.resolver.purge({
                                        compact: !0
                                    }), T = 0) : c >= 0 && T < c && (T += 1)
                                }
                            }
                            h.enableSystemMessages && this.publish(S(e))
                        }
                    },
                    unsubscribeFor: function(t) {
                        var e = [];
                        this.subscriptions && (e = this.getSubscribersFor(t), this.unsubscribe.apply(this, e))
                    }
                }), e && Object.prototype.hasOwnProperty.call(e, "__postalReady__") && t.isArray(e.__postalReady__))
                for (; e.__postalReady__.length;) e.__postalReady__.shift().onReady(c);
            return c
        }),
        function(t) {
            "use strict";
            if ("function" == typeof bootstrap) bootstrap("promise", t);
            else if ("object" == typeof exports && "object" == typeof module) module.exports = t();
            else if ("function" == typeof define && define.amd) define("promise", t);
            else if ("undefined" != typeof ses) {
                if (!ses.ok()) return;
                ses.makeQ = t
            } else {
                if ("undefined" == typeof window && "undefined" == typeof self) throw new Error("This environment was not anticipated by Q. Please file a bug.");
                var e = "undefined" != typeof window ? window : self,
                    n = e.Q;
                e.Q = t(), e.Q.noConflict = function() {
                    return e.Q = n, this
                }
            }
        }(function() {
            "use strict";

            function t(t) {
                return function() {
                    return z.apply(t, arguments)
                }
            }

            function e(t) {
                return t === Object(t)
            }

            function n(t) {
                return "[object StopIteration]" === tt(t) || t instanceof W
            }

            function r(t, e) {
                if (G && e.stack && "object" == typeof t && null !== t && t.stack && -1 === t.stack.indexOf(et)) {
                    for (var n = [], r = e; r; r = r.source) r.stack && n.unshift(r.stack);
                    n.unshift(t.stack);
                    var o = n.join("\n" + et + "\n");
                    t.stack = i(o)
                }
            }

            function i(t) {
                for (var e = t.split("\n"), n = [], r = 0; r < e.length; ++r) {
                    var i = e[r];
                    s(i) || o(i) || !i || n.push(i)
                }
                return n.join("\n")
            }

            function o(t) {
                return -1 !== t.indexOf("(module.js:") || -1 !== t.indexOf("(node.js:")
            }

            function a(t) {
                var e = /at .+ \((.+):(\d+):(?:\d+)\)$/.exec(t);
                if (e) return [e[1], Number(e[2])];
                var n = /at ([^ ]+):(\d+):(?:\d+)$/.exec(t);
                if (n) return [n[1], Number(n[2])];
                var r = /.*@(.+):(\d+)$/.exec(t);
                return r ? [r[1], Number(r[2])] : void 0
            }

            function s(t) {
                var e = a(t);
                if (!e) return !1;
                var n = e[0],
                    r = e[1];
                return n === U && r >= H && r <= at
            }

            function u() {
                if (G) try {
                    throw new Error
                } catch (r) {
                    var t = r.stack.split("\n"),
                        e = t[0].indexOf("@") > 0 ? t[1] : t[2],
                        n = a(e);
                    if (!n) return;
                    return U = n[0], n[1]
                }
            }

            function l(t) {
                return t instanceof f ? t : y(t) ? E(t) : C(t)
            }

            function c() {
                function t(t) {
                    e = t, o.source = t, q(n, function(e, n) {
                        l.nextTick(function() {
                            t.promiseDispatch.apply(t, n)
                        })
                    }, void 0), n = void 0, r = void 0
                }
                var e, n = [],
                    r = [],
                    i = $(c.prototype),
                    o = $(f.prototype);
                if (o.promiseDispatch = function(t, i, o) {
                        var a = Y(arguments);
                        n ? (n.push(a), "when" === i && o[1] && r.push(o[1])) : l.nextTick(function() {
                            e.promiseDispatch.apply(e, a)
                        })
                    }, o.valueOf = function() {
                        if (n) return o;
                        var t = g(e);
                        return m(t) && (e = t), t
                    }, o.inspect = function() {
                        return e ? e.inspect() : {
                            state: "pending"
                        }
                    }, l.longStackSupport && G) try {
                    throw new Error
                } catch (t) {
                    o.stack = t.stack.substring(t.stack.indexOf("\n") + 1)
                }
                return i.promise = o, i.resolve = function(n) {
                        e || t(l(n))
                    },
                    i.fulfill = function(n) {
                        e || t(C(n))
                    }, i.reject = function(n) {
                        e || t(S(n))
                    }, i.notify = function(t) {
                        e || q(r, function(e, n) {
                            l.nextTick(function() {
                                n(t)
                            })
                        }, void 0)
                    }, i
            }

            function h(t) {
                if ("function" != typeof t) throw new TypeError("resolver must be a function.");
                var e = c();
                try {
                    t(e.resolve, e.reject, e.notify)
                } catch (t) {
                    e.reject(t)
                }
                return e.promise
            }

            function d(t) {
                return h(function(e, n) {
                    for (var r = 0, i = t.length; r < i; r++) l(t[r]).then(e, n)
                })
            }

            function f(t, e, n) {
                void 0 === e && (e = function(t) {
                    return S(new Error("Promise does not support operation: " + t))
                }), void 0 === n && (n = function() {
                    return {
                        state: "unknown"
                    }
                });
                var r = $(f.prototype);
                if (r.promiseDispatch = function(n, i, o) {
                        var a;
                        try {
                            a = t[i] ? t[i].apply(r, o) : e.call(r, i, o)
                        } catch (t) {
                            a = S(t)
                        }
                        n && n(a)
                    }, r.inspect = n, n) {
                    var i = n();
                    "rejected" === i.state && (r.exception = i.reason), r.valueOf = function() {
                        var t = n();
                        return "pending" === t.state || "rejected" === t.state ? r : t.value
                    }
                }
                return r
            }

            function p(t, e, n, r) {
                return l(t).then(e, n, r)
            }

            function g(t) {
                if (m(t)) {
                    var e = t.inspect();
                    if ("fulfilled" === e.state) return e.value
                }
                return t
            }

            function m(t) {
                return t instanceof f
            }

            function y(t) {
                return e(t) && "function" == typeof t.then
            }

            function b(t) {
                return m(t) && "pending" === t.inspect().state
            }

            function v(t) {
                return !m(t) || "fulfilled" === t.inspect().state
            }

            function _(t) {
                return m(t) && "rejected" === t.inspect().state
            }

            function x() {
                nt.length = 0, rt.length = 0, ot || (ot = !0)
            }

            function T(t, e) {
                ot && ("object" == typeof process && "function" == typeof process.emit && l.nextTick.runAfter(function() {
                    -1 !== J(rt, t) && (process.emit("unhandledRejection", e, t), it.push(t))
                }), rt.push(t), e && void 0 !== e.stack ? nt.push(e.stack) : nt.push("(no stack) " + e))
            }

            function w(t) {
                if (ot) {
                    var e = J(rt, t); - 1 !== e && ("object" == typeof process && "function" == typeof process.emit && l.nextTick.runAfter(function() {
                        var n = J(it, t); - 1 !== n && (process.emit("rejectionHandled", nt[e], t), it.splice(n, 1))
                    }), rt.splice(e, 1), nt.splice(e, 1))
                }
            }

            function S(t) {
                var e = f({
                    when: function(e) {
                        return e && w(this), e ? e(t) : this
                    }
                }, function() {
                    return this
                }, function() {
                    return {
                        state: "rejected",
                        reason: t
                    }
                });
                return T(e, t), e
            }

            function C(t) {
                return f({
                    when: function() {
                        return t
                    },
                    get: function(e) {
                        return t[e]
                    },
                    set: function(e, n) {
                        t[e] = n
                    },
                    delete: function(e) {
                        delete t[e]
                    },
                    post: function(e, n) {
                        return null === e || void 0 === e ? t.apply(void 0, n) : t[e].apply(t, n)
                    },
                    apply: function(e, n) {
                        return t.apply(e, n)
                    },
                    keys: function() {
                        return Q(t)
                    }
                }, void 0, function() {
                    return {
                        state: "fulfilled",
                        value: t
                    }
                })
            }

            function E(t) {
                var e = c();
                return l.nextTick(function() {
                    try {
                        t.then(e.resolve, e.reject, e.notify)
                    } catch (t) {
                        e.reject(t)
                    }
                }), e.promise
            }

            function O(t) {
                return f({
                    isDef: function() {}
                }, function(e, n) {
                    return D(t, e, n)
                }, function() {
                    return l(t).inspect()
                })
            }

            function P(t, e, n) {
                return l(t).spread(e, n)
            }

            function A(t) {
                return function() {
                    function e(t, e) {
                        var a;
                        if ("undefined" == typeof StopIteration) {
                            try {
                                a = r[t](e)
                            } catch (t) {
                                return S(t)
                            }
                            return a.done ? l(a.value) : p(a.value, i, o)
                        }
                        try {
                            a = r[t](e)
                        } catch (t) {
                            return n(t) ? l(t.value) : S(t)
                        }
                        return p(a, i, o)
                    }
                    var r = t.apply(this, arguments),
                        i = e.bind(e, "next"),
                        o = e.bind(e, "throw");
                    return i()
                }
            }

            function R(t) {
                l.done(l.async(t)())
            }

            function M(t) {
                throw new W(t)
            }

            function I(t) {
                return function() {
                    return P([this, L(arguments)], function(e, n) {
                        return t.apply(e, n)
                    })
                }
            }

            function D(t, e, n) {
                return l(t).dispatch(e, n)
            }

            function L(t) {
                return p(t, function(t) {
                    var e = 0,
                        n = c();
                    return q(t, function(r, i, o) {
                        var a;
                        m(i) && "fulfilled" === (a = i.inspect()).state ? t[o] = a.value : (++e, p(i, function(r) {
                            t[o] = r, 0 == --e && n.resolve(t)
                        }, n.reject, function(t) {
                            n.notify({
                                index: o,
                                value: t
                            })
                        }))
                    }, void 0), 0 === e && n.resolve(t), n.promise
                })
            }

            function k(t) {
                if (0 === t.length) return l.resolve();
                var e = l.defer(),
                    n = 0;
                return q(t, function(r, i, o) {
                    function a(t) {
                        e.resolve(t)
                    }

                    function s() {
                        0 === --n && e.reject(new Error("Q can't get fulfillment value from any promise, all promises were rejected."))
                    }

                    function u(t) {
                        e.notify({
                            index: o,
                            value: t
                        })
                    }
                    var l = t[o];
                    n++, p(l, a, s, u)
                }, void 0), e.promise
            }

            function F(t) {
                return p(t, function(t) {
                    return t = K(t, l), p(L(K(t, function(t) {
                        return p(t, X, X)
                    })), function() {
                        return t
                    })
                })
            }

            function B(t) {
                return l(t).allSettled()
            }

            function N(t, e) {
                return l(t).then(void 0, void 0, e)
            }

            function j(t, e) {
                return l(t).nodeify(e)
            }
            var G = !1;
            try {
                throw new Error
            } catch (t) {
                G = !!t.stack
            }
            var U, W, H = u(),
                X = function() {},
                V = function() {
                    function t() {
                        for (var t, r; n.next;) n = n.next, t = n.task, n.task = void 0, r = n.domain, r && (n.domain = void 0, r.enter()), e(t, r);
                        for (; s.length;) t = s.pop(), e(t);
                        i = !1
                    }

                    function e(e, n) {
                        try {
                            e()
                        } catch (e) {
                            if (a) throw n && n.exit(), setTimeout(t, 0), n && n.enter(), e;
                            setTimeout(function() {
                                throw e
                            }, 0)
                        }
                        n && n.exit()
                    }
                    var n = {
                            task: void 0,
                            next: null
                        },
                        r = n,
                        i = !1,
                        o = void 0,
                        a = !1,
                        s = [];
                    if (V = function(t) {
                            r = r.next = {
                                task: t,
                                domain: a && process.domain,
                                next: null
                            }, i || (i = !0, o())
                        }, "object" == typeof process && "[object process]" === process.toString() && process.nextTick) a = !0, o = function() {
                        process.nextTick(t)
                    };
                    else if ("function" == typeof setImmediate) o = "undefined" != typeof window ? setImmediate.bind(window, t) : function() {
                        setImmediate(t)
                    };
                    else if ("undefined" != typeof MessageChannel) {
                        var u = new MessageChannel;
                        u.port1.onmessage = function() {
                            o = l, u.port1.onmessage = t, t()
                        };
                        var l = function() {
                            u.port2.postMessage(0)
                        };
                        o = function() {
                            setTimeout(t, 0), l()
                        }
                    } else o = function() {
                        setTimeout(t, 0)
                    };
                    return V.runAfter = function(t) {
                        s.push(t), i || (i = !0, o())
                    }, V
                }(),
                z = Function.call,
                Y = t(Array.prototype.slice),
                q = t(Array.prototype.reduce || function(t, e) {
                    var n = 0,
                        r = this.length;
                    if (1 === arguments.length)
                        for (;;) {
                            if (n in this) {
                                e = this[n++];
                                break
                            }
                            if (++n >= r) throw new TypeError
                        }
                    for (; n < r; n++) n in this && (e = t(e, this[n], n));
                    return e
                }),
                J = t(Array.prototype.indexOf || function(t) {
                    for (var e = 0; e < this.length; e++)
                        if (this[e] === t) return e;
                    return -1
                }),
                K = t(Array.prototype.map || function(t, e) {
                    var n = this,
                        r = [];
                    return q(n, function(i, o, a) {
                        r.push(t.call(e, o, a, n))
                    }, void 0), r
                }),
                $ = Object.create || function(t) {
                    function e() {}
                    return e.prototype = t, new e
                },
                Z = t(Object.prototype.hasOwnProperty),
                Q = Object.keys || function(t) {
                    var e = [];
                    for (var n in t) Z(t, n) && e.push(n);
                    return e
                },
                tt = t(Object.prototype.toString);
            W = "undefined" != typeof ReturnValue ? ReturnValue : function(t) {
                this.value = t
            };
            var et = "From previous event:";
            l.resolve = l, l.nextTick = V, l.longStackSupport = !1, "object" == typeof process && process && process.env && process.env.Q_DEBUG && (l.longStackSupport = !0), l.defer = c, c.prototype.makeNodeResolver = function() {
                var t = this;
                return function(e, n) {
                    e ? t.reject(e) : arguments.length > 2 ? t.resolve(Y(arguments, 1)) : t.resolve(n)
                }
            }, l.Promise = h, l.promise = h, h.race = d, h.all = L, h.reject = S, h.resolve = l, l.passByCopy = function(t) {
                return t
            }, f.prototype.passByCopy = function() {
                return this
            }, l.join = function(t, e) {
                return l(t).join(e)
            }, f.prototype.join = function(t) {
                return l([this, t]).spread(function(t, e) {
                    if (t === e) return t;
                    throw new Error("Q can't join: not the same: " + t + " " + e)
                })
            }, l.race = d, f.prototype.race = function() {
                return this.then(l.race)
            }, l.makePromise = f, f.prototype.toString = function() {
                return "[object Promise]"
            }, f.prototype.then = function(t, e, n) {
                function i(e) {
                    try {
                        return "function" == typeof t ? t(e) : e
                    } catch (t) {
                        return S(t)
                    }
                }

                function o(t) {
                    if ("function" == typeof e) {
                        r(t, s);
                        try {
                            return e(t)
                        } catch (t) {
                            return S(t)
                        }
                    }
                    return S(t)
                }

                function a(t) {
                    return "function" == typeof n ? n(t) : t
                }
                var s = this,
                    u = c(),
                    h = !1;
                return l.nextTick(function() {
                    s.promiseDispatch(function(t) {
                        h || (h = !0, u.resolve(i(t)))
                    }, "when", [function(t) {
                        h || (h = !0, u.resolve(o(t)))
                    }])
                }), s.promiseDispatch(void 0, "when", [void 0, function(t) {
                    var e, n = !1;
                    try {
                        e = a(t)
                    } catch (t) {
                        if (n = !0, !l.onerror) throw t;
                        l.onerror(t)
                    }
                    n || u.notify(e)
                }]), u.promise
            }, l.tap = function(t, e) {
                return l(t).tap(e)
            }, f.prototype.tap = function(t) {
                return t = l(t), this.then(function(e) {
                    return t.fcall(e).thenResolve(e)
                })
            }, l.when = p, f.prototype.thenResolve = function(t) {
                return this.then(function() {
                    return t
                })
            }, l.thenResolve = function(t, e) {
                return l(t).thenResolve(e)
            }, f.prototype.thenReject = function(t) {
                return this.then(function() {
                    throw t
                })
            }, l.thenReject = function(t, e) {
                return l(t).thenReject(e)
            }, l.nearer = g, l.isPromise = m, l.isPromiseAlike = y, l.isPending = b, f.prototype.isPending = function() {
                return "pending" === this.inspect().state
            }, l.isFulfilled = v, f.prototype.isFulfilled = function() {
                return "fulfilled" === this.inspect().state
            }, l.isRejected = _, f.prototype.isRejected = function() {
                return "rejected" === this.inspect().state
            };
            var nt = [],
                rt = [],
                it = [],
                ot = !0;
            l.resetUnhandledRejections = x, l.getUnhandledReasons = function() {
                return nt.slice()
            }, l.stopUnhandledRejectionTracking = function() {
                x(), ot = !1
            }, x(), l.reject = S, l.fulfill = C, l.master = O, l.spread = P, f.prototype.spread = function(t, e) {
                return this.all().then(function(e) {
                    return t.apply(void 0, e)
                }, e)
            }, l.async = A, l.spawn = R, l.return = M, l.promised = I, l.dispatch = D, f.prototype.dispatch = function(t, e) {
                var n = this,
                    r = c();
                return l.nextTick(function() {
                    n.promiseDispatch(r.resolve, t, e)
                }), r.promise
            }, l.get = function(t, e) {
                return l(t).dispatch("get", [e])
            }, f.prototype.get = function(t) {
                return this.dispatch("get", [t])
            }, l.set = function(t, e, n) {
                return l(t).dispatch("set", [e, n])
            }, f.prototype.set = function(t, e) {
                return this.dispatch("set", [t, e])
            }, l.del = l.delete = function(t, e) {
                return l(t).dispatch("delete", [e])
            }, f.prototype.del = f.prototype.delete = function(t) {
                return this.dispatch("delete", [t])
            }, l.mapply = l.post = function(t, e, n) {
                return l(t).dispatch("post", [e, n])
            }, f.prototype.mapply = f.prototype.post = function(t, e) {
                return this.dispatch("post", [t, e])
            }, l.send = l.mcall = l.invoke = function(t, e) {
                return l(t).dispatch("post", [e, Y(arguments, 2)])
            }, f.prototype.send = f.prototype.mcall = f.prototype.invoke = function(t) {
                return this.dispatch("post", [t, Y(arguments, 1)])
            }, l.fapply = function(t, e) {
                return l(t).dispatch("apply", [void 0, e])
            }, f.prototype.fapply = function(t) {
                return this.dispatch("apply", [void 0, t])
            }, l.try = l.fcall = function(t) {
                return l(t).dispatch("apply", [void 0, Y(arguments, 1)])
            }, f.prototype.fcall = function() {
                return this.dispatch("apply", [void 0, Y(arguments)])
            }, l.fbind = function(t) {
                var e = l(t),
                    n = Y(arguments, 1);
                return function() {
                    return e.dispatch("apply", [this, n.concat(Y(arguments))])
                }
            }, f.prototype.fbind = function() {
                var t = this,
                    e = Y(arguments);
                return function() {
                    return t.dispatch("apply", [this, e.concat(Y(arguments))])
                }
            }, l.keys = function(t) {
                return l(t).dispatch("keys", [])
            }, f.prototype.keys = function() {
                return this.dispatch("keys", [])
            }, l.all = L, f.prototype.all = function() {
                return L(this)
            }, l.any = k, f.prototype.any = function() {
                return k(this)
            }, l.allResolved = function(t, e, n) {
                return function() {
                    return "undefined" != typeof console && console.warn, t.apply(t, arguments)
                }
            }(F, "allResolved", "allSettled"), f.prototype.allResolved = function() {
                return F(this)
            }, l.allSettled = B, f.prototype.allSettled = function() {
                return this.then(function(t) {
                    return L(K(t, function(t) {
                        function e() {
                            return t.inspect()
                        }
                        return t = l(t), t.then(e, e)
                    }))
                })
            }, l.fail = l.catch = function(t, e) {
                return l(t).then(void 0, e)
            }, f.prototype.fail = f.prototype.catch = function(t) {
                return this.then(void 0, t)
            }, l.progress = N, f.prototype.progress = function(t) {
                return this.then(void 0, void 0, t)
            }, l.fin = l.finally = function(t, e) {
                return l(t).finally(e)
            }, f.prototype.fin = f.prototype.finally = function(t) {
                if (!t || "function" != typeof t.apply) throw new Error("Q can't apply finally callback");
                return t = l(t), this.then(function(e) {
                    return t.fcall().then(function() {
                        return e
                    })
                }, function(e) {
                    return t.fcall().then(function() {
                        throw e
                    })
                })
            }, l.done = function(t, e, n, r) {
                return l(t).done(e, n, r)
            }, f.prototype.done = function(t, e, n) {
                var i = function(t) {
                        l.nextTick(function() {
                            if (r(t, o), !l.onerror) throw t;
                            l.onerror(t)
                        })
                    },
                    o = t || e || n ? this.then(t, e, n) : this;
                "object" == typeof process && process && process.domain && (i = process.domain.bind(i)), o.then(void 0, i)
            }, l.timeout = function(t, e, n) {
                return l(t).timeout(e, n)
            }, f.prototype.timeout = function(t, e) {
                var n = c(),
                    r = setTimeout(function() {
                        e && "string" != typeof e || (e = new Error(e || "Timed out after " + t + " ms"), e.code = "ETIMEDOUT"), n.reject(e)
                    }, t);
                return this.then(function(t) {
                    clearTimeout(r), n.resolve(t)
                }, function(t) {
                    clearTimeout(r), n.reject(t)
                }, n.notify), n.promise
            }, l.delay = function(t, e) {
                return void 0 === e && (e = t, t = void 0), l(t).delay(e)
            }, f.prototype.delay = function(t) {
                return this.then(function(e) {
                    var n = c();
                    return setTimeout(function() {
                        n.resolve(e)
                    }, t), n.promise
                })
            }, l.nfapply = function(t, e) {
                return l(t).nfapply(e)
            }, f.prototype.nfapply = function(t) {
                var e = c(),
                    n = Y(t);
                return n.push(e.makeNodeResolver()), this.fapply(n).fail(e.reject), e.promise
            }, l.nfcall = function(t) {
                var e = Y(arguments, 1);
                return l(t).nfapply(e)
            }, f.prototype.nfcall = function() {
                var t = Y(arguments),
                    e = c();
                return t.push(e.makeNodeResolver()), this.fapply(t).fail(e.reject), e.promise
            }, l.nfbind = l.denodeify = function(t) {
                if (void 0 === t) throw new Error("Q can't wrap an undefined function");
                var e = Y(arguments, 1);
                return function() {
                    var n = e.concat(Y(arguments)),
                        r = c();
                    return n.push(r.makeNodeResolver()), l(t).fapply(n).fail(r.reject), r.promise
                }
            }, f.prototype.nfbind = f.prototype.denodeify = function() {
                var t = Y(arguments);
                return t.unshift(this), l.denodeify.apply(void 0, t)
            }, l.nbind = function(t, e) {
                var n = Y(arguments, 2);
                return function() {
                    function r() {
                        return t.apply(e, arguments)
                    }
                    var i = n.concat(Y(arguments)),
                        o = c();
                    return i.push(o.makeNodeResolver()), l(r).fapply(i).fail(o.reject), o.promise
                }
            }, f.prototype.nbind = function() {
                var t = Y(arguments, 0);
                return t.unshift(this), l.nbind.apply(void 0, t)
            }, l.nmapply = l.npost = function(t, e, n) {
                return l(t).npost(e, n)
            }, f.prototype.nmapply = f.prototype.npost = function(t, e) {
                var n = Y(e || []),
                    r = c();
                return n.push(r.makeNodeResolver()), this.dispatch("post", [t, n]).fail(r.reject), r.promise
            }, l.nsend = l.nmcall = l.ninvoke = function(t, e) {
                var n = Y(arguments, 2),
                    r = c();
                return n.push(r.makeNodeResolver()), l(t).dispatch("post", [e, n]).fail(r.reject), r.promise
            }, f.prototype.nsend = f.prototype.nmcall = f.prototype.ninvoke = function(t) {
                var e = Y(arguments, 1),
                    n = c();
                return e.push(n.makeNodeResolver()), this.dispatch("post", [t, e]).fail(n.reject), n.promise
            }, l.nodeify = j, f.prototype.nodeify = function(t) {
                if (!t) return this;
                this.then(function(e) {
                    l.nextTick(function() {
                        t(null, e)
                    })
                }, function(e) {
                    l.nextTick(function() {
                        t(e)
                    })
                })
            }, l.noConflict = function() {
                throw new Error("Q.noConflict only works when Q is used as a global")
            };
            var at = u();
            return l
        }),
        function() {
            function t(t) {
                function e(e, n, r, i, o, a) {
                    for (; o >= 0 && a > o; o += t) {
                        var s = i ? i[o] : o;
                        r = n(r, e[s], s, e)
                    }
                    return r
                }
                return function(n, r, i, o) {
                    r = v(r, o, 4);
                    var a = !E(n) && b.keys(n),
                        s = (a || n).length,
                        u = t > 0 ? 0 : s - 1;
                    return arguments.length < 3 && (i = n[a ? a[u] : u], u += t), e(n, r, i, a, u, s)
                }
            }

            function e(t) {
                return function(e, n, r) {
                    n = _(n, r);
                    for (var i = C(e), o = t > 0 ? 0 : i - 1; o >= 0 && i > o; o += t)
                        if (n(e[o], o, e)) return o;
                    return -1
                }
            }

            function n(t, e, n) {
                return function(r, i, o) {
                    var a = 0,
                        s = C(r);
                    if ("number" == typeof o) t > 0 ? a = o >= 0 ? o : Math.max(o + s, a) : s = o >= 0 ? Math.min(o + 1, s) : o + s + 1;
                    else if (n && o && s) return o = n(r, i), r[o] === i ? o : -1;
                    if (i !== i) return o = e(c.call(r, a, s), b.isNaN), o >= 0 ? o + a : -1;
                    for (o = t > 0 ? a : s - 1; o >= 0 && s > o; o += t)
                        if (r[o] === i) return o;
                    return -1
                }
            }

            function r(t, e) {
                var n = M.length,
                    r = t.constructor,
                    i = b.isFunction(r) && r.prototype || s,
                    o = "constructor";
                for (b.has(t, o) && !b.contains(e, o) && e.push(o); n--;)(o = M[n]) in t && t[o] !== i[o] && !b.contains(e, o) && e.push(o)
            }
            var i = this,
                o = i._,
                a = Array.prototype,
                s = Object.prototype,
                u = Function.prototype,
                l = a.push,
                c = a.slice,
                h = s.toString,
                d = s.hasOwnProperty,
                f = Array.isArray,
                p = Object.keys,
                g = u.bind,
                m = Object.create,
                y = function() {},
                b = function(t) {
                    return t instanceof b ? t : this instanceof b ? void(this._wrapped = t) : new b(t)
                };
            "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = b), exports._ = b) : i._ = b, b.VERSION = "1.8.3";
            var v = function(t, e, n) {
                    if (void 0 === e) return t;
                    switch (null == n ? 3 : n) {
                        case 1:
                            return function(n) {
                                return t.call(e, n)
                            };
                        case 2:
                            return function(n, r) {
                                return t.call(e, n, r)
                            };
                        case 3:
                            return function(n, r, i) {
                                return t.call(e, n, r, i)
                            };
                        case 4:
                            return function(n, r, i, o) {
                                return t.call(e, n, r, i, o)
                            }
                    }
                    return function() {
                        return t.apply(e, arguments)
                    }
                },
                _ = function(t, e, n) {
                    return null == t ? b.identity : b.isFunction(t) ? v(t, e, n) : b.isObject(t) ? b.matcher(t) : b.property(t)
                };
            b.iteratee = function(t, e) {
                return _(t, e, 1 / 0)
            };
            var x = function(t, e) {
                    return function(n) {
                        var r = arguments.length;
                        if (2 > r || null == n) return n;
                        for (var i = 1; r > i; i++)
                            for (var o = arguments[i], a = t(o), s = a.length, u = 0; s > u; u++) {
                                var l = a[u];
                                e && void 0 !== n[l] || (n[l] = o[l])
                            }
                        return n
                    }
                },
                T = function(t) {
                    if (!b.isObject(t)) return {};
                    if (m) return m(t);
                    y.prototype = t;
                    var e = new y;
                    return y.prototype = null, e
                },
                w = function(t) {
                    return function(e) {
                        return null == e ? void 0 : e[t]
                    }
                },
                S = Math.pow(2, 53) - 1,
                C = w("length"),
                E = function(t) {
                    var e = C(t);
                    return "number" == typeof e && e >= 0 && S >= e
                };
            b.each = b.forEach = function(t, e, n) {
                e = v(e, n);
                var r, i;
                if (E(t))
                    for (r = 0, i = t.length; i > r; r++) e(t[r], r, t);
                else {
                    var o = b.keys(t);
                    for (r = 0, i = o.length; i > r; r++) e(t[o[r]], o[r], t)
                }
                return t
            }, b.map = b.collect = function(t, e, n) {
                e = _(e, n);
                for (var r = !E(t) && b.keys(t), i = (r || t).length, o = Array(i), a = 0; i > a; a++) {
                    var s = r ? r[a] : a;
                    o[a] = e(t[s], s, t)
                }
                return o
            }, b.reduce = b.foldl = b.inject = t(1), b.reduceRight = b.foldr = t(-1), b.find = b.detect = function(t, e, n) {
                var r;
                return r = E(t) ? b.findIndex(t, e, n) : b.findKey(t, e, n), void 0 !== r && -1 !== r ? t[r] : void 0
            }, b.filter = b.select = function(t, e, n) {
                var r = [];
                return e = _(e, n), b.each(t, function(t, n, i) {
                    e(t, n, i) && r.push(t)
                }), r
            }, b.reject = function(t, e, n) {
                return b.filter(t, b.negate(_(e)), n)
            }, b.every = b.all = function(t, e, n) {
                e = _(e, n);
                for (var r = !E(t) && b.keys(t), i = (r || t).length, o = 0; i > o; o++) {
                    var a = r ? r[o] : o;
                    if (!e(t[a], a, t)) return !1
                }
                return !0
            }, b.some = b.any = function(t, e, n) {
                e = _(e, n);
                for (var r = !E(t) && b.keys(t), i = (r || t).length, o = 0; i > o; o++) {
                    var a = r ? r[o] : o;
                    if (e(t[a], a, t)) return !0
                }
                return !1
            }, b.contains = b.includes = b.include = function(t, e, n, r) {
                return E(t) || (t = b.values(t)), ("number" != typeof n || r) && (n = 0), b.indexOf(t, e, n) >= 0
            }, b.invoke = function(t, e) {
                var n = c.call(arguments, 2),
                    r = b.isFunction(e);
                return b.map(t, function(t) {
                    var i = r ? e : t[e];
                    return null == i ? i : i.apply(t, n)
                })
            }, b.pluck = function(t, e) {
                return b.map(t, b.property(e))
            }, b.where = function(t, e) {
                return b.filter(t, b.matcher(e))
            }, b.findWhere = function(t, e) {
                return b.find(t, b.matcher(e))
            }, b.max = function(t, e, n) {
                var r, i, o = -1 / 0,
                    a = -1 / 0;
                if (null == e && null != t) {
                    t = E(t) ? t : b.values(t);
                    for (var s = 0, u = t.length; u > s; s++)(r = t[s]) > o && (o = r)
                } else e = _(e, n), b.each(t, function(t, n, r) {
                    ((i = e(t, n, r)) > a || i === -1 / 0 && o === -1 / 0) && (o = t, a = i)
                });
                return o
            }, b.min = function(t, e, n) {
                var r, i, o = 1 / 0,
                    a = 1 / 0;
                if (null == e && null != t) {
                    t = E(t) ? t : b.values(t);
                    for (var s = 0, u = t.length; u > s; s++) r = t[s], o > r && (o = r)
                } else e = _(e, n), b.each(t, function(t, n, r) {
                    i = e(t, n, r), (a > i || 1 / 0 === i && 1 / 0 === o) && (o = t, a = i)
                });
                return o
            }, b.shuffle = function(t) {
                for (var e, n = E(t) ? t : b.values(t), r = n.length, i = Array(r), o = 0; r > o; o++) e = b.random(0, o), e !== o && (i[o] = i[e]), i[e] = n[o];
                return i
            }, b.sample = function(t, e, n) {
                return null == e || n ? (E(t) || (t = b.values(t)), t[b.random(t.length - 1)]) : b.shuffle(t).slice(0, Math.max(0, e))
            }, b.sortBy = function(t, e, n) {
                return e = _(e, n), b.pluck(b.map(t, function(t, n, r) {
                    return {
                        value: t,
                        index: n,
                        criteria: e(t, n, r)
                    }
                }).sort(function(t, e) {
                    var n = t.criteria,
                        r = e.criteria;
                    if (n !== r) {
                        if (n > r || void 0 === n) return 1;
                        if (r > n || void 0 === r) return -1
                    }
                    return t.index - e.index
                }), "value")
            };
            var O = function(t) {
                return function(e, n, r) {
                    var i = {};
                    return n = _(n, r), b.each(e, function(r, o) {
                        var a = n(r, o, e);
                        t(i, r, a)
                    }), i
                }
            };
            b.groupBy = O(function(t, e, n) {
                b.has(t, n) ? t[n].push(e) : t[n] = [e]
            }), b.indexBy = O(function(t, e, n) {
                t[n] = e
            }), b.countBy = O(function(t, e, n) {
                b.has(t, n) ? t[n]++ : t[n] = 1
            }), b.toArray = function(t) {
                return t ? b.isArray(t) ? c.call(t) : E(t) ? b.map(t, b.identity) : b.values(t) : []
            }, b.size = function(t) {
                return null == t ? 0 : E(t) ? t.length : b.keys(t).length
            }, b.partition = function(t, e, n) {
                e = _(e, n);
                var r = [],
                    i = [];
                return b.each(t, function(t, n, o) {
                    (e(t, n, o) ? r : i).push(t)
                }), [r, i]
            }, b.first = b.head = b.take = function(t, e, n) {
                return null == t ? void 0 : null == e || n ? t[0] : b.initial(t, t.length - e)
            }, b.initial = function(t, e, n) {
                return c.call(t, 0, Math.max(0, t.length - (null == e || n ? 1 : e)))
            }, b.last = function(t, e, n) {
                return null == t ? void 0 : null == e || n ? t[t.length - 1] : b.rest(t, Math.max(0, t.length - e))
            }, b.rest = b.tail = b.drop = function(t, e, n) {
                return c.call(t, null == e || n ? 1 : e)
            }, b.compact = function(t) {
                return b.filter(t, b.identity)
            };
            var P = function(t, e, n, r) {
                for (var i = [], o = 0, a = r || 0, s = C(t); s > a; a++) {
                    var u = t[a];
                    if (E(u) && (b.isArray(u) || b.isArguments(u))) {
                        e || (u = P(u, e, n));
                        var l = 0,
                            c = u.length;
                        for (i.length += c; c > l;) i[o++] = u[l++]
                    } else n || (i[o++] = u)
                }
                return i
            };
            b.flatten = function(t, e) {
                return P(t, e, !1)
            }, b.without = function(t) {
                return b.difference(t, c.call(arguments, 1))
            }, b.uniq = b.unique = function(t, e, n, r) {
                b.isBoolean(e) || (r = n, n = e, e = !1), null != n && (n = _(n, r));
                for (var i = [], o = [], a = 0, s = C(t); s > a; a++) {
                    var u = t[a],
                        l = n ? n(u, a, t) : u;
                    e ? (a && o === l || i.push(u), o = l) : n ? b.contains(o, l) || (o.push(l), i.push(u)) : b.contains(i, u) || i.push(u)
                }
                return i
            }, b.union = function() {
                return b.uniq(P(arguments, !0, !0))
            }, b.intersection = function(t) {
                for (var e = [], n = arguments.length, r = 0, i = C(t); i > r; r++) {
                    var o = t[r];
                    if (!b.contains(e, o)) {
                        for (var a = 1; n > a && b.contains(arguments[a], o); a++);
                        a === n && e.push(o)
                    }
                }
                return e
            }, b.difference = function(t) {
                var e = P(arguments, !0, !0, 1);
                return b.filter(t, function(t) {
                    return !b.contains(e, t)
                })
            }, b.zip = function() {
                return b.unzip(arguments)
            }, b.unzip = function(t) {
                for (var e = t && b.max(t, C).length || 0, n = Array(e), r = 0; e > r; r++) n[r] = b.pluck(t, r);
                return n
            }, b.object = function(t, e) {
                for (var n = {}, r = 0, i = C(t); i > r; r++) e ? n[t[r]] = e[r] : n[t[r][0]] = t[r][1];
                return n
            }, b.findIndex = e(1), b.findLastIndex = e(-1), b.sortedIndex = function(t, e, n, r) {
                n = _(n, r, 1);
                for (var i = n(e), o = 0, a = C(t); a > o;) {
                    var s = Math.floor((o + a) / 2);
                    n(t[s]) < i ? o = s + 1 : a = s
                }
                return o
            }, b.indexOf = n(1, b.findIndex, b.sortedIndex), b.lastIndexOf = n(-1, b.findLastIndex), b.range = function(t, e, n) {
                null == e && (e = t || 0, t = 0), n = n || 1;
                for (var r = Math.max(Math.ceil((e - t) / n), 0), i = Array(r), o = 0; r > o; o++, t += n) i[o] = t;
                return i
            };
            var A = function(t, e, n, r, i) {
                if (!(r instanceof e)) return t.apply(n, i);
                var o = T(t.prototype),
                    a = t.apply(o, i);
                return b.isObject(a) ? a : o
            };
            b.bind = function(t, e) {
                if (g && t.bind === g) return g.apply(t, c.call(arguments, 1));
                if (!b.isFunction(t)) throw new TypeError("Bind must be called on a function");
                var n = c.call(arguments, 2),
                    r = function() {
                        return A(t, r, e, this, n.concat(c.call(arguments)))
                    };
                return r
            }, b.partial = function(t) {
                var e = c.call(arguments, 1),
                    n = function() {
                        for (var r = 0, i = e.length, o = Array(i), a = 0; i > a; a++) o[a] = e[a] === b ? arguments[r++] : e[a];
                        for (; r < arguments.length;) o.push(arguments[r++]);
                        return A(t, n, this, this, o)
                    };
                return n
            }, b.bindAll = function(t) {
                var e, n, r = arguments.length;
                if (1 >= r) throw new Error("bindAll must be passed function names");
                for (e = 1; r > e; e++) n = arguments[e], t[n] = b.bind(t[n], t);
                return t
            }, b.memoize = function(t, e) {
                var n = function(r) {
                    var i = n.cache,
                        o = "" + (e ? e.apply(this, arguments) : r);
                    return b.has(i, o) || (i[o] = t.apply(this, arguments)), i[o]
                };
                return n.cache = {}, n
            }, b.delay = function(t, e) {
                var n = c.call(arguments, 2);
                return setTimeout(function() {
                    return t.apply(null, n)
                }, e)
            }, b.defer = b.partial(b.delay, b, 1), b.throttle = function(t, e, n) {
                var r, i, o, a = null,
                    s = 0;
                n || (n = {});
                var u = function() {
                    s = !1 === n.leading ? 0 : b.now(), a = null, o = t.apply(r, i), a || (r = i = null)
                };
                return function() {
                    var l = b.now();
                    s || !1 !== n.leading || (s = l);
                    var c = e - (l - s);
                    return r = this, i = arguments, 0 >= c || c > e ? (a && (clearTimeout(a), a = null), s = l, o = t.apply(r, i), a || (r = i = null)) : a || !1 === n.trailing || (a = setTimeout(u, c)), o
                }
            }, b.debounce = function(t, e, n) {
                var r, i, o, a, s, u = function() {
                    var l = b.now() - a;
                    e > l && l >= 0 ? r = setTimeout(u, e - l) : (r = null, n || (s = t.apply(o, i), r || (o = i = null)))
                };
                return function() {
                    o = this, i = arguments, a = b.now();
                    var l = n && !r;
                    return r || (r = setTimeout(u, e)), l && (s = t.apply(o, i), o = i = null), s
                }
            }, b.wrap = function(t, e) {
                return b.partial(e, t)
            }, b.negate = function(t) {
                return function() {
                    return !t.apply(this, arguments)
                }
            }, b.compose = function() {
                var t = arguments,
                    e = t.length - 1;
                return function() {
                    for (var n = e, r = t[e].apply(this, arguments); n--;) r = t[n].call(this, r);
                    return r
                }
            }, b.after = function(t, e) {
                return function() {
                    return --t < 1 ? e.apply(this, arguments) : void 0
                }
            }, b.before = function(t, e) {
                var n;
                return function() {
                    return --t > 0 && (n = e.apply(this, arguments)), 1 >= t && (e = null), n
                }
            }, b.once = b.partial(b.before, 2);
            var R = !{
                    toString: null
                }.propertyIsEnumerable("toString"),
                M = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"];
            b.keys = function(t) {
                if (!b.isObject(t)) return [];
                if (p) return p(t);
                var e = [];
                for (var n in t) b.has(t, n) && e.push(n);
                return R && r(t, e), e
            }, b.allKeys = function(t) {
                if (!b.isObject(t)) return [];
                var e = [];
                for (var n in t) e.push(n);
                return R && r(t, e), e
            }, b.values = function(t) {
                for (var e = b.keys(t), n = e.length, r = Array(n), i = 0; n > i; i++) r[i] = t[e[i]];
                return r
            }, b.mapObject = function(t, e, n) {
                e = _(e, n);
                for (var r, i = b.keys(t), o = i.length, a = {}, s = 0; o > s; s++) r = i[s], a[r] = e(t[r], r, t);
                return a
            }, b.pairs = function(t) {
                for (var e = b.keys(t), n = e.length, r = Array(n), i = 0; n > i; i++) r[i] = [e[i], t[e[i]]];
                return r
            }, b.invert = function(t) {
                for (var e = {}, n = b.keys(t), r = 0, i = n.length; i > r; r++) e[t[n[r]]] = n[r];
                return e
            }, b.functions = b.methods = function(t) {
                var e = [];
                for (var n in t) b.isFunction(t[n]) && e.push(n);
                return e.sort()
            }, b.extend = x(b.allKeys), b.extendOwn = b.assign = x(b.keys), b.findKey = function(t, e, n) {
                e = _(e, n);
                for (var r, i = b.keys(t), o = 0, a = i.length; a > o; o++)
                    if (r = i[o], e(t[r], r, t)) return r
            }, b.pick = function(t, e, n) {
                var r, i, o = {},
                    a = t;
                if (null == a) return o;
                b.isFunction(e) ? (i = b.allKeys(a), r = v(e, n)) : (i = P(arguments, !1, !1, 1), r = function(t, e, n) {
                    return e in n
                }, a = Object(a));
                for (var s = 0, u = i.length; u > s; s++) {
                    var l = i[s],
                        c = a[l];
                    r(c, l, a) && (o[l] = c)
                }
                return o
            }, b.omit = function(t, e, n) {
                if (b.isFunction(e)) e = b.negate(e);
                else {
                    var r = b.map(P(arguments, !1, !1, 1), String);
                    e = function(t, e) {
                        return !b.contains(r, e)
                    }
                }
                return b.pick(t, e, n)
            }, b.defaults = x(b.allKeys, !0), b.create = function(t, e) {
                var n = T(t);
                return e && b.extendOwn(n, e), n
            }, b.clone = function(t) {
                return b.isObject(t) ? b.isArray(t) ? t.slice() : b.extend({}, t) : t
            }, b.tap = function(t, e) {
                return e(t), t
            }, b.isMatch = function(t, e) {
                var n = b.keys(e),
                    r = n.length;
                if (null == t) return !r;
                for (var i = Object(t), o = 0; r > o; o++) {
                    var a = n[o];
                    if (e[a] !== i[a] || !(a in i)) return !1
                }
                return !0
            };
            var I = function(t, e, n, r) {
                if (t === e) return 0 !== t || 1 / t == 1 / e;
                if (null == t || null == e) return t === e;
                t instanceof b && (t = t._wrapped), e instanceof b && (e = e._wrapped);
                var i = h.call(t);
                if (i !== h.call(e)) return !1;
                switch (i) {
                    case "[object RegExp]":
                    case "[object String]":
                        return "" + t == "" + e;
                    case "[object Number]":
                        return +t != +t ? +e != +e : 0 == +t ? 1 / +t == 1 / e : +t == +e;
                    case "[object Date]":
                    case "[object Boolean]":
                        return +t == +e
                }
                var o = "[object Array]" === i;
                if (!o) {
                    if ("object" != typeof t || "object" != typeof e) return !1;
                    var a = t.constructor,
                        s = e.constructor;
                    if (a !== s && !(b.isFunction(a) && a instanceof a && b.isFunction(s) && s instanceof s) && "constructor" in t && "constructor" in e) return !1
                }
                n = n || [], r = r || [];
                for (var u = n.length; u--;)
                    if (n[u] === t) return r[u] === e;
                if (n.push(t), r.push(e), o) {
                    if ((u = t.length) !== e.length) return !1;
                    for (; u--;)
                        if (!I(t[u], e[u], n, r)) return !1
                } else {
                    var l, c = b.keys(t);
                    if (u = c.length, b.keys(e).length !== u) return !1;
                    for (; u--;)
                        if (l = c[u], !b.has(e, l) || !I(t[l], e[l], n, r)) return !1
                }
                return n.pop(), r.pop(), !0
            };
            b.isEqual = function(t, e) {
                return I(t, e)
            }, b.isEmpty = function(t) {
                return null == t || (E(t) && (b.isArray(t) || b.isString(t) || b.isArguments(t)) ? 0 === t.length : 0 === b.keys(t).length)
            }, b.isElement = function(t) {
                return !(!t || 1 !== t.nodeType)
            }, b.isArray = f || function(t) {
                return "[object Array]" === h.call(t)
            }, b.isObject = function(t) {
                var e = typeof t;
                return "function" === e || "object" === e && !!t
            }, b.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(t) {
                b["is" + t] = function(e) {
                    return h.call(e) === "[object " + t + "]"
                }
            }), b.isArguments(arguments) || (b.isArguments = function(t) {
                return b.has(t, "callee")
            }), "function" != typeof /./ && "object" != typeof Int8Array && (b.isFunction = function(t) {
                return "function" == typeof t || !1
            }), b.isFinite = function(t) {
                return isFinite(t) && !isNaN(parseFloat(t))
            }, b.isNaN = function(t) {
                return b.isNumber(t) && t !== +t
            }, b.isBoolean = function(t) {
                return !0 === t || !1 === t || "[object Boolean]" === h.call(t)
            }, b.isNull = function(t) {
                return null === t
            }, b.isUndefined = function(t) {
                return void 0 === t
            }, b.has = function(t, e) {
                return null != t && d.call(t, e)
            }, b.noConflict = function() {
                return i._ = o, this
            }, b.identity = function(t) {
                return t
            }, b.constant = function(t) {
                return function() {
                    return t
                }
            }, b.noop = function() {}, b.property = w, b.propertyOf = function(t) {
                return null == t ? function() {} : function(e) {
                    return t[e]
                }
            }, b.matcher = b.matches = function(t) {
                return t = b.extendOwn({}, t),
                    function(e) {
                        return b.isMatch(e, t)
                    }
            }, b.times = function(t, e, n) {
                var r = Array(Math.max(0, t));
                e = v(e, n, 1);
                for (var i = 0; t > i; i++) r[i] = e(i);
                return r
            }, b.random = function(t, e) {
                return null == e && (e = t, t = 0), t + Math.floor(Math.random() * (e - t + 1))
            }, b.now = Date.now || function() {
                return (new Date).getTime()
            };
            var D = {
                    "&": "&amp;",
                    "<": "&lt;",
                    ">": "&gt;",
                    '"': "&quot;",
                    "'": "&#x27;",
                    "`": "&#x60;"
                },
                L = b.invert(D),
                k = function(t) {
                    var e = function(e) {
                            return t[e]
                        },
                        n = "(?:" + b.keys(t).join("|") + ")",
                        r = RegExp(n),
                        i = RegExp(n, "g");
                    return function(t) {
                        return t = null == t ? "" : "" + t, r.test(t) ? t.replace(i, e) : t
                    }
                };
            b.escape = k(D), b.unescape = k(L), b.result = function(t, e, n) {
                var r = null == t ? void 0 : t[e];
                return void 0 === r && (r = n), b.isFunction(r) ? r.call(t) : r
            };
            var F = 0;
            b.uniqueId = function(t) {
                var e = ++F + "";
                return t ? t + e : e
            }, b.templateSettings = {
                evaluate: /<%([\s\S]+?)%>/g,
                interpolate: /<%=([\s\S]+?)%>/g,
                escape: /<%-([\s\S]+?)%>/g
            };
            var B = /(.)^/,
                N = {
                    "'": "'",
                    "\\": "\\",
                    "\r": "r",
                    "\n": "n",
                    "\u2028": "u2028",
                    "\u2029": "u2029"
                },
                j = /\\|'|\r|\n|\u2028|\u2029/g,
                G = function(t) {
                    return "\\" + N[t]
                };
            b.template = function(t, e, n) {
                !e && n && (e = n), e = b.defaults({}, e, b.templateSettings);
                var r = RegExp([(e.escape || B).source, (e.interpolate || B).source, (e.evaluate || B).source].join("|") + "|$", "g"),
                    i = 0,
                    o = "__p+='";
                t.replace(r, function(e, n, r, a, s) {
                    return o += t.slice(i, s).replace(j, G), i = s + e.length, n ? o += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'" : r ? o += "'+\n((__t=(" + r + "))==null?'':__t)+\n'" : a && (o += "';\n" + a + "\n__p+='"), e
                }), o += "';\n", e.variable || (o = "with(obj||{}){\n" + o + "}\n"), o = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + o + "return __p;\n";
                try {
                    var a = new Function(e.variable || "obj", "_", o)
                } catch (t) {
                    throw t.source = o, t
                }
                var s = function(t) {
                    return a.call(this, t, b)
                };
                return s.source = "function(" + (e.variable || "obj") + "){\n" + o + "}", s
            }, b.chain = function(t) {
                var e = b(t);
                return e._chain = !0, e
            };
            var U = function(t, e) {
                return t._chain ? b(e).chain() : e
            };
            b.mixin = function(t) {
                b.each(b.functions(t), function(e) {
                    var n = b[e] = t[e];
                    b.prototype[e] = function() {
                        var t = [this._wrapped];
                        return l.apply(t, arguments), U(this, n.apply(b, t))
                    }
                })
            }, b.mixin(b), b.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(t) {
                var e = a[t];
                b.prototype[t] = function() {
                    var n = this._wrapped;
                    return e.apply(n, arguments), "shift" !== t && "splice" !== t || 0 !== n.length || delete n[0], U(this, n)
                }
            }), b.each(["concat", "join", "slice"], function(t) {
                var e = a[t];
                b.prototype[t] = function() {
                    return U(this, e.apply(this._wrapped, arguments))
                }
            }), b.prototype.value = function() {
                return this._wrapped
            }, b.prototype.valueOf = b.prototype.toJSON = b.prototype.value, b.prototype.toString = function() {
                return "" + this._wrapped
            }, "function" == typeof define && define.amd && define("underscore", [], function() {
                return b
            })
        }.call(this),
        function(t, e) {
            "object" == typeof module && module.exports ? module.exports = e(require("underscore")) : "function" == typeof define && define.amd ? define("riveter", ["underscore"], function(n) {
                return e(n, t)
            }) : t.riveter = e(t._, t)
        }(this, function(t, e, n) {
            var r = Array.prototype.slice,
                i = function() {
                    for (var t = r.call(arguments, 0); t.length;) i.rivet(t.shift())
                };
            return i.rivet = function(t) {
                t.hasOwnProperty("extend") || (t.extend = function(e, n) {
                    return i.extend(t, e, n)
                }), t.hasOwnProperty("compose") || (t.compose = function() {
                    return i.compose.apply(this, [t].concat(r.call(arguments, 0)))
                }), t.hasOwnProperty("inherits") || (t.inherits = function(e, n) {
                    i.inherits(t, e, n)
                }), t.hasOwnProperty("mixin") || (t.mixin = function() {
                    i.mixin.apply(this, [t].concat(r.call(arguments, 0)))
                })
            }, i.inherits = function(e, n, r) {
                var o, a = function() {},
                    s = function() {
                        n.apply(this, arguments)
                    };
                return "object" == typeof e ? (e.hasOwnProperty("constructor") && (s = e.constructor), o = e) : (s = e, o = e.prototype), i.rivet(s), t.defaults(s, n, r), a.prototype = n.prototype, s.prototype = new a, t.extend(s.prototype, o, {
                    constructor: s
                }), s.__super = n, s.__super__ = n.prototype, s
            }, i.extend = function(t, e, n) {
                return i.inherits(e, t, n)
            }, i.compose = function() {
                var e = r.call(arguments, 0),
                    n = e.shift();
                i.rivet(n);
                var o = t.reduce(e, function(t, e) {
                        return e.hasOwnProperty("_preInit") && t.preInit.push(e._preInit), e.hasOwnProperty("_postInit") && t.postInit.push(e._postInit), e = e.mixin || e, t.items.push(e), t
                    }, {
                        items: [],
                        preInit: [],
                        postInit: []
                    }),
                    a = n.extend({
                        constructor: function() {
                            var e = r.call(arguments, 0);
                            t.each(o.preInit, function(t) {
                                t.apply(this, e)
                            }, this), n.prototype.constructor.apply(this, e), t.each(o.postInit, function(t) {
                                t.apply(this, e)
                            }, this)
                        }
                    });
                return i.rivet(a), t.defaults(a.prototype, t.extend.apply(null, [{}].concat(o.items))), a
            }, i.mixin = function() {
                var e = r.call(arguments, 0),
                    n = e.shift();
                i.rivet(n), t.defaults(n.prototype, t.extend.apply(null, [{}].concat(e)))
            }, i
        }),
        function(t, e) {
            "object" == typeof module && module.exports ? module.exports = function(t) {
                return e(require("lodash"), t, require("riveter"))
            } : "function" == typeof define && define.amd ? define("postal.federation", ["lodash", "postal", "riveter"], function(n, r, i) {
                return e(n, r, i, t)
            }) : t.postal = e(t._, t.postal, t.riveter, t)
        }(this, function(t, e, n, r, i) {
            function o(t) {
                e.fedx.signalReady.apply(this, t)
            }

            function a(t) {
                e.fedx.send.apply(this, t)
            }

            function s(t) {
                e.fedx.onFederatedMsg.call(this, t)
            }
            e.createUUID || (e.createUUID = function() {
                for (var t = [], e = "0123456789abcdef", n = 0; n < 36; n++) t[n] = e.substr(Math.floor(16 * Math.random()), 1);
                return t[14] = "4", t[19] = e.substr(3 & t[19] | 8, 1), t[8] = t[13] = t[18] = t[23] = "-", t.join("")
            }), e.instanceId || (e.instanceId = function() {
                var t, n;
                return function(r) {
                    return r && (n = t, t = r, e.publish({
                        channel: e.configuration.SYSTEM_CHANNEL,
                        topic: "instanceId.changed",
                        data: {
                            oldId: n,
                            newId: t
                        }
                    })), t
                }
            }());
            var u = function() {},
                l = !1,
                c = [],
                h = [],
                d = [],
                f = {
                    enabled: !0,
                    filterMode: "whitelist",
                    filterDirection: "both"
                },
                p = f,
                g = function(n, r, i) {
                    var o = Object.prototype.hasOwnProperty.call(e.fedx.filters[i], n),
                        a = o && t.any(e.fedx.filters[i][n], function(t) {
                            return e.configuration.resolver.compare(t, r)
                        }),
                        s = "blacklist" === p.filterMode;
                    return p.enabled && (s && (!o || o && !a) || !s && o && a)
                },
                m = {
                    ping: function() {
                        return {
                            type: "federation.ping",
                            instanceId: e.instanceId(),
                            timeStamp: new Date,
                            ticket: e.createUUID()
                        }
                    },
                    pong: function(t) {
                        return {
                            type: "federation.pong",
                            instanceId: e.instanceId(),
                            timeStamp: new Date,
                            pingData: {
                                instanceId: t.instanceId,
                                timeStamp: t.timeStamp,
                                ticket: t.ticket
                            }
                        }
                    },
                    message: function(t) {
                        return {
                            type: "federation.message",
                            instanceId: e.instanceId(),
                            timeStamp: new Date,
                            envelope: t
                        }
                    },
                    disconnect: function() {
                        return {
                            type: "federation.disconnect",
                            instanceId: e.instanceId(),
                            timeStamp: new Date
                        }
                    },
                    bundle: function(t) {
                        return {
                            type: "federation.bundle",
                            instanceId: e.instanceId(),
                            timeStamp: new Date,
                            packingSlips: t
                        }
                    }
                },
                y = {
                    "federation.ping": function(t) {
                        t.source.setInstanceId(t.packingSlip.instanceId), t.source.handshakeComplete ? t.source.sendPong(t.packingSlip) : t.source.sendBundle([e.fedx.getPackingSlip("pong", t.packingSlip), e.fedx.getPackingSlip("ping")])
                    },
                    "federation.pong": function(n) {
                        n.source.handshakeComplete = !0, n.source.setInstanceId(n.packingSlip.instanceId), n.source.pings[n.packingSlip.pingData.ticket] && (n.source.pings[n.packingSlip.pingData.ticket].callback({
                            ticket: n.packingSlip.pingData.ticket,
                            instanceId: n.packingSlip.instanceId,
                            source: n.source
                        }), n.source.pings[n.packingSlip.pingData.ticket] = i), t.contains(e.fedx.clients, n.packingSlip.instanceId) || e.fedx.clients.push(n.packingSlip.instanceId), e.publish({
                            channel: "postal.federation",
                            topic: "client.federated",
                            data: {
                                remoteId: n.source.instanceId,
                                localId: e.instanceId(),
                                transport: n.transport
                            }
                        })
                    },
                    "federation.disconnect": function(n) {
                        e.fedx.clients = t.without(e.fedx.clients, n.source.instanceId), e.fedx.disconnect({
                            transport: n.source.transportName,
                            instanceId: n.source.instanceId,
                            doNotNotify: !0
                        })
                    },
                    "federation.message": function(t) {
                        var n = t.packingSlip.envelope;
                        g(n.channel, n.topic, "in") && (n.lastSender = t.packingSlip.instanceId, e.publish(n))
                    },
                    "federation.bundle": function(n) {
                        t.each(n.packingSlip.packingSlips, function(r) {
                            e.fedx.onFederatedMsg(t.extend({}, n, {
                                packingSlip: r
                            }))
                        })
                    }
                },
                b = function(t, e, n) {
                    this.target = t, this.options = e || {}, this.pings = {}, this.instanceId = n, this.handshakeComplete = !1
                };
            return b.prototype.sendPing = function(t) {
                var n = e.fedx.getPackingSlip("ping");
                this.pings[n.ticket] = {
                    ticket: n.ticket,
                    callback: t || u
                }, this.send(n)
            }, b.prototype.sendPong = function(t) {
                this.send(e.fedx.getPackingSlip("pong", t))
            }, b.prototype.sendBundle = function(t) {
                this.send(e.fedx.getPackingSlip("bundle", t))
            }, b.prototype.sendMessage = function(n) {
                if (this.handshakeComplete) {
                    n.originId = n.originId || e.instanceId();
                    var r = t.clone(n);
                    !this.instanceId || this.instanceId === r.lastSender || r.knownIds && r.knownIds.length && (!r.knownIds || t.include(r.knownIds, this.instanceId)) || (r.knownIds = (r.knownIds || []).concat(t.without(e.fedx.clients, this.instanceId)), this.send(e.fedx.getPackingSlip("message", r)))
                }
            }, b.prototype.disconnect = function() {
                this.send(e.fedx.getPackingSlip("disconnect"))
            }, b.prototype.onMessage = function(t) {
                this.shouldProcess() && e.fedx.onFederatedMsg({
                    transport: this.transportName,
                    packingSlip: t,
                    source: this
                })
            }, b.prototype.shouldProcess = function() {
                return !0
            }, b.prototype.send = function() {
                throw new Error("An object deriving from FederationClient must provide an implementation for 'send'.")
            }, b.prototype.setInstanceId = function(t) {
                this.instanceId = t
            }, n(b), e.fedx = t.extend({
                FederationClient: b,
                packingSlips: m,
                handlers: y,
                clients: [],
                transports: {},
                filters: { in: {},
                    out: {}
                },
                addFilter: function(e) {
                    e = t.isArray(e) ? e : [e], t.each(e, function(e) {
                        e.direction = e.direction || p.filterDirection, t.each("both" === e.direction ? ["in", "out"] : [e.direction], function(n) {
                            this.filters[n][e.channel] ? t.include(this.filters[n][e.channel], e.topic) || this.filters[n][e.channel].push(e.topic) : this.filters[n][e.channel] = [e.topic]
                        }, this)
                    }, this)
                },
                removeFilter: function(e) {
                    e = t.isArray(e) ? e : [e], t.each(e, function(e) {
                        e.direction = e.direction || p.filterDirection, t.each("both" === e.direction ? ["in", "out"] : [e.direction], function(n) {
                            this.filters[n][e.channel] && t.include(this.filters[n][e.channel], e.topic) && (this.filters[n][e.channel] = t.without(this.filters[n][e.channel], e.topic))
                        }, this)
                    }, this)
                },
                canSendRemote: function(t, e) {
                    return g(t, e, "out")
                },
                configure: function(e) {
                    if (e && e.filterMode && "blacklist" !== e.filterMode && "whitelist" !== e.filterMode) throw new Error("postal.fedx filterMode must be 'blacklist' or 'whitelist'.");
                    return e && (p = t.defaults(e, f)), p
                },
                getPackingSlip: function(t) {
                    if (Object.prototype.hasOwnProperty.call(m, t)) return m[t].apply(this, Array.prototype.slice.call(arguments, 1))
                },
                onFederatedMsg: function(t) {
                    if (!l) return void c.push(t);
                    if (!Object.prototype.hasOwnProperty.call(y, t.packingSlip.type)) throw new Error("postal.federation does not have a message handler for '" + t.packingSlip.type + "'.");
                    y[t.packingSlip.type](t)
                },
                sendMessage: function(e) {
                    if (!l) return void h.push(arguments);
                    t.each(this.transports, function(t) {
                        t.sendMessage(e)
                    })
                },
                disconnect: function(e) {
                    e = e || {};
                    var n = this.transports;
                    e.transport && (n = {}, n[e.transport] = this.transports[e.transport]), t.each(n, function(t) {
                        t.disconnect({
                            target: e.target,
                            instanceId: e.instanceId,
                            doNotNotify: !!e.doNotNotify
                        })
                    }, this)
                },
                _getTransports: function() {
                    return t.reduce(this.transports, function(t, e, n) {
                        return t[n] = !0, t
                    }, {})
                },
                signalReady: function(e, n, r) {
                    if (!l) return void d.push(arguments);
                    var i = this._getTransports();
                    switch (arguments.length) {
                        case 1:
                            "function" == typeof e ? r = e : "string" == typeof e && (i = {}, i[e] = this.transports[e], r = u);
                            break;
                        case 2:
                            "string" == typeof e ? (i = {}, i[e] = this.transports[e]) : i = e, r = n || u;
                            break;
                        case 3:
                            i = {}, i[e] = [n]
                    }
                    t.each(i, function(t, e) {
                        t = "boolean" == typeof t ? [] : t, this.transports[e].signalReady(t, r)
                    }, this)
                }
            }, e.fedx), e.addWireTap(function(t, n) {
                e.fedx.canSendRemote(n.channel, n.topic) && e.fedx.sendMessage(n)
            }), e.subscribe({
                channel: e.configuration.SYSTEM_CHANNEL,
                topic: "instanceId.changed",
                callback: function() {
                    for (l = !0; d.length;) o(d.shift());
                    for (; h.length;) a(h.shift());
                    for (; c.length;) s(c.shift())
                }
            }), e.instanceId() !== i && (l = !0), e
        }),
        function(t, e) {
            "function" == typeof define && define.amd ? define("xframe", ["lodash", "postal.federation"], function(n, r) {
                return e(n, r, t)
            }) : "object" == typeof module && module.exports ? module.exports = function(t) {
                return e(require("lodash"), t)
            } : t.postal = e(t._, t.postal, t)
        }(this, function(t, e, n, r) {
            function i() {
                y.routeMessage.apply(y, arguments)
            }

            function o(e) {
                for (var n in e) e.hasOwnProperty(n) && ("function" == typeof e[n] && delete e[n], t.isPlainObject(e[n]) && o(e[n]), t.isArray(e[n]) && t.each(e[n], o));
                return e
            }
            var a = location.origin || location.protocol + "//" + location.host,
                s = /MSIE [8,9]/.test(navigator.userAgent),
                u = function(e, n) {
                    var r = t.find(this.remotes, function(t) {
                        return t.instanceId === n
                    });
                    return r && e.push(r), e
                },
                l = function(e, n) {
                    var r = t.find(this.remotes, function(t) {
                        return t.target === n
                    });
                    return r && e.push(r), e
                },
                c = function(t) {
                    t.disconnect()
                },
                h = "undefined" == typeof window && postMessage && location,
                d = [],
                f = function() {},
                p = {
                    allowedOrigins: [a],
                    enabled: !0,
                    defaultOriginUrl: "*",
                    safeSerialize: !1
                },
                g = t.extend({}, p),
                m = e.fedx.FederationClient.extend({
                    transportName: "xframe",
                    shouldProcess: function() {
                        var e = !!g.allowedOrigins.length;
                        return g.enabled && ("*" === this.options.origin || e && t.contains(g.allowedOrigins, this.options.origin) || !e || this.options.isWorker && t.contains(d, this.target) || h)
                    },
                    send: function(t) {
                        var n, r;
                        this.shouldProcess() && (r = h ? null : this.target, n = [e.fedx.transports.xframe.wrapForTransport(t)], this.options.isWorker || h || n.push(this.options.origin), h ? this.target.postMessage.apply(r, n) : 1 === n.length ? this.target.postMessage(n[0]) : this.target.postMessage(n[0], n[1]))
                    }
                }, {
                    getInstance: function(t, e, n) {
                        var r = new m(t, {
                            origin: e,
                            isWorker: "undefined" != typeof Worker && t instanceof Worker
                        }, n);
                        return r.options.isWorker && y.listenToWorker(r.target), r
                    }
                }),
                y = e.fedx.transports.xframe = {
                    eagerSerialize: s,
                    XFrameClient: m,
                    configure: function(e) {
                        return e && (g = t.defaults(t.extend(g, e), p)), g
                    },
                    clearConfiguration: function() {
                        g = t.extend({}, p)
                    },
                    getTargets: h ? function() {
                        return [{
                            target: {
                                postMessage: postMessage
                            }
                        }]
                    } : function() {
                        var e = t.map(document.getElementsByTagName("iframe"), function(t) {
                            var e = document.createElement("a");
                            e.href = t.src;
                            var n = e.protocol + "//" + e.host;
                            return "//" === n && (n = null), {
                                target: t.contentWindow,
                                origin: n || g.defaultOriginUrl
                            }
                        });
                        return window.parent && window.parent !== window && e.push({
                            target: window.parent,
                            origin: "*"
                        }), e.concat(d)
                    },
                    remotes: [],
                    wrapForTransport: s ? function(t) {
                        return JSON.stringify({
                            postal: !0,
                            packingSlip: t
                        })
                    } : function(t) {
                        return {
                            postal: !0,
                            packingSlip: t
                        }
                    },
                    unwrapFromTransport: function(t) {
                        if ("string" != typeof t || !s && -1 === t.indexOf('"postal":true')) return t;
                        try {
                            return JSON.parse(t)
                        } catch (t) {
                            return {}
                        }
                    },
                    routeMessage: function(n) {
                        var r = n.source || n.currentTarget,
                            i = this.unwrapFromTransport(n.data);
                        if (i.postal) {
                            e.instanceId();
                            var o = t.find(this.remotes, function(t) {
                                return t.target === r
                            });
                            o || (o = m.getInstance(r, n.origin, i.packingSlip.instanceId), this.remotes.push(o)), o.onMessage(i.packingSlip)
                        }
                    },
                    sendMessage: function(e) {
                        var n = e;
                        g.safeSerialize && (n = o(t.cloneDeep(e))), t.each(this.remotes, function(t) {
                            t.sendMessage(n)
                        })
                    },
                    disconnect: function(e) {
                        e = e || {};
                        var n = e.instanceId ? t.reduce(t.isArray(e.instanceId) ? e.instanceId : [e.instanceId], u, [], this) : e.target ? t.reduce(t.isArray(e.target) ? e.target : [e.target], l, [], this) : this.remotes;
                        e.doNotNotify || t.each(n, c, this), this.remotes = t.without.apply(null, [this.remotes].concat(n))
                    },
                    signalReady: function(e, n) {
                        e = t.isArray(e) ? e : [e], e = e.length ? e : this.getTargets(), n = n || f, t.each(e, function(e) {
                            if (e.target) {
                                e.origin = e.origin || g.defaultOriginUrl;
                                var r = t.find(this.remotes, function(t) {
                                    return t.target === e.target
                                });
                                r || (r = m.getInstance(e.target, e.origin), this.remotes.push(r)), r.sendPing(n)
                            }
                        }, this)
                    },
                    addEventListener: h ? function() {
                        addEventListener("message", i)
                    } : function(t, e, n, r) {
                        "undefined" != typeof window && ("addEventListener" in t ? t.addEventListener(e, n, r) : t.attachEvent("on" + e, n))
                    },
                    listenToWorker: function(e) {
                        t.include(d, e) || (e.addEventListener("message", i), d.push(e))
                    },
                    stopListeningToWorker: function(e) {
                        if (e) e.removeEventListener("message", i), d = t.without(d, e);
                        else
                            for (; d.length;) d.pop().removeEventListener("message", i)
                    }
                };
            return y.addEventListener(this, "message", i, !1), e
        }),
        function(t, e) {
            "function" == typeof define && define.amd ? define("request-response", ["lodash", "postal"], function(n, r) {
                return e(n, r, t)
            }) : "object" == typeof module && module.exports ? module.exports = function(t) {
                return e(require("lodash"), t, this)
            } : t.postal = e(t._, t.postal, t)
        }(this, function(t, e, n, r) {
            e.configuration.promise = {
                createDeferred: function() {
                    throw new Error("You need to provide an implementation for postal.configuration.promise.createDeferred that returns a deferred/promise instance.")
                },
                getPromise: function() {
                    throw new Error("You need to provide an implementation for postal.configuration.promise.getPromise that returns a promise safe for consuming APIs to use.")
                },
                fulfill: "resolve",
                fail: "reject"
            };
            var i = function() {
                for (var t = {}, e = [], n = 0; n < 256; n++) e[n] = (n < 16 ? "0" : "") + n.toString(16);
                return t.create = function() {
                    var t = 4294967295 * Math.random() | 0,
                        n = 4294967295 * Math.random() | 0,
                        r = 4294967295 * Math.random() | 0,
                        i = 4294967295 * Math.random() | 0;
                    return e[255 & t] + e[t >> 8 & 255] + e[t >> 16 & 255] + e[t >> 24 & 255] + "-" + e[255 & n] + e[n >> 8 & 255] + "-" + e[n >> 16 & 15 | 64] + e[n >> 24 & 255] + "-" + e[63 & r | 128] + e[r >> 8 & 255] + "-" + e[r >> 16 & 255] + e[r >> 24 & 255] + e[255 & i] + e[i >> 8 & 255] + e[i >> 16 & 255] + e[i >> 24 & 255]
                }, t
            }();
            e.ChannelDefinition.prototype.request = function(t) {
                var n = t.envelope ? t.envelope : {
                        topic: t.topic,
                        data: t.data,
                        headers: t.headers
                    },
                    r = i.create(),
                    o = t.replyTopic || r,
                    a = t.replyChannel || "postal.request-response",
                    s = e.configuration.promise.createDeferred();
                n.headers = n.headers || {}, n.headers.replyable = !0, n.headers.requestId = r, n.headers.replyTopic = o, n.headers.replyChannel = a;
                e.subscribe({
                    channel: a,
                    topic: o,
                    callback: function(t, n) {
                        n.headers && n.headers.isError ? s[e.configuration.promise.fail](t) : s[e.configuration.promise.fulfill](t)
                    }
                }).once();
                return t.timeout && setTimeout(function() {
                    s[e.configuration.promise.fail](new Error("Timeout limit exceeded for request."))
                }, t.timeout), this.publish(n), e.configuration.promise.getPromise(s)
            };
            var o = e.publish;
            return e.publish = function(t) {
                t.headers && t.headers.replyable && (t.reply = function(n, r) {
                    e.publish({
                        channel: t.headers.replyChannel,
                        topic: t.headers.replyTopic,
                        headers: {
                            isReply: !0,
                            isError: !!n,
                            requestId: t.headers.requestId,
                            resolverNoCache: !0
                        },
                        data: n || r
                    })
                }), o.call(this, t)
            }, e
        }), define("skbJet/component/gameMsgBus/PlatformMessageBus", ["postal", "promise", "postal.federation", "xframe", "request-response"], function(t, e) {
            "use strict";

            function n(n) {
                if (0 === arguments.length) throw new Error("Message Bus Configuration Payload cannot be empty, malformed or undefined");
                return s = n, t.instanceId("Game"), t.fedx.configure({
                    filterMode: "blacklist"
                }), t.fedx.transports.xframe.configure({
                    filterMode: "blacklist",
                    safeSerialize: !0
                }), t.configuration.promise.createDeferred = function() {
                    return e.defer()
                }, t.configuration.promise.getPromise = function(t) {
                    return t.promise
                }, t.addWireTap(function() {}), t.fedx.signalReady(function() {}), !0
            }

            function r(e) {
                t.publish(e)
            }

            function i(e, n, r) {
                t.channel(e.channel).request(e).then(n, r)
            }

            function o(e) {
                t.subscribe(e)
            }

            function a(e) {
                t.unsubscribe(e)
            }
            var s;
            return function() {
                return Object.freeze({
                    init: n,
                    publish: r,
                    subscribe: o,
                    unsubscribe: a,
                    getPostal: t,
                    request: i
                })
            }
        }), define("skbJet/component/gameMsgBus/PlatformMsgBusAdapter", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gameMsgBus/PlatformMessageBus"], function(t, e) {
            var n = e();
            n.init({
                allowedDomains: ["*"],
                defaultOrigin: "http://localhost:8080",
                channels: [{
                    channel: "Kernel",
                    topic: "#",
                    direction: "both"
                }, {
                    channel: "ClientService",
                    topic: "#",
                    direction: "both"
                }, {
                    channel: "ConsoleService",
                    topic: "#",
                    direction: "both"
                }, {
                    channel: "Game",
                    topic: "#",
                    direction: "both"
                }, {
                    channel: "postal.request-response",
                    topic: "#",
                    direction: "both"
                }]
            }), n.getPostal.addWireTap(function(e, n) {
                "postal" !== n.channel && "postal.federation" !== n.channel && t.publish("platformMsg/" + n.channel + "/" + n.topic, n.data)
            }), t.subscribe("toPlatform", function(t) {
                n.publish(t)
            }), t.subscribe("toPlatformRequest", function(t) {
                n.request({
                    channel: t.channel,
                    topic: t.topic,
                    data: t.data
                }, t.successCallback, t.failCallback)
            }), t.subscribe("error", function(t) {
                var e = t;
                t.errorCode || (e = {
                    errorCode: "GM-001",
                    message: "" + t
                }), n.publish({
                    channel: "Game",
                    topic: "ErrorHandler.Throw",
                    data: e
                })
            });
            var r = null;
            return n.getPostal.channel("ClientService").subscribe("StateChange", function(e, n) {
                r = function() {
                    n.reply(null, {
                        state: e.state
                    })
                }, t.publish(e.state, e)
            }), t.subscribe("nextState", function() {
                r && r()
            }), {}
        }), define("skbJet/component/audioPlayer/AudioPlayerSubLoader", ["skbJet/component/resourceLoader/Util", "skbJet/component/resourceLoader/AbstractSubLoader", "skbJet/component/resourceLoader/resourceLib", "skbJet/component/gameMsgBus/GameMsgBus"], function(t, e, n, r) {
            function i(t) {
                s.compatibility.audio_ogg ? t.fileExtFilterList = ["ogg"] : t.fileExtFilterList = ["mp3"], this._initOptions("sounds", t), this.soundDecoderError = !1
            }

            function o(t) {
                s.compatibility.audio_ogg ? t.fileExtFilterList = ["ogg"] : t.fileExtFilterList = ["mp3"], this._initOptions("sounds", t)
            }
            var a = null,
                s = Object.freeze(function() {
                    "use strict";
                    var t = {};
                    return t.compatibility = {},
                        function() {
                            window.AudioContext = window.AudioContext || window.webkitAudioContext, navigator.userAgent.indexOf("Chrome/11.") > -1 && navigator.userAgent.indexOf("Linux x86_64") > -1 ? t.compatibility.webaudio = 0 : (navigator.userAgent.indexOf("4.1.1") > -1 || navigator.userAgent.indexOf("4.1.2") > -1) && (navigator.userAgent.indexOf("GT-I9300") > -1 || navigator.userAgent.indexOf("GT-I9100") > -1) ? t.compatibility.webaudio = 0 : window.AudioContext ? t.compatibility.webaudio = 1 : t.compatibility.webaudio = 0, t.compatibility.webaudio && (a = new window.AudioContext);
                            var e = new Audio;
                            t.compatibility.audio_ogg = e.canPlayType("audio/ogg"), t.compatibility.audio_mp3 = e.canPlayType("audio/mp3")
                        }(), Object.freeze(t.compatibility), Object.freeze(t)
                })();
            i.prototype = new e, i.prototype._doLoadFile = function(t, e, n) {
                var i = new XMLHttpRequest;
                i.onload = function(t) {
                    a.decodeAudioData(t.target.response, function(t) {
                        e(t)
                    }, function() {
                        this.soundDecoderError || (this.soundDecoderError = !0, r.publish("toPlatform", {
                            channel: "Game",
                            topic: "ErrorHandler.Throw",
                            data: {
                                errorCode: "GM-003",
                                message: "Audio decoding error on current browser."
                            }
                        })), e(null)
                    })
                }.bind(this), i.onerror = function(t) {
                    n()
                }, i.open("GET", t, !0), i.responseType = "arraybuffer", i.send()
            }, o.prototype = new e;
            var u = 0;
            return o.prototype._doLoadFile = function(t, e) {
                var n = new Audio;
                this.options.queryStr ? n.src = t + "&dt=" + Date.now() : n.src = t + "?dt=" + Date.now(), u++, u %= 23, setTimeout(function() {
                    e(n)
                }, 50 * u), n.load()
            }, s.compatibility.webaudio ? i : o
        }), define("game/LoadController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/resourceLoader/ResourceLoader", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/audioPlayer/AudioPlayerSubLoader"], function(t, e, n, r, i) {
            function o(e) {
                t.publish("toPlatform", {
                    channel: "Kernel",
                    topic: "LoadProgress",
                    data: {
                        id: "game",
                        items: e.total + 1,
                        current: e.current,
                        complete: !1
                    }
                }), e.complete && (a && (clearTimeout(a), a = null), r.init(null, null, "desktop" === s ? "2d" : null), r.showScene("_GameScene"), t.publish("toPlatform", {
                    channel: "Kernel",
                    topic: "LoadProgress",
                    data: {
                        id: "game",
                        items: e.total + 1,
                        current: e.total + 1,
                        complete: !0
                    }
                }))
            }
            var a, s = window.location.search.match(/&?assetPack=(\w+)&?/)[1];
            t.subscribe("resourceLoader.loadProgress", function(t) {
                a && (clearTimeout(a), a = null), a = setTimeout(function() {
                    e.getDefault().removeHeartBeat()
                }, 35e3), o(t)
            });
            var u = window.location.search.match(/&?language=((\w|-)+)&?/)[1].toLowerCase(),
                l = window.location.search.match(/&?skincode=(\w+)&?/)[1];
            return n.load("assetPacks/" + s, u, l), e.getDefault().addSubLoader("sounds", new i({
                type: "sounds"
            })), e.getDefault().addHeartBeat(o), {}
        }), define("game/BackgroundController", ["skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/pixiResourceLoader/pixiResourceLoader"], function(t, e, n) {
            function r(t) {
                var e;
                e = "FreeSpin" === t ? ("mobile" === l || "tablet" === l) && window.innerHeight > window.innerWidth ? n.getImgObj("backgroundFreespins_PORTRAIT").src : n.getImgObj("backgroundFreespins").src : ("mobile" === l || "tablet" === l) && window.innerHeight > window.innerWidth ? n.getImgObj("backgroundBasegame_PORTRAIT").src : n.getImgObj("backgroundBasegame").src, document.body.style.backgroundImage = "url(" + e + ")"
            }

            function i(t) {
                var e = document.body.style.backgroundImage.match(/[a-z|A-Z|_|0-9]+.jpg|.png|.jpeg/);
                if (e) {
                    var r, i = e[0].slice(0, e[0].indexOf("."));
                    r = i.indexOf("_PORTRAIT") > -1 ? i.slice(0, i.indexOf("_PORTRAIT")) : i;
                    var o = n.getImgObj(r + (t ? "_PORTRAIT" : "")).src;
                    document.body.style.backgroundImage = "url(" + o + ")"
                }
            }

            function o(t) {
                r(t.response.OutcomeDetail.Stage)
            }

            function a(t) {
                r(t.response.OutcomeDetail.NextStage)
            }

            function s() {
                l = window.location.search.match(/&?assetPack=([^&]+)&?/)[1]
            }

            function u(t) {
                r(t.response.OutcomeDetail.NextStage)
            }
            var l;
            return e.subscribe("platformMsg/Kernel/System.Init", s), e.subscribe("onEnterNextStage", a), e.subscribe("onBeforeShowStage", o), e.subscribe("changeBackgroundBGIfPortrait", i), e.subscribe("onStartGameInProgressNextStage", u), {}
        }), define("skbJet/componentCRDC/SlotGameControllers/gameSizeController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(t, e) {
            function n() {
                var n = Number(window.innerWidth),
                    r = Number(window.innerHeight);
                if (document.documentElement.style.width = n + "px", document.documentElement.style.height = r + "px", document.body.style.width = n + "px", document.body.style.height = r + "px", o.style.width = n + "px", o.style.height = r + "px", e.fitSize(n, r), a) {
                    var i = e.animMap._landscape2potrait;
                    n < r ? (e.switchPixiRenderer("potrait"), i.updateStyleToTime(i.maxTime)) : (e.switchPixiRenderer("default"), i.updateStyleToTime(0)), t.publish("changeBackgroundBGIfPortrait", n < r)
                }
            }

            function r() {
                if (a = a && !!e.animMap._landscape2potraitTemplate) {
                    var t = e.getPixiRenderer(),
                        r = Number(t.view.height),
                        i = Number(t.view.width);
                    e.newPixiRenderer("potrait", r, Math.floor(.9 * i));
                    for (var s = [], u = e.animMap._landscape2potraitTemplate._spritesNameList, l = 0; l < u.length; l++) {
                        var c = u[l].match(/^_potrait_(.*)$/);
                        c ? s.push("_" + c[1]) : s.push(u[l])
                    }
                    e.animMap._landscape2potraitTemplate.clone(s, "_landscape2potrait")
                }
                o.width = 2 * window._gladData._width, o.height = 2 * window._gladData._height, window.addEventListener("resize", n), n()
            }

            function i(t) {
                "INT" !== t.serverConfig.channel && "STD" === t.serverConfig.presenttype && (a = !0)
            }
            var o = document.getElementById("game"),
                a = !1;
            return t.subscribe("platformMsg/Kernel/System.Init", i), t.subscribe("onBeforeShowStage", r), {}
        }), define("skbJet/component/currencyHelper/currencyHelper", ["skbJet/component/gameMsgBus/GameMsgBus"], function(t) {
            function e(t) {
                d = t.CurrencyResponse.CURRENCY, f = Number(t.CurrencyResponse.CURRENCY.DECIMAL_PRECISION), p = t.CurrencyResponse.CURRENCY.DECIMAL_SEPARATOR, "_" === (g = t.CurrencyResponse.CURRENCY.THOUSANDS_SEPARATOR) && (g = " ")
            }

            function n(t) {
                m = Number(t.serverConfig.denomamount)
            }

            function r(t) {
                var e = o(Number(t)) + a(Number(t));
                return "left" === d.MAJOR_SYMBOL_ALIGNMENT ? e = "false" === d.MAJOR_SYMBOL_PADDING_SPACE || !1 === d.MAJOR_SYMBOL_PADDING_SPACE ? d.MAJOR_SYMBOL + e : d.MAJOR_SYMBOL + " " + e : "false" === d.MAJOR_SYMBOL_PADDING_SPACE || !1 === d.MAJOR_SYMBOL_PADDING_SPACE ? e += d.MAJOR_SYMBOL : e = e + " " + d.MAJOR_SYMBOL, e
            }

            function i(t) {
                return l(t.replace(/[^\d.]/g, ""))
            }

            function o(t) {
                var e = Math.floor(t);
                if ("no" === d.USE_THOUSANDS_SEPARATOR) return e + "";
                for (var n = ""; e.toString().length > 3;) {
                    var r = e.toString().length - 3;
                    n = g + e.toString().substring(r) + n, e = parseInt(e.toString().substring(0, r))
                }
                return n = e + n
            }

            function a(t) {
                if (!isNaN(t = Number(t))) {
                    if (f <= 0) return "";
                    var e = t.toFixed(f),
                        n = e.indexOf(".");
                    return -1 === n ? "" : p + e.substring(n + 1)
                }
            }

            function s(t) {
                if (!isNaN(t = Number(t))) return f <= 0 ? t : t.toFixed(f)
            }

            function u(t) {
                if (!isNaN(t = Number(t))) return parseInt(t)
            }

            function l(t) {
                if (!isNaN(t = Number(t))) {
                    var e = f <= 0 ? t : t.toFixed(f);
                    return Number(e)
                }
            }

            function c(t) {
                return t * (1e3 * m) / 1e3
            }

            function h(t) {
                return 1e3 * t / (1e3 * m)
            }
            var d, f, p, g, m;
            return t.subscribe("platformMsg/ClientService/Game.Init", e), t.subscribe("platformMsg/Kernel/System.Init", n), {
                formatBalance: r,
                formatFloat: l,
                formatInteger: u,
                convertToNumber: i,
                formatDecimal: s,
                fromStakeUnits: c,
                toStakeUnits: h
            }
        }), define("skbJet/componentCRDC/gladRenderer/gladButton", [], function() {
            function t(t, n, r) {
                this.sprite = t, this.activeImg = n, this.inactiveImg = n + "Inactive", this.overImg = n + "Over", this.pressedImg = n + "Pressed", this.enabled = !0;
                var i = this;
                i.options = {}, i.options.scaleXWhenClick = 1, i.options.scaleYWhenClick = 1, i.options.scaleXWhenOver = 1, i.options.scaleYWhenOver = 1, i.options.avoidMultiTouch = !1, i.originalScaleX = t._currentStyle._transform._scale._x, i.originalScaleY = t._currentStyle._transform._scale._y, r && (r.scaleXWhenClick && (i.options.scaleXWhenClick = Number(r.scaleXWhenClick)), r.scaleYWhenClick && (i.options.scaleYWhenClick = Number(r.scaleYWhenClick)), r.scaleXWhenOver && (i.options.scaleXWhenOver = Number(r.scaleXWhenOver)), r.scaleYWhenOver && (i.options.scaleXWhenOver = Number(r.scaleYWhenOver)), r.avoidMultiTouch && (i.options.avoidMultiTouch = !0)), i.sprite.on("mouseover", function() {
                    if (i.enabled) try {
                        t.setImage(i.overImg), 1 === i.options.scaleXWhenOver && 1 === i.options.scaleYWhenOver || t.updateCurrentStyle({
                            _transform: {
                                _scale: {
                                    _x: i.options.scaleXWhenOver,
                                    _y: i.options.scaleYWhenOver
                                }
                            }
                        })
                    } catch (t) {}
                }), i.sprite.on("mouseout", function() {
                    i.enabled && (i.sprite.setImage(i.activeImg), t.updateCurrentStyle({
                        _transform: {
                            _scale: {
                                _x: i.originalScaleX,
                                _y: i.originalScaleY
                            }
                        }
                    }))
                }), i.sprite.on("mousedown", function() {
                    i.enabled && (i.sprite.setImage(i.pressedImg), 1 === i.options.scaleXWhenClick && 1 === i.options.scaleYWhenClick || t.updateCurrentStyle({
                        _transform: {
                            _scale: {
                                _x: i.options.scaleXWhenClick,
                                _y: i.options.scaleYWhenClick
                            }
                        }
                    }))
                }), i.sprite.on("mouseup", function() {
                    i.enabled && (i.sprite.setImage(i.activeImg), t.updateCurrentStyle({
                        _transform: {
                            _scale: {
                                _x: i.originalScaleX,
                                _y: i.originalScaleY
                            }
                        }
                    }))
                }), i.sprite.on("click", function(n) {
                    i.enabled && i.onClick && (n.stopPropagation(), i.sprite.setImage(i.pressedImg), setTimeout(function() {
                        if (i.options.avoidMultiTouch) {
                            var r = Date.now(),
                                o = r - e;
                            e = r, o >= 150 && i.onClick(n)
                        } else i.onClick(n);
                        i.enabled && (i.sprite.setImage(i.activeImg), t.updateCurrentStyle({
                            _transform: {
                                _scale: {
                                    _x: i.originalScaleX,
                                    _y: i.originalScaleY
                                }
                            }
                        }))
                    }, 100))
                })
            }
            var e = 0;
            return t.prototype.enable = function(t) {
                if (void 0 === t || null === t) return this.enabled;
                this.enabled = !!t, this.enabled ? this.sprite.setImage(this.activeImg) : this.sprite.setImage(this.inactiveImg)
            }, t.prototype.show = function(t) {
                this.sprite.show(t)
            }, t.prototype.click = function(t) {
                this.onClick = t
            }, t.prototype.changeImg = function(t) {
                this.activeImg = t, this.inactiveImg = t + "Inactive", this.overImg = t + "Over", this.pressedImg = t + "Pressed", this.enabled ? this.sprite.setImage(this.activeImg) : this.sprite.setImage(this.inactiveImg)
            }, t.prototype.getEnabled = function() {
                return this.enabled
            }, t
        }), define("game/AutoSpinController", ["com/pixijs/pixi", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/currencyHelper/currencyHelper", "skbJet/component/audioPlayer/AudioPlayerProxy", "game/BetController", "skbJet/componentCRDC/gladRenderer/gladButton"], function(t, e, n, r, i, o, a) {
            function s() {
                tt && (tt = !1, e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.AutoSpinStopped"
                }, !0))
            }

            function u(t) {
                K = t.serverConfig.presenttype, J = t.serverConfig.channel, q = t.serverConfig.paramGame.assetPack, "freespin" === t.serverConfig.paramGame.playMode && (ot = !0, Y = Number(t.serverConfig.freespin_num)), t.serverConfig.autospin && (it = !1, 2 === Number(t.serverConfig.autospin.version) && (at = !0))
            }

            function l(e) {
                if (n.lib._autoSpinSet)
                    if ($ = new a(n.lib._autoSpinBtn, "AutoSpin", {
                            avoidMultiTouch: !0
                        }), Z = new a(n.lib._autoSpinStop, "StopAutoSpin"), n.lib._betControlButton && (Q = new a(n.lib._betControlButton, "buttonSettings", {
                            avoidMultiTouch: !0
                        })), C(), e.PaytableResponse && e.PaytableResponse.AutoSpinInfo && (it = "true" !== e.PaytableResponse.AutoSpinInfo["@enable"].toLowerCase()), it)
                        if ("INT" === J) {
                            var r = n.animMap._updateMeterWhenAutoSpinDisabled;
                            r ? (r.updateStyleToTime(r.maxTime), t.utils.TextureCache.Meter2 && (n.lib._balanceMeter.setImage("Meter2"), n.lib._pfsMeter.setImage("Meter2")), t.utils.TextureCache.winMeter2 && n.lib._winMeter.setImage("winMeter2"), n.lib._AutoPlayButtonBG.show(!1)) : j()
                        } else C();
                else Y <= 0 ? j() : S(e)
            }

            function c(t) {
                ut = !1, nt = !1, "BaseGame" === t.response.OutcomeDetail.NextStage && (n.lib._autoSpinSet && (M(), tt ? (G(), z--) : "INT" === J ? j() : C()), ot && Y--)
            }

            function h() {
                "mobile" !== q && "tablet" !== q || (M(), tt && D(), n.lib._betControlDialog.pixiContainer.visible && (C(), M()))
            }

            function d() {
                "mobile" !== q && "tablet" !== q || (n.lib._autoSpinSet && n.lib._autoSpinSet.show(!0), ot && Y <= 0 ? j() : N())
            }

            function f() {
                if (ut = !0, st = "BaseGame", n.lib._autoSpinSet) {
                    if (ot && Y <= 0) return U(), j(), void s();
                    !1 === tt && W(), nt = !0
                }
            }

            function p() {
                tt && z <= 0 && s()
            }

            function g(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && q.indexOf("mini") < 0 && (U(), "INT" === J ? j() : C())
            }

            function m(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && q.indexOf("mini") < 0 && (s(), z = null, M(), N(), e.publish("AutoSpinController.autoSpinEnd"))
            }

            function y(t) {
                "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && n.lib._autoSpinSet && tt && (U(), j())
            }

            function b(t) {
                "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && n.lib._autoSpinSet && (s(), C()), "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage && n.lib._autoSpinSet && ("INT" === J ? j() : C())
            }

            function v(t) {
                n.lib._autoSpinSet && ("FreeSpin" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && C(), "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && ("INT" === J ? j() : C()))
            }

            function _(t) {
                st = t.response.OutcomeDetail.Stage
            }

            function x(t) {
                b(t)
            }

            function T() {
                n.lib._Num.setText(z + "")
            }

            function w(t, e) {
                t.click(function() {
                    L(e)
                }), t.enable(!0)
            }

            function S(t) {
                n.lib._autoSpinBtn.show(!0), $.click(function() {
                    E()
                }), $.enable(!0), Z.click(function() {
                    I()
                }), Z.enable(!0), V = t.PaytableResponse.AutoSpinInfo.Step.sort(function(t, e) {
                    return parseInt(e) - parseInt(t)
                });
                for (var e = Object.keys(n.lib._autoSpinTabPanel.sprites), r = 0; r < e.length; r++) n.lib["_T" + (r + 1)].setText(V[r] + ""), w(new a(n.lib[e[r]], "autoSpinBG"), n.lib[e[r]])
            }

            function C() {
                n.lib._autoSpinBtn.show(!1), n.lib._autoSpinTabPanel.show(!1), n.lib._autoSpinT1.show(!1), n.lib._autoSpinT2.show(!1), n.lib._autoSpinT3.show(!1), n.lib._autoSpinT4.show(!1), n.lib._autoSpinT5.show(!1), n.lib._autoSpinStop.show(!1), n.lib._autoSpinNum.show(!1), n.lib._Num.show(!1)
            }

            function E() {
                rt || it || (at ? (j(), F(), O(), e.publish("autoBtnClicked")) : et ? (M(), P(), e.publish("autoBtnCancel")) : (R(), O(), e.publish("autoBtnClicked")), i.play("ControlsGeneric1", 14))
            }

            function O() {
                n.lib._betControlButton && n.lib._betControlButton.show(!1), n.lib._betPrompt && n.lib._betPrompt.show(!1)
            }

            function P() {
                n.lib._betControlButton && n.lib._betControlButton.show(!0)
            }

            function A() {
                P()
            }

            function R() {
                n.lib._autoSpinTabPanel.show(!0), n.lib._autoSpinT1.show(!0), n.lib._autoSpinT2.show(!0), n.lib._autoSpinT3.show(!0), n.lib._autoSpinT4.show(!0), n.lib._autoSpinT5.show(!0), et = !0
            }

            function M() {
                n.lib._autoSpinTabPanel.show(!1), n.lib._autoSpinT1.show(!1), n.lib._autoSpinT2.show(!1), n.lib._autoSpinT3.show(!1), n.lib._autoSpinT4.show(!1), n.lib._autoSpinT5.show(!1), et = !1
            }

            function I() {
                D(), i.play("ControlsGeneric1", 14), n.lib._betControlButton && ut && ("MIN" === K ? (n.lib._betControlButton.show(!0), Q.enable(!0)) : n.lib._betControlButton.show(!0)), ut && e.publish("showButton", "_spinButton")
            }

            function D() {
                U(), "FreeSpin" !== st && j(), s(), nt && W()
            }

            function L(t) {
                var e = t.getName(),
                    n = e.charAt(e.length - 1) - 1;
                k(Number(V[n])), i.play("ControlsGeneric1", 14)
            }

            function k(t) {
                z = t, M(), n.lib._autoSpinBtn.show(!1), G(), tt = !0, B(), e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.AutoSpinStart"
                })
            }

            function F() {
                e.publish("toPlatformRequest", {
                    channel: "Game",
                    topic: "Game.AutoSpinOption",
                    data: {},
                    successCallback: function(t) {
                        t && "cancel" !== t.action ? (k(Number(t.steps)), i.play("ControlsGeneric1", 14)) : (e.publish("AutoSpinController.UKAutoSpinCancelled"), i.play("ControlsGeneric1", 14), e.publish("autoBtnCancel"), N())
                    },
                    failCallback: function() {
                        e.publish("AutoSpinController.UKAutoSpinCancelled"), e.publish("autoBtnCancel"), N()
                    }
                })
            }

            function B() {
                tt && z > 0 && (n.lib._spinButton.show(!1), n.lib._inactiveButton.show(!0), e.publish("nextState"))
            }

            function N() {
                n.lib._autoSpinSet && !it && (n.lib._autoSpinSet && n.lib._autoSpinSet.show(!0), $.enable(!0), n.lib._autoSpinBtn.show(!0), rt = !1)
            }

            function j() {
                $.enable(!1), n.lib._autoSpinBtn.show(!it), rt = !0
            }

            function G() {
                n.lib._autoSpinStop.show(!0), T(), n.lib._autoSpinNum.show(!0), n.lib._Num.show(!0)
            }

            function U() {
                n.lib._autoSpinStop.show(!1), n.lib._autoSpinNum.show(!1), n.lib._Num.show(!1)
            }

            function W() {
                it || (U(), N(), e.publish("AutoSpinController.autoSpinEnd"))
            }

            function H() {
                return tt
            }

            function X(t) {
                ut = !1, st = t.response.OutcomeDetail.Stage
            }
            var V, z, Y, q, J, K, $, Z, Q, tt = !1,
                et = !1,
                nt = !1,
                rt = !1,
                it = !0,
                ot = !1,
                at = !1,
                st = "BaseGame",
                ut = !1;
            return e.subscribe("platformMsg/Kernel/System.Init", u), e.subscribe("platformMsg/ClientService/Game.Init", l), e.subscribe("onBeforeRequest", c), e.subscribe("onBeginNewGame", f), e.subscribe("onResolveStage", X), e.subscribe("onAbortNextStage", g), e.subscribe("onResetNextStage", m), e.subscribe("onEnterNextStage", b), e.subscribe("onStartGameInProgressStage", _), e.subscribe("onStartGameInProgressNextStage", x), e.subscribe("onBeforeShowStage", v), e.subscribe("platformMsg/ClientService/Game.StopAutoSpin", D), e.subscribe("AutoSpinController.UKAutoSpinCancelled", A), e.subscribe("onBetControlButtonClicked", h), e.subscribe("okayBtnClicked", d), e.subscribe("onEndGame", p), e.subscribe("onExitStage", y), {
                autoSpin: B,
                currentAutoSpinState: H
            }
        }),
        define("game/BetController", ["com/pixijs/pixi", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/currencyHelper/currencyHelper", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/audioPlayer/AudioPlayerProxy", "game/AutoSpinController", "skbJet/componentCRDC/gladRenderer/gladButton"], function(t, e, n, r, i, o, a, s) {
            function u(t) {
                xt = t.serverConfig.paramGame.assetPack, _t = t.serverConfig.presenttype, vt = t.serverConfig.softwareid, yt = Number(t.serverConfig.denomamount), "freespin" === t.serverConfig.paramGame.playMode && (Bt = !0, mt = Number(t.serverConfig.freespin_bet) / yt, gt = Number(t.serverConfig.freespin_lines)), "desktop" !== t.serverConfig.paramGame.assetPack && (Nt = !0)
            }

            function l(t) {
                Mt = new s(n.lib._minusBtn4LineBet, "arrowMinus"), It = new s(n.lib._plusBtn4LineBet, "arrowPlus"), Dt = new s(n.lib._minusBtn4Lines, "arrowMinus"), Lt = new s(n.lib._plusBtn4Lines, "arrowPlus"), n.lib._betControlButton && (Rt = new s(n.lib._betControlButton, "buttonSettings", {
                    avoidMultiTouch: !0
                })), n.lib._okayBtn && (kt = new s(n.lib._okayBtn, "buttonOk")), At = t.PaytableResponse.AwardCapInfo.CurrencyCap.AwardCap, Ct = t.PaytableResponse.PatternSliderInfo.PatternInfo.Step, Tt = t.PaytableResponse.PatternSliderInfo.BetInfo.Step, Array.isArray(Tt) || (Tt = [Tt]), Array.isArray(Ct) || (Ct = [Ct]), wt = Tt.length, Et = Ct.length, Pt = Ct[Et - 1], O(), C(), E(), "mobile" !== xt && "tablet" !== xt && "tabletmini" !== xt || I()
            }

            function c() {
                n.lib._balanceLabel.autoFontFitText = !0, n.lib._pfsLabel.autoFontFitText = !0, n.lib._winLabel.autoFontFitText = !0, n.lib._linesBetLabel.autoFontFitText = !0, n.lib._totalBetLabel.autoFontFitText = !0, n.lib._linesLabel.autoFontFitText = !0, n.lib._freeSpinCountLabel.autoFontFitText = !0, n.lib._bonusWinLabel.autoFontFitText = !0, n.lib._betLabel.autoFontFitText = !0, n.lib._balanceValue.autoFontFitText = !0, n.lib._pfsValue.autoFontFitText = !0, n.lib._winValue.autoFontFitText = !0, n.lib._lineBetValue.autoFontFitText = !0, n.lib._totalBetValue.autoFontFitText = !0, n.lib._linesValue.autoFontFitText = !0, n.lib._freeSpinCountValue.autoFontFitText = !0, n.lib._bonusWinValue.autoFontFitText = !0, n.lib._betValue.autoFontFitText = !0, n.lib._betPromptMsg && (n.lib._betPromptMsg.autoFontFitText = !0)
            }

            function h(t) {
                c(), Bt || (mt = Number(t.response.PatternSliderInput.BetPerPattern), gt = Number(t.response.PatternSliderInput.PatternsBet), lt({
                    betPerPattern: mt,
                    patternsBet: gt
                })), A(), P(), R(), St = Tt.indexOf(mt + "") + 1, Ot = Ct.indexOf(gt + "") + 1, Y({
                    countWhiteSquare4Lines: Ot,
                    countWhiteSquare4LineBet: St
                }), n.lib._betControlDialog && n.lib._betControlDialog.show(!1), n.lib._betControlButton && ("BaseGame" === t.response.OutcomeDetail.NextStage ? (n.lib._betControlButton.show(!0), "MIN" === _t && Rt.enable(!0)) : (n.lib._betControlButton.show(!1), "MIN" === _t && (n.lib._betControlButton.show(!0), Rt.enable(!1)))), !1 === Bt ? n.lib._betPrompt && S() : n.lib._betPrompt && n.lib._betPrompt.show(!1), Ft = t
            }

            function d() {
                B(), K(Ft), "mobile" !== xt && "tablet" !== xt && "tabletmini" !== xt || M()
            }

            function f(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && (n.lib._betControlButton && (n.lib._betControlButton.show(!1), "MIN" === _t && (n.lib._betControlButton.show(!0), Rt.enable(!1))), n.lib._betPrompt && n.lib._betPrompt.show(!1), n.lib._betControlDialog && n.lib._betControlDialog.show(!1), N(), k(), jt = 0)
            }

            function p() {
                F(), e.publish("nextState")
            }

            function g() {
                n.lib._betControlButton && ("MIN" === _t ? (n.lib._betControlButton.show(!0), Rt.enable(!a.currentAutoSpinState())) : n.lib._betControlButton.show(!a.currentAutoSpinState())), Bt || a.currentAutoSpinState() || (j(), Y({
                    countWhiteSquare4Lines: Ot,
                    countWhiteSquare4LineBet: St
                }))
            }

            function m(t) {
                "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage && (jt = "true" === t.response.AwardCapOutcome.AwardCapExceeded ? At : Q(t.response.PrizeOutcome) + tt(t.response.PrizeOutcome))
            }

            function y(t) {
                "FreeSpin" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && (jt = "true" === t.response.AwardCapOutcome.AwardCapExceeded ? At : Q(t.response.PrizeOutcome) + tt(t.response.PrizeOutcome))
            }

            function b(t) {
                K(t)
            }

            function v(t) {
                "betPerPattern" === t.option && (St = Tt.indexOf(t.value) + 1, Y({
                    countWhiteSquare4LineBet: St
                }), e.publish("onBetControlButtonClicked"), R()), "patternsBet" === t.option && (Ot = Ct.indexOf(t.value) + 1, Y({
                    countWhiteSquare4Lines: Ot
                }), e.publish("onBetControlButtonClicked"), R(), V())
            }

            function _(t) {
                n.lib._betPrompt && n.lib._betPrompt.show(!1), n.lib._betControlButton && (n.lib._betControlButton.show(!1), "MIN" === _t && (n.lib._betControlButton.show(!0), Rt.enable(!1))), n.lib._betControlDialog && n.lib._betControlDialog.show(!1), I(), N(), jt = "true" === t.response.AwardCapOutcome.AwardCapExceeded ? At : Q(t.response.PrizeOutcome) + tt(t.response.PrizeOutcome), "desktop" === xt && "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && Z()
            }

            function x(t) {
                "desktop" === xt && "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && $()
            }

            function T(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && (n.lib._betControlButton && (n.lib._betControlButton.show(!0), "MIN" === _t && Rt.enable(!0)), j(), M())
            }

            function w(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && (n.lib._betControlButton && (n.lib._betControlButton.show(!1), "MIN" === _t && (n.lib._betControlButton.show(!0), Rt.enable(!1))), N(), I())
            }

            function S() {
                n.lib._betPromptMsg.setText(i.i18n.Game.betPrompt);
                var e = r.formatFloat(n.lib._betPromptMsg.getTextWidth()),
                    o = e + 40;
                n.lib._betPromptMsg.updateCurrentStyle({
                    _width: o
                });
                var a = new t.Graphics;
                if (a.beginFill(0, .75), "MIN" === _t) {
                    var s = Number(n.lib._betPromptBG._currentStyle._width) - o;
                    n.lib._betPromptMsg.updateCurrentStyle({
                        _left: s
                    }), a.x = s, a.lineStyle(3, 16763904)
                } else a.lineStyle(3, 16763904);
                a.drawRoundedRect(0, 0, o, n.lib._betPromptBG._currentStyle._height, 5), a.endFill(), n.lib._betPromptBG.pixiContainer.addChild(a), n.lib._betPrompt.show(!0), n.lib._betPromptAngle.show(!0), n.lib._betPromptMsg.show(!0), n.lib._betPromptBG.show(!0)
            }

            function C() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            type: "list",
                            name: "betPerPattern",
                            text: "Line Bet",
                            enabled: 1,
                            value: Tt[0],
                            valueText: Tt.map(function(t) {
                                return r.formatBalance(Number(t) * yt)
                            }),
                            values: Tt
                        }]
                    }
                })
            }

            function E() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            type: "list",
                            name: "patternsBet",
                            text: "Lines",
                            enabled: 1,
                            valueText: Ct,
                            values: Ct,
                            value: Ct[Et - 1]
                        }]
                    }
                })
            }

            function O() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            name: "stake",
                            text: "Stake",
                            type: "stake",
                            enabled: 0,
                            value: 0,
                            valueText: "0"
                        }]
                    }
                })
            }

            function P() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "patternsBet",
                        event: "change",
                        params: [gt]
                    }
                })
            }

            function A() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "betPerPattern",
                        event: "change",
                        params: [mt]
                    }
                })
            }

            function R() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "stake",
                        event: "change",
                        params: [ut(), r.formatBalance(ut())]
                    }
                })
            }

            function M() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "betPerPattern",
                        event: "enable",
                        params: [1]
                    }
                }), e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "patternsBet",
                        event: "enable",
                        params: [1]
                    }
                })
            }

            function I() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "betPerPattern",
                        event: "enable",
                        params: [0]
                    }
                }), e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "patternsBet",
                        event: "enable",
                        params: [0]
                    }
                })
            }

            function D() {
                I(), N()
            }

            function L() {
                M(), j()
            }

            function k() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.DeductStake",
                    data: ut()
                })
            }

            function F() {
                e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.PlayData",
                    data: {
                        ActionInput: {
                            Action: "play"
                        },
                        PatternSliderInput: {
                            BetPerPattern: mt,
                            PatternsBet: gt
                        }
                    }
                })
            }

            function B() {
                n.lib._betControlButton && (Rt.click(function() {
                    G()
                }), "BaseGame" === Ft.response.OutcomeDetail.NextStage && Rt.enable(!0)), Mt.click(function() {
                    U()
                }), It.click(function() {
                    W()
                }), Dt.click(function() {
                    H()
                }), Lt.click(function() {
                    X()
                }), n.lib._okayBtn && (kt.click(function() {
                    z()
                }), kt.enable(!0)), Bt && N()
            }

            function N() {
                bt = !0, Mt.enable(!1), It.enable(!1), Dt.enable(!1), Lt.enable(!1), I()
            }

            function j() {
                Bt || a.currentAutoSpinState() || (bt = !1, n.lib._betControlButton && Rt.enable(!0), q(St, wt, "LineBet"), q(Ot, Et, "Lines"), M())
            }

            function G() {
                if (n.lib._autoSpinSet && n.lib._autoSpinSet.show(!1), o.play("ControlsGeneric1", 15), n.lib._betPrompt && n.lib._betPrompt.show(!1), n.lib._betControlButton) {
                    if (-1 !== n.lib._betControlButton.getImage().indexOf("Inactive")) return;
                    if ("MIN" !== _t) n.lib._betControlButton.show(!1), e.publish("showButton", "");
                    else {
                        n.lib._betControlButton.show(!0), Rt.enable(!1);
                        var t = n.lib._actionButtonSet.sprites;
                        for (var r in t) t[r].show("_inactiveButton" === r)
                    }
                }
                n.lib._betControlDialog && n.lib._betControlDialog.show(!0), e.publish("onBetControlButtonClicked")
            }

            function U() {
                bt || St <= 1 || (St--, o.play("ControlsGeneric1", 15), e.publish("onBetControlButtonClicked"), Y({
                    countWhiteSquare4LineBet: St
                }), A(), R())
            }

            function W() {
                bt || St >= wt || (St++, o.play(St >= wt ? "ControlsMax" : "ControlsBetUp", 15), e.publish("onBetControlButtonClicked"), Y({
                    countWhiteSquare4LineBet: St
                }), A(), R())
            }

            function H() {
                bt || Ot <= 1 || (Ot--, o.play("ControlsGeneric2", 15), e.publish("onBetControlButtonClicked"), Y({
                    countWhiteSquare4Lines: Ot
                }), V(), P(), R())
            }

            function X() {
                bt || Ot >= Et || (Ot++, o.play(Ot >= Et ? "ControlsMax" : "ControlsGeneric2", 15), e.publish("onBetControlButtonClicked"), Y({
                    countWhiteSquare4Lines: Ot
                }), V(), P(), R())
            }

            function V() {
                if (!n.lib._betControlButton) {
                    var t = require("game/WinlineAnimController"),
                        e = t.getInfoWinline();
                    t.setWinlineStyle(e), e.show(!0);
                    for (var r = [], i = Number(Ct[Ot - 1]), o = 1; o <= i; o++) r.push(o);
                    e.drawSpaghetti(r)
                }
            }

            function z() {
                o.play("ControlsGeneric1", 15), n.lib._betControlDialog && n.lib._betControlDialog.show(!1), n.lib._betControlButton && (n.lib._betControlButton.show(!0), "MIN" === _t && Rt.enable(!0)), n.lib._actionButtonSet.show(!0), n.lib._spinButton.show(!0), n.lib._inactiveButton.show(!1), n.lib._skipButton.show(!1), n.lib._startButton.show(!1), n.lib._networkActivity.show(!1), e.publish("okayBtnClicked")
            }

            function Y(t) {
                1 === Et ? (n.lib._changeProgressBox4Lines && n.lib._changeProgressBox4Lines.show(!1), Dt.enable(!1), Lt.enable(!1), e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "patternsBet",
                        event: "enable",
                        params: [0]
                    }
                })) : t.countWhiteSquare4Lines && (q(Ot, Et, "Lines"), J(Ot, Et, "Lines"), gt = Number(Ct[Ot - 1]), lt({
                    patternsBet: gt
                })), 1 === wt ? (n.lib._changeProgressBox4LineBet && n.lib._changeProgressBox4LineBet.show(!1), Mt.enable(!1), It.enable(!1), e.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "betPerPattern",
                        event: "enable",
                        params: [0]
                    }
                })) : t.countWhiteSquare4LineBet && (q(St, wt, "LineBet"), J(St, wt, "LineBet"), mt = Number(Tt[St - 1]), lt({
                    betPerPattern: mt
                })), n.lib._linesValue.setText(gt + ""), n.lib._lineBetValue.setText(r.formatBalance(mt * yt));
                var i = r.formatBalance(ut());
                n.lib._totalBetValue.setText(i), n.lib._betValue.setText(i)
            }

            function q(t, e, n) {
                "LineBet" === n && (t <= 1 ? (It.enable(!0), Mt.enable(!1)) : t >= e ? (It.enable(!1), Mt.enable(!0)) : (It.enable(!0), Mt.enable(!0))), "Lines" === n && (t <= 1 ? (Lt.enable(!0), Dt.enable(!1)) : t >= e ? (Lt.enable(!1), Dt.enable(!0)) : (Lt.enable(!0), Dt.enable(!0)))
            }

            function J(t, e, i) {
                if (Nt) {
                    for (var o = 12 * e, a = r.formatFloat((r.formatFloat(n.lib["_changeProgressBox4" + i]._currentStyle._width) - o) / 2), s = [], u = 0; u < e; u++) s[u] = u < t ? "#FFFFFF" : "#535353";
                    for (var l = 0; l < e; l++) n.lib["_changeProgressBox4" + i].addChildFromData({
                        _id: "_squares4" + i + l,
                        _name: "_squares4_" + i + l,
                        _SPRITES: [],
                        _style: {
                            _width: "10",
                            _height: "10",
                            _top: "2",
                            _left: a + 12 * l + "",
                            _background: {
                                _color: s[l]
                            }
                        }
                    })
                }
            }

            function K(t) {
                "FreeSpin" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && $(), "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && $(), "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage && Z()
            }

            function $() {
                n.lib._minusBtn4LineBet.show(!1), n.lib._plusBtn4LineBet.show(!1), n.lib._minusBtn4Lines.show(!1), n.lib._plusBtn4Lines.show(!1)
            }

            function Z() {
                n.lib._minusBtn4LineBet.show(!0), n.lib._plusBtn4LineBet.show(!0), n.lib._minusBtn4Lines.show(!0), n.lib._plusBtn4Lines.show(!0)
            }

            function Q(t) {
                for (var e = 0; e < t.length; e++)
                    if ("FreeSpin.Total" === t[e]["@name"]) return r.formatFloat(t[e]["@totalPay"]) * yt
            }

            function tt(t) {
                for (var e = 0; e < t.length; e++)
                    if ("BaseGame.Scatter" === t[e]["@name"]) return r.formatFloat(t[e]["@totalPay"]) * yt
            }

            function et(t) {
                for (var e = 0, n = t.response.PrizeOutcome, r = 0; r < n.length; r++) "FreeSpin.Lines" === n[r]["@name"] && (e = Number(n[r]["@totalPay"]));
                return e *= yt
            }

            function nt(t) {
                for (var e = 0, n = t.response.PrizeOutcome, r = 0; r < n.length; r++) "FreeSpin.Scatter" === n[r]["@name"] && (e = Number(n[r]["@totalPay"]));
                return e *= yt
            }

            function rt(t) {
                for (var e = 0, n = t.response.PrizeOutcome, r = 0; r < n.length; r++) "BaseGame.Lines" === n[r]["@name"] && (e = Number(n[r]["@totalPay"]));
                return e *= yt
            }

            function it(t) {
                for (var e = 0, n = t.response.PrizeOutcome, r = 0; r < n.length; r++)
                    if ("Game.Total" === n[r]["@name"]) {
                        e = Number(n[r]["@totalPay"]);
                        break
                    }
                return e *= yt
            }

            function ot(t, e, n) {
                for (var r = 0, i = t.response.PrizeOutcome, o = 0; o < i.length; o++)
                    if (i[o]["@name"] === e + ".Lines" && i[o].Prize)
                        if (Array.isArray(i[o].Prize)) {
                            for (var a = 0; a < i[o].Prize.length; a++)
                                if (i[o].Prize[a]["@name"] === "Line " + n) {
                                    r = Number(i[o].Prize[a]["@totalPay"]);
                                    break
                                }
                        } else if (i[o].Prize["@name"] === "Line " + n) {
                    r = Number(i[o].Prize["@totalPay"]);
                    break
                }
                return r *= yt
            }

            function at() {
                return jt
            }

            function st(t) {
                return "true" === t.response.AwardCapOutcome.AwardCapExceeded ? At : it("FreeSpin" === t.response.OutcomeDetail.Stage ? t : t)
            }

            function ut() {
                return mt * gt * yt
            }

            function lt(t) {
                t.betPerPattern && (mt = Number(t.betPerPattern)), t.patternsBet && (gt = Number(t.patternsBet))
            }

            function ct() {
                return gt
            }

            function ht() {
                return mt
            }

            function dt() {
                return Number(Pt)
            }

            function ft() {
                return yt
            }

            function pt() {
                j()
            }
            var gt, mt, yt, bt, vt, _t, xt, Tt, wt, St, Ct, Et, Ot, Pt, At, Rt, Mt, It, Dt, Lt, kt, Ft, Bt = !1,
                Nt = !1,
                jt = 0;
            return e.subscribe("platformMsg/Kernel/System.Init", u), e.subscribe("platformMsg/ClientService/Game.Init", l), e.subscribe("onBeforeShowStage", h), e.subscribe("audioPlayer.playerSelectedWhenGameLaunch", d), e.subscribe("onBeforeRequest", f), e.subscribe("onMakeRequest", p), e.subscribe("onBeginNewGame", g), e.subscribe("onExitStage", m), e.subscribe("onEnterNextStage", b), e.subscribe("platformMsg/ConsoleService/Game.Control", v), e.subscribe("onStartGameInProgressStage", _), e.subscribe("onStartGameInProgressNextStage", x), e.subscribe("onResetNextStage", T), e.subscribe("onAbortNextStage", w), e.subscribe("AutoSpinController.autoSpinEnd", pt), e.subscribe("onInProgressStage", y), e.subscribe("unlockBetControlBtns", j), e.subscribe("lockBetControlBtns", N), e.subscribe("autoBtnClicked", D), e.subscribe("autoBtnCancel", L), {
                calculateTotalBet: ut,
                getTotalBonus: Q,
                getPerWinInBonusGame: et,
                getPerWinInBaseGame: rt,
                getAllLinePayOnBaseGame: it,
                getSingleLinePay: ot,
                getCurBonusPay: at,
                getCurBasePay: st,
                getCurPatternsBet: ct,
                getCurBetPerPattern: ht,
                getMaxCountSquareArray4Lines: dt,
                getCurDenomamount: ft,
                getPerWinInBonusGameScatter: nt,
                getBaseGameScatter: tt
            }
        }), define("game/RollUp", ["com/pixijs/pixi", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/audioPlayer/AudioPlayerProxy", "skbJet/component/currencyHelper/currencyHelper"], function(t, e, n, r, i) {
            function o(t) {
                l = t.serverConfig.presenttype, c = t.serverConfig.channel, u = t.serverConfig.paramGame.assetPack, f = {
                    fontSize: 75,
                    lineHeight: 100,
                    strokeThickness: 4
                }, "STD" === l ? "INT" !== c ? (p = 2 / 3, g = 2 / 3) : (p = 1, g = 1) : (p = 1 / 3, g = 1 / 3), h = {
                    fontFamily: "Arial",
                    fontSize: f.fontSize,
                    fontWeight: "bold",
                    fill: ["#FFFFFF"],
                    lineheight: f.lineHeight,
                    dropShadow: !0,
                    dropShadowColor: "rgba(50,29,4,0.2)",
                    dropShadowBlur: 5,
                    dropShadowDistance: 4
                }
            }

            function a(t, e) {
                this.spriteName = t, this.isPlaying = !1, this.timeCount = 0, this.totalTime = 0, this.startValue = 0, this.stopValue = 0, this.totalChange = 0, this.timeUnit = e || 1500, n.animMap["rollUpAnimation" + t] = this
            }

            function s(t, e, r) {
                t.text = i.formatBalance(r);
                for (var o = Number(t.scale.x); t.width >= .9 * n.lib[e]._currentStyle._width; o -= .02) t.scale.x = o, t.scale.y = o
            }
            var u, l, c, h, d, f = {},
                p = 1,
                g = 1;
            return a.prototype.start = function(t, e, n) {
                this.isPlaying = !0, this.timeCount = 0, this.startValue = t, this.stopValue = e, this.totalChange = e - t, this.totalChange <= 1 ? this.totalTime = this.timeUnit : this.totalTime = Math.floor((Math.log(this.totalChange) + 1) * this.timeUnit), n && (n.maxTime && n.maxTime < this.totalTime && (this.totalTime = n.maxTime), this.rollUpTermSound = n.rollUpTermSound, n.rollUpSoundChannel || 0 === n.rollUpSoundChannel ? this.rollUpSoundChannel = n.rollUpSoundChannel : this.rollUpSoundChannel = "rollUpSound", n.rollUpSound && this.totalChange > 0 && r.play(n.rollUpSound, this.rollUpSoundChannel, !0))
            }, a.prototype.stop = function() {
                if (!1 !== this.isPlaying) {
                    var o = this;
                    o.isPlaying = !1;
                    var a = o.stopValue,
                        u = i.formatBalance(a);
                    "_bigWinValue" === o.spriteName ? (d = new t.Text, d.style = h, d.scale.x = p, d.scale.y = g, s(d, o.spriteName, o.stopValue), d.text = u, d.x = (i.formatFloat(n.lib[o.spriteName]._currentStyle._width) - i.formatFloat(d.width)) / 2, d.y = (i.formatFloat(n.lib[o.spriteName]._currentStyle._height) - i.formatFloat(d.height)) / 2, n.lib[o.spriteName].setText(""), n.lib[o.spriteName].pixiContainer.removeChildren(), n.lib[o.spriteName].pixiContainer.addChild(d)) : n.lib[o.spriteName].setText(u), this.rollUpTermSound && this.totalChange > 0 && r.play(this.rollUpTermSound, this.rollUpSoundChannel), e.publish("RollUp.Stopped", {
                        spriteName: o.spriteName,
                        value: a,
                        text: u
                    })
                }
            }, a.prototype.updateStyleIfPlaying = function(r) {
                var o = this;
                if (o.isPlaying) {
                    o.timeCount += r;
                    var a = this.startValue + i.formatFloat(o.timeCount / o.totalTime * o.totalChange);
                    if (a >= o.stopValue) return void o.stop();
                    var u = i.formatBalance(a);
                    "_bigWinValue" === o.spriteName ? (d = new t.Text, d.style = h, d.scale.x = p, d.scale.y = g, s(d, o.spriteName, o.stopValue), d.text = u, d.x = (i.formatFloat(n.lib[o.spriteName]._currentStyle._width) - i.formatFloat(d.width)) / 2, d.y = (i.formatFloat(n.lib[o.spriteName]._currentStyle._height) - i.formatFloat(d.height)) / 2, n.lib[o.spriteName].setText(""), n.lib[o.spriteName].pixiContainer.removeChildren(), n.lib[o.spriteName].pixiContainer.addChild(d)) : n.lib[o.spriteName].setText(u), e.publish("RollUp.Update", {
                        spriteName: o.spriteName,
                        value: a,
                        text: u
                    })
                }
            }, e.subscribe("platformMsg/Kernel/System.Init", o), a
        }), define("skbJet/componentCRDC/pixiCoinShower/PixiCoinShower", ["com/pixijs/pixi", "skbJet/component/gladPixiRenderer/gladPixiRenderer"], function(t, e) {
            function n(t) {
                c = this, t.parentContain && t.frames && (this.options = t, this.options.popRateScope = t.popRateScope || [6, 8], this.options.coinPerTime = t.coinPerTime || 3, this.options.coinAnimatSpeed = t.coinAnimatSpeed || [.3, .5], this.options.rotation = t.rotation || [0, 0], this.options.visibleRange = t.visibleRange || [0, document.getElementsByTagName("canvas")[0].width, 0, document.getElementsByTagName("canvas")[0].height], h = (this.options.visibleRange[1] - this.options.visibleRange[0]) / 960, this.options.Sx = t.Sx || [-10 * h, 10 * h], this.options.Sy = t.Sy || [-15 * h, -10 * h], this.options.g = t.g || .5 * h, this.options.centralScope = t.centralScope || .33, this.options.centralEnhanced = t.centralEnhanced || .33, this.options.initScale = t.initScale || .15, this.options.scaleChangeSpeed = t.scaleChangeSpeed || .007, this.options.popPosition = t.popPosition || [.45 * (this.options.visibleRange[1] - this.options.visibleRange[0]), .2 * (this.options.visibleRange[3] - this.options.visibleRange[2]), .55 * (this.options.visibleRange[1] - this.options.visibleRange[0]), .3 * (this.options.visibleRange[3] - this.options.visibleRange[2])], this.isPlaying = !1, e.getTicker().add(function() {
                    if (c.isPlaying)
                        for (var t = f; null !== t.next;)
                            if (o(t.next.value)) l(t.next.value), t = t.next;
                            else {
                                t.next.value.visible = !1;
                                var e = t.next;
                                t.next = e.next, e.next = d.next, d.next = e
                            }
                }))
            }

            function r(t) {
                this.next = null, this.value = t
            }

            function i(t, e) {
                return t + Math.random() * (e - t)
            }

            function o(t) {
                return t.x > c.options.visibleRange[0] && t.x < c.options.visibleRange[1] && t.y < c.options.visibleRange[3]
            }

            function a(t) {
                t.x = i(c.options.popPosition[0], c.options.popPosition[2]), t.y = i(c.options.popPosition[1], c.options.popPosition[3]), Math.random() > c.options.centralEnhanced ? t.Sx = i(c.options.Sx[0], c.options.Sx[1]) : t.Sx = i(c.options.Sx[0], c.options.Sx[1]) * c.options.centralScope, t.Sy = i(c.options.Sy[0], c.options.Sy[1]), t.visible = !0, t.scale.x = c.options.initScale * h, t.scale.y = c.options.initScale * h
            }

            function s() {
                var e = new t.extras.AnimatedSprite(c.options.frames);
                return e.pivot.x = e.width / 2, e.pivot.y = e.height / 2, e.visible = !1, e.animationSpeed = i(c.options.coinAnimatSpeed[0], c.options.coinAnimatSpeed[1]), e.rotation = i(c.options.rotation[0], c.options.rotation[1]), e.play(), c.options.parentContain.addChild(e), new r(e)
            }

            function u() {
                var t = 1e3 / i(c.options.popRateScope[0], c.options.popRateScope[1]);
                c.st = e.getTimer().setTimeout(u, t);
                for (var n = 0; n < c.options.coinPerTime; n++) {
                    var r;
                    null !== d.next ? (r = d.next, d.next = d.next.next) : r = s(), a(r.value), r.next = f.next, f.next = r
                }
            }

            function l(t) {
                t.scale.x += .007 * h, t.scale.y += .007 * h, t.x += t.Sx, t.Sy += c.options.g, t.y += t.Sy
            }
            var c, h, d, f;
            return d = new r, f = new r, n.prototype.start = function() {
                c.isPlaying = !0, u()
            }, n.prototype.stop = function() {
                function t() {
                    null === f.next ? c.isPlaying = !1 : e.getTimer().setTimeout(t, 1e3)
                }!1 !== c.isPlaying && (e.getTimer().clearTimeout(c.st), t())
            }, n
        }), define("game/BigWinController", ["com/pixijs/pixi", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/audioPlayer/AudioPlayerProxy", "skbJet/component/currencyHelper/currencyHelper", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "game/BetController", "game/RollUp", "skbJet/componentCRDC/pixiCoinShower/PixiCoinShower", "skbJet/component/gladPixiRenderer/Sprite"], function(t, e, n, r, i, o, a, s, u, l) {
            function c(t) {
                O = t.serverConfig.presenttype, P = t.serverConfig.channel, E = t.serverConfig.paramGame.assetPack
            }

            function h(e) {
                w = e.PaytableResponse.AwardCapInfo.CurrencyCap.AwardCap;
                for (var r = [], i = 0; i < l.getSpriteSheetAnimationFrameArray("bigWinCoinAnim").length; i++) r.push(t.Texture.fromFrame(l.getSpriteSheetAnimationFrameArray("bigWinCoinAnim")[i] + ".png"));
                A = new u({
                    parentContain: n.lib._bigWinContainer.pixiContainer,
                    frames: r,
                    ticker: n.getTicker(),
                    visibleRange: [0, n.lib._bigWinDim._currentStyle._width, 0, n.lib._bigWinDim._currentStyle._height],
                    initScale: E.indexOf("mini") >= 0 ? .8 : .6
                })
            }

            function d(t) {
                if ("true" === t.response.AwardCapOutcome.AwardCapExceeded) S = "maxwin";
                else if ("BaseGame" === t.response.OutcomeDetail.NextStage) {
                    var e = a.getCurBasePay(t),
                        n = a.calculateTotalBet();
                    S = e / n >= 10 ? "bigwin" : e <= 0 ? "nowin" : "win"
                }
            }

            function f(t) {
                n.lib._bigWinLayer.show(!0), M.start(0, t, {
                    rollUpSound: "BigWinRollup",
                    rollUpTermSound: "BigWinRollupTerm",
                    rollUpSoundChannel: 4
                }), n.animMap._bigWinShow.play(), n.getTimer().setTimeout(function() {
                    n.lib._bigWinImg.gotoAndPlay("bigWin", .2, !0)
                }, 500), r.play("CoinShower", 5, !0), A.start()
            }

            function p() {
                n.lib._bigWinImg.stopPlay(), n.animMap._bigWinHide.play(), n.getTimer().setTimeout(function() {
                    n.lib._bigWinLayer.show(!1)
                }, 300), A.stop(), r.stopChannel(5)
            }

            function g() {
                var e = {
                        fontSize: 100,
                        lineHeight: 80,
                        strokeThickness: 4
                    },
                    r = 1,
                    a = 1;
                "STD" === O ? "INT" !== P ? (r = 2 / 3, a = 2 / 3) : (r = 1, a = 1) : (r = 1 / 3, a = 1 / 3);
                var s = {
                        fontFamily: "Arial",
                        fontSize: e.fontSize,
                        fontWeight: "bold",
                        fill: ["#FEDF0C", "#FFFF1E", "#FEDF0C"],
                        stroke: "#603F00",
                        strokeThickness: e.strokeThickness,
                        lineheight: e.lineHeight,
                        dropShadow: !0,
                        dropShadowColor: "rgba(50,29,4,0.2)",
                        dropShadowBlur: 5,
                        dropShadowDistance: 4
                    },
                    u = new t.Text;
                u.text = o.i18n.Game.bigWin, u.style = s, u.scale.x = r, u.scale.y = a, u.x = i.formatFloat((i.formatFloat(n.lib._bigWinText._currentStyle._width) - i.formatFloat(u.width)) / 2), n.lib._bigWinText.setText(""), n.lib._bigWinText.pixiContainer.removeChildren(), n.lib._bigWinText.pixiContainer.addChild(u)
            }

            function m() {
                g(), n.lib._bigWinLayer.show(!1)
            }

            function y(t) {
                C = !1, d(t);
                var r = a.getCurBasePay(t);
                switch (S) {
                    case "nowin":
                        e.publish("nextState");
                        break;
                    case "win":
                        break;
                    case "bigwin":
                        f(r);
                        break;
                    case "maxwin":
                        e.publish("showMaxAwardDialog", {
                            maxWinNum: w,
                            stage: R,
                            data: t
                        }), n.lib._winValue.setText(i.formatBalance(w))
                }
            }

            function b(t) {
                R = t.response.OutcomeDetail.NextStage
            }

            function v() {
                C || ("bigwin" === S && p(), C = !0)
            }

            function _() {}

            function x(t) {
                R = t.response.OutcomeDetail.Stage
            }

            function T() {
                return S
            }
            var w, S, C, E, O, P, A, R, M = new s("_bigWinValue");
            return e.subscribe("platformMsg/Kernel/System.Init", c), e.subscribe("onBeforeShowStage", m), e.subscribe("onEnterNextStage", b), e.subscribe("beginBig", y), e.subscribe("onResolveStage", x), e.subscribe("platformMsg/ClientService/Game.Init", h), e.subscribe("RollUp.Stopped", v), e.subscribe("onBetControlButtonClicked", _), {
                bigwinRollUp: M,
                getWinType: T
            }
        }), define("skbJet/component/phoenixReel/animationLayer", ["com/pixijs/pixi"], function(t) {
            return function(e, n) {
                function r(e) {
                    var n = new t.extras.AnimatedSprite([t.Texture.EMPTY]);
                    return n.visible = !1, n.zIndex = 1, n
                }

                function i(r, i) {
                    C[r] = [];
                    for (var a = -1; a < e.options.reels[r].symbolCount + 1; a++) {
                        var s = S[r][a + 1],
                            u = i.spriteRefs[a + 1];
                        u ? (Array.isArray(n[u].textures) ? (s.textures = n[u].textures, s.texture = s.textures[0], s.visible = !0, s.gotoAndStop(0), s.loop = !0) : (s.visible = !0, s.textures = [n[u].textures], s.texture = s.textures[0], s.gotoAndStop(0), s.loop = !0), s.position.x = s.position.rx + n[u].xOffset, s.position.y = s.position.ry + n[u].yOffset, s.zIndex = n[u].zOffset) : s.visible = !1, C[r].push(u), a >= 0 && a < e.options.reels[r].symbolCount && (E[r][a].textures = [t.Texture.EMPTY], E[r][a].texture = t.Texture.EMPTY, E[r][a].visible = !1, E[r][a].gotoAndStop(0), E[r][a].loop = !0)
                    }
                    C[r].pop(), C[r].shift(), o(T), o(w)
                }

                function o(t) {
                    t.children.sort(function(t, e) {
                        return t.zIndex - e.zIndex || e.x - t.x || t.y - e.y
                    })
                }

                function a(t, e) {
                    for (var n = [], r = 0; r < e; r++) n = n.concat(t);
                    return n
                }

                function s(e) {
                    return e ? Array.isArray(e) ? e.map(function(e) {
                        return e ? t.utils.TextureCache[e] : t.Texture.EMPTY
                    }) : [t.utils.TextureCache[e]] : [t.Texture.EMPTY]
                }

                function u(t) {
                    var e = !0;
                    return t.forEach(function(t) {
                        t.hasOwnProperty("completed") && !t.completed && (e = t.completed)
                    }), e
                }

                function l(t, e, n, r, i, o, a) {
                    var s = {},
                        u = {};
                    return t instanceof Object ? (s = t, u = e) : (s = {
                        location: t,
                        textures: e,
                        animationSpeed: n,
                        layer: r,
                        position: i,
                        playmode: o
                    }, u = a), c(s, u)
                }

                function c(t, e) {
                    N.push({
                        location: t.location,
                        layer: t.layer
                    });
                    var n;
                    return 0 === t.layer ? n = O[A[t.location]] : 1 === t.layer && (n = P[A[t.location]]), n && (t.textures ? (n.visible = !0, n.textures = s(t.playmode && t.playmode.playCount ? a(t.textures, t.playmode.playCount) : t.textures), n.texture = n.textures[0], n.position.x = n.position.rx, n.position.y = n.position.ry, t.position && (t.position.x && (n.position.x += t.position.x), t.position.y && (n.position.y += t.position.y)), n.animationSpeed = t.animationSpeed, n.loop = !0, t.playmode && (!1 === t.playmode.loop || t.playmode.hasOwnProperty("playCount")) && (n.loop = !1), n.gotoAndStop(0), e && (e.onComplete && (n.onComplete = e.onComplete), e.onFrameChange && (n.onFrameChange = e.onFrameChange))) : n.visible = !1), {
                        gotoAndPlay: function(t) {
                            n.gotoAndPlay(t)
                        },
                        gotoAndStop: function(t) {
                            n.gotoAndStop(t)
                        }
                    }
                }

                function h(t, e) {
                    return t.map(function(n) {
                        return n.completed = !1, l(n, {
                            onComplete: function() {
                                n.completed = !0, u(t) && e && e.onComplete && e.onComplete()
                            }
                        })
                    })
                }

                function d(t) {
                    return 0 === t ? T : 1 === t ? w : void 0
                }

                function f(t, e) {
                    return 0 === e ? O[A[t]] : 1 === e ? P[A[t]] : void 0
                }

                function p() {
                    N.forEach(function(t) {
                        var e;
                        0 === t.layer ? e = O[A[t.location]] : 1 === t.layer && (e = P[A[t.location]]), e.gotoAndPlay(0)
                    })
                }

                function g() {
                    N.forEach(function(t) {
                        var e;
                        0 === t.layer ? e = O[A[t.location]] : 1 === t.layer && (e = P[A[t.location]]), e.gotoAndStop(0), e.loop = !0, e.onFrameChange = void 0, e.onComplete = void 0
                    })
                }

                function m(r) {
                    if (g(), !N || 0 !== N.length) {
                        for (var i = 0; i < e.options.reels.length; i++)
                            for (var o = 0; o < e.options.reels[i].symbolCount; o++) {
                                if (!r || 0 === r) {
                                    var a = S[i][o + 1],
                                        s = C[i][o];
                                    Array.isArray(n[s].textures) ? (a.textures = n[s].textures, a.texture = a.textures[0], a.gotoAndStop(0), a.loop = !0) : (a.textures = [n[s].textures], a.texture = a.textures[0], a.gotoAndStop(0), a.loop = !0), a.onFrameChange = void 0, a.onComplete = void 0, a.visible = !0, a.position.x = a.position.rx + n[s].xOffset, a.position.y = a.position.ry + n[s].yOffset, a.zIndex = n[s].zOffset
                                }
                                0 !== r && (E[i][o].textures = [t.Texture.EMPTY], E[i][o].texture = t.Texture.EMPTY, E[i][o].gotoAndStop(0), E[i][o].loop = !0, E[i][o].onFrameChange = void 0, E[i][o].onComplete = void 0)
                            }
                        N = []
                    }
                }

                function y() {
                    if (g(), !N || 0 !== N.length) {
                        for (var n = 0; n < e.options.reels.length; n++) {
                            for (var r = 0; r < S[n].length; r++) S[n][r].textures = [t.Texture.EMPTY], S[n][r].texture = t.Texture.EMPTY, S[n][r].gotoAndStop(0), S[n][r].loop = !0, S[n][r].onFrameChange = void 0, S[n][r].onComplete = void 0;
                            for (r = 0; r < E[n].length; r++) E[n][r].textures = [t.Texture.EMPTY], E[n][r].texture = t.Texture.EMPTY, E[n][r].gotoAndStop(0), E[n][r].loop = !0, E[n][r].onFrameChange = void 0, E[n][r].onComplete = void 0
                        }
                        N = []
                    }
                }

                function b(t) {
                    x.visible = !0;
                    for (var n = -1; n < e.options.reels[t].symbolCount + 1; n++) {
                        S[t][n + 1].visible = !0, n >= 0 && n < e.options.reels[t].symbolCount && (E[t][n].visible = !0)
                    }
                }

                function v(t) {
                    for (var n = -1; n < e.options.reels[t].symbolCount + 1; n++) {
                        S[t][n + 1].visible = !1, n >= 0 && n < e.options.reels[t].symbolCount && (E[t][n].visible = !1)
                    }
                }

                function _() {
                    return {
                        startAnimating: p,
                        stopAnimating: g,
                        resetAnimations: m,
                        clearAnimations: y,
                        setCellAnimation: l,
                        setCellAnimations: h,
                        getLayerContainer: d,
                        getCellHandle: f,
                        getContainer: function() {
                            return x
                        }
                    }
                }
                var x = new t.Container,
                    T = new t.Container,
                    w = new t.Container;
                x.addChild(T), x.addChild(w);
                var S = [],
                    C = [],
                    E = [],
                    O = [],
                    P = [],
                    A = e.locationsMap.reduce(function(t, e, n) {
                        return t[e] = n, t
                    }, {});
                t.extras.AnimatedSprite || (t.extras.AnimatedSprite = t.extras.MovieClip);
                for (var R, M = new t.Graphics, I = !0, D = 0; D < e.options.reels.length; D++) 0 !== e.options.reels[D].y && (I = !1);
                if (e.options.reels.length > 1 && I)
                    for (D = 1; D < e.options.reels.length; D++) e.options.reels[D - 1].symbolCount != e.options.reels[D].symbolCount && (I = !1);
                if (e.options.clip) e.options.clip.forEach(function(t) {
                    M.beginFill(), M.drawRect(t.x, t.y, t.w, t.h), M.endFill()
                });
                else if (I) M.beginFill(), M.drawRect(e.options.pos.x + e.options.reels[0].x, e.options.pos.y + e.options.reels[0].y, (e.symbolSlotWidth + e.symbolSpacingW) * e.options.reels.length - e.symbolSpacingW, (e.symbolSlotHeight + e.symbolSpacingH) * e.options.reels[0].symbolCount - e.symbolSpacingH), M.endFill();
                else {
                    for (M.beginFill(), D = 0; D < e.options.reels.length; D++) M.drawRect(e.options.pos.x + e.options.reels[D].x, e.options.pos.y + e.options.reels[D].y, e.symbolSlotWidth + e.symbolSpacingW, (e.symbolSlotHeight + e.symbolSpacingH) * e.options.reels[D].symbolCount);
                    M.endFill()
                }
                for (M.zIndex = 1e3, T.addChild(M), R = M, T.mask = R, D = 0; D < e.options.reels.length; D++) {
                    for (var L = [], k = [], F = -1; F < e.options.reels[D].symbolCount + 1; F++) {
                        var B = r(D);
                        B.position.x = e.options.pos.x + e.options.reels[D].x, B.position.y = e.options.pos.y + e.options.reels[D].y + e.symbolSlotHeight * F, B.position.rx = B.position.x, B.position.ry = B.position.y, L.push(B), F >= 0 && F < e.options.reels[D].symbolCount && (O.push(B), B = r(D), B.position.x = e.options.pos.x + e.options.reels[D].x, B.position.y = e.options.pos.y + e.options.reels[D].y + e.symbolSlotHeight * F, B.position.rx = B.position.x, B.position.ry = B.position.y, P.push(B), k.push(B))
                    }
                    S.push(L), C.push([]), E.push(k)
                }
                for (D = 0; D < e.options.reels.length; D++) S[D].forEach(function(t) {
                    T.addChild(t)
                });
                for (D = 0; D < e.options.reels.length; D++) E[D].forEach(function(t) {
                    w.addChild(t)
                });
                var N = [];
                return {
                    setViewData: i,
                    show: b,
                    hide: v,
                    startAnimating: p,
                    stopAnimating: g,
                    resetAnimations: m,
                    clearAnimations: y,
                    setCellAnimation: l,
                    setCellAnimations: h,
                    getLayerContainer: d,
                    getCellHandle: f,
                    getContainer: function() {
                        return x
                    },
                    getLimitedAccess: _
                }
            }
        }), define("skbJet/component/phoenixReel/winline", ["com/pixijs/pixi", "skbJet/component/phoenixReel/animationLayer"], function(t, e) {
            return function(n, r, i) {
                function o() {
                    1 !== H && (j.cacheAsBitmap = !0, j.alpha = H)
                }

                function a() {}

                function s(t, e, n, r) {
                    if (!Z || !Z[t]) {
                        q = !0;
                        var i = nt[t];
                        j.lineStyle(n, e, r), n = Math.max(X, V), l(i.x, i.y, i.width, i.height)
                    }
                }

                function u(t, e, n, r) {
                    if (!Z || !Z[t]) {
                        q = !0;
                        var i = nt[t];
                        j.lineStyle(n, e, r), n = Math.max(X, V), l(i.x, i.y, i.width, i.height)
                    }
                }

                function l(t, e, n, r) {
                    "round" === Y ? j.drawRoundedRect(t, e, n, r, Math.max(n, r) / 16) : j.drawRect(t, e, n, r)
                }

                function c() {
                    var t = Math.max(V, X);
                    z && (t -= z);
                    var e = [];
                    return r.options.reels.forEach(function(n) {
                        for (var i = 0; i < n.symbolCount; i++) {
                            var o = {};
                            o.x = r.options.pos.x + n.x + t / 2, o.y = r.options.pos.y + n.y + (r.symbolSlotHeight + r.symbolSpacingH) * i + t / 2, o.width = r.symbolSlotWidth - t, o.height = r.symbolSlotHeight - t, e.push(o)
                        }
                    }), e
                }

                function h(t, e, n, r, i, o) {
                    return Math.abs(n - t) <= i / 2 && Math.abs(r - e) <= o / 2
                }

                function d(t) {
                    it = t.reduce(function(t, e, n) {
                        return t[e] = n, t
                    }, {})
                }

                function f(t) {
                    return ((16711680 & t) / 2 & 16711680) + ((65280 & t) / 2 & 65280) + ((255 & t) / 2 & 255)
                }

                function p(t) {
                    rt.winlines.forEach(function(t) {
                        var e, n, i, o, a, s, u, l, c;
                        t.hasOwnProperty("backgroundColour") || (t.backgroundColour = 0), t.x = [], t.y = [], t.leftx = [], t.lefty = [], t.rightx = [], t.righty = [],
                            t.leftToRight || (t.locations = t.locations.reverse());
                        for (var d, f = rt.leftx + r.options.pos.x, p = 0; p < t.locations.length; p++) {
                            if (u = nt[t.locations[p]], l = u.x + u.width / 2, c = u.y + u.height / 2 + t.yOffset, t.x.push(l), t.y.push(c), d || (d = c), a = f - l, 0 === (s = d - c)) t.leftx.push(u.x), t.lefty.push(c);
                            else if (Math.abs(a) > Math.abs(s)) {
                                for (e = s / a, i = t.x[p], o = t.y[p]; h(i, o, l, c - t.yOffset, u.width, u.height);) i -= 1, o -= e;
                                i += 1, o += e, t.leftx.push(i), t.lefty.push(o)
                            } else {
                                for (e = a / s, i = t.x[p], o = t.y[p], n = s < 0 ? -1 : 1; h(i, o, l, c - t.yOffset, u.width, u.height);) i -= Math.abs(e), o += n;
                                i += Math.abs(e), o -= n, t.leftx.push(i), t.lefty.push(o)
                            }
                            f = l, d = c
                        }
                        for (p = 0; p < t.locations.length - 1; p++)
                            if (a = t.x[p] - t.x[p + 1], s = t.y[p] - t.y[p + 1], u = nt[t.locations[p]], 0 === s) t.rightx.push(u.x + u.width), t.righty.push(t.y[p]);
                            else if (Math.abs(a) > Math.abs(s)) {
                            for (e = s / a, i = t.x[p], o = t.y[p]; h(i, o, t.x[p], t.y[p] - t.yOffset, u.width, u.height);) i += 1, o += e;
                            i -= 1, o -= e, t.rightx.push(i), t.righty.push(o)
                        } else {
                            for (e = a / s, i = t.x[p], o = t.y[p], n = s < 0 ? 1 : -1; h(i, o, t.x[p], t.y[p] - t.yOffset, u.width, u.height);) i += Math.abs(e), o += n;
                            i -= Math.abs(e), o -= n, t.rightx.push(i), t.righty.push(o)
                        }
                        t.rightx.push(t.x[t.locations.length - 1] + nt[t.locations.length - 1].width / 2), t.righty.push(t.y[t.locations.length - 1]), t.leftToRight || (t.locations = t.locations.reverse(), t.x = t.x.reverse(), t.y = t.y.reverse(), t.leftx = t.leftx.reverse(), t.lefty = t.lefty.reverse(), t.rightx = t.rightx.reverse(), t.righty = t.righty.reverse())
                    }), t || (rt.leftx += r.options.pos.x, rt.rightx += r.options.pos.x)
                }

                function g(t, e, n, r, i) {
                    q = !0, j.moveTo(rt.leftx, t.y[0]), m(rt.leftx, t.y[0], n, r, i), j.moveTo(rt.leftx, t.y[0]);
                    for (var o = 0; o < t.locations.length; o++) e > o ? (j.lineTo(t.leftx[o], t.lefty[o]), j.moveTo(t.rightx[o], t.righty[o])) : j.lineTo(t.x[o], t.y[o]);
                    var a = rt.shortenright ? rt.shortenright : 0;
                    (e < t.locations.length || 0 === a) && (j.lineTo(rt.rightx - a, t.y[t.locations.length - 1]), m(rt.rightx - a, t.y[t.locations.length - 1], n, r, i))
                }

                function m(t, e, n, r, i) {
                    if (q = !0, "round" === ot) j.lineStyle(n / 2, i, r), j.drawCircle(t, e, 1), j.lineStyle(n, i, r);
                    else {
                        if ("square" !== ot) return;
                        j.moveTo(t, e), j.lineTo(t, e)
                    }
                }

                function y(t, e, n, r, i) {
                    q = !0, j.moveTo(rt.rightx + (ot ? n / 2 : 0), t.y[0]), m(rt.rightx + (ot ? n / 2 : 0), t.y[0], n, r, i), j.moveTo(rt.rightx + (ot ? n / 2 : 0), t.y[0]);
                    for (var o = 0; o < t.locations.length; o++) e > t.locations.length - 1 - o ? (j.lineTo(t.rightx[o], t.righty[o]), j.moveTo(t.leftx[o], t.lefty[o])) : j.lineTo(t.x[o], t.y[o]);
                    var a = rt.shortenleft ? rt.shortenleft : 0;
                    0 !== e && 0 !== a || (j.lineTo(rt.leftx + a - (ot ? n / 2 : 0), t.y[t.locations.length - 1]), m(rt.leftx - n / 2 + a, t.y[t.locations.length - 1], n, r, i))
                }

                function b(t, e, n, r, i) {
                    q = !0;
                    var o = rt.winlines[t];
                    j.lineStyle(n, i || o.backgroundColour, r), rt.winlines[t].leftToRight ? g(o, e, n, r, i || o.backgroundColour) : y(o, e, n, r, i || o.backgroundColour)
                }

                function v(t, e, n, r, i) {
                    q = !0;
                    var o = rt.winlines[t];
                    j.lineStyle(n, i || o.colour, r), rt.winlines[t].leftToRight ? g(o, e, n, r, i || o.colour) : y(o, e, n, r, i || o.colour)
                }

                function _(t) {
                    et(), q = !0, t.forEach(function(t) {
                        b(t - 1, 0, V, W), v(t - 1, 0, X, W)
                    }), o()
                }

                function x(t, e) {
                    et(), q = !0;
                    var n = t - 1;
                    b(n, e, V, W);
                    for (var r, i = 0; i < e; i++) r = rt.winlines[n].leftToRight ? i : rt.winlines[n].locations.length - 1 - i, s(rt.winlines[n].locations[r], rt.winlines[n].backgroundColour, V, W);
                    for (v(n, e, X, W), i = 0; i < e; i++) r = rt.winlines[n].leftToRight ? i : rt.winlines[n].locations.length - 1 - i, u(rt.winlines[n].locations[r], rt.winlines[n].colour, X, W);
                    o()
                }

                function T(t) {
                    var e = parseInt(t["@name"].substring(5)) - 1,
                        n = t.Cell.map(function(t) {
                            return it[t["@name"]]
                        });
                    et(), q = !0, b(e, n.length, V, W);
                    for (var r = 0; r < n.length; r++) s(n[r], rt.winlines[e].backgroundColour, V, W);
                    for (v(e, n.length, X, W), r = 0; r < n.length; r++) u(n[r], rt.winlines[e].colour, X, W);
                    o()
                }

                function w(e, n) {
                    var r = parseInt(e["@name"].substring(5)) - 1,
                        i = e.Cell.map(function(t) {
                            return it[t["@name"]]
                        });
                    n.opacity && (n.opacity = parseFloat(n.opacity)), n.height && (n.height = parseInt(n.height)), et(), q = !0;
                    var o, a;
                    b(r, i.length, V, W);
                    for (var l = 0; l < i.length; l++) s(i[l], rt.winlines[r].backgroundColour, V, W), n && n.location === e.Cell[l]["@name"] && (o = nt[i[l]], a = V, j.moveTo(o.x, o.y + (o.height - n.height)), j.lineTo(o.x + o.width, o.y + (o.height - n.height)), n.hasOwnProperty("backgroundColor") && (j.lineStyle(1, n.backgroundColor, W), j.beginFill(n.backgroundColor, n.hasOwnProperty("opacity") ? n.opacity : W), j.drawRect(o.x + a / 2, o.y + (o.height - parseInt(n.height)), o.width - a, parseInt(n.height) - a / 2), j.endFill()));
                    for (v(r, i.length, X, W), l = 0; l < i.length; l++) u(i[l], rt.winlines[r].colour, X, W), n && n.location === e.Cell[l]["@name"] && (o = nt[i[l]], a = X, j.moveTo(o.x, o.y + (o.height - n.height)), j.lineTo(o.x + o.width, o.y + (o.height - n.height)), n.displayText && n.textStyle && (G && U.removeChild(G), G = new t.Text(n.displayText, n.textStyle), G.x = o.x + 2 * a, G.y = o.y + (o.height - n.height / 2 - G.height / 2), "center" === n.textStyle.align && (G.x = o.x + o.width / 2 - G.width / 2), U.addChild(G)))
                }

                function S(t, e, n) {
                    q = !0, t.forEach(function(t) {
                        s(t, n || 0, V, W), u(t, e, X, W)
                    })
                }

                function C(t, e, n) {
                    q = !0, t.forEach(function(t) {
                        void 0 !== it[t] && (s(it[t], n || 0, V, W), u(it[t], e, X, W))
                    })
                }

                function E(e, n, r, i) {
                    q = !0, e.forEach(function(e) {
                        if (void 0 !== it[e]) {
                            var o, a = V;
                            s(it[e], r, a, W), i && i.location === e && (o = nt[it[e]], j.moveTo(o.x, o.y + (o.height - i.height)), j.lineTo(o.x + o.width, o.y + (o.height - i.height)), i.hasOwnProperty("backgroundColor") && (j.lineStyle(1, i.backgroundColor, W), j.beginFill(i.backgroundColor, i.hasOwnProperty("opacity") ? i.opacity : W), j.drawRect(o.x + a / 2, o.y + (o.height - parseInt(i.height)), o.width - a, parseInt(i.height) - a / 2), j.endFill())), a = X, u(it[e], n, a, W), i && i.location === e && (o = nt[it[e]], j.moveTo(o.x + a / 2, o.y + (o.height - i.height)), j.lineTo(o.x + a / 2 + (o.width - a), o.y + (o.height - i.height)), i.displayText && i.textStyle && (G && U.removeChild(G), G = new t.Text(i.displayText, i.textStyle), G.x = o.x + 2 * a, G.y = o.y + (o.height - i.height / 2 - G.height / 2), "center" === i.textStyle.align && (G.x = o.x + o.width / 2 - G.width / 2), U.addChild(G)))
                        }
                    }), o()
                }

                function O(t) {
                    j && (j.visible = t), G && (G.visible = t)
                }

                function P(t) {
                    var e = t - 1,
                        n = {};
                    return n.lineData = rt.winlines[e], n.boxData = [], rt.winlines[e].locations.forEach(function(t) {
                        n.boxData.push(nt[t])
                    }), n.thickness = V, n.leftx = rt.leftx, n.rightx = rt.rightx, n
                }

                function A(t) {
                    ot = "round" === t || "square" === t ? t : void 0
                }

                function R(t, e) {
                    var n = t,
                        r = arguments.length > 1 ? e : 2 * t;
                    X === n && V === r || (X = n, V = r, nt = c(), p(!0))
                }

                function M(t) {
                    H = t
                }

                function I(t) {
                    Y = "round" === t ? "round" : "square"
                }

                function D(t) {
                    z = t, nt = c(), p(!0)
                }

                function L() {
                    return $
                }

                function k(t) {
                    t ? at || (at = et, et = function() {}) : at && (et = at, at = void 0)
                }

                function F() {
                    for (var t = JSON.parse(JSON.stringify(rt)), e = 0; e < rt.winlines.length; e++) delete t.winlines[e].x, delete t.winlines[e].y, delete t.winlines[e].leftx, delete t.winlines[e].lefty, delete t.winlines[e].rightx, delete t.winlines[e].righty, delete t.winlines[e].backgroundColour
                }

                function B(t) {
                    switch (t.key.toLowerCase()) {
                        case "arrowleft":
                            --ut < 0 && (ut = rt.winlines.length - 1);
                            break;
                        case "arrowright":
                            ++ut >= rt.winlines.length && (ut = 0);
                            break;
                        case "arrowup":
                            rt.winlines[ut].yOffset--;
                            break;
                        case "arrowdown":
                            rt.winlines[ut].yOffset++;
                            break;
                        case "g":
                            lt = !lt, ct = !1;
                            break;
                        case "x":
                            N(!1);
                            break;
                        case "d":
                            F();
                            break;
                        default:
                            return void t.preventDefault()
                    }
                    if (rt.winlines[ut].yOffset > r.symbolSlotHeight / 2 && (rt.winlines[ut].yOffset = Math.floor(r.symbolSlotHeight / 2)), rt.winlines[ut].yOffset < -r.symbolSlotHeight / 2 && (rt.winlines[ut].yOffset = -Math.floor(r.symbolSlotHeight / 2)), p(!0), !st) return void et();
                    if (at(), lt)
                        for (var e = 0; e < rt.winlines.length; e++) b(e, 0, V, W, 0), v(e, 0, X, W, 6710886);
                    x(ut + 1, 0), t.preventDefault()
                }

                function N(t) {
                    t ? (st && window.removeEventListener("keydown", B), window.addEventListener("keydown", B, !1), x(ut + 1, 0), st = !0) : (window.removeEventListener("keydown", B), st = !1), k(st)
                }
                var j, G, U = new t.Container,
                    W = 1,
                    H = 1,
                    X = 4,
                    V = 8,
                    z = 0,
                    Y = "square",
                    q = !1,
                    J = e(r, null),
                    K = J.getContainer(),
                    $ = J.getLimitedAccess(),
                    Z = {},
                    Q = $.clearAnimations;
                $.clearAnimations = function() {
                    Z = {}, Q()
                };
                var tt = $.setCellAnimation;
                $.setCellAnimation = function(t, e, n, r, i) {
                    0 === r && void 0 !== it[t] && (Z[it[t]] = !0), tt(t, e, n, r, i)
                };
                var et = function() {
                        j ? q && (q = !1, j.cacheAsBitmap = !1, j.clear()) : (j = new t.Graphics, U.addChild(j), U.addChild(K)), G && (U.removeChild(G), G = null)
                    },
                    nt = [],
                    rt = i,
                    it = {};
                ! function() {
                    nt = c(), p(), d(r.locationsMap)
                }();
                var ot, at, st = !1,
                    ut = 0,
                    lt = !1,
                    ct = !1;
                return {
                    drawWinline: x,
                    drawHighlightOutcome: T,
                    drawHighlightOutcomeWithWinBox: w,
                    drawSpaghetti: _,
                    drawBoxes: S,
                    drawBoxesFromLocations: C,
                    drawBoxesFromLocationsWithWinBox: E,
                    setLineCap: A,
                    clear: et,
                    done: a,
                    show: O,
                    getContainer: function() {
                        return U
                    },
                    getWinline: P,
                    setLineThickness: R,
                    setOpacity: M,
                    setBoxMode: I,
                    setBoxPadding: D,
                    getHalfbrightColour: f,
                    getAnimationLayer: L,
                    editLines: N
                }
            }
        }), define("game/winLinesInfo", [], function() {
            function t() {
                return {
                    winlines: [{
                        id: "Line 0",
                        locations: [1, 5, 9, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 1",
                        locations: [2, 6, 10, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 2",
                        locations: [0, 4, 8, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -2
                    }, {
                        id: "Line 3",
                        locations: [3, 7, 11, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 4
                    }, {
                        id: "Line 4",
                        locations: [1, 6, 11, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 5",
                        locations: [2, 5, 8, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 6",
                        locations: [1, 4, 8, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -4
                    }, {
                        id: "Line 7",
                        locations: [2, 7, 11, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 8",
                        locations: [0, 5, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 9",
                        locations: [3, 6, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 10",
                        locations: [1, 5, 10, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 11",
                        locations: [2, 6, 9, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 12",
                        locations: [0, 4, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 13",
                        locations: [3, 7, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 14",
                        locations: [1, 6, 9, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 15",
                        locations: [2, 5, 10, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 16",
                        locations: [0, 4, 8, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 17",
                        locations: [3, 7, 11, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 5
                    }, {
                        id: "Line 18",
                        locations: [0, 5, 10, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 19",
                        locations: [3, 6, 9, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 4
                    }, {
                        id: "Line 20",
                        locations: [0, 4, 9, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 21",
                        locations: [3, 7, 10, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 22",
                        locations: [0, 5, 8, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -4
                    }, {
                        id: "Line 23",
                        locations: [3, 6, 11, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 6
                    }, {
                        id: "Line 24",
                        locations: [1, 6, 10, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 25",
                        locations: [2, 5, 9, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 26",
                        locations: [1, 5, 8, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 27",
                        locations: [2, 6, 11, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 28",
                        locations: [1, 4, 9, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 29",
                        locations: [2, 7, 10, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 30",
                        locations: [0, 5, 9, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -2
                    }, {
                        id: "Line 31",
                        locations: [3, 6, 10, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 4
                    }, {
                        id: "Line 32",
                        locations: [1, 4, 9, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -2
                    }, {
                        id: "Line 33",
                        locations: [2, 7, 10, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 34",
                        locations: [0, 5, 8, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 35",
                        locations: [3, 6, 11, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 4
                    }, {
                        id: "Line 36",
                        locations: [0, 5, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 37",
                        locations: [3, 6, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 4
                    }, {
                        id: "Line 38",
                        locations: [1, 6, 9, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 39",
                        locations: [2, 5, 10, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }],
                    rightx: 977,
                    shortenright: 5,
                    leftx: 16.5
                }
            }

            function e() {
                return {
                    winlines: [{
                        id: "Line 0",
                        locations: [1, 5, 9, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 1",
                        locations: [2, 6, 10, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 2",
                        locations: [0, 4, 8, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 3",
                        locations: [3, 7, 11, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 4",
                        locations: [1, 6, 11, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 5",
                        locations: [2, 5, 8, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 6",
                        locations: [1, 4, 8, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 6
                    }, {
                        id: "Line 7",
                        locations: [2, 7, 11, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 8",
                        locations: [0, 5, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 9",
                        locations: [3, 6, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 10",
                        locations: [1, 5, 10, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 11",
                        locations: [2, 6, 9, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 12",
                        locations: [0, 4, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 13",
                        locations: [3, 7, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 14",
                        locations: [1, 6, 9, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 4
                    }, {
                        id: "Line 15",
                        locations: [2, 5, 10, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 16",
                        locations: [0, 4, 8, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 17",
                        locations: [3, 7, 11, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 4
                    }, {
                        id: "Line 18",
                        locations: [0, 5, 10, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 19",
                        locations: [3, 6, 9, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 6
                    }, {
                        id: "Line 20",
                        locations: [0, 4, 9, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 21",
                        locations: [3, 7, 10, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 22",
                        locations: [0, 5, 8, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 5
                    }, {
                        id: "Line 23",
                        locations: [3, 6, 11, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 24",
                        locations: [1, 6, 10, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 25",
                        locations: [2, 5, 9, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 26",
                        locations: [1, 5, 8, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 27",
                        locations: [2, 6, 11, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 28",
                        locations: [1, 4, 9, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -4
                    }, {
                        id: "Line 29",
                        locations: [2, 7, 10, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 30",
                        locations: [0, 5, 9, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 31",
                        locations: [3, 6, 10, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -1
                    }, {
                        id: "Line 32",
                        locations: [1, 4, 9, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 33",
                        locations: [2, 7, 10, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 34",
                        locations: [0, 5, 8, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 35",
                        locations: [3, 6, 11, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 3
                    }, {
                        id: "Line 36",
                        locations: [0, 5, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 2
                    }, {
                        id: "Line 37",
                        locations: [3, 6, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 1
                    }, {
                        id: "Line 38",
                        locations: [1, 6, 9, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 39",
                        locations: [2, 5, 10, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }],
                    rightx: 656,
                    shortenright: 5,
                    leftx: 11.5
                }
            }

            function n() {
                return {
                    winlines: [{
                        id: "Line 0",
                        locations: [1, 5, 9, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -4
                    }, {
                        id: "Line 1",
                        locations: [2, 6, 10, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -7
                    }, {
                        id: "Line 2",
                        locations: [0, 4, 8, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 3",
                        locations: [3, 7, 11, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -10
                    }, {
                        id: "Line 4",
                        locations: [1, 6, 11, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -5
                    }, {
                        id: "Line 5",
                        locations: [2, 5, 8, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -8
                    }, {
                        id: "Line 6",
                        locations: [1, 4, 8, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 7",
                        locations: [2, 7, 11, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -7
                    }, {
                        id: "Line 8",
                        locations: [0, 5, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -9
                    }, {
                        id: "Line 9",
                        locations: [3, 6, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 10",
                        locations: [1, 5, 10, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -4
                    }, {
                        id: "Line 11",
                        locations: [2, 6, 9, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -6
                    }, {
                        id: "Line 12",
                        locations: [0, 4, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 13",
                        locations: [3, 7, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -9
                    }, {
                        id: "Line 14",
                        locations: [1, 6, 9, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 15",
                        locations: [2, 5, 10, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -6
                    }, {
                        id: "Line 16",
                        locations: [0, 4, 8, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -2
                    }, {
                        id: "Line 17",
                        locations: [3, 7, 11, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -6
                    }, {
                        id: "Line 18",
                        locations: [0, 5, 10, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -2
                    }, {
                        id: "Line 19",
                        locations: [3, 6, 9, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -8
                    }, {
                        id: "Line 20",
                        locations: [0, 4, 9, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -2
                    }, {
                        id: "Line 21",
                        locations: [3, 7, 10, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -8
                    }, {
                        id: "Line 22",
                        locations: [0, 5, 8, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -2
                    }, {
                        id: "Line 23",
                        locations: [3, 6, 11, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -8
                    }, {
                        id: "Line 24",
                        locations: [1, 6, 10, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -7
                    }, {
                        id: "Line 25",
                        locations: [2, 5, 9, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -4
                    }, {
                        id: "Line 26",
                        locations: [1, 5, 8, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -4
                    }, {
                        id: "Line 27",
                        locations: [2, 6, 11, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -8
                    }, {
                        id: "Line 28",
                        locations: [1, 4, 9, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 29",
                        locations: [2, 7, 10, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -6
                    }, {
                        id: "Line 30",
                        locations: [0, 5, 9, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 31",
                        locations: [3, 6, 10, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -8
                    }, {
                        id: "Line 32",
                        locations: [1, 4, 9, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -5
                    }, {
                        id: "Line 33",
                        locations: [2, 7, 10, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -9
                    }, {
                        id: "Line 34",
                        locations: [0, 5, 8, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 35",
                        locations: [3, 6, 11, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -8
                    }, {
                        id: "Line 36",
                        locations: [0, 5, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -3
                    }, {
                        id: "Line 37",
                        locations: [3, 6, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -9
                    }, {
                        id: "Line 38",
                        locations: [1, 6, 9, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -6
                    }, {
                        id: "Line 39",
                        locations: [2, 5, 10, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -7
                    }],
                    rightx: 401,
                    shortenright: 5,
                    leftx: 13.5
                }
            }

            function r() {
                return {
                    winlines: [{
                        id: "Line 0",
                        locations: [1, 5, 9, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 1",
                        locations: [2, 6, 10, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 0
                    }, {
                        id: "Line 2",
                        locations: [0, 4, 8, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -2
                    }, {
                        id: "Line 3",
                        locations: [3, 7, 11, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 4
                    }, {
                        id: "Line 4",
                        locations: [1, 6, 11, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 22
                    }, {
                        id: "Line 5",
                        locations: [2, 5, 8, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -22
                    }, {
                        id: "Line 6",
                        locations: [1, 4, 8, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -32
                    }, {
                        id: "Line 7",
                        locations: [2, 7, 11, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 20
                    }, {
                        id: "Line 8",
                        locations: [0, 5, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 8
                    }, {
                        id: "Line 9",
                        locations: [3, 6, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -26
                    }, {
                        id: "Line 10",
                        locations: [1, 5, 10, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 31
                    }, {
                        id: "Line 11",
                        locations: [2, 6, 9, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -32
                    }, {
                        id: "Line 12",
                        locations: [0, 4, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 28
                    }, {
                        id: "Line 13",
                        locations: [3, 7, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -6
                    }, {
                        id: "Line 14",
                        locations: [1, 6, 9, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 41
                    }, {
                        id: "Line 15",
                        locations: [2, 5, 10, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -42
                    }, {
                        id: "Line 16",
                        locations: [0, 4, 8, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 18
                    }, {
                        id: "Line 17",
                        locations: [3, 7, 11, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -16
                    }, {
                        id: "Line 18",
                        locations: [0, 5, 10, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 38
                    }, {
                        id: "Line 19",
                        locations: [3, 6, 9, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -38
                    }, {
                        id: "Line 20",
                        locations: [0, 4, 9, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 50
                    }, {
                        id: "Line 21",
                        locations: [3, 7, 10, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -49
                    }, {
                        id: "Line 22",
                        locations: [0, 5, 8, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -24
                    }, {
                        id: "Line 23",
                        locations: [3, 6, 11, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 15
                    }, {
                        id: "Line 24",
                        locations: [1, 6, 10, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 10
                    }, {
                        id: "Line 25",
                        locations: [2, 5, 9, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -10
                    }, {
                        id: "Line 26",
                        locations: [1, 5, 8, 13, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -10
                    }, {
                        id: "Line 27",
                        locations: [2, 6, 11, 14, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 10
                    }, {
                        id: "Line 28",
                        locations: [1, 4, 9, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -20
                    }, {
                        id: "Line 29",
                        locations: [2, 7, 10, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 31
                    }, {
                        id: "Line 30",
                        locations: [0, 5, 9, 13, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -12
                    }, {
                        id: "Line 31",
                        locations: [3, 6, 10, 14, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 27
                    }, {
                        id: "Line 32",
                        locations: [1, 4, 9, 14, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -44
                    }, {
                        id: "Line 33",
                        locations: [2, 7, 10, 13, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 43
                    }, {
                        id: "Line 34",
                        locations: [0, 5, 8, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -36
                    }, {
                        id: "Line 35",
                        locations: [3, 6, 11, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 39
                    }, {
                        id: "Line 36",
                        locations: [0, 5, 9, 12, 16],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -48
                    }, {
                        id: "Line 37",
                        locations: [3, 6, 10, 15, 19],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 51
                    }, {
                        id: "Line 38",
                        locations: [1, 6, 9, 12, 17],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: -54
                    }, {
                        id: "Line 39",
                        locations: [2, 5, 10, 15, 18],
                        colour: "0xFFE105",
                        backgroundColour: "0xDAA520",
                        leftToRight: 1,
                        yOffset: 53
                    }],
                    rightx: 977,
                    shortenright: 5,
                    leftx: 16.5
                }
            }
            return {
                winLinesInfoDesktop: t,
                winLinesInfoMobile: e,
                winLinesInfoMini: n,
                winLinesColorfulDesktop: r
            }
        }), define("data/WinDataModel", [], function() {
            return {
                init: function(t) {
                    this.data = t, this.rgPresentationEnabled = t.gameConfig.rgPresentation
                }
            }
        }), define("game/WinlineAnimController", ["com/pixijs/pixi", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/phoenixReel/winline", "skbJet/component/gladPixiRenderer/Sprite", "skbJet/component/currencyHelper/currencyHelper", "skbJet/component/audioPlayer/AudioPlayerProxy", "game/BetController", "game/AutoSpinController", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "game/winLinesInfo", "data/WinDataModel"], function(t, e, n, r, i, o, a, s, u, l, c) {
            function h(t) {
                ft = t.serverConfig.presenttype, pt = t.serverConfig.channel
            }

            function d() {
                return dt = window.location.search.match(/&?assetPack=([^&]+)&?/)[1], "mobile" === dt || "tablet" === dt ? g() : "desktop" === dt ? p() : "desktopmini" === dt || "tabletmini" === dt ? m() : void 0
            }

            function f() {
                return c.winLinesColorfulDesktop()
            }

            function p() {
                return c.winLinesInfoDesktop()
            }

            function g() {
                return c.winLinesInfoMobile()
            }

            function m() {
                return c.winLinesInfoMini()
            }

            function y(t) {
                Ut = t.basegame.config.symbolSlotWidth / 186, Nt.leftx = t.basegame.config.options.reels[0].x + 5.5 * Ut, jt.leftx = t.freespin.config.options.reels[0].x + 5.5 * Ut, Nt.rightx = t.basegame.config.options.reels[t.basegame.config.options.reels.length - 1].x + t.basegame.config.symbolSlotWidth, jt.rightx = t.freespin.config.options.reels[t.freespin.config.options.reels.length - 1].x + t.freespin.config.symbolSlotWidth, It = r(n.getPixiRenderer(), t.basegame.config, Nt), Dt = r(n.getPixiRenderer(), t.freespin.config, jt), Ft = It.getContainer(), Bt = Dt.getContainer(), n.lib._reelSetBG.pixiContainer.addChild(Ft), n.lib._reelSetBG.pixiContainer.addChild(Bt), Gt && (Gt.leftx = t.basegame.config.options.reels[0].x + 5.5 * Ut, Gt.rightx = t.basegame.config.options.reels[t.basegame.config.options.reels.length - 1].x + t.basegame.config.symbolSlotWidth, gt = r(n.getPixiRenderer(), t.basegame.config, Gt), mt = gt.getContainer(), n.lib._reelSetBG.pixiContainer.addChild(mt)), xt = t.currentStage, k(t.currentStage), Lt = t.basegame.winPresentation, kt = t.freespin.winPresentation
            }

            function b(t) {
                for (var e = "Line " + (t.slice(5) - 1), n = "FreeSpin" === xt ? jt : Nt, r = 0; r < n.winlines.length; r++)
                    if (e === n.winlines[r].id) return r + 1
            }

            function v() {
                return "FreeSpin" === vt.OutcomeDetail.NextStage ? Dt : It
            }

            function _() {
                return gt
            }

            function x() {
                return "FreeSpin" === vt.OutcomeDetail.NextStage ? kt : Lt
            }

            function T() {
                var t = vt.PopulationOutcome;
                Yt = {};
                for (var e = 0; e < t.length; e++)
                    if (t[e]["@name"] === xt + ".Reels")
                        for (var n = t[e].Entry, r = 0; r < n.length; r++)
                            for (var i = n[r].Cell, o = 0; o < i.length; o++) {
                                var a = i[o];
                                Yt[a["@name"]] = a["#text"]
                            }
            }

            function w() {
                var t = vt.HighlightOutcome;
                qt = [];
                var e = [],
                    n = null;
                if (!vt.AwardCapOutcome || "true" !== vt.AwardCapOutcome.AwardCapExceeded) {
                    for (var r = 0; r < t.length; r++)
                        if (t[r].Highlight && 0 === t[r]["@name"].indexOf(xt))
                            if (t[r]["@name"].match(/Lines$/)) {
                                var i = t[r].Highlight;
                                Array.isArray(i) || (i = [i]);
                                for (var o = 0; o < i.length; o++) {
                                    for (var a = new Array(i[o].Cell.length), s = 0; s < i[o].Cell.length; s++) a[s] = i[o].Cell[s]["@name"];
                                    e.push({
                                        mode: "line",
                                        line: b(i[o]["@name"]),
                                        boxLocations: a
                                    })
                                }
                            } else if (t[r]["@name"].match(/Scatter$/)) {
                        n = {
                            mode: "scatter",
                            boxLocations: []
                        };
                        for (var u = 0; u < t[r].Highlight.Cell.length; u++) n.boxLocations.push(t[r].Highlight.Cell[u]["@name"])
                    }
                    if (e.length > 0)
                        for (var l = 0; l < e.length / 2; l++) qt.push(e[l]);
                    n && qt.unshift(n)
                }
            }

            function S() {
                C()
            }

            function C() {
                ct.getAnimationLayer().stopAnimating(), ct.getAnimationLayer().clearAnimations(), ct.show(!1), ct.clear()
            }

            function E(t, e) {
                ht.resetAnimations();
                for (var n = 0; n < t.length; n++) {
                    var r = t[n],
                        o = Yt[r].toLowerCase(),
                        a = "BaseGame",
                        s = {},
                        u = 0,
                        l = {
                            loop: !0
                        };
                    switch (e) {
                        case "b01Launch":
                            a = "Launch", s.x = 0, s.y = 0, u = 0, l = {
                                loop: !0
                            };
                            break;
                        case "high_symbol":
                            a = "BaseGame", s.x = 0, s.y = 0, u = 0, l = {
                                loop: !0
                            };
                            break;
                        case "low_symbol":
                            a = "Low", s.x = 0, s.y = 0, u = 0, l = {
                                loop: !0
                            }
                    }
                    var c = i.getSpriteSheetAnimationFrameArray(o + a);
                    ht.setCellAnimation(r, c, .1, u, s, l)
                }
                ht.startAnimating()
            }

            function O(t) {
                t.setLineCap("round"), t.setBoxMode("square"), "STD" === ft ? "INT" !== pt ? t.setLineThickness(3, 6) : t.setLineThickness(4, 8) : t.setLineThickness(2, 4)
            }

            function P(t, e) {
                if (ct.clear(), O(ct), qt && qt.length > 0) {
                    if (++Jt > 0 && 0 === (Jt %= qt.length) && (rt(e), !St)) return void W();
                    ct.show(!0), Et = n.getTimer().setTimeout(S, Tt);
                    var r = qt[Jt].boxLocations;
                    switch (qt[Jt].mode) {
                        case "spag":
                            break;
                        case "line":
                            I(Number(qt[Jt].line), ct, e);
                            break;
                        case "scatter":
                            M(r, ct, e)
                    }
                }
            }

            function A() {
                n.animMap._reelSetShake.play(2), a.play("ScreenShake", 12), n.getTimer().setTimeout(function() {
                    R()
                }, 1500)
            }

            function R() {
                n.animMap._reelSetShake.isPlaying && (n.animMap._reelSetShake.stop(), n.animMap._reelSetShake.updateStyleToTime(0))
            }

            function M(t, e, n) {
                var r = {};
                r = "STD" === ft ? "INT" !== pt ? {
                    height: 33,
                    fontSize: "16px"
                } : {
                    height: 50,
                    fontSize: "24px"
                } : {
                    height: 18,
                    fontSize: "11px"
                };
                var i, a = t[t.length - 1];
                i = "FreeSpin" === n.response.OutcomeDetail.Stage && "BaseGame" === n.response.OutcomeDetail.NextStage ? o.formatBalance(s.getTotalBonus(n.response.PrizeOutcome) + s.getBaseGameScatter(n.response.PrizeOutcome)) : o.formatBalance(Ct[xt + ".Scatter"].totalPay.Scatter * s.getCurDenomamount());
                var u = {
                    location: a,
                    height: r.height,
                    backgroundColor: "0X000000",
                    opacity: "0.7",
                    textStyle: {
                        fontWeight: "bold",
                        fontFamily: "Arial",
                        fontSize: r.fontSize,
                        fill: "#FFFFFF",
                        align: "center",
                        lineHeight: "16"
                    },
                    displayText: i
                };
                D(u);
                for (var l = 0; l < t.length; l++) e.getAnimationLayer().setCellAnimation(t[l], t[l] === u.location ? Pt : Ot, .1, 0);
                var c = 0;
                "true" === n.response.AwardCapOutcome.AwardCapExceeded ? c = st : "BaseGame" === xt ? c = s.getAllLinePayOnBaseGame(n) : "FreeSpin" === xt && (c = s.getPerWinInBonusGame(n) + s.getPerWinInBonusGameScatter(n)), _t.rgPresentationEnabled && c <= s.calculateTotalBet() || e.getAnimationLayer().startAnimating(), e.drawBoxesFromLocationsWithWinBox(t, "0XFFA6A6", "0XFF0000", u)
            }

            function I(t, e, n) {
                var r = {},
                    i = 0;
                "STD" === ft ? "INT" !== pt ? (r = {
                    height: 33,
                    fontSize: "16px"
                }, i = -98) : (r = {
                        height: 50,
                        fontSize: "24px"
                    },
                    i = -148) : (r = {
                    height: 18,
                    fontSize: "11px"
                }, i = -60);
                var a = L(t),
                    u = a.Cell[a.Cell.length - 1]["@name"],
                    l = a.Cell,
                    c = o.formatBalance(Ct[xt + ".Lines"].totalPay["Line " + t] * s.getCurDenomamount()),
                    h = {
                        location: u,
                        height: r.height,
                        backgroundColor: "0X000000",
                        opacity: "0.7",
                        textStyle: {
                            fontWeight: "bold",
                            fontFamily: "Arial",
                            fontSize: r.fontSize,
                            fill: "#FFFFFF",
                            align: "center",
                            lineHeight: "16"
                        },
                        displayText: c
                    };
                D(h);
                for (var d, f = 0; f < l.length; f++) d = l[f]["@name"], "w01" === Yt[d] && "R3" !== d.slice(4, 6) ? e.getAnimationLayer().setCellAnimation(d, d === h.location ? Rt : At, .1, 0) : "w02" === Yt[d] && "R0" !== d.slice(4, 6) ? e.getAnimationLayer().setCellAnimation(d, d === h.location ? Mt : At, .1, 0, {
                    y: i
                }) : e.getAnimationLayer().setCellAnimation(d, d === h.location ? Pt : Ot, .1, 0);
                var p = 0;
                "true" === n.response.AwardCapOutcome.AwardCapExceeded ? p = st : "BaseGame" === xt ? p = s.getAllLinePayOnBaseGame(n) : "FreeSpin" === xt && (p = s.getPerWinInBonusGame(n) + s.getPerWinInBonusGameScatter(n)), _t.rgPresentationEnabled && p <= s.calculateTotalBet() || e.getAnimationLayer().startAnimating(), e.drawHighlightOutcomeWithWinBox(a, h)
            }

            function D(e) {
                for (var r = parseInt(e.textStyle.fontSize), i = .85 * Number(n.lib._reels_0_0._currentStyle._width), o = new t.Text(e.displayText, e.textStyle), a = Number(o.width); a > i && !((r = parseInt(r) - 1) < 3);) e.textStyle.fontSize = r, o = new t.Text(e.displayText, e.textStyle), a = Number(o.width)
            }

            function L(t) {
                var e;
                Array.isArray(vt.HighlightOutcome) ? (e = "FreeSpin" === xt ? vt.HighlightOutcome.filter(function(t) {
                    return "FreeSpin.Lines" === t["@name"]
                }) : vt.HighlightOutcome.filter(function(t) {
                    return "BaseGame.Lines" === t["@name"]
                }), e = e[0]) : e = vt.HighlightOutcome;
                var n = [],
                    r = e["@name"];
                if (0 === r.indexOf(xt) && r.match(/Lines$/)) {
                    n = e.Highlight, Array.isArray(n) || (n = [n]);
                    for (var i = 0; i < n.length; i++)
                        if (n[i]["@name"] === "Line " + t) return n[i]
                }
            }

            function k(t) {
                "FreeSpin" === t ? (Ft.visible = !1, Bt.visible = !0) : (Ft.visible = !0, Bt.visible = !1)
            }

            function F(t) {
                Ct = {};
                for (var e = t.response.PrizeOutcome, n = 0; n < e.length; n++) {
                    var r, i = e[n]["@name"];
                    if (-1 !== i.indexOf("Lines"))
                        if (e[n].Prize) {
                            if (r = {
                                    totalPay: {}
                                }, Array.isArray(e[n].Prize))
                                for (var o = 0; o < e[n].Prize.length; o++) r.totalPay[e[n].Prize[o]["@name"]] = Number(e[n].Prize[o]["@totalPay"]);
                            else r.totalPay[e[n].Prize["@name"]] = Number(e[n].Prize["@totalPay"]);
                            Ct[i] = r
                        } else r = {
                            totalPay: 0
                        }, Ct[i] = r;
                    if (-1 !== i.indexOf("Scatter"))
                        if (e[n].Prize) {
                            if (r = {
                                    totalPay: {}
                                }, Array.isArray(e[n].Prize))
                                for (var a = 0; a < e[n].Prize.length; a++) r.totalPay[e[n].Prize[a]["@name"]] = Number(e[n].Prize[a]["@totalPay"]);
                            else r.totalPay[e[n].Prize["@name"]] = Number(e[n].Prize["@totalPay"]);
                            Ct[i] = r
                        } else r = {
                            totalPay: 0
                        }, Ct[i] = r
                }
            }

            function B(t, r) {
                if (yt = [], bt = [], St = t, T(), w(), 0 === qt.length) return void n.getTimer().setTimeout(function() {
                    "FreeSpin" === xt && rt(r)
                }, 800);
                Kt && n.getTimer().clearTimeout(Kt);
                for (var i = 0; i < qt.length; i++) "line" !== qt[i].mode && "scatter" !== qt[i].mode || (yt = yt.concat(qt[i].boxLocations));
                for (var o = 0; o < yt.length; o++) bt.indexOf(yt[o]) < 0 && bt.push(yt[o]);
                if (bt.length > 0)
                    if ("BaseGame" === r.response.OutcomeDetail.Stage && "FreeSpin" === r.response.OutcomeDetail.NextStage) {
                        var u = [];
                        for (var l in Yt) "b01" === Yt[l] && bt.indexOf(l) >= 0 && u.push(l);
                        E(u, "b01Launch")
                    } else {
                        var c = 0;
                        "true" === r.response.AwardCapOutcome.AwardCapExceeded ? c = st : "BaseGame" === xt ? c = s.getAllLinePayOnBaseGame(r) : "FreeSpin" === xt && (c = s.getPerWinInBonusGame(r) + s.getPerWinInBonusGameScatter(r)), c >= 5 * s.calculateTotalBet() && N(bt) && !j(bt) && a.play("SymbolWild", 6), "BaseGame" === xt && j(bt && c > s.calculateTotalBet()) && a.play("MusicStab", 11), "FreeSpin" === xt && j(bt) && (a.stopChannel(0), a.play("MusicStab", 11), n.getTimer().setTimeout(function() {
                            Wt || a.playAndFadeIn(0, "BonusMusicLoop", !0, 1800)
                        }, 2e3)), c >= 10 * s.calculateTotalBet() && A();
                        for (var h = [], d = 0; d < bt.length; d++) {
                            if ("w01" === Yt[bt[d]].toLowerCase() && "R3" !== bt[d].slice(4, 6)) {
                                var f = bt[d].slice(0, 5) + (Number(bt[d].slice(5, 6)) + 1);
                                bt.indexOf(f) < 0 && h.push(f)
                            }
                            if ("w02" === Yt[bt[d]].toLowerCase() && "R0" !== bt[d].slice(4, 6)) {
                                var p = bt[d].slice(0, 5) + (Number(bt[d].slice(5, 6)) - 1);
                                bt.indexOf(p) < 0 && h.push(p)
                            }
                        }
                        var g;
                        g = c >= 10 * s.calculateTotalBet() ? "high_symbol" : "low_symbol", _t.rgPresentationEnabled && c <= s.calculateTotalBet() || E(bt.concat(h), g), U(bt, r)
                    }
                "BaseGame" === r.response.OutcomeDetail.Stage && "FreeSpin" === r.response.OutcomeDetail.NextStage || (e.publish("FreeSpin" === xt ? "rollUpBonusWinValueStart" : "rollUpWinValueStart"), e.publish("showButton", "_skipButton"))
            }

            function N(t) {
                for (var e = 0; e < t.length; e++)
                    if ("w01" === Yt[t[e]] || "w02" === Yt[t[e]]) return !0;
                return !1
            }

            function j(t) {
                for (var e = 0; e < t.length; e++)
                    if ("b01" === Yt[t[e]]) return !0;
                return !1
            }

            function G() {
                for (var t = 0, e = 0; e < qt.length; e++) t += Tt;
                return t
            }

            function U(t, e) {
                P(t, e), Kt = n.getTimer().setTimeout(function() {
                    U(t, e)
                }, Tt + wt)
            }

            function W() {
                ct.getAnimationLayer().stopAnimating(), ct.getAnimationLayer().clearAnimations(), Gt && (_().clear(), _().show(!1)), ct.clear(), ct.show(!1), qt = null, Jt = -1, n.getTimer().clearTimeout(Et), n.getTimer().clearTimeout(Kt), ht.stopAnimating()
            }

            function H() {
                W(), Ht = !1, Xt = !1, Vt = !1
            }

            function X(t) {
                F(t), "FreeSpin" === t.response.OutcomeDetail.NextStage && B(!1, t)
            }

            function V(t) {
                F(t)
            }

            function z(t) {
                vt = t.response, ct = v(), ht = x()
            }

            function Y(t) {
                vt = t.response, xt = vt.OutcomeDetail.Stage, F(t)
            }

            function q(t) {
                "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage && B(!1, t), "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && B(!1, t)
            }

            function J(t) {
                zt = u.currentAutoSpinState(), u.currentAutoSpinState() ? B(!1, t) : B(!0, t)
            }

            function K() {
                e.publish("nextState")
            }

            function $(t) {
                xt = t.response.OutcomeDetail.NextStage, ("BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage || "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage) && (k(t.response.OutcomeDetail.NextStage), ct = v(), ht = x()), "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage && (a.stopChannel(0), Wt = !1)
            }

            function Z(t) {
                $(t)
            }

            function Q(t) {
                t && "_winValue" === t.spriteName && (Ht = !0)
            }

            function tt() {
                return Xt
            }

            function et() {
                return Vt
            }

            function nt() {
                return Ht
            }

            function rt(t) {
                "BaseGame" === xt && zt && (Xt = !0, Ht && (n.lib._bigWinLayer.pixiContainer.visible ? n.getTimer().setTimeout(function() {
                    e.publish("showButton", "_inactiveButton"), e.publish("nextState")
                }, 300) : (e.publish("showButton", "_inactiveButton"), e.publish("nextState"))), W()), "FreeSpin" === xt && (Vt = !0, "FreeSpin" === t.response.OutcomeDetail.NextStage && (W(), e.publish("showButton", "_inactiveButton"), "true" === t.response.FreeSpinOutcome.IncrementTriggered ? n.getTimer().setTimeout(function() {
                    e.publish("nextState")
                }, 3e3) : n.getTimer().setTimeout(function() {
                    e.publish("nextState")
                }, 800)), "BaseGame" === t.response.OutcomeDetail.NextStage && (a.play("BonusMusicLoopTerm", 0), Wt = !0, W(), e.publish("showButton", "_inactiveButton"), "true" === t.response.AwardCapOutcome.AwardCapExceeded ? n.getTimer().setTimeout(function() {
                    e.publish("showMaxAwardDialog", {
                        maxWinNum: st,
                        stage: xt,
                        data: t
                    }), n.lib._bonusWinValue.setText(o.formatBalance(st))
                }, 3e3) : n.getTimer().setTimeout(function() {
                    e.publish("showFreeSpinResultDialog", t.response.PrizeOutcome)
                }, 3e3)))
            }

            function it() {
                W()
            }

            function ot() {
                "FreeSpin" === lt && ("BaseGame" === ut ? a.play("PreBonusLoop", 0, !0) : a.play("BonusMusicLoop", 0, !0)), "BaseGame" === lt && a.play("MusicStab", 0, !1)
            }

            function at(t) {
                st = t.PaytableResponse.AwardCapInfo.CurrencyCap.AwardCap, lt = t.GameLogicResponse.OutcomeDetail.NextStage, ut = t.GameLogicResponse.OutcomeDetail.Stage
            }
            var st, ut, lt, ct, ht, dt, ft, pt, gt, mt, yt, bt, vt = null,
                _t = require("data/WinDataModel"),
                xt = null,
                Tt = 800,
                wt = 400,
                St = !0,
                Ct = {},
                Et = null,
                Ot = ["winBoxAnim_0001.png", "winBoxAnim_0002.png", "winBoxAnim_0003.png", "winBoxAnim_0004.png", "winBoxAnim_0005.png", "winBoxAnim_0006.png", "winBoxAnim_0007.png", "winBoxAnim_0008.png"],
                Pt = ["winBoxAnim_WithValueBox_0001.png", "winBoxAnim_WithValueBox_0002.png", "winBoxAnim_WithValueBox_0003.png", "winBoxAnim_WithValueBox_0004.png", "winBoxAnim_WithValueBox_0005.png", "winBoxAnim_WithValueBox_0006.png", "winBoxAnim_WithValueBox_0007.png", "winBoxAnim_WithValueBox_0008.png"],
                At = ["winBoxAnimH_0001.png", "winBoxAnimH_0002.png", "winBoxAnimH_0003.png", "winBoxAnimH_0004.png", "winBoxAnimH_0005.png", "winBoxAnimH_0006.png", "winBoxAnimH_0007.png", "winBoxAnimH_0008.png"],
                Rt = ["winBoxAnimHU_WithValueBox_0001.png", "winBoxAnimHU_WithValueBox_0002.png", "winBoxAnimHU_WithValueBox_0003.png", "winBoxAnimHU_WithValueBox_0004.png", "winBoxAnimHU_WithValueBox_0005.png", "winBoxAnimHU_WithValueBox_0006.png", "winBoxAnimHU_WithValueBox_0007.png", "winBoxAnimHU_WithValueBox_0008.png"],
                Mt = ["winBoxAnimHL_WithValueBox_0001.png", "winBoxAnimHL_WithValueBox_0002.png", "winBoxAnimHL_WithValueBox_0003.png", "winBoxAnimHL_WithValueBox_0004.png", "winBoxAnimHL_WithValueBox_0005.png", "winBoxAnimHL_WithValueBox_0006.png", "winBoxAnimHL_WithValueBox_0007.png", "winBoxAnimHL_WithValueBox_0008.png"],
                It = null,
                Dt = null,
                Lt = null,
                kt = null,
                Ft = null,
                Bt = null,
                Nt = d(),
                jt = d(),
                Gt = function() {
                    if ("desktop" === (dt = window.location.search.match(/&?assetPack=([^&]+)&?/)[1])) return f()
                }(),
                Ut = 1,
                Wt = !1,
                Ht = !1,
                Xt = !1,
                Vt = !1,
                zt = !1,
                Yt = null,
                qt = null,
                Jt = -1,
                Kt = null;
            return e.subscribe("onResolveStage", Y), e.subscribe("onInProgressStage", X), e.subscribe("onBeginNewGame", V), e.subscribe("onBeforeRequest", H), e.subscribe("onExitStage", q), e.subscribe("onEnterNextStage", $), e.subscribe("onBeforeShowStage", z), e.subscribe("onWinilneAnimComplete", rt), e.subscribe("onBetControlButtonClicked", it), e.subscribe("audioPlayer.playerSelectedWhenGameLaunch", ot), e.subscribe("platformMsg/ClientService/Game.Init", at), e.subscribe("platformMsg/Kernel/System.Init", h), e.subscribe("onEndGame", K), e.subscribe("beginLines", J), e.subscribe("onStartGameInProgressNextStage", Z), e.subscribe("RollUp.Stopped", Q), {
                init: y,
                start: B,
                stop: W,
                setWinlineStyle: O,
                getCurWinline: v,
                getInfoWinline: _,
                caculateWinLineAnimTime: G,
                stopShakingAnim: R,
                getFlagWinlineComplete: tt,
                getFlagWinlineCompleteBonus: et,
                getFlagWinValueRollStop: nt
            }
        }), define("game/ActionButtonController", ["com/pixijs/pixi", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/audioPlayer/AudioPlayerProxy", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/currencyHelper/currencyHelper", "game/BetController", "game/AutoSpinController", "game/BigWinController", "game/WinlineAnimController", "skbJet/componentCRDC/gladRenderer/gladButton"], function(t, e, n, r, i, o, a, s, u, l, c) {
            function h(t) {
                "INT" !== t.serverConfig.channel && "MIN" !== t.serverConfig.presenttype && (F = !0), "freespin" === t.serverConfig.paramGame.playMode && (k = !0), M = Number(t.serverConfig.freespin_num), R = Number(t.serverConfig.denomamount)
            }

            function d(t) {
                var e = new c(n.lib._spinButton, "spinButton", {
                    avoidMultiTouch: !0
                });
                e.click(function() {
                    A()
                }), e.enable(!0);
                var r = new c(n.lib._betControlButton ? n.lib._startButton : n.lib._startAnim, "startButton");
                r.click(function() {
                    P()
                }), r.enable(!0);
                var i = new c(n.lib._skipButton, "skipButton");
                i.click(function() {
                    O()
                }), i.enable(!0), I = t.GameLogicResponse.OutcomeDetail.NextStage
            }

            function f() {
                L = !1
            }

            function p(t) {
                S("BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage ? "_inactiveButton" : "_spinButton"), n.lib._networkActivity.show(!1), N = a.getMaxCountSquareArray4Lines()
            }

            function g(t) {
                S("_inactiveButton"), C(), "BaseGame" === I && B && (B = !1), k && "BaseGame" === t.response.OutcomeDetail.NextStage && M--
            }

            function m(t) {
                D = t, E()
            }

            function y(t) {
                s.currentAutoSpinState() || S("_spinButton"), s.currentAutoSpinState() && "BaseGame" === I && n.getTimer().setTimeout(function() {
                    s.currentAutoSpinState() && e.publish("nextState")
                }, "true" === t.response.AwardCapOutcome.AwardCapExceeded ? 3e3 : 800), L = !1
            }

            function b(t) {
                L = !1, S(a.getPerWinInBonusGame(t) > 0 || a.getPerWinInBonusGameScatter(t) > 0 ? "_skipButton" : "_inactiveButton")
            }

            function v(t) {
                "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && (n.getTimer().setTimeout(function() {
                    S("_startButton")
                }, 2900), B = !0)
            }

            function _(t) {
                I = t.response.OutcomeDetail.NextStage
            }

            function x(t) {
                D = t, I = t.response.OutcomeDetail.NextStage, "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage ? n.getTimer().setTimeout(function() {
                    S("_startButton")
                }, 600) : S("_startButton")
            }

            function T() {
                S("_inactiveButton"), E(), e.publish("nextState")
            }

            function w(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && S("_spinButton"), "FreeSpin" === t.response.OutcomeDetail.NextStage && S("_startButton"), L = !1
            }

            function S(t) {
                t && n.lib._actionButtonSet.show(!0);
                var e = n.lib._actionButtonSet.sprites;
                for (var r in e) e[r].show(r === t)
            }

            function C() {
                n.lib._networkActivity.show(!0), n.lib._networkActivity.gotoAndPlay("networkActivity", .2, !0)
            }

            function E() {
                n.lib._networkActivity.stopPlay(), n.lib._networkActivity.show(!1)
            }

            function O() {
                r.play("ControlsGeneric2", 16), l.stopShakingAnim(), "BaseGame" === I && u.bigwinRollUp.stop(), "FreeSpin" === I && (l.getFlagWinlineCompleteBonus() || (S("_inactiveButton"), e.publish("rollUpBonusWinValueStop"), e.publish("onWinilneAnimComplete", D))), "BaseGame" === I && (s.currentAutoSpinState() ? l.getFlagWinlineComplete() && l.getFlagWinValueRollStop() || (S("_inactiveButton"), e.publish("rollUpWinValueStop"), e.publish("onWinilneAnimComplete", D)) : l.getFlagWinValueRollStop() || (S("_inactiveButton"), e.publish("rollUpWinValueStop"), e.publish("onWinilneAnimComplete", D)))
            }

            function P() {
                r.play("ControlsGeneric2", 16), S("_inactiveButton"), D && "BaseGame" === D.response.OutcomeDetail.Stage && "FreeSpin" === D.response.OutcomeDetail.NextStage ? e.publish("removeBaseToFreeSpinDialog") : e.publish("nextState")
            }

            function A() {
                if (!L) {
                    F && (F = !1, e.publish("toPlatform", {
                        channel: "Game",
                        topic: "Game.Fullscreen"
                    })), n.lib._betPrompt && n.lib._betPrompt.show(!1), n.lib._betControlDialog && n.lib._betControlDialog.show(!1), e.publish("nextState");
                    var t = a.getCurPatternsBet() >= N ? "ControlsSpinMax" : "ControlsGeneric2";
                    r.play(t, 16), L = !0
                }
            }
            var R, M, I, D, L = !0,
                k = !1,
                F = !1,
                B = !0,
                N = 40;
            return e.subscribe("platformMsg/Kernel/System.Init", h), e.subscribe("platformMsg/ClientService/Game.Init", d), e.subscribe("onBeforeShowStage", p), e.subscribe("audioPlayer.playerSelectedWhenGameLaunch", f), e.subscribe("onBeforeRequest", g), e.subscribe("onResolveStage", m), e.subscribe("onBeginNewGame", y), e.subscribe("onInProgressStage", b), e.subscribe("onExitStage", v), e.subscribe("onEnterNextStage", _), e.subscribe("onStartGameInProgressStage", x), e.subscribe("onAbortNextStage", T), e.subscribe("onResetNextStage", w), e.subscribe("showButton", S), {}
        }), define("game/FreeSpinDialog", ["com/pixijs/pixi", "skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "game/BetController", "skbJet/component/audioPlayer/AudioPlayerProxy", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/currencyHelper/currencyHelper"], function(t, e, n, r, i, o, a) {
            function s(t) {
                E = t.serverConfig.presenttype, O = t.serverConfig.channel, S = t.serverConfig.paramGame.assetPack
            }

            function u(t) {
                C = t.PaytableResponse.AwardCapInfo.CurrencyCap.AwardCap
            }

            function l(e, r) {
                var i, o, s, u, l = {},
                    h = 1,
                    d = 1;
                switch (r) {
                    case "_baseToFreeLineHead":
                        l.fontSize = 72, l.fill = ["#ffd014", "#ff8416"], l.stroke = "#000000", l.strokeThickness = 0, l.dropShadowDistance = 6;
                        break;
                    case "_baseToFreeLine1":
                    case "_baseToFreeLine2":
                    case "_baseToFreeLine3":
                    case "_baseToFreeLine4":
                        l.fontSize = 60, l.fill = ["#ff6f18", "#ff2621"], l.stroke = "#000000", l.strokeThickness = 0, l.dropShadowDistance = 6;
                        break;
                    case "_freespinResultLine1":
                        l.fontSize = 60, l.fill = ["#ffd014", "#ff8416"], l.stroke = "#000000", l.strokeThickness = 3, l.dropShadowDistance = 6;
                        break;
                    case "_freespinResultLine2":
                        l.fontSize = 60, l.fill = ["#ff6f18", "#ff2621"], l.stroke = "#000000", l.strokeThickness = 3, l.dropShadowDistance = 6;
                        break;
                    case "_freespinResultLine3":
                    case "_capLine4":
                        l.fontSize = 90, l.fill = ["#FFFFFF"], l.stroke = "#000000", l.strokeThickness = 3, l.dropShadowDistance = 6;
                        break;
                    case "_retriggerLine1":
                    case "_retriggerLine2":
                    case "_retriggerLine3":
                    case "_retriggerLine5":
                    case "_retriggerLine1_1":
                    case "_retriggerLine1_2":
                        l.fontSize = 60, l.fill = ["#FE123C"], l.stroke = "#000000", l.strokeThickness = 3, l.dropShadowDistance = 6;
                        break;
                    case "_retriggerLine4":
                        l.fontSize = 120, l.fill = ["#FFFFFF"], l.stroke = "#000000", l.strokeThickness = 3, l.dropShadowDistance = 6;
                        break;
                    default:
                        l.fontSize = 60, l.fill = ["#ff6f18", "#ff2621"], l.stroke = "#000000", l.strokeThickness = 3, l.dropShadowDistance = 6
                }
                l.sameLineTextSpace = 24, "STD" === E ? "INT" !== O ? (h = 2 / 3, d = 2 / 3, l.sameLineTextSpace = 16) : (h = 1, d = 1, l.sameLineTextSpace = 24) : (h = 1 / 3, d = 1 / 3, l.sameLineTextSpace = 8), 1 === e.length ? (i = {
                    fontFamily: "Arial",
                    fontSize: l.fontSize,
                    fontWeight: "bold",
                    fill: l.fill,
                    dropShadow: !0,
                    dropShadowColor: "rgba(0,0,0,0.2)",
                    dropShadowBlur: 5,
                    dropShadowDistance: l.dropShadowDistance,
                    stroke: l.stroke,
                    strokeThickness: l.strokeThickness
                }, s = new t.Text, s.text = e[0], s.style = i, s.scale.x = h, s.scale.y = d, c([s], r), s.x = a.formatFloat((a.formatFloat(n.lib[r]._currentStyle._width) - a.formatFloat(s.width)) / 2), n.lib[r].setText(""), n.lib[r].pixiContainer.removeChildren(), n.lib[r].pixiContainer.addChild(s)) : 2 === e.length && (i = {
                    fontFamily: "Arial",
                    fontSize: l.fontSize,
                    fontWeight: "bold",
                    fill: ["#ffd014", "#ff8416"],
                    dropShadow: !0,
                    dropShadowColor: "rgba(0,0,0,0.2)",
                    dropShadowBlur: 5,
                    dropShadowDistance: l.dropShadowDistance
                }, o = {
                    fontFamily: "Arial",
                    fontSize: l.fontSize,
                    fontWeight: "bold",
                    fill: l.fill,
                    dropShadow: !0,
                    dropShadowColor: "rgba(0,0,0,0.2)",
                    dropShadowBlur: 5,
                    dropShadowDistance: l.dropShadowDistance
                }, s = new t.Text, s.text = e[0], s.style = i, s.scale.x = h, s.scale.y = d, u = new t.Text, u.text = e[1], u.style = o, u.scale.x = h, u.scale.y = d, s.x = a.formatFloat((a.formatFloat(n.lib[r]._currentStyle._width) - a.formatFloat(s.width) - a.formatFloat(u.width) - l.sameLineTextSpace) / 2), u.x = a.formatFloat(s.x + a.formatFloat(s.width) + l.sameLineTextSpace), n.lib[r].setText(""), n.lib[r].pixiContainer.removeChildren(), n.lib[r].pixiContainer.addChild(s), n.lib[r].pixiContainer.addChild(u)), n.lib[r].show(!0)
            }

            function c(t, e) {
                if (1 === t.length)
                    for (var r = Number(t[0].scale.x); t[0].width >= .9 * n.lib[e]._currentStyle._width; r -= .02) t[0].scale.x = r, t[0].scale.y = r;
                else t.length
            }

            function h() {
                n.lib._freespinResultDialog.show(!1), n.lib._capDialog.show(!1), n.lib._baseToFreeDialog.show(!1), n.lib._retriggerDialog.show(!1)
            }

            function d(t) {
                n.lib._capDialog.show(!0), n.lib._capPlaque.show(!0), "BaseGame" === t.stage ? (l([o.i18n.Game.Dialog.CONGRATULATIONS], "_capLine1"), l([o.i18n.Game.Dialog.YOUWONTHE], "_capLine2"), l([o.i18n.Game.Dialog.MAXAWARD], "_capLine3"), l([a.formatBalance(t.maxWinNum)], "_capLine4"), e.publish("nextState")) : (l([o.i18n.Game.Dialog.CONGRATULATIONS], "_capLine1"), l([o.i18n.Game.Dialog.MAXAWARDFREE], "_capLine3"), l([a.formatBalance(t.maxWinNum)], "_capLine4"), l([o.i18n.Game.Dialog.MAXWARDCOMPLETE], "_capLine5"), n.getTimer().setTimeout(function() {
                    g("_capLine1"), g("_capLine3"), g("_capLine4"), g("_capLine5"), n.lib._capDialog.show(!1), n.lib._capPlaque.show(!1), n.getTimer().setTimeout(function() {
                        m(t.data.response.PrizeOutcome)
                    }, 1e3)
                }, 3e3))
            }

            function f(t) {
                n.lib._baseToFreeDialog.show(!0), n.lib._transitionInOut.show(!0), n.lib._transitionInOut.gotoAndPlay("transitionIn", .2, !1), n.getTimer().setTimeout(function() {
                    l([o.i18n.Game.Dialog.CONGRATULATIONS], "_baseToFreeLineHead"), l([o.i18n.Game.Dialog.YOUWIN], "_baseToFreeLine1"), l([t.response.FreeSpinOutcome.InitAwarded, o.i18n.Game.Dialog.FREEGAMES], "_baseToFreeLine2"), l([o.i18n.Game.Dialog.WITHA], "_baseToFreeLine3"), l([o.i18n.Game.Dialog.MULTIPLIER_2x, o.i18n.Game.Dialog.MULTIPLIER], "_baseToFreeLine4"), e.publish("showStatusBaseToFreeTips", o.i18n.Game.bonusPrompt)
                }, 300)
            }

            function p() {
                n.getTimer().setTimeout(function() {
                    n.lib._transitionInOut.gotoAndPlay("transitionOut", .2, !1)
                }, 100), g("_baseToFreeLineHead"), g("_baseToFreeLine1"), g("_baseToFreeLine2"), g("_baseToFreeLine3"), g("_baseToFreeLine4"), n.getTimer().setTimeout(function() {
                    e.publish("nextState")
                }, 100), n.getTimer().setTimeout(function() {
                    n.lib._baseToFreeDialog.show(!1), n.lib._transitionInOut.show(!1)
                }, 700)
            }

            function g(t) {
                n.lib[t].pixiContainer.removeChildren()
            }

            function m(t) {
                n.lib._freespinResultPlaque.show(!0), n.lib._freespinResultDialog.show(!0);
                var i = r.getTotalBonus(t) + r.getBaseGameScatter(t);
                l([o.i18n.Game.Dialog.CONGRATULATIONS], "_freespinResultLine1"), l([o.i18n.Game.Dialog.YOUWON], "_freespinResultLine2"), l([a.formatBalance(i >= C ? C : i)], "_freespinResultLine3"), i >= C && n.lib._bonusWinValue.setText(a.formatBalance(C)), n.getTimer().setTimeout(function() {
                    e.publish("nextState"), g("_freespinResultLine1"), g("_freespinResultLine2"), 0 !== i && g("_freespinResultLine3"), n.lib._freespinResultPlaque.show(!1), n.lib._freespinResultDialog.show(!1)
                }, 2e3)
            }

            function y(t) {
                if (n.lib._retriggerPlaque.show(!0), n.lib._retriggerDialog.show(!0), "true" === t.response.FreeSpinOutcome.MaxAwarded) {
                    var e = Number(t.response.FreeSpinOutcome.TotalAwarded) - Number(n.lib._freeSpinCountValue.getText().slice(n.lib._freeSpinCountValue.getText().indexOf("/") + 1));
                    0 === e ? (l([o.i18n.Game.Dialog.LIMITEXCEEDED], "_retriggerLine1_1"), l([o.i18n.Game.Dialog.NOADDITIONAL], "_retriggerLine1_2")) : (l([o.i18n.Game.Dialog.LIMITEXCEEDEDCAP], "_retriggerLine1_1"), l([o.i18n.Game.Dialog.NOADDITIONALCAP1 + e + o.i18n.Game.Dialog.NOADDITIONALCAP2], "_retriggerLine1_2")), n.getTimer().setTimeout(function() {
                        g("_retriggerLine1_1"), g("_retriggerLine1_2"), n.lib._retriggerPlaque.show(!1), n.lib._retriggerDialog.show(!1)
                    }, 2500)
                } else l([o.i18n.Game.Dialog.CONGRATULATIONS], "_retriggerLine1"), l([o.i18n.Game.Dialog.YOUWIN], "_retriggerLine2"), l([o.i18n.Game.Dialog.ANADDITIONAL], "_retriggerLine3"), l([t.response.FreeSpinOutcome.Awarded], "_retriggerLine4"), l([o.i18n.Game.Dialog.FREESPINS], "_retriggerLine5"), n.getTimer().setTimeout(function() {
                    g("_retriggerLine1"), g("_retriggerLine2"), g("_retriggerLine3"), g("_retriggerLine4"), g("_retriggerLine5"), n.lib._retriggerPlaque.show(!1), n.lib._retriggerDialog.show(!1)
                }, 2500)
            }

            function b(t) {
                "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && (i.play("BonusBell", 11), n.getTimer().setTimeout(function() {
                    i.play("MusicStab", 11)
                }, 2500), i.play("PreBonusLoop", 0, !0), n.getTimer().setTimeout(function() {
                    f(t), i.play("BonusTransitionPlaque", 13)
                }, 2500)), "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage && "true" === t.response.FreeSpinOutcome.IncrementTriggered && n.getTimer().setTimeout(function() {
                    y(t)
                }, 1e3)
            }

            function v(t) {
                "true" === t.response.FreeSpinOutcome.IncrementTriggered && n.getTimer().setTimeout(function() {
                    y(t)
                }, 1e3)
            }

            function _() {
                g("_capLine1"), g("_capLine2"), g("_capLine3"), g("_capLine4"), n.lib._capDialog.show(!1), n.lib._capPlaque.show(!1)
            }

            function x() {
                n.lib._capDialog.pixiContainer.visible && _()
            }

            function T() {
                n.lib._capDialog.pixiContainer.visible && _()
            }

            function w(t) {
                "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && f(t)
            }
            var S, C, E, O;
            return e.subscribe("onBetControlButtonClicked", T), e.subscribe("onExitStage", b), e.subscribe("showFreeSpinResultDialog", m), e.subscribe("showMaxAwardDialog", d), e.subscribe("platformMsg/Kernel/System.Init", s), e.subscribe("platformMsg/ClientService/Game.Init", u), e.subscribe("platformMsg/Game/Game.InitDone", h), e.subscribe("removeBaseToFreeSpinDialog", p), e.subscribe("onInProgressStage", v), e.subscribe("onBeforeRequest", x), e.subscribe("onStartGameInProgressStage", w), {}
        }), define("game/MetersController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/audioPlayer/AudioPlayerProxy", "skbJet/component/currencyHelper/currencyHelper", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "game/BetController", "game/RollUp", "game/WinlineAnimController", "game/AutoSpinController"], function(t, e, n, r, i, o, a, s, u) {
            function l(t) {
                "freespin" === t.serverConfig.paramGame.playMode && (W = !0, k = Number(t.serverConfig.freespin_bet), F = Number(t.serverConfig.freespin_lines))
            }

            function c(t) {
                N = t.PaytableResponse.AwardCapInfo.CurrencyCap.AwardCap
            }

            function h(t) {
                if (d(), f(), p(), g(t.response.OutcomeDetail.Stage), y(t), !1 === W) e.lib._pfsMeter.show(!1), e.lib._betValue.setText(r.formatBalance(o.calculateTotalBet()));
                else {
                    e.lib._balanceMeter.show(!1);
                    var n = r.formatBalance(F * k);
                    e.lib._betValue.setText(n), B <= 0 && (B = 0), D(t)
                }
            }

            function d() {
                e.lib._balanceLabel.autoFontFitText = !0, e.lib._pfsLabel.autoFontFitText = !0, e.lib._winLabel.autoFontFitText = !0, e.lib._linesBetLabel.autoFontFitText = !0, e.lib._totalBetLabel.autoFontFitText = !0, e.lib._linesLabel.autoFontFitText = !0, e.lib._freeSpinCountLabel.autoFontFitText = !0, e.lib._bonusWinLabel.autoFontFitText = !0, e.lib._betLabel.autoFontFitText = !0, e.lib._balanceValue.autoFontFitText = !0, e.lib._pfsValue.autoFontFitText = !0, e.lib._winValue.autoFontFitText = !0, e.lib._lineBetValue.autoFontFitText = !0, e.lib._totalBetValue.autoFontFitText = !0, e.lib._linesValue.autoFontFitText = !0, e.lib._freeSpinCountValue.autoFontFitText = !0, e.lib._bonusWinValue.autoFontFitText = !0, e.lib._betValue.autoFontFitText = !0
            }

            function f() {
                e.lib._balanceLabel.setText(i.i18n.Game.consoleBalance), e.lib._winLabel.setText(i.i18n.Game.consoleWin), e.lib._betLabel.setText(i.i18n.Game.consoleBet), e.lib._freeSpinCountLabel.setText(i.i18n.Game.consoleBonusCount), e.lib._bonusWinLabel.setText(i.i18n.Game.consoleBonus), e.lib._pfsLabel.setText(i.i18n.Game.consoleBonusCount), e.lib._linesLabel.setText(i.i18n.Game.selectorPatternsBet), e.lib._linesBetLabel.setText(i.i18n.Game.selectorBetPerPattern), e.lib._totalBetLabel.setText(i.i18n.Game.consoleBet), e.lib._multiplyLabel.setText(i.i18n.Game.Dialog.MULTIPLIER), e.lib._multiplyValue.setText(i.i18n.Game.Dialog.MULTIPLIER_2x)
            }

            function p() {
                e.lib._balanceValue.setText(""), e.lib._winValue.setText(""), e.lib._betValue.setText(""), e.lib._pfsValue.setText(""), e.lib._freeSpinCountValue.setText(""), e.lib._bonusWinValue.setText("")
            }

            function g(t) {
                "FreeSpin" === t ? (e.lib._meterSet.show(!1), e.lib._bonusMeterSet.show(!0)) : (e.lib._bonusMeterSet.show(!1), e.lib._meterSet.show(!0))
            }

            function m(t) {
                e.lib._balanceValue.setText(t.balance)
            }

            function y(t) {
                e.lib._balanceValue.setText(r.formatBalance(t.response.Balances["@totalBalance"]))
            }

            function b() {
                var t = o.getTotalBonus(j.response.PrizeOutcome) + o.getBaseGameScatter(j.response.PrizeOutcome),
                    e = o.getPerWinInBonusGame(j) + o.getPerWinInBonusGameScatter(j);
                e < o.calculateTotalBet() && n.play("Rollup0Term", 1), e > 0 && e < 2 * o.calculateTotalBet() && e > o.calculateTotalBet() ? X.start(z, t, {
                    rollUpSound: "Rollup0",
                    rollUpTermSound: "Rollup0Term",
                    rollUpSoundChannel: 1,
                    maxTime: s.caculateWinLineAnimTime()
                }) : e >= 2 * o.calculateTotalBet() && (X.start(z, t, {
                    rollUpSound: "Rollup0",
                    rollUpTermSound: "Rollup0Term",
                    rollUpSoundChannel: 1,
                    maxTime: s.caculateWinLineAnimTime()
                }), n.play("Rollup1Mask", 7)), z = t
            }

            function v() {
                X.stop()
            }

            function _() {
                var t = o.getCurBasePay(j);
                t < o.calculateTotalBet() && n.play("Rollup0Term", 1), t > 0 && t < 2 * o.calculateTotalBet() && t > o.calculateTotalBet() ? H.start(V, t, {
                    rollUpSound: "Rollup0",
                    rollUpTermSound: "Rollup0Term",
                    rollUpSoundChannel: 1
                }) : t >= 2 * o.calculateTotalBet() && t < 10 * o.calculateTotalBet() ? (H.start(V, t, {
                    rollUpSound: "Rollup1",
                    rollUpTermSound: "Rollup1Term",
                    rollUpSoundChannel: 1
                }), n.play("Rollup1Mask", 7)) : (H.start(V, t, {}), t <= o.calculateTotalBet() && H.stop()), V = t
            }

            function x() {
                H.stop()
            }

            function T(n) {
                if (n && "_winValue" === n.spriteName) {
                    Y ? s.getFlagWinlineComplete() ? e.lib._bigWinLayer.pixiContainer.visible ? e.getTimer().setTimeout(function() {
                        t.publish("showButton", "_inactiveButton"), t.publish("nextState")
                    }, 300) : (t.publish("showButton", "_inactiveButton"), t.publish("nextState")) : (t.publish("showButton", "_spinButton"), t.publish("nextState")) : (t.publish("showButton", "_inactiveButton"), t.publish("nextState"));
                    var i = r.formatBalance(G);
                    e.lib._balanceValue.setText(i)
                }
            }

            function w(t) {
                var n, i;
                t && "_winValue" === t.spriteName && (n = G + t.value - U, i = r.formatBalance(n), e.lib._balanceValue.setText(i))
            }

            function S(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && e.lib._winValue.setText("")
            }

            function C(t) {
                j = t, ("FreeSpin" === t.response.OutcomeDetail.NextStage || "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage) && ("true" === t.response.FreeSpinOutcome.IncrementTriggered ? e.lib._freeSpinCountValue.setText(t.response.FreeSpinOutcome.Count + e.lib._freeSpinCountValue.getText().slice(e.lib._freeSpinCountValue.getText().indexOf("/"))) : e.lib._freeSpinCountValue.setText(Number(t.response.FreeSpinOutcome.Count) + "/" + t.response.FreeSpinOutcome.TotalAwarded)), W && ("BaseGame" !== t.response.OutcomeDetail.Stage || "BaseGame" !== t.response.OutcomeDetail.NextStage && "FreeSpin" !== t.response.OutcomeDetail.NextStage || D(t)), "BaseGame" === t.response.OutcomeDetail.NextStage && (Y = u.currentAutoSpinState(), G = Number(t.response.Balances["@totalBalance"]), U = Number(o.getCurBasePay(t)))
            }

            function E(t) {
                g(t.response.OutcomeDetail.NextStage), "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && (e.lib._freeSpinCountValue.setText("0/" + t.response.FreeSpinOutcome.InitAwarded), e.lib._bonusWinValue.setText(r.formatBalance(o.getBaseGameScatter(t.response.PrizeOutcome))), z = o.getBaseGameScatter(t.response.PrizeOutcome)), "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage && (e.lib._bonusWinValue.setText(""), e.lib._freeSpinCountValue.setText(""))
            }

            function O(t) {
                j = t, ("FreeSpin" === t.response.OutcomeDetail.NextStage || "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage) && "true" === t.response.FreeSpinOutcome.IncrementTriggered && e.getTimer().setTimeout(function() {
                    e.lib._freeSpinCountValue.setText(Number(t.response.FreeSpinOutcome.Count) + "/" + t.response.FreeSpinOutcome.TotalAwarded)
                }, 2100)
            }

            function P(t) {
                ("FreeSpin" === t.response.OutcomeDetail.NextStage || "FreeSpin" === t.response.OutcomeDetail.Stage && "BaseGame" === t.response.OutcomeDetail.NextStage) && "true" === t.response.FreeSpinOutcome.IncrementTriggered && e.getTimer().setTimeout(function() {
                    e.lib._freeSpinCountValue.setText(Number(t.response.FreeSpinOutcome.Count) + "/" + t.response.FreeSpinOutcome.TotalAwarded)
                }, 2100)
            }

            function A(t) {
                V = 0, z = 0, !1 === W && y(t)
            }

            function R(t) {
                W && (B = Number(t.response.PromotionalFreeSpin["@count"])), e.lib._freeSpinCountValue.setText(t.response.FreeSpinOutcome.Count + "/" + t.response.FreeSpinOutcome.TotalAwarded), (z = "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage ? o.getBaseGameScatter(t.response.PrizeOutcome) : Number(o.getBaseGameScatter(t.response.PrizeOutcome)) + Number(o.getTotalBonus(t.response.PrizeOutcome))) > 0 && e.lib._bonusWinValue.setText(r.formatBalance(z))
            }

            function M(t) {
                E(t)
            }

            function I() {
                e.lib._winValue.setText("")
            }

            function D(t) {
                B = Number(t.response.PromotionalFreeSpin["@count"]), B <= 0 && (B = 0), e.lib._pfsValue.setText(B + "")
            }

            function L() {
                return B
            }
            var k, F, B, N, j, G, U, W = !1,
                H = new a("_winValue"),
                X = new a("_bonusWinValue"),
                V = 0,
                z = 0,
                Y = !1;
            return t.subscribe("platformMsg/Kernel/System.Init", l), t.subscribe("platformMsg/ClientService/Game.Init", c), t.subscribe("onBeforeShowStage", h), t.subscribe("onBeforeRequest", S), t.subscribe("onResolveStage", C), t.subscribe("onInProgressStage", O), t.subscribe("onEnterNextStage", E), t.subscribe("onBeginNewGame", A), t.subscribe("platformMsg/ClientService/Account.Balances", m), t.subscribe("onStartGameInProgressStage", R), t.subscribe("onStartGameInProgressNextStage", M), t.subscribe("onBetControlButtonClicked", I), t.subscribe("rollUpWinValueStart", _), t.subscribe("rollUpWinValueStop", x), t.subscribe("RollUp.Stopped", T), t.subscribe("RollUp.Update", w), t.subscribe("rollUpBonusWinValueStart", b), t.subscribe("rollUpBonusWinValueStop", v), t.subscribe("onExitStage", P), {
                getCurPRSNum: L
            }
        }), define("skbJet/component/phoenixReel/reelspin", ["com/pixijs/pixi", "skbJet/component/phoenixReel/animationLayer"], function(t, e) {
            return function(n, r) {
                function i(e) {
                    var n = new t.extras.AnimatedSprite([t.Texture.EMPTY]);
                    return n.zIndex = 1, n.visible = !1, n
                }

                function o(t) {
                    for (var e = r.StripInfo[nt], n = -2; n < r.options.reels[t].symbolCount + 2; n++) {
                        var i = L[t][n + 2],
                            o = e[t][(Y[t] + e[t].length + n) % e[t].length];
                        $.symbolsMap && $.symbolsMap[o] && (o = $.symbolsMap[o]), Array.isArray(F[o].textures) ? (i.textures = F[o].textures, i.texture = i.textures[0], i.gotoAndStop(0)) : (i.textures = [F[o].textures], i.texture = i.textures[0], i.gotoAndStop(0)), i.zIndex = F[o].zOffset, i.visible = !0, i.position.x = r.options.pos.x + r.options.reels[t].x + F[o].xOffset, i.position.y = r.options.pos.y - z[t] + F[o].yOffset + r.options.reels[t].y + K.symbolSlotHeight * n
                    }
                }

                function a(t) {
                    for (var e = r.StripInfo[Z.reelset], n = -2; n < r.options.reels[t].symbolCount + 2; n++) {
                        var i = k[t][n + 2],
                            o = e[t][(B[t] + e[t].length + n) % e[t].length];
                        Z.symbolsMap && Z.symbolsMap[o] && (o = Z.symbolsMap[o]), Array.isArray(F[o].textures) ? (i.textures = F[o].textures, i.texture = i.textures[0],
                            i.gotoAndStop(0)) : (i.textures = [F[o].textures], i.texture = i.textures[0], i.gotoAndStop(0)), i.zIndex = F[o].zOffset, i.visible = !0, i.position.x = r.options.pos.x + r.options.reels[t].x + F[o].xOffset;
                        var a = H[t] + W[t];
                        q[t] > 0 && (a = -a), i.position.y = r.options.pos.y - a + r.options.reels[t].y + F[o].yOffset + K.symbolSlotHeight * n
                    }
                }

                function s(t, e) {
                    for (var n = r.StripInfo[e.reelset], i = {
                            spriteRefs: []
                        }, o = -1; o < r.options.reels[t].symbolCount + 1; o++) {
                        var a = n[t][(D[t] + n[t].length + o) % n[t].length];
                        e.symbolsMap && e.symbolsMap[a] && (a = e.symbolsMap[a]), i.spriteRefs.push(a)
                    }
                    tt.show(t), tt.setViewData(t, i)
                }

                function u() {
                    for (var t = 0; t < r.options.reels.length; t++)
                        for (var e = -2; e < r.options.reels[t].symbolCount + 2; e++) {
                            var n = k[t][e + 2];
                            n.visible = !1
                        }
                }

                function l() {
                    for (var t = 0; t < r.options.reels.length; t++)
                        for (var e = -2; e < r.options.reels[t].symbolCount + 2; e++) {
                            var n = L[t][e + 2];
                            n.visible = !1
                        }
                }

                function c(t) {
                    for (var e = -2; e < r.options.reels[t].symbolCount + 2; e++) L[t][e + 2].visible = !1, k[t][e + 2].visible = !1
                }

                function h(t, e) {
                    return M[e] === O.SPIN_SPINUP || M[e] === O.SPIN_FINDEND || M[e] === O.SPIN_SPINNING || M[e] === O.SPIN_PRESTOP ? (V[e] = Math.floor((V[e] + q[e] * t + et[e]) % et[e]), Y[e] = Math.floor(V[e] / K.symbolSlotHeight), z[e] = V[e] % K.symbolSlotHeight) : (Y[e] = Math.floor(V[e] / K.symbolSlotHeight), z[e] += q[e] * t), o(e), !0
                }

                function d(t) {
                    return Math.abs(z[t]) > K.symbolSlotHeight * (K.options.reels[t].symbolCount + 4)
                }

                function f(t) {
                    return 0 === H[t]
                }

                function p(t) {
                    return 0 === H[t] && 0 === W[t]
                }

                function g(t, e) {
                    H[e] > 0 ? (H[e] -= Math.abs(q[e] * t), H[e] <= 0 && (W[e] += H[e], H[e] = 0)) : (W[e] -= Math.abs(q[e] * t), W[e] < 0 && (W[e] = 0, H[e] = 0)), a(e)
                }

                function m(t, e) {
                    var n = V[e] % K.symbolSlotHeight;
                    H[e] = n, W[e] = K.symbolSlotHeight * (K.options.reels[e].symbolCount + 4), q[e] > 0 && (H[e] = K.symbolSlotHeight - n, W[e] -= K.symbolSlotHeight), B[e] = Z.stopLocations[e]
                }

                function y(t, e) {
                    I[t] = e
                }

                function b() {
                    I[0], M[0];
                    for (var t = 0; t < r.options.reels.length; t++) M[t] = I[t]
                }

                function v() {
                    _(A)
                }

                function _(t) {
                    t.children.sort(function(t, e) {
                        return t.zIndex - e.zIndex || e.x - t.x || t.y - e.y
                    })
                }

                function x(t) {
                    t = Math.min(t, 100);
                    for (var e = 0; e < r.options.reels.length; e++) switch (L[e].sort(function(t, e) {
                        return t.ry > e.ry
                    }), k[e].sort(function(t, e) {
                        return t.ry > e.ry
                    }), M[e]) {
                        case O.INIT_NEEDED:
                            c(e), M[e] = O.SPIN_REST;
                        case O.SPIN_REST:
                            break;
                        case O.SPIN_INIT:
                            tt.hide(e), N[e] = $.startTimer ? $.startTimer[e] : 0, j[e] = $.startTicks ? $.startTicks[e] : 0, y(e, O.SPIN_WAITSTART);
                        case O.SPIN_WAITSTART:
                            j[e]--, N[e] -= t, Math.max(j[e], N[e]) <= 0 && (y(e, O.SPIN_FAUX_BOUNCE_START), X[e] = 0, ot && ot(e, "STARTED")), h(0, e);
                            break;
                        case O.SPIN_FAUX_BOUNCE_START:
                            $.startBounce && X[e] < $.startBounce.length ? (z[e] = $.startBounce[X[e]], X[e] += 1) : (z[e] = 0, X[e] = 0, y(e, O.SPIN_SPINUP)), o(e);
                            break;
                        case O.SPIN_SPINUP:
                            h(t, e) && (y(e, O.SPIN_SPINNING), (at += 1) === M.length && (rt && rt.call(), rt = null));
                            break;
                        case O.SPIN_SPINNING:
                            h(t, e), J && (G[e] = Z.stopTimer[e], U[e] = Z.stopTicks[e], y(e, O.SPIN_PRESTOP));
                            break;
                        case O.SPIN_PRESTOP:
                            h(t, e), U[e]--, G[e] -= t, Math.max(U[e], G[e]) <= 0 && y(e, O.SPIN_FINDEND);
                            break;
                        case O.SPIN_FINDEND:
                            h(t, e), m(t, e), g(t, e), y(e, O.SPIN_STITCH);
                            break;
                        case O.SPIN_STITCH:
                            h(t, e), g(t, e), d(e) && y(e, O.SPIN_STOPPING);
                            break;
                        case O.SPIN_STOPPING:
                            g(t, e), f(e) && y(e, O.SPIN_STOPEND);
                            break;
                        case O.SPIN_STOPEND:
                            g(t, e), p(e) && (y(e, O.SPIN_FAUX_BOUNCE), X[e] = 0, ot && ot(e, "BOUNCE"));
                            break;
                        case O.SPIN_FAUX_BOUNCE:
                            Z.stopBounce && X[e] < Z.stopBounce.length ? (H[e] = Z.stopBounce[X[e]], X[e] += 1) : (H[e] = 0, X[e] = 0, y(e, O.SPIN_HANDBRAKE)), a(e);
                            break;
                        case O.SPIN_HANDBRAKE:
                            D[e] = B[e], y(e, O.SPIN_REST), s(e, Z), c(e), ot && ot(e, "STOPPED"), at -= 1, 0 === at && it && ($ = Z, it.call(), it = null)
                    }
                    b(), v()
                }

                function T(t, e) {
                    $ = t, $.reelset && (nt = $.reelset);
                    for (var n = 0; n < r.options.reels.length; n++) z[n] = 0, V[n] = D[n] * K.symbolSlotHeight, y(n, O.SPIN_INIT), q[n] = t.reelSpeed[n] / 1e3;
                    u(), at = 0, rt = e, J = !1
                }

                function w(t, e, n) {
                    Z = t, it = e, ot = n, at = M.length, J = !0
                }

                function S(t) {
                    nt = t.reelset;
                    for (var e = 0; e < t.stopLocations.length; e++) D[e] = t.stopLocations[e], M[e] = O.SPIN_REST, I[e] = O.SPIN_REST, z[e] = 0, V[e] = D[e] * K.symbolSlotHeight, Y[e] = Math.floor(V[e] / K.symbolSlotHeight), s(e, t);
                    u(), l(), v()
                }

                function C(t) {
                    S($), t && t()
                }

                function E() {
                    return tt.getLimitedAccess()
                }
                var O = {
                        INIT_NEEDED: -1,
                        SPIN_REST: 0,
                        SPIN_INIT: 2,
                        SPIN_WAITSTART: 3,
                        SPIN_FAUX_BOUNCE_START: 4,
                        SPIN_SPINUP: 6,
                        SPIN_SPINNING: 8,
                        SPIN_PRESTOP: 9,
                        SPIN_FINDEND: 10,
                        SPIN_STITCH: 12,
                        SPIN_STOPPING: 14,
                        SPIN_STOPEND: 16,
                        SPIN_FAUX_BOUNCE: 18,
                        SPIN_HANDBRAKE: 99
                    },
                    P = new t.Container,
                    A = new t.Container,
                    R = [],
                    M = [],
                    I = [],
                    D = [],
                    L = [],
                    k = [],
                    F = {},
                    B = [],
                    N = [],
                    j = [],
                    G = [],
                    U = [],
                    W = [],
                    H = [],
                    X = [],
                    V = [],
                    z = [],
                    Y = [],
                    q = [],
                    J = !1,
                    K = r,
                    $ = {},
                    Z = {};
                t.extras.AnimatedSprite || (t.extras.AnimatedSprite = t.extras.MovieClip);
                var Q, tt, et = [],
                    nt = "BaseGame";
                ! function() {
                    r.spriteOffsets || (r.spriteOffsets = {}), r.symbolNames.forEach(function(e) {
                        if (Array.isArray(r.spriteMap[e])) {
                            var n = [];
                            r.spriteMap[e].forEach(function(e) {
                                n.push(t.Texture.fromFrame(e))
                            }), F[e] = {
                                textures: n
                            }
                        } else F[e] = {
                            textures: t.Texture.fromFrame(r.spriteMap[e])
                        };
                        r.spriteOffsets[e] || (r.spriteOffsets[e] = {
                            x: 0,
                            y: 0,
                            z: 0
                        }), F[e].xOffset = r.spriteOffsets[e].x, F[e].yOffset = r.spriteOffsets[e].y, F[e].zOffset = r.spriteOffsets[e].z || 0
                    }), tt = e(r, F), r.StripInfo && (nt = Object.keys(r.StripInfo)[0], Object.keys(r.StripInfo).forEach(function(t) {
                        r.StripInfo[t][0].Stop && r.StripInfo[t].forEach(function(e, n) {
                            var i = [];
                            e.Stop.forEach(function(t, e) {
                                i.push(t["@symbolID"])
                            }), r.StripInfo[t][n] = i
                        })
                    }));
                    for (var n = 0, o = new t.Graphics, a = !0, s = r.options.reels[0].y, u = 0; u < r.options.reels.length; u++) r.options.reels[u].y !== s && (a = !1);
                    if (r.options.reels.length > 1 && a)
                        for (u = 1; u < r.options.reels.length; u++) K.options.reels[u - 1].symbolCount != K.options.reels[u].symbolCount && (a = !1);
                    if (K.options.clip) K.options.clip.forEach(function(t) {
                        o.beginFill(), o.drawRect(t.x, t.y, t.w, t.h), o.endFill()
                    });
                    else if (a) o.beginFill(), o.drawRect(r.options.pos.x + r.options.reels[0].x, r.options.pos.y + r.options.reels[0].y, (K.symbolSlotWidth + K.symbolSpacingW) * r.options.reels.length - K.symbolSpacingW, (K.symbolSlotHeight + K.symbolSpacingH) * K.options.reels[0].symbolCount - K.symbolSpacingH), o.endFill();
                    else {
                        for (o.beginFill(), u = 0; u < r.options.reels.length; u++) o.drawRect(r.options.pos.x + r.options.reels[u].x, r.options.pos.y + r.options.reels[u].y, K.symbolSlotWidth + r.symbolSpacingW, (K.symbolSlotHeight + r.symbolSpacingH) * K.options.reels[u].symbolCount);
                        o.endFill()
                    }
                    for (o.zIndex = 1e3, P.addChild(o), Q = o, u = 0; u < r.options.reels.length; u++) {
                        et.push(r.StripInfo[nt][u].length * K.symbolSlotHeight), D.push(0), M.push(O.INIT_NEEDED), I.push(O.INIT_NEEDED);
                        for (var l = [i(u), i(u), i(u), i(u)], c = [i(u), i(u), i(u), i(u)], h = [], d = 0; d < r.options.reels[u].symbolCount; d++) l.push(i(u)), c.push(i(u)), R.push(i(u)), h.push(R[n]), n += 1;
                        L.push(l), k.push(c)
                    }
                    for (u = 0; u < r.options.reels.length; u++) L[u].forEach(function(t) {
                        A.addChild(t)
                    });
                    for (u = 0; u < r.options.reels.length; u++) k[u].forEach(function(t) {
                        A.addChild(t)
                    });
                    for (A.mask = Q, P.addChild(A), u = 0; u < r.options.reels.length; u++) B.push(0), N.push(0), j.push(0), G.push(0), U.push(0), W.push(0), H.push(0), X.push(0), V.push(0), z.push(0), Y.push(0), q.push(-400);
                    P.addChild(tt.getContainer())
                }();
                var rt, it, ot, at = 0;
                return {
                    spin: T,
                    resolve: w,
                    setReels: S,
                    cancelSpin: C,
                    getContainer: function() {
                        return P
                    },
                    process: x,
                    getWinPresentationLayer: E
                }
            }
        }), define("game/ReelController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/phoenixReel/reelspin", "skbJet/component/audioPlayer/AudioPlayerProxy", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/currencyHelper/currencyHelper", "game/WinlineAnimController"], function(t, e, n, r, i, o, a) {
            function s() {
                return {
                    options: {
                        pos: {},
                        clip: et,
                        reels: [{
                            symbolCount: 4
                        }, {
                            symbolCount: 4
                        }, {
                            symbolCount: 4
                        }, {
                            symbolCount: 4
                        }, {
                            symbolCount: 4
                        }]
                    },
                    symbolNames: ["s01", "s02", "s03", "s04", "s05", "s06", "s07", "s08", "s09", "s10", "s11", "b01", "w01", "w02"],
                    spriteMap: {},
                    StripInfo: {},
                    locationsMap: ["L0C0R0", "L0C0R1", "L0C0R2", "L0C0R3", "L0C1R0", "L0C1R1", "L0C1R2", "L0C1R3", "L0C2R0", "L0C2R1", "L0C2R2", "L0C2R3", "L0C3R0", "L0C3R1", "L0C3R2", "L0C3R3", "L0C4R0", "L0C4R1", "L0C4R2", "L0C4R3"]
                }
            }

            function u(t, e) {
                for (var n = [], r = t.PopulationOutcome, i = 0; i < r.length; i++)
                    if (r[i]["@name"] === e + ".Reels")
                        for (var o = 0; o < r[i].Entry.length; o++) n.push(parseInt(r[i].Entry[o]["@stripIndex"]));
                return n
            }

            function l(t, e) {
                var n = t.PopulationOutcome;
                nt = {};
                var r = "FreeSpin" === t.OutcomeDetail.Stage ? "FreeSpin" : "BaseGame";
                e && "FreeSpin" === t.OutcomeDetail.Stage && "BaseGame" === t.OutcomeDetail.NextStage && (r = "FreeSpin");
                for (var i = 0; i < n.length; i++)
                    if (n[i]["@name"] === r + ".Reels")
                        for (var o = n[i].Entry, a = 0; a < o.length; a++)
                            for (var s = o[a].Cell, u = 0; u < s.length; u++) {
                                var l = s[u];
                                nt[l["@name"]] = l["#text"]
                            }
            }

            function c(t) {
                var n = "FreeSpin" === t ? k : L;
                n.symbolSlotWidth = o.formatFloat(e.lib._reels_0_0._currentStyle._width), n.symbolSlotHeight = o.formatFloat(e.lib._reels_0_0._currentStyle._height), n.options.pos.x = o.formatFloat(Q), n.options.pos.y = o.formatFloat(tt), n.symbolSpacingW = o.formatFloat(e.lib._reels_0_1._currentStyle._left) - o.formatFloat(e.lib._reels_0_0._currentStyle._left) - n.symbolSlotWidth, n.symbolSpacingH = o.formatFloat(e.lib._reels_1_0._currentStyle._top) - o.formatFloat(e.lib._reels_0_0._currentStyle._top) - n.symbolSlotHeight;
                for (var r = 0; r < n.options.reels.length; r++) n.options.reels[r].x = (n.symbolSpacingW + n.symbolSlotWidth) * r, n.options.reels[r].y = 0;
                for (r = 0; r < n.symbolNames.length; r++) {
                    var i = n.symbolNames[r];
                    n.spriteMap[i] = i.toLowerCase() + "BaseGame_0001"
                }
                W.StripInfo.forEach(function(t) {
                    n.StripInfo[t["@name"]] = t.Strip
                })
            }

            function h() {
                var t = f();
                "FreeSpin" == ("FreeSpin" === U.OutcomeDetail.NextStage ? "FreeSpin" : "BaseGame") ? (J.visible = !1, K.visible = !0) : (J.visible = !0, K.visible = !1), t.setReels({
                    reelset: d(U.OutcomeDetail.NextStage),
                    stopLocations: u(U, U.OutcomeDetail.NextStage)
                });
                var n = e.getTicker();
                X && (n.remove(X), X = null), X = function() {
                    t.process(n.elapsedMS)
                }, n.add(X)
            }

            function d(t) {
                for (var e = "BaseGame.ReelSet0", n = U.PopulationOutcome, r = 0; r < n.length; r++)
                    if (n[r]["@name"] === t + ".ReelSetSelect") {
                        e = n[r].Entry.Cell["#text"];
                        break
                    }
                return e
            }

            function f() {
                return "FreeSpin" === U.OutcomeDetail.NextStage ? q : Y
            }

            function p() {
                return "FreeSpin" === U.OutcomeDetail.NextStage ? k : L
            }

            function g(t) {
                I = t.serverConfig.presenttype, D = t.serverConfig.channel, "STD" === I ? "INT" !== D ? (et = [{
                    x: 98,
                    y: 19,
                    w: 648,
                    h: 392
                }], Q = 98, tt = 19) : (et = [{
                    x: 147,
                    y: 47,
                    w: 966,
                    h: 592
                }], Q = 147, tt = 47) : (et = [{
                    x: 49,
                    y: 6,
                    w: 386,
                    h: 240
                }], Q = 49, tt = 6)
            }

            function m(r) {
                L = s(), k = s(), U = r.GameLogicResponse, W = r.PaytableResponse, H = U.OutcomeDetail.Stage, c("BaseGame"), c("FreeSpin"), Y = n(e.getPixiRenderer(), L), q = n(e.getPixiRenderer(), k), J = Y.getContainer(), K = q.getContainer(), e.lib._reelSetBG.pixiContainer.addChild(J), e.lib._reelSetBG.pixiContainer.addChild(K);
                for (var i in e.lib._reelSetBG.sprites) e.lib._reelSetBG.sprites[i].show(!1);
                $ = Y.getWinPresentationLayer(), Z = q.getWinPresentationLayer(), a.init({
                    basegame: {
                        config: L,
                        winPresentation: $
                    },
                    freespin: {
                        config: k,
                        winPresentation: Z
                    },
                    currentStage: "FreeSpin" === U.OutcomeDetail.NextStage ? "FreeSpin" : "BaseGame"
                }), h(), t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.InitDone",
                    data: {
                        version: {
                            gameVersion: window._cacheFlag.gameVersion,
                            gleVersion: W.VersionInfo ? W.VersionInfo.GameLogicVersion : "???"
                        }
                    }
                })
            }

            function y() {
                t.publish("nextState")
            }

            function b() {
                "FreeSpin" === H && ("BaseGame" === G.response.OutcomeDetail.NextStage ? t.publish("nextState") : "FreeSpin" === G.response.OutcomeDetail.NextStage && t.publish("nextState")), "BaseGame" === H && ("BaseGame" === G.response.OutcomeDetail.NextStage ? (t.publish("beginLines", G), t.publish("beginBig", G)) : "FreeSpin" === G.response.OutcomeDetail.NextStage && t.publish("nextState"))
            }

            function v(t) {
                U = t.response, F = f(), B = p();
                var e = {
                    startTicks: [0, 0, 0, 0, 0],
                    startTimer: [0, 0, 0, 0, 0],
                    reelSpeed: [-2500, -2500, -2500, -2500, -2500],
                    reelset: d(U.OutcomeDetail.Stage),
                    stopLocations: u(U, U.OutcomeDetail.Stage)
                };
                F.spin(e, y)
            }

            function _(t) {
                G = t, U = t.response, H = U.OutcomeDetail.Stage, j = 0, T(), l(t.response, !0), F.resolve({
                    stopTicks: [0, 10, 20, 30, 40],
                    stopTimer: w(B.options.reels, U),
                    stopBounce: [-12, -18, -24, -28, -30, -27, -24, -12],
                    reelset: d(U.OutcomeDetail.Stage),
                    stopLocations: u(U, U.OutcomeDetail.Stage)
                }, b, x)
            }

            function x(t, e) {
                "STOPPED" === e && (N[t] ? (j++, 3 === t ? j >= 2 ? r.play("Smart" + N[t], 3) : r.play("ReelStop", 2) : 4 === t ? j >= 3 ? r.play("Smart" + N[t], 3) : r.play("ReelStop", 2) : r.play("Smart" + N[t], 3)) : r.play("ReelStop", 2), j >= 2 && 4 !== t && r.play("Anticipation", 8))
            }

            function T() {
                N = [];
                for (var t = 0; t < U.PopulationOutcome.length; t++) {
                    var e = U.PopulationOutcome[t];
                    if (e["@name"] === H + ".Reels") {
                        for (var n = 0, r = 0; r < e.Entry.length; r++) {
                            for (var i = e.Entry[r].Cell, o = !1, a = 0; a < i.length; a++)
                                if ("b01" === i[a]["#text"]) {
                                    o = !0;
                                    break
                                }
                            o ? (n++, 1 === n && 4 === r ? N.push(null) : N.push(n)) : N.push(null)
                        }
                        break
                    }
                }
            }

            function w(t, e) {
                for (var n = [], r = 0, i = 300, o = S(e), a = 0; a < t.length; a++) {
                    C(o, 4 * a, 4 * (a + 1)) ? (r++, r > 2 ? (i += z, n.push(i)) : (i += V, n.push(i))) : (i += r >= 2 ? z : V, n.push(i))
                }
                return n
            }

            function S(t) {
                for (var e = [], n = t.PopulationOutcome, r = 0; r < n.length; r++)
                    if (n[r]["@name"] === t.OutcomeDetail.Stage + ".Reels")
                        for (var i = n[r].Entry, o = 0; o < i.length; o++)
                            for (var a = 0; a < i[o].Cell.length; a++) e.push(i[o].Cell[a]["#text"]);
                return e
            }

            function C(t, e, n) {
                for (var r = e; r < n; r++)
                    if ("b01" === t[r]) return !0;
                return !1
            }

            function E() {
                R()
            }

            function O() {
                var t = f();
                r.stopChannel(0), t.cancelSpin()
            }

            function P(t) {
                "FreeSpin" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && r.play("BonusMusicLoop", 0, !0), "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && r.play("BonusMusicLoop", 0, !0), "BaseGame" === t.response.OutcomeDetail.Stage && t.response.OutcomeDetail.NextStage, "FreeSpin" === t.response.OutcomeDetail.Stage && t.response.OutcomeDetail.NextStage, h()
            }

            function A(n) {
                H = n.response.OutcomeDetail.NextStage, R(), h(), "FreeSpin" === n.response.OutcomeDetail.Stage && "BaseGame" === n.response.OutcomeDetail.NextStage && e.getTimer().setTimeout(function() {
                    t.publish("beginBig", n), t.publish("beginLines", n)
                }, 1500), "BaseGame" === n.response.OutcomeDetail.Stage && "FreeSpin" === n.response.OutcomeDetail.NextStage && (e.getTimer().setTimeout(function() {
                    t.publish("nextState")
                }, 1500), r.play("BonusMusicLoop", 0, !0))
            }

            function R() {
                var t = "FreeSpin" === U.OutcomeDetail.NextStage ? "FreeSpin" : "BaseGame",
                    n = "FreeSpin" === t ? "reelsFrameBonus" : "reelsFrame";
                e.lib._reelSetBG.updateCurrentStyle({
                    _background: {
                        _imagePlate: n
                    }
                }), "reelsFrameBonus" === n ? e.lib._reelSetBGDec.show(!0) : e.lib._reelSetBGDec.show(!1)
            }

            function M(e) {
                A(e), "FreeSpin" === e.response.OutcomeDetail.Stage && "FreeSpin" === e.response.OutcomeDetail.NextStage && t.publish("nextState")
            }
            var I, D, L, k, F, B, N, j, G, U = null,
                W = null,
                H = null,
                X = null,
                V = 300,
                z = 1500,
                Y = null,
                q = null,
                J = null,
                K = null,
                $ = null,
                Z = null,
                Q = 147,
                tt = 47,
                et = [{
                    x: 147,
                    y: 47,
                    w: 966,
                    h: 592
                }],
                nt = {};
            return t.subscribe("onBeforeRequest", v), t.subscribe("onResolveStage", _), t.subscribe("onBeforeShowStage", E), t.subscribe("onAbortNextStage", O), t.subscribe("onResetNextStage", P), t.subscribe("platformMsg/ClientService/Game.Init", m), t.subscribe("platformMsg/Kernel/System.Init", g), t.subscribe("onEnterNextStage", A), t.subscribe("onStartGameInProgressNextStage", M), {}
        }), define("game/PaytableHelpController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/currencyHelper/currencyHelper", "skbJet/component/audioPlayer/AudioPlayerProxy", "game/AutoSpinController"], function(t, e, n, r, i, o) {
            function a(t) {
                for (var e = document.getElementsByTagName("article"), n = 0; n < e.length; n++) e[n].addEventListener("mousedown", s, !1);
                document.addEventListener("mousemove", s, !1), M = t.serverConfig.paramGame.assetPack
            }

            function s(t) {
                var e = t || window.event;
                e.returnValue = !1, e.preventDefault()
            }

            function u(t) {
                O = t.PaytableResponse.AwardCapInfo.CurrencyCap.AwardCap, "true" === t.PaytableResponse.PaytableStatistics["@singleRTP"] ? (P = t.PaytableResponse.PaytableStatistics["@maxSingleRTP"], A = t.PaytableResponse.PaytableStatistics["@minSingleRTP"]) : (P = t.PaytableResponse.PaytableStatistics["@maxRTP"], A = t.PaytableResponse.PaytableStatistics["@minRTP"]), P === A ? (n.i18n.Paytable.RTPvalue = n.i18n.Paytable.RTPvalue.replace("{@minRTP}", A), R = n.i18n.Paytable.RTPvalue) : (n.i18n.Paytable.RTPrange = n.i18n.Paytable.RTPrange.replace("{@minRTP}", A), n.i18n.Paytable.RTPrange = n.i18n.Paytable.RTPrange.replace("{@maxRTP}", P), R = n.i18n.Paytable.RTPrange), document.getElementById("searchContainer").style.display = "none", f(), "mobile" !== M && "tablet" !== M && "tabletmini" !== M || y()
            }

            function l() {
                b(), v(), x()
            }

            function c(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && y()
            }

            function h() {
                o.currentAutoSpinState() ? y() : m()
            }

            function d() {
                m()
            }

            function f() {
                t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            type: "command",
                            name: "paytable",
                            text: n.i18n.MenuCommand.payTable,
                            enabled: 1
                        }]
                    }
                }), t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Register",
                    data: {
                        options: [{
                            type: "command",
                            name: "howToPlay",
                            text: n.i18n.MenuCommand.howToPlay,
                            enabled: 1
                        }]
                    }
                })
            }

            function p() {
                y()
            }

            function g() {
                m()
            }

            function m() {
                t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "howToPlay",
                        event: "enable",
                        params: [1]
                    }
                }), t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "paytable",
                        event: "enable",
                        params: [1]
                    }
                })
            }

            function y() {
                t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "howToPlay",
                        event: "enable",
                        params: [0]
                    }
                }), t.publish("toPlatform", {
                    channel: "Game",
                    topic: "Game.Control",
                    data: {
                        name: "paytable",
                        event: "enable",
                        params: [0]
                    }
                })
            }

            function b() {
                var t = document.getElementById("gameRules").getElementsByTagName("header")[0],
                    e = document.getElementById("payTable").getElementsByTagName("header")[0];
                t.innerHTML = n.i18n.Game.gameRules, e.innerHTML = n.i18n.Game.payTable
            }

            function v() {
                var t = n.i18n.paytableHTML.replace(/\"/g, "'");
                t = t.replace("<winlinediagrams/>", I), t = t.replace("{awardCap}", r.formatBalance(O)), t = t.replace("{RTP}", R), t = _(t), document.getElementById("paytableArticle").innerHTML = t;
                var e = n.i18n.helpHTML.replace(/\"/g, "'"),
                    i = document.getElementById("gameRulesArticle");
                e = _(e), i.innerHTML = e
            }

            function _(t) {
                return t = t.replace(/{w12}/g, n.getImgObj("w12").outerHTML), t = t.replace(/{b01}/g, n.getImgObj("b01BaseGame_0001").outerHTML), t = t.replace(/{s01}/g, n.getImgObj("s01BaseGame_0001").outerHTML), t = t.replace(/{s02}/g, n.getImgObj("s02BaseGame_0001").outerHTML), t = t.replace(/{s03}/g, n.getImgObj("s03BaseGame_0001").outerHTML), t = t.replace(/{s04}/g, n.getImgObj("s04BaseGame_0001").outerHTML), t = t.replace(/{s05}/g, n.getImgObj("s05BaseGame_0001").outerHTML), t = t.replace(/{s06}/g, n.getImgObj("s06BaseGame_0001").outerHTML), t = t.replace(/{s07}/g, n.getImgObj("s07BaseGame_0001").outerHTML), t = t.replace(/{s08}/g, n.getImgObj("s08BaseGame_0001").outerHTML), t = t.replace(/{s09}/g, n.getImgObj("s09BaseGame_0001").outerHTML), t = t.replace(/{s10}/g, n.getImgObj("s10BaseGame_0001").outerHTML), t = t.replace(/{s11}/g, n.getImgObj("s11BaseGame_0001").outerHTML)
            }

            function x() {
                var t = document.getElementsByClassName("closeBtn");
                Array.prototype.forEach.call(t, function(t) {
                    t.innerHTML = n.i18n.Game.buttonClose, t.onclick = function() {
                        T("game")
                    }
                })
            }

            function T(t) {
                var e = document.getElementsByClassName("tab");
                "game" === t && (document.getElementById("searchContainer").style.display = "none");
                for (var n = 0; n < e.length; n++) e[n].style.display = "none";
                i.play("ControlsGeneric1", 13), document.getElementById(t).style.display = "block"
            }

            function w() {
                y()
            }

            function S(t) {
                if ("paytable" === t.option || "howToPlay" === t.option) {
                    var e = "howToPlay" === t.option ? "gameRules" : "payTable";
                    document.getElementById("searchContainer").style.display = "block", T("block" === document.getElementById(e).style.display ? "game" : e)
                }
            }

            function C(t) {
                "BaseGame" === t.response.OutcomeDetail.NextStage && m()
            }

            function E() {
                "mobile" !== M && "tablet" !== M && "tabletmini" !== M || m()
            }
            var O, P, A, R, M, I = '<ul class="paylinetables clearfix"><li style="margin-bottom:20px"><div>1</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>2</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>3</div><div><table border="1"><tr><td class="blue"></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>4</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>5</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>6</div><div><table border="1"><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>7</div><div><table border="1"><tr><td></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>8</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>9</div><div><table border="1"><tr><td class="blue"></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td class="blue"></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>10</div><div><table border="1"><tr><td></td><td></td><td></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>11</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>12</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>13</div><div><table border="1"><tr><td class="blue"></td><td class="blue"></td><td></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>14</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td></td><td class="blue"></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>15</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>16</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>17</div><div><table border="1"><tr><td class="blue"></td><td class="blue"></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>18</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td class="blue"></td><td></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>19</div><div><table border="1"><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>20</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>21</div><div><table border="1"><tr><td class="blue"></td><td class="blue"></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td class="blue"></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>22</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td class="blue"></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td></td><td></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>23</div><div><table border="1"><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>24</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>25</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>26</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>27</div><div><table border="1"><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>28</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td class="blue"></td><td></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td></td><td class="blue"></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>29</div><div><table border="1"><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>30</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td></td><td class="blue"></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>31</div><div><table border="1"><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>32</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td class="blue"></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>33</div><div><table border="1"><tr><td></td><td class="blue"></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td class="blue"></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>34</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>35</div><div><table border="1"><tr><td class="blue"></td><td></td><td class="blue"></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>36</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td class="blue"></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>37</div><div><table border="1"><tr><td class="blue"></td><td></td><td></td><td class="blue"></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td class="blue"></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>38</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td class="blue"></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td></td><td class="blue"></td><td class="blue"></td></tr></table></div></li><li style="margin-bottom:20px"><div>39</div><div><table border="1"><tr><td></td><td></td><td></td><td class="blue"></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td class="blue"></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table></div></li><li style="margin-bottom:20px"><div>40</div><div><table border="1"><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td class="blue"></td><td></td><td></td><td></td></tr><tr><td class="blue"></td><td></td><td class="blue"></td><td></td><td class="blue"></td></tr><tr><td></td><td></td><td></td><td class="blue"></td><td></td></tr></table></div></li></ul>';
            return t.subscribe("onResetNextStage", C), t.subscribe("platformMsg/Kernel/System.Init", a), t.subscribe("platformMsg/ClientService/Game.Init", u), t.subscribe("onBeforeShowStage", l), t.subscribe("onBeforeRequest", c), t.subscribe("onBeginNewGame", h), t.subscribe("AutoSpinController.autoSpinEnd", d), t.subscribe("platformMsg/ConsoleService/Game.Control", S), t.subscribe("onStartGameInProgressStage", w), t.subscribe("disableConsole", y), t.subscribe("enableConsole", m), t.subscribe("autoBtnClicked", p), t.subscribe("autoBtnCancel", g), t.subscribe("audioPlayer.playerSelectedWhenGameLaunch", E), {}
        }), define("game/StatusBarController", ["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/currencyHelper/currencyHelper", "game/BetController", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "com/pixijs/pixi"], function(t, e, n, r, i, o) {
            function a(t) {
                v = t.serverConfig.presenttype, _ = t.serverConfig.channel
            }

            function s() {
                e.lib._statusBar.show(!1), e.lib._centerBar.setText(""), e.lib._statusBarBaseToFree.show(!1), e.lib._statusBarBaseToFreeText.setText("")
            }

            function u() {
                e.animMap._centerBarFlicker.stop(), e.lib._statusBar.show(!1), e.lib._centerBar.setText("")
            }

            function l() {
                e.animMap._centerBarFlickerBaseToFree.stop(), e.lib._statusBarBaseToFree.show(!1), h("_statusBarBaseToFreeText")
            }

            function c(t, r) {
                var i = {
                        fontSize: 40,
                        dropShadowBlur: 0,
                        dropShadowDistance: 2,
                        strokeThickness: 2
                    },
                    a = 1,
                    s = 1;
                "STD" === v ? "INT" !== _ ? (a = 2 / 3, s = 2 / 3) : (a = 1, s = 1) : (a = .4, s = .4);
                var u = {
                        fontFamily: "Arial",
                        fontSize: i.fontSize,
                        fontWeight: "bold",
                        fill: ["#64F1FF"],
                        dropShadow: !0,
                        dropShadowColor: "#078166",
                        dropShadowBlur: i.dropShadowBlur,
                        dropShadowDistance: i.dropShadowDistance,
                        stroke: "#0033CC",
                        strokeThickness: i.strokeThickness
                    },
                    l = new o.Text;
                l.text = t, l.style = u, l.scale.x = a, l.scale.y = s, l.x = n.formatFloat((n.formatFloat(e.lib[r]._currentStyle._width) - n.formatFloat(l.width)) / 2), e.lib[r].setText(""), e.lib[r].pixiContainer.addChild(l), e.lib[r].show(!0)
            }

            function h(t) {
                e.lib[t].pixiContainer.removeChildren()
            }

            function d(t) {
                c(t, "_statusBarBaseToFreeText"), e.lib._statusBarBaseToFree.show(!0), e.animMap._centerBarFlickerBaseToFree.play(1e3)
            }

            function f(t) {
                e.lib._centerBar.setText(t), e.lib._statusBar.show(!0), e.animMap._centerBarFlicker.play(1e3)
            }

            function p(t) {
                "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && l()
            }

            function g(t) {
                "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage || f(i.i18n.Game.bonusPrompt)
            }

            function m(t) {
                "BaseGame" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage ? l() : u()
            }

            function y(t) {
                "FreeSpin" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && f(i.i18n.Game.bonusPrompt)
            }

            function b(t) {
                "FreeSpin" === t.response.OutcomeDetail.Stage && "FreeSpin" === t.response.OutcomeDetail.NextStage && e.animMap._centerBarFlicker.isPlaying && u()
            }
            var v, _;
            return t.subscribe("platformMsg/ClientService/Game.Init", s), t.subscribe("platformMsg/Kernel/System.Init", a), t.subscribe("onEnterNextStage", p), t.subscribe("onStartGameInProgressStage", g), t.subscribe("onStartGameInProgressNextStage", m), t.subscribe("showStatusBaseToFreeTips", d), t.subscribe("onResetNextStage", y), t.subscribe("onBeforeRequest", b), {}
        }), require(["skbJet/component/gameMsgBus/GameMsgBus", "skbJet/component/gladPixiRenderer/gladPixiRenderer", "skbJet/component/audioPlayer/AudioPlayerProxy", "skbJet/component/pixiResourceLoader/pixiResourceLoader", "skbJet/component/gameMsgBus/PlatformMsgBusAdapter", "game/LoadController", "game/BackgroundController", "skbJet/componentCRDC/SlotGameControllers/gameSizeController", "game/ActionButtonController", "game/FreeSpinDialog", "game/MetersController", "game/BigWinController", "game/ReelController", "game/PaytableHelpController", "game/BetController", "game/AutoSpinController", "game/StatusBarController", "game/RollUp", "game/WinlineAnimController", "game/winLinesInfo", "data/WinDataModel"], function(t) {
            function e(t) {
                u = t.serverConfig.channel, s.init(t)
            }

            function n(e) {
                a = e.response.OutcomeDetail.NextStage, document.getElementById("game").style.backgroundColor = "rgba(255,255,255,0.01)", t.publish("nextState")
            }

            function r() {
                document.getElementById("game").style.backgroundColor = ""
            }

            function i() {
                document.getElementById("game").style.backgroundColor = ""
            }

            function o(t) {
                a = t.response.OutcomeDetail.NextStage
            }
            var a, s = require("data/WinDataModel"),
                u = "MOB";
            t.subscribe("platformMsg/Kernel/System.Init", e), t.subscribe("onEnterNextStage", o), t.subscribe("onStartGameInitial", i), t.subscribe("onBeforeShowStage", n), t.subscribe("onStartGameInProgressStage", r)
        }), define("game", function() {})
}();