! function(t) {
    var e = window.am4internal_webpackJsonp;
    window.am4internal_webpackJsonp = function(i, a, o) {
        for (var s, l, u, h = 0, c = []; h < i.length; h++) l = i[h], n[l] && c.push(n[l][0]), n[l] = 0;
        for (s in a) Object.prototype.hasOwnProperty.call(a, s) && (t[s] = a[s]);
        for (e && e(i, a, o); c.length;) c.shift()();
        if (o)
            for (h = 0; h < o.length; h++) u = r(r.s = o[h]);
        return u
    };
    var i = {},
        n = {
            a74a: 0
        };

    function r(e) {
        if (i[e]) return i[e].exports;
        var n = i[e] = {
            i: e,
            l: !1,
            exports: {}
        };
        return t[e].call(n.exports, n, n.exports, r), n.l = !0, n.exports
    }
    r.e = function(t) {
        var e = n[t];
        if (0 === e) return new Promise(function(t) {
            t()
        });
        if (e) return e[2];
        var i = new Promise(function(i, r) {
            e = n[t] = [i, r]
        });
        e[2] = i;
        var a = document.getElementsByTagName("head")[0],
            o = document.createElement("script");
        o.type = "text/javascript", o.charset = "utf-8", o.async = !0, o.timeout = 12e4, r.nc && o.setAttribute("nonce", r.nc), o.src = r.p + "deps/" + ({
            "0471": "canvg",
            "076f": "pdfmake",
            bf3e: "xlsx"
        } [t] || t) + ".js";
        var s = setTimeout(l, 12e4);

        function l() {
            o.onerror = o.onload = null, clearTimeout(s);
            var e = n[t];
            0 !== e && (e && e[1](new Error("Loading chunk " + t + " failed.")), n[t] = void 0)
        }
        return o.onerror = o.onload = l, a.appendChild(o), i
    }, r.m = t, r.c = i, r.d = function(t, e, i) {
        r.o(t, e) || Object.defineProperty(t, e, {
            configurable: !1,
            enumerable: !0,
            get: i
        })
    }, r.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        } : function() {
            return t
        };
        return r.d(e, "a", e), e
    }, r.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }, r.p = "", r.oe = function(t) {
        throw console.error(t), t
    }, r(r.s = 0)
}({
    "+APs": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("Wqjq").codeAt;
        n({
            target: "String",
            proto: !0
        }, {
            codePointAt: function(t) {
                return r(this, t)
            }
        })
    },
    "+K/x": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("Uslz"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "CategoryAxisBreak", e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "startPosition", {
                    get: function() {
                        if (this.axis) return this.axis.indexToPosition(this.adjustedStartValue)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endPosition", {
                    get: function() {
                        if (this.axis) return this.axis.indexToPosition(this.adjustedEndValue)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startCategory", {
                    get: function() {
                        return this.getPropertyValue("startCategory")
                    },
                    set: function(t) {
                        this.setPropertyValue("startCategory", t) && this.axis && (this.axis.invalidateDataItems(), this.axis.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endCategory", {
                    get: function() {
                        return this.getPropertyValue("endCategory")
                    },
                    set: function(t) {
                        this.setPropertyValue("endCategory", t) && this.axis && (this.axis.invalidateDataItems(), this.axis.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startValue", {
                    get: function() {
                        var t = this.getPropertyValue("startCategory");
                        return t ? this.axis.categoryToIndex(t) : this.getPropertyValue("startValue")
                    },
                    set: function(t) {
                        this.setPropertyValue("startValue", t) && this.axis && (this.axis.invalidateDataItems(), this.axis.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endValue", {
                    get: function() {
                        var t = this.getPropertyValue("endCategory");
                        return t ? this.axis.categoryToIndex(t) : this.getPropertyValue("endValue")
                    },
                    set: function(t) {
                        this.setPropertyValue("endValue", t) && this.axis && (this.axis.invalidateDataItems(), this.axis.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.CategoryAxisBreak = o
    },
    "+Pwd": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("tNpr"),
            a = i("9XRO"),
            o = i("xlUI"),
            s = [].join,
            l = r != Object,
            u = o("join", ",");
        n({
            target: "Array",
            proto: !0,
            forced: l || !u
        }, {
            join: function(t) {
                return s.call(a(this), void 0 === t ? "," : t)
            }
        })
    },
    "+Z4/": function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("ojxk").indexOf,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("indexOf", function(t) {
            return r(a(this), t, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    "+qIf": function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return u
        }), i.d(e, "a", function() {
            return h
        }), i.d(e, "c", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("hD5A"),
            a = i("o0Lc"),
            o = i("Qkdp"),
            s = i("Wglt"),
            l = i("wUYf"),
            u = function(t) {
                function e(e) {
                    var i = e.events.on("removed", function(t) {
                        t.oldValue.dispose()
                    }, void 0, !1);
                    return t.call(this, function() {
                        i.dispose(), s.each(e.iterator(), function(t) {
                            t[1].dispose()
                        })
                    }) || this
                }
                return Object(n.c)(e, t), e
            }(r.b),
            h = function() {
                function t() {
                    this.events = new a.a, this._dictionary = {}
                }
                return t.prototype.hasKey = function(t) {
                    return o.hasKey(this._dictionary, t)
                }, t.prototype.getKey = function(t) {
                    return this._dictionary[t]
                }, t.prototype.insertKey = function(t, e) {
                    if (o.hasKey(this._dictionary, t)) throw new Error("Key " + t + " already exists in dictionary");
                    this._dictionary[t] = e, this.events.isEnabled("insertKey") && this.events.dispatchImmediately("insertKey", {
                        type: "insertKey",
                        target: this,
                        key: t,
                        newValue: e
                    })
                }, t.prototype.setKey = function(t, e) {
                    if (o.hasKey(this._dictionary, t)) {
                        var i = this._dictionary[t];
                        i !== e && (this._dictionary[t] = e, this.events.isEnabled("setKey") && this.events.dispatchImmediately("setKey", {
                            type: "setKey",
                            target: this,
                            key: t,
                            oldValue: i,
                            newValue: e
                        }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", {
                            type: "removed",
                            target: this,
                            oldValue: i
                        }))
                    } else this._dictionary[t] = e, this.events.isEnabled("insertKey") && this.events.dispatchImmediately("insertKey", {
                        type: "insertKey",
                        target: this,
                        key: t,
                        newValue: e
                    })
                }, t.prototype.updateKey = function(t, e) {
                    if (!o.hasKey(this._dictionary, t)) throw new Error("Key " + t + " doesn't exist in dictionary");
                    var i = this._dictionary[t],
                        n = e(i);
                    i !== n && (this._dictionary[t] = n, this.events.isEnabled("setKey") && this.events.dispatchImmediately("setKey", {
                        type: "setKey",
                        target: this,
                        key: t,
                        oldValue: i,
                        newValue: n
                    }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", {
                        type: "removed",
                        target: this,
                        oldValue: i
                    }))
                }, t.prototype.removeKey = function(t) {
                    if (o.hasKey(this._dictionary, t)) {
                        var e = this._dictionary[t];
                        delete this._dictionary[t], this.events.isEnabled("removeKey") && this.events.dispatchImmediately("removeKey", {
                            type: "removeKey",
                            target: this,
                            key: t,
                            oldValue: e
                        }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", {
                            type: "removed",
                            target: this,
                            oldValue: e
                        })
                    }
                }, t.prototype.insertKeyIfEmpty = function(t, e) {
                    return this.hasKey(t) || this.insertKey(t, e()), this.getKey(t)
                }, t.prototype.clear = function() {
                    var t = this;
                    this.events.isEnabled("removed") && o.each(this._dictionary, function(e, i) {
                        t.events.dispatchImmediately("removed", {
                            type: "removed",
                            target: t,
                            oldValue: i
                        })
                    }), this._dictionary = {}, this.events.isEnabled("cleared") && this.events.dispatchImmediately("cleared", {
                        type: "cleared",
                        target: this
                    })
                }, t.prototype.copyFrom = function(t) {
                    var e = this;
                    s.each(t.iterator(), function(t) {
                        e.setKey(t[0], t[1])
                    })
                }, t.prototype.iterator = function() {
                    return o.entries(this._dictionary)
                }, t.prototype[Symbol.iterator] = function() {
                    var t, e, i, r;
                    return Object(n.d)(this, function(n) {
                        switch (n.label) {
                            case 0:
                                for (e in t = [], this._dictionary) t.push(e);
                                i = 0, n.label = 1;
                            case 1:
                                return i < t.length ? (r = t[i], o.hasKey(this._dictionary, r) ? [4, [r, this._dictionary[r]]] : [3, 3]) : [3, 4];
                            case 2:
                                n.sent(), n.label = 3;
                            case 3:
                                return i++, [3, 1];
                            case 4:
                                return [2]
                        }
                    })
                }, t.prototype.each = function(t) {
                    s.each(this.iterator(), function(e) {
                        var i = Object(n.e)(e, 2),
                            r = i[0],
                            a = i[1];
                        return t(r, a)
                    })
                }, t.prototype.sortedIterator = function() {
                    return s.sort(this.iterator(), function(t, e) {
                        return l.order(t[0], e[0])
                    })
                }, t
            }(),
            c = function(t) {
                function e(e) {
                    var i = t.call(this) || this;
                    return i.template = e, i
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "template", {
                    get: function() {
                        return this._template
                    },
                    set: function(t) {
                        t.isTemplate = !0, this._template = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(t) {
                    var e = this;
                    s.each(t.iterator(), function(t) {
                        e.setKey(t[0], t[1].clone())
                    })
                }, e.prototype.create = function(t) {
                    var e = this;
                    return this.insertKeyIfEmpty(t, function() {
                        return e.template.clone()
                    })
                }, e
            }(h)
    },
    "+s7l": function(t, e, i) {
        "use strict";
        var n = i("9XRO"),
            r = i("exNg"),
            a = i("tHyI"),
            o = i("xlUI"),
            s = i("J+FZ"),
            l = Math.min,
            u = [].lastIndexOf,
            h = !!u && 1 / [1].lastIndexOf(1, -0) < 0,
            c = o("lastIndexOf"),
            p = s("indexOf", {
                ACCESSORS: !0,
                1: 0
            }),
            d = h || !c || !p;
        t.exports = d ? function(t) {
            if (h) return u.apply(this, arguments) || 0;
            var e = n(this),
                i = a(e.length),
                o = i - 1;
            for (arguments.length > 1 && (o = l(o, r(arguments[1]))), o < 0 && (o = i + o); o >= 0; o--)
                if (o in e && e[o] === t) return o || 0;
            return -1
        } : u
    },
    "+uwN": function(t, e, i) {
        i("0sYB")({
            target: "Math",
            stat: !0
        }, {
            fround: i("I42a")
        })
    },
    "/9XX": function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return u
        }), e.a = function(t) {
            a.push(t), c()
        }, e.c = function(t) {
            o.push(t), c()
        }, e.f = function(t) {
            s.push(t), c()
        }, e.e = function(t) {
            l.push(t)
        }, e.d = function() {
            for (var t = Date.now(), e = l.length, i = 0; i < e; ++i) l.shift()(t)
        };
        var n = i("hJ5i"),
            r = !1,
            a = [],
            o = [],
            s = [],
            l = [],
            u = "function" == typeof requestAnimationFrame ? function(t) {
                requestAnimationFrame(t)
            } : function(t) {
                setTimeout(t, 1e3 / 60)
            };

        function h() {
            for (var t = Date.now(), e = a.length, i = 0; i < e; ++i) a[i](t);
            n.shiftLeft(a, e);
            for (i = 0; i < o.length; ++i) o[i](t);
            o.length = 0;
            for (i = 0; i < s.length; ++i) s[i](t);
            s.length = 0, 0 === a.length && 0 === o.length ? r = !1 : u(h)
        }

        function c() {
            r || (r = !0, u(h))
        }
    },
    "/IEW": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e._validateDisposer = null, e
                }
                return Object(n.c)(e, t), e.prototype.invalidate = function() {
                    null === this._validateDisposer && (this._validateDisposer = a.c.events.on("exitframe", this.validate, this))
                }, e.prototype.validate = function() {
                    null !== this._validateDisposer && (this._validateDisposer.dispose(), this._validateDisposer = null)
                }, e.prototype.dispose = function() {
                    null !== this._validateDisposer && (this._validateDisposer.dispose(), this._validateDisposer = null), t.prototype.dispose.call(this)
                }, e
            }(r.b)
    },
    "/NC3": function(t, e, i) {
        var n = i("0sYB"),
            r = i("vfdp"),
            a = i("gBcN");
        n({
            global: !0,
            bind: !0,
            enumerable: !0,
            forced: !r.setImmediate || !r.clearImmediate
        }, {
            setImmediate: a.set,
            clearImmediate: a.clear
        })
    },
    "/SU0": function(t, e, i) {
        var n = i("0sYB"),
            r = i("3weC"),
            a = i("gxUV").f;
        n({
            target: "Reflect",
            stat: !0
        }, {
            deleteProperty: function(t, e) {
                var i = a(r(t), e);
                return !(i && !i.configurable) && delete t[e]
            }
        })
    },
    "/XmW": function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("X/sl").forEach,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("forEach", function(t) {
            r(a(this), t, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    "/arR": function(t, e, i) {
        "use strict";
        var n = i("3weC");
        t.exports = function() {
            var t = n(this),
                e = "";
            return t.global && (e += "g"), t.ignoreCase && (e += "i"), t.multiline && (e += "m"), t.dotAll && (e += "s"), t.unicode && (e += "u"), t.sticky && (e += "y"), e
        }
    },
    "/e9j": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("sxA1"),
            a = i("3/51"),
            o = i("aCit"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "LinearGradientModifier", e.gradient = new r.a, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.gradient = e.gradient.clone()
                }, e
            }(a.a);
        o.c.registeredClasses.LinearGradientModifier = s
    },
    "/fwt": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("3sMl"),
            a = i("hqo8"),
            o = i("7X7h"),
            s = i("HnbP"),
            l = i("8+rI");
        r && n({
            target: "Object",
            proto: !0,
            forced: a
        }, {
            __defineGetter__: function(t, e) {
                l.f(o(this), t, {
                    get: s(e),
                    enumerable: !0,
                    configurable: !0
                })
            }
        })
    },
    "/vWR": function(t, e, i) {
        var n = i("z3p0");
        t.exports = function(t, e, i) {
            for (var r in e) n(t, r, e[r], i);
            return t
        }
    },
    0: function(t, e, i) {
        i("nj15"), t.exports = i("Nv8/")
    },
    "02tF": function(t, e, i) {
        var n = i("0sYB"),
            r = Math.log,
            a = Math.LN2;
        n({
            target: "Math",
            stat: !0
        }, {
            log2: function(t) {
                return r(t) / a
            }
        })
    },
    "047P": function(t, e, i) {
        var n = i("Kg2n"),
            r = i("KJuV");
        t.exports = function(t, e, i) {
            var a, o;
            return r && "function" == typeof(a = e.constructor) && a !== i && n(o = a.prototype) && o !== i.prototype && r(t, o), t
        }
    },
    "06/b": function(t, e, i) {
        i("6WsA")("search")
    },
    "09Lt": function(t, e, i) {
        "use strict";
        var n = i("Kg2n"),
            r = i("8+rI"),
            a = i("Ox5T"),
            o = i("KslR")("hasInstance"),
            s = Function.prototype;
        o in s || r.f(s, o, {
            value: function(t) {
                if ("function" != typeof this || !n(t)) return !1;
                if (!n(this.prototype)) return t instanceof this;
                for (; t = a(t);)
                    if (this.prototype === t) return !0;
                return !1
            }
        })
    },
    "0FA2": function(t, e, i) {
        var n = i("KslR"),
            r = i("QzDi"),
            a = i("8+rI"),
            o = n("unscopables"),
            s = Array.prototype;
        void 0 == s[o] && a.f(s, o, {
            configurable: !0,
            value: r(null)
        }), t.exports = function(t) {
            s[o][t] = !0
        }
    },
    "0FpR": function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.linear = a, e.quadIn = o, e.quadOut = s, e.quadInOut = l, e.polyIn = u, e.polyOut = h, e.polyInOut = c, e.polyIn3 = p, e.polyOut3 = d, e.polyInOut3 = f, e.expIn = g, e.expOut = y, e.expInOut = m, e.sinIn = v, e.sinOut = b, e.sinInOut = x, e.cubicIn = _, e.cubicOut = P, e.cubicInOut = w, e.circleIn = O, e.circleOut = T, e.circleInOut = S, e.bounceIn = R, e.bounceOut = N, e.bounceInOut = L, e.elasticIn = Y, e.elasticOut = H, e.elasticInOut = z;
        var n = i("Gg2j"),
            r = i("aCit");

        function a(t) {
            return +t
        }

        function o(t) {
            return t * t
        }

        function s(t) {
            return t * (2 - t)
        }

        function l(t) {
            return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2
        }

        function u(t, e) {
            return Math.pow(t, e)
        }

        function h(t, e) {
            return 1 - Math.pow(1 - t, e)
        }

        function c(t, e) {
            return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2
        }

        function p(t) {
            return u(t, 3)
        }

        function d(t) {
            return h(t, 3)
        }

        function f(t) {
            return c(t, 3)
        }

        function g(t) {
            return Math.pow(2, 10 * t - 10)
        }

        function y(t) {
            return 1 - Math.pow(2, -10 * t)
        }

        function m(t) {
            return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2
        }

        function v(t) {
            return 1 - Math.cos(t * n.HALFPI)
        }

        function b(t) {
            return Math.sin(t * n.HALFPI)
        }

        function x(t) {
            return (1 - Math.cos(n.PI * t)) / 2
        }

        function _(t) {
            return t * t * t
        }

        function P(t) {
            return --t * t * t + 1
        }

        function w(t) {
            return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2
        }

        function O(t) {
            return 1 - Math.sqrt(1 - t * t)
        }

        function T(t) {
            return Math.sqrt(1 - --t * t)
        }

        function S(t) {
            return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2
        }
        r.c.registeredClasses["ease.linear"] = a, r.c.registeredClasses["ease.quadIn"] = o, r.c.registeredClasses["ease.quadOut"] = s, r.c.registeredClasses["ease.quadInOut"] = l, r.c.registeredClasses["ease.polyIn"] = u, r.c.registeredClasses["ease.polyOut"] = h, r.c.registeredClasses["ease.polyInOut"] = c, r.c.registeredClasses["ease.polyIn3"] = p, r.c.registeredClasses["ease.polyOut3"] = d, r.c.registeredClasses["ease.polyInOut3"] = f, r.c.registeredClasses["ease.expIn"] = g, r.c.registeredClasses["ease.expOut"] = y, r.c.registeredClasses["ease.expInOut"] = m, r.c.registeredClasses["ease.sinIn"] = v, r.c.registeredClasses["ease.sinOut"] = b, r.c.registeredClasses["ease.sinInOut"] = x, r.c.registeredClasses["ease.cubicIn"] = _, r.c.registeredClasses["ease.cubicOut"] = P, r.c.registeredClasses["ease.cubicInOut"] = w, r.c.registeredClasses["ease.circleIn"] = O, r.c.registeredClasses["ease.circleOut"] = T, r.c.registeredClasses["ease.circleInOut"] = S;
        var C = 4 / 11,
            I = 6 / 11,
            k = 8 / 11,
            D = .75,
            j = 9 / 11,
            V = 10 / 11,
            A = .9375,
            M = 21 / 22,
            F = 63 / 64,
            E = 1 / C / C;

        function R(t) {
            return 1 - N(1 - t)
        }

        function N(t) {
            return (t = +t) < C ? E * t * t : t < k ? E * (t -= I) * t + D : t < V ? E * (t -= j) * t + A : E * (t -= M) * t + F
        }

        function L(t) {
            return ((t *= 2) <= 1 ? 1 - N(1 - t) : N(t - 1) + 1) / 2
        }
        r.c.registeredClasses["ease.bounceIn"] = R, r.c.registeredClasses["ease.bounceOut"] = N, r.c.registeredClasses["ease.bounceInOut"] = L;
        var B = 1,
            U = .3 / (2 * Math.PI),
            W = Math.asin(1 / B) * U;

        function Y(t) {
            return B * Math.pow(2, 10 * --t) * Math.sin((W - t) / U)
        }

        function H(t) {
            return 1 - B * Math.pow(2, -10 * (t = +t)) * Math.sin((t + W) / U)
        }

        function z(t) {
            return ((t = 2 * t - 1) < 0 ? B * Math.pow(2, 10 * t) * Math.sin((W - t) / U) : 2 - B * Math.pow(2, -10 * t) * Math.sin((W + t) / U)) / 2
        }
        r.c.registeredClasses["ease.elasticIn"] = Y, r.c.registeredClasses["ease.elasticOut"] = H, r.c.registeredClasses["ease.elasticInOut"] = z
    },
    "0KD/": function(t, e, i) {
        var n = i("0sYB"),
            r = i("CqLV");
        n({
            global: !0,
            forced: parseFloat != r
        }, {
            parseFloat: r
        })
    },
    "0Mwj": function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return S
        }), i.d(e, "a", function() {
            return C
        });
        var n = i("m4/l"),
            r = i("2I/e"),
            a = i("C6dT"),
            o = i("vMqJ"),
            s = i("8ZqG"),
            l = i("pR7v"),
            u = i("KknQ"),
            h = i("k6kv"),
            c = i("OXm9"),
            p = i("VB2N"),
            d = i("Uf57"),
            f = i("hD5A"),
            g = i("BEgH"),
            y = i("tjMS"),
            m = i("aCit"),
            v = i("C6Lh"),
            b = i("Gg2j"),
            x = i("Wglt"),
            _ = i("Mtpk"),
            P = i("v9UT"),
            w = i("hJ5i"),
            O = i("3Cxr"),
            T = i("TGuK"),
            S = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "XYChartDataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e
            }(r.b),
            C = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._axisRendererX = h.a, e._axisRendererY = c.a, e._seriesPoints = [], e.className = "XYChart", e.maskBullets = !0, e.arrangeTooltips = !0;
                    var i = e.chartContainer;
                    i.layout = "vertical", e.padding(15, 15, 15, 15);
                    var n = i.createChild(a.a);
                    n.shouldClone = !1, n.layout = "vertical", n.width = Object(y.c)(100), n.zIndex = 1, e.topAxesContainer = n;
                    var r = i.createChild(a.a);
                    r.shouldClone = !1, r.layout = "horizontal", r.width = Object(y.c)(100), r.height = Object(y.c)(100), r.zIndex = 0, e.yAxesAndPlotContainer = r;
                    var o = i.createChild(a.a);
                    o.shouldClone = !1, o.width = Object(y.c)(100), o.layout = "vertical", o.zIndex = 1, e.bottomAxesContainer = o;
                    var s = r.createChild(a.a);
                    s.shouldClone = !1, s.layout = "horizontal", s.height = Object(y.c)(100), s.contentAlign = "right", s.events.on("transformed", e.updateXAxesMargins, e, !1), s.zIndex = 1, e.leftAxesContainer = s;
                    var l = r.createChild(a.a);
                    l.shouldClone = !1, l.height = Object(y.c)(100), l.width = Object(y.c)(100), l.background.fillOpacity = 0, e.plotContainer = l, e.mouseWheelBehavior = "none", e._cursorContainer = l;
                    var u = r.createChild(a.a);
                    u.shouldClone = !1, u.layout = "horizontal", u.height = Object(y.c)(100), u.zIndex = 1, u.events.on("transformed", e.updateXAxesMargins, e, !1), e.rightAxesContainer = u, e.seriesContainer.parent = l, e.bulletsContainer.parent = l;
                    var p = l.createChild(g.a);
                    p.shouldClone = !1, p.align = "right", p.valign = "top", p.zIndex = Number.MAX_SAFE_INTEGER, p.marginTop = 5, p.marginRight = 5, p.hide(0), e.zoomOutButton = p;
                    var d = e.plotContainer.createChild(a.a);
                    return d.shouldClone = !1, d.width = Object(y.c)(100), d.height = Object(y.c)(100), d.isMeasured = !1, d.zIndex = 4, d.layout = "none", e.axisBulletsContainer = d, e._bulletMask = e.plotContainer, e.events.on("beforedatavalidated", function() {
                        e.series.each(function(t) {
                            t.dataGrouped = !1, t._baseInterval = {}
                        })
                    }, e, !1), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), this.zoomOutButton.exportable = !1, _.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("X/Y chart"))
                }, e.prototype.draw = function() {
                    t.prototype.draw.call(this), this.seriesContainer.toFront(), this.bulletsContainer.toFront(), this.maskBullets && (this.bulletsContainer.mask = this._bulletMask), this.updateSeriesLegend()
                }, e.prototype.updatePlotElements = function() {
                    x.each(this.series.iterator(), function(t) {
                        t.invalidate()
                    })
                }, e.prototype.validateData = function() {
                    0 == this._parseDataFrom && (x.each(this.xAxes.iterator(), function(t) {
                        t.dataChangeUpdate()
                    }), x.each(this.yAxes.iterator(), function(t) {
                        t.dataChangeUpdate()
                    }), x.each(this.series.iterator(), function(t) {
                        t.dataChangeUpdate()
                    })), t.prototype.validateData.call(this)
                }, e.prototype.updateXAxesMargins = function() {
                    var t = this.leftAxesContainer.measuredWidth,
                        e = this.rightAxesContainer.measuredWidth,
                        i = this.bottomAxesContainer;
                    i.paddingLeft == t && i.paddingRight == e || (i.paddingLeft = t, i.paddingRight = e);
                    var n = this.topAxesContainer;
                    n.paddingLeft == t && n.paddingRight == e || (n.paddingLeft = t, n.paddingRight = e)
                }, e.prototype.reinit = function() {
                    t.prototype.reinit.call(this), this.series.each(function(t) {
                        t.appeared = !1
                    })
                }, e.prototype.handleXAxisChange = function(t) {
                    this.updateXAxis(t.target)
                }, e.prototype.handleYAxisChange = function(t) {
                    this.updateYAxis(t.target)
                }, e.prototype.processXAxis = function(t) {
                    var e = t.newValue;
                    e.chart = this, e.renderer || (e.renderer = new this._axisRendererX, e.renderer.observe(["opposite", "inside", "inversed", "minGridDistance"], this.handleXAxisChange, this, !1)), e.axisLetter = "X", e.events.on("startendchanged", this.handleXAxisRangeChange, this, !1), e.dataProvider = this, this.updateXAxis(e.renderer), this.processAxis(e)
                }, e.prototype.processYAxis = function(t) {
                    var e = t.newValue;
                    e.chart = this, e.renderer || (e.renderer = new this._axisRendererY, e.renderer.observe(["opposite", "inside", "inversed", "minGridDistance"], this.handleYAxisChange, this, !1)), e.axisLetter = "Y", e.events.on("startendchanged", this.handleYAxisRangeChange, this, !1), e.dataProvider = this, this.updateYAxis(e.renderer), this.processAxis(e)
                }, e.prototype.handleXAxisRangeChange = function() {
                    var t = this.getCommonAxisRange(this.xAxes);
                    this.scrollbarX && this.zoomAxes(this.xAxes, t, !0), this.toggleZoomOutButton(), this.updateScrollbar(this.scrollbarX, t)
                }, e.prototype.toggleZoomOutButton = function() {
                    if (this.zoomOutButton) {
                        var t = !1;
                        x.eachContinue(this.xAxes.iterator(), function(e) {
                            if (e.toggleZoomOutButton)
                                if (e.maxZoomCount > 0) {
                                    var i = e.maxZoomFactor / e.maxZoomCount;
                                    if (b.round(e.end - e.start, 3) < 1 / i) return t = !0, !1
                                } else if (b.round(e.start, 3) > 0 || b.round(e.end, 3) < 1) return t = !0, !1;
                            return !0
                        }), x.eachContinue(this.yAxes.iterator(), function(e) {
                            if (e.toggleZoomOutButton) {
                                if (e.maxZoomCount > 0) {
                                    var i = e.maxZoomFactor / e.maxZoomCount;
                                    if (b.round(e.end - e.start, 3) < 1 / i) return t = !0, !1
                                } else if (b.round(e.start, 3) > 0 || b.round(e.end, 3) < 1) return t = !0, !1;
                                return !0
                            }
                        }), this.seriesAppeared || (t = !1), t ? this.zoomOutButton.show() : this.zoomOutButton.hide()
                    }
                }, e.prototype.seriesAppeared = function() {
                    var t = !1;
                    return x.each(this.series.iterator(), function(e) {
                        if (!e.appeared) return t = !1, !1
                    }), t
                }, e.prototype.handleYAxisRangeChange = function() {
                    var t = this.getCommonAxisRange(this.yAxes);
                    this.scrollbarY && this.zoomAxes(this.yAxes, t, !0), this.toggleZoomOutButton(), this.updateScrollbar(this.scrollbarY, t)
                }, e.prototype.updateScrollbar = function(t, e) {
                    t && (t.skipRangeEvents(), t.start = e.start, t.end = e.end)
                }, e.prototype.getCommonAxisRange = function(t) {
                    var e, i;
                    return x.each(t.iterator(), function(t) {
                        var n = t.start,
                            r = t.end;
                        t.renderer.inversed && (n = 1 - t.end, r = 1 - t.start), (!_.isNumber(e) || n < e) && (e = n), (!_.isNumber(i) || r > i) && (i = r)
                    }), {
                        start: e,
                        end: i
                    }
                }, e.prototype.updateXAxis = function(t) {
                    var e = t.axis;
                    t.opposite ? (e.parent = this.topAxesContainer, e.toFront()) : (e.parent = this.bottomAxesContainer, e.toBack()), e.renderer && e.renderer.processRenderer()
                }, e.prototype.updateYAxis = function(t) {
                    var e = t.axis;
                    t.opposite ? (e.parent = this.rightAxesContainer, e.toBack()) : (e.parent = this.leftAxesContainer, e.toFront()), e.renderer && e.renderer.processRenderer()
                }, e.prototype.processAxis = function(t) {
                    var e = this;
                    t instanceof p.a && this._dataUsers.moveValue(t);
                    var i = t.renderer;
                    i.gridContainer.parent = this.plotContainer, i.gridContainer.toBack(), i.breakContainer.parent = this.plotContainer, i.breakContainer.toFront(), i.breakContainer.zIndex = 10, t.addDisposer(new f.b(function() {
                        e.dataUsers.removeValue(t)
                    })), i.bulletsContainer.parent = this.axisBulletsContainer, this._disposers.push(t.events.on("positionchanged", function() {
                        var n = P.spritePointToSprite({
                            x: 0,
                            y: 0
                        }, t, e.axisBulletsContainer);
                        t.renderer instanceof c.a && (i.bulletsContainer.y = n.y), t.renderer instanceof h.a && (i.bulletsContainer.x = n.x)
                    }, void 0, !1)), this.plotContainer.events.on("maxsizechanged", function() {
                        e.inited && (t.invalidateDataItems(), e.updateSeriesMasks())
                    }, t, !1)
                }, e.prototype.updateSeriesMasks = function() {
                    P.isIE() && this.series.each(function(t) {
                        var e = t.mainContainer.mask;
                        t.mainContainer.mask = void 0, t.mainContainer.mask = e
                    })
                }, e.prototype.handleSeriesRemoved = function(e) {
                    var i = e.oldValue;
                    i && (i.xAxis && (i.xAxis.series.removeValue(i), i.xAxis.invalidateProcessedData()), i.yAxis && (i.yAxis.series.removeValue(i), i.yAxis.invalidateProcessedData())), t.prototype.handleSeriesRemoved.call(this, e)
                }, Object.defineProperty(e.prototype, "xAxes", {
                    get: function() {
                        return this._xAxes || (this._xAxes = new o.b, this._xAxes.events.on("inserted", this.processXAxis, this, !1), this._xAxes.events.on("removed", this.handleAxisRemoval, this, !1)), this._xAxes
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleAxisRemoval = function(t) {
                    var e = t.oldValue;
                    this.dataUsers.removeValue(e), e.autoDispose && e.dispose()
                }, Object.defineProperty(e.prototype, "yAxes", {
                    get: function() {
                        return this._yAxes || (this._yAxes = new o.b, this._yAxes.events.on("inserted", this.processYAxis, this, !1), this._yAxes.events.on("removed", this.handleAxisRemoval, this, !1)), this._yAxes
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleSeriesAdded = function(e) {
                    try {
                        t.prototype.handleSeriesAdded.call(this, e);
                        var i = e.newValue;
                        0 != this.xAxes.length && 0 != this.yAxes.length || (m.c.removeFromInvalidComponents(i), i.dataInvalid = !1), P.used(i.xAxis), P.used(i.yAxis), i.maskBullets = i.maskBullets, void 0 == i.fill && (this.patterns ? (_.hasValue(i.stroke) || (i.stroke = this.colors.next()), i.fill = this.patterns.next(), _.hasValue(i.fillOpacity) && (i.fill.backgroundOpacity = i.fillOpacity), i.stroke instanceof s.a && (i.fill.stroke = i.stroke, i.fill.fill = i.stroke)) : i.fill = this.colors.next()), _.hasValue(i.stroke) || (i.stroke = i.fill)
                    } catch (t) {
                        this.raiseCriticalError(t)
                    }
                }, Object.defineProperty(e.prototype, "cursor", {
                    get: function() {
                        return this._cursor
                    },
                    set: function(t) {
                        this._cursor != t && (this._cursor && this.removeDispose(this._cursor), this._cursor = t, t && (this._disposers.push(t), t.chart = this, t.shouldClone = !1, t.parent = this._cursorContainer, t.events.on("cursorpositionchanged", this.handleCursorPositionChange, this, !1), t.events.on("zoomstarted", this.handleCursorZoomStart, this, !1), t.events.on("zoomended", this.handleCursorZoomEnd, this, !1), t.events.on("panstarted", this.handleCursorPanStart, this, !1), t.events.on("panning", this.handleCursorPanning, this, !1), t.events.on("panended", this.handleCursorPanEnd, this, !1), t.events.on("behaviorcanceled", this.handleCursorCanceled, this, !1), t.events.on("hidden", this.handleHideCursor, this, !1), t.zIndex = Number.MAX_SAFE_INTEGER - 1, this.tapToActivate && this.setTapToActivate(this.tapToActivate)))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleCursorPositionChange = function() {
                    var t = this.cursor;
                    if (t.visible && !t.isHiding) {
                        var e = this.cursor.xPosition,
                            i = this.cursor.yPosition;
                        this.showSeriesTooltip({
                            x: e,
                            y: i
                        });
                        var n = void 0,
                            r = t.snapToSeries;
                        if (r) {
                            r.baseAxis == r.xAxis && (n = r.yAxis), r.baseAxis == r.yAxis && (n = r.xAxis);
                            var a = r.xAxis,
                                o = r.yAxis;
                            if (a instanceof l.a && !(a instanceof u.a) && o instanceof l.a && !(o instanceof u.a)) {
                                var s, h = 1 / 0;
                                r.dataItems.each(function(t) {
                                    var n = a.toGlobalPosition(a.getPositionX(t, "valueX")) * a.axisFullLength,
                                        r = o.toGlobalPosition(o.getPositionY(t, "valueY")) * o.axisFullLength,
                                        l = Math.sqrt(Math.pow(e * a.axisFullLength - n, 2) + Math.pow(i * o.axisFullLength - r, 2));
                                    l < h && (h = l, s = t)
                                }), s && r.showTooltipAtDataItem(s)
                            }
                        }
                        this._seriesPoints = [], this._cursorXPosition != e && this.showAxisTooltip(this.xAxes, e, n), this._cursorYPosition != i && this.showAxisTooltip(this.yAxes, i, n), this.arrangeTooltips && this.sortSeriesTooltips(this._seriesPoints)
                    }
                }, e.prototype.handleHideCursor = function() {
                    this.hideObjectTooltip(this.xAxes), this.hideObjectTooltip(this.yAxes), this.hideObjectTooltip(this.series), this._cursorXPosition = void 0, this._cursorYPosition = void 0, this.updateSeriesLegend()
                }, e.prototype.updateSeriesLegend = function() {
                    x.each(this.series.iterator(), function(t) {
                        t.updateLegendValue()
                    })
                }, e.prototype.hideObjectTooltip = function(t) {
                    x.each(t.iterator(), function(t) {
                        t.hideTooltip(0)
                    })
                }, e.prototype.showSeriesTooltip = function(t) {
                    var e = this;
                    if (t) {
                        var i = [];
                        this.series.each(function(n) {
                            if (n.xAxis instanceof u.a && n.xAxis.snapTooltip || n.yAxis instanceof u.a && n.yAxis.snapTooltip);
                            else {
                                var r = n.showTooltipAtPosition(t.x, t.y);
                                r && (n.tooltip.setBounds(P.spriteRectToSvg({
                                    x: 0,
                                    y: 0,
                                    width: e.pixelWidth,
                                    height: e.pixelHeight
                                }, e)), i.push({
                                    series: n,
                                    point: r
                                }))
                            }
                        }), this.arrangeTooltips && this.sortSeriesTooltips(i)
                    } else this.series.each(function(t) {
                        t.hideTooltip()
                    })
                }, e.prototype.sortSeriesTooltips = function(t) {
                    var e = this.cursor;
                    if (e && _.isNumber(e.maxTooltipDistance)) {
                        var i, n, r = P.spritePointToSvg({
                                x: e.point.x,
                                y: e.point.y
                            }, e),
                            a = 1 / 0;
                        w.each(t, function(t) {
                            var e = t.series,
                                o = t.point;
                            if (o) {
                                var s = {
                                        x: o.x,
                                        y: o.y
                                    },
                                    l = Math.abs(b.getDistance(s, r));
                                l < a && (n = s, a = l, i = e)
                            }
                        });
                        var o = [];
                        i && w.each(t, function(t) {
                            if (Math.abs(b.getDistance(t.point, n)) <= e.maxTooltipDistance) o.push({
                                series: t.series,
                                point: t.point
                            });
                            else {
                                var i = t.series.tooltipDataItem;
                                i && w.each(i.sprites, function(t) {
                                    t.isHover = !1, t.handleOutReal()
                                }), t.series.tooltip.hide(0)
                            }
                        }), t = o
                    }
                    var s = P.spritePointToSvg({
                            x: -.5,
                            y: -.5
                        }, this.plotContainer),
                        l = P.spritePointToSvg({
                            x: this.plotContainer.pixelWidth + .5,
                            y: this.plotContainer.pixelHeight + .5
                        }, this.plotContainer),
                        u = 0,
                        h = [];
                    w.each(t, function(t) {
                        var e = t.point;
                        e && b.isInRectangle(e, {
                            x: s.x,
                            y: s.y,
                            width: l.x - s.x,
                            height: l.y - s.y
                        }) && (h.push({
                            point: e,
                            series: t.series
                        }), u += e.y)
                    }), t = h;
                    var c = this.series.getIndex(0),
                        p = !1;
                    c && c.yAxis && c.yAxis.renderer.inversed && (p = !0), p ? t.sort(function(t, e) {
                        return O.order(t.point.y, e.point.y)
                    }) : (t.sort(function(t, e) {
                        return O.order(e.point.y, t.point.y)
                    }), t.reverse());
                    var d = u / t.length,
                        f = P.svgPointToDocument({
                            x: 0,
                            y: 0
                        }, this.svgContainer.SVGContainer).y;
                    if (t.length > 0) {
                        var g = s.y,
                            y = l.y;
                        P.spritePointToDocument({
                            x: 0,
                            y: g
                        }, this);
                        var m = !1;
                        if (d > g + (y - g) / 2)
                            for (var v = y, x = t.length - 1; x >= 0; x--) {
                                var T = (k = t[x].series).tooltip,
                                    S = t[x].point.y;
                                if (T.setBounds({
                                        x: 0,
                                        y: -f,
                                        width: this.pixelWidth,
                                        height: v + f
                                    }), T.invalid && T.validate(), T.toBack(), (v = P.spritePointToSvg({
                                        x: 0,
                                        y: T.label.pixelY - T.pixelY + S - T.pixelMarginTop
                                    }, T).y) < -f) {
                                    m = !0;
                                    break
                                }
                            }
                        if (d <= g + (y - g) / 2 || m)
                            for (var C = g, I = (x = 0, t.length); x < I; x++) {
                                var k = t[x].series;
                                S = t[x].point.y;
                                (T = k.tooltip).setBounds({
                                    x: 0,
                                    y: C,
                                    width: this.pixelWidth,
                                    height: y
                                }), T.invalid && T.validate(), T.toBack(), C = P.spritePointToSvg({
                                    x: 0,
                                    y: T.label.pixelY + T.label.measuredHeight - T.pixelY + S + T.pixelMarginBottom
                                }, T).y
                            }
                    }
                }, e.prototype.showAxisTooltip = function(t, e, i) {
                    var n = this;
                    x.each(t.iterator(), function(t) {
                        t != i && (n.dataItems.length > 0 || t.dataItems.length > 0) && t.showTooltipAtPosition(e)
                    })
                }, e.prototype.getUpdatedRange = function(t, e) {
                    if (t) {
                        var i, n;
                        t.renderer.inversed ? (b.invertRange(e), i = 1 - t.end, n = 1 - t.start) : (i = t.start, n = t.end);
                        var r = n - i;
                        return {
                            start: i + e.start * r,
                            end: i + e.end * r
                        }
                    }
                }, e.prototype.handleCursorZoomEnd = function(t) {
                    var e = this.cursor,
                        i = e.behavior;
                    if ("zoomX" == i || "zoomXY" == i) {
                        var n = e.xRange;
                        n && this.xAxes.length > 0 && ((n = this.getUpdatedRange(this.xAxes.getIndex(0), n)).priority = "start", this.zoomAxes(this.xAxes, n))
                    }
                    if ("zoomY" == i || "zoomXY" == i) {
                        var r = e.yRange;
                        r && this.yAxes.length > 0 && ((r = this.getUpdatedRange(this.yAxes.getIndex(0), r)).priority = "start", this.zoomAxes(this.yAxes, r))
                    }
                    this.handleHideCursor()
                }, e.prototype.handleCursorPanStart = function(t) {
                    var e = this.xAxes.getIndex(0);
                    e && (this._panStartXRange = {
                        start: e.start,
                        end: e.end
                    });
                    var i = this.yAxes.getIndex(0);
                    i && (this._panStartYRange = {
                        start: i.start,
                        end: i.end
                    })
                }, e.prototype.handleCursorPanEnd = function(t) {
                    var e = this.cursor.behavior;
                    if (this._panEndXRange && ("panX" == e || "panXY" == e)) {
                        var i = 0;
                        (n = this._panEndXRange).start < 0 && (i = n.start), n.end > 1 && (i = n.end - 1), this.zoomAxes(this.xAxes, {
                            start: n.start - i,
                            end: n.end - i
                        }, !1, !0), this._panEndXRange = void 0, this._panStartXRange = void 0
                    }
                    if (this._panEndYRange && ("panY" == e || "panXY" == e)) {
                        var n;
                        i = 0;
                        (n = this._panEndYRange).start < 0 && (i = n.start), n.end > 1 && (i = n.end - 1), this.zoomAxes(this.yAxes, {
                            start: n.start - i,
                            end: n.end - i
                        }, !1, !0), this._panEndYRange = void 0, this._panStartYRange = void 0
                    }
                }, e.prototype.handleCursorCanceled = function() {
                    this._panEndXRange = void 0, this._panStartXRange = void 0
                }, e.prototype.handleCursorPanning = function(t) {
                    var e = this.cursor,
                        i = e.behavior,
                        n = e.maxPanOut;
                    if (this._panStartXRange && ("panX" == i || "panXY" == i)) {
                        var r = this._panStartXRange,
                            a = e.xRange,
                            o = this.getCommonAxisRange(this.xAxes),
                            s = r.end - r.start,
                            l = a.start * (o.end - o.start),
                            u = Math.max(-n, l + r.start),
                            h = Math.min(l + r.end, 1 + n);
                        u <= 0 && (h = u + s), h >= 1 && (u = h - s);
                        var c = {
                            start: u,
                            end: h
                        };
                        this._panEndXRange = c, this.zoomAxes(this.xAxes, c, !1, !1, e.maxPanOut)
                    }
                    if (this._panStartYRange && ("panY" == i || "panXY" == i)) {
                        r = this._panStartYRange, a = e.yRange, o = this.getCommonAxisRange(this.yAxes), s = r.end - r.start, l = a.start * (o.end - o.start), u = Math.max(-n, l + r.start), h = Math.min(l + r.end, 1 + n);
                        u <= 0 && (h = u + s), h >= 1 && (u = h - s);
                        c = {
                            start: u,
                            end: h
                        };
                        this._panEndYRange = c, this.zoomAxes(this.yAxes, c, !1, !1, e.maxPanOut)
                    }
                    this.handleHideCursor()
                }, e.prototype.handleYAxisSet = function(t) {}, e.prototype.handleCursorZoomStart = function(t) {}, Object.defineProperty(e.prototype, "scrollbarX", {
                    get: function() {
                        return this._scrollbarX
                    },
                    set: function(t) {
                        var e = this;
                        this._scrollbarX && this.removeDispose(this._scrollbarX), this._scrollbarX = t, t && (this._disposers.push(t), t.parent = this.topAxesContainer, t.shouldClone = !1, t.startGrip.exportable = !1, t.endGrip.exportable = !1, t.toBack(), t.orientation = "horizontal", t.events.on("rangechanged", this.handleXScrollbarChange, this, !1), t.adapter.add("positionValue", function(t) {
                            var i = e.xAxes.getIndex(0);
                            return i && (t.value = i.getPositionLabel(i.renderer.inversed ? 1 - t.position : t.position)), t
                        }))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "scrollbarY", {
                    get: function() {
                        return this._scrollbarY
                    },
                    set: function(t) {
                        var e = this;
                        this._scrollbarY && this.removeDispose(this._scrollbarY), this._scrollbarY = t, t && (this._disposers.push(t), t.parent = this.rightAxesContainer, t.startGrip.exportable = !1, t.shouldClone = !1, t.endGrip.exportable = !1, t.toFront(), t.orientation = "vertical", t.events.on("rangechanged", this.handleYScrollbarChange, this, !1), t.adapter.add("positionValue", function(t) {
                            var i = e.yAxes.getIndex(0);
                            return i && (t.value = i.getPositionLabel(t.position)), t
                        }))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleXScrollbarChange = function(t) {
                    if (this.inited) {
                        var e = t.target,
                            i = e.range;
                        0 == i.start && (i.priority = "start"), 1 == i.end && (i.priority = "end"), i = this.zoomAxes(this.xAxes, i), e.fixRange(i)
                    }
                }, e.prototype.handleYScrollbarChange = function(t) {
                    if (this.inited) {
                        var e = t.target,
                            i = e.range;
                        1 == i.end && (i.priority = "end"), 0 == i.start && (i.priority = "start"), i = this.zoomAxes(this.yAxes, i), e.fixRange(i)
                    }
                }, e.prototype.zoomAxes = function(t, e, i, n, r) {
                    var a = {
                        start: 0,
                        end: 1
                    };
                    return this.showSeriesTooltip(), this.dataInvalid || x.each(t.iterator(), function(t) {
                        if (t.renderer.inversed && (e = b.invertRange(e)), t.hideTooltip(0), n)
                            if (t instanceof p.a) {
                                var o = t.getCellEndPosition(0) - t.getCellStartPosition(0);
                                e.start = t.roundPosition(e.start + o / 2 - t.startLocation * o, t.startLocation), e.end = t.roundPosition(e.end - o / 2 + (1 - t.endLocation) * o, t.endLocation)
                            } else e.start = t.roundPosition(e.start + 1e-4, 0, t.startLocation), e.end = t.roundPosition(e.end + 1e-4, 0, t.endLocation);
                        var s = t.zoom(e, i, i, r);
                        t.renderer.inversed && (s = b.invertRange(s)), a = s
                    }), a
                }, Object.defineProperty(e.prototype, "maskBullets", {
                    get: function() {
                        return this.getPropertyValue("maskBullets")
                    },
                    set: function(t) {
                        this.setPropertyValue("maskBullets", t, !0) && this.bulletsContainer && (this.bulletsContainer.mask = t ? this._bulletMask : void 0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "arrangeTooltips", {
                    get: function() {
                        return this.getPropertyValue("arrangeTooltips")
                    },
                    set: function(t) {
                        this.setPropertyValue("arrangeTooltips", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleWheel = function(t) {
                    var e = this.plotContainer,
                        i = P.documentPointToSvg(t.point, this.htmlContainer, this.svgContainer.cssScale),
                        n = P.svgPointToSprite(i, e),
                        r = t.shift.y;
                    this.handleWheelReal(r, this.mouseWheelBehavior, n)
                }, e.prototype.handleHorizontalWheel = function(t) {
                    var e = this.plotContainer,
                        i = P.documentPointToSvg(t.point, this.htmlContainer, this.svgContainer.cssScale),
                        n = P.svgPointToSprite(i, e);
                    this.handleWheelReal(t.shift.x, this.horizontalMouseWheelBehavior, n)
                }, e.prototype.handleWheelReal = function(t, e, i) {
                    if (0 != t) {
                        var n = this.plotContainer,
                            r = this.getCommonAxisRange(this.xAxes),
                            a = this.getCommonAxisRange(this.yAxes);
                        if ("panX" == e || "panXY" == e) {
                            var o = r.end - r.start,
                                s = Math.max(-0, r.start + .1 * t / 100 * (r.end - r.start)),
                                l = Math.min(r.end + .1 * t / 100 * (r.end - r.start), 1);
                            s <= 0 && (l = s + o), l >= 1 && (s = l - o), this.zoomAxes(this.xAxes, {
                                start: s,
                                end: l
                            })
                        }
                        if ("panY" == e || "panXY" == e) {
                            t *= -1;
                            var u = a.end - a.start,
                                h = Math.max(-0, a.start + .1 * t / 100 * (a.end - a.start)),
                                c = Math.min(a.end + .1 * t / 100 * (a.end - a.start), 1);
                            h <= 0 && (c = h + u), c >= 1 && (h = c - u), this.zoomAxes(this.yAxes, {
                                start: h,
                                end: c
                            })
                        }
                        if ("zoomX" == e || "zoomXY" == e) {
                            var p = i.x / n.maxWidth,
                                d = this.xAxes.getIndex(0).toAxisPosition(p);
                            s = Math.max(-0, r.start - .1 * (r.end - r.start) * t / 100 * p);
                            s = Math.min(s, d);
                            l = Math.min(r.end + .1 * (r.end - r.start) * t / 100 * (1 - p), 1);
                            l = Math.max(l, d), this.zoomAxes(this.xAxes, {
                                start: s,
                                end: l
                            })
                        }
                        if ("zoomY" == e || "zoomXY" == e) {
                            var f = i.y / n.maxHeight,
                                g = this.yAxes.getIndex(0).toAxisPosition(f);
                            h = Math.max(-0, a.start - .1 * (a.end - a.start) * t / 100 * (1 - f));
                            h = Math.min(h, g);
                            c = Math.min(a.end + .1 * t / 100 * f * (a.end - a.start), 1);
                            c = Math.max(c, g), this.zoomAxes(this.yAxes, {
                                start: h,
                                end: c
                            })
                        }
                    }
                }, Object.defineProperty(e.prototype, "mouseWheelBehavior", {
                    get: function() {
                        return this.getPropertyValue("mouseWheelBehavior")
                    },
                    set: function(t) {
                        this.setPropertyValue("mouseWheelBehavior", t) && ("none" != t ? (this._mouseWheelDisposer = this.plotContainer.events.on("wheel", this.handleWheel, this, !1), this._disposers.push(this._mouseWheelDisposer)) : this._mouseWheelDisposer && (this.plotContainer.wheelable = !1, this.plotContainer.hoverable = !1, this._mouseWheelDisposer.dispose()))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "horizontalMouseWheelBehavior", {
                    get: function() {
                        return this.getPropertyValue("horizontalMouseWheelBehavior")
                    },
                    set: function(t) {
                        this.setPropertyValue("horizontalMouseWheelBehavior", t) && ("none" != t ? (this._mouseWheelDisposer2 = this.plotContainer.events.on("wheel", this.handleHorizontalWheel, this, !1), this._disposers.push(this._mouseWheelDisposer2)) : this._mouseWheelDisposer2 && (this.plotContainer.wheelable = !1, this.plotContainer.hoverable = !1, this._mouseWheelDisposer2.dispose()))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.dataSourceDateFields = function(e) {
                    var i = this;
                    return e = t.prototype.dataSourceDateFields.call(this, e), x.each(this.series.iterator(), function(t) {
                        e = i.populateDataSourceFields(e, t.dataFields, ["dateX", "dateY", "openDateX", "openDateY"])
                    }), e
                }, e.prototype.dataSourceNumberFields = function(e) {
                    var i = this;
                    return e = t.prototype.dataSourceDateFields.call(this, e), x.each(this.series.iterator(), function(t) {
                        e = i.populateDataSourceFields(e, t.dataFields, ["valueX", "valueY", "openValueX", "openValueY"])
                    }), e
                }, e.prototype.processConfig = function(e) {
                    if (e) {
                        var i = [],
                            n = [];
                        if (_.hasValue(e.xAxes) && _.isArray(e.xAxes))
                            for (var r = 0, a = e.xAxes.length; r < a; r++) {
                                if (!e.xAxes[r].type) throw Error("[XYChart error] No type set for xAxes[" + r + "].");
                                if (_.hasValue(e.xAxes[r].axisRanges)) {
                                    for (var o = 0, s = e.xAxes[r].axisRanges.length; o < s; o++) {
                                        var l = e.xAxes[r].axisRanges[o];
                                        _.hasValue(l.date) && _.isString(l.date) && (l.date = this.dateFormatter.parse(l.date)), _.hasValue(l.endDate) && _.isString(l.endDate) && (l.endDate = this.dateFormatter.parse(l.endDate))
                                    }
                                    i.push({
                                        axisRanges: e.xAxes[r].axisRanges,
                                        index: r
                                    }), delete e.xAxes[r].axisRanges
                                }
                            }
                        if (_.hasValue(e.yAxes) && _.isArray(e.yAxes))
                            for (r = 0, a = e.yAxes.length; r < a; r++) {
                                if (!e.yAxes[r].type) throw Error("[XYChart error] No type set for yAxes[" + r + "].");
                                if (_.hasValue(e.yAxes[r].axisRanges)) {
                                    o = 0;
                                    for (var u = e.yAxes[r].axisRanges.length; o < u; o++) {
                                        l = e.yAxes[r].axisRanges[o];
                                        _.hasValue(l.date) && _.isString(l.date) && (l.date = this.dateFormatter.parse(l.date)), _.hasValue(l.endDate) && _.isString(l.endDate) && (l.endDate = this.dateFormatter.parse(l.endDate))
                                    }
                                    n.push({
                                        axisRanges: e.yAxes[r].axisRanges,
                                        index: r
                                    }), delete e.yAxes[r].axisRanges
                                }
                            }
                        if (_.hasValue(e.series) && _.isArray(e.series))
                            for (r = 0, a = e.series.length; r < a; r++) e.series[r].type = e.series[r].type || "LineSeries";
                        if (_.hasValue(e.cursor) && !_.hasValue(e.cursor.type) && (e.cursor.type = "XYCursor"), _.hasValue(e.scrollbarX) && !_.hasValue(e.scrollbarX.type) && (e.scrollbarX.type = "Scrollbar"), _.hasValue(e.scrollbarY) && !_.hasValue(e.scrollbarY.type) && (e.scrollbarY.type = "Scrollbar"), t.prototype.processConfig.call(this, e), n.length)
                            for (r = 0, a = n.length; r < a; r++) this.yAxes.getIndex(n[r].index).config = {
                                axisRanges: n[r].axisRanges
                            };
                        if (i.length)
                            for (r = 0, a = i.length; r < a; r++) this.xAxes.getIndex(i[r].index).config = {
                                axisRanges: i[r].axisRanges
                            }
                    }
                }, e.prototype.configOrder = function(e, i) {
                    return e == i ? 0 : "scrollbarX" == e ? 1 : "scrollbarX" == i ? -1 : "scrollbarY" == e ? 1 : "scrollbarY" == i ? -1 : "cursor" == e ? 1 : "cursor" == i ? -1 : "series" == e ? 1 : "series" == i ? -1 : t.prototype.configOrder.call(this, e, i)
                }, e.prototype.createSeries = function() {
                    return new d.a
                }, Object.defineProperty(e.prototype, "zoomOutButton", {
                    get: function() {
                        return this._zoomOutButton
                    },
                    set: function(t) {
                        var e = this;
                        this._zoomOutButton = t, t && t.events.on("hit", function() {
                            e.zoomAxes(e.xAxes, {
                                start: 0,
                                end: 1
                            }), e.zoomAxes(e.yAxes, {
                                start: 0,
                                end: 1
                            })
                        }, void 0, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    var i = this;
                    e.xAxes.each(function(t) {
                        i.xAxes.push(t.clone())
                    }), e.yAxes.each(function(t) {
                        i.yAxes.push(t.clone())
                    }), t.prototype.copyFrom.call(this, e), e.cursor && (this.cursor = e.cursor.clone()), e.scrollbarX && (this.scrollbarX = e.scrollbarX.clone()), e.scrollbarY && (this.scrollbarY = e.scrollbarY.clone())
                }, e.prototype.disposeData = function() {
                    t.prototype.disposeData.call(this);
                    var e = this.scrollbarX;
                    e && e instanceof v.a && e.scrollbarChart.disposeData();
                    var i = this.scrollbarY;
                    i && i instanceof v.a && i.scrollbarChart.disposeData(), this.xAxes.each(function(t) {
                        t.disposeData()
                    }), this.yAxes.each(function(t) {
                        t.disposeData()
                    })
                }, e.prototype.addData = function(e, i) {
                    this.scrollbarX instanceof v.a && this.addScrollbarData(this.scrollbarX, i), this.scrollbarY instanceof v.a && this.addScrollbarData(this.scrollbarY, i), t.prototype.addData.call(this, e, i)
                }, e.prototype.addScrollbarData = function(t, e) {
                    var i = t.scrollbarChart;
                    i._parseDataFrom = i.data.length, i.invalidateData()
                }, e.prototype.removeScrollbarData = function(t, e) {
                    var i = t.scrollbarChart;
                    if (_.isNumber(e)) {
                        for (; e > 0;) {
                            var n = this.dataItems.getIndex(0);
                            n && i.dataItems.remove(n), i.dataUsers.each(function(t) {
                                var e = t.dataItems.getIndex(0);
                                e && t.dataItems.remove(e)
                            }), i._parseDataFrom--, e--
                        }
                        i.invalidateData()
                    }
                }, e.prototype.removeData = function(e) {
                    this.scrollbarX instanceof v.a && this.removeScrollbarData(this.scrollbarX, e), this.scrollbarY instanceof v.a && this.removeScrollbarData(this.scrollbarY, e), t.prototype.removeData.call(this, e)
                }, e.prototype.setTapToActivate = function(e) {
                    t.prototype.setTapToActivate.call(this, e), this.cursor && (this.cursor.interactions.isTouchProtected = e, this.plotContainer.interactions.isTouchProtected = e)
                }, e.prototype.handleTapToActivate = function() {
                    t.prototype.handleTapToActivate.call(this), this.cursor && (this.cursor.interactions.isTouchProtected = !1, this.plotContainer.interactions.isTouchProtected = !1)
                }, e.prototype.handleTapToActivateDeactivation = function() {
                    t.prototype.handleTapToActivateDeactivation.call(this), this.cursor && (this.cursor.interactions.isTouchProtected = !0, this.plotContainer.interactions.isTouchProtected = !0)
                }, e
            }(r.a);
        m.c.registeredClasses.XYChart = C, T.c.push({
            relevant: T.b.maybeXS,
            state: function(t, e) {
                if (t instanceof C && t.scrollbarX) {
                    var i = t.states.create(e);
                    return t.scrollbarX.states.create(e).properties.disabled = !0, i
                }
                return null
            }
        }), T.c.push({
            relevant: T.b.maybeXS,
            state: function(t, e) {
                if (t instanceof C && t.scrollbarY) {
                    var i = t.states.create(e);
                    return t.scrollbarY.states.create(e).properties.disabled = !0, i
                }
                return null
            }
        })
    },
    "0PyG": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("zhwk"),
            o = i("1yyj"),
            s = i("Mtpk"),
            l = function(t) {
                function e(e, i, n, r) {
                    var a = t.call(this) || this;
                    return a.animations = [], a.className = "Inertia", a.interaction = e, a.type = i, a.point = n, a.startPoint = r, a._disposers.push(new o.b(a.animations)), a
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "x", {
                    get: function() {
                        return this.point.x
                    },
                    set: function(t) {
                        s.isNumber(t) && (this.point.x = t, this.handleMove())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "y", {
                    get: function() {
                        return this.point.y
                    },
                    set: function(t) {
                        s.isNumber(t) && (this.point.y = t, this.handleMove())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleMove = function() {
                    if (this.interaction.events.isEnabled("drag")) {
                        var t = {
                            type: "drag",
                            target: this.interaction,
                            shift: {
                                x: this.x - this.startPoint.x,
                                y: this.y - this.startPoint.y
                            },
                            startPoint: this.startPoint,
                            point: {
                                x: this.x,
                                y: this.y
                            },
                            touch: !1
                        };
                        this.interaction.events.dispatchImmediately("drag", t)
                    }
                }, e.prototype.done = function() {
                    this.interaction.inertias.removeKey(this.type), "move" === this.type && Object(a.b)().processDragStop(this.interaction), this.dispose()
                }, e
            }(r.a)
    },
    "0aVp": function(t, e, i) {
        var n = i("0sYB"),
            r = i("mtbW");
        n({
            global: !0,
            forced: !i("jqyf")
        }, {
            DataView: r.DataView
        })
    },
    "0irS": function(t, e, i) {
        var n = i("KslR");
        e.f = n
    },
    "0sYB": function(t, e, i) {
        var n = i("vfdp"),
            r = i("gxUV").f,
            a = i("k2B3"),
            o = i("z3p0"),
            s = i("29Us"),
            l = i("z4fB"),
            u = i("EjSS");
        t.exports = function(t, e) {
            var i, h, c, p, d, f = t.target,
                g = t.global,
                y = t.stat;
            if (i = g ? n : y ? n[f] || s(f, {}) : (n[f] || {}).prototype)
                for (h in e) {
                    if (p = e[h], c = t.noTargetGet ? (d = r(i, h)) && d.value : i[h], !u(g ? h : f + (y ? "." : "#") + h, t.forced) && void 0 !== c) {
                        if (typeof p == typeof c) continue;
                        l(p, c)
                    }(t.sham || c && c.sham) && a(p, "sham", !0), o(i, h, p, t)
                }
        }
    },
    "16a9": function(t, e, i) {
        var n = i("0sYB"),
            r = i("HZlQ");
        n({
            target: "Object",
            stat: !0,
            forced: Object.assign !== r
        }, {
            assign: r
        })
    },
    "1DgP": function(t, e, i) {
        "use strict";
        var n = function(t, e) {
            var i;

            function n() {
                var n, r, a = i.length,
                    o = 0,
                    s = 0;
                for (n = 0; n < a; ++n) o += (r = i[n]).x, s += r.y;
                for (o = o / a - t, s = s / a - e, n = 0; n < a; ++n)(r = i[n]).x -= o, r.y -= s
            }
            return null == t && (t = 0), null == e && (e = 0), n.initialize = function(t) {
                i = t
            }, n.x = function(e) {
                return arguments.length ? (t = +e, n) : t
            }, n.y = function(t) {
                return arguments.length ? (e = +t, n) : e
            }, n
        };

        function r(t, e, i, n) {
            if (isNaN(e) || isNaN(i)) return t;
            var r, a, o, s, l, u, h, c, p, d = t._root,
                f = {
                    data: n
                },
                g = t._x0,
                y = t._y0,
                m = t._x1,
                v = t._y1;
            if (!d) return t._root = f, t;
            for (; d.length;)
                if ((u = e >= (a = (g + m) / 2)) ? g = a : m = a, (h = i >= (o = (y + v) / 2)) ? y = o : v = o, r = d, !(d = d[c = h << 1 | u])) return r[c] = f, t;
            if (s = +t._x.call(null, d.data), l = +t._y.call(null, d.data), e === s && i === l) return f.next = d, r ? r[c] = f : t._root = f, t;
            do {
                r = r ? r[c] = new Array(4) : t._root = new Array(4), (u = e >= (a = (g + m) / 2)) ? g = a : m = a, (h = i >= (o = (y + v) / 2)) ? y = o : v = o
            } while ((c = h << 1 | u) == (p = (l >= o) << 1 | s >= a));
            return r[p] = d, r[c] = f, t
        }
        var a = function(t, e, i, n, r) {
            this.node = t, this.x0 = e, this.y0 = i, this.x1 = n, this.y1 = r
        };

        function o(t) {
            return t[0]
        }

        function s(t) {
            return t[1]
        }

        function l(t, e, i) {
            var n = new u(null == e ? o : e, null == i ? s : i, NaN, NaN, NaN, NaN);
            return null == t ? n : n.addAll(t)
        }

        function u(t, e, i, n, r, a) {
            this._x = t, this._y = e, this._x0 = i, this._y0 = n, this._x1 = r, this._y1 = a, this._root = void 0
        }

        function h(t) {
            for (var e = {
                    data: t.data
                }, i = e; t = t.next;) i = i.next = {
                data: t.data
            };
            return e
        }
        var c = l.prototype = u.prototype;
        c.copy = function() {
            var t, e, i = new u(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
                n = this._root;
            if (!n) return i;
            if (!n.length) return i._root = h(n), i;
            for (t = [{
                    source: n,
                    target: i._root = new Array(4)
                }]; n = t.pop();)
                for (var r = 0; r < 4; ++r)(e = n.source[r]) && (e.length ? t.push({
                    source: e,
                    target: n.target[r] = new Array(4)
                }) : n.target[r] = h(e));
            return i
        }, c.add = function(t) {
            var e = +this._x.call(null, t),
                i = +this._y.call(null, t);
            return r(this.cover(e, i), e, i, t)
        }, c.addAll = function(t) {
            var e, i, n, a, o = t.length,
                s = new Array(o),
                l = new Array(o),
                u = 1 / 0,
                h = 1 / 0,
                c = -1 / 0,
                p = -1 / 0;
            for (i = 0; i < o; ++i) isNaN(n = +this._x.call(null, e = t[i])) || isNaN(a = +this._y.call(null, e)) || (s[i] = n, l[i] = a, n < u && (u = n), n > c && (c = n), a < h && (h = a), a > p && (p = a));
            if (u > c || h > p) return this;
            for (this.cover(u, h).cover(c, p), i = 0; i < o; ++i) r(this, s[i], l[i], t[i]);
            return this
        }, c.cover = function(t, e) {
            if (isNaN(t = +t) || isNaN(e = +e)) return this;
            var i = this._x0,
                n = this._y0,
                r = this._x1,
                a = this._y1;
            if (isNaN(i)) r = (i = Math.floor(t)) + 1, a = (n = Math.floor(e)) + 1;
            else {
                for (var o, s, l = r - i, u = this._root; i > t || t >= r || n > e || e >= a;) switch (s = (e < n) << 1 | t < i, (o = new Array(4))[s] = u, u = o, l *= 2, s) {
                    case 0:
                        r = i + l, a = n + l;
                        break;
                    case 1:
                        i = r - l, a = n + l;
                        break;
                    case 2:
                        r = i + l, n = a - l;
                        break;
                    case 3:
                        i = r - l, n = a - l
                }
                this._root && this._root.length && (this._root = u)
            }
            return this._x0 = i, this._y0 = n, this._x1 = r, this._y1 = a, this
        }, c.data = function() {
            var t = [];
            return this.visit(function(e) {
                if (!e.length)
                    do {
                        t.push(e.data)
                    } while (e = e.next)
            }), t
        }, c.extent = function(t) {
            return arguments.length ? this.cover(+t[0][0], +t[0][1]).cover(+t[1][0], +t[1][1]) : isNaN(this._x0) ? void 0 : [
                [this._x0, this._y0],
                [this._x1, this._y1]
            ]
        }, c.find = function(t, e, i) {
            var n, r, o, s, l, u, h, c = this._x0,
                p = this._y0,
                d = this._x1,
                f = this._y1,
                g = [],
                y = this._root;
            for (y && g.push(new a(y, c, p, d, f)), null == i ? i = 1 / 0 : (c = t - i, p = e - i, d = t + i, f = e + i, i *= i); u = g.pop();)
                if (!(!(y = u.node) || (r = u.x0) > d || (o = u.y0) > f || (s = u.x1) < c || (l = u.y1) < p))
                    if (y.length) {
                        var m = (r + s) / 2,
                            v = (o + l) / 2;
                        g.push(new a(y[3], m, v, s, l), new a(y[2], r, v, m, l), new a(y[1], m, o, s, v), new a(y[0], r, o, m, v)), (h = (e >= v) << 1 | t >= m) && (u = g[g.length - 1], g[g.length - 1] = g[g.length - 1 - h], g[g.length - 1 - h] = u)
                    } else {
                        var b = t - +this._x.call(null, y.data),
                            x = e - +this._y.call(null, y.data),
                            _ = b * b + x * x;
                        if (_ < i) {
                            var P = Math.sqrt(i = _);
                            c = t - P, p = e - P, d = t + P, f = e + P, n = y.data
                        }
                    } return n
        }, c.remove = function(t) {
            if (isNaN(a = +this._x.call(null, t)) || isNaN(o = +this._y.call(null, t))) return this;
            var e, i, n, r, a, o, s, l, u, h, c, p, d = this._root,
                f = this._x0,
                g = this._y0,
                y = this._x1,
                m = this._y1;
            if (!d) return this;
            if (d.length)
                for (;;) {
                    if ((u = a >= (s = (f + y) / 2)) ? f = s : y = s, (h = o >= (l = (g + m) / 2)) ? g = l : m = l, e = d, !(d = d[c = h << 1 | u])) return this;
                    if (!d.length) break;
                    (e[c + 1 & 3] || e[c + 2 & 3] || e[c + 3 & 3]) && (i = e, p = c)
                }
            for (; d.data !== t;)
                if (n = d, !(d = d.next)) return this;
            return (r = d.next) && delete d.next, n ? (r ? n.next = r : delete n.next, this) : e ? (r ? e[c] = r : delete e[c], (d = e[0] || e[1] || e[2] || e[3]) && d === (e[3] || e[2] || e[1] || e[0]) && !d.length && (i ? i[p] = d : this._root = d), this) : (this._root = r, this)
        }, c.removeAll = function(t) {
            for (var e = 0, i = t.length; e < i; ++e) this.remove(t[e]);
            return this
        }, c.root = function() {
            return this._root
        }, c.size = function() {
            var t = 0;
            return this.visit(function(e) {
                if (!e.length)
                    do {
                        ++t
                    } while (e = e.next)
            }), t
        }, c.visit = function(t) {
            var e, i, n, r, o, s, l = [],
                u = this._root;
            for (u && l.push(new a(u, this._x0, this._y0, this._x1, this._y1)); e = l.pop();)
                if (!t(u = e.node, n = e.x0, r = e.y0, o = e.x1, s = e.y1) && u.length) {
                    var h = (n + o) / 2,
                        c = (r + s) / 2;
                    (i = u[3]) && l.push(new a(i, h, c, o, s)), (i = u[2]) && l.push(new a(i, n, c, h, s)), (i = u[1]) && l.push(new a(i, h, r, o, c)), (i = u[0]) && l.push(new a(i, n, r, h, c))
                } return this
        }, c.visitAfter = function(t) {
            var e, i = [],
                n = [];
            for (this._root && i.push(new a(this._root, this._x0, this._y0, this._x1, this._y1)); e = i.pop();) {
                var r = e.node;
                if (r.length) {
                    var o, s = e.x0,
                        l = e.y0,
                        u = e.x1,
                        h = e.y1,
                        c = (s + u) / 2,
                        p = (l + h) / 2;
                    (o = r[0]) && i.push(new a(o, s, l, c, p)), (o = r[1]) && i.push(new a(o, c, l, u, p)), (o = r[2]) && i.push(new a(o, s, p, c, h)), (o = r[3]) && i.push(new a(o, c, p, u, h))
                }
                n.push(e)
            }
            for (; e = n.pop();) t(e.node, e.x0, e.y0, e.x1, e.y1);
            return this
        }, c.x = function(t) {
            return arguments.length ? (this._x = t, this) : this._x
        }, c.y = function(t) {
            return arguments.length ? (this._y = t, this) : this._y
        };
        var p = function(t) {
                return function() {
                    return t
                }
            },
            d = function() {
                return 1e-6 * (Math.random() - .5)
            };

        function f(t) {
            return t.x + t.vx
        }

        function g(t) {
            return t.y + t.vy
        }
        var y = function(t) {
            var e, i, n = 1,
                r = 1;

            function a() {
                for (var t, a, s, u, h, c, p, y = e.length, m = 0; m < r; ++m)
                    for (a = l(e, f, g).visitAfter(o), t = 0; t < y; ++t) s = e[t], c = i[s.index], p = c * c, u = s.x + s.vx, h = s.y + s.vy, a.visit(v);

                function v(t, e, i, r, a) {
                    var o = t.data,
                        l = t.r,
                        f = c + l;
                    if (!o) return e > u + f || r < u - f || i > h + f || a < h - f;
                    if (o.index > s.index) {
                        var g = u - o.x - o.vx,
                            y = h - o.y - o.vy,
                            m = g * g + y * y;
                        m < f * f && (0 === g && (m += (g = d()) * g), 0 === y && (m += (y = d()) * y), m = (f - (m = Math.sqrt(m))) / m * n, s.vx += (g *= m) * (f = (l *= l) / (p + l)), s.vy += (y *= m) * f, o.vx -= g * (f = 1 - f), o.vy -= y * f)
                    }
                }
            }

            function o(t) {
                if (t.data) return t.r = i[t.data.index];
                for (var e = t.r = 0; e < 4; ++e) t[e] && t[e].r > t.r && (t.r = t[e].r)
            }

            function s() {
                if (e) {
                    var n, r, a = e.length;
                    for (i = new Array(a), n = 0; n < a; ++n) r = e[n], i[r.index] = +t(r, n, e)
                }
            }
            return "function" != typeof t && (t = p(null == t ? 1 : +t)), a.initialize = function(t) {
                e = t, s()
            }, a.iterations = function(t) {
                return arguments.length ? (r = +t, a) : r
            }, a.strength = function(t) {
                return arguments.length ? (n = +t, a) : n
            }, a.radius = function(e) {
                return arguments.length ? (t = "function" == typeof e ? e : p(+e), s(), a) : t
            }, a
        };

        function m(t) {
            return (m = "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
            })(t)
        }

        function v(t) {
            return t.index
        }

        function b(t, e) {
            var i = t.get(e);
            if (!i) throw new Error("missing: " + e);
            return i
        }
        var x = function(t) {
                var e, i, n, r, a, o = v,
                    s = function(t) {
                        return 1 / Math.min(r[t.source.index], r[t.target.index])
                    },
                    l = p(30),
                    u = 1;

                function h(n) {
                    for (var r = 0, o = t.length; r < u; ++r)
                        for (var s, l, h, c, p, f, g, y = 0; y < o; ++y) l = (s = t[y]).source, c = (h = s.target).x + h.vx - l.x - l.vx || d(), p = h.y + h.vy - l.y - l.vy || d(), c *= f = ((f = Math.sqrt(c * c + p * p)) - i[y]) / f * n * e[y], p *= f, h.vx -= c * (g = a[y]), h.vy -= p * g, l.vx += c * (g = 1 - g), l.vy += p * g
                }

                function c() {
                    if (n) {
                        var s, l, u = n.length,
                            h = t.length,
                            c = new Map(n.map(function(t, e) {
                                return [o(t, e, n), t]
                            }));
                        for (s = 0, r = new Array(u); s < h; ++s)(l = t[s]).index = s, "object" !== m(l.source) && (l.source = b(c, l.source)), "object" !== m(l.target) && (l.target = b(c, l.target)), r[l.source.index] = (r[l.source.index] || 0) + 1, r[l.target.index] = (r[l.target.index] || 0) + 1;
                        for (s = 0, a = new Array(h); s < h; ++s) l = t[s], a[s] = r[l.source.index] / (r[l.source.index] + r[l.target.index]);
                        e = new Array(h), f(), i = new Array(h), g()
                    }
                }

                function f() {
                    if (n)
                        for (var i = 0, r = t.length; i < r; ++i) e[i] = +s(t[i], i, t)
                }

                function g() {
                    if (n)
                        for (var e = 0, r = t.length; e < r; ++e) i[e] = +l(t[e], e, t)
                }
                return null == t && (t = []), h.initialize = function(t) {
                    n = t, c()
                }, h.links = function(e) {
                    return arguments.length ? (t = e, c(), h) : t
                }, h.id = function(t) {
                    return arguments.length ? (o = t, h) : o
                }, h.iterations = function(t) {
                    return arguments.length ? (u = +t, h) : u
                }, h.strength = function(t) {
                    return arguments.length ? (s = "function" == typeof t ? t : p(+t), f(), h) : s
                }, h.distance = function(t) {
                    return arguments.length ? (l = "function" == typeof t ? t : p(+t), g(), h) : l
                }, h
            },
            _ = i("XqN8"),
            P = i("bS9u");

        function w(t) {
            return t.x
        }

        function O(t) {
            return t.y
        }
        var T = 10,
            S = Math.PI * (3 - Math.sqrt(5)),
            C = function(t) {
                var e, i = 1,
                    n = .001,
                    r = 1 - Math.pow(n, 1 / 300),
                    a = 0,
                    o = .6,
                    s = new Map,
                    l = Object(P.c)(h),
                    u = Object(_.a)("tick", "end");

                function h() {
                    c(), u.call("tick", e), i < n && (l.stop(), u.call("end", e))
                }

                function c(n) {
                    var l, u, h = t.length;
                    void 0 === n && (n = 1);
                    for (var c = 0; c < n; ++c)
                        for (i += (a - i) * r, s.forEach(function(t) {
                                t(i)
                            }), l = 0; l < h; ++l) null == (u = t[l]).fx ? u.x += u.vx *= o : (u.x = u.fx, u.vx = 0), null == u.fy ? u.y += u.vy *= o : (u.y = u.fy, u.vy = 0);
                    return e
                }

                function p() {
                    for (var e, i = 0, n = t.length; i < n; ++i) {
                        if ((e = t[i]).index = i, null != e.fx && (e.x = e.fx), null != e.fy && (e.y = e.fy), isNaN(e.x) || isNaN(e.y)) {
                            var r = T * Math.sqrt(i),
                                a = i * S;
                            e.x = r * Math.cos(a), e.y = r * Math.sin(a)
                        }(isNaN(e.vx) || isNaN(e.vy)) && (e.vx = e.vy = 0)
                    }
                }

                function d(e) {
                    return e.initialize && e.initialize(t), e
                }
                return null == t && (t = []), p(), e = {
                    tick: c,
                    restart: function() {
                        return l.restart(h), e
                    },
                    stop: function() {
                        return l.stop(), e
                    },
                    nodes: function(i) {
                        return arguments.length ? (t = i, p(), s.forEach(d), e) : t
                    },
                    alpha: function(t) {
                        return arguments.length ? (i = +t, e) : i
                    },
                    alphaMin: function(t) {
                        return arguments.length ? (n = +t, e) : n
                    },
                    alphaDecay: function(t) {
                        return arguments.length ? (r = +t, e) : +r
                    },
                    alphaTarget: function(t) {
                        return arguments.length ? (a = +t, e) : a
                    },
                    velocityDecay: function(t) {
                        return arguments.length ? (o = 1 - t, e) : 1 - o
                    },
                    force: function(t, i) {
                        return arguments.length > 1 ? (null == i ? s.delete(t) : s.set(t, d(i)), e) : s.get(t)
                    },
                    find: function(e, i, n) {
                        var r, a, o, s, l, u = 0,
                            h = t.length;
                        for (null == n ? n = 1 / 0 : n *= n, u = 0; u < h; ++u)(o = (r = e - (s = t[u]).x) * r + (a = i - s.y) * a) < n && (l = s, n = o);
                        return l
                    },
                    on: function(t, i) {
                        return arguments.length > 1 ? (u.on(t, i), e) : u.on(t)
                    }
                }
            },
            I = function() {
                var t, e, i, n, r = p(-30),
                    a = 1,
                    o = 1 / 0,
                    s = .81;

                function u(n) {
                    var r, a = t.length,
                        o = l(t, w, O).visitAfter(c);
                    for (i = n, r = 0; r < a; ++r) e = t[r], o.visit(f)
                }

                function h() {
                    if (t) {
                        var e, i, a = t.length;
                        for (n = new Array(a), e = 0; e < a; ++e) i = t[e], n[i.index] = +r(i, e, t)
                    }
                }

                function c(t) {
                    var e, i, r, a, o, s = 0,
                        l = 0;
                    if (t.length) {
                        for (r = a = o = 0; o < 4; ++o)(e = t[o]) && (i = Math.abs(e.value)) && (s += e.value, l += i, r += i * e.x, a += i * e.y);
                        t.x = r / l, t.y = a / l
                    } else {
                        (e = t).x = e.data.x, e.y = e.data.y;
                        do {
                            s += n[e.data.index]
                        } while (e = e.next)
                    }
                    t.value = s
                }

                function f(t, r, l, u) {
                    if (!t.value) return !0;
                    var h = t.x - e.x,
                        c = t.y - e.y,
                        p = u - r,
                        f = h * h + c * c;
                    if (p * p / s < f) return f < o && (0 === h && (f += (h = d()) * h), 0 === c && (f += (c = d()) * c), f < a && (f = Math.sqrt(a * f)), e.vx += h * t.value * i / f, e.vy += c * t.value * i / f), !0;
                    if (!(t.length || f >= o)) {
                        (t.data !== e || t.next) && (0 === h && (f += (h = d()) * h), 0 === c && (f += (c = d()) * c), f < a && (f = Math.sqrt(a * f)));
                        do {
                            t.data !== e && (p = n[t.data.index] * i / f, e.vx += h * p, e.vy += c * p)
                        } while (t = t.next)
                    }
                }
                return u.initialize = function(e) {
                    t = e, h()
                }, u.strength = function(t) {
                    return arguments.length ? (r = "function" == typeof t ? t : p(+t), h(), u) : r
                }, u.distanceMin = function(t) {
                    return arguments.length ? (a = t * t, u) : Math.sqrt(a)
                }, u.distanceMax = function(t) {
                    return arguments.length ? (o = t * t, u) : Math.sqrt(o)
                }, u.theta = function(t) {
                    return arguments.length ? (s = t * t, u) : Math.sqrt(s)
                }, u
            },
            k = function(t, e, i) {
                var n, r, a, o = p(.1);

                function s(t) {
                    for (var o = 0, s = n.length; o < s; ++o) {
                        var l = n[o],
                            u = l.x - e || 1e-6,
                            h = l.y - i || 1e-6,
                            c = Math.sqrt(u * u + h * h),
                            p = (a[o] - c) * r[o] * t / c;
                        l.vx += u * p, l.vy += h * p
                    }
                }

                function l() {
                    if (n) {
                        var e, i = n.length;
                        for (r = new Array(i), a = new Array(i), e = 0; e < i; ++e) a[e] = +t(n[e], e, n), r[e] = isNaN(a[e]) ? 0 : +o(n[e], e, n)
                    }
                }
                return "function" != typeof t && (t = p(+t)), null == e && (e = 0), null == i && (i = 0), s.initialize = function(t) {
                    n = t, l()
                }, s.strength = function(t) {
                    return arguments.length ? (o = "function" == typeof t ? t : p(+t), l(), s) : o
                }, s.radius = function(e) {
                    return arguments.length ? (t = "function" == typeof e ? e : p(+e), l(), s) : t
                }, s.x = function(t) {
                    return arguments.length ? (e = +t, s) : e
                }, s.y = function(t) {
                    return arguments.length ? (i = +t, s) : i
                }, s
            },
            D = function(t) {
                var e, i, n, r = p(.1);

                function a(t) {
                    for (var r, a = 0, o = e.length; a < o; ++a)(r = e[a]).vx += (n[a] - r.x) * i[a] * t
                }

                function o() {
                    if (e) {
                        var a, o = e.length;
                        for (i = new Array(o), n = new Array(o), a = 0; a < o; ++a) i[a] = isNaN(n[a] = +t(e[a], a, e)) ? 0 : +r(e[a], a, e)
                    }
                }
                return "function" != typeof t && (t = p(null == t ? 0 : +t)), a.initialize = function(t) {
                    e = t, o()
                }, a.strength = function(t) {
                    return arguments.length ? (r = "function" == typeof t ? t : p(+t), o(), a) : r
                }, a.x = function(e) {
                    return arguments.length ? (t = "function" == typeof e ? e : p(+e), o(), a) : t
                }, a
            },
            j = function(t) {
                var e, i, n, r = p(.1);

                function a(t) {
                    for (var r, a = 0, o = e.length; a < o; ++a)(r = e[a]).vy += (n[a] - r.y) * i[a] * t
                }

                function o() {
                    if (e) {
                        var a, o = e.length;
                        for (i = new Array(o), n = new Array(o), a = 0; a < o; ++a) i[a] = isNaN(n[a] = +t(e[a], a, e)) ? 0 : +r(e[a], a, e)
                    }
                }
                return "function" != typeof t && (t = p(null == t ? 0 : +t)), a.initialize = function(t) {
                    e = t, o()
                }, a.strength = function(t) {
                    return arguments.length ? (r = "function" == typeof t ? t : p(+t), o(), a) : r
                }, a.y = function(e) {
                    return arguments.length ? (t = "function" == typeof e ? e : p(+e), o(), a) : t
                }, a
            };
        i.d(e, !1, function() {
            return n
        }), i.d(e, "a", function() {
            return y
        }), i.d(e, "b", function() {
            return x
        }), i.d(e, "c", function() {
            return I
        }), i.d(e, !1, function() {
            return k
        }), i.d(e, "d", function() {
            return C
        }), i.d(e, "e", function() {
            return D
        }), i.d(e, "f", function() {
            return j
        })
    },
    "1E9r": function(t, e, i) {
        var n = i("0sYB"),
            r = i("3weC"),
            a = Object.isExtensible;
        n({
            target: "Reflect",
            stat: !0
        }, {
            isExtensible: function(t) {
                return r(t), !a || a(t)
            }
        })
    },
    "1Er2": function(t, e, i) {
        i("6WsA")("toPrimitive")
    },
    "1Fjw": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("zhwk"),
            o = i("aCit"),
            s = i("tjMS"),
            l = i("qCRI"),
            u = i("Gg2j"),
            h = i("v9UT"),
            c = i("Mtpk"),
            p = i("Rpw0"),
            d = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.point = {
                        x: 0,
                        y: 0
                    }, e._stick = "none", e.className = "Cursor", e.width = Object(s.c)(100), e.height = Object(s.c)(100), e.shouldClone = !1, e.hide(0), e.trackable = !0, e.clickable = !0, e.isMeasured = !1;
                    var i = Object(a.b)();
                    return e._disposers.push(i.body.events.on("down", e.handleCursorDown, e)), e._disposers.push(i.body.events.on("up", e.handleCursorUp, e)), e._disposers.push(i.body.events.on("track", e.handleCursorMove, e)), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.handleCursorMove = function(t) {
                    if (!(!this.interactionsEnabled || this.interactions.isTouchProtected && t.touch)) {
                        if (("zoom" == this._generalBehavior || "pan" == this._generalBehavior) && this.downPoint || Object(a.b)().isLocalElement(t.pointer, this.paper.svg, this.uid)) {
                            var e = h.documentPointToSprite(t.pointer.point, this);
                            return "hard" == this._stick && this._stickPoint && (e = this._stickPoint), "soft" == this._stick && this._stickPoint && (this.fitsToBounds(e) || (e = this._stickPoint)), this.triggerMove(e), e
                        }
                        this.isHidden && this.isHiding || this.hide()
                    }
                }, e.prototype.hideReal = function(e) {
                    if ("hard" != this._stick && "soft" != this._stick || !this._stickPoint) return t.prototype.hideReal.call(this, e)
                }, e.prototype.triggerMove = function(t, e) {
                    t.x = u.round(t.x, 1), t.y = u.round(t.y, 1), e && (this._stick = e), "hard" != e && "soft" != e || (this._stickPoint = t), this.triggerMoveReal(t)
                }, e.prototype.triggerMoveReal = function(t) {
                    this.point.x == t.x && this.point.y == t.y || (this.point = t, this.invalidatePosition(), this.fitsToBounds(t) ? this.show(0) : this.downPoint || this.hide(0), this.visible && (this.getPositions(), this.dispatch("cursorpositionchanged")))
                }, e.prototype.triggerDown = function(t) {
                    this.triggerDownReal(t)
                }, e.prototype.triggerDownReal = function(t) {
                    switch (this._generalBehavior) {
                        case "zoom":
                            this.dispatchImmediately("zoomstarted");
                            break;
                        case "select":
                            this.dispatchImmediately("selectstarted");
                            break;
                        case "pan":
                            this.dispatchImmediately("panstarted"), Object(a.b)().setGlobalStyle(l.a.grabbing)
                    }
                }, e.prototype.triggerUp = function(t) {
                    this.triggerUpReal(t)
                }, e.prototype.triggerUpReal = function(t) {
                    p.b.requestFrame(), this.updatePoint(this.upPoint);
                    var e = Object(a.b)();
                    if (u.getDistance(this._upPointOrig, this._downPointOrig) > e.getHitOption(this.interactions, "hitTolerance")) {
                        switch (this._generalBehavior) {
                            case "zoom":
                                this.dispatch("zoomended");
                                break;
                            case "select":
                                this.dispatch("selectended");
                                break;
                            case "pan":
                                this.dispatch("panended"), e.setGlobalStyle(l.a.default)
                        }
                        this.downPoint = void 0, this.updateSelection()
                    }
                }, e.prototype.updateSelection = function() {}, e.prototype.getPositions = function() {
                    this.xPosition = this.point.x / this.innerWidth, this.yPosition = 1 - this.point.y / this.innerHeight
                }, e.prototype.handleCursorDown = function(t) {
                    if (!(!this.interactionsEnabled || this.interactions.isTouchProtected && t.touch) && Object(a.b)().isLocalElement(t.pointer, this.paper.svg, this.uid)) {
                        var e = h.documentPointToSprite(t.pointer.point, this);
                        "hard" == this._stick && this._stickPoint && (e = this._stickPoint), this._downPointOrig = {
                            x: e.x,
                            y: e.y
                        }, t.event.cancelable && this.shouldPreventGestures(t.touch) && this.fitsToBounds(e) && t.event.preventDefault(), this.triggerMove(e), this.triggerDown(e)
                    }
                }, e.prototype.shouldPreventGestures = function(t) {
                    return !0
                }, e.prototype.updatePoint = function(t) {}, e.prototype.handleCursorUp = function(t) {
                    if (this.interactionsEnabled && (("zoom" == this._generalBehavior || "pan" == this._generalBehavior) && this.downPoint || Object(a.b)().isLocalElement(t.pointer, this.paper.svg, this.uid))) {
                        var e = h.documentPointToSprite(t.pointer.point, this);
                        "hard" == this._stick && this._stickPoint && (e = this._stickPoint), this._upPointOrig = {
                            x: e.x,
                            y: e.y
                        }, this.triggerMove(e), this.triggerUp(e)
                    }
                }, Object.defineProperty(e.prototype, "chart", {
                    get: function() {
                        return this._chart
                    },
                    set: function(t) {
                        this._chart = t, c.hasValue(this._chart.plotContainer) && Object(a.b)().lockElement(this._chart.plotContainer.interactions)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        o.c.registeredClasses.Cursor = d
    },
    "1M4z": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("4Wbs");
        n({
            target: "RegExp",
            proto: !0,
            forced: /./.exec !== r
        }, {
            exec: r
        })
    },
    "1ayE": function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("X/sl").some,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("some", function(t) {
            return r(a(this), t, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    "1dhw": function(t, e, i) {
        var n = i("0sYB"),
            r = i("3sMl"),
            a = i("3weC"),
            o = i("gxUV");
        n({
            target: "Reflect",
            stat: !0,
            sham: !r
        }, {
            getOwnPropertyDescriptor: function(t, e) {
                return o.f(a(t), e)
            }
        })
    },
    "1qam": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("Mtpk"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "PointedShape", e.pointerBaseWidth = 15, e.pointerLength = 10, e.pointerY = 0, e.pointerX = 0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this), a.isNumber(this.pointerX) || (this.pointerX = this.pixelWidth / 2), a.isNumber(this.pointerY) || (this.pointerY = this.pixelHeight + 10)
                }, Object.defineProperty(e.prototype, "pointerBaseWidth", {
                    get: function() {
                        return this.getPropertyValue("pointerBaseWidth")
                    },
                    set: function(t) {
                        this.setPropertyValue("pointerBaseWidth", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pointerLength", {
                    get: function() {
                        return this.getPropertyValue("pointerLength")
                    },
                    set: function(t) {
                        this.setPropertyValue("pointerLength", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pointerX", {
                    get: function() {
                        return this.getPropertyValue("pointerX")
                    },
                    set: function(t) {
                        this.setPropertyValue("pointerX", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pointerY", {
                    get: function() {
                        return this.getPropertyValue("pointerY")
                    },
                    set: function(t) {
                        this.setPropertyValue("pointerY", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a)
    },
    "1t1Z": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("qK31"),
            a = i("swFJ");
        n({
            target: "String",
            proto: !0,
            forced: !i("eVN0")("includes")
        }, {
            includes: function(t) {
                return !!~String(a(this)).indexOf(r(t), arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    "1wCr": function(t, e, i) {
        var n = i("lCww"),
            r = i("vfdp"),
            a = function(t) {
                return "function" == typeof t ? t : void 0
            };
        t.exports = function(t, e) {
            return arguments.length < 2 ? a(n[t]) || a(r[t]) : n[t] && n[t][e] || r[t] && r[t][e]
        }
    },
    "1yyj": function(t, e, i) {
        "use strict";
        e.c = function(t, e) {
            var i = !1,
                n = Date.now();
            return u.a(function r(a) {
                if (!i) {
                    var o = a - n;
                    o >= t ? e(1) : (u.a(r), e(o / t))
                }
            }), new o.b(function() {
                i = !0
            })
        }, i.d(e, "b", function() {
            return x
        }), i.d(e, "a", function() {
            return _
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("hpNl"),
            o = i("hD5A"),
            s = i("8ZqG"),
            l = i("tjMS"),
            u = i("/9XX"),
            h = i("0FpR"),
            c = i("hxI2"),
            p = i("Gg2j"),
            d = i("hJ5i"),
            f = i("Mtpk"),
            g = i("Rpw0");

        function y(t, e, i) {
            return e + (i - e) * t
        }

        function m(t, e, i) {
            return new l.a(y(t, e.percent, i.percent))
        }

        function v(t, e, i) {
            var n = new s.a(c.interpolate(e.rgb, i.rgb, t));
            return e.alpha != i.alpha && (n.alpha = e.alpha + (i.alpha - e.alpha) * t), n
        }

        function b(t, e) {
            return e + t.charAt(0).toUpperCase() + t.substr(1)
        }
        var x = function() {
                function t(t) {
                    this._disposer = new o.b(function() {
                        for (; 0 !== t.length;) t[0].dispose()
                    })
                }
                return t.prototype.isDisposed = function() {
                    return this._disposer.isDisposed()
                }, t.prototype.dispose = function() {
                    this._disposer.dispose()
                }, t
            }(),
            _ = function(t) {
                function e(e, i, n, r) {
                    var a = t.call(this) || this;
                    return a.duration = 0, a.easing = h.linear, a.progress = 0, a._loop = 0, a._pause = !1, a._delayTimeout = null, a._time = 0, a._isFinished = !1, a.className = "Animation", a.object = e, a.animationOptions = d.toArray(i), a.duration = n, r && (a.easing = r), a.applyTheme(), a
                }
                return Object(n.c)(e, t), e.prototype.debug = function() {}, e.prototype.dispose = function() {
                    t.prototype.dispose.call(this), this.pause()
                }, e.prototype.delay = function(t) {
                    var e = this;
                    if (t > 0) {
                        this.pause(), d.move(this.object.animations, this);
                        var i = setTimeout(function() {
                            e._delayTimeout = null, e.start()
                        }, t);
                        this._delayTimeout = new o.b(function() {
                            clearTimeout(i)
                        })
                    }
                    return this
                }, e.prototype._start = function() {
                    this._isFinished = !1, this._delayTimeout && (this.removeDispose(this._delayTimeout), this._delayTimeout = null), this.stopSameAnimations(), this._pause = !1, d.move(g.b.animations, this), d.move(this.object.animations, this), g.b.requestFrame()
                }, e.prototype.start = function() {
                    this._start(), this._startTime = Date.now(), this._time = 0, this.staticOptions = [];
                    for (var t = this.animationOptions.length - 1; t >= 0; t--) {
                        var e = this.animationOptions[t];
                        if (f.hasValue(e.from) || (e.childObject ? e.from = e.childObject[e.property] : (e.from = this.object[e.property], f.hasValue(e.from) || (e.from = a.a[e.property]))), e.from == e.to) d.remove(this.animationOptions, e);
                        else if (!f.hasValue(e.from) || !(e.from instanceof l.a) && e.to instanceof l.a || e.from instanceof l.a && !(e.to instanceof l.a)) this.staticOptions.push(e), d.remove(this.animationOptions, e);
                        else if (f.isNumber(e.to))
                            if (e.updateMethod = y, e.from instanceof l.a) {
                                var i = this.object[b(e.property, "pixel")];
                                isNaN(i) ? (this.staticOptions.push(e), d.remove(this.animationOptions, e)) : e.from = i
                            } else isNaN(e.from) && (this.staticOptions.push(e), d.remove(this.animationOptions, e));
                        else if (e.to instanceof s.a) e.from ? e.updateMethod = v : (this.staticOptions.push(e), d.remove(this.animationOptions, e));
                        else if (e.to instanceof l.a) {
                            if (e.updateMethod = m, !isNaN(e.from)) {
                                i = this.object[b(e.property, "relative")];
                                isNaN(i) || (e.from = Object(l.c)(100 * i))
                            }
                        } else this.staticOptions.push(e), d.remove(this.animationOptions, e)
                    }
                    if (this.applyStaticOptions(), this.events.isEnabled("animationstarted")) {
                        var n = {
                            type: "animationstarted",
                            target: this,
                            progress: this.progress
                        };
                        this.events.dispatchImmediately("animationstarted", n)
                    }
                    return this.update(), 0 === this.duration && this.end(), this
                }, e.prototype.loop = function(t) {
                    return f.isNumber(t) || (t = 1 / 0), this._loop = t, this
                }, e.prototype.pause = function() {
                    return this._pause = !0, this._delayTimeout && (this.removeDispose(this._delayTimeout), this._delayTimeout = null), d.remove(g.b.animations, this), d.remove(this.object.animations, this), this
                }, e.prototype.resume = function() {
                    return this._start(), this._startTime = Date.now() - this._time, this
                }, e.prototype.end = function() {
                    if (0 == this._loop && this.pause(), this.setProgress(1), this.applyStaticOptions(), this.events.isEnabled("animationended")) {
                        var t = {
                            type: "animationended",
                            target: this,
                            progress: this.progress
                        };
                        this.events.dispatchImmediately("animationended", t)
                    }
                    return this._loop > 0 ? (this._loop--, this.start()) : (this.stop(), this._isFinished = !0), this
                }, e.prototype.kill = function() {
                    this.pause(), this._isFinished = !0
                }, e.prototype.isFinished = function() {
                    return this._isFinished
                }, e.prototype.applyStaticOptions = function() {
                    var t = this;
                    d.each(this.staticOptions, function(e) {
                        e.childObject ? e.childObject[e.property] = 1 == t.progress ? e.to : e.from : t.object[e.property] = 1 == t.progress ? e.to : e.from
                    })
                }, e.prototype.stop = function(t) {
                    if (this.pause(), !t && this.events.isEnabled("animationstopped")) {
                        var e = {
                            type: "animationstopped",
                            target: this,
                            progress: this.progress
                        };
                        this.events.dispatchImmediately("animationstopped", e)
                    }
                    return this
                }, e.prototype.setProgress = function(t) {
                    var e = this;
                    if (this._time = this.duration * t, d.each(this.animationOptions, function(i) {
                            if (i.updateMethod && f.hasValue(i.from)) {
                                var n = i.updateMethod(t, i.from, i.to);
                                i.childObject ? i.childObject[i.property] = n : e.object[i.property] = n
                            }
                        }), this.progress = t, this.events.isEnabled("animationprogress")) {
                        var i = {
                            type: "animationprogress",
                            target: this,
                            progress: this.progress
                        };
                        this.events.dispatchImmediately("animationprogress", i)
                    }
                    g.b.requestFrame()
                }, e.prototype.update = function() {
                    if (!this._pause) {
                        var t = void 0;
                        this._time = p.fitToRange(Date.now() - this._startTime, 0, this.duration);
                        var e = this._time / this.duration;
                        t = this.easing(e), (0 == this.duration || !f.isNumber(t) || e >= 1) && (t = 1), this.setProgress(t), 1 == p.round(this._time / this.duration, 6) && this.end()
                    }
                    return this
                }, Object.defineProperty(e.prototype, "delayed", {
                    get: function() {
                        return !!this._delayTimeout
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.stopSameAnimations = function() {
                    var t = this;
                    d.each(d.copy(this.object.animations), function(e) {
                        if (e !== t && !e.delayed) {
                            var i = [];
                            d.each(t.animationOptions, function(t) {
                                d.each(e.animationOptions, function(n) {
                                    t.property == n.property && t.childObject == n.childObject && (i.push(n), 0 == e.animationOptions.length && e.kill())
                                })
                            }), d.each(i, function(t) {
                                d.remove(e.animationOptions, t)
                            })
                        }
                    })
                }, e.prototype.asFunction = function(e) {
                    return "easing" == e || t.prototype.asIs.call(this, e)
                }, e
            }(r.b)
    },
    "29Us": function(t, e, i) {
        var n = i("vfdp"),
            r = i("k2B3");
        t.exports = function(t, e) {
            try {
                r(n, t, e)
            } catch (i) {
                n[t] = e
            }
            return e
        }
    },
    "2D0i": function(t, e, i) {
        var n, r, a, o, s, l, u, h, c = i("vfdp"),
            p = i("gxUV").f,
            d = i("2xmP"),
            f = i("gBcN").set,
            g = i("q8hm"),
            y = c.MutationObserver || c.WebKitMutationObserver,
            m = c.process,
            v = c.Promise,
            b = "process" == d(m),
            x = p(c, "queueMicrotask"),
            _ = x && x.value;
        _ || (n = function() {
            var t, e;
            for (b && (t = m.domain) && t.exit(); r;) {
                e = r.fn, r = r.next;
                try {
                    e()
                } catch (t) {
                    throw r ? o() : a = void 0, t
                }
            }
            a = void 0, t && t.enter()
        }, b ? o = function() {
            m.nextTick(n)
        } : y && !g ? (s = !0, l = document.createTextNode(""), new y(n).observe(l, {
            characterData: !0
        }), o = function() {
            l.data = s = !s
        }) : v && v.resolve ? (u = v.resolve(void 0), h = u.then, o = function() {
            h.call(u, n)
        }) : o = function() {
            f.call(c, n)
        }), t.exports = _ || function(t) {
            var e = {
                fn: t,
                next: void 0
            };
            a && (a.next = e), r || (r = e, o()), a = e
        }
    },
    "2I/e": function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return g
        }), i.d(e, "a", function() {
            return y
        });
        var n = i("m4/l"),
            r = i("VIOb"),
            a = i("vMqJ"),
            o = i("C6dT"),
            s = i("aM7D"),
            l = i("tjMS"),
            u = i("DHte"),
            h = i("aCit"),
            c = i("Wglt"),
            p = i("Mtpk"),
            d = i("hJ5i"),
            f = i("hD5A"),
            g = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "SerialChartDataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e
            }(r.b),
            y = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "SerialChart", e.colors = new u.a, e._usesData = !1;
                    var i = e.chartContainer.createChild(o.a);
                    i.shouldClone = !1, i.width = Object(l.c)(100), i.height = Object(l.c)(100), i.isMeasured = !1, i.layout = "none", i.zIndex = 2, e.seriesContainer = i;
                    var n = e.chartContainer.createChild(o.a);
                    return n.shouldClone = !1, n.width = Object(l.c)(100), n.height = Object(l.c)(100), n.isMeasured = !1, n.zIndex = 3, n.layout = "none", e.bulletsContainer = n, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.dispose = function() {
                    t.prototype.dispose.call(this), this.colors && this.colors.dispose(), this.patterns && this.patterns.dispose()
                }, e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), p.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Serial chart"))
                }, Object.defineProperty(e.prototype, "series", {
                    get: function() {
                        return this._series || (this._series = new a.e(this.createSeries()), this._series.events.on("inserted", this.handleSeriesAdded, this, !1), this._series.events.on("removed", this.handleSeriesRemoved, this, !1), this._disposers.push(new a.c(this._series)), this._disposers.push(this._series.template)), this._series
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleSeriesRemoved = function(t) {
                    var e = this,
                        i = t.oldValue;
                    this.dataUsers.removeValue(i), this.dataUsers.each(function(t) {
                        t.invalidateDataItems()
                    }), i.autoDispose && i.dispose(), this.legend && (this.legend.dataItems.each(function(t) {
                        t.dataContext == i && e.legend.dataItems.remove(t)
                    }), d.each(this.legend.data, function(t) {
                        d.remove(e.legend.data, t)
                    }))
                }, e.prototype.handleSeriesAdded = function(t) {
                    var e = this,
                        i = t.newValue;
                    i.isDisposed() || (i.chart = this, i.parent = this.seriesContainer, i.bulletsContainer.parent = this.bulletsContainer, this._dataUsers.moveValue(i), i.addDisposer(new f.b(function() {
                        e.dataUsers.removeValue(i)
                    })), this.handleSeriesAdded2(i), i.hiddenInLegend || this.legend && this.legend.addData(i))
                }, e.prototype.handleSeriesAdded2 = function(t) {
                    var e = this;
                    this.dataInvalid || this._disposers.push(h.c.events.once("exitframe", function() {
                        t.data && 0 != t.data.length || e.invalidateData()
                    }))
                }, e.prototype.feedLegend = function() {
                    var t = this.legend;
                    if (t) {
                        var e = [];
                        c.each(this.series.iterator(), function(t) {
                            t.hiddenInLegend || e.push(t)
                        }), t.dataFields.name = "name", t.data = e
                    }
                }, e.prototype.createSeries = function() {
                    return new s.a
                }, Object.defineProperty(e.prototype, "colors", {
                    get: function() {
                        return this.getPropertyValue("colors")
                    },
                    set: function(t) {
                        this.setPropertyValue("colors", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "patterns", {
                    get: function() {
                        return this.getPropertyValue("patterns")
                    },
                    set: function(t) {
                        this.setPropertyValue("patterns", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.series.copyFrom(e.series)
                }, e.prototype.appear = function() {
                    t.prototype.appear.call(this), this.series.each(function(t) {
                        t.showOnInit && t.inited && t.appear()
                    })
                }, e
            }(r.a);
        h.c.registeredClasses.SerialChart = y
    },
    "2K9G": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("7X7h"),
            o = i("EErT");
        n({
            target: "Date",
            proto: !0,
            forced: r(function() {
                return null !== new Date(NaN).toJSON() || 1 !== Date.prototype.toJSON.call({
                    toISOString: function() {
                        return 1
                    }
                })
            })
        }, {
            toJSON: function(t) {
                var e = a(this),
                    i = o(e);
                return "number" != typeof i || isFinite(i) ? e.toISOString() : null
            }
        })
    },
    "2MCn": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("WShl");
        n({
            target: "Array",
            stat: !0,
            forced: r(function() {
                function t() {}
                return !(Array.of.call(t) instanceof t)
            })
        }, {
            of: function() {
                for (var t = 0, e = arguments.length, i = new("function" == typeof this ? this : Array)(e); e > t;) a(i, t, arguments[t++]);
                return i.length = e, i
            }
        })
    },
    "2OXf": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return m
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("sxA1"),
            o = i("aCit"),
            s = i("8ZqG"),
            l = i("vMqJ"),
            u = i("tjMS"),
            h = i("pR7v"),
            c = i("k6kv"),
            p = i("OXm9"),
            d = i("Wglt"),
            f = i("Mtpk"),
            g = i("hxI2"),
            y = i("CnhP"),
            m = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "HeatLegend", e.markerContainer = e.createChild(r.a), e.markerContainer.shouldClone = !1, e.markerCount = 1;
                    var i = new y.a;
                    return i.minHeight = 20, i.minWidth = 20, i.interactionsEnabled = !1, i.fillOpacity = 1, i.cornerRadius(0, 0, 0, 0), e.markerContainer.minHeight = 20, e.markerContainer.minWidth = 20, e.orientation = "horizontal", e.markers = new l.e(i), e._disposers.push(new l.c(e.markers)), e._disposers.push(e.markers.template), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.getMinFromRules = function(t) {
                    var e, i = this.series;
                    if (i) return d.eachContinue(i.heatRules.iterator(), function(i) {
                        return i.property != t || (e = i.min, !1)
                    }), e
                }, e.prototype.getMaxFromRules = function(t) {
                    var e, i = this.series;
                    if (i) return d.each(i.heatRules.iterator(), function(i) {
                        return i.property != t || (e = i.max, !1)
                    }), e
                }, e.prototype.validate = function() {
                    t.prototype.validate.call(this), this.valueAxis.renderer.inversed = this.reverseOrder;
                    var e = this.series,
                        i = this.minColor,
                        n = this.maxColor;
                    if (f.hasValue(i) || (i = Object(s.e)(this.getMinFromRules("fill"))), f.hasValue(n) || (n = Object(s.e)(this.getMaxFromRules("fill"))), e) {
                        var r = e.fill;
                        !f.hasValue(i) && r instanceof s.a && (i = r), !f.hasValue(n) && r instanceof s.a && (n = r)
                    }
                    f.hasValue(n) || (n = Object(s.e)(this.getMaxFromRules("fill")));
                    var o = f.toNumber(this.getMinFromRules("fillOpacity"));
                    f.isNumber(o) || (o = 1);
                    var l = f.toNumber(this.getMaxFromRules("fillOpacity"));
                    f.isNumber(l) || (l = 1);
                    var h = f.toNumber(this.getMinFromRules("strokeOpacity"));
                    f.isNumber(h) || (h = 1);
                    var c = f.toNumber(this.getMaxFromRules("strokeOpacity"));
                    f.isNumber(c) || (c = 1);
                    for (var p = Object(s.e)(this.getMinFromRules("stroke")), d = Object(s.e)(this.getMaxFromRules("stroke")), y = 0; y < this.markerCount; y++) {
                        var m = this.markers.getIndex(y);
                        if (m || ((m = this.markers.create()).parent = this.markerContainer, m.height = Object(u.c)(100), m.width = Object(u.c)(100)), 1 == this.markerCount) {
                            var v = new a.a;
                            if (this.reverseOrder ? (v.addColor(n, l), v.addColor(i, o)) : (v.addColor(i, o), v.addColor(n, l)), "vertical" == this.orientation && (v.rotation = -90), m.fill = v, f.hasValue(p) && f.hasValue(d)) {
                                var b = new a.a;
                                this.reverseOrder ? (b.addColor(d, c), b.addColor(p, h)) : (b.addColor(p, h), b.addColor(d, c)), "vertical" == this.orientation && (b.rotation = -90), m.stroke = b
                            }
                        } else {
                            var x = y;
                            this.reverseOrder && (x = this.markerCount - y - 1);
                            var _ = new s.a(g.interpolate(i.rgb, n.rgb, x / this.markerCount));
                            m.fill = _;
                            var P = o + (l - o) * x / this.markerCount;
                            if (m.fillOpacity = P, f.hasValue(p) && f.hasValue(d)) {
                                var w = new s.a(g.interpolate(p.rgb, d.rgb, x / this.markerCount));
                                m.stroke = w;
                                var O = h + (c - h) * x / this.markerCount;
                                m.strokeOpacity = O
                            }
                        }
                    }
                    var T = this.valueAxis.renderer;
                    this.markerCount > 1 && ("horizontal" == this.orientation ? T.minGridDistance = this.measuredWidth / this.markerCount : T.minGridDistance = this.measuredHeight / this.markerCount), this.valueAxis.invalidate();
                    y = this.markerCount;
                    for (var S = this.markers.length; y < S; y++) this.markers.getIndex(y).parent = void 0
                }, Object.defineProperty(e.prototype, "minColor", {
                    get: function() {
                        return this.getPropertyValue("minColor")
                    },
                    set: function(t) {
                        t instanceof s.a || (t = Object(s.e)(t)), this.setColorProperty("minColor", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxColor", {
                    get: function() {
                        return this.getPropertyValue("maxColor")
                    },
                    set: function(t) {
                        f.isObject(t) || (t = Object(s.e)(t)), this.setColorProperty("maxColor", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "markerCount", {
                    get: function() {
                        return this.getPropertyValue("markerCount")
                    },
                    set: function(t) {
                        this.setPropertyValue("markerCount", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minValue", {
                    get: function() {
                        return this.getPropertyValue("minValue")
                    },
                    set: function(t) {
                        this.setPropertyValue("minValue", t), this.valueAxis.min = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxValue", {
                    get: function() {
                        return this.getPropertyValue("maxValue")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxValue", t), this.valueAxis.max = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "orientation", {
                    get: function() {
                        return this.getPropertyValue("orientation")
                    },
                    set: function(t) {
                        this.setPropertyValue("orientation", t, !0);
                        var e = this.markerContainer,
                            i = this.valueAxis;
                        "horizontal" == t ? (f.hasValue(this.width) || (this.width = 200), this.height = void 0, i.width = Object(u.c)(100), i.height = void 0, i.tooltip.pointerOrientation = "vertical", this.layout = "vertical", e.width = Object(u.c)(100), e.height = void 0, i.renderer instanceof c.a || (i.renderer = new c.a)) : (f.hasValue(this.height) || (this.height = 200), this.width = void 0, this.layout = "horizontal", e.width = void 0, e.height = Object(u.c)(100), i.height = Object(u.c)(100), i.width = void 0, i.tooltip.pointerOrientation = "horizontal", i.renderer instanceof p.a || (i.renderer = new p.a), i.renderer.inside = !0, i.renderer.labels.template.inside = !0, this.markerContainer.reverseOrder = !0);
                        var n = i.renderer;
                        n.grid.template.disabled = !0, n.axisFills.template.disabled = !0, n.baseGrid.disabled = !0, n.labels.template.padding(2, 3, 2, 3), n.minHeight = void 0, n.minWidth = void 0, this.markerContainer.layout = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "valueAxis", {
                    get: function() {
                        return this._valueAxis || (this.valueAxis = this.createChild(h.a), this.valueAxis.shouldClone = !1), this._valueAxis
                    },
                    set: function(t) {
                        this._valueAxis = t, t.parent = this, t.strictMinMax = !0, this.orientation = this.orientation
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "series", {
                    get: function() {
                        return this._series
                    },
                    set: function(t) {
                        var e = this;
                        this._series = t;
                        var i = "value";
                        try {
                            var n = t.heatRules.getIndex(0).dataField;
                            n && (i = n)
                        } catch (t) {}
                        this.updateMinMax(t.dataItem.values[i].low, t.dataItem.values[i].high), t.dataItem.events.on("calculatedvaluechanged", function(n) {
                            e.updateMinMax(t.dataItem.values[i].low, t.dataItem.values[i].high)
                        }, void 0, !1), t.heatRules.events.on("inserted", this.invalidate, this, !1), t.heatRules.events.on("removed", this.invalidate, this, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.updateMinMax = function(t, e) {
                    var i = this.valueAxis;
                    f.isNumber(this.minValue) || (i.min = t, i.invalidate()), f.isNumber(this.maxValue) || (i.max = e, i.invalidate())
                }, e.prototype.processConfig = function(e) {
                    if (e && f.hasValue(e.series) && f.isString(e.series) && f.isString(e.series))
                        if (this.map.hasKey(e.series)) e.series = this.map.getKey(e.series);
                        else {
                            var i = e.series,
                                n = this.map.events.on("insertKey", function(t) {
                                    t.key == i && (this.series = t.newValue, n.dispose())
                                }, this);
                            this._disposers.push(n), delete e.series
                        } t.prototype.processConfig.call(this, e)
                }, e
            }(r.a);
        o.c.registeredClasses.HeatLegend = m
    },
    "2fPu": function(t, e, i) {
        var n = i("bvi0"),
            r = Function.toString;
        "function" != typeof n.inspectSource && (n.inspectSource = function(t) {
            return r.call(t)
        }), t.exports = n.inspectSource
    },
    "2gKx": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("ZLF9"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.rectHeight = 1, e.rectWidth = 1, e._rect = e.paper.add("rect"), e.addElement(e._rect), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this), this.properties.rotationX = this.width / 2, this.properties.rotationY = this.height / 2, this._rect && this._rect.attr({
                        width: this.rectWidth,
                        height: this.rectHeight,
                        x: (this.width - this.rectWidth) / 2,
                        y: (this.height - this.rectHeight) / 2
                    })
                }, Object.defineProperty(e.prototype, "rectWidth", {
                    get: function() {
                        return this.properties.rectWidth
                    },
                    set: function(t) {
                        this.properties.rectWidth = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "rectHeight", {
                    get: function() {
                        return this.properties.rectHeight
                    },
                    set: function(t) {
                        this.properties.rectHeight = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.RectPattern = o
    },
    "2gbO": function(t, e, i) {
        var n = i("3sMl"),
            r = i("vfdp"),
            a = i("EjSS"),
            o = i("047P"),
            s = i("8+rI").f,
            l = i("GtmK").f,
            u = i("AzDz"),
            h = i("/arR"),
            c = i("mte+"),
            p = i("z3p0"),
            d = i("6aQQ"),
            f = i("SqFF").set,
            g = i("YRD/"),
            y = i("KslR")("match"),
            m = r.RegExp,
            v = m.prototype,
            b = /a/g,
            x = /a/g,
            _ = new m(b) !== b,
            P = c.UNSUPPORTED_Y;
        if (n && a("RegExp", !_ || P || d(function() {
                return x[y] = !1, m(b) != b || m(x) == x || "/a/i" != m(b, "i")
            }))) {
            for (var w = function(t, e) {
                    var i, n = this instanceof w,
                        r = u(t),
                        a = void 0 === e;
                    if (!n && r && t.constructor === w && a) return t;
                    _ ? r && !a && (t = t.source) : t instanceof w && (a && (e = h.call(t)), t = t.source), P && (i = !!e && e.indexOf("y") > -1) && (e = e.replace(/y/g, ""));
                    var s = o(_ ? new m(t, e) : m(t, e), n ? this : v, w);
                    return P && i && f(s, {
                        sticky: i
                    }), s
                }, O = function(t) {
                    t in w || s(w, t, {
                        configurable: !0,
                        get: function() {
                            return m[t]
                        },
                        set: function(e) {
                            m[t] = e
                        }
                    })
                }, T = l(m), S = 0; T.length > S;) O(T[S++]);
            v.constructor = w, w.prototype = v, p(r, "RegExp", w)
        }
        g("RegExp")
    },
    "2ih1": function(t, e, i) {
        var n = i("0sYB"),
            r = i("UseD");
        n({
            target: "ArrayBuffer",
            stat: !0,
            forced: !r.NATIVE_ARRAY_BUFFER_VIEWS
        }, {
            isView: r.isView
        })
    },
    "2xmP": function(t, e) {
        var i = {}.toString;
        t.exports = function(t) {
            return i.call(t).slice(8, -1)
        }
    },
    "3/51": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("DA7/"),
            a = i("aCit"),
            o = i("Gg2j"),
            s = i("Mtpk"),
            l = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.lightnesses = [], e.brightnesses = [], e.opacities = [], e.offsets = [], e.className = "GradientModifier", e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "lightnesses", {
                    get: function() {
                        return this._lightnesses
                    },
                    set: function(t) {
                        this._lightnesses = t, this._brightnesses = []
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "brightnesses", {
                    get: function() {
                        return this._brightnesses
                    },
                    set: function(t) {
                        this._brightnesses = t, this._lightnesses = []
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "opacities", {
                    get: function() {
                        return this._opacities
                    },
                    set: function(t) {
                        this._opacities = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "offsets", {
                    get: function() {
                        return this._offsets
                    },
                    set: function(t) {
                        this._offsets = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.modify = function(t) {
                    this.gradient.clear();
                    var e = 0;
                    this.opacities && (e = o.max(e, this.opacities.length)), this.lightnesses && (e = o.max(e, this.lightnesses.length)), this.brightnesses && (e = o.max(e, this.brightnesses.length));
                    for (var i, n, r = 1, a = 0; a < e; a++) {
                        var l = t;
                        this.opacities && s.isNumber(this.opacities[a]) && (r = this.opacities[a]), this.lightnesses && s.isNumber(this.lightnesses[a]) && (i = this.lightnesses[a], n = void 0), this.brightnesses && s.isNumber(this.brightnesses[a]) && (n = this.brightnesses[a], i = void 0), s.isNumber(n) ? l = t.brighten(this.brightnesses[a]) : s.isNumber(i) && (l = t.lighten(this.lightnesses[a]));
                        var u = this.offsets[a];
                        this.gradient.addColor(l, r, u)
                    }
                    return this.gradient
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this._offsets = e.offsets, this._brightnesses = e.brightnesses, this._lightnesses = e.lightnesses, this._opacities = e.opacities
                }, e
            }(r.a);
        a.c.registeredClasses.GradientModifier = l
    },
    "32Y2": function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = n.aTypedArray,
            a = n.exportTypedArrayMethod,
            o = [].sort;
        a("sort", function(t) {
            return o.call(r(this), t)
        })
    },
    "36nV": function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("NSJ1"),
            a = n.aTypedArrayConstructor;
        (0, n.exportTypedArrayStaticMethod)("of", function() {
            for (var t = 0, e = arguments.length, i = new(a(this))(e); e > t;) i[t] = arguments[t++];
            return i
        }, r)
    },
    "39+r": function(t, e, i) {
        "use strict";
        var n = i("7X7h"),
            r = i("Y8n3"),
            a = i("tHyI"),
            o = Math.min;
        t.exports = [].copyWithin || function(t, e) {
            var i = n(this),
                s = a(i.length),
                l = r(t, s),
                u = r(e, s),
                h = arguments.length > 2 ? arguments[2] : void 0,
                c = o((void 0 === h ? s : r(h, s)) - u, s - l),
                p = 1;
            for (u < l && l < u + c && (p = -1, u += c - 1, l += c - 1); c-- > 0;) u in i ? i[l] = i[u] : delete i[l], l += p, u += p;
            return i
        }
    },
    "3Cxr": function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.order = function(t, e) {
            return t === e ? 0 : t < e ? -1 : 1
        }
    },
    "3Fha": function(t, e, i) {
        var n = i("7X7h"),
            r = i("tHyI"),
            a = i("Ur2B"),
            o = i("3Ok2"),
            s = i("cLsB"),
            l = i("UseD").aTypedArrayConstructor;
        t.exports = function(t) {
            var e, i, u, h, c, p, d = n(t),
                f = arguments.length,
                g = f > 1 ? arguments[1] : void 0,
                y = void 0 !== g,
                m = a(d);
            if (void 0 != m && !o(m))
                for (p = (c = m.call(d)).next, d = []; !(h = p.call(c)).done;) d.push(h.value);
            for (y && f > 2 && (g = s(g, arguments[2], 2)), i = r(d.length), u = new(l(this))(i), e = 0; i > e; e++) u[e] = y ? g(d[e], e) : d[e];
            return u
        }
    },
    "3Ok2": function(t, e, i) {
        var n = i("KslR"),
            r = i("CNF5"),
            a = n("iterator"),
            o = Array.prototype;
        t.exports = function(t) {
            return void 0 !== t && (r.Array === t || o[a] === t)
        }
    },
    "3XS/": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("rhk+").start;
        n({
            target: "String",
            proto: !0,
            forced: i("tf09")
        }, {
            padStart: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    "3Z2E": function(t, e, i) {
        "use strict";
        var n = i("NZ9V"),
            r = i("3weC"),
            a = i("7X7h"),
            o = i("tHyI"),
            s = i("exNg"),
            l = i("swFJ"),
            u = i("L0in"),
            h = i("Xw1K"),
            c = Math.max,
            p = Math.min,
            d = Math.floor,
            f = /\$([$&'`]|\d\d?|<[^>]*>)/g,
            g = /\$([$&'`]|\d\d?)/g,
            y = function(t) {
                return void 0 === t ? t : String(t)
            };
        n("replace", 2, function(t, e, i, n) {
            var m = n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,
                v = n.REPLACE_KEEPS_$0,
                b = m ? "$" : "$0";
            return [function(i, n) {
                var r = l(this),
                    a = void 0 == i ? void 0 : i[t];
                return void 0 !== a ? a.call(i, r, n) : e.call(String(r), i, n)
            }, function(t, n) {
                if (!m && v || "string" == typeof n && -1 === n.indexOf(b)) {
                    var a = i(e, t, this, n);
                    if (a.done) return a.value
                }
                var l = r(t),
                    d = String(this),
                    f = "function" == typeof n;
                f || (n = String(n));
                var g = l.global;
                if (g) {
                    var _ = l.unicode;
                    l.lastIndex = 0
                }
                for (var P = [];;) {
                    var w = h(l, d);
                    if (null === w) break;
                    if (P.push(w), !g) break;
                    "" === String(w[0]) && (l.lastIndex = u(d, o(l.lastIndex), _))
                }
                for (var O = "", T = 0, S = 0; S < P.length; S++) {
                    w = P[S];
                    for (var C = String(w[0]), I = c(p(s(w.index), d.length), 0), k = [], D = 1; D < w.length; D++) k.push(y(w[D]));
                    var j = w.groups;
                    if (f) {
                        var V = [C].concat(k, I, d);
                        void 0 !== j && V.push(j);
                        var A = String(n.apply(void 0, V))
                    } else A = x(C, d, I, k, j, n);
                    I >= T && (O += d.slice(T, I) + A, T = I + C.length)
                }
                return O + d.slice(T)
            }];

            function x(t, i, n, r, o, s) {
                var l = n + t.length,
                    u = r.length,
                    h = g;
                return void 0 !== o && (o = a(o), h = f), e.call(s, h, function(e, a) {
                    var s;
                    switch (a.charAt(0)) {
                        case "$":
                            return "$";
                        case "&":
                            return t;
                        case "`":
                            return i.slice(0, n);
                        case "'":
                            return i.slice(l);
                        case "<":
                            s = o[a.slice(1, -1)];
                            break;
                        default:
                            var h = +a;
                            if (0 === h) return e;
                            if (h > u) {
                                var c = d(h / 10);
                                return 0 === c ? e : c <= u ? void 0 === r[c - 1] ? a.charAt(1) : r[c - 1] + a.charAt(1) : e
                            }
                            s = r[h - 1]
                    }
                    return void 0 === s ? "" : s
                })
            }
        })
    },
    "3mR7": function(t, e, i) {
        "use strict";
        var n = i("3sMl"),
            r = i("vfdp"),
            a = i("EjSS"),
            o = i("z3p0"),
            s = i("JZRr"),
            l = i("2xmP"),
            u = i("047P"),
            h = i("EErT"),
            c = i("6aQQ"),
            p = i("QzDi"),
            d = i("GtmK").f,
            f = i("gxUV").f,
            g = i("8+rI").f,
            y = i("jnLg").trim,
            m = r.Number,
            v = m.prototype,
            b = "Number" == l(p(v)),
            x = function(t) {
                var e, i, n, r, a, o, s, l, u = h(t, !1);
                if ("string" == typeof u && u.length > 2)
                    if (43 === (e = (u = y(u)).charCodeAt(0)) || 45 === e) {
                        if (88 === (i = u.charCodeAt(2)) || 120 === i) return NaN
                    } else if (48 === e) {
                    switch (u.charCodeAt(1)) {
                        case 66:
                        case 98:
                            n = 2, r = 49;
                            break;
                        case 79:
                        case 111:
                            n = 8, r = 55;
                            break;
                        default:
                            return +u
                    }
                    for (o = (a = u.slice(2)).length, s = 0; s < o; s++)
                        if ((l = a.charCodeAt(s)) < 48 || l > r) return NaN;
                    return parseInt(a, n)
                }
                return +u
            };
        if (a("Number", !m(" 0o1") || !m("0b1") || m("+0x1"))) {
            for (var _, P = function(t) {
                    var e = arguments.length < 1 ? 0 : t,
                        i = this;
                    return i instanceof P && (b ? c(function() {
                        v.valueOf.call(i)
                    }) : "Number" != l(i)) ? u(new m(x(e)), i, P) : x(e)
                }, w = n ? d(m) : "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","), O = 0; w.length > O; O++) s(m, _ = w[O]) && !s(P, _) && g(P, _, f(m, _));
            P.prototype = v, v.constructor = P, o(r, "Number", P)
        }
    },
    "3pky": function(t, e, i) {
        var n = i("JZRr"),
            r = i("9XRO"),
            a = i("ojxk").indexOf,
            o = i("lt6Q");
        t.exports = function(t, e) {
            var i, s = r(t),
                l = 0,
                u = [];
            for (i in s) !n(o, i) && n(s, i) && u.push(i);
            for (; e.length > l;) n(s, i = e[l++]) && (~a(u, i) || u.push(i));
            return u
        }
    },
    "3sMl": function(t, e, i) {
        var n = i("6aQQ");
        t.exports = !n(function() {
            return 7 != Object.defineProperty({}, 1, {
                get: function() {
                    return 7
                }
            })[1]
        })
    },
    "3weC": function(t, e, i) {
        var n = i("Kg2n");
        t.exports = function(t) {
            if (!n(t)) throw TypeError(String(t) + " is not an object");
            return t
        }
    },
    "4BZe": function(t, e, i) {
        var n = i("2xmP");
        t.exports = function(t) {
            if ("number" != typeof t && "Number" != n(t)) throw TypeError("Incorrect invocation");
            return +t
        }
    },
    "4DCw": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("mIpt"),
            a = i("Mtpk"),
            o = i("hJ5i"),
            s = [",", ";", "\t"],
            l = function(t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e.contentType = "text/csv", e.options = {
                        delimiter: "",
                        reverse: !1,
                        skipRows: 0,
                        skipEmpty: !0,
                        useColumnNames: !1
                    }, e
                }
                return Object(n.c)(e, t), e.isCSV = function(t) {
                    return !!e.getDelimiterFromData(t)
                }, e.getDelimiterFromData = function(t) {
                    var e, i = t.split("\n"),
                        n = i.length;
                    return o.each(s, function(t) {
                        for (var r = 0, a = 0, o = 0; o < n; ++o) {
                            if (!((r = i[o].split(t).length) > 1)) {
                                a = 0;
                                break
                            }
                            if (0 === a) a = r;
                            else if (r != a) {
                                a = 0;
                                break
                            }
                        }
                        a && (e = t)
                    }), e
                }, e.prototype.parse = function(t) {
                    this.options.delimiter || (this.options.delimiter = e.getDelimiterFromData(t));
                    var i, n, r, o = this.CSVToArray(t, this.options.delimiter),
                        s = a.hasValue(this.options.emptyAs),
                        l = this.parsableNumbers,
                        u = this.parsableDates,
                        h = [],
                        c = [];
                    for (n = 0; n < this.options.skipRows; n++) o.shift();
                    if (this.options.useColumnNames) {
                        c = o.shift();
                        for (var p = 0; p < c.length; p++) "" === (i = a.hasValue(c[p]) ? c[p].replace(/^\s+|\s+$/gm, "") : "") && (i = "col" + p), c[p] = i
                    }
                    for (; r = this.options.reverse ? o.pop() : o.shift();)
                        if (!this.options.skipEmpty || 1 !== r.length || "" !== r[0]) {
                            var d = {};
                            for (n = 0; n < r.length; n++) d[i = void 0 === c[n] ? "col" + n : c[n]] = "" === r[n] ? this.options.emptyAs : r[n], s && (d[i] = this.maybeToEmpty(d[i])), l && (d[i] = this.maybeToNumber(i, d[i])), u && (d[i] = this.maybeToDate(i, d[i]));
                            h.push(d)
                        } return h
                }, e.prototype.CSVToArray = function(t, e) {
                    e = e || ",";
                    for (var i = new RegExp("(\\" + e + '|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\' + e + "\\r\\n]*))", "gi"), n = [
                            []
                        ], r = null; r = i.exec(t);) {
                        var a = r[1];
                        a.length && a !== e && n.push([]);
                        var o = void 0;
                        o = r[2] ? r[2].replace(new RegExp('""', "g"), '"') : r[3], n[n.length - 1].push(o)
                    }
                    return n
                }, e
            }(r.a)
    },
    "4Wbs": function(t, e, i) {
        "use strict";
        var n = i("/arR"),
            r = i("mte+"),
            a = RegExp.prototype.exec,
            o = String.prototype.replace,
            s = a,
            l = function() {
                var t = /a/,
                    e = /b*/g;
                return a.call(t, "a"), a.call(e, "a"), 0 !== t.lastIndex || 0 !== e.lastIndex
            }(),
            u = r.UNSUPPORTED_Y || r.BROKEN_CARET,
            h = void 0 !== /()??/.exec("")[1];
        (l || h || u) && (s = function(t) {
            var e, i, r, s, c = this,
                p = u && c.sticky,
                d = n.call(c),
                f = c.source,
                g = 0,
                y = t;
            return p && (-1 === (d = d.replace("y", "")).indexOf("g") && (d += "g"), y = String(t).slice(c.lastIndex), c.lastIndex > 0 && (!c.multiline || c.multiline && "\n" !== t[c.lastIndex - 1]) && (f = "(?: " + f + ")", y = " " + y, g++), i = new RegExp("^(?:" + f + ")", d)), h && (i = new RegExp("^" + f + "$(?!\\s)", d)), l && (e = c.lastIndex), r = a.call(p ? i : c, y), p ? r ? (r.input = r.input.slice(g), r[0] = r[0].slice(g), r.index = c.lastIndex, c.lastIndex += r[0].length) : c.lastIndex = 0 : l && r && (c.lastIndex = c.global ? r.index + r[0].length : e), h && r && r.length > 1 && o.call(r[0], i, function() {
                for (s = 1; s < arguments.length - 2; s++) void 0 === arguments[s] && (r[s] = void 0)
            }), r
        }), t.exports = s
    },
    "57vZ": function(t, e, i) {
        var n = i("0sYB"),
            r = i("1wCr"),
            a = i("6aQQ"),
            o = r("JSON", "stringify"),
            s = /[\uD800-\uDFFF]/g,
            l = /^[\uD800-\uDBFF]$/,
            u = /^[\uDC00-\uDFFF]$/,
            h = function(t, e, i) {
                var n = i.charAt(e - 1),
                    r = i.charAt(e + 1);
                return l.test(t) && !u.test(r) || u.test(t) && !l.test(n) ? "\\u" + t.charCodeAt(0).toString(16) : t
            },
            c = a(function() {
                return '"\\udf06\\ud834"' !== o("\udf06\ud834") || '"\\udead"' !== o("\udead")
            });
        o && n({
            target: "JSON",
            stat: !0,
            forced: c
        }, {
            stringify: function(t, e, i) {
                var n = o.apply(null, arguments);
                return "string" == typeof n ? n.replace(s, h) : n
            }
        })
    },
    "58Sn": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        }), i.d(e, "e", function() {
            return c
        }), i.d(e, "d", function() {
            return p
        }), e.g = function(t, e, i, n) {
            return t.addEventListener(e, i, n || !1), new a.b(function() {
                t.removeEventListener(e, i, n || !1)
            })
        }, e.q = function(t) {
            if (u.isString(t)) {
                var e = document.getElementById(t);
                if (null == e && (e = document.getElementsByClassName(t)[0]), e instanceof HTMLElement) return e
            } else if (t instanceof HTMLElement) return t
        }, e.f = function(t, e) {
            if (!t) return;
            if (t.classList) t.classList.add(e);
            else {
                var i = t.getAttribute("class");
                i ? t.setAttribute("class", i.split(" ").filter(function(t) {
                    return t !== e
                }).join(" ") + " " + e) : t.setAttribute("class", e)
            }
        }, e.x = function(t, e) {
            if (!t) return;
            if (t.classList) t.classList.remove(e);
            else {
                var i = t.getAttribute("class");
                i && t.setAttribute("class", i.split(" ").filter(function(t) {
                    return t !== e
                }).join(" "))
            }
        }, e.y = function(t, e, i) {
            t.style[e] = i
        }, e.p = d, e.h = function() {
            var t = document.createElement("input");
            t.style.position = "fixed", t.style.top = "0px", t.style.left = "-10000px", document.body.appendChild(t), t.focus(), t.blur(), document.body.removeChild(t)
        }, e.o = function(t) {
            if (t instanceof HTMLElement) t.focus();
            else {
                var e = document.createElement("input"),
                    i = document.createElementNS(h, "foreignObject");
                i.appendChild(e), t.appendChild(i), e.focus(), e.disabled = !0, i.remove()
            }
        }, e.v = function(t) {
            if (t.outerHTML) return t.outerHTML;
            var e = document.createElement("div"),
                i = t.cloneNode(!0);
            e.appendChild(i);
            var n = e.innerHTML;
            return n
        }, e.s = function(t) {
            return t instanceof Object && t && 1 === t.nodeType
        }, e.i = function(t, e) {
            var i = e;
            for (;;) {
                if (t === i) return !0;
                if (null == i.parentNode) {
                    if (null == i.host) return !1;
                    i = i.host
                } else i = i.parentNode
            }
        }, e.r = function(t) {
            var e = t.ownerDocument,
                i = t;
            for (;;) {
                if (null == i.parentNode) return i === e || null != i.host ? i : null;
                i = i.parentNode
            }
        }, e.k = function(t) {
            return "function" == typeof t.composedPath ? t.composedPath()[0] : t.target
        }, e.j = function(t, e) {
            l.each(t.attributes, function(t) {
                null != t.value && e.setAttribute(t.name, t.value)
            })
        }, e.n = function(t) {
            Object(o.c)(function() {
                try {
                    var e = t.getBoundingClientRect(),
                        i = e.left - Math.round(e.left),
                        n = e.top - Math.round(e.top);
                    0 !== i && Object(o.f)(function() {
                        t.style.left = i + "px"
                    }), 0 !== n && Object(o.f)(function() {
                        t.style.top = n + "px"
                    })
                } catch (t) {}
            })
        }, i.d(e, "c", function() {
            return g
        }), i.d(e, "b", function() {
            return m
        }), e.w = function(t) {
            if ("loading" !== document.readyState) t();
            else {
                var e = function() {
                    "loading" !== document.readyState && (document.removeEventListener("readystatechange", e), t())
                };
                document.addEventListener("readystatechange", e)
            }
        }, e.l = function t(e) {
            var i = d(e, "font-family");
            if (i) return i;
            var n = e.parentElement || e.parentNode;
            return n ? t(n) : void 0
        }, e.m = function t(e) {
            var i = d(e, "font-size");
            if (i) return i;
            var n = e.parentElement || e.parentNode;
            return n ? t(n) : void 0
        }, e.u = function(t) {
            return null === t.offsetParent
        }, e.t = function t(e, i) {
            var n = e.getBoundingClientRect();
            if (i) {
                if (!t(i)) return !1;
                var r = i.getBoundingClientRect();
                return n.top >= 0 && n.left >= 0 && n.top <= r.top + r.height && n.left <= r.left + r.width
            }
            return n.top >= 0 && n.left >= 0 && n.top <= (window.innerHeight || document.documentElement.clientHeight) && n.left <= (window.innerWidth || document.documentElement.clientWidth)
        };
        var n, r = i("m4/l"),
            a = i("hD5A"),
            o = i("/9XX"),
            s = i("Qkdp"),
            l = i("hJ5i"),
            u = i("Mtpk"),
            h = "http://www.w3.org/2000/svg",
            c = "http://www.w3.org/2000/xmlns/",
            p = "http://www.w3.org/1999/xlink";

        function d(t, e) {
            return t.currentStyle ? t.currentStyle[e] : document.defaultView.getComputedStyle(t, null).getPropertyValue(e)
        }

        function f() {
            if (!u.hasValue(n)) {
                var t = document.createElement("style");
                t.type = "text/css", document.head.appendChild(t), n = t.sheet
            }
            return n
        }
        var g = function(t) {
                function e(e, i) {
                    var n = t.call(this, function() {
                        var t = f(),
                            e = l.indexOf(t.cssRules, n._rule);
                        if (-1 === e) throw new Error("Could not dispose StyleRule");
                        t.deleteRule(e)
                    }) || this;
                    return n._rule = function(t) {
                        var e = f(),
                            i = e.cssRules.length;
                        return e.insertRule(t + "{}", i), e.cssRules[i]
                    }(e), s.each(i, function(t, e) {
                        n.setStyle(t, e)
                    }), n
                }
                return Object(r.c)(e, t), Object.defineProperty(e.prototype, "selector", {
                    get: function() {
                        return this._rule.selectorText
                    },
                    set: function(t) {
                        this._rule.selectorText = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype._setVendorPrefixName = function(t, e) {
                    var i = this._rule.style;
                    i.setProperty("-webkit-" + t, e, ""), i.setProperty("-moz-" + t, e, ""), i.setProperty("-ms-" + t, e, ""), i.setProperty("-o-" + t, e, ""), i.setProperty(t, e, "")
                }, e.prototype.setStyle = function(t, e) {
                    "transition" === t ? this._setVendorPrefixName(t, e) : this._rule.style.setProperty(t, e, "")
                }, e
            }(a.b),
            y = 0,
            m = function(t) {
                function e(e, i) {
                    var n = this,
                        r = u.hasValue(i) ? i : "__style_" + ++y + "__";
                    return (n = t.call(this, "." + r, e) || this)._className = r, n
                }
                return Object(r.c)(e, t), Object.defineProperty(e.prototype, "className", {
                    get: function() {
                        return this._className
                    },
                    set: function(t) {
                        this._className = t, this.selector = "." + t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.toString = function() {
                    return this._className
                }, e
            }(g)
    },
    "5FpK": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("fontsize")
        }, {
            fontsize: function(t) {
                return r(this, "font", "size", t)
            }
        })
    },
    "5SyC": function(t, e) {
        var i = Math.expm1,
            n = Math.exp;
        t.exports = !i || i(10) > 22025.465794806718 || i(10) < 22025.465794806718 || -2e-17 != i(-2e-17) ? function(t) {
            return 0 == (t = +t) ? t : t > -1e-6 && t < 1e-6 ? t + t * t / 2 : n(t) - 1
        } : i
    },
    "5hgO": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("UjlR"),
            a = i("7X7h"),
            o = i("tHyI"),
            s = i("exNg"),
            l = i("Rs0P");
        n({
            target: "Array",
            proto: !0
        }, {
            flat: function() {
                var t = arguments.length ? arguments[0] : void 0,
                    e = a(this),
                    i = o(e.length),
                    n = l(e, 0);
                return n.length = r(n, e, e, i, 0, void 0 === t ? 1 : s(t)), n
            }
        })
    },
    "5ou3": function(t, e, i) {
        var n = i("oRlD"),
            r = i("2xmP"),
            a = i("KslR")("toStringTag"),
            o = "Arguments" == r(function() {
                return arguments
            }());
        t.exports = n ? r : function(t) {
            var e, i, n;
            return void 0 === t ? "Undefined" : null === t ? "Null" : "string" == typeof(i = function(t, e) {
                try {
                    return t[e]
                } catch (t) {}
            }(e = Object(t), a)) ? i : o ? r(e) : "Object" == (n = r(e)) && "function" == typeof e.callee ? "Arguments" : n
        }
    },
    "5rWR": function(t, e, i) {
        i("0sYB")({
            target: "Number",
            stat: !0
        }, {
            MIN_SAFE_INTEGER: -9007199254740991
        })
    },
    "5tyj": function(t, e, i) {
        var n = i("0sYB"),
            r = i("aHAe");
        n({
            target: "Array",
            stat: !0,
            forced: !i("XqrT")(function(t) {
                Array.from(t)
            })
        }, {
            from: r
        })
    },
    "5vid": function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return _
        }), i.d(e, "a", function() {
            return P
        });
        var n = i("m4/l"),
            r = i("Uf57"),
            a = i("Vs7R"),
            o = i("C6dT"),
            s = i("vMqJ"),
            l = i("+qIf"),
            u = i("pR7v"),
            h = i("VB2N"),
            c = i("aCit"),
            p = i("DG6Q"),
            d = i("CnhP"),
            f = i("tjMS"),
            g = i("Gg2j"),
            y = i("Qkdp"),
            m = i("Wglt"),
            v = i("hJ5i"),
            b = i("Mtpk"),
            x = i("hD5A"),
            _ = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "ColumnSeriesDataItem", e.locations.dateX = .5, e.locations.dateY = .5, e.locations.categoryX = .5, e.locations.categoryY = .5, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "column", {
                    get: function() {
                        return this._column
                    },
                    set: function(t) {
                        this.setColumn(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setColumn = function(t) {
                    var e = this;
                    if (this._column && t != this._column && v.remove(this.sprites, this._column), this._column = t, t) {
                        var i = t.dataItem;
                        i && i != this && (i.column = void 0), this.addSprite(t), this._disposers.push(new x.b(function() {
                            e.component && e.component.columns.removeValue(t)
                        }))
                    }
                }, Object.defineProperty(e.prototype, "rangesColumns", {
                    get: function() {
                        return this._rangesColumns || (this._rangesColumns = new l.a), this._rangesColumns
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.b),
            P = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._startLocation = 0, e._endLocation = 1, e.className = "ColumnSeries", e.width = Object(f.c)(100), e.height = Object(f.c)(100), e.strokeOpacity = 0, e.fillOpacity = 1, e.clustered = !0;
                    var i = e.mainContainer.createChild(o.a);
                    return i.shouldClone = !1, i.isMeasured = !1, i.layout = "none", e._columnsContainer = i, e.columns.template.pixelPerfect = !1, e.tooltipColorSource = e.columns.template, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "columnsContainer", {
                    get: function() {
                        return this._columnsContainer
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), b.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Column Series"))
                }, e.prototype.createDataItem = function() {
                    return new _
                }, e.prototype.validate = function() {
                    var i = this;
                    if (this.chart && this.xAxis && this.yAxis) {
                        var n, r = this.chart.series,
                            a = 0,
                            o = 0,
                            s = [];
                        m.each(r.iterator(), function(t) {
                            var n;
                            t instanceof e && (i.baseAxis == t.baseAxis && (n = i.baseAxis == i.xAxis ? i.chart.yAxes.indexOf(t.yAxis) : i.chart.xAxes.indexOf(t.xAxis), s.push({
                                series: t,
                                axis: n
                            })))
                        }), s.sort(function(t, e) {
                            return t.axis - e.axis
                        }), v.each(s, function(t) {
                            var r = t.series;
                            r instanceof e && ((!r.stacked && r.clustered || n != t.axis && r.clustered) && a++, r == i && (o = a - 1)), n = t.axis
                        }), this.clustered || (o = 0, a = 1);
                        var l = this.baseAxis.renderer,
                            c = l.cellStartLocation,
                            p = l.cellEndLocation;
                        this._startLocation = c + o / a * (p - c), this._endLocation = c + (o + 1) / a * (p - c);
                        var d = this.xAxis,
                            f = this.yAxis;
                        d instanceof h.a && f instanceof u.a && d.sortBySeries == this && this.sortCategoryAxis(d, "valueY"), f instanceof h.a && d instanceof u.a && f.sortBySeries == this && this.sortCategoryAxis(f, "valueX")
                    }
                    t.prototype.validate.call(this);
                    for (var g = 0; g < this.startIndex; g++) {
                        var y = this.dataItems.getIndex(g);
                        this.disableUnusedColumns(y)
                    }
                    for (g = this.dataItems.length - 1; g > this.endIndex; g--) {
                        y = this.dataItems.getIndex(g);
                        this.disableUnusedColumns(y)
                    }
                    this._propertiesChanged = !1
                }, e.prototype.sortCategoryAxis = function(t, e) {
                    var i = this;
                    this.dataItems.values.sort(function(t, i) {
                        return i.values[e].workingValue - t.values[e].workingValue
                    });
                    var n = 0;
                    this.dataItems.each(function(t) {
                        t._index = n, n++
                    }), t.dataItems.each(function(t) {
                        var e = t.component,
                            n = e.categoryToPosition(t.category) - t.deltaPosition,
                            r = e.getSeriesDataItemByCategory(t.category, i);
                        if (r) {
                            var a = i.dataItems.indexOf(r);
                            t._index = a;
                            var o = g.round((a + .5) / i.dataItems.length - n, 3);
                            t.deltaAnimation && !t.deltaAnimation.isDisposed() && t.deltaAnimation.animationOptions[0].to == o || o != g.round(t.deltaPosition, 3) && (t.deltaAnimation && t.deltaAnimation.stop(), t.deltaAnimation = t.animate({
                                property: "deltaPosition",
                                from: -o,
                                to: 0
                            }, e.interpolationDuration, e.interpolationEasing), i._disposers.push(t.deltaAnimation))
                        }
                    }), t.dataItems.values.sort(function(t, e) {
                        return t.index - e.index
                    })
                }, e.prototype.validateDataElement = function(e) {
                    this.chart && this.xAxis && this.yAxis && (this.validateDataElementReal(e), t.prototype.validateDataElement.call(this, e))
                }, e.prototype.getStartLocation = function(t) {
                    var e = this._startLocation;
                    return this.baseAxis == this.xAxis ? e += t.locations[this.xOpenField] - .5 : e += t.locations[this.yOpenField] - .5, e
                }, e.prototype.getEndLocation = function(t) {
                    var e = this._endLocation;
                    return this.baseAxis == this.xAxis ? e += t.locations[this.xField] - .5 : e += t.locations[this.yField] - .5, e
                }, e.prototype.validateDataElementReal = function(t) {
                    var e, i, n, r, o = this,
                        s = this.getStartLocation(t),
                        l = this.getEndLocation(t),
                        c = this.xField,
                        p = this.xOpenField,
                        d = this.yField,
                        f = this.yOpenField,
                        x = this.columns.template,
                        _ = x.percentWidth,
                        P = x.percentHeight,
                        w = x.pixelWidth,
                        O = x.pixelHeight,
                        T = x.maxWidth,
                        S = x.maxHeight,
                        C = x.pixelPaddingLeft,
                        I = x.pixelPaddingRight,
                        k = x.pixelPaddingTop,
                        D = x.pixelPaddingBottom,
                        j = !1;
                    if (this.xAxis instanceof h.a && this.yAxis instanceof h.a) {
                        if (!t.hasValue(this._xValueFields) || !t.hasValue(this._yValueFields)) return;
                        if (s = 0, l = 1, !b.isNaN(_)) s += F = g.round((l - s) * (1 - _ / 100) / 2, 5), l -= F;
                        if (e = this.xAxis.getX(t, p, s), i = this.xAxis.getX(t, c, l), b.isNaN(_)) e += F = (i - e - w) / 2, i -= F;
                        if (!b.isNaN(T) && T < Math.abs(i - e)) e += F = (i - e - T) / 2, i -= F;
                        if (s = 0, l = 1, !b.isNaN(P)) s += F = g.round((1 - P / 100) / 2, 5), l -= F;
                        if (n = this.yAxis.getY(t, f, s), r = this.yAxis.getY(t, d, l), b.isNaN(P)) r += F = (r - n - O) / 2, n -= F;
                        if (!b.isNaN(S) && S < Math.abs(r - n)) r += F = (r - n - S) / 2, n -= F;
                        i = this.fixHorizontalCoordinate(i), e = this.fixHorizontalCoordinate(e), n = this.fixVerticalCoordinate(n), r = this.fixVerticalCoordinate(r)
                    } else if (this.baseAxis == this.xAxis) {
                        if (!t.hasValue(this._yValueFields)) return;
                        if (!b.isNaN(_)) s += F = g.round((l - s) * (1 - _ / 100) / 2, 5), l -= F;
                        if (e = this.xAxis.getX(t, p, s), i = this.xAxis.getX(t, c, l), b.isNaN(_)) e += F = (i - e - w) / 2, i -= F;
                        if (!b.isNaN(T) && T < Math.abs(i - e)) e += F = (i - e - T) / 2, i -= F;
                        var V = t.locations[f],
                            A = t.locations[d];
                        this.yAxis instanceof u.a && this.dataFields[this.yField] != this.dataFields[this.yOpenField] && (V = 0, A = 0), r = this.yAxis.getY(t, f, V), n = this.yAxis.getY(t, d, A);
                        var M = Math.ceil(this.yAxis.axisLength);
                        (n < 0 && r < 0 || n > M && r > M) && (j = !0), n = this.fixVerticalCoordinate(n), r = this.fixVerticalCoordinate(r), Math.abs(i - e) - C - I == 0 && (j = !0)
                    } else {
                        if (!t.hasValue(this._xValueFields)) return;
                        var F;
                        if (!b.isNaN(P)) s += F = g.round((l - s) * (1 - P / 100) / 2, 5), l -= F;
                        if (n = this.yAxis.getY(t, f, s), r = this.yAxis.getY(t, d, l), b.isNaN(P)) r -= F = (r - n - O) / 2, n += F;
                        if (!b.isNaN(S) && S < Math.abs(r - n)) r -= F = (r - n - S) / 2, n += F;
                        var E = t.locations[c],
                            R = t.locations[p];
                        this.xAxis instanceof u.a && this.dataFields[this.xField] != this.dataFields[this.xOpenField] && (E = 0, R = 0), i = this.xAxis.getX(t, c, E), e = this.xAxis.getX(t, p, R);
                        M = Math.ceil(this.xAxis.axisLength);
                        (i < 0 && e < 0 || i > M && e > M) && (j = !0), i = this.fixHorizontalCoordinate(i), e = this.fixHorizontalCoordinate(e), Math.abs(n - r) - k - D == 0 && (j = !0)
                    }
                    var N, L = Math.abs(i - e),
                        B = Math.abs(r - n),
                        U = Math.min(e, i),
                        W = Math.min(n, r);
                    j ? this.disableUnusedColumns(t) : (t.column ? (N = t.column, this._propertiesChanged && (y.copyProperties(this, N, a.b), y.copyProperties(this.columns.template, N, a.b), v.each(a.b, function(t) {
                        N[t] = N[t]
                    }))) : (N = this.columns.create(), y.copyProperties(this, N, a.b), y.copyProperties(this.columns.template, N, a.b), t.addSprite(N), t.column = N, N.paper = this.paper, this.itemsFocusable() ? (this.role = "menu", N.role = "menuitem", N.focusable = !0) : (this.role = "list", N.role = "listitem", N.focusable = !1), N.focusable && (N.events.on("focus", function(e) {
                        N.readerTitle = o.populateString(o.itemReaderText, t)
                    }, void 0, !1), N.events.on("blur", function(t) {
                        N.readerTitle = ""
                    }, void 0, !1)), N.hoverable && (N.events.on("over", function(e) {
                        N.readerTitle = o.populateString(o.itemReaderText, t)
                    }, void 0, !1), N.events.on("out", function(t) {
                        N.readerTitle = ""
                    }, void 0, !1))), N.width = L, N.height = B, N.x = U, N.y = W, N.realX = e, N.realY = n, N.realWidth = i - e, N.realHeight = r - n, N.parent = this.columnsContainer, N.virtualParent = this, this.setColumnStates(N), N.invalid && N.validate(), N.__disabled = !1, m.each(this.axisRanges.iterator(), function(e) {
                        var i = t.rangesColumns.getKey(e.uid);
                        i || (i = o.columns.create(), y.copyProperties(e.contents, i, a.b), t.addSprite(i), t.rangesColumns.setKey(e.uid, i), i.paper = o.paper), i.parent = e.contents, i.width = L, i.height = B, i.x = U, i.y = W, o.setColumnStates(i), i.invalid && i.validate(), i.__disabled = !1
                    }));
                    t.itemWidth = L, t.itemHeight = B
                }, e.prototype.disableUnusedColumns = function(t) {
                    t && (t.column && (t.column.width = 0, t.column.height = 0, t.column.__disabled = !0), m.each(this.axisRanges.iterator(), function(e) {
                        var i = t.rangesColumns.getKey(e.uid);
                        i && (i.width = 0, i.height = 0, i.__disabled = !0)
                    }))
                }, e.prototype.setColumnStates = function(t) {
                    if (this._dropFromOpenState || this._dropFromPreviousState || this._riseFromOpenState || this._riseFromPreviousState) {
                        var e = t.dataItem;
                        if (this.xAxis instanceof u.a || this.yAxis instanceof u.a) {
                            var i, n = void 0,
                                r = void 0;
                            this.baseAxis == this.yAxis ? this.xOpenField && this.xField && this.xAxis instanceof u.a && (i = e.getValue(this.xOpenField), n = e.getValue(this.xField), r = e.getValue(this.xAxis.axisFieldName + "X", "previousChange")) : this.yOpenField && this.yField && this.yAxis instanceof u.a && (i = e.getValue(this.yOpenField), n = e.getValue(this.yField), r = e.getValue(this.yAxis.axisFieldName + "Y", "previousChange")), n < i ? (e.droppedFromOpen = !0, t.defaultState.copyFrom(this._dropFromOpenState), t.setState(this._dropFromOpenState, 0)) : (e.droppedFromOpen = !1, t.defaultState.copyFrom(this._riseFromOpenState), t.setState(this._riseFromOpenState, 0)), r < 0 ? (e.droppedFromPrevious = !0, t.defaultState.copyFrom(this._dropFromPreviousState), t.setState(this._dropFromPreviousState, 0)) : (e.droppedFromPrevious = !1, t.defaultState.copyFrom(this._riseFromPreviousState), t.setState(this._riseFromPreviousState, 0))
                        }
                    }
                }, Object.defineProperty(e.prototype, "columns", {
                    get: function() {
                        return this._columns || (this._columns = new s.e(this.createColumnTemplate()), this._disposers.push(new s.c(this._columns)), this._disposers.push(this._columns.template)), this._columns
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createColumnTemplate = function() {
                    return new p.a
                }, Object.defineProperty(e.prototype, "clustered", {
                    get: function() {
                        return this.getPropertyValue("clustered")
                    },
                    set: function(t) {
                        this.setPropertyValue("clustered", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dropFromOpenState", {
                    get: function() {
                        return this._dropFromOpenState || (this._dropFromOpenState = this.states.create("dropFromOpenState")), this._dropFromOpenState
                    },
                    set: function(t) {
                        this._dropFromOpenState = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dropFromPreviousState", {
                    get: function() {
                        return this._dropFromPreviousState || (this._dropFromPreviousState = this.states.create("dropFromPreviousState")), this._dropFromPreviousState
                    },
                    set: function(t) {
                        this._dropFromPreviousState = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "riseFromOpenState", {
                    get: function() {
                        return this._riseFromOpenState || (this._riseFromOpenState = this.states.create("riseFromOpenState")), this._riseFromOpenState
                    },
                    set: function(t) {
                        this._riseFromOpenState = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "riseFromPreviousState", {
                    get: function() {
                        return this._riseFromPreviousState || (this._riseFromPreviousState = this.states.create("riseFromPreviousState")), this._riseFromPreviousState
                    },
                    set: function(t) {
                        this._riseFromPreviousState = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.updateLegendValue = function(e, i) {
                    var n = this;
                    if (t.prototype.updateLegendValue.call(this, e, i), this.legendDataItem) {
                        var r, a, o = this.legendDataItem.marker;
                        e && (r = e.droppedFromOpen ? this._dropFromOpenState : this._riseFromOpenState, a = e.droppedFromPrevious ? this._dropFromPreviousState : this._riseFromPreviousState), m.each(o.children.iterator(), function(t) {
                            e ? (t.setState(a), t.setState(r)) : (t.setState(n._riseFromPreviousState), t.setState(n._riseFromOpenState))
                        })
                    }
                }, e.prototype.createLegendMarker = function(t) {
                    var e = t.pixelWidth,
                        i = t.pixelHeight;
                    t.removeChildren();
                    var n = t.createChild(d.a);
                    n.shouldClone = !1, y.copyProperties(this, n, a.b), n.copyFrom(this.columns.template), n.padding(0, 0, 0, 0), n.width = e, n.height = i;
                    var r = t.dataItem;
                    r.color = this.fill, r.colorOrig = this.fill
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.columns.template.copyFrom(e.columns.template)
                }, e.prototype.getBulletLocationX = function(e, i) {
                    if (this.baseAxis == this.xAxis) {
                        var n = e.locationX;
                        b.isNumber(n) || (n = .5);
                        var r = this.getEndLocation(e.dataItem);
                        return r - (r - this.getStartLocation(e.dataItem)) * n
                    }
                    return t.prototype.getBulletLocationX.call(this, e, i)
                }, e.prototype.getBulletLocationY = function(e, i) {
                    if (this.baseAxis == this.yAxis) {
                        var n = e.locationY;
                        b.isNumber(n) || (n = .5);
                        var r = this.getEndLocation(e.dataItem);
                        return r - (r - this.getStartLocation(e.dataItem)) * n
                    }
                    return t.prototype.getBulletLocationY.call(this, e, i)
                }, e.prototype.getAdjustedXLocation = function(e, i) {
                    if (this.baseAxis == this.xAxis) {
                        var n = .5;
                        return e && (n = e.locations[i]), b.isNumber(n) || (n = .5), this._endLocation - (this._endLocation - this._startLocation) * n
                    }
                    return t.prototype.getAdjustedXLocation.call(this, e, i)
                }, e.prototype.getAdjustedYLocation = function(e, i) {
                    if (this.baseAxis == this.yAxis) {
                        var n = .5;
                        return e && (n = e.locations[i]), b.isNumber(n) || (n = .5), this._endLocation - (this._endLocation - this._startLocation) * n
                    }
                    return t.prototype.getAdjustedXLocation.call(this, e, i)
                }, e.prototype.fixVerticalCoordinate = function(t) {
                    var e = this.columns.template.pixelPaddingBottom,
                        i = -this.columns.template.pixelPaddingTop,
                        n = this.yAxis.axisLength + e;
                    return g.fitToRange(t, i, n)
                }, e.prototype.fixHorizontalCoordinate = function(t) {
                    var e = this.columns.template.pixelPaddingLeft,
                        i = this.columns.template.pixelPaddingRight,
                        n = -e,
                        r = this.xAxis.axisLength + i;
                    return g.fitToRange(t, n, r)
                }, e.prototype.disposeData = function() {
                    t.prototype.disposeData.call(this), this.columns.clear()
                }, e
            }(r.a);
        c.c.registeredClasses.ColumnSeries = P, c.c.registeredClasses.ColumnSeriesDataItem = _
    },
    "5xph": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "AxisBullet", e.location = .5, e.isMeasured = !1, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "location", {
                    get: function() {
                        return this.getPropertyValue("location")
                    },
                    set: function(t) {
                        this.setPropertyValue("location", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setDisabled = function(e) {
                    var i = t.prototype.setDisabled.call(this, e);
                    return this.axis && this.axis.invalidateDataItems(), i
                }, e
            }(r.a);
        a.c.registeredClasses.AxisBullet = o
    },
    "6Ah2": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("X/sl").filter,
            a = i("ugpH"),
            o = i("J+FZ"),
            s = a("filter"),
            l = o("filter");
        n({
            target: "Array",
            proto: !0,
            forced: !s || !l
        }, {
            filter: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    "6EAy": function(t, e, i) {
        var n = i("6aQQ");
        t.exports = !n(function() {
            return Object.isExtensible(Object.preventExtensions({}))
        })
    },
    "6WsA": function(t, e, i) {
        var n = i("lCww"),
            r = i("JZRr"),
            a = i("0irS"),
            o = i("8+rI").f;
        t.exports = function(t) {
            var e = n.Symbol || (n.Symbol = {});
            r(e, t) || o(e, t, {
                value: a.f(t)
            })
        }
    },
    "6aQQ": function(t, e) {
        t.exports = function(t) {
            try {
                return !!t()
            } catch (t) {
                return !0
            }
        }
    },
    "7W4+": function(t, e, i) {
        var n = i("xaIW");
        t.exports = n && !Symbol.sham && "symbol" == typeof Symbol.iterator
    },
    "7X7h": function(t, e, i) {
        var n = i("swFJ");
        t.exports = function(t) {
            return Object(n(t))
        }
    },
    "7XB+": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("P/bD"),
            a = i("Tjl+"),
            o = i("MipW"),
            s = i("aCit"),
            l = i("ScGY"),
            u = i("v9UT"),
            h = i("Mtpk"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._dateFormat = "yyyy-MM-dd", e._inputDateFormat = "yyyy-MM-dd", e._utc = !1, e._firstDayOfWeek = 1, e._months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], e._monthsShort = ["Jan", "Feb", "Mar", "Apr", "May(short)", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], e._weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], e._weekdaysShort = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], e._outputFormat = "svg", e.capitalize = !0, e.className = "DateFormatter", e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "language", {
                    get: function() {
                        return this._language
                    },
                    set: function(t) {
                        this._language = t, this.dateFormat = this._language.translate("_date")
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.format = function(t, e) {
                    var i, n;
                    if (this.language || (this.sprite ? this.language = this.sprite.language : this.language = new r.a), void 0 !== e && "" !== e || (e = this._dateFormat), n = h.isString(t) ? this.parse(t) : u.anyToDate(t), e instanceof Object) return this.intlLocales ? new Intl.DateTimeFormat(this.intlLocales, e).format(n) : new Intl.DateTimeFormat(void 0, e).format(n);
                    e = u.cleanFormat(e);
                    var a = this.parseFormat(e);
                    return h.hasValue(this.timezoneOffset) && n.setMinutes(n.getMinutes() + n.getTimezoneOffset() - this.timezoneOffset), h.isNumber(n.getTime()) ? (i = this.applyFormat(n, a, this.language), this.capitalize && (i = i.replace(/^.{1}/, i.substr(0, 1).toUpperCase())), i) : this.language.translate("Invalid date")
                }, e.prototype.parseFormat = function(t) {
                    var e = this.getCache(t);
                    if (h.hasValue(e)) return e;
                    for (var i = {
                            template: "",
                            parts: []
                        }, n = Object(o.b)().chunk(t, !0), r = 0; r < n.length; r++) {
                        var a = n[r];
                        if ("value" === a.type) {
                            a.text.match(/^date$/i) && h.isString(this._dateFormat) && (a.text = this._dateFormat);
                            var s = a.text.match(/G|yyyy|yyy|yy|y|YYYY|YYY|YY|Y|u|MMMMM|MMMM|MMM|MM|M|ww|w|W|dd|d|DDD|DD|D|F|g|EEEEE|EEEE|EEE|EE|E|eeeee|eeee|eee|ee|e|aaa|aa|a|hh|h|HH|H|KK|K|kk|k|mm|m|ss|s|SSS|SS|S|A|zzzz|zzz|zz|z|ZZ|Z|t|x|nnn|nn|n|i|I/g);
                            if (s)
                                for (var u = 0; u < s.length; u++) i.parts.push(s[u]), a.text = a.text.replace(s[u], l.d)
                        }
                        i.template += a.text
                    }
                    return this.setCache(t, i), i
                }, e.prototype.applyFormat = function(t, e, i) {
                    var n, r, a, o, s, h, c, p, d = e.template,
                        f = t.getTimezoneOffset(),
                        g = t.getTime();
                    this.utc ? (n = t.getUTCFullYear(), r = t.getUTCMonth(), a = t.getUTCDay(), o = t.getUTCDate(), s = t.getUTCHours(), h = t.getUTCMinutes(), c = t.getUTCSeconds(), p = t.getUTCMilliseconds()) : (n = t.getFullYear(), r = t.getMonth(), a = t.getDay(), o = t.getDate(), s = t.getHours(), h = t.getMinutes(), c = t.getSeconds(), p = t.getMilliseconds());
                    for (var y = 0, m = e.parts.length; y < m; y++) {
                        var v = "";
                        switch (e.parts[y]) {
                            case "G":
                                v = i.translate(n < 0 ? "_era_bc" : "_era_ad");
                                break;
                            case "yyyy":
                                v = Math.abs(n).toString(), n < 0 && (v += i.translate("_era_bc"));
                                break;
                            case "yyy":
                            case "yy":
                            case "y":
                                v = Math.abs(n).toString().substr(-e.parts[y].length), n < 0 && (v += i.translate("_era_bc"));
                                break;
                            case "YYYY":
                            case "YYY":
                            case "YY":
                            case "Y":
                                var b = n;
                                1 == u.getWeek(t) && a > 1 && b--, v = "YYYY" == e.parts[y] ? Math.abs(b).toString() : Math.abs(b).toString().substr(-e.parts[y].length), b < 0 && (v += i.translate("_era_bc"));
                                break;
                            case "u":
                                break;
                            case "MMMMM":
                                v = i.translate(this._months[r]).substr(0, 1);
                                break;
                            case "MMMM":
                                v = i.translate(this._months[r]);
                                break;
                            case "MMM":
                                v = i.translate(this._monthsShort[r]);
                                break;
                            case "MM":
                                v = u.padString(r + 1, 2, "0");
                                break;
                            case "M":
                                v = (r + 1).toString();
                                break;
                            case "ww":
                                v = u.padString(u.getWeek(t, this.utc), 2, "0");
                                break;
                            case "w":
                                v = u.getWeek(t, this.utc).toString();
                                break;
                            case "W":
                                v = u.getMonthWeek(t, this.utc).toString();
                                break;
                            case "dd":
                                v = u.padString(o, 2, "0");
                                break;
                            case "d":
                                v = o.toString();
                                break;
                            case "DD":
                            case "DDD":
                                v = u.padString(u.getYearDay(t, this.utc).toString(), e.parts[y].length, "0");
                                break;
                            case "D":
                                v = u.getYearDay(t, this.utc).toString();
                                break;
                            case "F":
                            case "g":
                                break;
                            case "t":
                                v = i.translateFunc("_dateOrd").call(this, o);
                                break;
                            case "E":
                                v = (a || 7).toString();
                                break;
                            case "EE":
                                v = u.padString((a || 7).toString(), 2, "0");
                                break;
                            case "EEE":
                            case "eee":
                                v = i.translate(this._weekdaysShort[a]);
                                break;
                            case "EEEE":
                            case "eeee":
                                v = i.translate(this._weekdays[a]);
                                break;
                            case "EEEEE":
                            case "eeeee":
                                v = i.translate(this._weekdays[a]).substr(0, 1);
                                break;
                            case "e":
                            case "ee":
                                v = (a - this.firstDayOfWeek + 1).toString(), "ee" == e.parts[y] && (v = u.padString(v, 2, "0"));
                                break;
                            case "a":
                                v = s >= 12 ? i.translate("PM") : i.translate("AM");
                                break;
                            case "aa":
                                v = s >= 12 ? i.translate("P.M.") : i.translate("A.M.");
                                break;
                            case "aaa":
                                v = s >= 12 ? i.translate("P") : i.translate("A");
                                break;
                            case "h":
                                v = u.get12Hours(s).toString();
                                break;
                            case "hh":
                                v = u.padString(u.get12Hours(s), 2, "0");
                                break;
                            case "H":
                                v = s.toString();
                                break;
                            case "HH":
                                v = u.padString(s, 2, "0");
                                break;
                            case "K":
                                v = u.get12Hours(s, 0).toString();
                                break;
                            case "KK":
                                v = u.padString(u.get12Hours(s, 0), 2, "0");
                                break;
                            case "k":
                                v = (s + 1).toString();
                                break;
                            case "kk":
                                v = u.padString(s + 1, 2, "0");
                                break;
                            case "m":
                                v = h.toString();
                                break;
                            case "mm":
                                v = u.padString(h, 2, "0");
                                break;
                            case "s":
                                v = c.toString();
                                break;
                            case "ss":
                                v = u.padString(c, 2, "0");
                                break;
                            case "S":
                            case "SS":
                            case "SSS":
                                v = Math.round(p / 1e3 * Math.pow(10, e.parts[y].length)).toString();
                                break;
                            case "x":
                                v = g.toString();
                                break;
                            case "n":
                            case "nn":
                            case "nnn":
                                v = u.padString(p, e.parts[y].length, "0");
                                break;
                            case "z":
                                v = u.getTimeZone(t, !1, !1, this.utc);
                                break;
                            case "zz":
                                v = u.getTimeZone(t, !0, !1, this.utc);
                                break;
                            case "zzz":
                                v = u.getTimeZone(t, !1, !0, this.utc);
                                break;
                            case "zzzz":
                                v = u.getTimeZone(t, !0, !0, this.utc);
                                break;
                            case "Z":
                            case "ZZ":
                                var x = Math.abs(f) / 60,
                                    _ = Math.floor(x),
                                    P = 60 * x - 60 * _;
                                this.utc && (_ = 0, P = 0), "Z" == e.parts[y] ? (v = "GMT", v += f > 0 ? "-" : "+", v += u.padString(_, 2) + ":" + u.padString(P, 2)) : (v = f > 0 ? "-" : "+", v += u.padString(_, 2) + u.padString(P, 2));
                                break;
                            case "i":
                                v = t.toISOString();
                                break;
                            case "I":
                                v = t.toUTCString()
                        }
                        d = d.replace(l.d, v)
                    }
                    return d
                }, e.prototype.parse = function(t, e) {
                    if (h.hasValue(e) || (e = this.inputDateFormat), t instanceof Date) return t;
                    if ("number" == typeof t) return new Date(t);
                    var i;
                    "string" != typeof t && (t = t.toString()), this.language || (this.sprite ? this.language = this.sprite.language : this.language = new r.a);
                    var n = "";
                    e = (e = u.cleanFormat(e)).substr(0, t.length);
                    for (var a = this.parseFormat(e), o = {
                            year: -1,
                            year3: -1,
                            year2: -1,
                            year1: -1,
                            month: -1,
                            monthShort: -1,
                            monthLong: -1,
                            weekdayShort: -1,
                            weekdayLong: -1,
                            day: -1,
                            yearDay: -1,
                            week: -1,
                            hourBase0: -1,
                            hour12Base0: -1,
                            hourBase1: -1,
                            hour12Base1: -1,
                            minute: -1,
                            second: -1,
                            millisecond: -1,
                            millisecondDigits: -1,
                            am: -1,
                            zone: -1,
                            timestamp: -1,
                            iso: -1
                        }, s = {
                            year: 1970,
                            month: 0,
                            day: 1,
                            hour: 0,
                            minute: 0,
                            second: 0,
                            millisecond: 0,
                            timestamp: null,
                            offset: 0,
                            utc: this.utc
                        }, l = 0, c = 0, p = 0; p < a.parts.length; p++) {
                        switch (c = p + l + 1, a.parts[p]) {
                            case "yyyy":
                            case "YYYY":
                                n += "([0-9]{4})", o.year = c;
                                break;
                            case "yyy":
                            case "YYY":
                                n += "([0-9]{3})", o.year3 = c;
                                break;
                            case "yy":
                            case "YY":
                                n += "([0-9]{2})", o.year2 = c;
                                break;
                            case "y":
                            case "Y":
                                n += "([0-9]{1})", o.year1 = c;
                                break;
                            case "MMMM":
                                n += "(" + this.getStringList(this._months).join("|") + ")", o.monthLong = c;
                                break;
                            case "MMM":
                                n += "(" + this.getStringList(this._monthsShort).join("|") + ")", o.monthShort = c;
                                break;
                            case "MM":
                            case "M":
                                n += "([0-9]{2}|[0-9]{1})", o.month = c;
                                break;
                            case "ww":
                            case "w":
                                n += "([0-9]{2}|[0-9]{1})", o.week = c;
                                break;
                            case "dd":
                            case "d":
                                n += "([0-9]{2}|[0-9]{1})", o.day = c;
                                break;
                            case "DDD":
                            case "DD":
                            case "D":
                                n += "([0-9]{3}|[0-9]{2}|[0-9]{1})", o.yearDay = c;
                                break;
                            case "dddd":
                                n += "(" + this.getStringList(this._weekdays).join("|") + ")", o.weekdayLong = c;
                                break;
                            case "ddd":
                                n += "(" + this.getStringList(this._weekdaysShort).join("|") + ")", o.weekdayShort = c;
                                break;
                            case "aaa":
                            case "aa":
                            case "a":
                                n += "(" + this.getStringList(["AM", "PM", "A.M.", "P.M.", "A", "P"]).join("|") + ")", o.am = c;
                                break;
                            case "hh":
                            case "h":
                                n += "([0-9]{2}|[0-9]{1})", o.hour12Base1 = c;
                                break;
                            case "HH":
                            case "H":
                                n += "([0-9]{2}|[0-9]{1})", o.hourBase0 = c;
                                break;
                            case "KK":
                            case "K":
                                n += "([0-9]{2}|[0-9]{1})", o.hour12Base0 = c;
                                break;
                            case "kk":
                            case "k":
                                n += "([0-9]{2}|[0-9]{1})", o.hourBase1 = c;
                                break;
                            case "mm":
                            case "m":
                                n += "([0-9]{2}|[0-9]{1})", o.minute = c;
                                break;
                            case "ss":
                            case "s":
                                n += "([0-9]{2}|[0-9]{1})", o.second = c;
                                break;
                            case "SSS":
                            case "SS":
                            case "S":
                                n += "([0-9]{3}|[0-9]{2}|[0-9]{1})", o.millisecond = c, o.millisecondDigits = a.parts[p].length;
                                break;
                            case "nnn":
                            case "nn":
                            case "n":
                                n += "([0-9]{3}|[0-9]{2}|[0-9]{1})", o.millisecond = c;
                                break;
                            case "x":
                                n += "([0-9]{1,})", o.timestamp = c;
                                break;
                            case "Z":
                                n += "GMT([-+]+[0-9]{2}:[0-9]{2})", o.zone = c;
                                break;
                            case "ZZ":
                                n += "([\\-+]+[0-9]{2}[0-9]{2})", o.zone = c;
                                break;
                            case "i":
                                n += "([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2}).([0-9]{3})([Zz]?)", o.iso = c, l += 7;
                                break;
                            case "G":
                            case "YYYY":
                            case "YYY":
                            case "YY":
                            case "Y":
                            case "MMMMM":
                            case "W":
                            case "EEEEE":
                            case "EEEE":
                            case "EEE":
                            case "EE":
                            case "E":
                            case "eeeee":
                            case "eeee":
                            case "eee":
                            case "ee":
                            case "e":
                            case "zzzz":
                            case "zzz":
                            case "zz":
                            case "z":
                            case "t":
                                l--
                        }
                        n += "[^0-9]*"
                    }
                    var d = new RegExp(n),
                        f = t.match(d);
                    if (f) {
                        if (o.year > -1 && (s.year = parseInt(f[o.year])), o.year3 > -1) {
                            var g = parseInt(f[o.year3]);
                            g += 1e3, s.year = g
                        }
                        if (o.year2 > -1) {
                            g = parseInt(f[o.year2]);
                            g += g > 50 ? 1e3 : 2e3, s.year = g
                        }
                        if (o.year1 > -1) {
                            g = parseInt(f[o.year1]);
                            g = 10 * Math.floor((new Date).getFullYear() / 10) + g, s.year = g
                        }
                        if (o.monthLong > -1 && (s.month = this.resolveMonth(f[o.monthLong])), o.monthShort > -1 && (s.month = this.resolveShortMonth(f[o.monthShort])), o.month > -1 && (s.month = parseInt(f[o.month]) - 1), o.week > -1 && -1 === o.day && (s.month = 0, s.day = u.getDayFromWeek(parseInt(f[o.week]), s.year, 1, this.utc)), o.day > -1 && (s.day = parseInt(f[o.day])), o.yearDay > -1 && (s.month = 0, s.day = parseInt(f[o.yearDay])), o.hourBase0 > -1 && (s.hour = parseInt(f[o.hourBase0])), o.hourBase1 > -1 && (s.hour = parseInt(f[o.hourBase1]) - 1), o.hour12Base0 > -1) 11 == (g = parseInt(f[o.hour12Base0])) && (g = 0), o.am > -1 && !this.isAm(f[o.am]) && (g += 12), s.hour = g;
                        if (o.hour12Base1 > -1) 12 == (g = parseInt(f[o.hour12Base1])) && (g = 0), o.am > -1 && !this.isAm(f[o.am]) && (g += 12), s.hour = g;
                        if (o.minute > -1 && (s.minute = parseInt(f[o.minute])), o.second > -1 && (s.second = parseInt(f[o.second])), o.millisecond > -1) {
                            g = parseInt(f[o.millisecond]);
                            2 == o.millisecondDigits ? g *= 10 : 1 == o.millisecondDigits && (g *= 100), s.millisecond = g
                        }
                        if (o.timestamp > -1 && (s.timestamp = parseInt(f[o.timestamp])), o.zone > -1) {
                            var y = f[o.zone].replace(/:/, ""),
                                m = h.getValue(y.match(/([+\-]?)([0-9]{2})([0-9]{2})/)),
                                v = m[1],
                                b = m[2],
                                x = m[3],
                                _ = 60 * parseInt(b) + parseInt(x);
                            "+" == v && (_ *= -1);
                            var P = _ - (new Date).getTimezoneOffset();
                            s.offset = P
                        }
                        o.iso > -1 && ("Z" != f[o.iso + 7] && "z" != f[o.iso + 7] || (s.utc = !0), s.year = h.toNumber(f[o.iso + 0]), s.month = h.toNumber(f[o.iso + 1]) - 1, s.day = h.toNumber(f[o.iso + 2]), s.hour = h.toNumber(f[o.iso + 3]), s.minute = h.toNumber(f[o.iso + 4]), s.second = h.toNumber(f[o.iso + 5]), s.millisecond = h.toNumber(f[o.iso + 6])), i = s.utc ? new Date(Date.UTC(s.year, s.month, s.day, s.hour, s.minute, s.second, s.millisecond)) : new Date(s.year, s.month, s.day, s.hour, s.minute, s.second, s.millisecond)
                    } else i = new Date(t);
                    return i
                }, e.prototype.resolveMonth = function(t) {
                    var e = this._months.indexOf(t);
                    return e > -1 ? e : this.language && !this.language.isDefault() && (e = this.language.translateAll(this._months).indexOf(t)) > -1 ? e : 0
                }, e.prototype.resolveShortMonth = function(t) {
                    var e = this._monthsShort.indexOf(t);
                    return e > -1 ? e : this.language && !this.language.isDefault() && (e = this.language.translateAll(this._monthsShort).indexOf(t)) > -1 ? e : 0
                }, e.prototype.isAm = function(t) {
                    return this.getStringList(["AM", "A.M.", "A"]).indexOf(t.toUpperCase()) > -1
                }, e.prototype.invalidateSprite = function() {
                    this.sprite && this.sprite.invalidate()
                }, e.prototype.getStringList = function(t) {
                    for (var e = [], i = 0; i < t.length; i++) e.push(u.escapeForRgex(t[i])), this.language && !this.language.isDefault() && e.push(u.escapeForRgex(this.language.translate(t[i])));
                    return e
                }, Object.defineProperty(e.prototype, "dateFormat", {
                    get: function() {
                        return this._dateFormat
                    },
                    set: function(t) {
                        this._dateFormat = t, this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "inputDateFormat", {
                    get: function() {
                        return this._inputDateFormat
                    },
                    set: function(t) {
                        this._inputDateFormat = t, this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "intlLocales", {
                    get: function() {
                        return this._intlLocales
                    },
                    set: function(t) {
                        this._intlLocales = t, this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "utc", {
                    get: function() {
                        return this._utc
                    },
                    set: function(t) {
                        this._utc = t, this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "timezoneOffset", {
                    get: function() {
                        return this._timezoneOffset
                    },
                    set: function(t) {
                        this._timezoneOffset != t && (this._timezoneOffset = t, this.invalidateSprite())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "firstDayOfWeek", {
                    get: function() {
                        return this._firstDayOfWeek
                    },
                    set: function(t) {
                        this._firstDayOfWeek = t, this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "outputFormat", {
                    get: function() {
                        return this._outputFormat
                    },
                    set: function(t) {
                        this._outputFormat = t.toLowerCase(), this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(a.a);
        s.c.registeredClasses.DateFormatter = c
    },
    "7bEX": function(t, e, i) {
        var n = i("3weC"),
            r = i("Ur2B");
        t.exports = function(t) {
            var e = r(t);
            if ("function" != typeof e) throw TypeError(String(t) + " is not iterable");
            return n(e.call(t))
        }
    },
    "7dku": function(t, e, i) {
        var n = i("HnbP"),
            r = i("7X7h"),
            a = i("tNpr"),
            o = i("tHyI"),
            s = function(t) {
                return function(e, i, s, l) {
                    n(i);
                    var u = r(e),
                        h = a(u),
                        c = o(u.length),
                        p = t ? c - 1 : 0,
                        d = t ? -1 : 1;
                    if (s < 2)
                        for (;;) {
                            if (p in h) {
                                l = h[p], p += d;
                                break
                            }
                            if (p += d, t ? p < 0 : c <= p) throw TypeError("Reduce of empty array with no initial value")
                        }
                    for (; t ? p >= 0 : c > p; p += d) p in h && (l = i(l, h[p], p, u));
                    return l
                }
            };
        t.exports = {
            left: s(!1),
            right: s(!0)
        }
    },
    "7gIX": function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("Nfo5"),
            a = i("6aQQ"),
            o = n.aTypedArray,
            s = n.aTypedArrayConstructor,
            l = n.exportTypedArrayMethod,
            u = [].slice;
        l("slice", function(t, e) {
            for (var i = u.call(o(this), t, e), n = r(this, this.constructor), a = 0, l = i.length, h = new(s(n))(l); l > a;) h[a] = i[a++];
            return h
        }, a(function() {
            new Int8Array(1).slice()
        }))
    },
    "8+rI": function(t, e, i) {
        var n = i("3sMl"),
            r = i("t+NF"),
            a = i("3weC"),
            o = i("EErT"),
            s = Object.defineProperty;
        e.f = n ? s : function(t, e, i) {
            if (a(t), e = o(e, !0), a(i), r) try {
                return s(t, e, i)
            } catch (t) {}
            if ("get" in i || "set" in i) throw TypeError("Accessors not supported");
            return "value" in i && (t[e] = i.value), t
        }
    },
    "85D4": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("ohjg"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "DesaturateFilter", e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({
                        type: "saturate"
                    }), e.filterPrimitives.push(e.feColorMatrix), e.width = 120, e.height = 120, e.saturation = 0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "saturation", {
                    get: function() {
                        return this.properties.saturation
                    },
                    set: function(t) {
                        this.properties.saturation = t, this.feColorMatrix.attr({
                            values: t.toString()
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.DesaturateFilter = o
    },
    "8Cf/": function(t, e, i) {
        "use strict";
        var n = i("z3p0"),
            r = i("3weC"),
            a = i("6aQQ"),
            o = i("/arR"),
            s = RegExp.prototype,
            l = s.toString,
            u = a(function() {
                return "/a/b" != l.call({
                    source: "a",
                    flags: "b"
                })
            }),
            h = "toString" != l.name;
        (u || h) && n(RegExp.prototype, "toString", function() {
            var t = r(this),
                e = String(t.source),
                i = t.flags;
            return "/" + e + "/" + String(void 0 === i && t instanceof RegExp && !("flags" in s) ? o.call(t) : i)
        }, {
            unsafe: !0
        })
    },
    "8EhG": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("aCit"),
            o = i("MIZb"),
            s = i("Mtpk"),
            l = function(t) {
                function e(e) {
                    var i = t.call(this) || this;
                    i.axis = e, i.element = i.paper.add("path"), i.className = "AxisFill", i.isMeasured = !1, i.location = 0, i.above = !1;
                    var n = new o.a;
                    return i.fill = n.getFor("alternativeBackground"), i.fillOpacity = 0, i.applyTheme(), i
                }
                return Object(n.c)(e, t), e.prototype.setDisabled = function(e) {
                    var i = t.prototype.setDisabled.call(this, e);
                    return this.axis && this.axis.invalidateDataItems(), i
                }, e.prototype.draw = function() {
                    t.prototype.draw.call(this), this.__disabled || this.disabled || this.axis && s.isNumber(this.startPosition) && s.isNumber(this.endPosition) && (this.fillPath = this.axis.getPositionRangePath(this.startPosition, this.endPosition), this.path = this.fillPath, this.isMeasured && this.measure())
                }, Object.defineProperty(e.prototype, "startPosition", {
                    get: function() {
                        return this.getPropertyValue("startPosition")
                    },
                    set: function(t) {
                        this.setPropertyValue("startPosition", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endPosition", {
                    get: function() {
                        return this.getPropertyValue("endPosition")
                    },
                    set: function(t) {
                        this.setPropertyValue("endPosition", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "location", {
                    get: function() {
                        return this.getPropertyValue("location")
                    },
                    set: function(t) {
                        this.setPropertyValue("location", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setPath = function(t) {
                    return !!this.setPropertyValue("path", t) && (this.element.attr({
                        d: t
                    }), !0)
                }, Object.defineProperty(e.prototype, "above", {
                    get: function() {
                        return this.getPropertyValue("above")
                    },
                    set: function(t) {
                        this.setPropertyValue("above", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.AxisFill = l
    },
    "8ZqG": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        }), e.c = s, e.d = l, e.b = u, e.e = function(t) {
            if (a.hasValue(t) && !l(t)) return u(t);
            return t
        };
        var n = i("aCit"),
            r = i("hxI2"),
            a = i("Mtpk"),
            o = function() {
                function t(t) {
                    this._value = t
                }
                return Object.defineProperty(t.prototype, "rgb", {
                    get: function() {
                        return this._value
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "hex", {
                    get: function() {
                        return this._value ? r.rgbToHex(this._value) : "none"
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "rgba", {
                    get: function() {
                        return this._value ? r.rgbToRGBA(this._value) : "none"
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "alpha", {
                    get: function() {
                        return null != this._value && null != this._value.a ? this._value.a : 1
                    },
                    set: function(t) {
                        this._value && (this._value.a = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "lightColor", {
                    get: function() {
                        return this._lightColor || (this._lightColor = new t({
                            r: 255,
                            g: 255,
                            b: 255
                        })), this._lightColor
                    },
                    set: function(t) {
                        this._lightColor = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "darkColor", {
                    get: function() {
                        return this._darkColor || (this._darkColor = new t({
                            r: 0,
                            g: 0,
                            b: 0
                        })), this._darkColor
                    },
                    set: function(t) {
                        this._darkColor = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.toString = function() {
                    return this.alpha < 1 ? this.rgba : this.hex
                }, t.prototype.lighten = function(e) {
                    return new t(r.lighten(this.rgb, e))
                }, t.prototype.brighten = function(e) {
                    return new t(r.brighten(this.rgb, e))
                }, t.prototype.saturate = function(e) {
                    return new t(r.saturate(this.rgb, e))
                }, Object.defineProperty(t.prototype, "alternative", {
                    get: function() {
                        if (null != this.rgb) return r.isLight(this.rgb) ? this.darkColor : this.lightColor;
                        throw new Error("Color does not exist")
                    },
                    enumerable: !0,
                    configurable: !0
                }), t
            }();

        function s(t, e) {
            if (!a.hasValue(t)) return new o(void 0);
            if ("string" == typeof t) {
                var i = "_color_" + t + "_" + (e || "1"),
                    s = n.c.getCache(i);
                if (s) return new o({
                    r: s.r,
                    g: s.g,
                    b: s.b,
                    a: s.a
                });
                var l = r.rgb(t, e);
                return n.c.setCache(i, l), new o(l)
            }
            return t instanceof o ? (a.hasValue(e) && (t.alpha = e), t) : new o(t)
        }

        function l(t) {
            return t instanceof o
        }

        function u(t) {
            return s(t)
        }
    },
    "8nEM": function(t, e) {
        t.exports = Math.sign || function(t) {
            return 0 == (t = +t) || t != t ? t : t < 0 ? -1 : 1
        }
    },
    "8xQt": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("HgTb");
        n({
            target: "Array",
            proto: !0,
            forced: [].forEach != r
        }, {
            forEach: r
        })
    },
    "97TN": function(t, e, i) {
        var n = i("vfdp");
        t.exports = n.Promise
    },
    "9HTT": function(t, e, i) {
        var n = i("0sYB"),
            r = i("3weC"),
            a = i("Kg2n"),
            o = i("JZRr"),
            s = i("6aQQ"),
            l = i("8+rI"),
            u = i("gxUV"),
            h = i("Ox5T"),
            c = i("Pm8L");
        n({
            target: "Reflect",
            stat: !0,
            forced: s(function() {
                var t = l.f({}, "a", {
                    configurable: !0
                });
                return !1 !== Reflect.set(h(t), "a", 1, t)
            })
        }, {
            set: function t(e, i, n) {
                var s, p, d = arguments.length < 4 ? e : arguments[3],
                    f = u.f(r(e), i);
                if (!f) {
                    if (a(p = h(e))) return t(p, i, n, d);
                    f = c(0)
                }
                if (o(f, "value")) {
                    if (!1 === f.writable || !a(d)) return !1;
                    if (s = u.f(d, i)) {
                        if (s.get || s.set || !1 === s.writable) return !1;
                        s.value = n, l.f(d, i, s)
                    } else l.f(d, i, c(0, n));
                    return !0
                }
                return void 0 !== f.set && (f.set.call(d, n), !0)
            }
        })
    },
    "9PYb": function(t, e, i) {
        i("eygo")("Uint8", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        }, !0)
    },
    "9XRO": function(t, e, i) {
        var n = i("tNpr"),
            r = i("swFJ");
        t.exports = function(t) {
            return n(r(t))
        }
    },
    "9ZsQ": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("ZoDA"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "DateAxisBreak", e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "startDate", {
                    get: function() {
                        return this.getPropertyValue("startDate")
                    },
                    set: function(t) {
                        this.setPropertyValue("startDate", t) && (this.startValue = t.getTime(), this.axis && (this.axis.invalidate(), this.axis.invalidateSeries()))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endDate", {
                    get: function() {
                        return this.getPropertyValue("endDate")
                    },
                    set: function(t) {
                        this.setPropertyValue("endDate", t) && (this.endValue = t.getTime(), this.axis && (this.axis.invalidate(), this.axis.invalidateSeries()))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.DateAxisBreak = o
    },
    "9bPn": function(t, e, i) {
        "use strict";
        i("HMf+")("WeakSet", function(t) {
            return function() {
                return t(this, arguments.length ? arguments[0] : void 0)
            }
        }, i("NNEa"))
    },
    "9lsj": function(t, e, i) {
        var n = i("0sYB"),
            r = i("3sMl"),
            a = i("3weC"),
            o = i("EErT"),
            s = i("8+rI");
        n({
            target: "Reflect",
            stat: !0,
            forced: i("6aQQ")(function() {
                Reflect.defineProperty(s.f({}, 1, {
                    value: 1
                }), 1, {
                    value: 2
                })
            }),
            sham: !r
        }, {
            defineProperty: function(t, e, i) {
                a(t);
                var n = o(e, !0);
                a(i);
                try {
                    return s.f(t, n, i), !0
                } catch (t) {
                    return !1
                }
            }
        })
    },
    A6AV: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("x79X"),
            o = i("1yyj"),
            s = i("v9UT"),
            l = i("hJ5i"),
            u = i("Mtpk"),
            h = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._disabled = !1, e.hasProperties = !1, e.values = {}, e.categories = {}, e.dates = {}, e.locations = {}, e.workingLocations = {}, e.properties = {}, e.sprites = [], e.isTemplate = !1, e._index = null, e._visible = !0, e._hidden = !1, e._ignoreMinMax = !1, e.hasChildren = {}, e.isHiding = !1, e._valueAnimations = {}, e._locationAnimations = {}, e.className = "DataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "adapter", {
                    get: function() {
                        return this._adapterO || (this._adapterO = new a.a(this)), this._adapterO
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "index", {
                    get: function() {
                        return this.component && null != this._index ? this._index : -1
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "animations", {
                    get: function() {
                        return this._animations || (this._animations = [], this._disposers.push(new o.b(this._animations))), this._animations
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "visible", {
                    get: function() {
                        return !this._hidden && this._visible
                    },
                    set: function(t) {
                        t && (this.hidden = !1), this._visible != t && this.setVisibility(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hidden", {
                    get: function() {
                        return this._hidden
                    },
                    set: function(t) {
                        this._hidden != t && (this._hidden = t, t ? this.setVisibility(!1) : this.setVisibility(!0, !0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "__disabled", {
                    get: function() {
                        return this._disabled
                    },
                    set: function(t) {
                        this._disabled = t, l.each(this.sprites, function(e) {
                            e.__disabled = t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setVisibility = function(t, e) {
                    if (l.each(this.sprites, function(e) {
                            t ? e.visible = e.defaultState.properties.visible : e.hiddenState ? e.visible = e.hiddenState.properties.visible : e.visible = !1
                        }), this._visible = t, this._eventDispatcher && !this.__disabled && this.events.isEnabled("visibilitychanged")) {
                        var i = {
                            type: "visibilitychanged",
                            target: this,
                            visible: t
                        };
                        this.events.dispatchImmediately("visibilitychanged", i)
                    }
                }, e.prototype.show = function(t, e, i) {
                    var n, r = this;
                    if (!this.hidden) return this.setVisibility(!0, !0), this.isHiding = !1, this._hideDisposer && this.removeDispose(this._hideDisposer), i && l.each(i, function(i) {
                        n = r.setWorkingValue(i, r.values[i].value, t, e)
                    }), l.each(this.sprites, function(i) {
                        var n = i.show(t);
                        null == n || n.isFinished() || (r._disposers.push(n), null != e && e > 0 && n.delay(e))
                    }), n
                }, e.prototype.dispose = function() {
                    t.prototype.dispose.call(this), l.each(this.sprites, function(t) {
                        t.dispose()
                    }), this.sprites = []
                }, e.prototype.hide = function(t, e, i, n) {
                    var r = this;
                    if (this.isHiding = !0, l.each(this.sprites, function(i) {
                            var n = i.hide(t);
                            null == n || n.isFinished() || (r._disposers.push(n), null != e && e > 0 && n.delay(e))
                        }), u.isNumber(i) && n) {
                        var a;
                        if (l.each(n, function(n) {
                                var o = r.setWorkingValue(n, i, t, e);
                                o && (a = o)
                            }), a && !a.isFinished()) return this._hideDisposer = a.events.on("animationended", function() {
                            r.setVisibility(!1, !0), r.isHiding = !1
                        }), this._disposers.push(this._hideDisposer), a;
                        this.isHiding = !1, this.setVisibility(!1, !0)
                    } else this.isHiding = !1, this.setVisibility(!1)
                }, e.prototype.getDuration = function(t) {
                    if (!u.isNumber(t)) {
                        var e = this.component;
                        e && (t = e.interpolationDuration)
                    }
                    if (null != t) return this._adapterO ? this._adapterO.apply("duration", t) : t
                }, e.prototype.getValue = function(t, e) {
                    if (t && this.component) {
                        e || (e = this.component.dataFields[t + "Show"]) || (e = "value");
                        var i = this.values[t][e];
                        return this._adapterO && this._adapterO.isEnabled("value") ? this._adapterO.apply("value", {
                            value: i,
                            field: t
                        }).value : i
                    }
                }, e.prototype.getWorkingValue = function(t) {
                    if (t && this.component) {
                        var e = this.component.dataFields[t + "Show"];
                        return e || (e = "workingValue"), this._adapterO ? this._adapterO.apply("workingValue", {
                            workingValue: this.values[t][e],
                            field: t
                        }).workingValue : this.values[t][e]
                    }
                }, e.prototype.getActualWorkingValue = function(t) {
                    return this.values[t].workingValue
                }, e.prototype.setValue = function(t, e, i, n) {
                    var r = this.values[t].value,
                        a = this.getDuration(i);
                    if (r !== (e = u.toNumber(e))) {
                        if (this.values[t].value = e, this._eventDispatcher && !this.__disabled && this.events.isEnabled("valuechanged")) {
                            var o = {
                                type: "valuechanged",
                                target: this,
                                property: t
                            };
                            this.events.dispatchImmediately("valuechanged", o)
                        }
                        this.component && this.component.handleDataItemValueChange(this, t)
                    }
                    this.setWorkingValue(t, e, a, n)
                }, e.prototype.setCalculatedValue = function(t, e, i) {
                    if (this.values[t][i] !== e && u.isNumber(e)) {
                        if (this.values[t][i] = e, this._eventDispatcher && !this.__disabled && this.events.isEnabled("calculatedvaluechanged")) {
                            var n = {
                                type: "calculatedvaluechanged",
                                target: this,
                                property: t
                            };
                            this.events.dispatchImmediately("calculatedvaluechanged", n)
                        }
                        this.component && this.component.handleDataItemCalculatedValueChange(this, t)
                    }
                }, e.prototype.setWorkingValue = function(t, e, i, n) {
                    if (u.isNumber(this.values[t].value)) {
                        var r = this.getDuration(i),
                            a = this.values[t].workingValue;
                        if (null != r && r > 0 && u.isNumber(a) && this.component) {
                            if (a != e) {
                                var o = this.animate({
                                    childObject: this.values[t],
                                    property: "workingValue",
                                    from: a,
                                    to: e,
                                    dummyData: t
                                }, r, this.component.interpolationEasing);
                                return null != n && o.delay(n), o.events.on("animationstarted", this.handleInterpolationProgress, this), o.events.on("animationprogress", this.handleInterpolationProgress, this), o.events.on("animationended", this.handleInterpolationProgress, this), this._valueAnimations[t] = o, o
                            }(s = this._valueAnimations[t]) && s.stop(), this.values[t].workingValue = e
                        } else {
                            var s;
                            if ((s = this._valueAnimations[t]) && s.stop(), this.values[t].workingValue = e, this._eventDispatcher && !this.__disabled && this.events.isEnabled("workingvaluechanged")) {
                                var l = {
                                    type: "workingvaluechanged",
                                    target: this,
                                    property: t
                                };
                                this.events.dispatchImmediately("workingvaluechanged", l)
                            }
                            this.component && this.component.handleDataItemWorkingValueChange(this, t)
                        }
                    }
                }, e.prototype.setLocation = function(t, e, i, n) {
                    if (this.locations[t] !== e) {
                        if (this.locations[t] = e, this._eventDispatcher && !this.__disabled && this.events.isEnabled("locationchanged")) {
                            var r = {
                                type: "locationchanged",
                                target: this,
                                property: t
                            };
                            this.events.dispatchImmediately("locationchanged", r)
                        }
                        this.component && this.component.handleDataItemValueChange(this, t), this.setWorkingLocation(t, e, i, n)
                    }
                }, e.prototype.setWorkingLocation = function(t, e, i, n) {
                    var r = this.getDuration(i),
                        a = this.workingLocations[t];
                    if (null != r && r > 0 && u.isNumber(a) && this.component) {
                        if (a != e) {
                            var o = this.animate({
                                childObject: this.workingLocations,
                                property: t,
                                from: a,
                                to: e,
                                dummyData: t
                            }, r, this.component.interpolationEasing);
                            return null != n && o.delay(n), o.events.on("animationstarted", this.handleInterpolationProgress, this), o.events.on("animationprogress", this.handleInterpolationProgress, this), o.events.on("animationended", this.handleInterpolationProgress, this), this._locationAnimations[t] = o, o
                        }(s = this._locationAnimations[t]) && s.stop(), this.workingLocations[t] = e
                    } else {
                        var s;
                        if ((s = this._locationAnimations[t]) && s.stop(), this.workingLocations[t] = e, this._eventDispatcher && !this.__disabled && this.events.isEnabled("workinglocationchanged")) {
                            var l = {
                                type: "workinglocationchanged",
                                target: this,
                                property: t
                            };
                            this.events.dispatchImmediately("workinglocationchanged", l)
                        }
                        this.component && this.component.handleDataItemWorkingLocationChange(this, t)
                    }
                }, e.prototype.setDate = function(t, e, i) {
                    !u.isDate(e) && this.component && (e = this.component.dateFormatter.parse(e)), this.dates[t] !== e && (this.dates[t] = e, this.setValue(t, e.getTime(), i))
                }, e.prototype.getDate = function(t) {
                    return this._adapterO ? this._adapterO.apply("date", {
                        date: this.dates[t],
                        field: t
                    }).date : this.dates[t]
                }, e.prototype.setProperty = function(t, e) {
                    if (this.properties[t] !== e) {
                        if (this.hasProperties = !0, this.properties[t] = e, this._eventDispatcher && !this.__disabled && this.events.isEnabled("propertychanged")) {
                            var i = {
                                type: "propertychanged",
                                target: this,
                                property: t,
                                value: e
                            };
                            this.events.dispatchImmediately("propertychanged", i)
                        }
                        this.component && this.component.handleDataItemPropertyChange(this, t)
                    }
                }, e.prototype.setCategory = function(t, e) {
                    u.isString(e) || (e = u.castString(e)), this.categories[t] !== e && (this.categories[t] = e)
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), e.dataContext && (this.dataContext = s.copy(e.dataContext, {})), s.copyProperties(e.locations, this.locations), e._adapterO && this.adapter.copyFrom(e._adapterO), this.component = e.component
                }, Object.defineProperty(e.prototype, "opacity", {
                    set: function(t) {
                        l.each(this.sprites, function(e) {
                            e.opacity = t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "ignoreMinMax", {
                    get: function() {
                        return this._ignoreMinMax
                    },
                    set: function(t) {
                        if (this._ignoreMinMax = t, this._eventDispatcher && !this.__disabled && this.events.isEnabled("propertychanged")) {
                            var e = {
                                type: "propertychanged",
                                target: this,
                                property: "ignoreMinMax",
                                value: t
                            };
                            this.events.dispatchImmediately("propertychanged", e)
                        }
                        this.component && this.component.handleDataItemPropertyChange(this, "ignoreMinMax")
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.animate = function(t, e, i) {
                    return new o.a(this, t, e, i).start()
                }, e.prototype.handleInterpolationProgress = function(t) {
                    var e = t.target.animationOptions[0];
                    if (e) {
                        if (this._eventDispatcher && !this.__disabled && this.events.isEnabled("workingvaluechanged")) {
                            var i = {
                                type: "workingvaluechanged",
                                target: this,
                                property: e.dummyData
                            };
                            this.events.dispatchImmediately("workingvaluechanged", i)
                        }
                        this.component && this.component.handleDataItemWorkingValueChange(this, e.dummyData)
                    }
                }, e.prototype.hasValue = function(t) {
                    for (var e = 0, i = t.length; e < i; e++) {
                        var n = this.values[t[e]];
                        if (!n || !u.hasValue(n.value)) return !1
                    }
                    return !0
                }, Object.defineProperty(e.prototype, "depth", {
                    get: function() {
                        return this.parent ? this.parent.depth + 1 : 0
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dataContext", {
                    get: function() {
                        return this._dataContext
                    },
                    set: function(t) {
                        this._dataContext = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.addSprite = function(t) {
                    t.dataItem && t.dataItem != this && l.remove(t.dataItem.sprites, t), this.visible || t.hide(0), this.isHiding && t.hide(), this.sprites.push(t), t.dataItem = this
                }, e
            }(r.b)
    },
    AAkI: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return w
        }), i.d(e, "a", function() {
            return O
        });
        var n, r = i("m4/l"),
            a = i("Y9w3"),
            o = i("C6dT"),
            s = i("A6AV"),
            l = i("Uslz"),
            u = i("p9TX"),
            h = i("cxKZ"),
            c = i("VGgz"),
            p = i("vMqJ"),
            d = i("hD5A"),
            f = i("aCit"),
            g = i("MIZb"),
            y = i("Wglt"),
            m = i("Gg2j"),
            v = i("v9UT"),
            b = i("3Cxr"),
            x = i("hJ5i"),
            _ = i("Mtpk"),
            P = i("TGuK"),
            w = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "AxisDataItem", e.applyTheme(), e
                }
                return Object(r.c)(e, t), Object.defineProperty(e.prototype, "grid", {
                    get: function() {
                        if (!this._grid) {
                            var t = this.component;
                            if (t) {
                                var e, i = void 0;
                                if (this.isRange) {
                                    if ((i = t.axisRanges.template.grid).disabled) return;
                                    e = i.clone()
                                } else {
                                    if ((i = t.renderer.grid.template).disabled) return;
                                    e = t.renderer.grid.create(), this._disposers.push(new d.b(function() {
                                        t.renderer.grid.removeValue(e)
                                    }))
                                }
                                this.grid = e, e.shouldClone = !1, this._disposers.push(e), e.axis = this.component
                            }
                        }
                        return this._grid
                    },
                    set: function(t) {
                        this._grid && this._grid != t && (x.remove(this.sprites, this._grid), this._grid.dataItem = void 0), t && (t.dataItem && t.dataItem != this && (x.remove(t.dataItem.sprites, t), t.dataItem.grid = void 0), this.addSprite(t)), this._grid = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tick", {
                    get: function() {
                        if (!this._tick) {
                            var t = this.component;
                            if (t) {
                                var e, i = void 0;
                                if (this.isRange) {
                                    if ((i = t.axisRanges.template.tick).disabled) return;
                                    e = i.clone()
                                } else {
                                    if ((i = t.renderer.ticks.template).disabled) return;
                                    e = t.renderer.ticks.create(), this._disposers.push(new d.b(function() {
                                        t.renderer.ticks.removeValue(e)
                                    }))
                                }
                                this.tick = e, e.axis = this.component, e.shouldClone = !1, this._disposers.push(e)
                            }
                        }
                        return this._tick
                    },
                    set: function(t) {
                        this._tick && this._tick != t && (x.remove(this.sprites, this._tick), this._tick.dataItem = void 0), t && (t.dataItem && t.dataItem != this && (x.remove(t.dataItem.sprites, t), t.dataItem.tick = void 0), this.addSprite(t)), this._tick = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "label", {
                    get: function() {
                        if (!this._label) {
                            var t = this.component;
                            if (t) {
                                var e, i = void 0;
                                if (this.isRange) {
                                    if ((i = t.axisRanges.template.label).disabled) return;
                                    e = i.clone()
                                } else {
                                    if ((i = t.renderer.labels.template).disabled) return;
                                    e = t.renderer.labels.create(), this._disposers.push(new d.b(function() {
                                        t.renderer.labels.removeValue(e)
                                    }))
                                }
                                this._disposers.push(e), this.label = e, e.shouldClone = !1, e.axis = this.component, e.virtualParent = t
                            }
                        }
                        return this._label
                    },
                    set: function(t) {
                        this._label && this._label != t && (x.remove(this.sprites, this._label), this._label.dataItem = void 0), t && (t.dataItem && t.dataItem != this && (x.remove(t.dataItem.sprites, t), t.dataItem.label = void 0), this.addSprite(t)), this._label = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "axisFill", {
                    get: function() {
                        if (!this._axisFill) {
                            var t = this.component;
                            if (t) {
                                var e, i = void 0;
                                if (this.isRange) {
                                    if (i = t.axisRanges.template.axisFill, !this.isTemplate && i.disabled) return;
                                    e = i.clone()
                                } else {
                                    if ((i = t.renderer.axisFills.template).disabled) return;
                                    e = t.renderer.axisFills.create(), this._disposers.push(new d.b(function() {
                                        t.renderer.axisFills.removeValue(e)
                                    }))
                                }
                                this.axisFill = e, e.shouldClone = !1, this._disposers.push(e)
                            }
                        }
                        return this._axisFill
                    },
                    set: function(t) {
                        this._axisFill && this._axisFill != t && (x.remove(this.sprites, this._axisFill), this._axisFill.dataItem = void 0), t && (t.dataItem && t.dataItem != this && (x.remove(t.dataItem.sprites, t), t.dataItem.axisFill = void 0), t.axis = this.component, this.addSprite(t)), this._axisFill = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "text", {
                    get: function() {
                        return this._text
                    },
                    set: function(t) {
                        this._text = t, this._label && (this._label.text = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "mask", {
                    get: function() {
                        return this._mask
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "contents", {
                    get: function() {
                        if (!this._contents) {
                            var t = new o.a;
                            this.addSprite(t), t.isMeasured = !1, this._contents = t;
                            var e = this.component;
                            if (e) {
                                var i = e.renderer.createFill(this.component);
                                i.disabled = !1, i.axis = e, this.addSprite(i), this._mask = i, t.mask = i
                            }
                        }
                        return this._contents
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "axisBreak", {
                    get: function() {
                        return this._axisBreak
                    },
                    set: function(t) {
                        this._axisBreak && this._axisBreak.dataItems.removeValue(this), t && t.dataItems.push(this), this._axisBreak = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.validate = function() {
                    this.component && this.component.validateDataElement(this)
                }, e.prototype.appendChildren = function() {
                    this.component && this.component.appendDataItem(this)
                }, e.prototype.configOrder = function(t, e) {
                    return t == e ? 0 : "language" == t ? -1 : "language" == e ? 1 : "component" == t ? -1 : "component" == e ? 1 : 0
                }, e.prototype.hasProperty = function(e) {
                    return "component" == e || t.prototype.hasProperty.call(this, e)
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.text = e.text, e.bullet && (this.bullet = e.bullet.clone()), this.minPosition = e.minPosition, this.maxPosition = e.maxPosition
                }, e.prototype.setVisibility = function(e, i) {
                    t.prototype.setVisibility.call(this, e, i), this._contents && (this._contents.visible = e)
                }, Object.defineProperty(e.prototype, "bullet", {
                    get: function() {
                        return this._bullet
                    },
                    set: function(t) {
                        this._bullet && this._bullet != t && (x.remove(this.sprites, this._bullet), this._bullet.dataItem = void 0), this._bullet = t, t && this.addSprite(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(s.a);
        ! function(t) {
            t[t.Start = 0] = "Start", t[t.Middle = .5] = "Middle", t[t.End = 1] = "End"
        }(n || (n = {}));
        var O = function(t) {
            function e() {
                var i = t.call(this) || this;
                if (i._gridCount = 10, i._series = new p.b, i.autoDispose = !0, i._axisItemCount = 0, i.constructor === e) throw new Error("'Axis' cannot be instantiated directly. Please use a specific axis type.");
                i.hideTooltipWhileZooming = !0, i.minWidth = 1e-4, i.minHeight = 1e-4, i.className = "Axis", i.shouldClone = !1, i.setPropertyValue("cursorTooltipEnabled", !0), i.toggleZoomOutButton = !0;
                var n = new g.a;
                i.title = new u.a, i.title.shouldClone = !1, i._disposers.push(i.title), i.setPropertyValue("startLocation", 0), i.setPropertyValue("endLocation", 1), i._dataItemsIterator = new y.ListIterator(i.dataItems, function() {
                    return i.dataItems.create()
                }), i._dataItemsIterator.createNewItems = !0;
                var r = new h.a;
                i._disposers.push(r), r.label.padding(5, 10, 5, 10), r.background.pointerLength = 5, r.fitPointerToBounds = !0, r.background.filters.clear(), r.virtualParent = i;
                var a = r.background;
                return a.cornerRadius = 0, a.fill = n.getFor("alternativeBackground"), a.stroke = a.fill, a.strokeWidth = 1, a.fillOpacity = 1, r.label.fill = n.getFor("alternativeText"), i.tooltip = r, i.readerHidden = !0, i.events.on("rangechangestarted", function() {
                    i.series.each(function(t) {
                        t.hideTooltipWhileZooming && (t.tooltip.hide(), t.tooltip.preventShow = !0)
                    }), i.hideTooltipWhileZooming && (i.tooltip.hide(), i.tooltip.preventShow = !0)
                }, void 0, !1), i.events.on("rangechangeended", function() {
                    i.series.each(function(t) {
                        t.hideTooltipWhileZooming && (t.tooltip.hide(), t.tooltip.preventShow = !1)
                    }), i.hideTooltipWhileZooming && (i.tooltip.hide(), i.tooltip.preventShow = !1)
                }, void 0, !1), i.applyTheme(), i
            }
            return Object(r.c)(e, t), e.prototype.fillRule = function(t, e) {
                _.isNumber(e) || (e = t.index), e / 2 == Math.round(e / 2) ? (t.axisFill.__disabled = !0, t.axisFill.opacity = 0) : (t.axisFill.opacity = 1, t.axisFill.__disabled = !1)
            }, e.prototype.createDataItem = function() {
                return new w
            }, e.prototype.invalidateLayout = function() {
                t.prototype.invalidateLayout.call(this), y.each(this.series.iterator(), function(t) {
                    t.invalidateLayout()
                })
            }, e.prototype.invalidateSeries = function() {
                y.each(this.series.iterator(), function(t) {
                    t.invalidate()
                })
            }, e.prototype.validateDataElements = function() {
                this._axisItemCount = 0, this.ghostLabel && (this.renderer.updateLabelElement(this.ghostLabel, this.start, this.end), this.ghostLabel.validate())
            }, e.prototype.updateGridCount = function() {
                if (this.renderer) {
                    var t = this.axisLength / this.renderer.minGridDistance;
                    t != this._gridCount && (this._gridCount = t, this.clearCache())
                }
            }, e.prototype.validateLayout = function() {
                this.axisFullLength = this.axisLength / (this.end - this.start), t.prototype.validateLayout.call(this), this.updateGridCount();
                var e = this.renderer;
                e && (e.updateAxisLine(), e.updateTooltip(), e.updateBaseGridElement()), this._prevLength != this.axisLength && (this.dispatchImmediately("lengthchanged"), this._prevLength = this.axisLength)
            }, e.prototype.initRenderer = function() {}, e.prototype.appendDataItem = function(t) {
                var e = this.renderer,
                    i = t.tick;
                i && (i.above ? i.parent = e.bulletsContainer : i.parent = e.gridContainer), t.label && (t.label.parent = e);
                var n = t.axisFill;
                n && (n.above ? n.parent = e.bulletsContainer : n.parent = e.gridContainer);
                var r = t.grid;
                r && (r.above ? r.parent = e.bulletsContainer : r.parent = e.gridContainer), t.bullet && (t.bullet.parent = e.bulletsContainer)
            }, e.prototype.validate = function() {
                t.prototype.validate.call(this), this.validateLayout(), this.renderer.updateGridContainer()
            }, e.prototype.validateAxisRanges = function() {
                var t = this;
                y.each(this.axisRanges.iterator(), function(e) {
                    t.appendDataItem(e), t.validateDataElement(e), e.grid && e.grid.validate(), e.tick && e.tick.validate(), e.axisFill && e.axisFill.validate(), e.label && e.label.validate()
                })
            }, e.prototype.validateBreaks = function() {
                this._axisBreaks && y.each(this._axisBreaks.iterator(), function(t) {
                    t.invalidate()
                })
            }, e.prototype.processBreak = function(t) {
                var e = t.newValue;
                e.parent = this.renderer.breakContainer, e.axis = this
            }, e.prototype.registerSeries = function(t) {
                var e = this;
                return this.series.moveValue(t), new d.c([new d.b(function() {
                    e.series.removeValue(t)
                }), this.events.on("lengthchanged", t.invalidate, t, !1), this.events.on("lengthchanged", t.createMask, t, !1), this.events.on("startchanged", t.invalidate, t, !1), this.events.on("endchanged", t.invalidate, t, !1)])
            }, Object.defineProperty(e.prototype, "renderer", {
                get: function() {
                    return this._renderer
                },
                set: function(t) {
                    if (t != this._renderer) {
                        this._renderer = t, t.chart = this.chart, t.axis = this, t.parent = this, this.title.parent = this, this.initRenderer(), this._disposers.push(t.gridContainer.events.on("maxsizechanged", this.invalidate, this, !1));
                        var e = this.renderer.labels.create();
                        this._disposers.push(e), e.dataItem = this.dataItems.template.clone(), e.text = "L", e.parent = this.renderer, e.shouldClone = !1, e.fillOpacity = 0, e.opacity = 0, e.strokeOpacity = 0, e.interactionsEnabled = !1, e.validate(), this.ghostLabel = e, this.events.on("beforedatavalidated", function() {
                            e.text = "L"
                        }, void 0, !1)
                    }
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.positionToAngle = function(t) {
                return this.renderer.positionToAngle(t)
            }, e.prototype.pointToPosition = function(t) {
                return this.renderer.pointToPosition(t)
            }, e.prototype.positionToCoordinate = function(t) {
                return this.renderer.positionToCoordinate(t)
            }, e.prototype.getAnyRangePath = function(t, e) {
                return this.renderer.getPositionRangePath(t, e)
            }, e.prototype.anyToPosition = function(t) {
                return 0
            }, e.prototype.anyToPoint = function(t) {
                return {
                    x: 0,
                    y: 0,
                    angle: 0
                }
            }, e.prototype.getPositionRangePath = function(t, e) {
                return this.renderer ? this.renderer.getPositionRangePath(t, e) : ""
            }, Object.defineProperty(e.prototype, "axisLength", {
                get: function() {
                    return this.renderer ? this.renderer.axisLength : 0
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "cursorTooltipEnabled", {
                get: function() {
                    return this.getPropertyValue("cursorTooltipEnabled")
                },
                set: function(t) {
                    this.setPropertyValue("cursorTooltipEnabled", t) && (t && this.renderer ? this.renderer.updateTooltip() : this.tooltip && this.tooltip.hide(0))
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "toggleZoomOutButton", {
                get: function() {
                    return this.getPropertyValue("toggleZoomOutButton")
                },
                set: function(t) {
                    this.setPropertyValue("toggleZoomOutButton", t)
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.hideTooltip = function(e) {
                t.prototype.hideTooltip.call(this, e), this._tooltipPosition = void 0
            }, e.prototype.showTooltipAtPosition = function(t, e) {
                var i = this._tooltip;
                if (!i || this.dataItems.length <= 0) this._tooltipPosition = void 0;
                else {
                    if (e || (t = this.toAxisPosition(t)), !_.isNumber(t) || t < this.start || t > this.end) return i.hide(0), void(this._tooltipPosition = void 0);
                    var n = this.renderer;
                    i.parent || (i.parent = this.tooltipContainer);
                    var r = n.tooltipLocation,
                        a = this.getCellStartPosition(t),
                        o = this.getCellEndPosition(t);
                    if ("fixed" == this.tooltipPosition && (t = m.ceil(a + (o - a) * r, 4)), t = m.fitToRange(t, this.start, this.end), this._tooltipPosition != t) {
                        this._tooltipPosition = t;
                        var s = n.tooltipLocation2,
                            l = n.positionToPoint(a, s),
                            u = n.positionToPoint(o, s);
                        this.currentItemStartPoint = l, this.currentItemEndPoint = u, n.fullWidthTooltip && (i.width = u.x - l.x, i.height = u.y - l.y);
                        var h = n.positionToPoint(t, s),
                            c = v.spritePointToSvg(h, this.renderer.line);
                        i.text = this.getTooltipText(t), i.text && (i.pointTo(c), i.show())
                    }
                    this.cursorTooltipEnabled && !this.tooltip.disabled || i.hide(0)
                }
            }, e.prototype.toAxisPosition = function(t) {
                if (void 0 != (t = this.renderer.toAxisPosition(t))) return t *= this.end - this.start, t = this.renderer.inversed ? this.end - t : this.start + t
            }, e.prototype.toGlobalPosition = function(t) {
                return this.renderer.inversed ? t = this.end - t : t -= this.start, t / (this.end - this.start)
            }, e.prototype.getTooltipText = function(t) {}, e.prototype.updateTooltip = function(t, e) {
                var i = this._tooltip;
                i && (i.pointerOrientation = t, i.setBounds(v.spriteRectToSvg(e, this.renderer.line)))
            }, e.prototype.roundPosition = function(t, e, i) {
                return t
            }, e.prototype.getCellStartPosition = function(t) {
                return t
            }, e.prototype.getCellEndPosition = function(t) {
                return t
            }, Object.defineProperty(e.prototype, "axisRanges", {
                get: function() {
                    if (!this._axisRanges) {
                        var t = this.createDataItem();
                        t.isRange = !0, t.axisFill = this.renderer.axisFills.template.clone(), t.grid = this.renderer.grid.template.clone(), t.tick = this.renderer.ticks.template.clone(), t.label = this.renderer.labels.template.clone(), t.isTemplate = !0, t.component = this, t.axisFill.disabled = !1, t.tick.disabled = !1, t.grid.disabled = !1, t.label.disabled = !1, this._axisRanges = new p.e(t), this._axisRanges.events.on("inserted", this.processAxisRange, this, !1), this._disposers.push(new p.c(this._axisRanges)), this._disposers.push(this._axisRanges.template)
                    }
                    return this._axisRanges
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.processAxisRange = function(t) {
                var e = t.newValue;
                e.component = this, e.isRange = !0
            }, Object.defineProperty(e.prototype, "axisBreaks", {
                get: function() {
                    return this._axisBreaks || (this._axisBreaks = new c.d(this.createAxisBreak(), function(t, e) {
                        return b.order(t.adjustedStartValue, e.adjustedStartValue)
                    }), this._axisBreaks.events.on("inserted", this.processBreak, this, !1), this._disposers.push(new p.c(this._axisBreaks)), this._disposers.push(this._axisBreaks.template)), this._axisBreaks
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.createAxisBreak = function() {
                return new l.a
            }, Object.defineProperty(e.prototype, "series", {
                get: function() {
                    return this._series || (this._series = new p.b), this._series
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.processSeriesDataItems = function() {}, e.prototype.processSeriesDataItem = function(t, e) {}, e.prototype.postProcessSeriesDataItems = function() {}, e.prototype.postProcessSeriesDataItem = function(t) {}, e.prototype.updateAxisBySeries = function() {}, e.prototype.hideUnusedDataItems = function() {
                var t = this,
                    e = this._dataItemsIterator;
                e.createNewItems = !1, y.each(e.iterator(), function(e) {
                    t.validateDataElement(e), e.__disabled = !0
                }), e.clear(), e.createNewItems = !0
            }, e.prototype.getSeriesDataItem = function(t, e, i) {}, e.prototype.getAngle = function(t, e, i, n, r) {}, e.prototype.getX = function(t, e, i, n, r) {}, e.prototype.getPositionX = function(t, e, i, n, r) {}, e.prototype.getY = function(t, e, i, n, r) {}, e.prototype.getPositionY = function(t, e, i, n, r) {}, Object.defineProperty(e.prototype, "basePoint", {
                get: function() {
                    return {
                        x: 0,
                        y: 0
                    }
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.dataChangeUpdate = function() {}, e.prototype.seriesDataChangeUpdate = function(t) {}, e.prototype.adjustDifference = function(t, e) {
                var i = e - t;
                if (_.isNumber(i)) return this._axisBreaks && y.eachContinue(this._axisBreaks.iterator(), function(n) {
                    var r = n.adjustedStartValue,
                        a = n.adjustedEndValue;
                    if (_.isNumber(r) && _.isNumber(a)) {
                        if (r > e) return !1;
                        if (a >= t && _.isNumber(r) && _.isNumber(a)) {
                            var o = n.breakSize,
                                s = m.intersection({
                                    start: r,
                                    end: a
                                }, {
                                    start: t,
                                    end: e
                                });
                            s && (i -= (s.end - s.start) * (1 - o))
                        }
                        return !0
                    }
                }), i
            }, e.prototype.isInBreak = function(t) {
                if (this._axisBreaks) return y.find(this._axisBreaks.iterator(), function(e) {
                    return t >= e.adjustedStartValue && t <= e.adjustedEndValue
                })
            }, e.prototype.fixAxisBreaks = function() {
                var t = this;
                if (this._axisBreaks) {
                    var e = this._axisBreaks;
                    if (e.length > 0) {
                        x.each(y.toArray(e.iterator()), function(e) {
                            var i = m.min(e.startValue, e.endValue),
                                n = m.max(e.startValue, e.endValue);
                            e.adjustedStartValue = i, e.adjustedEndValue = n, t._axisBreaks.update(e)
                        });
                        var i = e.first,
                            n = Math.min(i.startValue, i.endValue);
                        y.each(e.iterator(), function(t) {
                            var e = t.adjustedStartValue,
                                i = t.adjustedEndValue;
                            e < n && (e = n, i < n && (i = n)), t.adjustedStartValue = e, t.adjustedEndValue = i
                        })
                    }
                }
            }, Object.defineProperty(e.prototype, "startIndex", {
                get: function() {
                    return 0
                },
                set: function(t) {},
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "endIndex", {
                get: function() {
                    return this.dataItems.length
                },
                set: function(t) {},
                enumerable: !0,
                configurable: !0
            }), e.prototype.getPositionLabel = function(t) {
                return Math.round(100 * t) + "%x"
            }, Object.defineProperty(e.prototype, "chart", {
                get: function() {
                    return this._chart
                },
                set: function(t) {
                    this._chart = t
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.createSeriesRange = function(t) {
                var e = this.axisRanges.create();
                return e.component = this, e.axisFill = this.renderer.axisFills.template.clone(), e.axisFill.disabled = !1, e.axisFill.fillOpacity = 0, e.grid = this.renderer.grid.template.clone(), e.grid.disabled = !0, e.tick = this.renderer.ticks.template.clone(), e.tick.disabled = !0, e.label = this.renderer.labels.template.clone(), e.label.disabled = !0, t.axisRanges.push(e), e
            }, e.prototype.copyFrom = function(e) {
                t.prototype.copyFrom.call(this, e), this.renderer ? this.renderer.copyFrom(e.renderer) : e.renderer && (this.renderer = e.renderer.clone(), this._disposers.push(this.renderer)), e.title && (this.title ? this.title.copyFrom(e.title) : (this.title = e.title.clone(), this.title.parent = this), this._disposers.push(this.title))
            }, e.prototype.resetIterators = function() {
                this._dataItemsIterator.reset()
            }, e.prototype.processConfig = function(e) {
                if (e && _.hasValue(e.axisRanges) && _.isArray(e.axisRanges))
                    for (var i = 0, n = e.axisRanges.length; i < n; i++) {
                        var r = e.axisRanges[i];
                        _.hasValue(r.series) && _.isString(r.series) && this.map.hasKey(r.series) && (e.axisRanges[i] = this.createSeriesRange(this.map.getKey(r.series)), delete r.series, e.axisRanges[i].config = r)
                    }
                t.prototype.processConfig.call(this, e)
            }, Object.defineProperty(e.prototype, "startLocation", {
                get: function() {
                    return this.getPropertyValue("startLocation")
                },
                set: function(t) {
                    this.setPropertyValue("startLocation", t, !0)
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "endLocation", {
                get: function() {
                    return this.getPropertyValue("endLocation")
                },
                set: function(t) {
                    this.setPropertyValue("endLocation", t, !0)
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.setDisabled = function(e) {
                var i = t.prototype.setDisabled.call(this, e);
                return this.renderer && (this.renderer.gridContainer.disabled = e), i
            }, Object.defineProperty(e.prototype, "title", {
                get: function() {
                    return this._title
                },
                set: function(t) {
                    this._title && this._title != t && this._title.dispose(), t && (this._title = t, t.parent = this, t.shouldClone = !1)
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "hideTooltipWhileZooming", {
                get: function() {
                    return this.getPropertyValue("hideTooltipWhileZooming")
                },
                set: function(t) {
                    this.setPropertyValue("hideTooltipWhileZooming", t)
                },
                enumerable: !0,
                configurable: !0
            }), e
        }(a.a);
        f.c.registeredClasses.Axis = O, f.c.registeredClasses.AxisDataItem = w, P.c.push({
            relevant: P.b.maybeXS,
            state: function(t, e) {
                if (t instanceof O && t.tooltip) {
                    var i = t.states.create(e);
                    return i.properties.cursorTooltipEnabled = !1, i
                }
                return null
            }
        })
    },
    AC2I: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return v
        }), i.d(e, "a", function() {
            return b
        });
        var n = i("m4/l"),
            r = i("aM7D"),
            a = i("Vs7R"),
            o = i("p9TX"),
            s = i("8ZqG"),
            l = i("qzbU"),
            u = i("vMqJ"),
            h = i("C6dT"),
            c = i("DHte"),
            p = i("aCit"),
            d = i("Wglt"),
            f = i("0FpR"),
            g = i("Mtpk"),
            y = i("hD5A"),
            m = i("TGuK"),
            v = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "PercentSeriesDataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.uidAttr = function() {
                    return this.slice.uidAttr()
                }, e.prototype.hide = function(e, i, n, r) {
                    return r || (r = ["value"]), t.prototype.hide.call(this, e, i, 0, r)
                }, e.prototype.setVisibility = function(e, i) {
                    i || (e ? this.setWorkingValue("value", this.values.value.value, 0, 0) : this.setWorkingValue("value", 0, 0, 0)), t.prototype.setVisibility.call(this, e, i)
                }, e.prototype.show = function(e, i, n) {
                    return n || (n = ["value"]), t.prototype.show.call(this, e, i, n)
                }, Object.defineProperty(e.prototype, "category", {
                    get: function() {
                        return this.properties.category
                    },
                    set: function(t) {
                        this.setProperty("category", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createLegendMarker = function(t) {
                    this.component.createLegendMarker(t, this)
                }, Object.defineProperty(e.prototype, "legendDataItem", {
                    get: function() {
                        return this._legendDataItem
                    },
                    set: function(t) {
                        this._legendDataItem = t, t.label && (t.label.dataItem = this), t.valueLabel && (t.valueLabel.dataItem = this)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tick", {
                    get: function() {
                        var t = this;
                        if (!this._tick) {
                            var e = this.component.ticks.create();
                            this._tick = e, this.addSprite(e), this._disposers.push(e), e.parent = this.component.ticksContainer, this._disposers.push(new y.b(function() {
                                t.component && t.component.ticks.removeValue(e)
                            })), e.visible = this.visible
                        }
                        return this._tick
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "label", {
                    get: function() {
                        var t = this;
                        if (!this._label) {
                            var e = this.component.labels.create();
                            this.addSprite(e), this._label = e, this._disposers.push(e), e.parent = this.component.labelsContainer, this._disposers.push(new y.b(function() {
                                t.component && t.component.labels.removeValue(e)
                            })), e.visible = this.visible
                        }
                        return this._label
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "slice", {
                    get: function() {
                        var t = this;
                        if (!this._slice) {
                            var e = this.component,
                                i = e.slices.create();
                            this.addSprite(i), this._slice = i, this._disposers.push(i), i.parent = e.slicesContainer, this._disposers.push(new y.b(function() {
                                e.slices.removeValue(i)
                            })), i.visible = this.visible, e.itemsFocusable() ? (this.component.role = "menu", i.role = "menuitem", i.focusable = !0) : (this.component.role = "list", i.role = "listitem", i.focusable = !1), i.focusable && (i.events.on("focus", function(n) {
                                i.readerTitle = e.populateString(e.itemReaderText, t)
                            }, void 0, !1), i.events.on("blur", function(t) {
                                i.readerTitle = ""
                            }, void 0, !1)), i.hoverable && (i.events.on("over", function(n) {
                                i.readerTitle = e.populateString(e.itemReaderText, t)
                            }, void 0, !1), i.events.on("out", function(t) {
                                i.readerTitle = ""
                            }, void 0, !1))
                        }
                        return this._slice
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hiddenInLegend", {
                    get: function() {
                        return this.properties.hiddenInLegend
                    },
                    set: function(t) {
                        this.setProperty("hiddenInLegend", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.b),
            b = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "PercentSeries", e._addAllDataItems = !1, e.colors = new c.a, e.colors.step = 1, e.isMeasured = !0, e.calculatePercent = !0;
                    var i = e.createChild(h.a);
                    i.shouldClone = !1, i.isMeasured = !1, e.slicesContainer = i;
                    var n = e.createChild(h.a);
                    n.shouldClone = !1, n.isMeasured = !1, n.layout = "none", e.ticksContainer = n;
                    var r = e.createChild(h.a);
                    return r.shouldClone = !1, r.isMeasured = !1, r.layout = "none", e.labelsContainer = r, e.alignLabels = !1, e.bulletsContainer.toFront(), e.skipFocusThreshold = 50, e.defaultState.transitionEasing = f.sinOut, e.itemReaderText = "{category}: {value.percent.formatNumber('#.#')}%", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.createSlice = function() {
                    return new a.a
                }, e.prototype.createTick = function() {
                    return new l.a
                }, e.prototype.createLabel = function() {
                    return new o.a
                }, Object.defineProperty(e.prototype, "slices", {
                    get: function() {
                        if (!this._slices) {
                            var t = this.createSlice();
                            t.applyOnClones = !0, this._disposers.push(t), this.initSlice(t), this._slices = new u.e(t), this._disposers.push(new u.c(this._slices))
                        }
                        return this._slices
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "ticks", {
                    get: function() {
                        if (!this._ticks) {
                            var t = this.createTick();
                            t.applyOnClones = !0, this._disposers.push(t), this.initTick(t), this._ticks = new u.e(t), this._disposers.push(new u.c(this._ticks))
                        }
                        return this._ticks
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "labels", {
                    get: function() {
                        if (!this._labels) {
                            var t = this.createLabel();
                            t.applyOnClones = !0, this._disposers.push(t), this.initLabel(t), this._labels = new u.e(t), this._disposers.push(new u.c(this._labels))
                        }
                        return this._labels
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createDataItem = function() {
                    return new v
                }, e.prototype.initSlice = function(t) {}, e.prototype.initLabel = function(t) {
                    t.text = "{category}: {value.percent.formatNumber('#.0')}%", t.isMeasured = !1, t.padding(5, 5, 5, 5)
                }, e.prototype.initTick = function(t) {}, e.prototype.validateDataItems = function() {
                    this.colors.reset(), this.patterns && this.patterns.reset(), t.prototype.validateDataItems.call(this)
                }, e.prototype.validateDataElement = function(e) {
                    var i = e.slice;
                    i && (void 0 == i.fill ? this.patterns ? (g.hasValue(i.stroke) || (i.stroke = this.colors.next()), i.fill = this.patterns.next(), g.hasValue(i.fillOpacity) && (i.fill.backgroundOpacity = i.fillOpacity), i.stroke instanceof s.a && (i.fill.stroke = i.stroke, i.fill.fill = i.stroke)) : i.fill = this.colors.next() : this.colors.currentStep += this.colors.step, void 0 == i.stroke && (i.stroke = i.fill)), t.prototype.validateDataElement.call(this, e), i && e.bullets.each(function(t, e) {
                        void 0 == e.fill && (e.fill = i.fill), void 0 == e.stroke && (e.stroke = i.stroke)
                    }), this.updateLegendValue(e)
                }, e.prototype.validateData = function() {
                    t.prototype.validateData.call(this), this.chart && this.chart.feedLegend()
                }, e.prototype.arrangeLabels = function(t) {
                    for (var e = 0, i = t.length; e < i; e++) {
                        var n = t[e].label;
                        if (n) {
                            n.invalid && n.validate();
                            var r = n.measuredHeight;
                            n.visible || (r = 0), n.pixelY - r / 2 < -this.maxHeight / 2 && (n.y = -this.maxHeight / 2 + r / 2);
                            var a = this.getNextLabel(e + 1, t),
                                o = n.pixelY + r;
                            a && a.y < o && (a.y = o)
                        }
                    }
                }, e.prototype.arrangeLabels2 = function(t) {
                    for (var e = this.maxHeight / 2, i = t.length - 1; i >= 0; i--) {
                        var n = t[i].label;
                        if (n) {
                            n.invalid && n.validate();
                            var r = n.measuredHeight;
                            n.visible || (r = 0), i == t.length - 1 && (e += r / 2), n.pixelY + r > e && (n.y = e - r, e = n.y)
                        }
                    }
                }, e.prototype.getNextLabel = function(t, e) {
                    if (e.length >= t) {
                        var i = e[t];
                        if (i) return i.label && i.visible ? i.label : this.getNextLabel(t + 1, e)
                    }
                }, Object.defineProperty(e.prototype, "colors", {
                    get: function() {
                        return this.getPropertyValue("colors")
                    },
                    set: function(t) {
                        this.setPropertyValue("colors", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "patterns", {
                    get: function() {
                        return this.getPropertyValue("patterns")
                    },
                    set: function(t) {
                        this.setPropertyValue("patterns", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createLegendMarker = function(t, e) {
                    d.each(t.children.iterator(), function(i) {
                        var n = e.slice;
                        i.defaultState.properties.fill = n.fill, i.defaultState.properties.stroke = n.stroke, i.defaultState.properties.fillOpacity = n.fillOpacity, i.defaultState.properties.strokeOpacity = n.strokeOpacity, i.fill = n.fill, i.stroke = n.stroke, i.fillOpacity = n.fillOpacity, i.strokeOpacity = n.strokeOpacity, void 0 == i.fill && (i.__disabled = !0);
                        var r = t.dataItem;
                        r.color = n.fill, r.colorOrig = n.fill, i.addDisposer(n.events.on("propertychanged", function(t) {
                            "fill" == t.property && (i.__disabled = !1, i.isActive || (i.fill = n.fill), i.defaultState.properties.fill = n.fill, r.color = n.fill, r.colorOrig = n.fill), "stroke" == t.property && (i.isActive || (i.stroke = n.stroke), i.defaultState.properties.stroke = n.stroke)
                        }, void 0, !1))
                    })
                }, e.prototype.handleSliceScale = function(t) {
                    var e = this,
                        i = t.target.dataItem;
                    d.each(i.bullets.iterator(), function(t) {
                        var i = t[1];
                        e.positionBullet(i)
                    })
                }, e.prototype.handleSliceMove = function(t) {}, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.slices.template.copyFrom(e.slices.template), this.labels.template.copyFrom(e.labels.template), this.ticks.template.copyFrom(e.ticks.template), this.colors = e.colors.clone()
                }, Object.defineProperty(e.prototype, "alignLabels", {
                    get: function() {
                        return this.getPropertyValue("alignLabels")
                    },
                    set: function(t) {
                        this.setAlignLabels(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setAlignLabels = function(t) {
                    this.setPropertyValue("alignLabels", t, !0)
                }, Object.defineProperty(e.prototype, "ignoreZeroValues", {
                    get: function() {
                        return this.getPropertyValue("ignoreZeroValues")
                    },
                    set: function(t) {
                        this.setPropertyValue("ignoreZeroValues", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.updateLegendValue = function(t) {
                    if (t) {
                        var e = t.legendDataItem,
                            i = t.legendSettings;
                        e && i && i && (i.labelText && (e.label.text = i.labelText), i.itemLabelText && (e.label.text = i.itemLabelText), i.valueText && (e.valueLabel.text = i.valueText), i.itemValueText && (e.valueLabel.text = i.itemValueText))
                    }
                }, e
            }(r.a);
        p.c.registeredClasses.PercentSeries = b, p.c.registeredClasses.PercentSeriesDataItem = v, m.c.push({
            relevant: m.b.maybeXS,
            state: function(t, e) {
                if (t instanceof b) {
                    var i = t.states.create(e);
                    return t.labels.template.states.create(e).properties.disabled = !0, t.ticks.template.states.create(e).properties.disabled = !0, i
                }
                return null
            }
        })
    },
    AYiJ: function(t, e) {
        t.exports = function(t) {
            try {
                return {
                    error: !1,
                    value: t()
                }
            } catch (t) {
                return {
                    error: !0,
                    value: t
                }
            }
        }
    },
    AaJ4: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("aCit"),
            o = i("8ZqG"),
            s = i("MIZb"),
            l = i("TGuK"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "Grid", e.element = e.paper.add("path"), e.location = .5, e.isMeasured = !1, e.above = !1;
                    var i = new s.a;
                    return e.stroke = i.getFor("grid"), e.pixelPerfect = !0, e.strokeOpacity = .15, e.fill = Object(o.c)(), e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "location", {
                    get: function() {
                        return this.getPropertyValue("location")
                    },
                    set: function(t) {
                        this.setPropertyValue("location", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "above", {
                    get: function() {
                        return this.getPropertyValue("above")
                    },
                    set: function(t) {
                        this.setPropertyValue("above", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setDisabled = function(e) {
                    var i = t.prototype.setDisabled.call(this, e);
                    return this.axis && this.axis.invalidateDataItems(), i
                }, e
            }(r.a);
        a.c.registeredClasses.Grid = u, l.c.push({
            relevant: l.b.maybeXS,
            state: function(t, e) {
                if (t instanceof u) {
                    var i = t.states.create(e);
                    return i.properties.disabled = !0, i
                }
                return null
            }
        })
    },
    AzDz: function(t, e, i) {
        var n = i("Kg2n"),
            r = i("2xmP"),
            a = i("KslR")("match");
        t.exports = function(t) {
            var e;
            return n(t) && (void 0 !== (e = t[a]) ? !!e : "RegExp" == r(t))
        }
    },
    BAfC: function(t, e, i) {
        var n = i("vfdp"),
            r = i("Kg2n"),
            a = n.document,
            o = r(a) && r(a.createElement);
        t.exports = function(t) {
            return o ? a.createElement(t) : {}
        }
    },
    BEgH: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("aGXA"),
            a = i("Vs7R"),
            o = i("aCit"),
            s = i("MIZb"),
            l = i("hGwe"),
            u = i("Mtpk"),
            h = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "ZoomOutButton", e.padding(9, 9, 9, 9), e.showSystemTooltip = !0;
                    var i = new s.a,
                        n = e.background;
                    n.cornerRadius(20, 20, 20, 20), n.fill = i.getFor("primaryButton"), n.stroke = i.getFor("primaryButtonStroke"), n.strokeOpacity = 0, n.states.getKey("hover").properties.fill = i.getFor("primaryButtonHover"), n.states.getKey("down").properties.fill = i.getFor("primaryButtonActive");
                    var r = new a.a;
                    r.element = e.paper.add("path");
                    var o = l.moveTo({
                        x: 0,
                        y: 0
                    });
                    return o += l.lineTo({
                        x: 11,
                        y: 0
                    }), r.path = o, r.pixelPerfect = !0, r.padding(8, 3, 8, 3), r.stroke = i.getFor("primaryButtonText"), e.icon = r, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), u.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Zoom Out"))
                }, e
            }(r.a);
        o.c.registeredClasses.ZoomOutButton = h
    },
    BKHV: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("sub")
        }, {
            sub: function() {
                return r(this, "sub", "", "")
            }
        })
    },
    BmDP: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("qzbU"),
            a = i("hD5A"),
            o = i("aCit"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._label = new a.d, e._slice = new a.d, e.className = "PieTick", e.element = e.paper.add("polyline"), e._disposers.push(e._label), e._disposers.push(e._slice), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.slice,
                        i = this.label,
                        n = e.dataItem.component;
                    if (e && e.radius > 0 && i && i.text) {
                        var r = e.dx + e.slice.dx + e.pixelX + e.ix * e.radius * e.scale,
                            a = e.dy + e.slice.dy + e.pixelY + e.iy * e.radiusY * e.scale,
                            o = void 0,
                            s = void 0,
                            l = void 0,
                            u = void 0;
                        if (n.alignLabels) o = i.pixelX - this.length, s = i.pixelY, l = i.pixelX, u = s, "right" == i.horizontalCenter && (l = (o += 2 * this.length) - this.length);
                        else {
                            var h = i.pixelRadius(e.radius);
                            l = o = r + h * e.ix, u = s = a + h * e.iy
                        }
                        this.element.attr({
                            points: [r, a, o, s, l, u]
                        })
                    }
                }, Object.defineProperty(e.prototype, "slice", {
                    get: function() {
                        return this._slice.get()
                    },
                    set: function(t) {
                        this._slice.set(t, new a.c([t.events.on("transformed", this.invalidate, this), t.events.on("validated", this.invalidate, this)]))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "label", {
                    get: function() {
                        return this._label.get()
                    },
                    set: function(t) {
                        this._label.set(t, t.events.on("transformed", this.invalidate, this, !1))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        o.c.registeredClasses.PieTick = s
    },
    C6Lh: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return v
        });
        var n = i("m4/l"),
            r = i("ISWh"),
            a = i("Vs7R"),
            o = i("vMqJ"),
            s = i("hD5A"),
            l = i("0Mwj"),
            u = i("pR7v"),
            h = i("KknQ"),
            c = i("aCit"),
            p = i("MIZb"),
            d = i("85D4"),
            f = i("Wglt"),
            g = i("Mtpk"),
            y = i("hGwe"),
            m = i("tjMS"),
            v = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._chart = new s.d, e.className = "XYChartScrollbar";
                    var i = new p.a;
                    e.padding(0, 0, 0, 0);
                    var n = e.createChild(l.a);
                    n.shouldClone = !1, n.margin(0, 0, 0, 0), n.padding(0, 0, 0, 0), n.interactionsEnabled = !1, e._scrollbarChart = n, e._disposers.push(e._scrollbarChart), e.minHeight = 60, e.minWidth = 60;
                    var r = e.createChild(a.a);
                    r.shouldClone = !1, r.setElement(e.paper.add("path")), r.fill = i.getFor("background"), r.fillOpacity = .8, r.interactionsEnabled = !1, r.isMeasured = !1, r.toBack(), e._unselectedOverlay = r, e._disposers.push(e._unselectedOverlay), n.toBack(), e.background.cornerRadius(0, 0, 0, 0);
                    var o = e.thumb.background;
                    o.cornerRadius(0, 0, 0, 0), o.fillOpacity = 0, o.fill = i.getFor("background");
                    var u = o.states.getKey("hover");
                    u && (u.properties.fillOpacity = .2);
                    var h = o.states.getKey("down");
                    return h && (h.properties.fillOpacity = .4), e._disposers.push(e._chart), e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "series", {
                    get: function() {
                        return this._series || (this._series = new o.b, this._disposers.push(this._series.events.on("inserted", this.handleSeriesAdded, this, !1)), this._disposers.push(this._series.events.on("removed", this.handleSeriesRemoved, this, !1))), this._series
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleSeriesAdded = function(t) {
                    var e = this,
                        i = t.newValue;
                    if (i.xAxis && i.yAxis) {
                        var n = this.scrollbarChart;
                        n.zoomOutButton.disabled = !0, this.chart = i.chart, n.language.locale = this.chart.language.locale;
                        var r = !0,
                            a = !0;
                        f.each(this.series.iterator(), function(t) {
                            t != i && (t.xAxis == i.xAxis && e.scrollbarChart.xAxes.length > 0 && (r = !1), t.yAxis == i.yAxis && e.scrollbarChart.yAxes.length > 0 && (a = !1))
                        });
                        var o = new p.a,
                            s = i.clone();
                        if (r) {
                            var l = i.xAxis.clone();
                            if (n.xAxes.moveValue(l), l.title.disabled = !0, l.rangeChangeDuration = 0, (b = l.renderer).ticks.template.disabled = !0, b.inside = !0, b.labels.template.inside = !0, b.line.strokeOpacity = 0, b.minLabelPosition = .02, b.maxLabelPosition = .98, b.line.disabled = !0, b.axisFills.template.disabled = !0, b.baseGrid.disabled = !0, b.grid.template.strokeOpacity = .05, b.minWidth = void 0, b.minHeight = void 0, b.padding(0, 0, 0, 0), b.chart = n, b.margin(0, 0, 0, 0), l.width = Object(m.c)(100), b.labels.template.fillOpacity = .5, l.maxZoomCount = void 0, l.minZoomCount = void 0, l instanceof h.a) {
                                var c = l,
                                    y = i.xAxis;
                                l.groupCount = 5 * y.groupCount, this._disposers.push(c.clonedFrom.events.on("extremeschanged", function() {
                                    g.isNumber(c.clonedFrom.minDefined) && (c.min = c.clonedFrom.minDefined), g.isNumber(c.clonedFrom.maxDefined) && (c.max = c.clonedFrom.maxDefined)
                                }, void 0, !1))
                            } else if (l instanceof u.a) {
                                var v = l;
                                g.isNumber(v.clonedFrom.minDefined) || (v.min = void 0), g.isNumber(v.clonedFrom.maxDefined) || (v.max = void 0), this._disposers.push(v.clonedFrom.events.on("extremeschanged", function() {
                                    g.isNumber(v.clonedFrom.minDefined) && (v.min = v.clonedFrom.min), g.isNumber(v.clonedFrom.maxDefined) && (v.max = v.clonedFrom.max)
                                }, void 0, !1))
                            }
                            s.xAxis = l
                        } else this.scrollbarChart.xAxes.each(function(t) {
                            t.clonedFrom == i.xAxis && (s.xAxis = t)
                        });
                        if (a) {
                            var b, x = i.yAxis.clone();
                            if (n.yAxes.moveValue(x), x.title.disabled = !0, x.rangeChangeDuration = 0, (b = x.renderer).ticks.template.disabled = !0, b.inside = !0, b.labels.template.inside = !0, b.line.strokeOpacity = 0, b.minLabelPosition = .02, b.maxLabelPosition = .98, b.line.disabled = !0, b.axisFills.template.disabled = !0, b.grid.template.stroke = o.getFor("background"), b.baseGrid.disabled = !0, b.grid.template.strokeOpacity = .05, b.minWidth = void 0, b.minHeight = void 0, b.chart = n, b.padding(0, 0, 0, 0), b.margin(0, 0, 0, 0), x.height = Object(m.c)(100), b.labels.template.fillOpacity = .5, s.yAxis = x, x.maxZoomCount = void 0, x.minZoomCount = void 0, x instanceof h.a) {
                                var _ = x;
                                y = i.yAxis;
                                x.groupCount = 5 * y.groupCount, this._disposers.push(_.clonedFrom.events.on("extremeschanged", function() {
                                    g.isNumber(_.clonedFrom.minDefined) && (_.min = _.clonedFrom.minDefined), g.isNumber(_.clonedFrom.maxDefined) && (_.max = _.clonedFrom.maxDefined)
                                }))
                            } else if (x instanceof u.a) {
                                var P = x;
                                g.isNumber(P.clonedFrom.minDefined) || (P.min = void 0), g.isNumber(P.clonedFrom.maxDefined) || (P.max = void 0), this._disposers.push(P.clonedFrom.events.on("extremeschanged", function() {
                                    g.isNumber(P.clonedFrom.minDefined) && (P.min = P.clonedFrom.minDefined), g.isNumber(P.clonedFrom.maxDefined) && (P.max = P.clonedFrom.maxDefined)
                                }))
                            }
                        } else this.scrollbarChart.yAxes.each(function(t) {
                            t.clonedFrom == i.yAxis && (s.yAxis = t)
                        });
                        s.rangeChangeDuration = 0, s.interpolationDuration = 0, s.defaultState.transitionDuration = 0, s.showOnInit = !1, this._disposers.push(s.events.on("validated", this.zoomOutAxes, this, !1)), this._disposers.push(i.events.on("datavalidated", function() {
                            s.data != i.data && (s.data = i.data)
                        }, void 0, !1)), s.defaultState.properties.visible = !0, s.filters.push(new d.a), n.series.push(s), this.updateByOrientation()
                    }
                }, e.prototype.updateByOrientation = function() {
                    var t = this;
                    this._scrollbarChart && (f.each(this._scrollbarChart.xAxes.iterator(), function(e) {
                        var i = e.renderer;
                        "vertical" == t.orientation ? (i.grid.template.disabled = !0, i.labels.template.disabled = !0, i.minGridDistance = 10) : (i.grid.template.disabled = !1, i.labels.template.disabled = !1, i.minGridDistance = e.clonedFrom.renderer.minGridDistance)
                    }), f.each(this._scrollbarChart.yAxes.iterator(), function(e) {
                        var i = e.renderer;
                        "horizontal" == t.orientation ? (i.grid.template.disabled = !0, i.labels.template.disabled = !0, i.minGridDistance = 10) : (i.grid.template.disabled = !1, i.labels.template.disabled = !1, i.minGridDistance = e.clonedFrom.renderer.minGridDistance)
                    }))
                }, e.prototype.handleSeriesRemoved = function(t) {
                    var e = t.oldValue,
                        i = this.scrollbarChart;
                    i.series.each(function(t) {
                        t && t.clonedFrom == e && i.series.removeValue(t)
                    }), 0 == i.series.length && (i.xAxes.clear(), i.yAxes.clear());
                    try {
                        e.events.off("validated", this.zoomOutAxes, this)
                    } catch (t) {}
                }, Object.defineProperty(e.prototype, "scrollbarChart", {
                    get: function() {
                        return this._scrollbarChart
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "chart", {
                    get: function() {
                        return this._chart.get()
                    },
                    set: function(t) {
                        this._chart.get() !== t && (this._chart.set(t, t.events.on("datavalidated", this.handleDataChanged, this, !1)), this.handleDataChanged(), this._scrollbarChart.dataProvider = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "unselectedOverlay", {
                    get: function() {
                        return this._unselectedOverlay
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleDataChanged = function() {
                    this.chart.data != this.scrollbarChart.data ? this.scrollbarChart.data = this.chart.data : this.scrollbarChart.invalidateRawData()
                }, e.prototype.zoomOutAxes = function() {
                    var t = this.scrollbarChart;
                    f.each(t.xAxes.iterator(), function(t) {
                        t.zoom({
                            start: 0,
                            end: 1
                        }, !0, !0)
                    }), f.each(t.yAxes.iterator(), function(t) {
                        t.zoom({
                            start: 0,
                            end: 1
                        }, !0, !0)
                    })
                }, e.prototype.updateThumb = function() {
                    if (t.prototype.updateThumb.call(this), this._unselectedOverlay) {
                        var e = this.thumb,
                            i = e.pixelX || 0,
                            n = e.pixelY || 0,
                            r = e.pixelWidth || 0,
                            a = e.pixelHeight || 0,
                            o = "";
                        "horizontal" == this.orientation ? (o = y.rectToPath({
                            x: -1,
                            y: 0,
                            width: i,
                            height: a
                        }), o += y.rectToPath({
                            x: i + r,
                            y: 0,
                            width: (this.pixelWidth || 0) - i - r,
                            height: a
                        })) : (o = y.rectToPath({
                            x: 0,
                            y: 0,
                            width: r,
                            height: n
                        }), o += y.rectToPath({
                            x: 0,
                            y: n + a,
                            width: r,
                            height: (this.pixelHeight || 0) - n - a
                        })), this._unselectedOverlay.path = o
                    }
                }, e.prototype.processConfig = function(e) {
                    if (e && g.hasValue(e.series) && g.isArray(e.series))
                        for (var i = 0, n = e.series.length; i < n; i++) {
                            var r = e.series[i];
                            if (g.hasValue(r) && g.isString(r)) {
                                if (!this.map.hasKey(r)) throw Error("XYChartScrollbar error: Series with id `" + r + "` does not exist.");
                                e.series[i] = this.map.getKey(r)
                            }
                        }
                    t.prototype.processConfig.call(this, e)
                }, e
            }(r.a);
        c.c.registeredClasses.XYChartScrollbar = v
    },
    C6dT: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return x
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("ux7t"),
            o = i("vMqJ"),
            s = i("hD5A"),
            l = i("+qIf"),
            u = i("zhwk"),
            h = i("GtDR"),
            c = i("tjMS"),
            p = i("aCit"),
            d = i("MIZb"),
            f = i("Wglt"),
            g = i("hJ5i"),
            y = i("Gg2j"),
            m = i("Mtpk"),
            v = i("Rpw0"),
            b = i("Q4nc"),
            x = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._childrenByLayout = [], e._childrenDisposers = new l.a, e.hasFocused = !1, e.setStateOnSprites = [], e.layoutInvalid = !1, e._absoluteWidth = 0, e._absoluteHeight = 0, e._shouldBeReady = [], e._tapToActivate = !1, e.tapTimeout = 3e3, e.className = "Container", e._element = e.paper.addGroup("g"), e.group.add(e.element), e.setPropertyValue("pixelPerfect", !1), e.setPropertyValue("layout", "absolute"), e.setPropertyValue("fixedWidthGrid", !1), e.setPropertyValue("verticalCenter", "none"), e.setPropertyValue("horizontalCenter", "none"), e._positionPrecision = 4, e._disposers.push(new l.b(e._childrenDisposers)), e.children.events.on("inserted", e.handleChildAdded, e), e.children.events.on("removed", e.handleChildRemoved, e), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.handleChildAdded = function(t) {
                    this.processChild(t.newValue)
                }, e.prototype.processChild = function(t) {
                    try {
                        this._childrenDisposers.insertKey(t.uid, new s.c([t.events.on("transformed", this.handleChildTransform, this), t.events.on("zIndexChanged", this.sortAndAdd, this)]))
                    } catch (t) {}
                    this.element && this.element.add(t.group);
                    t.parent = this, t.paper = this.paper, this.dispatchImmediately("childadded", {
                        type: "childadded",
                        newValue: t
                    }), this.invalidate()
                }, e.prototype.sortAndAdd = function() {
                    this.sortChildren(), this.addChildren()
                }, e.prototype.handleChildRemoved = function(t) {
                    var e = t.oldValue;
                    (this._childrenDisposers.removeKey(e.uid), this.element) && this.element.removeElement(e.group);
                    e.isMeasured && this.invalidateLayout(), this.dispatchImmediately("childremoved", {
                        type: "childremoved",
                        oldValue: e
                    })
                }, e.prototype.handleChildTransform = function(t) {
                    t.target.isMeasured && this.invalidateLayout()
                }, e.prototype.invalidateLayout = function() {
                    this.layoutInvalid || this.disabled || this.isTemplate || "none" == this.layout || this.__disabled || (this.layoutInvalid = !0, p.c.addToInvalidLayouts(this), v.b.requestFrame())
                }, e.prototype.invalidate = function() {
                    t.prototype.invalidate.call(this), this.invalidateLayout()
                }, e.prototype.deepInvalidate = function() {
                    t.prototype.invalidate.call(this), g.each(this._childrenByLayout, function(t) {
                        t instanceof e ? t.deepInvalidate() : t.invalidate()
                    }), this.invalidateLayout()
                }, Object.defineProperty(e.prototype, "children", {
                    get: function() {
                        return this._children || (this._children = new o.b), this._children
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minWidth", {
                    get: function() {
                        return this.getPropertyValue("minWidth")
                    },
                    set: function(t) {
                        this.setPropertyValue("minWidth", t) && this.invalidateLayout()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minHeight", {
                    get: function() {
                        return this.getPropertyValue("minHeight")
                    },
                    set: function(t) {
                        this.setPropertyValue("minHeight", t) && this.invalidateLayout()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.removeElement = function() {}, e.prototype.sortChildren = function() {
                    var t = this;
                    if (this._childrenByLayout = [], "none" != this.layout && "absolute" != this.layout && this.layout) {
                        var e = [],
                            i = [];
                        f.each(this.children.iterator(), function(n) {
                            "horizontal" == t.layout || "grid" == t.layout ? m.isNumber(n.percentWidth) ? i.push(n) : e.push(n) : "vertical" == t.layout && m.isNumber(n.percentHeight) ? i.push(n) : e.push(n)
                        }), this._childrenByLayout = e.concat(i)
                    } else this._childrenByLayout = this.children.values;
                    this.calculateRelativeSize()
                }, e.prototype.calculateRelativeSize = function() {
                    var t = this,
                        e = 0,
                        i = 0;
                    g.each(this._childrenByLayout, function(t) {
                        t.isMeasured && (m.isNumber(t.percentWidth) && (e += t.percentWidth), m.isNumber(t.percentHeight) && (i += t.percentHeight))
                    }), g.each(this._childrenByLayout, function(n) {
                        n.isMeasured && ("horizontal" == t.layout && (m.isNumber(n.percentWidth) && (n.relativeWidth = n.percentWidth / e), m.isNumber(n.percentHeight) && (n.relativeHeight = n.percentHeight / 100)), "vertical" == t.layout && (m.isNumber(n.percentHeight) && (n.relativeHeight = n.percentHeight / i), m.isNumber(n.percentWidth) && (n.relativeWidth = n.percentWidth / 100)), "grid" == t.layout && (m.isNumber(n.percentHeight) && (n.relativeHeight = n.percentHeight / 100), m.isNumber(n.percentWidth) && (n.relativeWidth = n.percentWidth / 100))), "absolute" != t.layout && n.isMeasured || (m.isNumber(n.percentWidth) && (n.relativeWidth = n.percentWidth / 100), m.isNumber(n.percentHeight) && (n.relativeHeight = n.percentHeight / 100))
                    })
                }, e.prototype.addChildren = function() {
                    if (this.element) {
                        var t = g.copy(this.children.values),
                            e = t.map(function(t, e) {
                                return {
                                    idx: e,
                                    data: t
                                }
                            });
                        e.sort(function(t, e) {
                            var i = t.data.zIndex || 0,
                                n = e.data.zIndex || 0;
                            return i < n ? -1 : i > n ? 1 : t.idx - e.idx
                        }), t = e.map(function(t) {
                            return t.data
                        });
                        var i = this.element,
                            n = !0;
                        if (i.node && i.node.childNodes)
                            for (var r = 0, a = i.node.childNodes.length; r < a; r++)
                                if (i.node.childNodes[r] != t[r].group.node) {
                                    n = !1;
                                    break
                                } n || (g.each(t, function(t) {
                            t.group && i.add(t.group)
                        }), this._background && this.group.addToBack(this._background.group), this.invalidateLayout())
                    }
                }, e.prototype.createChild = function(t) {
                    var e = new t;
                    return e.parent = this, e
                }, e.prototype.removeChildren = function() {
                    for (; this.children.length > 0;) {
                        var t = this.children.getIndex(0);
                        t.parent = void 0, this.children.removeValue(t)
                    }
                }, e.prototype.disposeChildren = function() {
                    for (; this.children.length > 0;) {
                        var t = this.children.getIndex(0);
                        t.dispose(), this.children.removeValue(t)
                    }
                }, Object.defineProperty(e.prototype, "background", {
                    get: function() {
                        return this._background || (this._background = this.createBackground(), this.processBackground()), this._background
                    },
                    set: function(t) {
                        this._background && this.background != t && this.removeDispose(this._background), t && (this._background = t, this._disposers.push(t), this.processBackground())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleGlobalScale = function() {
                    t.prototype.handleGlobalScale.call(this), this.children.each(function(t) {
                        t.handleGlobalScale()
                    })
                }, e.prototype.createBackground = function() {
                    return new h.a
                }, e.prototype.processBackground = function() {
                    var t = this._background;
                    t && (t.isMeasured = !1, this._background.fill = (new d.a).getFor("background"), t.parent = this, t.isMeasured = !1, this.children.removeValue(t), this._disposers.push(t), this.group.addToBack(this._background.group))
                }, e.prototype.validateLayout = function() {
                    var t = this;
                    p.c.removeFromInvalidLayouts(this), this.layoutInvalid = !1, this._availableWidth = this.innerWidth, this._availableHeight = this.innerHeight;
                    var e = 0,
                        i = 0,
                        n = !0;
                    this.children && (this.sortChildren(), g.each(this._childrenByLayout, function(r) {
                        var a, o;
                        if (m.isNumber(r.relativeWidth) ? (a = y.round(t._availableWidth * r.relativeWidth, 2), "horizontal" == t.layout && (a -= r.pixelMarginRight + r.pixelMarginLeft)) : "horizontal" == t.layout && r.invalid && r.validate(), m.isNumber(r.relativeHeight) ? (o = y.round(t._availableHeight * r.relativeHeight, 2), "vertical" == t.layout && (o -= r.pixelMarginTop + r.pixelMarginBottom)) : "vertical" == t.layout && r.invalid && r.validate(), 0 == r.invalid) {
                            if (m.isNumber(r.relativeWidth) && (r.maxWidth = a), m.isNumber(r.relativeHeight) && (r.maxHeight = o), r.isMeasured) {
                                "horizontal" == t.layout && (m.isNumber(r.percentWidth) || r.measuredWidth > 0 && (t._availableWidth -= r.measuredWidth + r.pixelMarginLeft + r.pixelMarginRight)), "vertical" == t.layout && (m.isNumber(r.percentHeight) || r.measuredHeight > 0 && (t._availableHeight -= r.measuredHeight + r.pixelMarginTop + r.pixelMarginBottom));
                                var s = r.measuredWidth,
                                    l = r.measuredHeight;
                                "none" != r.align && (s += r.pixelMarginLeft + r.pixelMarginRight), "none" != r.valign && (l += r.pixelMarginTop + r.pixelMarginBottom), e = Math.max(e, s), i = Math.max(i, l)
                            }
                        } else r.isMeasured && (m.isNumber(r.relativeWidth) && r.maxWidth != a && (r.maxWidth = a, n = !1), m.isNumber(r.relativeHeight) && r.maxHeight != o && (r.maxHeight = o, n = !1))
                    })), this._absoluteWidth = e, this._absoluteHeight = i, n && this.arrange()
                }, e.prototype.arrange = function() {
                    var t, e, i, n, r, a, o, s, l, u, h, p = this,
                        d = this.children,
                        v = 0,
                        b = 0,
                        x = y.max(this.innerWidth, this._absoluteWidth),
                        _ = y.max(this.innerHeight, this._absoluteHeight),
                        P = this.pixelPaddingLeft,
                        w = this.pixelPaddingRight,
                        O = this.pixelPaddingTop,
                        T = this.pixelPaddingBottom,
                        S = 0,
                        C = 0,
                        I = 0,
                        k = 0,
                        D = [],
                        j = [],
                        V = this.maxWidth,
                        A = this.maxHeight,
                        M = this.minWidth,
                        F = this.minHeight,
                        E = g.copy(d.values);
                    if (this.reverseOrder && E.reverse(), "grid" == this.layout) {
                        a = V, r = 1;
                        for (var R = 0, N = E.length; R < N; R++) {
                            if ((B = E[R]).isMeasured && !B.disabled && !B.__disabled) {
                                var L = B.measuredWidth;
                                L < a && (a = L), L > r && (r = L)
                            }
                        }
                        a = y.fitToRange(a, 1, V), r = y.fitToRange(r, 1, V), o = this.fixedWidthGrid ? V / r : V / a, o = y.max(1, Math.floor(o)), o = y.min(this.maxColumns, o), D = this.getColumnWidth(E, o, r)
                    }
                    for (R = 0, N = E.length; R < N; R++) {
                        var B;
                        if (!(B = E[R]).isMeasured || B.disabled || B.__disabled) B.validatePosition();
                        else {
                            var U = void 0,
                                W = void 0,
                                Y = B.pixelMarginLeft,
                                H = B.pixelMarginRight,
                                z = B.pixelMarginTop,
                                X = B.pixelMarginBottom,
                                G = B.measuredWidth,
                                K = B.measuredHeight,
                                q = void 0,
                                Z = void 0,
                                Q = void 0,
                                J = void 0;
                            switch (this.layout) {
                                case "none":
                                    break;
                                case "absolute":
                                    switch (B.align) {
                                        case "left":
                                            U = Y - B.maxLeft;
                                            break;
                                        case "center":
                                            U = (x - G) / 2 - B.maxLeft;
                                            break;
                                        case "right":
                                            U = x - H - B.maxRight;
                                            break;
                                        default:
                                            B.x instanceof c.a || (U = B.pixelX)
                                    }
                                    switch (B.valign) {
                                        case "top":
                                            W = z - B.maxTop;
                                            break;
                                        case "middle":
                                            W = (_ - K) / 2 - B.maxTop;
                                            break;
                                        case "bottom":
                                            W = _ - X - B.maxBottom;
                                            break;
                                        default:
                                            B.y instanceof c.a || (W = B.pixelY)
                                    }
                                    break;
                                case "vertical":
                                    switch (B.align) {
                                        case "left":
                                            U = Y - B.maxLeft;
                                            break;
                                        case "center":
                                            U = (x - G) / 2 - B.maxLeft;
                                            break;
                                        case "right":
                                            U = x - H - B.maxRight;
                                            break;
                                        default:
                                            U = B.pixelX
                                    }
                                    C = (W = C + z - B.maxTop) + B.maxBottom + X;
                                    break;
                                case "horizontal":
                                    switch (B.valign) {
                                        case "top":
                                            W = z - B.maxTop;
                                            break;
                                        case "middle":
                                            W = (_ - K) / 2 - B.maxTop;
                                            break;
                                        case "bottom":
                                            W = _ - X - B.maxBottom;
                                            break;
                                        default:
                                            W = B.pixelY
                                    }
                                    S = (U = S + Y - B.maxLeft) + B.maxRight + H;
                                    break;
                                case "grid":
                                    switch (U = S + Y - B.maxLeft, B.valign) {
                                        case "top":
                                            W = C + z - B.maxTop;
                                            break;
                                        case "middle":
                                            W = C + (_ - K) / 2 - B.maxTop;
                                            break;
                                        case "bottom":
                                            W = C + _ - X - B.maxBottom;
                                            break;
                                        default:
                                            W = C - B.maxTop
                                    }
                                    S += D[k], j[I] = y.max(j[I], K);
                                    var $ = D[++k];
                                    if (m.isNumber($) || ($ = r), S > y.min(this.innerWidth, V) - $ + 1 && k < o) {
                                        o = k, S = 0, C = 0, I = 0, k = 0, D = this.getColumnWidth(E, o, r), j = [], R = -1;
                                        continue
                                    }
                                    k >= o && (k = 0, C += j[I], I++, S = 0)
                            }
                            "none" !== this.layout && (B.moveTo({
                                x: U,
                                y: W
                            }), q = U + B.maxLeft - Y, Z = U + B.maxRight + H, Q = W + B.maxTop - z, J = W + B.maxBottom + X, (Z > e || !m.isNumber(e)) && (e = Z), (q < t || !m.isNumber(t)) && (t = q), (Q < i || !m.isNumber(i)) && (i = Q), (J > n || !m.isNumber(n)) && (n = J), (Z > l || !m.isNumber(l)) && (l = Z), (q < s || !m.isNumber(s)) && (s = q), (Q < u || !m.isNumber(u)) && (u = Q), (J > h || !m.isNumber(h)) && (h = h))
                        }
                    }
                    if ("none" == this.layout) {
                        var tt = this.bbox;
                        t = tt.x, e = tt.x + tt.width, i = tt.y, n = tt.y + tt.height
                    }
                    m.isNumber(t) || (t = 0, s = 0), m.isNumber(e) || (l = e = this._availableWidth), m.isNumber(i) || (i = 0, u = 0), m.isNumber(n) || (h = n = this._availableHeight), m.isNumber(u) || (u = 0), m.isNumber(h) || (h = u), m.isNumber(s) || (s = 0), m.isNumber(l) || (l = s), v = e - t, b = n - i, m.isNumber(this.relativeWidth) && (t = 0, e = v = V - P - w), m.isNumber(this.relativeHeight) && (i = 0, n = b = A - O - T), m.isNumber(this._pixelWidth) && (t = 0, v = this._pixelWidth - P - w), m.isNumber(M) && v < M && (t = 0, v = this.minWidth - P - w), m.isNumber(this._pixelHeight) && (i = 0, b = this._pixelHeight - O - T), m.isNumber(F) && b < F && (i = 0, b = F - O - T);
                    var et = l - s,
                        it = h - u;
                    if ("none" != this.layout && (this.contentAlign || this.contentValign) && d.length > 0) {
                        var nt, rt, at = v,
                            ot = b;
                        at < et && (at = et), ot < it && (ot = it), "center" == this.contentAlign && (nt = (at - et) / 2), "right" == this.contentAlign && (nt = at - et), "middle" == this.contentValign && (rt = (ot - it) / 2), "bottom" == this.contentValign && (rt = ot - it), m.isNumber(nt) && f.each(d.iterator(), function(t) {
                            var e = t.maxLeft,
                                i = nt;
                            "horizontal" == p.layout && (t.x = t.pixelX + i), "grid" == p.layout && (t.x = t.pixelX + i), "vertical" == p.layout && (i += t.pixelMarginLeft, "none" == t.align && (t.x = i - e)), "absolute" == p.layout && (i += t.pixelMarginLeft, "none" == t.align && (t.x = i - e))
                        }), m.isNumber(rt) && f.each(d.iterator(), function(t) {
                            var e = t.maxTop,
                                i = rt;
                            "horizontal" == p.layout && (i += t.pixelMarginTop, "none" == t.valign && (t.y = i - e)), "grid" == p.layout && (i += t.pixelMarginTop, t.y = i - e), "vertical" == p.layout && (t.y = t.pixelY + i), "absolute" == p.layout && (i += t.pixelMarginTop, "none" == t.valign && (t.y = i - e))
                        })
                    }
                    var st = this.bbox;
                    v = y.max(v, M), b = y.max(b, F), this.contentWidth = v, this.contentHeight = b, v = y.min(v, V), b = y.min(b, A), this._bbox = {
                        x: t,
                        y: i,
                        width: v,
                        height: b
                    };
                    var lt = this.maxLeft,
                        ut = this.maxTop,
                        ht = this.maxBottom,
                        ct = this.maxRight;
                    if (this.measure(), (lt != this.maxLeft || ct != this.maxRight || ut != this.maxTop || ht != this.maxBottom) && this.events.isEnabled("transformed")) {
                        var pt = {
                            type: "transformed",
                            target: this
                        };
                        st && (pt.dummyData = st.width + " " + v + "  " + st.height + " " + b), this.events.dispatchImmediately("transformed", pt)
                    }
                    this.dispatchImmediately("layoutvalidated")
                }, e.prototype.updateCenter = function() {
                    t.prototype.updateCenter.call(this), this.updateBackground()
                }, e.prototype.updateBackground = function() {
                    var t = this._background;
                    t && (t.x = this.maxLeft, t.y = this.maxTop, t.width = this.maxRight - this.maxLeft, t.height = this.maxBottom - this.maxTop)
                }, e.prototype.getColumnWidth = function(t, e, i) {
                    var n = this,
                        r = [],
                        a = 0;
                    return g.each(t, function(t) {
                        !t.isMeasured || t.disabled || t.__disabled || (n.fixedWidthGrid ? r[a] = i : r[a] = y.max(r[a], t.measuredWidth + t.pixelMarginRight + t.pixelMarginLeft), ++a == e && (a = 0))
                    }), r
                }, Object.defineProperty(e.prototype, "layout", {
                    get: function() {
                        return this.getPropertyValue("layout")
                    },
                    set: function(t) {
                        this.setPropertyValue("layout", t) && this.invalidateLayout()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "contentValign", {
                    get: function() {
                        return this.getPropertyValue("contentValign")
                    },
                    set: function(t) {
                        this.setPropertyValue("contentValign", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "contentAlign", {
                    get: function() {
                        return this.getPropertyValue("contentAlign")
                    },
                    set: function(t) {
                        this.setPropertyValue("contentAlign", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fixedWidthGrid", {
                    get: function() {
                        return this.getPropertyValue("fixedWidthGrid")
                    },
                    set: function(t) {
                        this.setPropertyValue("fixedWidthGrid", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxColumns", {
                    get: function() {
                        return this.getPropertyValue("maxColumns")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxColumns", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "reverseOrder", {
                    get: function() {
                        return this.getPropertyValue("reverseOrder")
                    },
                    set: function(t) {
                        this.setPropertyValue("reverseOrder", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "setStateOnChildren", {
                    get: function() {
                        return this.getPropertyValue("setStateOnChildren")
                    },
                    set: function(t) {
                        this.setPropertyValue("setStateOnChildren", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.fitsToBounds = function(t) {
                    var e = t.x,
                        i = t.y;
                    return e >= -.5 && e <= this.pixelWidth + .5 && i >= -.5 && i <= this.pixelHeight + .5
                }, e.prototype.copyFrom = function(e) {
                    var i = this;
                    t.prototype.copyFrom.call(this, e), this.layout = e.layout, this.setStateOnChildren = e.setStateOnChildren, e._background && (this.background = e._background.clone(), this.background.copyFrom(e._background)), f.each(e.children.iterator(), function(t) {
                        t.shouldClone && (t.clone().parent = i)
                    })
                }, Object.defineProperty(e.prototype, "preloader", {
                    get: function() {
                        var t = this._preloader;
                        return t || (this.parent ? this.parent.preloader : void 0)
                    },
                    set: function(t) {
                        this._preloader && this.removeDispose(this._preloader), this._preloader = t, t && (t.parent = this.tooltipContainer, this._disposers.push(t))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setPaper = function(e) {
                    var i = this,
                        n = t.prototype.setPaper.call(this, e);
                    return n && (this._background && (this._background.paper = e, this._background.topParent = this.topParent), this.children.each(function(t) {
                        t.setPaper(e), t.topParent = i.topParent
                    })), n
                }, e.prototype.removeFromInvalids = function() {
                    t.prototype.removeFromInvalids.call(this), p.c.removeFromInvalidLayouts(this)
                }, e.prototype.setDataItem = function(e) {
                    this._dataItem != e && (f.each(this.children.iterator(), function(t) {
                        t.dataItem = e
                    }), this._background && (this._background.dataItem = e)), t.prototype.setDataItem.call(this, e)
                }, e.prototype.measureElement = function() {
                    this.disabled || this.isTemplate || "none" == this.layout || this.__disabled || this.validateLayout()
                }, Object.defineProperty(e.prototype, "fontFamily", {
                    get: function() {
                        return this.getPropertyValue("fontFamily")
                    },
                    set: function(t) {
                        this.setPropertyValue("fontFamily", t, !0) && (this.setSVGAttribute({
                            "font-family": t
                        }), this.invalidateLabels())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fontSize", {
                    get: function() {
                        return this.getPropertyValue("fontSize")
                    },
                    set: function(t) {
                        this.setPropertyValue("fontSize", t, !0) && (this.setSVGAttribute({
                            "font-size": t
                        }), this.invalidateLabels())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.invalidateLabels = function() {
                    this.children.each(function(t) {
                        t.hardInvalidate ? t.hardInvalidate() : t instanceof e && t.invalidateLabels()
                    })
                }, Object.defineProperty(e.prototype, "fontWeight", {
                    get: function() {
                        return this.getPropertyValue("fontWeight")
                    },
                    set: function(t) {
                        this.setPropertyValue("fontWeight", t), this.setSVGAttribute({
                            "font-weight": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "textDecoration", {
                    get: function() {
                        return this.getPropertyValue("textDecoration")
                    },
                    set: function(t) {
                        this.setPropertyValue("textDecoration", t), this.setSVGAttribute({
                            "text-decoration": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.dispose = function() {
                    this._background && this._background.dispose(), this._shouldBeReady = [], this.disposeChildren(), t.prototype.dispose.call(this)
                }, e.prototype.setState = function(e, i, n) {
                    var r = e;
                    return e instanceof a.a && (r = e.name), this.setStateOnChildren && f.each(this.children.iterator(), function(t) {
                        t.setState(r, i, n), "active" != r && (t.isActive = !1)
                    }), this._background && this._background.setState(r), this.setStateOnSprites.length && g.each(this.setStateOnSprites, function(t) {
                        t.setState(r, i, n)
                    }), t.prototype.setState.call(this, e, i, n)
                }, e.prototype.setActive = function(e) {
                    t.prototype.setActive.call(this, e), this._background && (this._background.isActive = e)
                }, e.prototype.dispatchReady = function() {
                    var e = this;
                    if (!this.isReady() && !this.isDisposed()) {
                        var i = !0;
                        f.eachContinue(this.children.iterator(), function(t) {
                            return !!(t.__disabled || t.disabled || t.isReady()) || (i = !1, !1)
                        }), g.eachContinue(this._shouldBeReady, function(t) {
                            return !!(t.__disabled || t.disabled || t.isReady()) || (i = !1, !1)
                        }), i ? t.prototype.dispatchReady.call(this) : p.c.events.once("exitframe", function() {
                            e.dispatchReady(), v.b.requestFrame()
                        }, void 0, !1)
                    }
                }, e.prototype._systemUpdate = function(e) {
                    this.children.each(function(t) {
                        t.invalid && (t._systemCheckIfValidate() ? t.dataItem && t.dataItem.component && t.dataItem.component.dataInvalid ? e.push(t) : t.validate() : e.push(t))
                    }), t.prototype._systemUpdate.call(this, e)
                }, e.prototype._systemValidatePositions = function() {
                    this.children.each(function(t) {
                        t.positionInvalid && t.validatePosition()
                    }), t.prototype._systemValidatePositions.call(this)
                }, e.prototype._systemValidateLayouts = function() {
                    this.layoutInvalid && !this.isDisposed() && this.validateLayout()
                }, Object.defineProperty(e.prototype, "tapToActivate", {
                    get: function() {
                        return this._tapToActivate
                    },
                    set: function(t) {
                        this._tapToActivate != t && this.setTapToActivate(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setTapToActivate = function(t) {
                    var e = this;
                    this._tapToActivate = t, this.interactions.isTouchProtected = t, t && this.interactions.setEventDisposer("container-tapToActivate", t, function() {
                        return new s.c([e.events.on("hit", e.handleTapToActivate, e, !1), e.events.on("down", e.initTapTimeout, e, !1), e.events.on("track", e.initTapTimeout, e, !1), Object(u.b)().body.events.on("down", function(t) {
                            Object(u.b)().isLocalElement(t.pointer, e.paper.svg, e.uid) || e.handleTapToActivateDeactivation()
                        }, e, !1)])
                    }), Object(u.b)()
                }, e.prototype.handleTapToActivate = function() {
                    this.interactions.isTouchProtected = !1, this.initTapTimeout()
                }, e.prototype.handleTapToActivateDeactivation = function() {
                    this.interactions.isTouchProtected = !0
                }, e.prototype.initTapTimeout = function() {
                    var t = this;
                    this._tapToActivateTimeout && this._tapToActivateTimeout.dispose(), this.tapToActivate && !this.interactions.isTouchProtected && this.tapTimeout && (this._tapToActivateTimeout = this.setTimeout(function() {
                        t.handleTapToActivateDeactivation()
                    }, this.tapTimeout))
                }, e.prototype.hasLicense = function() {
                    if (b.a.commercialLicense) return !0;
                    for (var t = 0; t < b.a.licenses.length; t++)
                        if (b.a.licenses[t].match(/^CH.{5,}/i)) return !0;
                    return !1
                }, e
            }(r.a);
        p.c.registeredClasses.Container = x
    },
    C84C: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("ohjg"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "LightenFilter", e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({
                        type: "matrix"
                    }), e.filterPrimitives.push(e.feColorMatrix), e.lightness = 0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "lightness", {
                    get: function() {
                        return this.properties.lightness
                    },
                    set: function(t) {
                        this.properties.lightness = t;
                        var e = t + 1;
                        this.feColorMatrix.attr({
                            values: e + " 0 0 0 0 0 " + e + " 0 0 0 0 0 " + e + " 0 0 0 0 0 1 0"
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.LightenFilter = o
    },
    CNF5: function(t, e) {
        t.exports = {}
    },
    CTEm: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return p
        });
        var n = i("m4/l"),
            r = i("P/bD"),
            a = i("Tjl+"),
            o = i("MipW"),
            s = i("aCit"),
            l = i("ScGY"),
            u = i("Qkdp"),
            h = i("v9UT"),
            c = i("Mtpk"),
            p = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._negativeBase = 0, e._numberFormat = "#,###.#####", e._outputFormat = "svg", e._smallNumberThreshold = 1, e.className = "NumberFormatter", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.dispose = function() {
                    t.prototype.dispose.call(this), this.language && this.language.dispose()
                }, Object.defineProperty(e.prototype, "language", {
                    get: function() {
                        return this._language || (this.sprite ? this._language = this.sprite.language : this._language = new r.a), this._language
                    },
                    set: function(t) {
                        this._language = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.format = function(t, e) {
                    (void 0 === e || c.isString(e) && "number" === e.toLowerCase()) && (e = this._numberFormat);
                    var i = Number(t);
                    if (e instanceof Object) return this.intlLocales ? new Intl.NumberFormat(this.intlLocales, e).format(i) : new Intl.NumberFormat(void 0, e).format(i);
                    e = h.cleanFormat(e);
                    var n = this.parseFormat(e, this.language),
                        r = void 0;
                    return (r = i > this._negativeBase ? n.positive : i < this._negativeBase ? n.negative : n.zero).template.split(l.d).join(this.applyFormat(i, r))
                }, e.prototype.parseFormat = function(t, e) {
                    var i = this,
                        n = this.getCache(t);
                    if (c.hasValue(n)) return n;
                    var r = {
                            positive: {
                                thousands: {
                                    active: -1,
                                    passive: -1,
                                    interval: -1,
                                    separator: e.translateEmpty("_thousandSeparator")
                                },
                                decimals: {
                                    active: -1,
                                    passive: -1,
                                    separator: e.translateEmpty("_decimalSeparator")
                                },
                                template: "",
                                source: "",
                                parsed: !1
                            },
                            negative: {
                                thousands: {
                                    active: -1,
                                    passive: -1,
                                    interval: -1,
                                    separator: e.translateEmpty("_thousandSeparator")
                                },
                                decimals: {
                                    active: -1,
                                    passive: -1,
                                    separator: e.translateEmpty("_decimalSeparator")
                                },
                                template: "",
                                source: "",
                                parsed: !1
                            },
                            zero: {
                                thousands: {
                                    active: -1,
                                    passive: -1,
                                    interval: -1,
                                    separator: e.translateEmpty("_thousandSeparator")
                                },
                                decimals: {
                                    active: -1,
                                    passive: -1,
                                    separator: e.translateEmpty("_decimalSeparator")
                                },
                                template: "",
                                source: "",
                                parsed: !1
                            }
                        },
                        a = (t = t.replace("||", l.e)).split("|");
                    return r.positive.source = a[0], void 0 === a[2] ? r.zero = r.positive : r.zero.source = a[2], void 0 === a[1] ? r.negative = r.positive : r.negative.source = a[1], u.each(r, function(t, e) {
                        if (!e.parsed)
                            if (void 0 === i.getCache(e.source)) {
                                var n = e.source;
                                "number" === n.toLowerCase() && (n = c.isString(i._numberFormat) ? i._numberFormat : "#,###.#####");
                                for (var a = Object(o.b)().chunk(n, !0), s = 0; s < a.length; s++) {
                                    var u = a[s];
                                    if (u.text = u.text.replace(l.e, "|"), "value" === u.type) {
                                        var h = u.text.match(/[#0.,]+[ ]?[abesABES%!]?[abesABESâ€°!]?/);
                                        if (h)
                                            if (null === h || "" === h[0]) e.template += u.text;
                                            else {
                                                var p = h[0].match(/[abesABES%â€°!]{2}|[abesABES%â€°]{1}$/);
                                                p && (e.mod = p[0].toLowerCase(), e.modSpacing = !!h[0].match(/[ ]{1}[abesABES%â€°!]{1}$/));
                                                var d = h[0].split(".");
                                                if ("" === d[0]);
                                                else {
                                                    e.thousands.active = (d[0].match(/0/g) || []).length, e.thousands.passive = (d[0].match(/\#/g) || []).length + e.thousands.active;
                                                    var f = d[0].split(",");
                                                    1 === f.length || (e.thousands.interval = c.getValue(f.pop()).length, 0 === e.thousands.interval && (e.thousands.interval = -1))
                                                }
                                                void 0 === d[1] || (e.decimals.active = (d[1].match(/0/g) || []).length, e.decimals.passive = (d[1].match(/\#/g) || []).length + e.decimals.active), e.template += u.text.split(h[0]).join(l.d)
                                            }
                                    } else e.template += u.text
                                }
                                i.setCache(e.source, e), e.parsed = !0
                            } else r[t] = i.getCache(e.source)
                    }), this.setCache(t, r), r
                }, e.prototype.applyFormat = function(t, e) {
                    var i = t < 0;
                    t = Math.abs(t);
                    var n = "",
                        r = "",
                        a = e.mod ? e.mod.split("") : [];
                    if (-1 !== a.indexOf("b")) {
                        var o = this.applyPrefix(t, this.bytePrefixes, -1 !== a.indexOf("!"));
                        t = o[0], n = o[1], r = o[2], e.modSpacing && (r = " " + r)
                    } else if (-1 !== a.indexOf("a")) {
                        var s = this.applyPrefix(t, t < this.smallNumberThreshold ? this.smallNumberPrefixes : this.bigNumberPrefixes, -1 !== a.indexOf("!"));
                        t = s[0], n = s[1], r = s[2], e.modSpacing && (r = " " + r)
                    } else if (-1 !== a.indexOf("%")) {
                        var l = t.toString().length;
                        t *= 100, t = parseFloat(t.toPrecision(l + 2)), r = "%"
                    } else if (-1 !== a.indexOf("â€°")) {
                        l = t.toString().length;
                        t *= 1e3, t = parseFloat(t.toPrecision(l + 3)), r = "â€°"
                    }
                    if (-1 !== a.indexOf("e")) {
                        var u = void 0;
                        u = e.decimals.passive >= 0 ? t.toExponential(e.decimals.passive).split("e") : t.toExponential().split("e"), t = Number(u[0]), r = "e" + u[1], e.modSpacing && (r = " " + r)
                    } else if (0 === e.decimals.passive) t = Math.round(t);
                    else if (e.decimals.passive > 0) {
                        var c = Math.pow(10, e.decimals.passive);
                        t = Math.round(t * c) / c
                    }
                    var p = "",
                        d = h.numberToString(t).split("."),
                        f = d[0];
                    if (f.length < e.thousands.active && (f = Array(e.thousands.active - f.length + 1).join("0") + f), e.thousands.interval > 0) {
                        for (var g = [], y = f.split("").reverse().join(""), m = 0, v = f.length; m <= v; m += e.thousands.interval) {
                            var b = y.substr(m, e.thousands.interval).split("").reverse().join("");
                            "" !== b && g.unshift(b)
                        }
                        f = g.join(e.thousands.separator)
                    }
                    p += f, 1 === d.length && d.push("");
                    var x = d[1];
                    return x.length < e.decimals.active && (x += Array(e.decimals.active - x.length + 1).join("0")), "" !== x && (p += e.decimals.separator + x), "" === p && (p = "0"), 0 !== t && i && -1 === a.indexOf("s") && (p = "-" + p), n && (p = n + p), r && (p += r), p
                }, e.prototype.applyPrefix = function(t, e, i) {
                    void 0 === i && (i = !1);
                    for (var n = t, r = "", a = "", o = !1, s = 1, l = 0, u = e.length; l < u; l++) e[l].number <= t && (0 === e[l].number ? n = 0 : (n = t / e[l].number, s = e[l].number), r = e[l].prefix, a = e[l].suffix, o = !0);
                    return !o && i && e.length && 0 != t && (n = t / e[0].number, r = e[0].prefix, a = e[0].suffix, o = !0), o && (n = parseFloat(n.toPrecision(s.toString().length + Math.floor(n).toString().replace(/[^0-9]*/g, "").length))), [n, r, a]
                }, e.prototype.invalidateSprite = function() {
                    this.sprite && this.sprite.invalidate()
                }, Object.defineProperty(e.prototype, "numberFormat", {
                    get: function() {
                        return this._numberFormat
                    },
                    set: function(t) {
                        this._numberFormat = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "intlLocales", {
                    get: function() {
                        return this._intlLocales
                    },
                    set: function(t) {
                        this._intlLocales = t, this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "negativeBase", {
                    get: function() {
                        return this._negativeBase
                    },
                    set: function(t) {
                        this._negativeBase = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bigNumberPrefixes", {
                    get: function() {
                        return c.hasValue(this._bigNumberPrefixes) || (this._bigNumberPrefixes = [{
                            number: 1e3,
                            suffix: this.language.translate("_big_number_suffix_3")
                        }, {
                            number: 1e6,
                            suffix: this.language.translate("_big_number_suffix_6")
                        }, {
                            number: 1e9,
                            suffix: this.language.translate("_big_number_suffix_9")
                        }, {
                            number: 1e12,
                            suffix: this.language.translate("_big_number_suffix_12")
                        }, {
                            number: 1e15,
                            suffix: this.language.translate("_big_number_suffix_15")
                        }, {
                            number: 1e18,
                            suffix: this.language.translate("_big_number_suffix_18")
                        }, {
                            number: 1e21,
                            suffix: this.language.translate("_big_number_suffix_21")
                        }, {
                            number: 1e24,
                            suffix: this.language.translate("_big_number_suffix_24")
                        }]), this._bigNumberPrefixes
                    },
                    set: function(t) {
                        this._bigNumberPrefixes = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "smallNumberPrefixes", {
                    get: function() {
                        return c.hasValue(this._smallNumberPrefixes) || (this._smallNumberPrefixes = [{
                            number: 1e-24,
                            suffix: this.language.translate("_small_number_suffix_24")
                        }, {
                            number: 1e-21,
                            suffix: this.language.translate("_small_number_suffix_21")
                        }, {
                            number: 1e-18,
                            suffix: this.language.translate("_small_number_suffix_18")
                        }, {
                            number: 1e-15,
                            suffix: this.language.translate("_small_number_suffix_15")
                        }, {
                            number: 1e-12,
                            suffix: this.language.translate("_small_number_suffix_12")
                        }, {
                            number: 1e-9,
                            suffix: this.language.translate("_small_number_suffix_9")
                        }, {
                            number: 1e-6,
                            suffix: this.language.translate("_small_number_suffix_6")
                        }, {
                            number: .001,
                            suffix: this.language.translate("_small_number_suffix_3")
                        }]), this._smallNumberPrefixes
                    },
                    set: function(t) {
                        this._smallNumberPrefixes = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "smallNumberThreshold", {
                    get: function() {
                        return this._smallNumberThreshold
                    },
                    set: function(t) {
                        this._smallNumberThreshold = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bytePrefixes", {
                    get: function() {
                        return c.hasValue(this._bytePrefixes) || (this._bytePrefixes = [{
                            number: 1,
                            suffix: this.language.translate("_byte_suffix_B")
                        }, {
                            number: 1024,
                            suffix: this.language.translate("_byte_suffix_KB")
                        }, {
                            number: 1048576,
                            suffix: this.language.translate("_byte_suffix_MB")
                        }, {
                            number: 1073741824,
                            suffix: this.language.translate("_byte_suffix_GB")
                        }, {
                            number: 1099511627776,
                            suffix: this.language.translate("_byte_suffix_TB")
                        }, {
                            number: 0x4000000000000,
                            suffix: this.language.translate("_byte_suffix_PB")
                        }]), this._bytePrefixes
                    },
                    set: function(t) {
                        this._bytePrefixes = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "outputFormat", {
                    get: function() {
                        return this._outputFormat
                    },
                    set: function(t) {
                        this._outputFormat = t.toLowerCase(), this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.escape = function(t) {
                    return t.replace("||", l.e)
                }, e.prototype.unescape = function(t) {
                    return t.replace(l.e, "|")
                }, e
            }(a.a);
        s.c.registeredClasses.NumberFormatter = p
    },
    Ca8x: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = Math.imul;
        n({
            target: "Math",
            stat: !0,
            forced: r(function() {
                return -5 != a(4294967295, 5) || 2 != a.length
            })
        }, {
            imul: function(t, e) {
                var i = +t,
                    n = +e,
                    r = 65535 & i,
                    a = 65535 & n;
                return 0 | r * a + ((65535 & i >>> 16) * a + r * (65535 & n >>> 16) << 16 >>> 0)
            }
        })
    },
    CnhP: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("aCit"),
            o = i("Gg2j"),
            s = i("Mtpk"),
            l = i("v9UT"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "RoundedRectangle", e.element = e.paper.add("path"), e.cornerRadius(3, 3, 3, 3), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.innerWidth,
                        i = this.innerHeight;
                    if (s.isNumber(e) && s.isNumber(i)) {
                        var n = o.min(e, i) / 2,
                            r = l.relativeToValue(this.cornerRadiusTopLeft, n),
                            a = l.relativeToValue(this.cornerRadiusTopRight, n),
                            u = l.relativeToValue(this.cornerRadiusBottomRight, n),
                            h = l.relativeToValue(this.cornerRadiusBottomLeft, n),
                            c = o.min(Math.abs(e / 2), Math.abs(i / 2)),
                            p = o.fitToRange(r, 0, c),
                            d = o.fitToRange(a, 0, c),
                            f = o.fitToRange(u, 0, c),
                            g = o.fitToRange(h, 0, c),
                            y = "M" + p + ",0 L" + (e - d) + ",0" + (" a" + d + "," + d + " 0 0 1 " + d + "," + d) + (" L" + e + "," + (i - f)) + (" a" + f + "," + f + " 0 0 1 -" + f + "," + f) + (" L" + g + "," + i) + (" a" + g + "," + g + " 0 0 1 -" + g + ",-" + g) + (" L0," + p) + (" a" + p + "," + p + " 0 0 1 " + p + ",-" + p) + " Z";
                        this.path = y
                    }
                }, e.prototype.cornerRadius = function(t, e, i, n) {
                    this.cornerRadiusTopLeft = t, this.cornerRadiusTopRight = e, this.cornerRadiusBottomLeft = i, this.cornerRadiusBottomRight = n
                }, Object.defineProperty(e.prototype, "cornerRadiusTopLeft", {
                    get: function() {
                        return this.getPropertyValue("cornerRadiusTopLeft")
                    },
                    set: function(t) {
                        this.setPercentProperty("cornerRadiusTopLeft", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cornerRadiusTopRight", {
                    get: function() {
                        return this.getPropertyValue("cornerRadiusTopRight")
                    },
                    set: function(t) {
                        this.setPercentProperty("cornerRadiusTopRight", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cornerRadiusBottomRight", {
                    get: function() {
                        return this.getPropertyValue("cornerRadiusBottomRight")
                    },
                    set: function(t) {
                        this.setPercentProperty("cornerRadiusBottomRight", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cornerRadiusBottomLeft", {
                    get: function() {
                        return this.getPropertyValue("cornerRadiusBottomLeft")
                    },
                    set: function(t) {
                        this.setPercentProperty("cornerRadiusBottomLeft", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.measureElement = function() {}, Object.defineProperty(e.prototype, "bbox", {
                    get: function() {
                        return this.definedBBox ? this.definedBBox : this.isMeasured ? {
                            x: 0,
                            y: 0,
                            width: this.innerWidth,
                            height: this.innerHeight
                        } : {
                            x: 0,
                            y: 0,
                            width: 0,
                            height: 0
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.RoundedRectangle = u
    },
    CqLV: function(t, e, i) {
        var n = i("vfdp"),
            r = i("jnLg").trim,
            a = i("DUr5"),
            o = n.parseFloat,
            s = 1 / o(a + "-0") != -1 / 0;
        t.exports = s ? function(t) {
            var e = r(String(t)),
                i = o(e);
            return 0 === i && "-" == e.charAt(0) ? -0 : i
        } : o
    },
    CuFa: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("vMqJ"),
            o = i("P7v+"),
            s = i("aCit"),
            l = i("Wglt"),
            u = i("Mtpk"),
            h = i("tjMS"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._stops = new a.b, e.element = e.paper.addGroup("radialGradient"), e.id = "gradient-" + s.c.getUniqueId(), e.element.attr({
                        id: e.id
                    }), e._disposers.push(e.element), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    var t, e = this,
                        i = this.element;
                    u.isNumber(this.cx) && ((t = this.cx) instanceof h.a && (t = t.percent + "%"), i.attr({
                        cx: t
                    }));
                    u.isNumber(this.cy) && ((t = this.cy) instanceof h.a && (t = t.percent + "%"), i.attr({
                        cy: t
                    }));
                    this.fx && ((t = this.fx) instanceof h.a && (t = t.percent + "%"), i.attr({
                        fx: t
                    }));
                    this.fy && ((t = this.fy) instanceof h.a && (t = t.percent + "%"), i.attr({
                        fy: t
                    }));
                    i.removeChildNodes(), l.each(l.indexed(this._stops.iterator()), function(t) {
                        var n = t[0],
                            r = t[1],
                            a = r.offset;
                        u.isNumber(a) || (a = n / (e._stops.length - 1));
                        var o = e.paper.add("stop");
                        u.hasValue(r.color) && o.attr({
                            "stop-color": r.color.toString()
                        }), u.isNumber(r.opacity) && o.attr({
                            "stop-opacity": r.opacity
                        }), u.isNumber(a) && o.attr({
                            offset: a
                        }), i.add(o)
                    })
                }, e.prototype.addColor = function(t, e, i) {
                    this._stops.push({
                        color: t,
                        opacity: e,
                        offset: i
                    }), this.draw()
                }, Object.defineProperty(e.prototype, "paper", {
                    get: function() {
                        return this._paper ? this._paper : Object(o.b)()
                    },
                    set: function(t) {
                        this._paper != t && (this._paper = t, this.draw(), t.appendDef(this.element))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cx", {
                    get: function() {
                        return this._cx
                    },
                    set: function(t) {
                        this._cx = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cy", {
                    get: function() {
                        return this._cy
                    },
                    set: function(t) {
                        this._cy = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fx", {
                    get: function() {
                        return this._fx
                    },
                    set: function(t) {
                        this._fx = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fy", {
                    get: function() {
                        return this._fy
                    },
                    set: function(t) {
                        this._fy = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.stops.copyFrom(e.stops), this.cx = e.cx, this.cy = e.cy, this.fx = e.fx, this.fy = e.fy
                }, Object.defineProperty(e.prototype, "stops", {
                    get: function() {
                        return this._stops
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.clear = function() {
                    this._stops.clear()
                }, e
            }(r.a);
        s.c.registeredClasses.RadialGradient = c
    },
    D3TA: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("X/sl").map,
            a = i("Nfo5"),
            o = n.aTypedArray,
            s = n.aTypedArrayConstructor;
        (0, n.exportTypedArrayMethod)("map", function(t) {
            return r(o(this), t, arguments.length > 1 ? arguments[1] : void 0, function(t, e) {
                return new(s(a(t, t.constructor)))(e)
            })
        })
    },
    "DA7/": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "ColorModifier", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.modify = function(t) {
                    return t
                }, e
            }(r.a);
        a.c.registeredClasses.ColorModifier = o
    },
    DDWt: function(t, e, i) {
        var n = i("3sMl"),
            r = i("8+rI").f,
            a = Function.prototype,
            o = a.toString,
            s = /^\s*function ([^ (]*)/;
        !n || "name" in a || r(a, "name", {
            configurable: !0,
            get: function() {
                try {
                    return o.call(this).match(s)[1]
                } catch (t) {
                    return ""
                }
            }
        })
    },
    DG6Q: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("CnhP"),
            o = i("aCit"),
            s = i("tjMS"),
            l = i("Gg2j"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Column", e.width = Object(s.c)(80), e.height = Object(s.c)(80), e.events.disableType("transformed"), e.applyOnClones = !0, e.strokeOpacity = 1, e.layout = "none", e.createAssets(), e.events.on("childadded", e.handleKidAdded, e, !1), e
                }
                return Object(n.c)(e, t), e.prototype.handleKidAdded = function() {
                    "none" == this.layout && (this.layout = "absolute")
                }, e.prototype.createAssets = function() {
                    this.column = this.createChild(a.a), this.column.shouldClone = !1, this.column.isMeasured = !1, this.column.cornerRadius(0, 0, 0, 0), this._disposers.push(this.column)
                }, e.prototype.validate = function() {
                    t.prototype.validate.call(this);
                    var e = this.column;
                    e && (e.width = l.min(this.pixelWidth, this.maxWidth), e.height = l.min(this.pixelHeight, this.maxHeight), e.invalid && e.validate())
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.column && this.column.copyFrom(e.column)
                }, Object.defineProperty(e.prototype, "bbox", {
                    get: function() {
                        return this.definedBBox ? this.definedBBox : this.column ? {
                            x: 0,
                            y: 0,
                            width: this.column.measuredWidth,
                            height: this.column.measuredHeight
                        } : {
                            x: 0,
                            y: 0,
                            width: l.min(this.pixelWidth, this.maxWidth),
                            height: l.min(this.pixelHeight, this.maxHeight)
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        o.c.registeredClasses.Column = u
    },
    DHte: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("8ZqG"),
            o = i("aCit"),
            s = i("hxI2"),
            l = i("Mtpk"),
            u = i("v9UT"),
            h = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._list = [], e._currentStep = 0, e._startIndex = 0, e._currentPass = 0, e.baseColor = new a.a({
                        r: 103,
                        g: 183,
                        b: 220
                    }), e.stepOptions = {}, e.passOptions = {
                        brighten: -.2
                    }, e.step = 1, e.minColors = 20, e.minLightness = .2, e.maxLightness = .9, e.shuffle = !1, e.wrap = !0, e.reuse = !1, e.saturation = 1, e.className = "ColorSet", e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "list", {
                    get: function() {
                        return this._list || this.generate(this.minColors), this._list
                    },
                    set: function(t) {
                        this._list = t, this.reset()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getReusableColor = function(t) {
                    if (0 == this._list.length) return this.generate(1), this.list[0];
                    var e = t - Math.floor(t / this._list.length) * this.list.length;
                    return this.list[e]
                }, e.prototype.next = function() {
                    var t;
                    return this.list.length <= this._currentStep ? this.reuse ? t = this.getReusableColor(this._currentStep) : (this.generate(this.minColors), t = this.list[this._currentStep]) : t = this.list[this._currentStep], this._currentStep += this.step, t.saturate(this.saturation)
                }, e.prototype.getIndex = function(t) {
                    var e;
                    return this.list.length <= t ? this.reuse ? e = this.getReusableColor(t) : (this.generate(this.minColors), e = this.getIndex(t)) : e = this.list[t], e.saturate(this.saturation)
                }, e.prototype.reset = function() {
                    this._currentStep = this._startIndex
                }, Object.defineProperty(e.prototype, "currentStep", {
                    get: function() {
                        return this._currentStep
                    },
                    set: function(t) {
                        this._currentStep = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startIndex", {
                    get: function() {
                        return this._startIndex
                    },
                    set: function(t) {
                        this._startIndex = t, this.reset()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.generate = function(t) {
                    var e = this.currentColor,
                        i = s.rgbToHsl(l.getValue(e.rgb)),
                        n = l.hasValue(this.stepOptions.hue) ? this.stepOptions.hue : 1 / t,
                        r = {
                            brighten: 0,
                            lighten: 0,
                            hue: i.h,
                            lightness: i.l,
                            saturation: i.s
                        },
                        o = [],
                        h = 0 == this.list.length ? 0 : 1;
                    if (this.reuse)
                        for (var c = h; c <= t; c++) o.push(s.rgbToHsl(l.getValue(this._list[c].rgb)).h);
                    else
                        for (c = h; c <= t; c++) {
                            var p = i.h + n * c;
                            this.wrap && p > 1 && (p -= 1), o.push(p)
                        }
                    this.shuffle && o.sort(function(t, e) {
                        return Math.random() - .5
                    });
                    for (c = 0; c < t; c++) {
                        this.reuse ? i = s.rgbToHsl(l.getValue(this._list[c].rgb)) : i.h = o.shift(), this.applyStepOptions(i, r, c, this._currentPass);
                        var d = Object(a.c)(s.hslToRgb(i)),
                            f = (this.stepOptions.brighten || 0) * c + (this.passOptions.brighten || 0) * this._currentPass;
                        0 != f && (f = this.wrap ? u.fitNumberRelative(f, this.minLightness, this.maxLightness) : u.fitNumber(f, this.minLightness, this.maxLightness), d = d.brighten(f));
                        var g = (this.stepOptions.lighten || 0) * c + (this.passOptions.lighten || 0) * this._currentPass;
                        0 != g && (g = this.wrap ? u.fitNumberRelative(g, this.minLightness, this.maxLightness) : u.fitNumber(g, this.minLightness, this.maxLightness), d = d.lighten(g)), this._list.push(d)
                    }
                    this._currentPass++
                }, Object.defineProperty(e.prototype, "currentColor", {
                    get: function() {
                        return 0 == this._list.length ? this.baseColor.saturate(this.saturation) : this._list[this._list.length - 1].saturate(this.saturation)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.applyStepOptions = function(t, e, i, n) {
                    t.l = e.lightness + (this.stepOptions.lightness || 0) * i + (this.passOptions.lightness || 0) * n, this.wrap ? (t.l > 1 ? t.l = t.l - Math.floor(t.l) : t.l < 0 && (t.l = -(t.l - Math.floor(t.l))), t.l = u.fitNumberRelative(t.l, this.minLightness, this.maxLightness)) : (t.l > 1 ? t.l = 1 : t.l < 0 && (t.l = 0), t.l = u.fitNumber(t.l, this.minLightness, this.maxLightness))
                }, e.prototype.processConfig = function(e) {
                    if (e && l.hasValue(e.list) && l.isArray(e.list))
                        for (var i = 0, n = e.list.length; i < n; i++) e.list[i] instanceof a.a || (e.list[i] = Object(a.c)(e.list[i]));
                    t.prototype.processConfig.call(this, e)
                }, e
            }(r.a);
        o.c.registeredClasses.ColorSet = h
    },
    DMUu: function(t, e, i) {
        var n = i("0sYB"),
            r = i("Uskt");
        n({
            global: !0,
            forced: parseInt != r
        }, {
            parseInt: r
        })
    },
    DUr5: function(t, e) {
        t.exports = "\t\n\v\f\r Â áš€â€€â€â€‚â€ƒâ€„â€…â€†â€‡â€ˆâ€‰â€Šâ€¯âŸã€€\u2028\u2029\ufeff"
    },
    DUzp: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("vfdp"),
            a = i("mtbW"),
            o = i("YRD/"),
            s = a.ArrayBuffer;
        n({
            global: !0,
            forced: r.ArrayBuffer !== s
        }, {
            ArrayBuffer: s
        }), o("ArrayBuffer")
    },
    DXFp: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return l
        }), i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("2I/e"),
            a = i("AC2I"),
            o = i("aCit"),
            s = i("Wglt"),
            l = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "PercentChartDataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e
            }(r.b),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "PercentChart", e.align = "none", e.valign = "none", e.chartContainer.minHeight = 50, e.chartContainer.minWidth = 50, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.validateData = function() {
                    t.prototype.validateData.call(this), this.feedLegend()
                }, e.prototype.feedLegend = function() {
                    var t = this.legend;
                    if (t) {
                        var e = [];
                        s.each(this.series.iterator(), function(t) {
                            t.hiddenInLegend || s.each(t.dataItems.iterator(), function(i) {
                                i.hiddenInLegend || (e.push(i), i.legendSettings || (i.legendSettings = t.legendSettings))
                            })
                        }), t.data = e, t.dataFields.name = "category"
                    }
                }, e.prototype.createSeries = function() {
                    return new a.a
                }, e.prototype.setLegend = function(e) {
                    t.prototype.setLegend.call(this, e), e && (e.labels.template.text = "{category}", e.valueLabels.template.text = "{value.percent.formatNumber('#.0')}%", e.itemContainers.template.events.on("over", function(t) {
                        var e = t.target.dataItem.dataContext;
                        if (e.visible && !e.isHiding) {
                            var i = e.slice;
                            i.dispatchImmediately("over"), i.isHover = !0, i.interactions.isRealHover = !0
                        }
                    }), e.itemContainers.template.events.on("out", function(t) {
                        var e = t.target.dataItem.dataContext.slice;
                        e.dispatchImmediately("out"), e.isHover = !1
                    }))
                }, e
            }(r.a);
        o.c.registeredClasses.PercentChart = u, o.c.registeredClasses.PercentChartDataItem = l
    },
    DgVf: function(t, e, i) {
        i("eygo")("Float32", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        })
    },
    Djm3: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("fixed")
        }, {
            fixed: function() {
                return r(this, "tt", "", "")
            }
        })
    },
    DziZ: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("tjMS"),
            o = i("aCit"),
            s = i("v9UT"),
            l = i("Mtpk"),
            u = i("hGwe"),
            h = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Trapezoid", e.element = e.paper.add("path"), e.topSide = Object(a.c)(100), e.bottomSide = Object(a.c)(100), e.leftSide = Object(a.c)(100), e.rightSide = Object(a.c)(100), e.isMeasured = !1, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.pixelWidth,
                        i = this.pixelHeight,
                        n = s.relativeToValue(this.topSide, e),
                        r = s.relativeToValue(this.bottomSide, e),
                        a = s.relativeToValue(this.leftSide, i),
                        o = s.relativeToValue(this.rightSide, i),
                        h = (e - n) / 2,
                        c = (i - a) / 2,
                        p = e - (e - n) / 2,
                        d = (i - o) / 2,
                        f = e - (e - r) / 2,
                        g = i - (i - o) / 2,
                        y = (e - r) / 2,
                        m = i - (i - a) / 2,
                        v = "",
                        b = "",
                        x = "",
                        _ = "";
                    if (l.hasValue(this.horizontalNeck)) {
                        var P = this.horizontalNeck.value;
                        v = u.lineTo({
                            x: e * P,
                            y: Math.max(c, d)
                        }), x = u.lineTo({
                            x: e * P,
                            y: Math.min(g, m)
                        })
                    }
                    if (l.hasValue(this.verticalNeck)) {
                        var w = this.verticalNeck.value;
                        b = u.lineTo({
                            x: Math.min(p, f),
                            y: i * w
                        }), _ = u.lineTo({
                            x: Math.max(h, y),
                            y: i * w
                        })
                    }
                    var O = u.moveTo({
                        x: h,
                        y: c
                    }) + v + u.lineTo({
                        x: p,
                        y: d
                    }) + b + u.lineTo({
                        x: f,
                        y: g
                    }) + x + u.lineTo({
                        x: y,
                        y: m
                    }) + _;
                    this.path = O
                }, Object.defineProperty(e.prototype, "topSide", {
                    get: function() {
                        return this.getPropertyValue("topSide")
                    },
                    set: function(t) {
                        this.setPercentProperty("topSide", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bottomSide", {
                    get: function() {
                        return this.getPropertyValue("bottomSide")
                    },
                    set: function(t) {
                        this.setPercentProperty("bottomSide", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "leftSide", {
                    get: function() {
                        return this.getPropertyValue("leftSide")
                    },
                    set: function(t) {
                        this.setPercentProperty("leftSide", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "rightSide", {
                    get: function() {
                        return this.getPropertyValue("rightSide")
                    },
                    set: function(t) {
                        this.setPercentProperty("rightSide", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "horizontalNeck", {
                    get: function() {
                        return this.getPropertyValue("horizontalNeck")
                    },
                    set: function(t) {
                        this.setPropertyValue("horizontalNeck", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "verticalNeck", {
                    get: function() {
                        return this.getPropertyValue("verticalNeck")
                    },
                    set: function(t) {
                        this.setPropertyValue("verticalNeck", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        o.c.registeredClasses.Trapezoid = h
    },
    "E+A3": function(t, e, i) {
        var n = i("exNg"),
            r = i("tHyI");
        t.exports = function(t) {
            if (void 0 === t) return 0;
            var e = n(t),
                i = r(e);
            if (e !== i) throw RangeError("Wrong length or index");
            return i
        }
    },
    E81g: function(t, e, i) {
        var n = i("3weC"),
            r = i("Kg2n"),
            a = i("TQpL");
        t.exports = function(t, e) {
            if (n(t), r(e) && e.constructor === t) return e;
            var i = a.f(t);
            return (0, i.resolve)(e), i.promise
        }
    },
    EErT: function(t, e, i) {
        var n = i("Kg2n");
        t.exports = function(t, e) {
            if (!n(t)) return t;
            var i, r;
            if (e && "function" == typeof(i = t.toString) && !n(r = i.call(t))) return r;
            if ("function" == typeof(i = t.valueOf) && !n(r = i.call(t))) return r;
            if (!e && "function" == typeof(i = t.toString) && !n(r = i.call(t))) return r;
            throw TypeError("Can't convert object to primitive value")
        }
    },
    EVp9: function(t, e, i) {
        "use strict";
        var n = {}.propertyIsEnumerable,
            r = Object.getOwnPropertyDescriptor,
            a = r && !n.call({
                1: 2
            }, 1);
        e.f = a ? function(t) {
            var e = r(this, t);
            return !!e && e.enumerable
        } : n
    },
    Ecdy: function(t, e, i) {
        "use strict";
        i("yBTm");
        var n = i("0sYB"),
            r = i("1wCr"),
            a = i("leaB"),
            o = i("z3p0"),
            s = i("/vWR"),
            l = i("NRfM"),
            u = i("F/ei"),
            h = i("SqFF"),
            c = i("L56b"),
            p = i("JZRr"),
            d = i("cLsB"),
            f = i("5ou3"),
            g = i("3weC"),
            y = i("Kg2n"),
            m = i("QzDi"),
            v = i("Pm8L"),
            b = i("7bEX"),
            x = i("Ur2B"),
            _ = i("KslR"),
            P = r("fetch"),
            w = r("Headers"),
            O = _("iterator"),
            T = h.set,
            S = h.getterFor("URLSearchParams"),
            C = h.getterFor("URLSearchParamsIterator"),
            I = /\+/g,
            k = Array(4),
            D = function(t) {
                return k[t - 1] || (k[t - 1] = RegExp("((?:%[\\da-f]{2}){" + t + "})", "gi"))
            },
            j = function(t) {
                try {
                    return decodeURIComponent(t)
                } catch (e) {
                    return t
                }
            },
            V = function(t) {
                var e = t.replace(I, " "),
                    i = 4;
                try {
                    return decodeURIComponent(e)
                } catch (t) {
                    for (; i;) e = e.replace(D(i--), j);
                    return e
                }
            },
            A = /[!'()~]|%20/g,
            M = {
                "!": "%21",
                "'": "%27",
                "(": "%28",
                ")": "%29",
                "~": "%7E",
                "%20": "+"
            },
            F = function(t) {
                return M[t]
            },
            E = function(t) {
                return encodeURIComponent(t).replace(A, F)
            },
            R = function(t, e) {
                if (e)
                    for (var i, n, r = e.split("&"), a = 0; a < r.length;)(i = r[a++]).length && (n = i.split("="), t.push({
                        key: V(n.shift()),
                        value: V(n.join("="))
                    }))
            },
            N = function(t) {
                this.entries.length = 0, R(this.entries, t)
            },
            L = function(t, e) {
                if (t < e) throw TypeError("Not enough arguments")
            },
            B = u(function(t, e) {
                T(this, {
                    type: "URLSearchParamsIterator",
                    iterator: b(S(t).entries),
                    kind: e
                })
            }, "Iterator", function() {
                var t = C(this),
                    e = t.kind,
                    i = t.iterator.next(),
                    n = i.value;
                return i.done || (i.value = "keys" === e ? n.key : "values" === e ? n.value : [n.key, n.value]), i
            }),
            U = function() {
                c(this, U, "URLSearchParams");
                var t, e, i, n, r, a, o, s, l, u = arguments.length > 0 ? arguments[0] : void 0,
                    h = [];
                if (T(this, {
                        type: "URLSearchParams",
                        entries: h,
                        updateURL: function() {},
                        updateSearchParams: N
                    }), void 0 !== u)
                    if (y(u))
                        if ("function" == typeof(t = x(u)))
                            for (i = (e = t.call(u)).next; !(n = i.call(e)).done;) {
                                if ((o = (a = (r = b(g(n.value))).next).call(r)).done || (s = a.call(r)).done || !a.call(r).done) throw TypeError("Expected sequence with length 2");
                                h.push({
                                    key: o.value + "",
                                    value: s.value + ""
                                })
                            } else
                                for (l in u) p(u, l) && h.push({
                                    key: l,
                                    value: u[l] + ""
                                });
                        else R(h, "string" == typeof u ? "?" === u.charAt(0) ? u.slice(1) : u : u + "")
            },
            W = U.prototype;
        s(W, {
            append: function(t, e) {
                L(arguments.length, 2);
                var i = S(this);
                i.entries.push({
                    key: t + "",
                    value: e + ""
                }), i.updateURL()
            },
            delete: function(t) {
                L(arguments.length, 1);
                for (var e = S(this), i = e.entries, n = t + "", r = 0; r < i.length;) i[r].key === n ? i.splice(r, 1) : r++;
                e.updateURL()
            },
            get: function(t) {
                L(arguments.length, 1);
                for (var e = S(this).entries, i = t + "", n = 0; n < e.length; n++)
                    if (e[n].key === i) return e[n].value;
                return null
            },
            getAll: function(t) {
                L(arguments.length, 1);
                for (var e = S(this).entries, i = t + "", n = [], r = 0; r < e.length; r++) e[r].key === i && n.push(e[r].value);
                return n
            },
            has: function(t) {
                L(arguments.length, 1);
                for (var e = S(this).entries, i = t + "", n = 0; n < e.length;)
                    if (e[n++].key === i) return !0;
                return !1
            },
            set: function(t, e) {
                L(arguments.length, 1);
                for (var i, n = S(this), r = n.entries, a = !1, o = t + "", s = e + "", l = 0; l < r.length; l++)(i = r[l]).key === o && (a ? r.splice(l--, 1) : (a = !0, i.value = s));
                a || r.push({
                    key: o,
                    value: s
                }), n.updateURL()
            },
            sort: function() {
                var t, e, i, n = S(this),
                    r = n.entries,
                    a = r.slice();
                for (r.length = 0, i = 0; i < a.length; i++) {
                    for (t = a[i], e = 0; e < i; e++)
                        if (r[e].key > t.key) {
                            r.splice(e, 0, t);
                            break
                        } e === i && r.push(t)
                }
                n.updateURL()
            },
            forEach: function(t) {
                for (var e, i = S(this).entries, n = d(t, arguments.length > 1 ? arguments[1] : void 0, 3), r = 0; r < i.length;) n((e = i[r++]).value, e.key, this)
            },
            keys: function() {
                return new B(this, "keys")
            },
            values: function() {
                return new B(this, "values")
            },
            entries: function() {
                return new B(this, "entries")
            }
        }, {
            enumerable: !0
        }), o(W, O, W.entries), o(W, "toString", function() {
            for (var t, e = S(this).entries, i = [], n = 0; n < e.length;) t = e[n++], i.push(E(t.key) + "=" + E(t.value));
            return i.join("&")
        }, {
            enumerable: !0
        }), l(U, "URLSearchParams"), n({
            global: !0,
            forced: !a
        }, {
            URLSearchParams: U
        }), a || "function" != typeof P || "function" != typeof w || n({
            global: !0,
            enumerable: !0,
            forced: !0
        }, {
            fetch: function(t) {
                var e, i, n, r = [t];
                return arguments.length > 1 && (e = arguments[1], y(e) && (i = e.body, "URLSearchParams" === f(i) && ((n = e.headers ? new w(e.headers) : new w).has("content-type") || n.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"), e = m(e, {
                    body: v(0, String(i)),
                    headers: v(0, n)
                }))), r.push(e)), P.apply(this, r)
            }
        }), t.exports = {
            URLSearchParams: U,
            getState: S
        }
    },
    EjGA: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return f
        });
        var n = i("m4/l"),
            r = i("Mpxm"),
            a = i("ZhuL"),
            o = i("4DCw"),
            s = i("Tjl+"),
            l = i("x79X"),
            u = i("P/bD"),
            h = i("7XB+"),
            c = i("aCit"),
            p = i("Mtpk"),
            d = i("Qkdp"),
            f = function(t) {
                function e(e, i) {
                    var n = t.call(this) || this;
                    return n.adapter = new l.a(n), n._requestOptions = {}, n._incremental = !1, n._incrementalParams = {}, n._keepCount = !1, n._updateCurrentData = !1, n.showPreloader = !0, n.className = "DataSource", e && (n.url = e), i && (n.parser = "string" == typeof i ? r.b.getParserByType(i) : i), n
                }
                return Object(n.c)(e, t), e.prototype.processData = function(t, e) {
                    if (this.dispatchImmediately("parsestarted"), this.parser || (this.parser = r.b.getParserByData(t, e), this.parser)) {
                        if (this.parser.options = this.adapter.apply("parserOptions", this.parser.options), this.parser.options.dateFields = this.adapter.apply("dateFields", this.parser.options.dateFields || []), this.parser.options.numberFields = this.adapter.apply("numberFields", this.parser.options.numberFields || []), this.parser.options.dateFields && !this.parser.options.dateFormatter && (this.parser.options.dateFormatter = this.dateFormatter), this.data = this.adapter.apply("parsedData", this.parser.parse(this.adapter.apply("unparsedData", t))), !p.hasValue(this.data) && this.events.isEnabled("parseerror")) {
                            var i = {
                                type: "parseerror",
                                message: this.language.translate("Error parsing file: %1", null, this.url),
                                target: this
                            };
                            this.events.dispatchImmediately("parseerror", i)
                        }
                        this.dispatchImmediately("parseended"), p.hasValue(this.data) && this.dispatchImmediately("done", {
                            data: this.data
                        }), this.lastLoad = new Date
                    } else {
                        if (this.events.isEnabled("parseerror")) {
                            var n = {
                                type: "parseerror",
                                message: this.language.translate("No parser available for file: %1", null, this.url),
                                target: this
                            };
                            this.events.dispatchImmediately("parseerror", n)
                        }
                        this.dispatchImmediately("parseended")
                    }
                }, Object.defineProperty(e.prototype, "url", {
                    get: function() {
                        var t = this.disableCache ? this.timestampUrl(this._url) : this._url;
                        return this.incremental && this.component.data.length && (t = this.addUrlParams(t, this.incrementalParams)), this.adapter.apply("url", t)
                    },
                    set: function(t) {
                        this._url = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "requestOptions", {
                    get: function() {
                        return this.adapter.apply("requestOptions", this._requestOptions)
                    },
                    set: function(t) {
                        this._requestOptions = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "parser", {
                    get: function() {
                        return this._parser || (this._parser = new a.a), this.adapter.apply("parser", this._parser)
                    },
                    set: function(t) {
                        this._parser = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "reloadFrequency", {
                    get: function() {
                        return this.adapter.apply("reloadTimeout", this._reloadFrequency)
                    },
                    set: function(t) {
                        var e = this;
                        this._reloadFrequency != t && (this._reloadFrequency = t, t ? p.hasValue(this._reloadDisposer) || (this._reloadDisposer = this.events.on("ended", function(t) {
                            e._reloadTimeout = setTimeout(function() {
                                e.load()
                            }, e.reloadFrequency)
                        })) : p.hasValue(this._reloadDisposer) && (this._reloadDisposer.dispose(), this._reloadDisposer = void 0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "incremental", {
                    get: function() {
                        return this.adapter.apply("incremental", this._incremental)
                    },
                    set: function(t) {
                        this._incremental = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "incrementalParams", {
                    get: function() {
                        return this.adapter.apply("incrementalParams", this._incrementalParams)
                    },
                    set: function(t) {
                        this._incrementalParams = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "keepCount", {
                    get: function() {
                        return this.adapter.apply("keepCount", this._keepCount)
                    },
                    set: function(t) {
                        this._keepCount = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "updateCurrentData", {
                    get: function() {
                        return this.adapter.apply("updateCurrentData", this._updateCurrentData)
                    },
                    set: function(t) {
                        this._updateCurrentData = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "language", {
                    get: function() {
                        return this._language ? this._language : this.component ? (this._language = this.component.language, this._language) : (this.language = new u.a, this.language)
                    },
                    set: function(t) {
                        this._language = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dateFormatter", {
                    get: function() {
                        return this._dateFormatter ? this._dateFormatter : this.component ? (this._dateFormatter = this.component.dateFormatter, this._dateFormatter) : (this.dateFormatter = new h.a, this.dateFormatter)
                    },
                    set: function(t) {
                        this._dateFormatter = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.timestampUrl = function(t) {
                    var e = {};
                    return e[(new Date).getTime().toString()] = "", this.addUrlParams(t, e)
                }, e.prototype.dispose = function() {
                    t.prototype.dispose.call(this), this._reloadTimeout && clearTimeout(this._reloadTimeout), p.hasValue(this._reloadDisposer) && (this._reloadDisposer.dispose(), this._reloadDisposer = void 0)
                }, e.prototype.load = function() {
                    this.url && (this._reloadTimeout && clearTimeout(this._reloadTimeout), r.b.load(this))
                }, e.prototype.addUrlParams = function(t, e) {
                    var i = t.match(/\?/) ? "&" : "?",
                        n = [];
                    return d.each(e, function(t, e) {
                        "" != e ? n.push(t + "=" + encodeURIComponent(e)) : n.push(t)
                    }), n.length ? t + i + n.join("&") : t
                }, e.prototype.processConfig = function(e) {
                    c.c.registeredClasses.json = a.a, c.c.registeredClasses.JSONParser = a.a, c.c.registeredClasses.csv = o.a, c.c.registeredClasses.CSVParser = o.a, t.prototype.processConfig.call(this, e)
                }, e
            }(s.b)
    },
    EjSS: function(t, e, i) {
        var n = i("6aQQ"),
            r = /#|\.prototype\./,
            a = function(t, e) {
                var i = s[o(t)];
                return i == u || i != l && ("function" == typeof e ? n(e) : !!e)
            },
            o = a.normalize = function(t) {
                return String(t).replace(r, ".").toLowerCase()
            },
            s = a.data = {},
            l = a.NATIVE = "N",
            u = a.POLYFILL = "P";
        t.exports = a
    },
    EyBv: function(t, e, i) {
        i("0sYB")({
            target: "Object",
            stat: !0
        }, {
            setPrototypeOf: i("KJuV")
        })
    },
    "F/ei": function(t, e, i) {
        "use strict";
        var n = i("WeDP").IteratorPrototype,
            r = i("QzDi"),
            a = i("Pm8L"),
            o = i("NRfM"),
            s = i("CNF5"),
            l = function() {
                return this
            };
        t.exports = function(t, e, i) {
            var u = e + " Iterator";
            return t.prototype = r(n, {
                next: a(1, i)
            }), o(t, u, !1, !0), s[u] = l, t
        }
    },
    FBxm: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("link")
        }, {
            link: function(t) {
                return r(this, "a", "href", t)
            }
        })
    },
    FE89: function(t, e, i) {
        "use strict";
        var n = i("NZ9V"),
            r = i("3weC"),
            a = i("tHyI"),
            o = i("swFJ"),
            s = i("L0in"),
            l = i("Xw1K");
        n("match", 1, function(t, e, i) {
            return [function(e) {
                var i = o(this),
                    n = void 0 == e ? void 0 : e[t];
                return void 0 !== n ? n.call(e, i) : new RegExp(e)[t](String(i))
            }, function(t) {
                var n = i(e, t, this);
                if (n.done) return n.value;
                var o = r(t),
                    u = String(this);
                if (!o.global) return l(o, u);
                var h = o.unicode;
                o.lastIndex = 0;
                for (var c, p = [], d = 0; null !== (c = l(o, u));) {
                    var f = String(c[0]);
                    p[d] = f, "" === f && (o.lastIndex = s(u, a(o.lastIndex), h)), d++
                }
                return 0 === d ? null : p
            }]
        })
    },
    FL8s: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("7dku").left,
            a = i("xlUI"),
            o = i("J+FZ"),
            s = a("reduce"),
            l = o("reduce", {
                1: 0
            });
        n({
            target: "Array",
            proto: !0,
            forced: !s || !l
        }, {
            reduce: function(t) {
                return r(this, t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    FZ9I: function(t, e, i) {
        i("0FA2")("flat")
    },
    Fhpb: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("39+r"),
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("copyWithin", function(t, e) {
            return r.call(a(this), t, e, arguments.length > 2 ? arguments[2] : void 0)
        })
    },
    FzPm: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("tjMS"),
            o = i("aCit"),
            s = i("v9UT"),
            l = i("Gg2j"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Circle", e.element = e.paper.add("circle"), e.setPercentProperty("radius", Object(a.c)(100)), e.setPropertyValue("horizontalCenter", "middle"), e.setPropertyValue("verticalCenter", "middle"), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this), this.element.attr({
                        r: this.pixelRadius
                    })
                }, Object.defineProperty(e.prototype, "radius", {
                    get: function() {
                        return this.getPropertyValue("radius")
                    },
                    set: function(t) {
                        this.setPercentProperty("radius", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelRadius", {
                    get: function() {
                        return s.relativeToValue(this.radius, l.min(this.innerWidth / 2, this.innerHeight / 2))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.measureElement = function() {
                    var t = this.pixelRadius;
                    this._bbox = {
                        x: -t,
                        y: -t,
                        width: 2 * t,
                        height: 2 * t
                    }
                }, e
            }(r.a);
        o.c.registeredClasses.Circle = u
    },
    G83T: function(t, e, i) {
        var n = i("0sYB"),
            r = Math.ceil,
            a = Math.floor;
        n({
            target: "Math",
            stat: !0
        }, {
            trunc: function(t) {
                return (t > 0 ? a : r)(t)
            }
        })
    },
    GAaQ: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return D
        });
        var n, r = i("m4/l"),
            a = i("qJno"),
            o = i("x79X"),
            s = i("Vs7R"),
            l = i("W8Sc"),
            u = i("vMqJ"),
            h = i("+qIf"),
            c = i("7XB+"),
            p = i("akNo"),
            d = i("CTEm"),
            f = i("P/bD"),
            g = i("/IEW"),
            y = i("8ZqG"),
            m = i("aCit"),
            v = i("Q4nc"),
            b = i("58Sn"),
            x = i("LBDG"),
            _ = i("Qkdp"),
            P = i("OVUc"),
            w = i("Mtpk"),
            O = i("v9UT"),
            T = i("hJ5i"),
            S = i("Gg2j");
        var C = /src: ([^;]+);/;

        function I(t, e, i) {
            return Object(r.b)(this, void 0, void 0, function() {
                var n, a, o, s;
                return Object(r.d)(this, function(l) {
                    switch (l.label) {
                        case 0:
                            return l.trys.push([0, 2, , 3]), [4, P.a(e)];
                        case 1:
                            return n = l.sent(), [3, 3];
                        case 2:
                            return a = l.sent(), console.error("Failed to load stylesheet", e, a), [2];
                        case 3:
                            (o = t.createElement("style")).textContent = n.response, t.head.appendChild(o), l.label = 4;
                        case 4:
                            return l.trys.push([4, , 7, 8]), [4, function(t) {
                                return Object(r.b)(this, void 0, void 0, function() {
                                    var e;
                                    return Object(r.d)(this, function(i) {
                                        switch (i.label) {
                                            case 0:
                                                e = t.sheet, i.label = 1;
                                            case 1:
                                                return i.trys.push([1, 2, , 4]), [2, e.cssRules];
                                            case 2:
                                                return i.sent(), [4, new Promise(function(i, n) {
                                                    t.addEventListener("load", function() {
                                                        i(e.cssRules)
                                                    }, !0), t.addEventListener("error", function(t) {
                                                        n(t)
                                                    }, !0), setTimeout(function() {
                                                        n(new Error("Timeout while waiting for <style> to load"))
                                                    }, 1e4)
                                                })];
                                            case 3:
                                                return [2, i.sent()];
                                            case 4:
                                                return [2]
                                        }
                                    })
                                })
                            }(o)];
                        case 5:
                            return s = l.sent(), [4, k(t, e, s, i)];
                        case 6:
                            return l.sent(), [3, 8];
                        case 7:
                            return t.head.removeChild(o), [7];
                        case 8:
                            return [2]
                    }
                })
            })
        }

        function k(t, e, i, n) {
            return Object(r.b)(this, void 0, void 0, function() {
                var a, o, s, l, u;
                return Object(r.d)(this, function(r) {
                    switch (r.label) {
                        case 0:
                            for (a = [], o = i.length, s = 0; s < o; s++)(l = i[s]).type === CSSRule.IMPORT_RULE ? (u = l.href) && (u = O.joinUrl(e, u), a.push(I(t, u, n))) : n(e, l);
                            return a.length ? [4, Promise.all(a)] : [3, 2];
                        case 1:
                            r.sent(), r.label = 2;
                        case 2:
                            return [2]
                    }
                })
            })
        }
        var D = function(t) {
            function e(e) {
                var i = t.call(this) || this;
                return i.adapter = new o.a(i), i._formatOptions = new h.a, i._extraSprites = [], i._validateSprites = [], i._dynamicDataFields = !0, i._removedObjects = new u.b, i._hiddenObjects = [], i._objectsAlreadyHidden = !1, i._filePrefix = "amCharts", i.useWebFonts = !0, i.useRetina = !0, i.useSimplifiedExport = !0, i.timeoutDelay = 2e3, i._container = e, i.className = "Export", i._formatOptions.setKey("png", {}), i._formatOptions.setKey("jpg", {
                    quality: .8
                }), i._formatOptions.setKey("gif", {}), i._formatOptions.setKey("svg", {}), i._formatOptions.setKey("pdf", {
                    fontSize: 14,
                    imageFormat: "png",
                    addURL: !0,
                    addColumnNames: !0
                }), i._formatOptions.setKey("json", {
                    indent: 2,
                    useLocale: !0
                }), i._formatOptions.setKey("csv", {
                    addColumnNames: !0,
                    emptyAs: ""
                }), i._formatOptions.setKey("xlsx", {
                    addColumnNames: !0,
                    useLocale: !0,
                    emptyAs: ""
                }), i._formatOptions.setKey("html", {
                    addColumnNames: !0,
                    emptyAs: ""
                }), i._formatOptions.setKey("pdfdata", {
                    fontSize: 14,
                    imageFormat: "png",
                    addURL: !0,
                    addColumnNames: !0,
                    emptyAs: ""
                }), i._formatOptions.setKey("print", {
                    delay: 500,
                    printMethod: "iframe"
                }), i.adapter.add("options", function(t) {
                    var e = i._formatOptions.getKey(t.type);
                    return t.options ? t.options = _.merge(e, t.options) : t.options = e, t
                }), i.applyTheme(), i.dispatchImmediately("inited"), i
            }
            return Object(r.c)(e, t), Object.defineProperty(e.prototype, "menu", {
                get: function() {
                    return this._menu
                },
                set: function(t) {
                    var e = this;
                    this._menu && this.removeDispose(this._menu), this._menu = t, this._menu.container = this.container, this._menu.language = this._language, this._menu.adapter.add("branch", function(t) {
                        return t.branch.unsupported = !e.typeSupported(t.branch.type), t
                    }), this._menu.events.on("hit", function(t) {
                        e.export(t.branch.type, t.branch.options), e.menu.close()
                    }), this._menu.events.on("enter", function(t) {
                        e.export(t.branch.type, t.branch.options), e.menu.close()
                    }), this._menu.events.on("over", function(t) {
                        e._disablePointers()
                    }), this._menu.events.on("out", function(t) {
                        e._releasePointers()
                    }), this.dispatchImmediately("menucreated"), this._menu.adapter.add("classPrefix", function(t) {
                        return t.classPrefix = v.a.classNamePrefix + t.classPrefix, t
                    }), this._disposers.push(this._menu)
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.typeSupported = function(t) {
                var e = !0;
                return "pdf" === t || ("xlsx" === t ? e = !!this._hasData() : ("print" != t || window.print) && (-1 === ["json", "csv", "html", "pdfdata"].indexOf(t) || this._hasData()) || (e = !1)), this.adapter.apply("supported", {
                    supported: e,
                    type: t
                }).supported
            }, e.prototype._hasData = function() {
                return this.data && this.data.length
            }, e.prototype._getFunction = function(t) {
                switch (t) {
                    case "png":
                    case "gif":
                    case "jpg":
                        return this.getImage;
                    case "svg":
                        return this.getSVG;
                    case "pdf":
                    case "pdfdata":
                        return this.getPDF;
                    case "xlsx":
                        return this.getExcel;
                    case "csv":
                        return this.getCSV;
                    case "json":
                        return this.getJSON;
                    case "html":
                        return this.getHTML;
                    case "print":
                        return this.getPrint;
                    default:
                        return this.unsupported
                }
            }, e.prototype.export = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var i, n, a, o, s, l = this;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                return "custom" == t ? (this.handleCustom(e), [2, !0]) : (this.events.isEnabled("exportstarted") && (i = {
                                    type: "exportstarted",
                                    target: this,
                                    format: t,
                                    options: e
                                }, this.events.dispatchImmediately("exportstarted", i)), this.showPreloader(), this.timeoutDelay && (this.hideTimeout(), this._timeoutTimeout = this.setTimeout(function() {
                                    if (l.events.isEnabled("exporttimedout")) {
                                        var i = {
                                            type: "exporttimedout",
                                            target: l,
                                            format: t,
                                            options: e
                                        };
                                        l.events.dispatchImmediately("exporttimedout", i)
                                    }
                                    l.showTimeout()
                                }, this.timeoutDelay)), this.hideNonExportableSprites(), n = this._getFunction(t), e = this.adapter.apply("options", {
                                    options: e,
                                    type: t
                                }).options, [4, (n = this.adapter.apply("exportFunction", {
                                    func: n,
                                    type: t,
                                    options: e
                                }).func).call(this, t, e)]);
                            case 1:
                                return a = r.sent(), this.restoreNonExportableSprites(), a ? (this.events.isEnabled("exportfinished") && (o = {
                                    type: "exportfinished",
                                    target: this,
                                    format: t,
                                    options: e
                                }, this.events.dispatchImmediately("exportfinished", o)), this.hidePreloader(), this.hideTimeout(), this.menu && this.menu.close(), "print" === t ? [2, this.print(a, e, this.adapter.apply("title", {
                                    title: this.title,
                                    options: e
                                }).title)] : "pdfdata" == t ? [2, this.download(a, this.filePrefix + ".pdf")] : [2, this.download(a, this.filePrefix + "." + t)]) : (this.events.isEnabled("error") && (s = {
                                    type: "error",
                                    target: this,
                                    format: t,
                                    options: e
                                }, this.events.dispatchImmediately("error", s)), [2, !1])
                        }
                    })
                })
            }, e.prototype.unsupported = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    return Object(r.d)(this, function(t) {
                        return [2, ""]
                    })
                })
            }, e.prototype.handleCustom = function(t) {
                w.hasValue(t) && w.hasValue(t.callback) && t.callback.call(t.callbackTarget || this, t)
            }, e.prototype.getPrint = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    return Object(r.d)(this, function(t) {
                        return [2, this.getImage("png", e)]
                    })
                })
            }, e.prototype.getFontFamilies = function() {
                return Object(r.b)(this, void 0, void 0, function() {
                    var t, e, i, n, a = this;
                    return Object(r.d)(this, function(o) {
                        switch (o.label) {
                            case 0:
                                return t = this.getDOMURL(), e = [], i = [], [4, function(t) {
                                    return Object(r.b)(this, void 0, void 0, function() {
                                        var e, i;
                                        return Object(r.d)(this, function(n) {
                                            switch (n.label) {
                                                case 0:
                                                    (e = document.createElement("iframe")).src = "about:blank", e.setAttribute("title", ""), document.head.appendChild(e), n.label = 1;
                                                case 1:
                                                    return n.trys.push([1, , 3, 4]), i = e.contentDocument, [4, Promise.all(T.map(document.styleSheets, function(e) {
                                                        var n = e.href;
                                                        return null == n ? k(i, location.href, e.cssRules, t) : (n = O.joinUrl(location.href, n), I(i, n, t))
                                                    }))];
                                                case 2:
                                                    return n.sent(), [3, 4];
                                                case 3:
                                                    return document.head.removeChild(e), [7];
                                                case 4:
                                                    return [2]
                                            }
                                        })
                                    })
                                }(function(n, o) {
                                    if (o.type === CSSRule.FONT_FACE_RULE) {
                                        var s = o.cssText,
                                            l = C.exec(s);
                                        if (null !== l) {
                                            var u = l[1].split(/ *, */).map(function(i) {
                                                return Object(r.b)(a, void 0, void 0, function() {
                                                    var a, o, s, l, u, h;
                                                    return Object(r.d)(this, function(r) {
                                                        switch (r.label) {
                                                            case 0:
                                                                return null !== (a = /^url\(["']?([^"'\)]+)["']?\)([^,]*)$/.exec(i)) ? [3, 1] : [2, i];
                                                            case 1:
                                                                o = a[2], s = O.joinUrl(n, a[1]), r.label = 2;
                                                            case 2:
                                                                return r.trys.push([2, 7, , 8]), [4, P.a(s, void 0, {
                                                                    responseType: "blob"
                                                                })];
                                                            case 3:
                                                                return l = r.sent(), null == window.navigator.msSaveOrOpenBlob ? [3, 4] : (u = t.createObjectURL(l.blob), e.push(u), [3, 6]);
                                                            case 4:
                                                                return [4, function(t) {
                                                                    return new Promise(function(e, i) {
                                                                        var n = new FileReader;
                                                                        n.onload = function(t) {
                                                                            e(n.result)
                                                                        }, n.onerror = function(t) {
                                                                            i(t)
                                                                        }, n.readAsDataURL(t)
                                                                    })
                                                                }(l.blob)];
                                                            case 5:
                                                                u = r.sent(), r.label = 6;
                                                            case 6:
                                                                return [2, 'url("' + u + '")' + o];
                                                            case 7:
                                                                return h = r.sent(), console.error("Failed to load font", s, h), [2, null];
                                                            case 8:
                                                                return [2]
                                                        }
                                                    })
                                                })
                                            });
                                            i.push(Promise.all(u).then(function(t) {
                                                return 0 === (t = t.filter(function(t) {
                                                    return null != t
                                                })).length ? "" : s.replace(C, "src: " + t.join(", ") + ";")
                                            }))
                                        }
                                    }
                                })];
                            case 1:
                                return o.sent(), [4, Promise.all(i)];
                            case 2:
                                return n = o.sent(), [2, {
                                    blobs: e,
                                    cssText: n.filter(function(t) {
                                        return !!t
                                    }).join("\n")
                                }]
                        }
                    })
                })
            }, e.prototype.getImage = function(t, e, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var n, a, o, s, l;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                return (n = this._objectsAlreadyHidden) || this.hideNonExportableSprites(), w.hasValue(e) || (e = this.getFormatOptions(t)), [4, this.awaitValidSprites()];
                            case 1:
                                return r.sent(), [4, this.simplifiedImageExport()];
                            case 2:
                                if (!r.sent()) return [3, 10];
                                r.label = 3;
                            case 3:
                                return r.trys.push([3, 7, , 9]), [4, this.getCanvas(e)];
                            case 4:
                                return a = r.sent(), !1 === i ? [3, 6] : [4, this.addExtras(a, e)];
                            case 5:
                                a = r.sent(), r.label = 6;
                            case 6:
                                return o = a.toDataURL(this.getContentType(t), e.quality), this.disposeCanvas(a), n || this.restoreNonExportableSprites(), [2, o];
                            case 7:
                                return s = r.sent(), console.error(s.message + "\n" + s.stack), console.warn("Simple export failed, falling back to advanced export"), [4, this.getImageAdvanced(t, e, i)];
                            case 8:
                                return l = r.sent(), n || this.restoreNonExportableSprites(), [2, l];
                            case 9:
                                return [3, 12];
                            case 10:
                                return [4, this.getImageAdvanced(t, e, i)];
                            case 11:
                                return l = r.sent(), n || this.restoreNonExportableSprites(), [2, l];
                            case 12:
                                return [2]
                        }
                    })
                })
            }, e.prototype.addExtras = function(t, e, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var n, a, o, l, u, h, c, p, d, f, g, y, m, v, b = this;
                    return Object(r.d)(this, function(x) {
                        switch (x.label) {
                            case 0:
                                return this.extraSprites.length ? (n = 0, a = 0, o = t.width, l = t.height, u = 0, h = 0, [4, Promise.all(T.map(this.extraSprites, function(t) {
                                    return Object(r.b)(b, void 0, void 0, function() {
                                        var c, p, d, f;
                                        return Object(r.d)(this, function(r) {
                                            switch (r.label) {
                                                case 0:
                                                    return (c = t instanceof s.a ? {
                                                        sprite: t,
                                                        position: "bottom"
                                                    } : t).position = c.position || "bottom", c.marginTop = c.marginTop || 0, c.marginRight = c.marginRight || 0, c.marginBottom = c.marginBottom || 0, c.marginLeft = c.marginLeft || 0, i ? [4, c.sprite.exporting.getCanvasAdvanced(e)] : [3, 2];
                                                case 1:
                                                    return p = r.sent(), [3, 4];
                                                case 2:
                                                    return [4, c.sprite.exporting.getCanvas(e)];
                                                case 3:
                                                    p = r.sent(), r.label = 4;
                                                case 4:
                                                    return d = p.width + c.marginLeft + c.marginRight, f = p.height + c.marginTop + c.marginBottom, "top" == c.position ? (o = c.crop ? l : S.max(o, d), a += f) : "right" == c.position ? (l = c.crop ? l : S.max(l, f), u += d) : "left" == c.position ? (l = c.crop ? l : S.max(l, f), n += d) : "bottom" === c.position && (o = c.crop ? l : S.max(o, d), h += f), [2, {
                                                        canvas: p,
                                                        position: c.position,
                                                        left: c.marginLeft,
                                                        top: c.marginTop,
                                                        width: d,
                                                        height: f
                                                    }]
                                            }
                                        })
                                    })
                                }))]) : [3, 2];
                            case 1:
                                return c = x.sent(), (p = this.getDisposableCanvas()).width = n + o + u, p.height = a + l + h, d = p.getContext("2d"), (f = this.backgroundColor || this.findBackgroundColor(this.sprite.dom)) && (d.fillStyle = f.toString(), d.fillRect(0, 0, p.width, p.height)), m = (g = n) + o, v = (y = a) + l, T.each(c, function(t) {
                                    "top" == t.position ? (y -= t.height, d.drawImage(t.canvas, n + t.left, y + t.top)) : "right" == t.position ? (d.drawImage(t.canvas, m + t.left, a + t.top), m += t.width) : "left" == t.position ? (g -= t.width, d.drawImage(t.canvas, g + t.left, a + t.top)) : "bottom" === t.position && (d.drawImage(t.canvas, n + t.left, v + t.top), v += t.height), b.disposeCanvas(t.canvas)
                                }), d.drawImage(t, n, a), [2, p];
                            case 2:
                                return [2, t]
                        }
                    })
                })
            }, e.prototype.getCanvas = function(t) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var e, i, n, a, o, s, l, u, h, c, p, d, f, g, y, m;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                w.hasValue(t) || (t = {}), e = this.backgroundColor || this.findBackgroundColor(this.sprite.dom), i = this.getDOMURL(), n = null, a = null, r.label = 1;
                            case 1:
                                return r.trys.push([1, , 4, 5]), s = this.sprite.pixelWidth, l = this.sprite.pixelHeight, u = b.l(this.sprite.dom), h = b.m(this.sprite.dom), o = this.getDisposableCanvas(), c = this.getPixelRatio(t), o.style.width = s + "px", o.style.height = l + "px", o.width = s * c, o.height = l * c, p = o.getContext("2d"), 1 != c && p.setTransform(c, 0, 0, c, 0, 0), e && (p.fillStyle = e.toString(), p.fillRect(0, 0, s, l)), d = [], this.useWebFonts && d.push(this.getFontFamilies().then(function(t) {
                                    return a = t.blobs, t.cssText
                                })), d.push(this.imagesToDataURI(this.sprite.dom, t)), d.push(this.prepForeignObjects(this.sprite.dom, t)), [4, Promise.all(d)];
                            case 2:
                                return f = r.sent(), g = this.normalizeSVG("<style>" + f[0] + "</style>" + this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), t, s, l, u, h), y = new Blob([g], {
                                    type: "image/svg+xml"
                                }), n = i.createObjectURL(y), [4, this.loadNewImage(n, s, l, "anonymous")];
                            case 3:
                                return m = r.sent(), p.drawImage(m, 0, 0), [3, 5];
                            case 4:
                                return null !== n && i.revokeObjectURL(n), null !== a && T.each(a, function(t) {
                                    i.revokeObjectURL(t)
                                }), this.restoreRemovedObjects(), [7];
                            case 5:
                                return [2, o]
                        }
                    })
                })
            }, e.prototype.getCanvasAdvanced = function(t) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var e, i, n, a, o, s, l, u, h, c;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                return w.hasValue(t) || (t = {}), [4, this.imagesToDataURI(this.sprite.dom, t)];
                            case 1:
                                return r.sent(), e = this.backgroundColor || this.findBackgroundColor(this.sprite.dom), [4, this.canvg];
                            case 2:
                                return i = r.sent(), n = this.sprite.pixelWidth, a = this.sprite.pixelHeight, o = b.l(this.sprite.dom), s = b.m(this.sprite.dom), l = this.normalizeSVG(this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), t, n, a, o, s, e), u = this.getDisposableCanvas(), h = this.getPixelRatio(t), u.style.width = n * h + "px", u.style.height = a * h + "px", u.width = n * h, u.height = a * h, c = {
                                    useCORS: !0
                                }, 1 != h && (c.ignoreDimensions = !0, c.scaleWidth = n * h, c.scaleHeight = a * h), i(u, l, c), [2, u]
                        }
                    })
                })
            }, e.prototype.getImageAdvanced = function(t, e, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var n, a, o;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                return (n = this._objectsAlreadyHidden) || this.hideNonExportableSprites(), w.hasValue(e) || (e = this.getFormatOptions(t)), [4, this.getCanvasAdvanced(e)];
                            case 1:
                                return a = r.sent(), !1 === i ? [3, 3] : [4, this.addExtras(a, e, !0)];
                            case 2:
                                a = r.sent(), r.label = 3;
                            case 3:
                                return o = a.toDataURL(this.getContentType(t), e.quality), this.disposeCanvas(a), n || this.restoreNonExportableSprites(), [2, o]
                        }
                    })
                })
            }, e.prototype.getDisposableCanvas = function() {
                var t = document.createElement("canvas");
                return t.style.position = "fixed", t.style.top = "-10000px", document.body.appendChild(t), t
            }, e.prototype.disposeCanvas = function(t) {
                document.body.removeChild(t)
            }, e.prototype.getPixelRatio = function(t) {
                var e = t && t.scale ? t.scale : 1;
                return (this.useRetina ? O.getPixelRatio() : 1) * e
            }, e.prototype.imagesToDataURI = function(t, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var n, a, o, s, l, u;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                if (!(n = t.querySelectorAll("image")).length) return [3, 2];
                                for (a = [], o = n.length, s = 0; s < o; s++) l = n[s], (u = l.getAttributeNS(e.XLINK, "href")) && (-1 !== u.indexOf("data:image") || (-1 !== u.indexOf(".svg") ? a.push(this.svgToDataURI(l, i)) : a.push(this.imageToDataURI(l, i))));
                                return [4, Promise.all(a)];
                            case 1:
                                return r.sent(), [2];
                            case 2:
                                return [2]
                        }
                    })
                })
            }, e.prototype.prepForeignObjects = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var e, i, n;
                    return Object(r.d)(this, function(r) {
                        if ((e = t.querySelectorAll("foreignObject")).length)
                            for (i = e.length, n = 0; n < i; n++) this.temporarilyRemoveObject(e[n]);
                        return [2]
                    })
                })
            }, e.prototype.imageToDataURI = function(t, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var n, a, o;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                return r.trys.push([0, 2, , 3]), [4, this.loadNewImage(t.getAttributeNS(e.XLINK, "href"), null, null, "anonymous")];
                            case 1:
                                n = r.sent(), (a = document.createElement("canvas")).width = n.width, a.height = n.height, a.getContext("2d").drawImage(n, 0, 0);
                                try {
                                    return o = a.toDataURL(), t.setAttribute("href", o), [2, o]
                                } catch (e) {
                                    return !1 !== i.keepTainted && this.temporarilyRemoveObject(t), [2, void 0]
                                }
                                return [3, 3];
                            case 2:
                                return r.sent(), i && !1 === i.keepTainted || this.temporarilyRemoveObject(t), [2, void 0];
                            case 3:
                                return [2]
                        }
                    })
                })
            }, e.prototype.svgToDataURI = function(t, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var n, a, o, s;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                n = t.getAttributeNS(e.XLINK, "href"), r.label = 1;
                            case 1:
                                return r.trys.push([1, 3, , 4]), [4, P.a(n)];
                            case 2:
                                return a = r.sent(), o = this.adapter.apply("charset", {
                                    charset: "base64",
                                    type: "svg",
                                    options: i
                                }).charset, s = this.adapter.apply("svgToDataURI", {
                                    data: "data:" + this.getContentType("svg") + ";" + o + "," + btoa(a.response),
                                    options: i
                                }).data, t.setAttributeNS(e.XLINK, "href", s), [2, s];
                            case 3:
                                return r.sent(), i && !1 === i.keepTainted || this.temporarilyRemoveObject(t), [2, void 0];
                            case 4:
                                return [2]
                        }
                    })
                })
            }, e.prototype.temporarilyRemoveObject = function(t, e) {
                var i = t.parentElement || t.parentNode;
                e || (e = this.sprite.paper.add("g").node), i.insertBefore(e, t), t.textContent, i.removeChild(t), this._removedObjects.push({
                    element: t,
                    placeholder: e
                })
            }, e.prototype.restoreRemovedObjects = function() {
                for (var t; t = this._removedObjects.pop();) {
                    (t.placeholder.parentElement || t.placeholder.parentNode).insertBefore(t.element, t.placeholder)
                }
            }, e.prototype.simplifiedImageExport = function() {
                return Object(r.b)(this, void 0, void 0, function() {
                    var t, e, i, n, a, o, s;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                if (!1 === this.useSimplifiedExport) return [2, !1];
                                if (!1 === (t = m.c.getCache("simplifiedImageExport")) || !0 === t) return [2, t];
                                r.label = 1;
                            case 1:
                                r.trys.push([1, 6, , 7]), (e = document.createElement("canvas")).width = 1, e.height = 1, i = e.getContext("2d"), n = this.getDOMURL(), a = new Blob([this.normalizeSVG("<g></g>", {}, 1, 1)], {
                                    type: "image/svg+xml"
                                }), o = n.createObjectURL(a), s = void 0, r.label = 2;
                            case 2:
                                return r.trys.push([2, 4, , 5]), [4, this.loadNewImage(o, 1, 1)];
                            case 3:
                                return s = r.sent(), [3, 5];
                            case 4:
                                return r.sent(), [2, !1];
                            case 5:
                                i.drawImage(s, 0, 0), n.revokeObjectURL(o);
                                try {
                                    return m.c.setCache("simplifiedImageExport", !0), [2, !0]
                                } catch (t) {
                                    return m.c.setCache("simplifiedImageExport", !1), [2, !1]
                                }
                                return [3, 7];
                            case 6:
                                return r.sent(), m.c.setCache("simplifiedImageExport", !1), [2, !1];
                            case 7:
                                return [2]
                        }
                    })
                })
            }, e.prototype.loadNewImage = function(t, e, i, n) {
                return new Promise(function(r, a) {
                    var o;

                    function s() {
                        if (n) {
                            var e = o.src;
                            o.onerror = function() {
                                a(new Error('Loading image "' + t + '" failed'))
                            }, o.removeAttribute("crossorigin"), o.src = "", o.src = e
                        } else a(new Error('Loading image "' + t + '" failed'))
                    }
                    o = e && i ? new Image(e, i) : new Image, n && o.setAttribute("crossOrigin", n), o.onload = function() {
                        r(o)
                    }, o.onabort = s, o.onerror = s, o.src = t
                })
            }, e.prototype.getDOMURL = function() {
                return self.URL || self.webkitURL || self
            }, e.prototype.getSVG = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var i, n, a, o, s, l, u, h;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                return (i = this._objectsAlreadyHidden) || this.hideNonExportableSprites(), [4, this.awaitValidSprites()];
                            case 1:
                                return r.sent(), n = this.sprite.pixelWidth, a = this.sprite.pixelHeight, o = b.l(this.sprite.dom), s = b.m(this.sprite.dom), l = this.normalizeSVG(this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), e, n, a, o, s), u = this.adapter.apply("charset", {
                                    charset: "charset=utf-8",
                                    type: "svg",
                                    options: e
                                }).charset, h = this.adapter.apply("getSVG", {
                                    data: "data:" + this.getContentType(t) + ";" + u + "," + encodeURIComponent(l),
                                    options: e
                                }).data, i || this.restoreNonExportableSprites(), [2, h]
                        }
                    })
                })
            }, e.prototype.normalizeSVG = function(t, e, i, n, r, a, o) {
                var s = "";
                i && (s += 'width="' + i + 'px" '), n && (s += 'height="' + n + 'px" ');
                var l = "";
                r && (l += "font-family: " + r.replace(/"/g, "") + ";"), a && (l += "font-size: " + a + ";"), t.match(/<svg/) ? "" !== s && (t = (t = (t = t.replace(/(<svg[^>]*)width="[^"]*"/, "$1")).replace(/(<svg[^>]*)height="[^"]*"/, "$1")).replace(/(<svg)/, "$1" + s)) : t = '<?xml version="1.0" encoding="utf-8"?><svg ' + s + ' style="' + l + '" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">' + t + "</svg>", o && (t = t.replace(/(<svg[^>]*>)/, '$1<rect width="100%" height="100%" fill="' + o.rgba + '"/>')), x.a() && (t = t.replace(/<feColorMatrix [^\/>]*\/>/gi, ""));
                var u = new RegExp("url\\(" + O.escapeForRgex(O.getBaseURI()), "g");
                return t = t.replace(u, "url(#"), t = this.adapter.apply("normalizeSVG", {
                    data: t,
                    options: e
                }).data
            }, e.prototype.serializeElement = function(t) {
                return (new XMLSerializer).serializeToString(t)
            }, e.prototype.getPDF = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var i, n, a, o, s, l, u, h;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                return [4, this.getImage(e.imageFormat || "png", e)];
                            case 1:
                                return i = r.sent(), [4, this.pdfmake];
                            case 2:
                                return n = r.sent(), a = [30, 30, 30, 30], o = {
                                    pageSize: e.pageSize || "A4",
                                    pageOrientation: e.pageOrientation || "portrait",
                                    pageMargins: e.pageMargins || a,
                                    content: []
                                }, (s = this.adapter.apply("title", {
                                    title: this.title,
                                    options: e
                                }).title) && o.content.push({
                                    text: s,
                                    fontSize: e.fontSize,
                                    bold: !0,
                                    margin: [0, 0, 0, 15]
                                }), e.addURL && o.content.push({
                                    text: this.language.translate("Saved from") + ": " + document.location.href,
                                    fontSize: e.fontSize,
                                    margin: [0, 0, 0, 15]
                                }), "pdfdata" != t && o.content.push({
                                    image: i,
                                    fit: this.getPageSizeFit(o.pageSize, o.pageMargins)
                                }), "pdfdata" == t || e.addData ? (u = (l = o.content).push, h = {}, [4, this.getPDFData("pdf", e)]) : [3, 4];
                            case 3:
                                u.apply(l, [(h.table = r.sent(), h)]), r.label = 4;
                            case 4:
                                return o = this.adapter.apply("pdfmakeDocument", {
                                    doc: o,
                                    options: e
                                }).doc, [4, new Promise(function(t, e) {
                                    n.createPdf(o).getDataUrl(function(e) {
                                        t(e)
                                    })
                                })];
                            case 5:
                                return [2, r.sent()]
                        }
                    })
                })
            }, e.prototype.getPDFData = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var t, i, n, a, o, s = this;
                    return Object(r.d)(this, function(r) {
                        if (t = {
                                body: []
                            }, i = this.adapter.apply("formatDataFields", {
                                dataFields: this.dataFields,
                                format: "pdf"
                            }).dataFields, n = this.data, e.pivot) _.each(i, function(i, r) {
                            var a = [];
                            e.addColumnNames && a.push(r);
                            for (var o = n.length, l = 0; l < o; l++) {
                                var u = n[l][i];
                                a.push(s.convertToSpecialFormat(i, u, e, !0))
                            }
                            t.body.push(s.getPDFDataRow(a, e, void 0, !0))
                        });
                        else
                            for (e.addColumnNames && (t.body.push(this.getPDFDataRow(i, e, void 0, !0)), t.headerRows = 1), a = n.length, o = 0; o < a; o++) t.body.push(this.getPDFDataRow(n[o], e, i));
                        return [2, this.adapter.apply("pdfmakeTable", {
                            table: t,
                            options: e
                        }).table]
                    })
                })
            }, e.prototype.getPDFDataRow = function(t, e, i, n) {
                var r = this;
                void 0 === n && (n = !1);
                var a = [];
                return i || (i = t), _.each(i, function(i, o) {
                    var s = r.convertEmptyValue(i, t[i], e),
                        l = n ? s : r.convertToSpecialFormat(i, s, e);
                    l = "" + l, a.push(l)
                }), a
            }, e.prototype.getPageSizeFit = function(t, e) {
                var i = [0, 0, 0, 0];
                "number" == typeof e ? i = [e, e, e, e] : 2 == e.length ? i = [e[0], e[1], e[0], e[1]] : 4 == e.length && (i = e);
                var n = {
                    "4A0": [4767.87, 6740.79],
                    "2A0": [3370.39, 4767.87],
                    A0: [2383.94, 3370.39],
                    A1: [1683.78, 2383.94],
                    A2: [1190.55, 1683.78],
                    A3: [841.89, 1190.55],
                    A4: [595.28, 841.89],
                    A5: [419.53, 595.28],
                    A6: [297.64, 419.53],
                    A7: [209.76, 297.64],
                    A8: [147.4, 209.76],
                    A9: [104.88, 147.4],
                    A10: [73.7, 104.88],
                    B0: [2834.65, 4008.19],
                    B1: [2004.09, 2834.65],
                    B2: [1417.32, 2004.09],
                    B3: [1000.63, 1417.32],
                    B4: [708.66, 1000.63],
                    B5: [498.9, 708.66],
                    B6: [354.33, 498.9],
                    B7: [249.45, 354.33],
                    B8: [175.75, 249.45],
                    B9: [124.72, 175.75],
                    B10: [87.87, 124.72],
                    C0: [2599.37, 3676.54],
                    C1: [1836.85, 2599.37],
                    C2: [1298.27, 1836.85],
                    C3: [918.43, 1298.27],
                    C4: [649.13, 918.43],
                    C5: [459.21, 649.13],
                    C6: [323.15, 459.21],
                    C7: [229.61, 323.15],
                    C8: [161.57, 229.61],
                    C9: [113.39, 161.57],
                    C10: [79.37, 113.39],
                    RA0: [2437.8, 3458.27],
                    RA1: [1729.13, 2437.8],
                    RA2: [1218.9, 1729.13],
                    RA3: [864.57, 1218.9],
                    RA4: [609.45, 864.57],
                    SRA0: [2551.18, 3628.35],
                    SRA1: [1814.17, 2551.18],
                    SRA2: [1275.59, 1814.17],
                    SRA3: [907.09, 1275.59],
                    SRA4: [637.8, 907.09],
                    EXECUTIVE: [521.86, 756],
                    FOLIO: [612, 936],
                    LEGAL: [612, 1008],
                    LETTER: [612, 792],
                    TABLOID: [792, 1224]
                } [t];
                return n[0] -= i[0] + i[2], n[1] -= i[1] + i[3], n
            }, e.prototype.getExcel = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var i, n, a, o, s, l, u, h, c = this;
                    return Object(r.d)(this, function(r) {
                        switch (r.label) {
                            case 0:
                                return [4, this.xlsx];
                            case 1:
                                if (i = r.sent(), n = this.adapter.apply("xlsxWorkbookOptions", {
                                        options: {
                                            bookType: "xlsx",
                                            bookSST: !1,
                                            type: "base64"
                                        }
                                    }).options, a = this.normalizeExcelSheetName(this.adapter.apply("xlsxSheetName", {
                                        name: this.title || this.language.translate("Data")
                                    }).name), o = {
                                        SheetNames: [a],
                                        Sheets: {}
                                    }, s = [], l = this.adapter.apply("formatDataFields", {
                                        dataFields: this.dataFields,
                                        format: "xslx"
                                    }).dataFields, e.pivot) _.each(l, function(t, i) {
                                    var n = [];
                                    e.addColumnNames && n.push(i);
                                    for (var r = c.data.length, a = 0; a < r; a++) {
                                        var o = c.data[a][t];
                                        n.push(c.convertToSpecialFormat(t, o, e, !0))
                                    }
                                    s.push(c.getExcelRow(n, e, void 0, !0))
                                });
                                else
                                    for (e.addColumnNames && s.push(this.getExcelRow(l, e, void 0, !0)), u = this.data.length, h = 0; h < u; h++) s.push(this.getExcelRow(this.data[h], e, l));
                                return o.Sheets[a] = i.utils.aoa_to_sheet(s), [2, this.adapter.apply("getExcel", {
                                    data: "data:" + this.getContentType(t) + ";base64," + i.write(o, n),
                                    options: e
                                }).data]
                        }
                    })
                })
            }, e.prototype.normalizeExcelSheetName = function(t) {
                return t = t.replace(/([:\\\/?*\[\]]+)/g, " "), O.truncateWithEllipsis(t, 31, "...", !0)
            }, e.prototype.getExcelRow = function(t, e, i, n) {
                var r = this;
                void 0 === n && (n = !1);
                var a = [];
                return i || (i = t), _.each(i, function(i, o) {
                    var s = r.convertEmptyValue(i, t[i], e),
                        l = n ? s : r.convertToSpecialFormat(i, s, e, !0);
                    a.push(l)
                }), a
            }, e.prototype.getCSV = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var i, n, a, o, s, l, u, h, c = this;
                    return Object(r.d)(this, function(r) {
                        if (i = "", n = this.adapter.apply("formatDataFields", {
                                dataFields: this.dataFields,
                                format: "csv"
                            }).dataFields, a = "", o = this.data, e.pivot) _.each(n, function(t, n) {
                            var r = [];
                            e.addColumnNames && r.push(n);
                            for (var s = o.length, l = 0; l < s; l++) {
                                var u = o[l][t];
                                r.push(c.convertToSpecialFormat(t, u, e, !0))
                            }
                            i += a + c.getCSVRow(r, e, void 0, !0), a = "\n"
                        });
                        else {
                            for (s = o.length, l = 0; l < s; l++) u = this.getCSVRow(o[l], e, n), e.reverse ? i = u + a + i : i += a + u, a = "\n";
                            e.addColumnNames && (i = this.getCSVRow(n, e, void 0, !0) + a + i)
                        }
                        return h = this.adapter.apply("charset", {
                            charset: "charset=utf-8",
                            type: t,
                            options: e
                        }).charset, [2, this.adapter.apply("getCSV", {
                            data: "data:" + this.getContentType(t) + ";" + h + "," + encodeURIComponent(i),
                            options: e
                        }).data]
                    })
                })
            }, e.prototype.getCSVRow = function(t, e, i, n) {
                var r = this;
                void 0 === n && (n = !1);
                var a = e.separator || ",",
                    o = [];
                return i || (i = t), _.each(i, function(i, s) {
                    var l = r.convertEmptyValue(i, t[i], e),
                        u = n ? l : r.convertToSpecialFormat(i, l, e);
                    u = (u = "" + u).replace(/"/g, '""'), (e.forceQuotes || u.search(new RegExp('"|\n|' + a, "g")) >= 0) && (u = '"' + u + '"'), o.push(u)
                }), o.join(a)
            }, e.prototype.getHTML = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var i, n, a, o, s, l, u = this;
                    return Object(r.d)(this, function(r) {
                        if (i = "<table>", e.tableClass && (i = '<table class="' + e.tableClass + '">'), n = this.adapter.apply("formatDataFields", {
                                dataFields: this.dataFields,
                                format: "html"
                            }).dataFields, a = this.data, e.pivot) _.each(n, function(t, n) {
                            var r = [];
                            e.addColumnNames && r.push(n);
                            for (var o = a.length, s = 0; s < o; s++) {
                                var l = a[s][t];
                                r.push(u.convertToSpecialFormat(t, l, e, !0))
                            }
                            i += "\n" + u.getHTMLRow(r, e, void 0, !0)
                        });
                        else
                            for (e.addColumnNames && (i += "\n" + this.getHTMLRow(n, e, void 0, !0, !0)), o = a.length, s = 0; s < o; s++) i += "\n" + this.getHTMLRow(a[s], e, n);
                        return i += "</table>", l = this.adapter.apply("charset", {
                            charset: "charset=utf-8",
                            type: t,
                            options: e
                        }).charset, [2, this.adapter.apply("getHTML", {
                            data: "data:" + this.getContentType(t) + ";" + l + "," + encodeURIComponent(i),
                            options: e
                        }).data]
                    })
                })
            }, e.prototype.getHTMLRow = function(t, e, i, n, r) {
                var a = this;
                void 0 === n && (n = !1), void 0 === r && (r = !1);
                var o = "\t<tr>";
                e.rowClass && (o = '\t<tr class="' + e.rowClass + '">'), i || (i = t);
                var s = r ? "th" : "td",
                    l = !0;
                return _.each(i, function(i, r) {
                    var u = a.convertEmptyValue(i, t[i], e),
                        h = n ? u : a.convertToSpecialFormat(i, u, e);
                    h = (h = "" + h).replace(/[\u00A0-\u9999<>\&]/gim, function(t) {
                        return "&#" + t.charCodeAt(0) + ";"
                    });
                    var c = s;
                    e.pivot && l && (c = "th"), e.cellClass ? o += "\n\t\t<" + c + ' class="' + e.cellClass + '">' + h + "</" + c + ">" : o += "\n\t\t<" + c + ">" + h + "</" + c + ">", l = !1
                }), o += "\n\t</tr>"
            }, e.prototype.getJSON = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var i, n, a, o, s, l, u, h, c = this;
                    return Object(r.d)(this, function(r) {
                        if (n = this.adapter.apply("formatDataFields", {
                                dataFields: this.dataFields,
                                format: "csv"
                            }).dataFields, this._dynamicDataFields) i = this.data;
                        else
                            for (i = [], a = this.data, o = function(t, r) {
                                    var o = a[r];
                                    if ("object" == typeof o) {
                                        var s = {};
                                        _.each(o, function(t, i) {
                                            w.hasValue(n[t]) && (s[n[t]] = c.convertToSpecialFormat(t, i, e))
                                        }), i.push(s)
                                    }
                                }, s = a.length, l = 0; l < s; l++) o(s, l);
                        return u = JSON.stringify(i, function(t, i) {
                            return "object" == typeof i && _.each(i, function(t, n) {
                                i[t] = c.convertToSpecialFormat(t, n, e)
                            }), i
                        }, e.indent), h = this.adapter.apply("charset", {
                            charset: "charset=utf-8",
                            type: t,
                            options: e
                        }).charset, [2, this.adapter.apply("getJSON", {
                            data: "data:" + this.getContentType(t) + ";" + h + "," + encodeURIComponent(u),
                            options: e
                        }).data]
                    })
                })
            }, e.prototype.convertToSpecialFormat = function(t, e, i, n) {
                if ("number" == typeof e)
                    if (this.isDateField(t)) e = new Date(e);
                    else {
                        if (this.isDurationField(t)) return this.durationFormatter.format(e, this.durationFormat);
                        if (this.isNumberField(t) && this.numberFormat) return this.numberFormatter.format(e, this.numberFormat)
                    } return e instanceof Date ? i.useTimestamps ? e = e.getTime() : i.useLocale ? n || (e = e.toLocaleString()) : e = this.dateFormatter.format(e, this.dateFormat) : w.isString(e) && this.isDateField(t) && this.dateFormat && (e = this.dateFormatter.format(this.dateFormatter.parse(e), this.dateFormat)), e
            }, e.prototype.convertEmptyValue = function(t, e, i) {
                return w.hasValue(e) ? e : i.emptyAs
            }, e.prototype.download = function(t, e) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var i, n, a, o, s, l, u, h, c, p, d, f, g, y, m;
                    return Object(r.d)(this, function(r) {
                        if (this.msBlobDownloadSupport()) {
                            if (f = t.split(";"), g = f.shift().replace(/data:/, ""), t = decodeURIComponent(f.join(";").replace(/^[^,]*,/, "")), -1 != ["image/svg+xml", "application/json", "text/csv"].indexOf(g)) return i = new Blob([t], {
                                type: g
                            }), window.navigator.msSaveBlob(i, e), [2, !0];
                            try {
                                a = atob(t), t = a
                            } catch (t) {
                                return [2, !1]
                            }
                            for (l = new Array(t.length), u = 0; u < t.length; ++u) h = t.charCodeAt(u), l[u] = h;
                            c = new Blob([new Uint8Array(l)], {
                                type: g
                            }), window.navigator.msSaveBlob(c, e)
                        } else if (this.blobDownloadSupport()) {
                            if ((n = document.createElement("a")).download = e, document.body.appendChild(n), f = t.split(";"), g = f.shift().replace(/data:/, ""), t = decodeURIComponent(f.join(";").replace(/^[^,]*,/, "")), -1 != ["image/svg+xml", "application/json", "text/csv", "text/html"].indexOf(g)) return o = new Blob([t], {
                                type: g
                            }), s = window.URL.createObjectURL(o), n.href = s, n.download = e, n.click(), setTimeout(function() {
                                document.body.removeChild(n), window.URL.revokeObjectURL(s)
                            }, 100), [2, !0];
                            try {
                                a = atob(t), t = a
                            } catch (t) {
                                return [2, !1]
                            }
                            for (l = new Array(t.length), u = 0; u < t.length; ++u) h = t.charCodeAt(u), l[u] = h;
                            c = new Blob([new Uint8Array(l)], {
                                type: g
                            }), p = window.URL.createObjectURL(c), n.href = p, n.download = e, document.body.appendChild(n), n.click(), document.body.removeChild(n), setTimeout(function() {
                                window.URL.revokeObjectURL(p)
                            }, 100)
                        } else this.linkDownloadSupport() ? ((d = document.createElement("a")).download = e, d.href = t, document.body.appendChild(d), d.click(), document.body.removeChild(d)) : this.legacyIE() ? 4 === (f = t.match(/^data:(.*);[ ]*([^,]*),(.*)$/)).length && ("base64" == f[2] ? f[1].match(/^image\//) && this.showModal('<img src="' + t + '" style="float: left; max-width: 50%; max-height: 80%; margin: 0 1em 0.5em 0; border: 1px solid #eee;" /><p>' + this.language.translate('To save the image, right-click thumbnail on the left and choose "Save picture as..."') + '</p><p style="text-align: center;"><small>' + this.language.translate("(Press ESC to close this message)") + "</small></p>", this.language.translate("Image Export Complete")) : (g = void 0, e.match(/\.svg$/) ? g = "image/svg+xml" : (g = "text/plain", e += ".txt"), (y = document.createElement("iframe")).width = "1px", y.height = "1px", y.style.display = "none", document.body.appendChild(y), (m = y.contentDocument).open(g, "replace"), m.write(decodeURIComponent(f[3])), m.close(), m.execCommand("SaveAs", !0, e), document.body.removeChild(y))) : window.location.href = t;
                        return [2, !0]
                    })
                })
            }, e.prototype.downloadSupport = function() {
                return this.linkDownloadSupport() || this.msBlobDownloadSupport()
            }, e.prototype.linkDownloadSupport = function() {
                var t = m.c.getCache("linkDownloadSupport");
                if (!1 === t || !0 === t) return t;
                var e = void 0 !== document.createElement("a").download;
                return m.c.setCache("linkDownloadSupport", e), e
            }, e.prototype.blobDownloadSupport = function() {
                return w.hasValue(window.Blob)
            }, e.prototype.msBlobDownloadSupport = function() {
                return w.hasValue(window.navigator.msSaveOrOpenBlob)
            }, e.prototype.legacyIE = function() {
                var t = document.createElement("div");
                return t.innerHTML = "\x3c!--[if lt IE 10]><i></i><![endif]--\x3e", 1 == t.getElementsByTagName("i").length
            }, e.prototype.print = function(t, e, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    return Object(r.d)(this, function(n) {
                        return "css" == e.printMethod ? [2, this.printViaCSS(t, e, i)] : [2, this.printViaIframe(t, e, i)]
                    })
                })
            }, e.prototype.printViaCSS = function(t, e, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var n, a, o, s;
                    return Object(r.d)(this, function(r) {
                        return n = document.documentElement.scrollTop || document.body.scrollTop, a = new b.c("body > *", {
                            display: "none",
                            position: "fixed",
                            visibility: "hidden",
                            opacity: "0",
                            clipPath: "polygon(0px 0px,0px 0px,0px 0px,0px 0px);"
                        }), i && document && document.title && (o = document.title, document.title = i), (s = new Image).src = t, s.style.maxWidth = "100%", s.style.display = "block", s.style.position = "relative", s.style.visibility = "visible", s.style.opacity = "1", s.style.clipPath = "none", document.body.appendChild(s), this.setTimeout(function() {
                            window.print()
                        }, 50), /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream && e.delay < 1e3 ? e.delay = 1e3 : e.delay < 100 && (e.delay = 100), this.setTimeout(function() {
                            document.body.removeChild(s), a.dispose(), o && (document.title = document.title), document.documentElement.scrollTop = document.body.scrollTop = n
                        }, e.delay || 500), [2, !0]
                    })
                })
            }, e.prototype.printViaIframe = function(t, e, i) {
                return Object(r.b)(this, void 0, void 0, function() {
                    var n, a;
                    return Object(r.d)(this, function(r) {
                        return (n = document.createElement("iframe")).style.visibility = "hidden", document.body.appendChild(n), n.contentWindow.document.open(), n.contentWindow.document.close(), (a = new Image).src = t, a.style.maxWidth = "100%", i && (n.contentWindow.document.title = i), n.contentWindow.document.body.appendChild(a), n.load = function() {
                            n.contentWindow.document.body.appendChild(a)
                        }, this.setTimeout(function() {
                            try {
                                n.contentWindow.document.execCommand("print", !1, null) || n.contentWindow.print()
                            } catch (t) {
                                n.contentWindow.print()
                            }
                        }, e.delay || 50), /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream && e.delay < 1e3 ? e.delay = 1e3 : e.delay < 100 && (e.delay = 100), this.setTimeout(function() {
                            document.body.removeChild(n)
                        }, e.delay + 50 || 100), [2, !0]
                    })
                })
            }, e.prototype.findBackgroundColor = function(t) {
                var e = 1,
                    i = Object(b.p)(t, "background-color");
                if ((i.match(/[^,]*,[^,]*,[^,]*,[ ]?0/) || "transparent" == i) && (e = 0), 0 == e) {
                    var n = t.parentElement;
                    return n ? this.findBackgroundColor(n) : Object(y.c)("#fff")
                }
                return Object(y.c)(i, e)
            }, Object.defineProperty(e.prototype, "container", {
                get: function() {
                    return this.adapter.apply("container", {
                        container: this._container
                    }).container
                },
                set: function(t) {
                    this._container = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "sprite", {
                get: function() {
                    return this.adapter.apply("sprite", {
                        sprite: this._sprite
                    }).sprite
                },
                set: function(t) {
                    this._sprite = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "extraSprites", {
                get: function() {
                    return this.adapter.apply("extraSprites", {
                        extraSprites: this._extraSprites
                    }).extraSprites
                },
                set: function(t) {
                    this._extraSprites = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "validateSprites", {
                get: function() {
                    return this.adapter.apply("validateSprites", {
                        validateSprites: this._validateSprites
                    }).validateSprites
                },
                set: function(t) {
                    this._validateSprites = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "data", {
                get: function() {
                    return this.adapter.apply("data", {
                        data: this._data
                    }).data
                },
                set: function(t) {
                    this._data = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "dataFields", {
                get: function() {
                    return this._dataFields || this.generateDataFields(), this.adapter.apply("dataFields", {
                        dataFields: this._dataFields
                    }).dataFields
                },
                set: function(t) {
                    this._dataFields = t, this._dynamicDataFields = !1
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.handleDataUpdated = function() {
                this._dynamicDataFields && (this._dataFields = void 0)
            }, Object.defineProperty(e.prototype, "dateFormatter", {
                get: function() {
                    return this._dateFormatter || (this._dateFormatter = new c.a, this._dateFormatter.language = this.language), this.adapter.apply("dateFormatter", {
                        dateFormatter: this._dateFormatter
                    }).dateFormatter
                },
                set: function(t) {
                    this._dateFormatter = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "dateFormat", {
                get: function() {
                    return this.adapter.apply("dateFormat", {
                        dateFormat: this._dateFormat
                    }).dateFormat
                },
                set: function(t) {
                    this._dateFormat = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "dateFields", {
                get: function() {
                    return this._dateFields || (this._dateFields = new u.b), this.adapter.apply("dateFields", {
                        dateFields: this._dateFields
                    }).dateFields
                },
                set: function(t) {
                    this._dateFields = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "numberFormatter", {
                get: function() {
                    return this._numberFormatter || (this._numberFormatter = new d.a, this._numberFormatter.language = this.language), this.adapter.apply("numberFormatter", {
                        numberFormatter: this._numberFormatter
                    }).numberFormatter
                },
                set: function(t) {
                    this._numberFormatter = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "numberFormat", {
                get: function() {
                    return this.adapter.apply("numberFormat", {
                        numberFormat: this._numberFormat
                    }).numberFormat
                },
                set: function(t) {
                    this._numberFormat = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "numberFields", {
                get: function() {
                    return this._numberFields || (this._numberFields = new u.b), this.adapter.apply("numberFields", {
                        numberFields: this._numberFields
                    }).numberFields
                },
                set: function(t) {
                    this._numberFields = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "durationFormatter", {
                get: function() {
                    return this._durationFormatter || (this._durationFormatter = new p.a, this._durationFormatter.language = this.language), this.adapter.apply("durationFormatter", {
                        durationFormatter: this._durationFormatter
                    }).durationFormatter
                },
                set: function(t) {
                    this._durationFormatter = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "durationFormat", {
                get: function() {
                    return this.adapter.apply("durationFormat", {
                        durationFormat: this._durationFormat
                    }).durationFormat
                },
                set: function(t) {
                    this._durationFormat = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "durationFields", {
                get: function() {
                    return this._durationFields || (this._durationFields = new u.b), this.adapter.apply("durationFields", {
                        durationFields: this._durationFields
                    }).durationFields
                },
                set: function(t) {
                    this._durationFields = t
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.generateDataFields = function() {
                var t = this;
                this._dataFields = {}, this.data.length && T.each(this.data, function(e) {
                    _.each(e, function(e, i) {
                        w.hasValue(t._dataFields[e]) || (t._dataFields[e] = t.adapter.apply("dataFieldName", {
                            name: e,
                            field: e
                        }).name)
                    })
                })
            }, e.prototype.isDateField = function(t) {
                return this.adapter.apply("isDateField", {
                    isDateField: this.dateFields.contains(t),
                    field: t
                }).isDateField
            }, e.prototype.isNumberField = function(t) {
                return this.adapter.apply("isNumberField", {
                    isNumberField: this.numberFields.contains(t),
                    field: t
                }).isNumberField
            }, e.prototype.isDurationField = function(t) {
                return this.adapter.apply("isDurationField", {
                    isDurationField: this.durationFields.contains(t),
                    field: t
                }).isDurationField
            }, e.prototype.getContentType = function(t) {
                var e = "";
                switch (t) {
                    case "png":
                    case "gif":
                        e = "image/" + t;
                        break;
                    case "jpg":
                        e = "image/jpeg";
                        break;
                    case "svg":
                        e = "image/svg+xml";
                        break;
                    case "csv":
                        e = "text/csv";
                        break;
                    case "json":
                        e = "application/json";
                        break;
                    case "html":
                        e = "text/html";
                        break;
                    case "pdf":
                    case "pdfdata":
                        e = "application/pdf";
                        break;
                    case "xlsx":
                        e = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                }
                return this.adapter.apply("contentType", {
                    contentType: e,
                    type: t
                }).contentType
            }, Object.defineProperty(e.prototype, "filePrefix", {
                get: function() {
                    return this.adapter.apply("filePrefix", {
                        filePrefix: this._filePrefix
                    }).filePrefix
                },
                set: function(t) {
                    this._filePrefix = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "backgroundColor", {
                get: function() {
                    return this.adapter.apply("backgroundColor", {
                        backgroundColor: this._backgroundColor
                    }).backgroundColor
                },
                set: function(t) {
                    this._backgroundColor = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "title", {
                get: function() {
                    return this.adapter.apply("title", {
                        title: this._title
                    }).title
                },
                set: function(t) {
                    this._title = t
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.showPreloader = function() {
                var t = this.preloader;
                t && (t.progress = .5, t.label.text = "...")
            }, e.prototype.hidePreloader = function() {
                var t = this.preloader;
                t && (t.progress = 1)
            }, Object.defineProperty(e.prototype, "preloader", {
                get: function() {
                    return this._sprite && this._sprite.parent && this._sprite.parent.preloader ? this._sprite.parent.preloader : void 0
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.showTimeout = function() {
                this.showModal(this.adapter.apply("timeoutMessage", {
                    message: this.language.translate("Export operation took longer than expected. Something might have gone wrong.")
                }).message)
            }, e.prototype.hideTimeout = function() {
                this._timeoutTimeout && (this.removeDispose(this._timeoutTimeout), this._timeoutTimeout = null), this.hideModal()
            }, Object.defineProperty(e.prototype, "language", {
                get: function() {
                    return this._language || (this._language = new f.a), this._language
                },
                set: function(t) {
                    this._language = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "modal", {
                get: function() {
                    return this._modal || (this._modal = new l.a, this._modal.adapter.add("classPrefix", function(t) {
                        return t = v.a.classNamePrefix + t
                    })), this._modal
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.showModal = function(t, e) {
                this.hideModal(), this.hidePreloader();
                var i = this.modal;
                i.container = this.sprite.svgContainer.SVGContainer, i.content = t, i.readerTitle = e, i.open()
            }, e.prototype.hideModal = function() {
                this._modal && this.modal.close()
            }, e.prototype._canvg = function() {
                return Object(r.b)(this, void 0, void 0, function() {
                    var t;
                    return Object(r.d)(this, function(e) {
                        switch (e.label) {
                            case 0:
                                return [4, i.e("0471").then(i.bind(null, "pu93"))];
                            case 1:
                                return null != (t = e.sent()).default ? [2, t.default] : [2, t]
                        }
                    })
                })
            }, Object.defineProperty(e.prototype, "canvg", {
                get: function() {
                    return this._canvg()
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "pdfmake", {
                get: function() {
                    return null == n && (n = function() {
                        return Object(r.b)(this, void 0, void 0, function() {
                            var t, e, n, a;
                            return Object(r.d)(this, function(r) {
                                switch (r.label) {
                                    case 0:
                                        return [4, Promise.all([i.e("076f").then(i.bind(null, "o2M+")), i.e("076f").then(i.bind(null, "/9Au"))])];
                                    case 1:
                                        return t = r.sent(), e = t[0], n = t[1], (a = window).pdfMake = a.pdfMake || {}, a.pdfMake.vfs = n.default, e.vfs = n.default, [2, e]
                                }
                            })
                        })
                    }()), n
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype._xlsx = function() {
                return Object(r.b)(this, void 0, void 0, function() {
                    return Object(r.d)(this, function(t) {
                        switch (t.label) {
                            case 0:
                                return [4, i.e("bf3e").then(i.bind(null, "s5xg"))];
                            case 1:
                                return [2, t.sent()]
                        }
                    })
                })
            }, Object.defineProperty(e.prototype, "xlsx", {
                get: function() {
                    return this._xlsx()
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.setFormatOptions = function(t, e) {
                this._formatOptions.setKey(t, e)
            }, e.prototype.getFormatOptions = function(t) {
                return this._formatOptions.getKey(t)
            }, e.prototype._disablePointers = function() {
                w.hasValue(this._spriteInteractionsEnabled) || (this._spriteInteractionsEnabled = this.sprite.interactionsEnabled), this.sprite.interactionsEnabled = !1
            }, e.prototype._releasePointers = function() {
                w.hasValue(this._spriteInteractionsEnabled) && (this.sprite.interactionsEnabled = this._spriteInteractionsEnabled)
            }, e.prototype.hideNonExportableSprites = function() {
                var t = this;
                if (!this._objectsAlreadyHidden) {
                    var e = this.sprite.svgContainer;
                    e && T.each(e.nonExportableSprites, function(e) {
                        e.isHidden || e.isHiding || !e.visible || t._hiddenObjects.push(e), e.hide(0)
                    }), this._objectsAlreadyHidden = !0
                }
            }, e.prototype.restoreNonExportableSprites = function() {
                this._objectsAlreadyHidden && (T.each(this._hiddenObjects, function(t) {
                    t.show(0)
                }), this._hiddenObjects = [], this._objectsAlreadyHidden = !1)
            }, e.prototype.awaitValidSprites = function() {
                return Object(r.b)(this, void 0, void 0, function() {
                    var t;
                    return Object(r.d)(this, function(e) {
                        switch (e.label) {
                            case 0:
                                return t = [], this.validateSprites.length && T.each(this.validateSprites, function(e, i) {
                                    e.invalid && t.push(new Promise(function(t, i) {
                                        e.events.once("validated", function(e) {
                                            t()
                                        })
                                    }))
                                }), t.length ? [4, Promise.all(t)] : [3, 2];
                            case 1:
                                e.sent(), e.label = 2;
                            case 2:
                                return [2]
                        }
                    })
                })
            }, e.prototype.processConfig = function(e) {
                m.c.registeredClasses.ExportMenu = a.a, e && w.hasValue(e.menu) && !w.hasValue(e.menu.type) && (e.menu.type = "ExportMenu"), t.prototype.processConfig.call(this, e)
            }, e.XLINK = "http://www.w3.org/1999/xlink", e
        }(g.a)
    },
    Gg2j: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), i.d(e, "PI", function() {
            return r
        }), i.d(e, "HALFPI", function() {
            return a
        }), i.d(e, "RADIANS", function() {
            return o
        }), i.d(e, "DEGREES", function() {
            return s
        }), e.toNumberRange = function(t, e, i) {
            if (n.hasValue(t)) return u(t = n.toNumber(t), e, i);
            return t
        }, e.round = l, e.ceil = function(t, e) {
            if (!n.isNumber(e) || e <= 0) return Math.ceil(t);
            var i = Math.pow(10, e);
            return Math.ceil(t * i) / i
        }, e.stretch = function(t, e, i) {
            return t * (i - e) + e
        }, e.fitToRange = u, e.sin = h, e.tan = function(t) {
            return l(Math.tan(o * t), 10)
        }, e.cos = c, e.max = p, e.min = d, e.closest = function(t, e) {
            return t.reduce(function(t, i) {
                return Math.abs(i - e) < Math.abs(t - e) ? i : t
            })
        }, e.intersect = function(t, e) {
            var i = n.getValue(t.start),
                r = n.getValue(e.start),
                a = n.getValue(t.end),
                o = n.getValue(e.end);
            return Math.max(i, r) <= Math.min(a, o)
        }, e.invertRange = function(t) {
            var e = n.getValue(t.start);
            return {
                start: 1 - n.getValue(t.end),
                end: 1 - e
            }
        }, e.intersection = function(t, e) {
            var i = n.getValue(t.start),
                r = n.getValue(e.start),
                a = n.getValue(t.end),
                o = n.getValue(e.end),
                s = Math.max(i, r),
                l = Math.min(a, o);
            return l < s ? void 0 : {
                start: s,
                end: l
            }
        }, e.getDistance = f, e.getHorizontalDistance = function(t, e) {
            if (!t) return 0;
            e || (e = {
                x: 0,
                y: 0
            });
            return Math.abs(t.x - e.x)
        }, e.getVerticalDistance = function(t, e) {
            if (!t) return 0;
            e || (e = {
                x: 0,
                y: 0
            });
            return Math.abs(t.y - e.y)
        }, e.getCubicCurveDistance = function(t, e, i, n, r) {
            if (!t) return 0;
            e || (e = {
                x: 0,
                y: 0
            });
            var a = 0,
                o = t;
            if (r > 0)
                for (var s = 0; s <= r; s++) {
                    var l = m(t, e, i, n, s / r);
                    a += f(o, l), o = l
                }
            return a
        }, e.getScale = function(t, e, i, n) {
            var r = f(e, n),
                a = f(t, i);
            return Math.abs(a / r)
        }, e.getMidPoint = function(t, e, i) {
            n.isNumber(i) || (i = .5);
            return {
                x: t.x + (e.x - t.x) * i,
                y: t.y + (e.y - t.y) * i
            }
        }, e.getRotation = g, e.getAngle = y, e.getCenterShift = function(t, e, i, n, r) {
            var a = g(e, i, n, r) - 90;
            a < 0 && (a += 360);
            var o = f(e, n),
                s = Math.cos(a) / o + e.x,
                l = Math.cos(a) / o + e.y;
            return {
                x: s - t.x,
                y: l - t.y
            }
        }, e.getBBox = function(t) {
            if (t) {
                var e = t.length;
                if (0 !== e) {
                    for (var i, r = void 0, a = void 0, o = void 0, s = 0; s < e; s++) {
                        var l = t[s];
                        (!n.isNumber(a) || l.x > a) && (a = l.x), (!n.isNumber(r) || l.x < r) && (r = l.x), (!n.isNumber(i) || l.y < i) && (i = l.y), (!n.isNumber(o) || l.y > o) && (o = l.y)
                    }
                    return {
                        x: r,
                        y: i,
                        width: a - r,
                        height: o - i
                    }
                }
            }
            return {
                x: 0,
                y: 0,
                width: 0,
                height: 0
            }
        }, e.getCommonRectangle = function(t) {
            var e = t.length;
            if (0 !== e) {
                for (var i = void 0, n = void 0, r = void 0, a = void 0, o = 0; o < e; o++) {
                    var s = t[o];
                    i = d(s.x, i), n = d(s.y, n), r = p(s.x + s.width, r), a = p(s.y + s.height, a)
                }
                return {
                    x: i,
                    y: n,
                    width: r - i,
                    height: a - n
                }
            }
        }, e.getPointOnQuadraticCurve = function(t, e, i, n) {
            var r = (1 - n) * (1 - n) * t.x + 2 * (1 - n) * n * i.x + n * n * e.x,
                a = (1 - n) * (1 - n) * t.y + 2 * (1 - n) * n * i.y + n * n * e.y;
            return {
                x: r,
                y: a
            }
        }, e.getPointOnCubicCurve = m, e.getCubicControlPointA = function(t, e, i, n, r, a) {
            return r = v(r), a = v(a), {
                x: (-t.x + e.x / r + i.x) * r,
                y: (-t.y + e.y / a + i.y) * a
            }
        }, e.getCubicControlPointB = function(t, e, i, n, r, a) {
            return r = v(r), a = v(a), {
                x: (e.x + i.x / r - n.x) * r,
                y: (e.y + i.y / a - n.y) * a
            }
        }, e.adjustTension = v, e.normalizeAngle = b, e.fitAngleToRange = function(t, e, i) {
            if (e > i) {
                var n = e;
                e = i, i = n
            }
            t = b(t);
            var r = (e - b(e)) / 360;
            t < e && (t += 360 * (r + 1));
            t > i && (t - 360 > e ? t -= 360 : t = t < e + (i - e) / 2 + 180 ? i : e);
            t < e && (t = t > e + (i - e) / 2 - 180 ? e : i);
            return t
        }, e.getArcRect = function(t, e, i) {
            var r = Number.MAX_VALUE,
                a = Number.MAX_VALUE,
                o = -Number.MAX_VALUE,
                s = -Number.MAX_VALUE,
                l = [];
            n.isNumber(i) || (i = 1);
            l.push(x(i, t)), l.push(x(i, e));
            for (var u = Math.min(90 * Math.floor(t / 90), 90 * Math.floor(e / 90)), h = Math.max(90 * Math.ceil(t / 90), 90 * Math.ceil(e / 90)), c = u; c <= h; c += 90) c >= t && c <= e && l.push(x(i, c));
            for (var p = 0; p < l.length; p++) {
                var d = l[p];
                d.x < r && (r = d.x), d.y < a && (a = d.y), d.x > o && (o = d.x), d.y > s && (s = d.y)
            }
            return {
                x: r,
                y: a,
                width: o - r,
                height: s - a
            }
        }, e.getArcPoint = x, e.isInRectangle = function(t, e) {
            if (t.x >= e.x && t.x <= e.x + e.width && t.y > e.y && t.y < e.y + e.height) return !0;
            return !1
        }, e.getLineIntersection = function(t, e, i, n) {
            var r = ((t.x * e.y - e.x * t.y) * (i.x - n.x) - (t.x - e.x) * (i.x * n.y - i.y * n.x)) / ((t.x - e.x) * (i.y - n.y) - (t.y - e.y) * (i.x - n.x)),
                a = ((t.x * e.y - e.x * t.y) * (i.y - n.y) - (t.y - e.y) * (i.x * n.y - i.y * n.x)) / ((t.x - e.x) * (i.y - n.y) - (t.y - e.y) * (i.x - n.x));
            return {
                x: r,
                y: a
            }
        };
        var n = i("Mtpk"),
            r = Math.PI,
            a = r / 2,
            o = r / 180,
            s = 180 / r;

        function l(t, e, i) {
            if (!n.isNumber(e) || e <= 0) {
                var r = Math.round(t);
                return i && r - t == .5 && r--, r
            }
            var a = Math.pow(10, e);
            return Math.round(t * a) / a
        }

        function u(t, e, i) {
            if (n.isNumber(e)) {
                if (n.isNumber(i) && i < e) {
                    var r = i;
                    i = e, e = r
                }
                t < e && (t = e)
            }
            return n.isNumber(i) && t > i && (t = i), t
        }

        function h(t) {
            return l(Math.sin(o * t), 10)
        }

        function c(t) {
            return l(Math.cos(o * t), 10)
        }

        function p(t, e) {
            return n.isNumber(t) ? n.isNumber(e) && e > t ? e : t : n.isNumber(e) ? e : null
        }

        function d(t, e) {
            return n.isNumber(t) ? n.isNumber(e) && e < t ? e : t : n.isNumber(e) ? e : null
        }

        function f(t, e) {
            return t ? (e || (e = {
                x: 0,
                y: 0
            }), Math.sqrt(Math.pow(Math.abs(t.x - e.x), 2) + Math.pow(Math.abs(t.y - e.y), 2))) : 0
        }

        function g(t, e, i, n) {
            var r = y(e, n) - y(t, i);
            return r < 0 && (r += 360), r
        }

        function y(t, e) {
            e || (e = {
                x: 2 * t.x,
                y: 2 * t.y
            });
            var i = e.x - t.x,
                n = e.y - t.y,
                r = Math.atan2(n, i) * s;
            return r < 0 && (r += 360), b(r)
        }

        function m(t, e, i, n, r) {
            var a = {
                    x: 0,
                    y: 0
                },
                o = 1 - r,
                s = o * o,
                l = s * o;
            return a.x = t.x * l + 3 * i.x * s * r + 3 * n.x * o * r * r + e.x * r * r * r, a.y = t.y * l + 3 * i.y * s * r + 3 * n.y * o * r * r + e.y * r * r * r, a
        }

        function v(t) {
            return 1 - t + 1e-5
        }

        function b(t) {
            return 360 == t ? 360 : t % 360
        }

        function x(t, e) {
            return {
                x: t * c(e),
                y: t * h(e)
            }
        }
    },
    Gkqv: function(t, e, i) {
        "use strict";
        i("1M4z");
        var n = i("0sYB"),
            r = i("Kg2n"),
            a = function() {
                var t = !1,
                    e = /[ac]/;
                return e.exec = function() {
                    return t = !0, /./.exec.apply(this, arguments)
                }, !0 === e.test("abc") && t
            }(),
            o = /./.test;
        n({
            target: "RegExp",
            proto: !0,
            forced: !a
        }, {
            test: function(t) {
                if ("function" != typeof this.exec) return o.call(this, t);
                var e = this.exec(t);
                if (null !== e && !r(e)) throw new Error("RegExp exec method returned something other than an Object or null");
                return !!e
            }
        })
    },
    Gmkj: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("X/sl").findIndex,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("findIndex", function(t) {
            return r(a(this), t, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    GtDR: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("aCit"),
            o = i("Gg2j"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Rectangle", e.element = e.paper.add("rect"), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this._positionPrecision;
                    this.pixelPerfect && (e = 0);
                    var i = o.round(this.innerWidth, e),
                        n = o.round(this.innerHeight, e);
                    this.element.attr({
                        width: i,
                        height: n
                    })
                }, e.prototype.measureElement = function() {}, Object.defineProperty(e.prototype, "bbox", {
                    get: function() {
                        return this.definedBBox ? this.definedBBox : this.isMeasured ? {
                            x: 0,
                            y: 0,
                            width: this.innerWidth,
                            height: this.innerHeight
                        } : {
                            x: 0,
                            y: 0,
                            width: 0,
                            height: 0
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.Rectangle = s
    },
    GtmK: function(t, e, i) {
        var n = i("3pky"),
            r = i("XhXf").concat("length", "prototype");
        e.f = Object.getOwnPropertyNames || function(t) {
            return n(t, r)
        }
    },
    GzrW: function(t, e, i) {
        var n = i("0sYB"),
            r = i("Kg2n"),
            a = i("Tl3C").onFreeze,
            o = i("6EAy"),
            s = i("6aQQ"),
            l = Object.seal;
        n({
            target: "Object",
            stat: !0,
            forced: s(function() {
                l(1)
            }),
            sham: !o
        }, {
            seal: function(t) {
                return l && r(t) ? l(a(t)) : t
            }
        })
    },
    HDh7: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return d
        }), i.d(e, "a", function() {
            return f
        });
        var n = i("hD5A"),
            r = i("UsNi"),
            a = i("W8Sc"),
            o = i("vMqJ"),
            s = i("v9UT"),
            l = i("58Sn"),
            u = i("hJ5i"),
            h = i("Mtpk"),
            c = i("NlGZ"),
            p = i.n(c),
            d = [],
            f = function() {
                function t(t, e) {
                    var i = this;
                    if (this._disposed = !1, this.autoResize = !0, this.nonExportableSprites = [], this._disposers = [], this.cssScale = 1, this.htmlElement = t, !e) {
                        var r = function() {
                            i.autoResize && i.measure()
                        };
                        this.resizeSensor = new p.a(t, r), this._disposers.push(new n.b(function() {
                            i.resizeSensor.detach(r)
                        }))
                    }
                    d.push(this);
                    var a = document.createElement("div"),
                        o = a.style;
                    o.width = "100%", o.height = "100%", o.position = "relative", t.appendChild(a), this.SVGContainer = a
                }
                return t.prototype.measure = function() {
                    var t = s.width(this.htmlElement),
                        e = s.height(this.htmlElement),
                        i = this.container;
                    i && (this.width == t && this.height == e || (this.width = t, this.height = e, t > 0 && (i.maxWidth = t), e > 0 && (i.maxHeight = e), l.n(this.SVGContainer)), i.maxWidth || (i.maxWidth = 0), i.maxHeight || (i.maxHeight = 0), this.cssScale = 1, this.checkTransform(this.htmlElement))
                }, Object.defineProperty(t.prototype, "container", {
                    get: function() {
                        return this._container
                    },
                    set: function(t) {
                        this._container = t, this.measure()
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.isDisposed = function() {
                    return this._disposed
                }, t.prototype.dispose = function() {
                    this._disposed || u.remove(d, this), u.each(this._disposers, function(t) {
                        t.dispose()
                    })
                }, Object.defineProperty(t.prototype, "hideOverflow", {
                    set: function(t) {
                        this.SVGContainer.style.overflow = t ? "hidden" : ""
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "modal", {
                    get: function() {
                        return h.hasValue(this._modal) || (this._modal = new a.a, this._modal.container = this.SVGContainer, this._disposers.push(this._modal)), this._modal
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.openModal = function(t, e) {
                    this.closeModal();
                    var i = this.modal;
                    return i.content = t, i.readerTitle = e, i.open(), i
                }, t.prototype.closeModal = function() {
                    this._modal && this.modal.close()
                }, Object.defineProperty(t.prototype, "popups", {
                    get: function() {
                        if (!h.hasValue(this._popups)) {
                            var t = new r.a;
                            t.container = this.SVGContainer, this._popups = new o.e(t), this._disposers.push(new o.c(this._popups)), this._disposers.push(this._popups.template)
                        }
                        return this._popups
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.openPopup = function(t, e) {
                    var i = this.popups.create();
                    return i.content = t, h.hasValue(e) && (i.title = e), i.open(), i
                }, t.prototype.closeAllPopups = function() {
                    this.popups.each(function(t) {
                        t.close()
                    })
                }, t.prototype.checkTransform = function(t) {
                    if (window.getComputedStyle) {
                        if (t && t.style) {
                            var e = window.getComputedStyle(t, null);
                            if (e) {
                                var i = e.getPropertyValue("-webkit-transform") || e.getPropertyValue("-moz-transform") || e.getPropertyValue("-ms-transform") || e.getPropertyValue("-o-transform") || e.getPropertyValue("transform");
                                if (i && "none" !== i) {
                                    var n = i.split("(")[1].split(")")[0].split(","),
                                        r = Number(n[0]),
                                        a = Number(n[1]),
                                        o = Math.sqrt(r * r + a * a);
                                    isNaN(o) || (this.cssScale *= o)
                                }
                            }
                        }
                        t.parentNode && t.parentNode instanceof HTMLElement && this.checkTransform(t.parentNode)
                    }
                }, t
            }()
    },
    "HMf+": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("vfdp"),
            a = i("EjSS"),
            o = i("z3p0"),
            s = i("Tl3C"),
            l = i("L4xm"),
            u = i("L56b"),
            h = i("Kg2n"),
            c = i("6aQQ"),
            p = i("XqrT"),
            d = i("NRfM"),
            f = i("047P");
        t.exports = function(t, e, i) {
            var g = -1 !== t.indexOf("Map"),
                y = -1 !== t.indexOf("Weak"),
                m = g ? "set" : "add",
                v = r[t],
                b = v && v.prototype,
                x = v,
                _ = {},
                P = function(t) {
                    var e = b[t];
                    o(b, t, "add" == t ? function(t) {
                        return e.call(this, 0 === t ? 0 : t), this
                    } : "delete" == t ? function(t) {
                        return !(y && !h(t)) && e.call(this, 0 === t ? 0 : t)
                    } : "get" == t ? function(t) {
                        return y && !h(t) ? void 0 : e.call(this, 0 === t ? 0 : t)
                    } : "has" == t ? function(t) {
                        return !(y && !h(t)) && e.call(this, 0 === t ? 0 : t)
                    } : function(t, i) {
                        return e.call(this, 0 === t ? 0 : t, i), this
                    })
                };
            if (a(t, "function" != typeof v || !(y || b.forEach && !c(function() {
                    (new v).entries().next()
                })))) x = i.getConstructor(e, t, g, m), s.REQUIRED = !0;
            else if (a(t, !0)) {
                var w = new x,
                    O = w[m](y ? {} : -0, 1) != w,
                    T = c(function() {
                        w.has(1)
                    }),
                    S = p(function(t) {
                        new v(t)
                    }),
                    C = !y && c(function() {
                        for (var t = new v, e = 5; e--;) t[m](e, e);
                        return !t.has(-0)
                    });
                S || ((x = e(function(e, i) {
                    u(e, x, t);
                    var n = f(new v, e, x);
                    return void 0 != i && l(i, n[m], n, g), n
                })).prototype = b, b.constructor = x), (T || C) && (P("delete"), P("has"), g && P("get")), (C || O) && P(m), y && b.clear && delete b.clear
            }
            return _[t] = x, n({
                global: !0,
                forced: x != v
            }, _), d(x, t), y || i.setStrong(x, t, g), x
        }
    },
    HZlQ: function(t, e, i) {
        "use strict";
        var n = i("3sMl"),
            r = i("6aQQ"),
            a = i("kcMx"),
            o = i("KSd4"),
            s = i("EVp9"),
            l = i("7X7h"),
            u = i("tNpr"),
            h = Object.assign,
            c = Object.defineProperty;
        t.exports = !h || r(function() {
            if (n && 1 !== h({
                    b: 1
                }, h(c({}, "a", {
                    enumerable: !0,
                    get: function() {
                        c(this, "b", {
                            value: 3,
                            enumerable: !1
                        })
                    }
                }), {
                    b: 2
                })).b) return !0;
            var t = {},
                e = {},
                i = Symbol();
            return t[i] = 7, "abcdefghijklmnopqrst".split("").forEach(function(t) {
                e[t] = t
            }), 7 != h({}, t)[i] || "abcdefghijklmnopqrst" != a(h({}, e)).join("")
        }) ? function(t, e) {
            for (var i = l(t), r = arguments.length, h = 1, c = o.f, p = s.f; r > h;)
                for (var d, f = u(arguments[h++]), g = c ? a(f).concat(c(f)) : a(f), y = g.length, m = 0; y > m;) d = g[m++], n && !p.call(f, d) || (i[d] = f[d]);
            return i
        } : h
    },
    Hfxi: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6EAy"),
            a = i("6aQQ"),
            o = i("Kg2n"),
            s = i("Tl3C").onFreeze,
            l = Object.freeze;
        n({
            target: "Object",
            stat: !0,
            forced: a(function() {
                l(1)
            }),
            sham: !r
        }, {
            freeze: function(t) {
                return l && o(t) ? l(s(t)) : t
            }
        })
    },
    HgTb: function(t, e, i) {
        "use strict";
        var n = i("X/sl").forEach,
            r = i("xlUI"),
            a = i("J+FZ"),
            o = r("forEach"),
            s = a("forEach");
        t.exports = o && s ? [].forEach : function(t) {
            return n(this, t, arguments.length > 1 ? arguments[1] : void 0)
        }
    },
    HnbP: function(t, e) {
        t.exports = function(t) {
            if ("function" != typeof t) throw TypeError(String(t) + " is not a function");
            return t
        }
    },
    Hp8y: function(t, e, i) {
        var n = i("vfdp"),
            r = i("pVcl"),
            a = i("yBTm"),
            o = i("k2B3"),
            s = i("KslR"),
            l = s("iterator"),
            u = s("toStringTag"),
            h = a.values;
        for (var c in r) {
            var p = n[c],
                d = p && p.prototype;
            if (d) {
                if (d[l] !== h) try {
                    o(d, l, h)
                } catch (t) {
                    d[l] = h
                }
                if (d[u] || o(d, u, c), r[c])
                    for (var f in a)
                        if (d[f] !== a[f]) try {
                            o(d, f, a[f])
                        } catch (t) {
                            d[f] = a[f]
                        }
            }
        }
    },
    HyBf: function(t, e, i) {
        i("0sYB")({
            target: "Number",
            stat: !0
        }, {
            isInteger: i("IpLv")
        })
    },
    I42a: function(t, e, i) {
        var n = i("8nEM"),
            r = Math.abs,
            a = Math.pow,
            o = a(2, -52),
            s = a(2, -23),
            l = a(2, 127) * (2 - s),
            u = a(2, -126);
        t.exports = Math.fround || function(t) {
            var e, i, a = r(t),
                h = n(t);
            return a < u ? h * function(t) {
                return t + 1 / o - 1 / o
            }(a / u / s) * u * s : (i = (e = (1 + s / o) * a) - (e - a)) > l || i != i ? h * (1 / 0) : h * i
        }
    },
    IN7q: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("7dku").left,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("reduce", function(t) {
            return r(a(this), t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    ISWh: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return v
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("xIv9"),
            o = i("aGXA"),
            s = i("zhwk"),
            l = i("qCRI"),
            u = i("CnhP"),
            h = i("aCit"),
            c = i("WYhe"),
            p = i("MIZb"),
            d = i("tjMS"),
            f = i("Gg2j"),
            g = i("0FpR"),
            y = i("Mtpk"),
            m = i("v9UT"),
            v = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._previousStart = 0, e._previousEnd = 1, e._prevStart = 0, e._prevEnd = 1, e._isBusy = !1, e._skipRangeEvents = !1, e.updateWhileMoving = !0, e.className = "Scrollbar", e.minHeight = 12, e.minWidth = 12, e.animationDuration = 0, e.animationEasing = g.cubicOut, e.margin(10, 10, 10, 10);
                    var i = new p.a,
                        n = e.background;
                    return n.cornerRadius(10, 10, 10, 10), n.fill = i.getFor("fill"), n.fillOpacity = .5, e.showSystemTooltip = !0, e.startGrip = new a.a, e.endGrip = new a.a, e.events.on("transformed", e.updateThumb, e, !1), e.start = 0, e.end = 1, e.role = "scrollbar", e.thumb.role = "slider", e.thumb.readerLive = "polite", e.startGrip.role = "slider", e.endGrip.role = "slider", e.events.once("inited", function() {
                        e._previousStart = void 0, e.dispatchRangeChange()
                    }, void 0, !1), e.hideGrips = !1, e.orientation = "horizontal", e.setSVGAttribute({
                        "aria-valuemin": "0"
                    }), e.setSVGAttribute({
                        "aria-valuemax": "100"
                    }), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), "horizontal" === this.orientation ? (y.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Use TAB to select grip buttons or left and right arrows to change selection")), y.hasValue(this.thumb.readerDescription) || (this.thumb.readerDescription = this.language.translate("Use left and right arrows to move selection")), y.hasValue(this.startGrip.readerDescription) || (this.startGrip.readerDescription = this.language.translate("Use left and right arrows to move left selection")), y.hasValue(this.endGrip.readerDescription) || (this.endGrip.readerDescription = this.language.translate("Use left and right arrows to move right selection")), this.readerOrientation = "horizontal") : (y.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Use TAB select grip buttons or up and down arrows to change selection")), y.hasValue(this.thumb.readerDescription) || (this.thumb.readerDescription = this.language.translate("Use up and down arrows to move selection")), y.hasValue(this.startGrip.readerDescription) || (this.startGrip.readerDescription = this.language.translate("Use up and down arrows to move upper selection")), y.hasValue(this.endGrip.readerDescription) || (this.endGrip.readerDescription = this.language.translate("Use up and down arrows to move lower selection")), this.readerOrientation = "vertical"), this.readerControls = this.baseSprite.uidAttr()
                }, e.prototype.validateLayout = function() {
                    this.updateSize(), t.prototype.validateLayout.call(this), this.updateExtremes()
                }, e.prototype.processBackground = function() {
                    t.prototype.processBackground.call(this);
                    var e = this.background;
                    e.clickable = !0, e.events.on("hit", this.handleBgHit, this, void 0)
                }, e.prototype.handleBgHit = function(t) {
                    this.makeBusy();
                    var e = t.spritePoint;
                    e = m.spritePointToSprite(e, this.background, this);
                    var i = this.thumb;
                    if ("horizontal" == this.orientation) {
                        var n = e.x - i.pixelWidth / 2;
                        n = f.fitToRange(n, 0, this.innerWidth - i.pixelWidth), this._thumbAnimation = i.animate({
                            property: "x",
                            to: n
                        }, this.animationDuration, this.animationEasing)
                    } else {
                        var r = e.y - i.pixelHeight / 2;
                        r = f.fitToRange(r, 0, this.innerHeight - i.pixelHeight), this._thumbAnimation = i.animate({
                            property: "y",
                            to: r
                        }, this.animationDuration, this.animationEasing)
                    }
                    this.animationDuration > 0 ? this._thumbAnimation.events.on("animationended", this.makeUnbusy, this, !1) : (this._thumb.validate(), this.makeUnbusy())
                }, e.prototype.makeBusy = function() {
                    this._isBusy = !0, this._skipRangeEvents = !1, this._unbusyTimeout && this.removeDispose(this._unbusyTimeout), this._unbusyTimeout = void 0, this.stopAnimations()
                }, e.prototype.stopAnimations = function() {
                    this._thumbAnimation && this._thumbAnimation.stop(!0), this._zoomAnimation && this._zoomAnimation.stop(!0)
                }, e.prototype.makeUnbusy = function() {
                    this._unbusyTimeout = this.setTimeout(this.makeUnbusyReal.bind(this), 1.1 * this.animationDuration)
                }, e.prototype.makeUnbusyReal = function() {
                    this._usingGrip = void 0, this._isBusy = !1, this.updateWhileMoving || this.dispatchRangeChange()
                }, e.prototype.dispatchRangeChange = function() {
                    this._previousEnd == this.end && this._previousStart == this.start || (this._previousStart = this.start, this._previousEnd = this.end, this.dispatch("rangechanged"))
                }, e.prototype.updateThumb = function() {
                    if (this.parent) {
                        var t = this.thumb,
                            e = this.start,
                            i = this.end,
                            n = this.startGrip,
                            r = this.endGrip;
                        if ("horizontal" == this.orientation) {
                            var a = this.innerWidth;
                            t.width = a * (i - e), t.maxX = a - t.pixelWidth, t.x = e * a, n.moveTo({
                                x: t.pixelX,
                                y: 0
                            }, void 0, void 0, !0), r.moveTo({
                                x: t.pixelX + t.pixelWidth,
                                y: 0
                            }, void 0, void 0, !0), n.readerTitle = this.language.translate("From %1", void 0, this.adapter.apply("positionValue", {
                                value: Math.round(100 * e) + "%",
                                position: e
                            }).value), n.readerValueNow = "" + Math.round(100 * e), n.readerValueText = n.readerTitle, r.readerTitle = this.language.translate("To %1", void 0, this.adapter.apply("positionValue", {
                                value: Math.round(100 * i) + "%",
                                position: i
                            }).value), r.readerValueNow = "" + Math.round(100 * i), r.readerValueText = r.readerTitle
                        } else {
                            var o = this.innerHeight;
                            t.height = o * (i - e), t.maxY = o - t.pixelHeight, t.y = (1 - i) * o, n.moveTo({
                                x: 0,
                                y: t.pixelY + t.pixelHeight
                            }, void 0, void 0, !0), r.moveTo({
                                x: 0,
                                y: t.pixelY
                            }, void 0, void 0, !0), n.readerTitle = this.language.translate("To %1", void 0, this.adapter.apply("positionValue", {
                                value: Math.round(100 * (1 - e)) + "%",
                                position: 1 - e
                            }).value), n.readerValueNow = "" + Math.round(100 * e), n.readerValueText = n.readerTitle, r.readerTitle = this.language.translate("From %1", void 0, this.adapter.apply("positionValue", {
                                value: Math.round(100 * (1 - i)) + "%",
                                position: 1 - i
                            }).value), r.readerValueNow = "" + Math.round(100 * i), r.readerValueText = r.readerTitle
                        }
                        t.readerTitle = this.language.translate("From %1 to %2", void 0, this.adapter.apply("positionValue", {
                            value: Math.round(100 * e) + "%",
                            position: e
                        }).value, this.adapter.apply("positionValue", {
                            value: Math.round(100 * i) + "%",
                            position: i
                        }).value), t.readerValueNow = "" + Math.round(100 * e), t.readerValueText = t.readerTitle, this.readerValueNow = "" + Math.round(100 * e), this.readerValueText = t.readerTitle, !this._skipRangeEvents && this.updateWhileMoving && this.dispatchRangeChange()
                    }
                }, e.prototype.updateExtremes = function() {
                    var t = 0,
                        e = 0,
                        i = 0,
                        n = 0;
                    "horizontal" == this.orientation ? (i = this.innerWidth, e = n = this.innerHeight / 2) : (n = this.innerHeight, t = i = this.innerWidth / 2);
                    var r = this.startGrip;
                    r.minX = t, r.maxX = i, r.minY = e, r.maxY = n;
                    var a = this.endGrip;
                    a.minX = t, a.maxX = i, a.minY = e, a.maxY = n;
                    var o = this.thumb;
                    o.minX = t, o.maxX = i, o.minY = e, o.maxY = n
                }, e.prototype.updateSize = function() {
                    var t = this.orientation,
                        e = this.startGrip;
                    e && (e.orientation = t), this.endGrip && (this.endGrip.orientation = t);
                    var i = this.thumb;
                    i && ("horizontal" == t ? (y.isNumber(this._pixelWidth) || this.width instanceof d.a || (this.width = Object(d.c)(100)), y.hasValue(this.percentHeight) && (this.height = this.minHeight), i.height = this.innerHeight, i.verticalCenter = "middle", i.horizontalCenter = "left") : (y.isNumber(this._pixelHeight) || this.height instanceof d.a || (this.height = Object(d.c)(100)), y.hasValue(this.percentWidth) && (this.width = this.minWidth), i.width = this.innerWidth, i.verticalCenter = "top", i.horizontalCenter = "middle"))
                }, Object.defineProperty(e.prototype, "isBusy", {
                    get: function() {
                        return this._isBusy
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "start", {
                    get: function() {
                        return Math.min(this.getPosition(this._start), this.getPosition(this._end))
                    },
                    set: function(t) {
                        this._isBusy || (this.__start = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "__start", {
                    get: function() {
                        return this._start
                    },
                    set: function(t) {
                        this._start = this.getPosition(t), this.updateThumb()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "end", {
                    get: function() {
                        return Math.max(this.getPosition(this._start), this.getPosition(this._end))
                    },
                    set: function(t) {
                        this._isBusy || (this.__end = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "__end", {
                    get: function() {
                        return this._end
                    },
                    set: function(t) {
                        this._end = this.getPosition(t), this.updateThumb()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "range", {
                    get: function() {
                        return {
                            start: this.start,
                            end: this.end,
                            priority: this._usingGrip
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.skipRangeEvents = function() {
                    this._isBusy || (this._skipRangeEvents = !0)
                }, e.prototype.fixRange = function(t) {
                    t.start == f.round(this._start, 2) && t.end == f.round(this._end, 2) || (this._start = t.start, this._end = t.end, this._skipRangeEvents = !0, this.updateThumb(), this._skipRangeEvents = !1, this.thumb.validate(), this.thumb.background.validate())
                }, e.prototype.getPosition = function(t) {
                    return f.fitToRange(f.round(t, 4), 0, 1)
                }, Object.defineProperty(e.prototype, "orientation", {
                    get: function() {
                        return this.getPropertyValue("orientation")
                    },
                    set: function(t) {
                        this.setPropertyValue("orientation", t) && ("horizontal" === t ? (this.startGrip.cursorOverStyle = l.a.horizontalResize, this.endGrip.cursorOverStyle = l.a.horizontalResize) : (this.startGrip.cursorOverStyle = l.a.verticalResize, this.endGrip.cursorOverStyle = l.a.verticalResize), this.updateByOrientation(), this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.updateByOrientation = function() {}, Object.defineProperty(e.prototype, "startGrip", {
                    get: function() {
                        return this._startGrip
                    },
                    set: function(t) {
                        this._startGrip && this.removeDispose(this._startGrip), this._startGrip = t, this.processGrip(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endGrip", {
                    get: function() {
                        return this._endGrip
                    },
                    set: function(t) {
                        this._endGrip && this.removeDispose(this._endGrip), this._endGrip = t, this.processGrip(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.processGrip = function(t) {
                    t.parent = this, t.isMeasured = !1, t.focusable = !0, t.shouldClone = !1, t.zIndex = 100, t.events.on("drag", this.handleGripDrag, this, !1), t.events.on("dragstop", this.makeUnbusy, this, !1), t.events.on("down", this.makeBusy, this, !1), this._disposers.push(t)
                }, e.prototype.handleGripDrag = function(t) {
                    this.makeBusy(), t.target === this._startGrip ? this._usingGrip = "start" : this._usingGrip = "end", "horizontal" == this.orientation ? (this._start = this.startGrip.pixelX / this.innerWidth, this._end = this.endGrip.pixelX / this.innerWidth) : (this._start = 1 - this.startGrip.pixelY / this.innerHeight, this._end = 1 - this.endGrip.pixelY / this.innerHeight), this.updateThumb()
                }, Object.defineProperty(e.prototype, "thumb", {
                    get: function() {
                        if (!this._thumb) {
                            var t = new o.a;
                            t.background.cornerRadius(10, 10, 10, 10), t.padding(0, 0, 0, 0), this.thumb = t
                        }
                        return this._thumb
                    },
                    set: function(t) {
                        var e = this;
                        t && (this._thumb && this.removeDispose(this._thumb), this._thumb = t, t.parent = this, t.isMeasured = !1, t.inert = !0, t.draggable = !0, t.clickable = !0, t.hoverable = !0, t.focusable = !0, t.shouldClone = !1, t.zIndex = 0, t.cursorOverStyle = l.a.grab, t.cursorDownStyle = l.a.grabbing, t.events.on("dragstart", this.makeBusy, this, !1), t.events.on("dragstop", this.makeUnbusy, this, !1), t.events.on("positionchanged", this.handleThumbPosition, this, !1), t.events.on("sizechanged", this.handleThumbPosition, this, !1), t.events.on("doublehit", this.handleDoubleClick, this, !1), this._disposers.push(Object(s.b)().body.events.on("keyup", function(t) {
                            c.b.isKey(t.event, ["space", "enter"]) && e.thumb.isFocused && (t.event.preventDefault(), e.handleDoubleClick())
                        })), this._disposers.push(this._thumb))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleDoubleClick = function() {
                    this.makeBusy();
                    var t = 0,
                        e = 1;
                    0 != this.start || 1 != this.end ? (this._prevStart = this.start, this._prevEnd = this.end) : (t = this._prevStart, e = this._prevEnd);
                    var i = this.animate([{
                        property: "__start",
                        to: t
                    }, {
                        property: "__end",
                        to: e
                    }], this.animationDuration, this.animationEasing);
                    i && !i.isFinished() ? (i.events.on("animationended", this.makeUnbusy, this, !1), this._zoomAnimation = i) : this.makeUnbusy()
                }, e.prototype.handleThumbPosition = function() {
                    var t = this.thumb;
                    if ("horizontal" == this.orientation) {
                        var e = this.innerWidth,
                            i = t.innerWidth,
                            n = t.pixelX;
                        this._start = n / e, this._end = (n + i) / e, this.updateThumb()
                    } else {
                        var r = this.innerHeight,
                            a = t.innerHeight,
                            o = t.pixelY;
                        this._start = 1 - (o + a) / r, this._end = 1 - o / r, this.updateThumb()
                    }
                }, e.prototype.createBackground = function() {
                    return new u.a
                }, Object.defineProperty(e.prototype, "hideGrips", {
                    get: function() {
                        return this._hideGrips
                    },
                    set: function(t) {
                        var e = this;
                        this._hideGrips = t, this._overDisposer && this.removeDispose(this._overDisposer), this._outDisposer && this.removeDispose(this._outDisposer), t ? (this._overDisposer = this.events.on("over", function() {
                            e.startGrip.show(), e.endGrip.show()
                        }, void 0, !1), this._outDisposer = this.events.on("out", function() {
                            e.startGrip.hide(), e.endGrip.hide()
                        }, void 0, !1), this.startGrip.hide(), this.endGrip.hide()) : (this.startGrip.show(), this.endGrip.show())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "animationDuration", {
                    get: function() {
                        return this.getPropertyValue("animationDuration")
                    },
                    set: function(t) {
                        this.setPropertyValue("animationDuration", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "animationEasing", {
                    get: function() {
                        return this.getPropertyValue("animationEasing")
                    },
                    set: function(t) {
                        this.setPropertyValue("animationEasing", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.asFunction = function(e) {
                    return "animationEasing" == e || t.prototype.asIs.call(this, e)
                }, e
            }(r.a);
        h.c.registeredClasses.Scrollbar = v
    },
    IbQD: function(t, e, i) {
        "use strict";
        var n = i("HMf+"),
            r = i("JZFm");
        t.exports = n("Set", function(t) {
            return function() {
                return t(this, arguments.length ? arguments[0] : void 0)
            }
        }, r)
    },
    IbTV: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("TDx+"),
            a = i("aCit"),
            o = i("Gg2j"),
            s = i("Mtpk"),
            l = i("hGwe"),
            u = i("v9UT"),
            h = i("tjMS"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.fdx = 0, e.fdy = 0, e.className = "AxisLabelCircular", e.padding(0, 0, 0, 0), e.location = .5, e.radius = 0, e.isMeasured = !1, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "relativeRotation", {
                    get: function() {
                        return this.getPropertyValue("relativeRotation")
                    },
                    set: function(t) {
                        if (this.setPropertyValue("relativeRotation", t, !0), !s.hasValue(t)) {
                            this.rotation = void 0;
                            var e = this.dataItem;
                            e && e.component && e.component.invalidateDataItems()
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "radius", {
                    get: function() {
                        return this.getPropertyValue("radius")
                    },
                    set: function(t) {
                        this.setPercentProperty("radius", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bent", {
                    get: function() {
                        return this.getPropertyValue("bent")
                    },
                    set: function(t) {
                        this.setPropertyValue("bent", t, !0), this.setPropertyValue("wrap", !1), this.setPropertyValue("horizontalCenter", "none"), this.setPropertyValue("verticalCenter", "none"), t && (this.textAlign = "middle")
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.pixelRadius = function(t) {
                    var e = 1;
                    return this.inside && (e = -1), u.relativeToValue(this.radius, t) * e
                }, e.prototype.pixelRadiusY = function(t, e) {
                    var i = 1;
                    this.inside && (i = -1);
                    var n = this.radius;
                    return s.isNumber(n) ? (n *= e / t, u.relativeToValue(n, t) * i) : u.relativeToValue(n, e) * i
                }, e.prototype.fixPosition = function(t, e, i, n, r) {
                    s.isNumber(i) || (i = e), s.isNumber(n) || (n = 0), s.isNumber(r) || (r = 0);
                    var a = {
                        x: e * o.cos(t),
                        y: i * o.sin(t)
                    };
                    this.invalid && this.validate();
                    var u = !1,
                        c = this.radius;
                    c instanceof h.a && c.value < 0 ? u = !0 : c < 0 && (u = !0);
                    var p = this.relativeRotation,
                        d = this.pixelRadius(e);
                    if (this.bent) {
                        var f = {
                            x: e * o.cos(t + 180),
                            y: i * o.sin(t + 180)
                        };
                        return this.path = l.moveTo(f) + l.arcTo(t + 180, 360, e + d, i + d * i / e), void(this.locationOnPath = .5)
                    }
                    if (s.isNumber(p)) {
                        this.horizontalCenter = "none", this.verticalCenter = "none", t = o.fitAngleToRange(t, -180, 180);
                        var g = this.bbox.width,
                            y = this.bbox.height,
                            m = this.pixelPaddingBottom,
                            v = this.pixelPaddingTop,
                            b = this.pixelPaddingLeft,
                            x = this.pixelPaddingRight;
                        t > 90 || t < -90 ? -90 == p && (p = 90, g = 0) : (-90 == p && (y = -y), 90 == p && (p = -90, g = -b - x, y = -y - v - m)), this.rotation = p + t + 90;
                        var _ = o.sin(p) / 2,
                            P = o.cos(p) / 2,
                            w = this.rotation;
                        this.dx = y * _ * o.sin(w) - g * P * o.cos(w), this.dy = -y * _ * o.cos(w) - g * P * o.sin(w), this.inside ? t > 90 || t < -90 ? d -= (m + v) * o.cos(p) + (b + x) * o.sin(p) : d += (m + this.bbox.height + v) * o.cos(p) + (b + x + this.bbox.width) * o.sin(p) : d += (y + m + v) * o.cos(p) + (g + b + x) * o.sin(p), a.x += o.cos(t) * d, a.y += o.sin(t) * d * i / e
                    } else this.horizontalCenter = "middle", this.verticalCenter = "middle", u ? (this.dx = 0, this.dy = 0, a.x = (e + d) * o.cos(t), a.y = (i + d * i / e) * o.sin(t)) : (this.dy = this._measuredHeight / 2 * o.sin(t), this.dx = this._measuredWidth / 2 * o.cos(t), a.x += o.cos(t) * d, a.y += o.sin(t) * d * i / e);
                    a.x += n, a.y += r, this.fdx = this.dx, this.fdy = this.dy, this.moveTo(a)
                }, e
            }(r.a);
        a.c.registeredClasses.AxisLabelCircular = c
    },
    Ibl2: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("rhk+").end;
        n({
            target: "String",
            proto: !0,
            forced: i("tf09")
        }, {
            padEnd: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    Inf5: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("Vs7R"),
            o = i("aCit"),
            s = i("Gg2j"),
            l = i("hGwe"),
            u = i("Mtpk"),
            h = i("v9UT"),
            c = i("tjMS"),
            p = i("CuFa"),
            d = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Slice", e.setPropertyValue("cornerRadius", 0), e.setPropertyValue("startAngle", 0), e.setPercentProperty("innerRadius", 0), e.setPercentProperty("radius", 0), e.setPropertyValue("arc", 0), e.setPropertyValue("shiftRadius", 0), e.strokeOpacity = 1, e.setPropertyValue("layout", "none"), e.slice = e.createChild(a.a), e.slice.isMeasured = !1, e._disposers.push(e.slice), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.radiusY;
                    this.radius > 0 && 0 == e && (e = .01), this.slice.path = l.arc(this.startAngle, this.arc, this.radius, this.pixelInnerRadius, e, this.cornerRadius, this.innerCornerRadius), this.slice.invalidate(), this.shiftRadius = this.shiftRadius, this.realFill instanceof p.a && this.updateGradient(this.realFill), this.realStroke instanceof p.a && this.updateGradient(this.realStroke)
                }, e.prototype.updateGradient = function(t) {
                    t.element.attr({
                        gradientUnits: "userSpaceOnUse"
                    }), t.element.attr({
                        r: this.radius
                    }), t.cx = 0, t.cy = 0, t.element.attr({
                        radius: this.radius
                    })
                }, Object.defineProperty(e.prototype, "bbox", {
                    get: function() {
                        if (this.definedBBox) return this.definedBBox;
                        if (this.isMeasured) {
                            var t = s.getArcRect(this.startAngle, this.startAngle + this.arc, this.pixelInnerRadius),
                                e = s.getArcRect(this.startAngle, this.startAngle + this.arc, this.radius);
                            return s.getCommonRectangle([t, e])
                        }
                        return {
                            x: 0,
                            y: 0,
                            width: 0,
                            height: 0
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startAngle", {
                    get: function() {
                        return this.getPropertyValue("startAngle")
                    },
                    set: function(t) {
                        this.setPropertyValue("startAngle", s.normalizeAngle(t), !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "arc", {
                    get: function() {
                        return this.getPropertyValue("arc")
                    },
                    set: function(t) {
                        u.isNumber(t) || (t = 0), this.setPropertyValue("arc", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "radius", {
                    get: function() {
                        var t = this.getPropertyValue("radius");
                        return u.isNumber(t) || (t = 0), t
                    },
                    set: function(t) {
                        this.setPropertyValue("radius", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "radiusY", {
                    get: function() {
                        var t = this.getPropertyValue("radiusY");
                        return u.isNumber(t) || (t = this.radius), t
                    },
                    set: function(t) {
                        this.setPropertyValue("radiusY", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "innerRadius", {
                    get: function() {
                        return this.getPropertyValue("innerRadius")
                    },
                    set: function(t) {
                        this.setPercentProperty("innerRadius", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelInnerRadius", {
                    get: function() {
                        return h.relativeToValue(this.innerRadius, this.radius)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cornerRadius", {
                    get: function() {
                        return this.getPropertyValue("cornerRadius")
                    },
                    set: function(t) {
                        this.setPropertyValue("cornerRadius", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "innerCornerRadius", {
                    get: function() {
                        return this.getPropertyValue("innerCornerRadius")
                    },
                    set: function(t) {
                        this.setPropertyValue("innerCornerRadius", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "shiftRadius", {
                    get: function() {
                        return this.getPropertyValue("shiftRadius")
                    },
                    set: function(t) {
                        this.setPropertyValue("shiftRadius", t), this.dx = t * this.radius * this.ix, this.dy = t * this.radiusY * this.iy
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "ix", {
                    get: function() {
                        return s.cos(this.middleAngle)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "iy", {
                    get: function() {
                        return this.radius, s.sin(this.middleAngle)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "middleAngle", {
                    get: function() {
                        return this.startAngle + this.arc / 2
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getTooltipX = function() {
                    var t = this.getPropertyValue("tooltipX");
                    if (u.isNumber(t)) return t;
                    var e = .5;
                    t instanceof c.a && (e = t.value);
                    var i = h.relativeToValue(this.innerRadius, this.radius);
                    return this.ix * (i + (this.radius - i) * e)
                }, e.prototype.getTooltipY = function() {
                    var t = this.getPropertyValue("tooltipY");
                    if (u.isNumber(t)) return t;
                    var e = .5;
                    t instanceof c.a && (e = t.value);
                    var i = h.relativeToValue(this.innerRadius, this.radius);
                    return this.iy * (i + (this.radius - i) * e) + this.slice.dy
                }, e
            }(r.a);
        o.c.registeredClasses.Slice = d
    },
    IpLv: function(t, e, i) {
        var n = i("Kg2n"),
            r = Math.floor;
        t.exports = function(t) {
            return !n(t) && isFinite(t) && r(t) === t
        }
    },
    IwOK: function(t, e, i) {
        var n = i("vfdp").isFinite;
        t.exports = Number.isFinite || function(t) {
            return "number" == typeof t && n(t)
        }
    },
    Iz1H: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return n
        });
        var n = function() {
            function t() {
                this._disposed = !1, this._disposers = []
            }
            return t.prototype.init = function() {}, t.prototype.isDisposed = function() {
                return this._disposed
            }, t.prototype.dispose = function() {
                if (!this._disposed) {
                    this._disposed = !0;
                    var t = this._disposers;
                    for (this._disposers = null; 0 !== t.length;) {
                        t.shift().dispose()
                    }
                }
            }, t
        }()
    },
    "J+05": function(t, e, i) {
        var n = i("0sYB"),
            r = i("Kg2n"),
            a = i("3weC"),
            o = i("JZRr"),
            s = i("gxUV"),
            l = i("Ox5T");
        n({
            target: "Reflect",
            stat: !0
        }, {
            get: function t(e, i) {
                var n, u, h = arguments.length < 3 ? e : arguments[2];
                return a(e) === h ? e[i] : (n = s.f(e, i)) ? o(n, "value") ? n.value : void 0 === n.get ? void 0 : n.get.call(h) : r(u = l(e)) ? t(u, i, h) : void 0
            }
        })
    },
    "J+FZ": function(t, e, i) {
        var n = i("3sMl"),
            r = i("6aQQ"),
            a = i("JZRr"),
            o = Object.defineProperty,
            s = {},
            l = function(t) {
                throw t
            };
        t.exports = function(t, e) {
            if (a(s, t)) return s[t];
            e || (e = {});
            var i = [][t],
                u = !!a(e, "ACCESSORS") && e.ACCESSORS,
                h = a(e, 0) ? e[0] : l,
                c = a(e, 1) ? e[1] : void 0;
            return s[t] = !!i && !r(function() {
                if (u && !n) return !0;
                var t = {
                    length: -1
                };
                u ? o(t, 1, {
                    enumerable: !0,
                    get: l
                }) : t[1] = 1, i.call(t, h, c)
            })
        }
    },
    JAqT: function(t, e, i) {
        var n = i("vfdp"),
            r = i("2fPu"),
            a = n.WeakMap;
        t.exports = "function" == typeof a && /native code/.test(r(a))
    },
    JNIx: function(t, e, i) {
        "use strict";
        e.a = {
            _decimalSeparator: ".",
            _thousandSeparator: ",",
            _big_number_suffix_3: "k",
            _big_number_suffix_6: "M",
            _big_number_suffix_9: "G",
            _big_number_suffix_12: "T",
            _big_number_suffix_15: "P",
            _big_number_suffix_18: "E",
            _big_number_suffix_21: "Z",
            _big_number_suffix_24: "Y",
            _small_number_suffix_3: "m",
            _small_number_suffix_6: "Î¼",
            _small_number_suffix_9: "n",
            _small_number_suffix_12: "p",
            _small_number_suffix_15: "f",
            _small_number_suffix_18: "a",
            _small_number_suffix_21: "z",
            _small_number_suffix_24: "y",
            _byte_suffix_B: "B",
            _byte_suffix_KB: "KB",
            _byte_suffix_MB: "MB",
            _byte_suffix_GB: "GB",
            _byte_suffix_TB: "TB",
            _byte_suffix_PB: "PB",
            _date: "yyyy-MM-dd",
            _date_millisecond: "mm:ss SSS",
            _date_second: "HH:mm:ss",
            _date_minute: "HH:mm",
            _date_hour: "HH:mm",
            _date_day: "MMM dd",
            _date_week: "ww",
            _date_month: "MMM",
            _date_year: "yyyy",
            _duration_millisecond: "SSS",
            _duration_millisecond_second: "ss.SSS",
            _duration_millisecond_minute: "mm:ss SSS",
            _duration_millisecond_hour: "hh:mm:ss SSS",
            _duration_millisecond_day: "d'd' mm:ss SSS",
            _duration_millisecond_week: "d'd' mm:ss SSS",
            _duration_millisecond_month: "M'm' dd'd' mm:ss SSS",
            _duration_millisecond_year: "y'y' MM'm' dd'd' mm:ss SSS",
            _duration_second: "ss",
            _duration_second_minute: "mm:ss",
            _duration_second_hour: "hh:mm:ss",
            _duration_second_day: "d'd' hh:mm:ss",
            _duration_second_week: "d'd' hh:mm:ss",
            _duration_second_month: "M'm' dd'd' hh:mm:ss",
            _duration_second_year: "y'y' MM'm' dd'd' hh:mm:ss",
            _duration_minute: "mm",
            _duration_minute_hour: "hh:mm",
            _duration_minute_day: "d'd' hh:mm",
            _duration_minute_week: "d'd' hh:mm",
            _duration_minute_month: "M'm' dd'd' hh:mm",
            _duration_minute_year: "y'y' MM'm' dd'd' hh:mm",
            _duration_hour: "hh'h'",
            _duration_hour_day: "d'd' hh'h'",
            _duration_hour_week: "d'd' hh'h'",
            _duration_hour_month: "M'm' dd'd' hh'h'",
            _duration_hour_year: "y'y' MM'm' dd'd' hh'h'",
            _duration_day: "d'd'",
            _duration_day_week: "d'd'",
            _duration_day_month: "M'm' dd'd'",
            _duration_day_year: "y'y' MM'm' dd'd'",
            _duration_week: "w'w'",
            _duration_week_month: "w'w'",
            _duration_week_year: "w'w'",
            _duration_month: "M'm'",
            _duration_month_year: "y'y' MM'm'",
            _duration_year: "y'y'",
            _era_ad: "AD",
            _era_bc: "BC",
            A: "",
            P: "",
            AM: "",
            PM: "",
            "A.M.": "",
            "P.M.": "",
            January: "",
            February: "",
            March: "",
            April: "",
            May: "",
            June: "",
            July: "",
            August: "",
            September: "",
            October: "",
            November: "",
            December: "",
            Jan: "",
            Feb: "",
            Mar: "",
            Apr: "",
            "May(short)": "May",
            Jun: "",
            Jul: "",
            Aug: "",
            Sep: "",
            Oct: "",
            Nov: "",
            Dec: "",
            Sunday: "",
            Monday: "",
            Tuesday: "",
            Wednesday: "",
            Thursday: "",
            Friday: "",
            Saturday: "",
            Sun: "",
            Mon: "",
            Tue: "",
            Wed: "",
            Thu: "",
            Fri: "",
            Sat: "",
            _dateOrd: function(t) {
                var e = "th";
                if (t < 11 || t > 13) switch (t % 10) {
                    case 1:
                        e = "st";
                        break;
                    case 2:
                        e = "nd";
                        break;
                    case 3:
                        e = "rd"
                }
                return e
            },
            "Zoom Out": "",
            Play: "",
            Stop: "",
            Legend: "",
            "Click, tap or press ENTER to toggle": "",
            Loading: "",
            Home: "",
            Chart: "",
            "Serial chart": "",
            "X/Y chart": "",
            "Pie chart": "",
            "Gauge chart": "",
            "Radar chart": "",
            "Sankey diagram": "",
            "Flow diagram": "",
            "Chord diagram": "",
            "TreeMap chart": "",
            "Force directed tree": "",
            "Sliced chart": "",
            Series: "",
            "Candlestick Series": "",
            "OHLC Series": "",
            "Column Series": "",
            "Line Series": "",
            "Pie Slice Series": "",
            "Funnel Series": "",
            "Pyramid Series": "",
            "X/Y Series": "",
            Map: "",
            "Press ENTER to zoom in": "",
            "Press ENTER to zoom out": "",
            "Use arrow keys to zoom in and out": "",
            "Use plus and minus keys on your keyboard to zoom in and out": "",
            Export: "",
            Image: "",
            Data: "",
            Print: "",
            "Click, tap or press ENTER to open": "",
            "Click, tap or press ENTER to print.": "",
            "Click, tap or press ENTER to export as %1.": "",
            'To save the image, right-click this link and choose "Save picture as..."': "",
            'To save the image, right-click thumbnail on the left and choose "Save picture as..."': "",
            "(Press ESC to close this message)": "",
            "Image Export Complete": "",
            "Export operation took longer than expected. Something might have gone wrong.": "",
            "Saved from": "",
            PNG: "",
            JPG: "",
            GIF: "",
            SVG: "",
            PDF: "",
            JSON: "",
            CSV: "",
            XLSX: "",
            "Use TAB to select grip buttons or left and right arrows to change selection": "",
            "Use left and right arrows to move selection": "",
            "Use left and right arrows to move left selection": "",
            "Use left and right arrows to move right selection": "",
            "Use TAB select grip buttons or up and down arrows to change selection": "",
            "Use up and down arrows to move selection": "",
            "Use up and down arrows to move lower selection": "",
            "Use up and down arrows to move upper selection": "",
            "From %1 to %2": "",
            "From %1": "",
            "To %1": "",
            "No parser available for file: %1": "",
            "Error parsing file: %1": "",
            "Unable to load file: %1": "",
            "Invalid date": "",
            Close: "",
            Minimize: ""
        }
    },
    JZFm: function(t, e, i) {
        "use strict";
        var n = i("8+rI").f,
            r = i("QzDi"),
            a = i("/vWR"),
            o = i("cLsB"),
            s = i("L56b"),
            l = i("L4xm"),
            u = i("vBfr"),
            h = i("YRD/"),
            c = i("3sMl"),
            p = i("Tl3C").fastKey,
            d = i("SqFF"),
            f = d.set,
            g = d.getterFor;
        t.exports = {
            getConstructor: function(t, e, i, u) {
                var h = t(function(t, n) {
                        s(t, h, e), f(t, {
                            type: e,
                            index: r(null),
                            first: void 0,
                            last: void 0,
                            size: 0
                        }), c || (t.size = 0), void 0 != n && l(n, t[u], t, i)
                    }),
                    d = g(e),
                    y = function(t, e, i) {
                        var n, r, a = d(t),
                            o = m(t, e);
                        return o ? o.value = i : (a.last = o = {
                            index: r = p(e, !0),
                            key: e,
                            value: i,
                            previous: n = a.last,
                            next: void 0,
                            removed: !1
                        }, a.first || (a.first = o), n && (n.next = o), c ? a.size++ : t.size++, "F" !== r && (a.index[r] = o)), t
                    },
                    m = function(t, e) {
                        var i, n = d(t),
                            r = p(e);
                        if ("F" !== r) return n.index[r];
                        for (i = n.first; i; i = i.next)
                            if (i.key == e) return i
                    };
                return a(h.prototype, {
                    clear: function() {
                        for (var t = d(this), e = t.index, i = t.first; i;) i.removed = !0, i.previous && (i.previous = i.previous.next = void 0), delete e[i.index], i = i.next;
                        t.first = t.last = void 0, c ? t.size = 0 : this.size = 0
                    },
                    delete: function(t) {
                        var e = d(this),
                            i = m(this, t);
                        if (i) {
                            var n = i.next,
                                r = i.previous;
                            delete e.index[i.index], i.removed = !0, r && (r.next = n), n && (n.previous = r), e.first == i && (e.first = n), e.last == i && (e.last = r), c ? e.size-- : this.size--
                        }
                        return !!i
                    },
                    forEach: function(t) {
                        for (var e, i = d(this), n = o(t, arguments.length > 1 ? arguments[1] : void 0, 3); e = e ? e.next : i.first;)
                            for (n(e.value, e.key, this); e && e.removed;) e = e.previous
                    },
                    has: function(t) {
                        return !!m(this, t)
                    }
                }), a(h.prototype, i ? {
                    get: function(t) {
                        var e = m(this, t);
                        return e && e.value
                    },
                    set: function(t, e) {
                        return y(this, 0 === t ? 0 : t, e)
                    }
                } : {
                    add: function(t) {
                        return y(this, t = 0 === t ? 0 : t, t)
                    }
                }), c && n(h.prototype, "size", {
                    get: function() {
                        return d(this).size
                    }
                }), h
            },
            setStrong: function(t, e, i) {
                var n = e + " Iterator",
                    r = g(e),
                    a = g(n);
                u(t, e, function(t, e) {
                    f(this, {
                        type: n,
                        target: t,
                        state: r(t),
                        kind: e,
                        last: void 0
                    })
                }, function() {
                    for (var t = a(this), e = t.kind, i = t.last; i && i.removed;) i = i.previous;
                    return t.target && (t.last = i = i ? i.next : t.state.first) ? "keys" == e ? {
                        value: i.key,
                        done: !1
                    } : "values" == e ? {
                        value: i.value,
                        done: !1
                    } : {
                        value: [i.key, i.value],
                        done: !1
                    } : (t.target = void 0, {
                        value: void 0,
                        done: !0
                    })
                }, i ? "entries" : "values", !i, !0), h(e)
            }
        }
    },
    JZRr: function(t, e) {
        var i = {}.hasOwnProperty;
        t.exports = function(t, e) {
            return i.call(t, e)
        }
    },
    Jdjl: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("Kg2n"),
            a = i("o3G/"),
            o = i("Y8n3"),
            s = i("tHyI"),
            l = i("9XRO"),
            u = i("WShl"),
            h = i("KslR"),
            c = i("ugpH"),
            p = i("J+FZ"),
            d = c("slice"),
            f = p("slice", {
                ACCESSORS: !0,
                0: 0,
                1: 2
            }),
            g = h("species"),
            y = [].slice,
            m = Math.max;
        n({
            target: "Array",
            proto: !0,
            forced: !d || !f
        }, {
            slice: function(t, e) {
                var i, n, h, c = l(this),
                    p = s(c.length),
                    d = o(t, p),
                    f = o(void 0 === e ? p : e, p);
                if (a(c) && ("function" != typeof(i = c.constructor) || i !== Array && !a(i.prototype) ? r(i) && null === (i = i[g]) && (i = void 0) : i = void 0, i === Array || void 0 === i)) return y.call(c, d, f);
                for (n = new(void 0 === i ? Array : i)(m(f - d, 0)), h = 0; d < f; d++, h++) d in c && u(n, h, c[d]);
                return n.length = h, n
            }
        })
    },
    JezW: function(t, e, i) {
        var n = i("0sYB"),
            r = i("39+r"),
            a = i("0FA2");
        n({
            target: "Array",
            proto: !0
        }, {
            copyWithin: r
        }), a("copyWithin")
    },
    KJuV: function(t, e, i) {
        var n = i("3weC"),
            r = i("ucqQ");
        t.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
            var t, e = !1,
                i = {};
            try {
                (t = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(i, []), e = i instanceof Array
            } catch (t) {}
            return function(i, a) {
                return n(i), r(a), e ? t.call(i, a) : i.__proto__ = a, i
            }
        }() : void 0)
    },
    KSd4: function(t, e) {
        e.f = Object.getOwnPropertySymbols
    },
    KWPb: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("ojxk").includes,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("includes", function(t) {
            return r(a(this), t, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    KWTK: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("vjgd"),
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("fill", function(t) {
            return r.apply(a(this), arguments)
        })
    },
    Kg2n: function(t, e) {
        t.exports = function(t) {
            return "object" == typeof t ? null !== t : "function" == typeof t
        }
    },
    KknQ: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return m
        }), i.d(e, "a", function() {
            return v
        });
        var n = i("m4/l"),
            r = i("pR7v"),
            a = i("vMqJ"),
            o = i("+qIf"),
            s = i("9ZsQ"),
            l = i("aCit"),
            u = i("L91H"),
            h = i("Mtpk"),
            c = i("Wglt"),
            p = i("Gg2j"),
            d = i("hJ5i"),
            f = i("Qkdp"),
            g = i("v9UT"),
            y = i("VGgz"),
            m = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "DateAxisDataItem", e.applyTheme(), e.values.date = {}, e.values.endDate = {}, e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "date", {
                    get: function() {
                        return this.dates.date
                    },
                    set: function(t) {
                        this.setDate("date", t), this.value = t.getTime()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endDate", {
                    get: function() {
                        return this.dates.endDate
                    },
                    set: function(t) {
                        this.setDate("endDate", t), this.endValue = t.getTime()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.b),
            v = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._gapBreaks = !1, e.gridIntervals = new a.b, e.groupIntervals = new a.b, e.dateFormats = new o.a, e.periodChangeDateFormats = new o.a, e._baseIntervalReal = {
                        timeUnit: "day",
                        count: 1
                    }, e._minDifference = {}, e._firstWeekDay = 1, e.groupMin = {}, e.groupMax = {}, e.className = "DateAxis", e.setPropertyValue("markUnitChange", !0), e.snapTooltip = !0, e.tooltipPosition = "pointer", e.setPropertyValue("groupData", !1), e.groupCount = 200, e.events.on("parentset", e.getDFFormatter, e, !1), e.gridIntervals.pushAll([{
                        timeUnit: "millisecond",
                        count: 1
                    }, {
                        timeUnit: "millisecond",
                        count: 5
                    }, {
                        timeUnit: "millisecond",
                        count: 10
                    }, {
                        timeUnit: "millisecond",
                        count: 50
                    }, {
                        timeUnit: "millisecond",
                        count: 100
                    }, {
                        timeUnit: "millisecond",
                        count: 500
                    }, {
                        timeUnit: "second",
                        count: 1
                    }, {
                        timeUnit: "second",
                        count: 5
                    }, {
                        timeUnit: "second",
                        count: 10
                    }, {
                        timeUnit: "second",
                        count: 30
                    }, {
                        timeUnit: "minute",
                        count: 1
                    }, {
                        timeUnit: "minute",
                        count: 5
                    }, {
                        timeUnit: "minute",
                        count: 10
                    }, {
                        timeUnit: "minute",
                        count: 15
                    }, {
                        timeUnit: "minute",
                        count: 30
                    }, {
                        timeUnit: "hour",
                        count: 1
                    }, {
                        timeUnit: "hour",
                        count: 3
                    }, {
                        timeUnit: "hour",
                        count: 6
                    }, {
                        timeUnit: "hour",
                        count: 12
                    }, {
                        timeUnit: "day",
                        count: 1
                    }, {
                        timeUnit: "day",
                        count: 2
                    }, {
                        timeUnit: "day",
                        count: 3
                    }, {
                        timeUnit: "day",
                        count: 4
                    }, {
                        timeUnit: "day",
                        count: 5
                    }, {
                        timeUnit: "week",
                        count: 1
                    }, {
                        timeUnit: "month",
                        count: 1
                    }, {
                        timeUnit: "month",
                        count: 2
                    }, {
                        timeUnit: "month",
                        count: 3
                    }, {
                        timeUnit: "month",
                        count: 6
                    }, {
                        timeUnit: "year",
                        count: 1
                    }, {
                        timeUnit: "year",
                        count: 2
                    }, {
                        timeUnit: "year",
                        count: 5
                    }, {
                        timeUnit: "year",
                        count: 10
                    }, {
                        timeUnit: "year",
                        count: 50
                    }, {
                        timeUnit: "year",
                        count: 100
                    }, {
                        timeUnit: "year",
                        count: 200
                    }, {
                        timeUnit: "year",
                        count: 500
                    }, {
                        timeUnit: "year",
                        count: 1e3
                    }, {
                        timeUnit: "year",
                        count: 2e3
                    }, {
                        timeUnit: "year",
                        count: 5e3
                    }, {
                        timeUnit: "year",
                        count: 1e4
                    }, {
                        timeUnit: "year",
                        count: 1e5
                    }]), e.groupIntervals.pushAll([{
                        timeUnit: "millisecond",
                        count: 1
                    }, {
                        timeUnit: "millisecond",
                        count: 10
                    }, {
                        timeUnit: "millisecond",
                        count: 100
                    }, {
                        timeUnit: "second",
                        count: 1
                    }, {
                        timeUnit: "second",
                        count: 10
                    }, {
                        timeUnit: "minute",
                        count: 1
                    }, {
                        timeUnit: "minute",
                        count: 10
                    }, {
                        timeUnit: "hour",
                        count: 1
                    }, {
                        timeUnit: "day",
                        count: 1
                    }, {
                        timeUnit: "week",
                        count: 1
                    }, {
                        timeUnit: "month",
                        count: 1
                    }, {
                        timeUnit: "year",
                        count: 1
                    }]), e.axisFieldName = "date", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.fillRule = function(t) {
                    var e = t.value,
                        i = t.component,
                        n = i._gridInterval,
                        r = u.getDuration(n.timeUnit, n.count);
                    Math.round((e - i.min) / r) / 2 == Math.round(Math.round((e - i.min) / r) / 2) ? t.axisFill.__disabled = !0 : t.axisFill.__disabled = !1
                }, e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), this.dateFormats.hasKey("millisecond") || this.dateFormats.setKey("millisecond", this.language.translate("_date_millisecond")), this.dateFormats.hasKey("second") || this.dateFormats.setKey("second", this.language.translate("_date_second")), this.dateFormats.hasKey("minute") || this.dateFormats.setKey("minute", this.language.translate("_date_minute")), this.dateFormats.hasKey("hour") || this.dateFormats.setKey("hour", this.language.translate("_date_hour")), this.dateFormats.hasKey("day") || this.dateFormats.setKey("day", this.language.translate("_date_day")), this.dateFormats.hasKey("week") || this.dateFormats.setKey("week", this.language.translate("_date_day")), this.dateFormats.hasKey("month") || this.dateFormats.setKey("month", this.language.translate("_date_month")), this.dateFormats.hasKey("year") || this.dateFormats.setKey("year", this.language.translate("_date_year")), this.periodChangeDateFormats.hasKey("millisecond") || this.periodChangeDateFormats.setKey("millisecond", this.language.translate("_date_millisecond")), this.periodChangeDateFormats.hasKey("second") || this.periodChangeDateFormats.setKey("second", this.language.translate("_date_second")), this.periodChangeDateFormats.hasKey("minute") || this.periodChangeDateFormats.setKey("minute", this.language.translate("_date_minute")), this.periodChangeDateFormats.hasKey("hour") || this.periodChangeDateFormats.setKey("hour", this.language.translate("_date_hour")), this.periodChangeDateFormats.hasKey("day") || this.periodChangeDateFormats.setKey("day", this.language.translate("_date_day")), this.periodChangeDateFormats.hasKey("week") || this.periodChangeDateFormats.setKey("week", this.language.translate("_date_day")), this.periodChangeDateFormats.hasKey("month") || this.periodChangeDateFormats.setKey("month", this.language.translate("_date_month") + " " + this.language.translate("_date_year"))
                }, e.prototype.createDataItem = function() {
                    return new m
                }, e.prototype.createAxisBreak = function() {
                    return new s.a
                }, e.prototype.validateDataItems = function() {
                    var e = this.start,
                        i = this.end,
                        n = this.baseDuration,
                        r = (this.max - this.min) / n;
                    this._firstWeekDay = this.getFirstWeekDay(), this.getDFFormatter(), t.prototype.validateDataItems.call(this);
                    var a = u.getDuration(this.mainBaseInterval.timeUnit, this.mainBaseInterval.count);
                    this.maxZoomFactor = (this.max - this.min) / a, this._deltaMinMax = this.baseDuration / 2, e += (i - e) * (1 - r / ((this.max - this.min) / n)), this.zoom({
                        start: e,
                        end: i
                    }, !1, !0)
                }, e.prototype.handleSelectionExtremesChange = function() {}, e.prototype.calculateZoom = function() {
                    var e = this;
                    t.prototype.calculateZoom.call(this);
                    var i = this.adjustDifference(this._minZoomed, this._maxZoomed),
                        r = !1;
                    if (this.groupData && h.hasValue(i)) {
                        var a = this.mainBaseInterval,
                            o = this.chooseInterval(0, i, this.groupCount, this.groupIntervals);
                        u.getDuration(o.timeUnit, o.count) < u.getDuration(a.timeUnit, a.count) && (o = Object(n.a)({}, a)), this._groupInterval = o, this._currentDataSetId = o.timeUnit + o.count, this.series.each(function(t) {
                            t.baseAxis == e && t.setDataSet(e._currentDataSetId) && (r = !0)
                        })
                    }
                    var s = this.chooseInterval(0, i, this._gridCount);
                    u.getDuration(s.timeUnit, s.count) < this.baseDuration && (s = Object(n.a)({}, this.baseInterval)), this._gridInterval = s, this._nextGridUnit = u.getNextUnit(s.timeUnit), this._intervalDuration = u.getDuration(s.timeUnit, s.count), this._gridDate = u.round(new Date(this.minZoomed - u.getDuration(s.timeUnit, s.count)), s.timeUnit, s.count, this._firstWeekDay, this._df.utc, new Date(this.min)), c.each(this.series.iterator(), function(t) {
                        if (t.baseAxis == e) {
                            var i = t.getAxisField(e),
                                n = u.round(new Date(e._minZoomed), e.baseInterval.timeUnit, e.baseInterval.count, e._firstWeekDay, e._df.utc).getTime(),
                                a = n.toString(),
                                o = t.dataItemsByAxis.getKey(e.uid).getKey(a + t.currentDataSetId),
                                s = 0;
                            0 != e.start && (s = o ? (o = e.findFirst(o, n, i)).index : t.dataItems.findClosestIndex(e._minZoomed, function(t) {
                                return t[i]
                            }, "left"));
                            var l = e.baseInterval,
                                h = u.add(u.round(new Date(e._maxZoomed), l.timeUnit, l.count, e._firstWeekDay, e._df.utc), l.timeUnit, l.count, e._df.utc).getTime(),
                                c = h.toString(),
                                p = t.dataItemsByAxis.getKey(e.uid).getKey(c + t.currentDataSetId),
                                d = t.dataItems.length;
                            1 != e.end && (p ? d = p.index : (h -= 1, (d = t.dataItems.findClosestIndex(h, function(t) {
                                return t[i]
                            }, "right")) < t.dataItems.length && d++)), t.startIndex = s, t.endIndex = d, !r && t.dataRangeInvalid && t.validateDataRange()
                        }
                    })
                }, e.prototype.findFirst = function(t, e, i) {
                    var n = t.index;
                    if (n > 0) {
                        var r = t.component.dataItems.getIndex(n - 1),
                            a = r[i];
                        return !a || a.getTime() < e ? t : this.findFirst(r, e, i)
                    }
                    return t
                }, e.prototype.validateData = function() {
                    t.prototype.validateData.call(this), h.isNumber(this.baseInterval.count) || (this.baseInterval.count = 1)
                }, Object.defineProperty(e.prototype, "minDifference", {
                    get: function() {
                        var t = this,
                            e = Number.MAX_VALUE;
                        return this.series.each(function(i) {
                            e > t._minDifference[i.uid] && (e = t._minDifference[i.uid])
                        }), e != Number.MAX_VALUE && 0 != e || (e = u.getDuration("day")), e
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.seriesDataChangeUpdate = function(t) {
                    this._minDifference[t.uid] = Number.MAX_VALUE
                }, e.prototype.postProcessSeriesDataItems = function() {
                    var t = this;
                    this.series.each(function(e) {
                        JSON.stringify(e._baseInterval[t.uid]) != JSON.stringify(t.mainBaseInterval) && (e._baseInterval[t.uid] = t.mainBaseInterval, e.mainDataSet.each(function(e) {
                            t.postProcessSeriesDataItem(e)
                        }), t.groupData && t.groupSeriesData(e))
                    }), this.addEmptyUnitsBreaks()
                }, e.prototype.groupSeriesData = function(t) {
                    var e = this;
                    if (t.baseAxis == this && t.dataItems.length > 0 && !t.dataGrouped) {
                        var i = [],
                            n = this.mainBaseInterval,
                            r = u.getDuration(n.timeUnit, n.count);
                        this.groupIntervals.each(function(t) {
                            var n = u.getDuration(t.timeUnit, t.count);
                            n > r && n < e.max - e.min && i.push(t)
                        }), t._dataSets && (t._dataSets.each(function(t, e) {
                            e.each(function(t) {
                                t.dispose()
                            }), e.clear()
                        }), t._dataSets.clear()), d.each(i, function(i) {
                            var n = "date" + e.axisLetter,
                                r = i.timeUnit + i.count,
                                a = new y.b(t.mainDataSet.template.clone());
                            t.dataSets.setKey(r, a), t.dataGrouped = !0;
                            var o, s = t.mainDataSet,
                                l = Number.NEGATIVE_INFINITY,
                                c = 0,
                                p = [];
                            f.each(t.dataFields, function(t, e) {
                                var i = t;
                                i != n && -1 == i.indexOf("Show") && p.push(i)
                            }), s.each(function(r) {
                                var s = r.getDate(n);
                                if (s) {
                                    var y = s.getTime(),
                                        m = u.round(new Date(y), i.timeUnit, i.count, e._df.firstDayOfWeek, e._df.utc),
                                        v = m.getTime();
                                    l < v ? ((o = a.create()).dataContext = {}, o.component = t, o.setDate(n, m), o._index = c, c++, d.each(p, function(t) {
                                        var e = r.values[t];
                                        if (e) {
                                            var i = e.value,
                                                n = o.values[t];
                                            h.isNumber(i) ? (n.value = i, n.workingValue = i, n.open = i, n.close = i, n.low = i, n.high = i, n.sum = i, n.average = i, n.count = 1) : n.count = 0
                                        }
                                    }), e.postProcessSeriesDataItem(o, i), f.each(t.propertyFields, function(t, e) {
                                        var i = t,
                                            n = r.properties[t];
                                        h.hasValue(n) && (o.hasProperties = !0, o.setProperty(i, n))
                                    }), o.groupDataItems = [r], l = v) : o && (d.each(p, function(e) {
                                        var i = t.groupFields[e],
                                            n = r.values[e];
                                        if (n) {
                                            var a = n.value;
                                            if (h.isNumber(a)) {
                                                var s = o.values[e];
                                                h.isNumber(s.open) || (s.open = a), s.close = a, (s.low > a || !h.isNumber(s.low)) && (s.low = a), (s.high < a || !h.isNumber(s.high)) && (s.high = a), h.isNumber(s.sum) ? s.sum += a : s.sum = a, s.count++, s.average = s.sum / s.count, h.isNumber(s[i]) && (s.value = s[i], s.workingValue = s.value)
                                            }
                                        }
                                    }), g.copyProperties(r.properties, o.properties), f.each(t.propertyFields, function(t, e) {
                                        var i = t,
                                            n = r.properties[t];
                                        h.hasValue(n) && (o.hasProperties = !0, o.setProperty(i, n))
                                    }), o.groupDataItems.push(r))
                                }
                                o && g.copyProperties(r.dataContext, o.dataContext)
                            })
                        }), this.calculateZoom()
                    }
                }, e.prototype.getDFFormatter = function() {
                    this._df = this.dateFormatter
                }, e.prototype.postProcessSeriesDataItem = function(t, e) {
                    var i = this,
                        n = "";
                    e ? n = e.timeUnit + e.count : e = this.mainBaseInterval;
                    var r = t.component.dataItemsByAxis.getKey(this.uid);
                    f.each(t.dates, function(a) {
                        var o = t.getDate(a).getTime(),
                            s = u.round(new Date(o), e.timeUnit, e.count, i._firstWeekDay, i._df.utc).getTime(),
                            l = u.add(new Date(s), e.timeUnit, e.count, i._df.utc);
                        t.setCalculatedValue(a, s, "open"), t.setCalculatedValue(a, l.getTime(), "close"), r.setKey(s + n, t)
                    })
                }, e.prototype.addEmptyUnitsBreaks = function() {
                    var t = this;
                    if (this.skipEmptyPeriods && h.isNumber(this.min) && h.isNumber(this.max)) {
                        var e = this.baseInterval.timeUnit,
                            i = this.baseInterval.count;
                        this._axisBreaks && this._axisBreaks.clear();
                        for (var n = u.round(new Date(this.min), e, i, this._firstWeekDay, this._df.utc), r = void 0, a = function() {
                                u.add(n, e, i, o._df.utc);
                                var a = n.getTime(),
                                    s = a.toString();
                                c.contains(o.series.iterator(), function(e) {
                                    return !!e.dataItemsByAxis.getKey(t.uid).getKey(s + e.currentDataSetId)
                                }) ? r && (r.endDate = new Date(a - 1), r = void 0) : r || ((r = o.axisBreaks.create()).startDate = new Date(a), o._gapBreaks = !0)
                            }, o = this; n.getTime() < this.max - this.baseDuration;) a()
                    }
                }, e.prototype.fixAxisBreaks = function() {
                    var e = this;
                    t.prototype.fixAxisBreaks.call(this);
                    var i = this._axisBreaks;
                    i && i.length > 0 && i.each(function(t) {
                        var i = Math.ceil(e._gridCount * (Math.min(e.end, t.endPosition) - Math.max(e.start, t.startPosition)) / (e.end - e.start));
                        t.gridInterval = e.chooseInterval(0, t.adjustedEndValue - t.adjustedStartValue, i);
                        var n = u.round(new Date(t.adjustedStartValue), t.gridInterval.timeUnit, t.gridInterval.count, e._firstWeekDay, e._df.utc);
                        n.getTime() > t.startDate.getTime() && u.add(n, t.gridInterval.timeUnit, t.gridInterval.count, e._df.utc), t.gridDate = n
                    })
                }, e.prototype.getFirstWeekDay = function() {
                    return this._df ? this._df.firstDayOfWeek : 1
                }, e.prototype.getGridDate = function(t, e) {
                    var i = this._gridInterval.timeUnit,
                        n = this._gridInterval.count;
                    u.round(t, i, 1, this._firstWeekDay, this._df.utc);
                    var r = t.getTime(),
                        a = u.copy(t),
                        o = u.add(a, i, e, this._df.utc).getTime(),
                        s = this.isInBreak(o);
                    s && s.endDate && (a = new Date(s.endDate.getTime()), u.round(a, i, n, this._firstWeekDay, this._df.utc), a.getTime() < s.endDate.getTime() && u.add(a, i, n, this._df.utc), o = a.getTime());
                    var l = this.adjustDifference(r, o);
                    return Math.round(l / u.getDuration(i)) < n ? this.getGridDate(t, e + n) : a
                }, e.prototype.getBreaklessDate = function(t, e, i) {
                    var n = new Date(t.endValue);
                    u.round(n, e, i, this._firstWeekDay, this._df.utc), u.add(n, e, i, this._df.utc);
                    var r = n.getTime();
                    return (t = this.isInBreak(r)) ? this.getBreaklessDate(t, e, i) : n
                }, e.prototype.validateAxisElements = function() {
                    var t = this;
                    if (h.isNumber(this.max) && h.isNumber(this.min)) {
                        this.calculateZoom();
                        var e = this._gridDate.getTime(),
                            i = this._gridInterval.timeUnit,
                            n = this._gridInterval.count,
                            r = u.copy(this._gridDate),
                            a = this._dataItemsIterator;
                        this.resetIterators();
                        for (var o = function() {
                                var t = s.getGridDate(u.copy(r), n);
                                e = t.getTime();
                                var o = u.copy(t);
                                o = u.add(o, i, n, s._df.utc);
                                var l = s.dateFormats.getKey(i);
                                s.markUnitChange && r && u.checkChange(t, r, s._nextGridUnit, s._df.utc) && "year" !== i && (l = s.periodChangeDateFormats.getKey(i));
                                var h = s._df.format(t, l),
                                    c = a.find(function(t) {
                                        return t.text === h
                                    });
                                c.__disabled && (c.__disabled = !1), s.appendDataItem(c), c.axisBreak = void 0, c.date = t, c.endDate = o, c.text = h, s.validateDataElement(c), r = t
                            }, s = this; e <= this._maxZoomed;) o();
                        var l = this.renderer;
                        this._axisBreaks && c.each(this._axisBreaks.iterator(), function(e) {
                            if (e.breakSize > 0) {
                                var i = e.gridInterval.timeUnit,
                                    n = e.gridInterval.count;
                                if (p.getDistance(e.startPoint, e.endPoint) > 4 * l.minGridDistance)
                                    for (var r, o = e.gridDate.getTime(), s = 0, h = function() {
                                            var l = u.copy(e.gridDate);
                                            if (o = u.add(l, i, n * s, t._df.utc).getTime(), s++, o > e.adjustedStartValue && o < e.adjustedEndValue) {
                                                var h = u.copy(l);
                                                h = u.add(h, i, n, t._df.utc);
                                                var c = t.dateFormats.getKey(i);
                                                t.markUnitChange && r && u.checkChange(l, r, t._nextGridUnit, t._df.utc) && "year" !== i && (c = t.periodChangeDateFormats.getKey(i));
                                                var p = t._df.format(l, c),
                                                    d = a.find(function(t) {
                                                        return t.text === p
                                                    });
                                                d.__disabled && (d.__disabled = !1), t.appendDataItem(d), d.axisBreak = e, e.dataItems.moveValue(d), d.date = l, d.endDate = h, d.text = p, r = l, t.validateDataElement(d)
                                            }
                                        }; o <= e.adjustedMax;) h()
                            }
                        })
                    }
                }, e.prototype.validateDataElement = function(t) {
                    if (t.itemIndex = this._axisItemCount, this._axisItemCount++, h.isNumber(this.max) && h.isNumber(this.min)) {
                        var e = this.renderer,
                            i = t.value,
                            n = t.endValue;
                        h.isNumber(n) || (n = i);
                        var r = this.valueToPosition(i),
                            a = this.valueToPosition(n),
                            o = a;
                        !t.isRange && this._gridInterval.count > this.baseInterval.count && (a = r + (a - r) / (this._gridInterval.count / this.baseInterval.count)), t.position = r;
                        var s = t.tick;
                        s && !s.disabled && e.updateTickElement(s, r, a);
                        var l = t.grid;
                        l && !l.disabled && e.updateGridElement(l, r, a);
                        var u = t.axisFill;
                        u && !u.disabled && (e.updateFillElement(u, r, o), t.isRange || this.fillRule(t));
                        var c = t.mask;
                        c && e.updateFillElement(c, r, a), t.bullet && e.updateBullet(t.bullet, r, a);
                        var p = t.label;
                        if (p && !p.disabled) {
                            var d = p.location;
                            0 == d && (d = 1 != this._gridInterval.count || "week" == this._gridInterval.timeUnit || t.isRange ? 0 : .5), e.updateLabelElement(p, r, a, d)
                        }
                    }
                }, Object.defineProperty(e.prototype, "baseDuration", {
                    get: function() {
                        return u.getDuration(this.baseInterval.timeUnit, this.baseInterval.count)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.adjustMinMax = function(t, e) {
                    return {
                        min: t,
                        max: e,
                        step: this.baseDuration
                    }
                }, e.prototype.fixMin = function(t) {
                    var e = this.baseInterval,
                        i = u.round(new Date(t), e.timeUnit, e.count, this._firstWeekDay, this._df.utc).getTime();
                    return i + (u.add(new Date(i), e.timeUnit, e.count, this._df.utc).getTime() - i) * this.startLocation
                }, e.prototype.fixMax = function(t) {
                    var e = this.baseInterval,
                        i = u.round(new Date(t), e.timeUnit, e.count, this._firstWeekDay, this._df.utc).getTime();
                    return i + (u.add(new Date(i), e.timeUnit, e.count, this._df.utc).getTime() - i) * this.endLocation
                }, e.prototype.chooseInterval = function(t, e, i, r) {
                    r || (r = this.gridIntervals);
                    var a = r.getIndex(t),
                        o = u.getDuration(a.timeUnit, a.count),
                        s = r.length - 1;
                    if (t >= s) return Object(n.a)({}, r.getIndex(s));
                    var l = Math.ceil(e / o);
                    return e < o && t > 0 ? Object(n.a)({}, r.getIndex(t - 1)) : l <= i ? Object(n.a)({}, r.getIndex(t)) : t + 1 < r.length ? this.chooseInterval(t + 1, e, i, r) : Object(n.a)({}, r.getIndex(t))
                }, e.prototype.formatLabel = function(t) {
                    return this._df.format(t)
                }, e.prototype.dateToPosition = function(t) {
                    return this.valueToPosition(t.getTime())
                }, e.prototype.anyToPosition = function(t) {
                    return t instanceof Date ? this.dateToPosition(t) : this.valueToPosition(t)
                }, e.prototype.dateToPoint = function(t) {
                    var e = this.dateToPosition(t),
                        i = this.renderer.positionToPoint(e),
                        n = this.renderer.positionToAngle(e);
                    return {
                        x: i.x,
                        y: i.y,
                        angle: n
                    }
                }, e.prototype.anyToPoint = function(t) {
                    return t instanceof Date ? this.dateToPoint(t) : this.valueToPoint(t)
                }, e.prototype.positionToDate = function(t) {
                    return new Date(this.positionToValue(t))
                }, e.prototype.getPositionX = function(t, e, i, n, r) {
                    var a = this.getTimeByLocation(t, e, i);
                    h.isNumber(a) || (a = this.baseValue);
                    var o = this.valueToPosition(a);
                    return r && (o = p.fitToRange(o, r.start, r.end)), o
                }, e.prototype.getPositionY = function(t, e, i, n, r) {
                    var a = this.getTimeByLocation(t, e, i),
                        o = t.getValue("valueX", "stack");
                    h.isNumber(a) || (a = this.baseValue);
                    var s = this.valueToPosition(a + o);
                    return r && (s = p.fitToRange(s, r.start, r.end)), s
                }, e.prototype.getAngle = function(t, e, i, n, r) {
                    var a = this.getTimeByLocation(t, e, i),
                        o = t.getValue(n, "stack");
                    h.isNumber(a) || (a = this.baseValue);
                    var s = this.valueToPosition(a + o);
                    return r && (s = p.fitToRange(s, r.start, r.end)), this.positionToAngle(s)
                }, e.prototype.getTimeByLocation = function(t, e, i) {
                    if (h.hasValue(e)) {
                        h.isNumber(i) || (i = t.workingLocations[e], h.isNumber(i) || (i = 0));
                        var n = t.values[e].open,
                            r = t.values[e].close,
                            a = t.values[e].workingValue,
                            o = t.values[e].value - a;
                        return n -= o, r -= o, h.isNumber(n) && h.isNumber(r) ? n + (r - n) * i : void 0
                    }
                }, e.prototype.processSeriesDataItem = function(t, e) {
                    var i, n = t.component,
                        r = t["date" + e];
                    if (h.isNumber(this.timezoneOffset) && (r.setTime(r.getTime() + 6e4 * (r.getTimezoneOffset() - this.timezoneOffset)), t.setValue("date" + e, r.getTime(), 0)), r) {
                        i = r.getTime();
                        var a, o = t["openDate" + e],
                            s = this._prevSeriesTime;
                        if (o && (a = o.getTime()), h.isNumber(a)) {
                            var l = Math.abs(i - a);
                            this._minDifference[n.uid] > l && (this._minDifference[n.uid] = l)
                        }
                        var u = i - s;
                        u > 0 && this._minDifference[n.uid] > u && (this._minDifference[n.uid] = u), this._prevSeriesTime = i, n._baseInterval[this.uid] && this.postProcessSeriesDataItem(t)
                    }
                }, e.prototype.updateAxisBySeries = function() {
                    t.prototype.updateAxisBySeries.call(this);
                    var e = this.chooseInterval(0, this.minDifference, 1);
                    this.minDifference >= u.getDuration("day", 27) && "week" == e.timeUnit && (e.timeUnit = "month", e.count = 1), "month" == e.timeUnit && (this.minDifference >= u.getDuration("day", 58) && 1 == e.count && (e.count = 2), this.minDifference >= u.getDuration("day", 87) && 2 == e.count && (e.count = 3), this.minDifference >= u.getDuration("day", 174) && 5 == e.count && (e.count = 6)), this.minDifference >= u.getDuration("hour", 23) && "hour" == e.timeUnit && (e.timeUnit = "day", e.count = 1), this.minDifference >= u.getDuration("week", 1) - u.getDuration("hour", 1) && "day" == e.timeUnit && (e.timeUnit = "week", e.count = 1), this.minDifference >= u.getDuration("year", 1) - u.getDuration("day", 1.01) && "month" == e.timeUnit && (e.timeUnit = "year", e.count = 1), this._baseIntervalReal = e, this._mainBaseInterval = e
                }, Object.defineProperty(e.prototype, "baseInterval", {
                    get: function() {
                        return this._groupInterval ? this._groupInterval : this._baseInterval ? this._baseInterval : this._baseIntervalReal
                    },
                    set: function(t) {
                        JSON.stringify(this._baseInterval) != JSON.stringify(t) && (this._baseInterval = t, this._mainBaseInterval = t, h.isNumber(t.count) || (t.count = 1), this.invalidate(), this.postProcessSeriesDataItems())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "mainBaseInterval", {
                    get: function() {
                        return this._baseInterval ? this._baseInterval : this._mainBaseInterval ? this._mainBaseInterval : this._baseIntervalReal
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "skipEmptyPeriods", {
                    get: function() {
                        return this.getPropertyValue("skipEmptyPeriods")
                    },
                    set: function(t) {
                        if (t) {
                            var e = this.axisBreaks.template;
                            e.startLine.disabled = !0, e.endLine.disabled = !0, e.fillShape.disabled = !0, e.breakSize = 0
                        } else this._gapBreaks && (this.axisBreaks.clear(), this._gapBreaks = !1);
                        this.setPropertyValue("skipEmptyPeriods", t) && (this.invalidate(), this.postProcessSeriesDataItems(), this.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipDateFormat", {
                    get: function() {
                        return this.getPropertyValue("tooltipDateFormat")
                    },
                    set: function(t) {
                        this.setPropertyValue("tooltipDateFormat", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "markUnitChange", {
                    get: function() {
                        return this.getPropertyValue("markUnitChange")
                    },
                    set: function(t) {
                        this.setPropertyValue("markUnitChange", t) && this.invalidateData()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getTooltipText = function(t) {
                    var e, i = this.positionToDate(t);
                    if (i = u.round(i, this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc, new Date(this.min)), h.hasValue(this.tooltipDateFormat)) e = this._df.format(i, this.tooltipDateFormat);
                    else {
                        var n = this.dateFormats.getKey(this.baseInterval.timeUnit);
                        e = n ? this._df.format(i, n) : this.getPositionLabel(t)
                    }
                    return this._adapterO ? this._adapterO.apply("getTooltipText", e) : e
                }, e.prototype.roundPosition = function(t, e, i) {
                    var n = this.baseInterval,
                        r = n.timeUnit,
                        a = n.count,
                        o = this.positionToDate(t);
                    if (u.round(o, r, a, this._firstWeekDay, this._df.utc), e > 0 && u.add(o, r, e * a, this._df.utc), i > 0 && i < 1 && o.setTime(o.getTime() + this.baseDuration * i), this.isInBreak(o.getTime()))
                        for (; o.getTime() < this.max && (u.add(o, r, a, this._df.utc), this.isInBreak(o.getTime())););
                    return this.dateToPosition(o)
                }, e.prototype.getCellStartPosition = function(t) {
                    return this.roundPosition(t, 0)
                }, e.prototype.getCellEndPosition = function(t) {
                    return this.roundPosition(t, 1)
                }, e.prototype.getSeriesDataItem = function(t, e, i) {
                    var n, r = this.positionToValue(e),
                        a = u.round(new Date(r), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc),
                        o = t.dataItemsByAxis.getKey(this.uid).getKey(a.getTime().toString());
                    !o && i && (n = "Y" == this.axisLetter ? "dateY" : "dateX", o = t.dataItems.getIndex(t.dataItems.findClosestIndex(a.getTime(), function(t) {
                        return t[n] ? t[n].getTime() : -1 / 0
                    }, "any")));
                    return o
                }, e.prototype.getPositionLabel = function(t) {
                    var e = this.positionToDate(t);
                    return this._df.format(e, this.getCurrentLabelFormat())
                }, e.prototype.getCurrentLabelFormat = function() {
                    return this.dateFormats.getKey(this._gridInterval ? this._gridInterval.timeUnit : "day")
                }, e.prototype.initRenderer = function() {
                    t.prototype.initRenderer.call(this);
                    var e = this.renderer;
                    e && (e.ticks.template.location = 0, e.grid.template.location = 0, e.labels.template.location = 0, e.baseGrid.disabled = !0)
                }, Object.defineProperty(e.prototype, "basePoint", {
                    get: function() {
                        return {
                            x: 0,
                            y: 0
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.animateMinMax = function(t, e) {
                    var i = this,
                        n = this.animate([{
                            property: "_minAdjusted",
                            from: this._minAdjusted,
                            to: t
                        }, {
                            property: "_maxAdjusted",
                            from: this._maxAdjusted,
                            to: e
                        }], this.rangeChangeDuration, this.rangeChangeEasing);
                    return n.events.on("animationprogress", function() {
                        i.dispatch("extremeschanged")
                    }), n
                }, e.prototype.handleExtremesChange = function() {
                    if (t.prototype.handleExtremesChange.call(this), this.groupData) {
                        var e = this.baseInterval.timeUnit + this.baseInterval.count;
                        this.groupMin[e] = this._finalMin, this.groupMax[e] = this._finalMax
                    }
                }, e.prototype.zoomToDates = function(t, e, i, n, r) {
                    t = this._df.parse(t), e = this._df.parse(e), this.zoomToValues(t.getTime(), e.getTime(), i, n, r)
                }, e.prototype.zoomToValues = function(t, e, i, r, a) {
                    var o = this;
                    if (this.groupData) {
                        var s = this.adjustDifference(t, e),
                            l = !1;
                        e == this.max && (l = !0);
                        var c = !1;
                        if (t == this.min && (c = !0), h.hasValue(s)) {
                            var d = this.mainBaseInterval,
                                f = this.chooseInterval(0, s, this.groupCount, this.groupIntervals);
                            (f.timeUnit == d.timeUnit && f.count < d.count || u.getDuration(f.timeUnit, 1) < u.getDuration(d.timeUnit, 1)) && (f = Object(n.a)({}, d));
                            var g = f.timeUnit + f.count,
                                y = this.groupMin[g],
                                m = this.groupMax[g];
                            h.isNumber(y) && h.isNumber(m) || (y = Number.POSITIVE_INFINITY, m = Number.NEGATIVE_INFINITY, this.series.each(function(t) {
                                var e = t.min(o),
                                    i = t.max(o);
                                if (t._dataSets) {
                                    var n = t._dataSets.getKey(f.timeUnit + f.count);
                                    if (n) {
                                        var r = n.getIndex(0),
                                            a = n.getIndex(n.length - 1);
                                        r && (t.xAxis == o ? e = r.dateX.getTime() : t.yAxis == o && (e = r.dateY.getTime())), a && (t.xAxis == o ? i = a.dateX.getTime() : t.yAxis == o && (i = a.dateY.getTime()))
                                    }
                                }
                                i = u.round(u.add(new Date(i), f.timeUnit, 1, o._df.utc), f.timeUnit, 1, o._df.firstDayOfWeek, o._df.utc).getTime(), e < y && (y = e), i > m && (m = i)
                            }), this.groupMin[g] = y, this.groupMax[g] = m), t = p.fitToRange(t, y, m), e = p.fitToRange(e, y, m), a && (l && (t = e - s, t = p.fitToRange(t, y, m)), c && (e = t + s, e = p.fitToRange(e, y, m)));
                            v = (t - y) / (m - y), b = (e - y) / (m - y);
                            this.zoom({
                                start: v,
                                end: b
                            }, i, r)
                        }
                    } else {
                        var v = (t - this.min) / (this.max - this.min),
                            b = (e - this.min) / (this.max - this.min);
                        this.zoom({
                            start: v,
                            end: b
                        }, i, r)
                    }
                }, e.prototype.asIs = function(e) {
                    return "baseInterval" == e || t.prototype.asIs.call(this, e)
                }, e.prototype.copyFrom = function(e) {
                    var i = this;
                    t.prototype.copyFrom.call(this, e), this.dateFormats = e.dateFormats, this.periodChangeDateFormats = e.periodChangeDateFormats, this.groupIntervals.clear(), e.groupIntervals.each(function(t) {
                        i.groupIntervals.push(Object(n.a)({}, t))
                    }), this.gridIntervals.clear(), e.gridIntervals.each(function(t) {
                        i.gridIntervals.push(Object(n.a)({}, t))
                    }), e._baseInterval && (this.baseInterval = e._baseInterval)
                }, e.prototype.showTooltipAtPosition = function(e, i) {
                    var n = this;
                    if (i || (e = this.toAxisPosition(e)), this.snapTooltip) {
                        var r, a = this.positionToDate(e).getTime();
                        if (this.series.each(function(t) {
                                if (t.baseAxis == n) {
                                    var i = n.getSeriesDataItem(t, e, !0);
                                    if (i) {
                                        var o = void 0;
                                        t.xAxis == n && (o = i.dateX), t.yAxis == n && (o = i.dateY), r ? Math.abs(r.getTime() - a) > Math.abs(o.getTime() - a) && (r = o) : r = o
                                    }
                                }
                            }), r) {
                            var o = r.getTime();
                            r = u.round(new Date(o), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc), o = r.getTime();
                            var s = this.renderer.tooltipLocation;
                            0 == s && (s = 1e-4), r = new Date(r.getTime() + this.baseDuration * s), e = this.dateToPosition(r), this.series.each(function(t) {
                                var e = t.dataItemsByAxis.getKey(n.uid).getKey(o + t.currentDataSetId),
                                    i = t.showTooltipAtDataItem(e);
                                i ? n.chart._seriesPoints.push({
                                    series: t,
                                    point: i
                                }) : (t.tooltipText || t.tooltipHTML) && t.hideTooltip()
                            })
                        }
                    }
                    t.prototype.showTooltipAtPosition.call(this, e, !0)
                }, Object.defineProperty(e.prototype, "snapTooltip", {
                    get: function() {
                        return this.getPropertyValue("snapTooltip")
                    },
                    set: function(t) {
                        this.setPropertyValue("snapTooltip", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "groupData", {
                    get: function() {
                        return this.getPropertyValue("groupData")
                    },
                    set: function(t) {
                        var e = this;
                        this.setPropertyValue("groupData", t) && (this.series.each(function(i) {
                            i.setDataSet(""), t && !i.dataGrouped && i.inited && (i._baseInterval[e.uid] = e.mainBaseInterval, e.groupSeriesData(i))
                        }), this._currentDataSetId = "", this._groupInterval = void 0, this.invalidate(), this.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "groupCount", {
                    get: function() {
                        return this.getPropertyValue("groupCount")
                    },
                    set: function(t) {
                        this.setPropertyValue("groupCount", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "timezoneOffset", {
                    get: function() {
                        return this.getPropertyValue("timezoneOffset")
                    },
                    set: function(t) {
                        this.setPropertyValue("timezoneOffset", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "gridInterval", {
                    get: function() {
                        return this._gridInterval
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.makeGap = function(t, e) {
                    var i = t.component;
                    if (t && e && !i.connect && h.isNumber(i.autoGapCount) && i.baseAxis == this) {
                        var n = t.dates["date" + this.axisLetter],
                            r = e.dates["date" + this.axisLetter];
                        if (n && r)
                            if (n.getTime() - r.getTime() > i.autoGapCount * this.baseDuration) return !0
                    }
                    return !1
                }, Object.defineProperty(e.prototype, "baseValue", {
                    get: function() {
                        return this.min
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        l.c.registeredClasses.DateAxis = v, l.c.registeredClasses.DateAxisDataItem = m
    },
    KslR: function(t, e, i) {
        var n = i("vfdp"),
            r = i("LO3D"),
            a = i("JZRr"),
            o = i("vfRf"),
            s = i("xaIW"),
            l = i("7W4+"),
            u = r("wks"),
            h = n.Symbol,
            c = l ? h : h && h.withoutSetter || o;
        t.exports = function(t) {
            return a(u, t) || (s && a(h, t) ? u[t] = h[t] : u[t] = c("Symbol." + t)), u[t]
        }
    },
    KvVN: function(t, e, i) {
        i("YRD/")("Array")
    },
    L0in: function(t, e, i) {
        "use strict";
        var n = i("Wqjq").charAt;
        t.exports = function(t, e, i) {
            return e + (i ? n(t, e).length : 1)
        }
    },
    L4xm: function(t, e, i) {
        var n = i("3weC"),
            r = i("3Ok2"),
            a = i("tHyI"),
            o = i("cLsB"),
            s = i("Ur2B"),
            l = i("VwzZ"),
            u = function(t, e) {
                this.stopped = t, this.result = e
            };
        (t.exports = function(t, e, i, h, c) {
            var p, d, f, g, y, m, v, b = o(e, i, h ? 2 : 1);
            if (c) p = t;
            else {
                if ("function" != typeof(d = s(t))) throw TypeError("Target is not iterable");
                if (r(d)) {
                    for (f = 0, g = a(t.length); g > f; f++)
                        if ((y = h ? b(n(v = t[f])[0], v[1]) : b(t[f])) && y instanceof u) return y;
                    return new u(!1)
                }
                p = d.call(t)
            }
            for (m = p.next; !(v = m.call(p)).done;)
                if ("object" == typeof(y = l(p, b, v.value, h)) && y && y instanceof u) return y;
            return new u(!1)
        }).stop = function(t) {
            return new u(!0, t)
        }
    },
    L56b: function(t, e) {
        t.exports = function(t, e, i) {
            if (!(t instanceof e)) throw TypeError("Incorrect " + (i ? i + " " : "") + "invocation");
            return t
        }
    },
    L7fL: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("5SyC"),
            o = Math.abs,
            s = Math.exp,
            l = Math.E;
        n({
            target: "Math",
            stat: !0,
            forced: r(function() {
                return -2e-17 != Math.sinh(-2e-17)
            })
        }, {
            sinh: function(t) {
                return o(t = +t) < 1 ? (a(t) - a(-t)) / 2 : (s(t - 1) - s(-t - 1)) * (l / 2)
            }
        })
    },
    L91H: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), i.d(e, "timeUnitDurations", function() {
            return r
        }), e.getNextUnit = a, e.getDuration = o, e.now = s, e.getTime = function() {
            return s().getTime()
        }, e.copy = function(t) {
            return new Date(t.getTime())
        }, e.checkChange = function t(e, i, n, r) {
            e = new Date(e.getTime());
            i = new Date(i.getTime());
            var o = 0;
            var s = 0;
            r || "millisecond" == n || (o = e.getTimezoneOffset(), e.setUTCMinutes(e.getUTCMinutes() - o), s = i.getTimezoneOffset(), i.setUTCMinutes(i.getUTCMinutes() - s));
            var l = !1;
            switch (n) {
                case "year":
                    e.getUTCFullYear() != i.getUTCFullYear() && (l = !0);
                    break;
                case "month":
                    e.getUTCFullYear() != i.getUTCFullYear() ? l = !0 : e.getUTCMonth() != i.getUTCMonth() && (l = !0);
                    break;
                case "day":
                    e.getUTCMonth() != i.getUTCMonth() ? l = !0 : e.getUTCDate() != i.getUTCDate() && (l = !0);
                    break;
                case "hour":
                    e.getUTCHours() != i.getUTCHours() && (l = !0);
                    break;
                case "minute":
                    e.getUTCMinutes() != i.getUTCMinutes() && (l = !0);
                    break;
                case "second":
                    e.getUTCSeconds() != i.getUTCSeconds() && (l = !0);
                    break;
                case "millisecond":
                    e.getTime() != i.getTime() && (l = !0)
            }
            if (l) return !0;
            var u = a(n);
            return !!u && (e.setUTCMinutes(e.getUTCMinutes() + o), i.setUTCMinutes(i.getUTCMinutes() + s), t(e, i, u, r))
        }, e.add = function(t, e, i, n) {
            var r = 0;
            n || "millisecond" == e || (r = t.getTimezoneOffset(), t.setUTCMinutes(t.getUTCMinutes() - r));
            switch (e) {
                case "day":
                    var a = t.getUTCDate();
                    t.setUTCDate(a + i);
                    break;
                case "second":
                    var o = t.getUTCSeconds();
                    t.setUTCSeconds(o + i);
                    break;
                case "millisecond":
                    var s = t.getUTCMilliseconds();
                    t.setUTCMilliseconds(s + i);
                    break;
                case "hour":
                    var l = t.getUTCHours();
                    t.setUTCHours(l + i);
                    break;
                case "minute":
                    var u = t.getUTCMinutes();
                    t.setUTCMinutes(u + i);
                    break;
                case "year":
                    var h = t.getUTCFullYear();
                    t.setUTCFullYear(h + i);
                    break;
                case "month":
                    var c = t.getUTCMonth();
                    t.setUTCMonth(c + i);
                    break;
                case "week":
                    var p = t.getUTCDate();
                    t.setUTCDate(p + 7 * i)
            }
            if (!n && "millisecond" != e && (t.setUTCMinutes(t.getUTCMinutes() + r), "day" == e || "week" == e || "month" == e || "year" == e)) {
                var d = t.getTimezoneOffset();
                if (d != r) {
                    var f = d - r;
                    t.setUTCMinutes(t.getUTCMinutes() + f), t.getTimezoneOffset() != d && t.setUTCMinutes(t.getUTCMinutes() - f)
                }
            }
            return t
        }, e.round = function t(e, i, r, a, s, l) {
            n.isNumber(r) || (r = 1);
            var u = 0;
            s || "millisecond" == i || (u = e.getTimezoneOffset(), e.setUTCMinutes(e.getUTCMinutes() - u));
            switch (i) {
                case "day":
                    var h = e.getUTCDate();
                    if (r > 1) {
                        if (l) {
                            l = t(l, "day", 1);
                            var c = e.getTime() - l.getTime(),
                                p = Math.floor(c / o("day") / r),
                                d = o("day", p * r);
                            e.setTime(l.getTime() + d - u * o("minute"))
                        }
                    } else e.setUTCDate(h);
                    e.setUTCHours(0, 0, 0, 0);
                    break;
                case "second":
                    var f = e.getUTCSeconds();
                    r > 1 && (f = Math.floor(f / r) * r), e.setUTCSeconds(f, 0);
                    break;
                case "millisecond":
                    if (1 == r) return e;
                    var g = e.getUTCMilliseconds();
                    g = Math.floor(g / r) * r, e.setUTCMilliseconds(g);
                    break;
                case "hour":
                    var y = e.getUTCHours();
                    r > 1 && (y = Math.floor(y / r) * r), e.setUTCHours(y, 0, 0, 0);
                    break;
                case "minute":
                    var m = e.getUTCMinutes();
                    g = e.getUTCMilliseconds(), r > 1 && (m = Math.floor(m / r) * r), e.setUTCMinutes(m, 0, 0);
                    break;
                case "month":
                    var v = e.getUTCMonth();
                    r > 1 && (v = Math.floor(v / r) * r), e.setUTCMonth(v, 1), e.setUTCHours(0, 0, 0, 0);
                    break;
                case "year":
                    var b = e.getUTCFullYear();
                    r > 1 && (b = Math.floor(b / r) * r), e.setUTCFullYear(b, 0, 1), e.setUTCHours(0, 0, 0, 0);
                    break;
                case "week":
                    var x = e.getUTCDate(),
                        _ = e.getUTCDay();
                    n.isNumber(a) || (a = 1), x = _ >= a ? x - _ + a : x - (7 + _) + a, e.setUTCDate(x), e.setUTCHours(0, 0, 0, 0)
            }
            if (!s && "millisecond" != i && (e.setUTCMinutes(e.getUTCMinutes() + u), "day" == i || "week" == i || "month" == i || "year" == i)) {
                var P = e.getTimezoneOffset();
                if (P != u) {
                    var w = P - u;
                    e.setUTCMinutes(e.getUTCMinutes() + w)
                }
            }
            return e
        };
        var n = i("Mtpk"),
            r = {
                millisecond: 1,
                second: 1e3,
                minute: 6e4,
                hour: 36e5,
                day: 864e5,
                week: 6048e5,
                month: 2592e6,
                year: 31536e6
            };

        function a(t) {
            switch (t) {
                case "year":
                    return;
                case "month":
                    return "year";
                case "week":
                case "day":
                    return "month";
                case "hour":
                    return "day";
                case "minute":
                    return "hour";
                case "second":
                    return "minute";
                case "millisecond":
                    return "second"
            }
        }

        function o(t, e) {
            return n.hasValue(e) || (e = 1), r[t] * e
        }

        function s() {
            return new Date
        }
    },
    LBDG: function(t, e, i) {
        "use strict";
        e.b = function() {
            return /apple/i.test(navigator.vendor)
        }, e.a = function() {
            return /MSIE |Trident\//.test(navigator.userAgent)
        }
    },
    LO3D: function(t, e, i) {
        var n = i("lnCe"),
            r = i("bvi0");
        (t.exports = function(t, e) {
            return r[t] || (r[t] = void 0 !== e ? e : {})
        })("versions", []).push({
            version: "3.6.4",
            mode: n ? "pure" : "global",
            copyright: "Â© 2020 Denis Pushkarev (zloirock.ru)"
        })
    },
    LPN9: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("X/sl").every,
            a = i("xlUI"),
            o = i("J+FZ"),
            s = a("every"),
            l = o("every");
        n({
            target: "Array",
            proto: !0,
            forced: !s || !l
        }, {
            every: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    "LV//": function(t, e, i) {
        i("0sYB")({
            target: "String",
            proto: !0
        }, {
            repeat: i("ScUe")
        })
    },
    LoW2: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("9XRO"),
            o = i("gxUV").f,
            s = i("3sMl"),
            l = r(function() {
                o(1)
            });
        n({
            target: "Object",
            stat: !0,
            forced: !s || l,
            sham: !s
        }, {
            getOwnPropertyDescriptor: function(t, e) {
                return o(a(t), e)
            }
        })
    },
    M1hx: function(t, e, i) {
        i("0FA2")("flatMap")
    },
    M44V: function(t, e, i) {
        var n = i("0sYB"),
            r = i("vfdp"),
            a = i("2D0i"),
            o = i("2xmP"),
            s = r.process,
            l = "process" == o(s);
        n({
            global: !0,
            enumerable: !0,
            noTargetGet: !0
        }, {
            queueMicrotask: function(t) {
                var e = l && s.domain;
                a(e ? e.bind(t) : t)
            }
        })
    },
    MC1b: function(t, e, i) {
        "use strict";
        var n, r, a, o, s = i("0sYB"),
            l = i("lnCe"),
            u = i("vfdp"),
            h = i("1wCr"),
            c = i("97TN"),
            p = i("z3p0"),
            d = i("/vWR"),
            f = i("NRfM"),
            g = i("YRD/"),
            y = i("Kg2n"),
            m = i("HnbP"),
            v = i("L56b"),
            b = i("2xmP"),
            x = i("2fPu"),
            _ = i("L4xm"),
            P = i("XqrT"),
            w = i("Nfo5"),
            O = i("gBcN").set,
            T = i("2D0i"),
            S = i("E81g"),
            C = i("Y2i6"),
            I = i("TQpL"),
            k = i("AYiJ"),
            D = i("SqFF"),
            j = i("EjSS"),
            V = i("KslR"),
            A = i("hvfb"),
            M = V("species"),
            F = "Promise",
            E = D.get,
            R = D.set,
            N = D.getterFor(F),
            L = c,
            B = u.TypeError,
            U = u.document,
            W = u.process,
            Y = h("fetch"),
            H = I.f,
            z = H,
            X = "process" == b(W),
            G = !!(U && U.createEvent && u.dispatchEvent),
            K = j(F, function() {
                if (!(x(L) !== String(L))) {
                    if (66 === A) return !0;
                    if (!X && "function" != typeof PromiseRejectionEvent) return !0
                }
                if (l && !L.prototype.finally) return !0;
                if (A >= 51 && /native code/.test(L)) return !1;
                var t = L.resolve(1),
                    e = function(t) {
                        t(function() {}, function() {})
                    };
                return (t.constructor = {})[M] = e, !(t.then(function() {}) instanceof e)
            }),
            q = K || !P(function(t) {
                L.all(t).catch(function() {})
            }),
            Z = function(t) {
                var e;
                return !(!y(t) || "function" != typeof(e = t.then)) && e
            },
            Q = function(t, e, i) {
                if (!e.notified) {
                    e.notified = !0;
                    var n = e.reactions;
                    T(function() {
                        for (var r = e.value, a = 1 == e.state, o = 0; n.length > o;) {
                            var s, l, u, h = n[o++],
                                c = a ? h.ok : h.fail,
                                p = h.resolve,
                                d = h.reject,
                                f = h.domain;
                            try {
                                c ? (a || (2 === e.rejection && et(t, e), e.rejection = 1), !0 === c ? s = r : (f && f.enter(), s = c(r), f && (f.exit(), u = !0)), s === h.promise ? d(B("Promise-chain cycle")) : (l = Z(s)) ? l.call(s, p, d) : p(s)) : d(r)
                            } catch (t) {
                                f && !u && f.exit(), d(t)
                            }
                        }
                        e.reactions = [], e.notified = !1, i && !e.rejection && $(t, e)
                    })
                }
            },
            J = function(t, e, i) {
                var n, r;
                G ? ((n = U.createEvent("Event")).promise = e, n.reason = i, n.initEvent(t, !1, !0), u.dispatchEvent(n)) : n = {
                    promise: e,
                    reason: i
                }, (r = u["on" + t]) ? r(n) : "unhandledrejection" === t && C("Unhandled promise rejection", i)
            },
            $ = function(t, e) {
                O.call(u, function() {
                    var i, n = e.value;
                    if (tt(e) && (i = k(function() {
                            X ? W.emit("unhandledRejection", n, t) : J("unhandledrejection", t, n)
                        }), e.rejection = X || tt(e) ? 2 : 1, i.error)) throw i.value
                })
            },
            tt = function(t) {
                return 1 !== t.rejection && !t.parent
            },
            et = function(t, e) {
                O.call(u, function() {
                    X ? W.emit("rejectionHandled", t) : J("rejectionhandled", t, e.value)
                })
            },
            it = function(t, e, i, n) {
                return function(r) {
                    t(e, i, r, n)
                }
            },
            nt = function(t, e, i, n) {
                e.done || (e.done = !0, n && (e = n), e.value = i, e.state = 2, Q(t, e, !0))
            },
            rt = function(t, e, i, n) {
                if (!e.done) {
                    e.done = !0, n && (e = n);
                    try {
                        if (t === i) throw B("Promise can't be resolved itself");
                        var r = Z(i);
                        r ? T(function() {
                            var n = {
                                done: !1
                            };
                            try {
                                r.call(i, it(rt, t, n, e), it(nt, t, n, e))
                            } catch (i) {
                                nt(t, n, i, e)
                            }
                        }) : (e.value = i, e.state = 1, Q(t, e, !1))
                    } catch (i) {
                        nt(t, {
                            done: !1
                        }, i, e)
                    }
                }
            };
        K && (L = function(t) {
            v(this, L, F), m(t), n.call(this);
            var e = E(this);
            try {
                t(it(rt, this, e), it(nt, this, e))
            } catch (t) {
                nt(this, e, t)
            }
        }, (n = function(t) {
            R(this, {
                type: F,
                done: !1,
                notified: !1,
                parent: !1,
                reactions: [],
                rejection: !1,
                state: 0,
                value: void 0
            })
        }).prototype = d(L.prototype, {
            then: function(t, e) {
                var i = N(this),
                    n = H(w(this, L));
                return n.ok = "function" != typeof t || t, n.fail = "function" == typeof e && e, n.domain = X ? W.domain : void 0, i.parent = !0, i.reactions.push(n), 0 != i.state && Q(this, i, !1), n.promise
            },
            catch: function(t) {
                return this.then(void 0, t)
            }
        }), r = function() {
            var t = new n,
                e = E(t);
            this.promise = t, this.resolve = it(rt, t, e), this.reject = it(nt, t, e)
        }, I.f = H = function(t) {
            return t === L || t === a ? new r(t) : z(t)
        }, l || "function" != typeof c || (o = c.prototype.then, p(c.prototype, "then", function(t, e) {
            var i = this;
            return new L(function(t, e) {
                o.call(i, t, e)
            }).then(t, e)
        }, {
            unsafe: !0
        }), "function" == typeof Y && s({
            global: !0,
            enumerable: !0,
            forced: !0
        }, {
            fetch: function(t) {
                return S(L, Y.apply(u, arguments))
            }
        }))), s({
            global: !0,
            wrap: !0,
            forced: K
        }, {
            Promise: L
        }), f(L, F, !1, !0), g(F), a = h(F), s({
            target: F,
            stat: !0,
            forced: K
        }, {
            reject: function(t) {
                var e = H(this);
                return e.reject.call(void 0, t), e.promise
            }
        }), s({
            target: F,
            stat: !0,
            forced: l || K
        }, {
            resolve: function(t) {
                return S(l && this === a ? L : this, t)
            }
        }), s({
            target: F,
            stat: !0,
            forced: q
        }, {
            all: function(t) {
                var e = this,
                    i = H(e),
                    n = i.resolve,
                    r = i.reject,
                    a = k(function() {
                        var i = m(e.resolve),
                            a = [],
                            o = 0,
                            s = 1;
                        _(t, function(t) {
                            var l = o++,
                                u = !1;
                            a.push(void 0), s++, i.call(e, t).then(function(t) {
                                u || (u = !0, a[l] = t, --s || n(a))
                            }, r)
                        }), --s || n(a)
                    });
                return a.error && r(a.value), i.promise
            },
            race: function(t) {
                var e = this,
                    i = H(e),
                    n = i.reject,
                    r = k(function() {
                        var r = m(e.resolve);
                        _(t, function(t) {
                            r.call(e, t).then(i.resolve, n)
                        })
                    });
                return r.error && n(r.value), i.promise
            }
        })
    },
    MIZb: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("aCit"),
            o = i("8ZqG"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._purposes = {
                        stroke: Object(o.c)("#e5e5e5"),
                        fill: Object(o.c)("#f3f3f3"),
                        primaryButton: Object(o.c)("#6794dc"),
                        primaryButtonHover: Object(o.c)("#6771dc"),
                        primaryButtonDown: Object(o.c)("#68dc75"),
                        primaryButtonActive: Object(o.c)("#68dc75"),
                        primaryButtonText: Object(o.c)("#FFFFFF"),
                        primaryButtonStroke: Object(o.c)("#FFFFFF"),
                        secondaryButton: Object(o.c)("#d9d9d9"),
                        secondaryButtonHover: Object(o.c)("#d9d9d9").brighten(-.25),
                        secondaryButtonDown: Object(o.c)("#d9d9d9").brighten(-.35),
                        secondaryButtonActive: Object(o.c)("#d9d9d9").brighten(.35),
                        secondaryButtonText: Object(o.c)("#000000"),
                        secondaryButtonStroke: Object(o.c)("#FFFFFF"),
                        grid: Object(o.c)("#000000"),
                        background: Object(o.c)("#ffffff"),
                        alternativeBackground: Object(o.c)("#000000"),
                        text: Object(o.c)("#000000"),
                        alternativeText: Object(o.c)("#FFFFFF"),
                        disabledBackground: Object(o.c)("#999999"),
                        positive: Object(o.c)("#67dc75"),
                        negative: Object(o.c)("#dc6788")
                    }, e.className = "InterfaceColorSet", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.debug = function() {}, e.prototype.getFor = function(t) {
                    return this._purposes[t]
                }, e.prototype.setFor = function(t, e) {
                    this._purposes[t] = e
                }, e
            }(r.a);
        a.c.registeredClasses.InterfaceColorSet = s
    },
    "MS5+": function(t, e, i) {
        var n = i("0sYB"),
            r = i("+s7l");
        n({
            target: "Array",
            proto: !0,
            forced: r !== [].lastIndexOf
        }, {
            lastIndexOf: r
        })
    },
    MXvJ: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("jfaP"),
            a = i("aCit"),
            o = i("Gg2j"),
            s = i("hGwe"),
            l = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Polyarc", e.controlPointDistance = .5, e.controlPointPosition = .5, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.makePath = function() {
                    this._distance = 0;
                    var t = this.segments;
                    if (t && t.length > 0) {
                        var e = "";
                        this._realSegments = [];
                        for (var i = 0, n = t.length; i < n; i++) {
                            var r = t[i],
                                a = [];
                            if (this._realSegments.push(a), r.length > 0) {
                                e += s.moveTo(r[0]);
                                for (var l = 1; l < r.length; l++) {
                                    var u = r[l - 1],
                                        h = r[l],
                                        c = o.getDistance(h, u),
                                        p = c * this.controlPointDistance,
                                        d = this.controlPointPosition,
                                        f = -o.getAngle(u, h),
                                        g = {
                                            x: u.x + (h.x - u.x) * d * .5 - p * o.sin(f),
                                            y: u.y + (h.y - u.y) * d * .5 - p * o.cos(f)
                                        },
                                        y = {
                                            x: u.x + (h.x - u.x) * d * 1.5 - p * o.sin(f),
                                            y: u.y + (h.y - u.y) * d * 1.5 - p * o.cos(f)
                                        };
                                    e += s.cubicCurveTo(h, g, y);
                                    var m = Math.ceil(c),
                                        v = u;
                                    if (m > 0)
                                        for (var b = 0; b <= m; b++) {
                                            var x = o.getPointOnCubicCurve(u, h, g, y, b / m);
                                            a.push(x), this._distance += o.getDistance(v, x), v = x
                                        } else a.push(u)
                                }
                            }
                        }
                        this.path = e
                    }
                }, Object.defineProperty(e.prototype, "controlPointPosition", {
                    get: function() {
                        return this.getPropertyValue("controlPointPosition")
                    },
                    set: function(t) {
                        this.setPropertyValue("controlPointPosition", t), this.makePath()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "controlPointDistance", {
                    get: function() {
                        return this.getPropertyValue("controlPointDistance")
                    },
                    set: function(t) {
                        this.setPropertyValue("controlPointDistance", t), this.makePath()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.Polyarc = l
    },
    MZQ8: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("1qam"),
            a = i("Gg2j"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "PointedRectangle", e.element = e.paper.add("path"), e.cornerRadius = 6, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.cornerRadius,
                        i = this.innerWidth,
                        n = this.innerHeight;
                    if (i > 0 && n > 0) {
                        var r, o, s = this.pointerX,
                            l = this.pointerY,
                            u = this.pointerBaseWidth / 2,
                            h = a.min(i / 2, n / 2),
                            c = a.fitToRange(e, 0, h),
                            p = a.fitToRange(e, 0, h),
                            d = a.fitToRange(e, 0, h),
                            f = a.fitToRange(e, 0, h),
                            g = void 0,
                            y = void 0,
                            m = void 0,
                            v = void 0,
                            b = (s - 0) * (n - 0) - (l - 0) * (i - 0),
                            x = (s - 0) * (0 - n) - (l - n) * (i - 0);
                        if (b > 0 && x > 0) g = "M" + c + ",0 L" + ((r = a.fitToRange(s, c + u, i - u - p)) - u) + ",0 L" + s + "," + (l = a.fitToRange(l, -1 / 0, 0)) + " L" + (r + u) + ",0 L" + (i - p) + ",0";
                        else g = "M" + c + ",0 L" + (i - p) + ",0";
                        if (b < 0 && x < 0) m = " L" + (i - d) + "," + n + " L" + ((r = a.fitToRange(s, f + u, i - u - d)) + u) + "," + n + " L" + s + "," + (l = a.fitToRange(l, n, 1 / 0)) + " L" + (r - u) + "," + n + " L" + f + "," + n;
                        else m = " L" + f + "," + n;
                        if (b < 0 && x > 0) v = " L0," + (n - f) + " L0," + ((o = a.fitToRange(l, c + u, n - f - u)) + u) + " L" + (s = a.fitToRange(s, -1 / 0, 0)) + "," + l + " L0," + (o - u) + " L0," + c;
                        else v = " L0," + c;
                        if (b > 0 && x < 0) y = " L" + i + "," + p + " L" + i + "," + ((o = a.fitToRange(l, p + u, n - u - d)) - u) + " L" + (s = a.fitToRange(s, i, 1 / 0)) + "," + l + " L" + i + "," + (o + u) + " L" + i + "," + (n - d);
                        else y = " L" + i + "," + (n - d);
                        var _ = " a" + p + "," + p + " 0 0 1 " + p + "," + p,
                            P = " a" + d + "," + d + " 0 0 1 -" + d + "," + d,
                            w = " a" + f + "," + f + " 0 0 1 -" + f + ",-" + f,
                            O = " a" + c + "," + c + " 0 0 1 " + c + ",-" + c;
                        this.path = g + _ + y + P + m + w + v + O
                    }
                }, Object.defineProperty(e.prototype, "cornerRadius", {
                    get: function() {
                        return this.getPropertyValue("cornerRadius")
                    },
                    set: function(t) {
                        this.setPropertyValue("cornerRadius", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a)
    },
    Mdrz: function(t, e, i) {
        var n = i("3sMl"),
            r = i("8+rI"),
            a = i("3weC"),
            o = i("kcMx");
        t.exports = n ? Object.defineProperties : function(t, e) {
            a(t);
            for (var i, n = o(e), s = n.length, l = 0; s > l;) r.f(t, i = n[l++], e[i]);
            return t
        }
    },
    Meme: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return m
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("hD5A"),
            o = i("AAkI"),
            s = i("eAid"),
            l = i("8EhG"),
            u = i("AaJ4"),
            h = i("TDx+"),
            c = i("eN1s"),
            p = i("vMqJ"),
            d = i("aCit"),
            f = i("tjMS"),
            g = i("Gg2j"),
            y = i("Mtpk"),
            m = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._chart = new a.d, e.className = "AxisRenderer", e.minGridDistance = 50, e.inside = !1, e.inversed = !1, e.tooltipLocation = .5, e.fullWidthTooltip = !1, e.cellStartLocation = 0, e.cellEndLocation = 1, e.minLabelPosition = 0, e.maxLabelPosition = 1, e.shouldClone = !1;
                    var i = e.createChild(r.a);
                    i.shouldClone = !1, i.layout = "none", i.virtualParent = e, i.width = Object(f.c)(100), i.height = Object(f.c)(100), e.gridContainer = i, i.events.on("maxsizechanged", function() {
                        e.inited && e.invalidateAxisItems()
                    }, e, !1);
                    var n = e.createChild(r.a);
                    n.shouldClone = !1, n.isMeasured = !1, n.layout = "none", n.width = Object(f.c)(100), n.height = Object(f.c)(100), e.breakContainer = n;
                    var o = e.createChild(r.a);
                    o.shouldClone = !1, o.isMeasured = !1, o.layout = "none", o.width = Object(f.c)(100), o.height = Object(f.c)(100), e.bulletsContainer = o, e.line = e.createChild(s.a), e.line.shouldClone = !1, e.line.strokeOpacity = 0;
                    var l = e.createChild(u.a);
                    l.shouldClone = !1, e.baseGrid = l;
                    var h = e._disposers;
                    return h.push(l), h.push(e.line), h.push(i), h.push(n), h.push(o), h.push(e._chart), e.ticks.template.disabled = !0, e.axisFills.template.disabled = !0, e.axisFills.template.interactionsEnabled = !1, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "axis", {
                    get: function() {
                        return this._axis
                    },
                    set: function(t) {
                        this.setAxis(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setAxis = function(t) {
                    this._axis = t, this.baseGrid.parent = t, this.line.parent = t, this.gridContainer.bind("opacity", t)
                }, e.prototype.processRenderer = function() {
                    this.events.on("sizechanged", this.updateTooltip, this, !1), this.events.on("positionchanged", this.updateTooltip, this, !1), this.labels.template.inside = this.inside, this.ticks.template.inside = this.inside
                }, e.prototype.updateTooltip = function() {}, Object.defineProperty(e.prototype, "axisLength", {
                    get: function() {
                        return 0
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.positionItem = function(t, e) {
                    t && t.moveTo(e)
                }, e.prototype.positionToPoint = function(t, e) {
                    return {
                        x: 0,
                        y: 0
                    }
                }, e.prototype.positionToAngle = function(t) {
                    return 0
                }, e.prototype.positionToCoordinate = function(t) {
                    var e = this.axis,
                        i = e.axisFullLength;
                    return e.renderer.inversed ? (e.end - t) * i : (t - e.start) * i
                }, e.prototype.updateGridContainer = function() {}, e.prototype.getHeight = function() {
                    var t = this.gridContainer;
                    return t.parent ? t.parent.pixelHeight : this.gridContainer.pixelHeight || 0
                }, e.prototype.getWidth = function() {
                    var t = this.gridContainer;
                    return t.parent ? t.parent.pixelWidth : this.gridContainer.pixelWidth || 0
                }, e.prototype.coordinateToPosition = function(t, e) {
                    var i, n = this.axis,
                        r = n.axisFullLength;
                    return i = n.renderer.inversed ? n.end - t / r : t / r + n.start, g.round(i, 5)
                }, e.prototype.pointToPosition = function(t) {
                    return 0
                }, e.prototype.getPositionRangePath = function(t, e) {
                    return ""
                }, e.prototype.invalidateAxisItems = function() {
                    var t = this.axis;
                    t && t.invalidateDataItems()
                }, e.prototype.updateGridElement = function(t, e, i) {}, e.prototype.updateTickElement = function(t, e, i) {}, e.prototype.updateBullet = function(t, e, i) {}, e.prototype.updateLabelElement = function(t, e, i, n) {}, e.prototype.updateFillElement = function(t, e, i) {
                    t.startPosition = e, t.endPosition = i
                }, e.prototype.updateAxisLine = function() {}, e.prototype.updateBaseGridElement = function() {}, e.prototype.updateBreakElement = function(t) {
                    this.positionItem(t.startLine, t.startPoint), this.toggleVisibility(t.startLine, t.startPosition, 0, 1), this.positionItem(t.endLine, t.endPoint), this.toggleVisibility(t.endLine, t.endPosition, 0, 1)
                }, Object.defineProperty(e.prototype, "minGridDistance", {
                    get: function() {
                        return this.getPropertyValue("minGridDistance")
                    },
                    set: function(t) {
                        this.setPropertyValue("minGridDistance", t) && this.axis && this.axis.invalidateLayout()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "chart", {
                    get: function() {
                        return this._chart.get()
                    },
                    set: function(t) {
                        this._chart.set(t, null)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.toggleVisibility = function(t, e, i, n) {
                    var r = this.axis,
                        a = t.dataItem;
                    a && a instanceof o.b && (y.isNumber(a.minPosition) && (i = a.minPosition), y.isNumber(a.maxPosition) && (n = a.maxPosition));
                    var s = r.start + (r.end - r.start) * (i - 1e-4),
                        l = r.start + (r.end - r.start) * (n + 1e-4);
                    t.disabled || (t.__disabled = e < s || e > l)
                }, e.prototype.createBreakSprites = function(t) {}, Object.defineProperty(e.prototype, "axisFills", {
                    get: function() {
                        if (!this._axisFills) {
                            var t = this.createFill(this.axis);
                            this._axisFills = new p.e(t), t.applyOnClones = !0, t.events.on("enabled", this.invalidateAxisItems, this, !1), this._disposers.push(new p.c(this._axisFills)), this._disposers.push(this._axisFills.template)
                        }
                        return this._axisFills
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createFill = function(t) {
                    return new l.a(t)
                }, Object.defineProperty(e.prototype, "grid", {
                    get: function() {
                        if (!this._grid) {
                            var t = this.createGrid();
                            this._grid = new p.e(t), t.applyOnClones = !0, t.events.on("enabled", this.invalidateAxisItems, this, !1), this._disposers.push(new p.c(this._grid)), this._disposers.push(this._grid.template)
                        }
                        return this._grid
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createGrid = function() {
                    return new u.a
                }, Object.defineProperty(e.prototype, "ticks", {
                    get: function() {
                        if (!this._ticks) {
                            var t = this.createTick();
                            t.applyOnClones = !0, t.isMeasured = !1, t.events.on("enabled", this.invalidateAxisItems, this, !1), this._ticks = new p.e(t), this._disposers.push(new p.c(this._ticks)), this._disposers.push(this._ticks.template)
                        }
                        return this._ticks
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createTick = function() {
                    return new c.a
                }, Object.defineProperty(e.prototype, "labels", {
                    get: function() {
                        if (!this._labels) {
                            var t = this.createLabel();
                            this._labels = new p.e(t), t.applyOnClones = !0, t.events.on("enabled", this.invalidateAxisItems, this, !1), this._disposers.push(new p.c(this._labels)), this._disposers.push(this._labels.template)
                        }
                        return this._labels
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createLabel = function() {
                    return new h.a
                }, Object.defineProperty(e.prototype, "inside", {
                    get: function() {
                        return this.getPropertyValue("inside")
                    },
                    set: function(t) {
                        this.setPropertyValue("inside", t) && this.axis && this.axis.invalidate(), t ? (this.width = 0, this.height = 0) : (this.width = void 0, this.height = void 0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "opposite", {
                    get: function() {
                        return this.getPropertyValue("opposite")
                    },
                    set: function(t) {
                        this.setPropertyValue("opposite", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fullWidthTooltip", {
                    get: function() {
                        return this.getPropertyValue("fullWidthTooltip")
                    },
                    set: function(t) {
                        this.setPropertyValue("fullWidthTooltip", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipLocation", {
                    get: function() {
                        return this.getPropertyValue("tooltipLocation")
                    },
                    set: function(t) {
                        this.setPropertyValue("tooltipLocation", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipLocation2", {
                    get: function() {
                        return this.getPropertyValue("tooltipLocation2")
                    },
                    set: function(t) {
                        this.setPropertyValue("tooltipLocation2", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cellStartLocation", {
                    get: function() {
                        return this.getPropertyValue("cellStartLocation")
                    },
                    set: function(t) {
                        this.setPropertyValue("cellStartLocation", t) && this.axis && this.axis.invalidateSeries()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cellEndLocation", {
                    get: function() {
                        return this.getPropertyValue("cellEndLocation")
                    },
                    set: function(t) {
                        this.setPropertyValue("cellEndLocation", t) && this.axis && this.axis.invalidateSeries()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "inversed", {
                    get: function() {
                        return this.getPropertyValue("inversed")
                    },
                    set: function(t) {
                        this.setPropertyValue("inversed", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minLabelPosition", {
                    get: function() {
                        return this.getPropertyValue("minLabelPosition")
                    },
                    set: function(t) {
                        this.setPropertyValue("minLabelPosition", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxLabelPosition", {
                    get: function() {
                        return this.getPropertyValue("maxLabelPosition")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxLabelPosition", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.grid.template.copyFrom(e.grid.template), this.ticks.template.copyFrom(e.ticks.template), this.labels.template.copyFrom(e.labels.template), this.axisFills.template.copyFrom(e.axisFills.template), this.line.copyFrom(e.line), this.baseGrid.copyFrom(e.baseGrid)
                }, e.prototype.toAxisPosition = function(t) {
                    return t
                }, e.prototype.setVisibility = function(e) {
                    t.prototype.setVisibility.call(this, e), this.bulletsContainer.visible = e
                }, e
            }(r.a);
        d.c.registeredClasses.AxisRenderer = m
    },
    MfFr: function(t, e) {
        var i = Math.abs,
            n = Math.pow,
            r = Math.floor,
            a = Math.log,
            o = Math.LN2;
        t.exports = {
            pack: function(t, e, s) {
                var l, u, h, c = new Array(s),
                    p = 8 * s - e - 1,
                    d = (1 << p) - 1,
                    f = d >> 1,
                    g = 23 === e ? n(2, -24) - n(2, -77) : 0,
                    y = t < 0 || 0 === t && 1 / t < 0 ? 1 : 0,
                    m = 0;
                for ((t = i(t)) != t || t === 1 / 0 ? (u = t != t ? 1 : 0, l = d) : (l = r(a(t) / o), t * (h = n(2, -l)) < 1 && (l--, h *= 2), (t += l + f >= 1 ? g / h : g * n(2, 1 - f)) * h >= 2 && (l++, h /= 2), l + f >= d ? (u = 0, l = d) : l + f >= 1 ? (u = (t * h - 1) * n(2, e), l += f) : (u = t * n(2, f - 1) * n(2, e), l = 0)); e >= 8; c[m++] = 255 & u, u /= 256, e -= 8);
                for (l = l << e | u, p += e; p > 0; c[m++] = 255 & l, l /= 256, p -= 8);
                return c[--m] |= 128 * y, c
            },
            unpack: function(t, e) {
                var i, r = t.length,
                    a = 8 * r - e - 1,
                    o = (1 << a) - 1,
                    s = o >> 1,
                    l = a - 7,
                    u = r - 1,
                    h = t[u--],
                    c = 127 & h;
                for (h >>= 7; l > 0; c = 256 * c + t[u], u--, l -= 8);
                for (i = c & (1 << -l) - 1, c >>= -l, l += e; l > 0; i = 256 * i + t[u], u--, l -= 8);
                if (0 === c) c = 1 - s;
                else {
                    if (c === o) return i ? NaN : h ? -1 / 0 : 1 / 0;
                    i += n(2, e), c -= s
                }
                return (h ? -1 : 1) * i * n(2, c - e)
            }
        }
    },
    MipW: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        }), e.b = function() {
            null == n && (n = new c);
            return n
        };
        var n, r = i("m4/l"),
            a = i("Tjl+"),
            o = i("pzs1"),
            s = i("x79X"),
            l = i("aCit"),
            u = i("ScGY"),
            h = i("Mtpk"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.adapter = new s.a(e), e.className = "TextFormatter", e.applyTheme(), e
                }
                return Object(r.c)(e, t), e.prototype.debug = function() {}, e.prototype.format = function(t, e) {
                    h.hasValue(e) || (e = "svg");
                    var i = "",
                        n = (t = this.escape(t)).match(/\[([^\]]*?)\]/gm);
                    if (!n) return this.wrap(t, "", e);
                    for (var r = t.split(/\[[^\[\]]*\]/), a = 0, o = r.length; a < o; a++) {
                        var s = r[a];
                        if ("" !== s) {
                            s = this.adapter.apply("chunk", s);
                            var l = "";
                            a > 0 && (l = n[a - 1].replace("[", "").replace("]", "")), i += this.wrap(s, l, e)
                        }
                    }
                    return i = this.unescape(i), this.cleanUp(i)
                }, e.prototype.escape = function(t) {
                    return t.replace(/\[\[/g, l.c.getPlaceholder("1")).replace(/([^\/]{1})\]\]/g, "$1" + l.c.getPlaceholder("2")).replace(/\]\]/g, l.c.getPlaceholder("2")).replace(/\{\{/g, l.c.getPlaceholder("3")).replace(/\}\}/g, l.c.getPlaceholder("4")).replace(/\'\'/g, l.c.getPlaceholder("5"))
                }, e.prototype.unescape = function(t) {
                    return t.replace(new RegExp(l.c.getPlaceholder("1"), "g"), "[[").replace(new RegExp(l.c.getPlaceholder("2"), "g"), "]]").replace(new RegExp(l.c.getPlaceholder("3"), "g"), "{{").replace(new RegExp(l.c.getPlaceholder("4"), "g"), "}}").replace(new RegExp(l.c.getPlaceholder("5"), "g"), "'")
                }, e.prototype.cleanUp = function(t) {
                    return t.replace(/\[\[/g, "[").replace(/\]\]/g, "]").replace(/\{\{/g, "{").replace(/\}\}/g, "}").replace(/\'\'/g, "'")
                }, e.prototype.wrap = function(t, e, i) {
                    switch ("" !== e && "/" !== e || (e = ""), i) {
                        case "html":
                            return this.wrapHtml(t, this.translateStyleShortcuts(e));
                        default:
                            return this.wrapSvg(t, this.translateStyleShortcuts(e))
                    }
                }, e.prototype.wrapSvg = function(t, e) {
                    return "" === e ? "<tspan>" + t + "</tspan>" : "<tspan style='" + e + "'>" + t + "</tspan>"
                }, e.prototype.getSvgElement = function(t, e) {
                    var i = new o.a("tspan");
                    return i.textContent = t, e && i.node.setAttribute("style", e), i
                }, e.prototype.wrapHtml = function(t, e) {
                    return "" === e ? "<span>" + t + "</span>" : "<span style='" + this.styleSvgToHtml(e) + "'>" + t + "</span>"
                }, e.prototype.getHtmlElement = function(t, e) {
                    var i = document.createElement("span");
                    return i.innerHTML = t, e && i.setAttribute("style", e), i
                }, e.prototype.styleSvgToHtml = function(t) {
                    return t = t.replace(/fill:/, "color:")
                }, e.prototype.translateStyleShortcuts = function(t) {
                    if ("" == t || "[ ]" == t) return "";
                    var e = l.c.getCache("translateStyleShortcuts_" + t);
                    if (e) return e;
                    var i = t.match(/([\w\-]*:[\s]?[^;\s\]]*)|(\#[\w]{1,6})|([\w]+)|(\/)/gi);
                    if (!i) return t;
                    for (var n = 0; n < i.length; n++) i[n].match(/^bold$/i) ? i[n] = "font-weight:" + i[n] : "/" == i[n] ? i[n] = "" : i[n].match(/:/) || (i[n] = "fill:" + i[n]);
                    var r = i.join(";");
                    return l.c.setCache("translateStyleShortcuts_" + t, r), r
                }, e.prototype.chunk = function(t, e, i) {
                    void 0 === e && (e = !1), void 0 === i && (i = !1);
                    var n = [];
                    t = this.escape(t);
                    for (var r = e ? t.split("'") : [t], a = 0; a < r.length; a++) {
                        var o = r[a];
                        if ("" !== o)
                            if (a % 2 == 0)
                                for (var s = (o = (o = o.replace(/\]\[/g, "]" + u.d + "[")).replace(/\[\]/g, "[ ]")).split(/[\[\]]+/), l = 0; l < s.length; l++) {
                                    (h = this.cleanUp(this.unescape(s[l]))) !== u.d && ("" !== h && (l % 2 == 0 ? n.push({
                                        type: "value",
                                        text: this.adapter.apply("chunk", h)
                                    }) : n.push({
                                        type: i ? "value" : "format",
                                        text: "[" + h + "]"
                                    })))
                                } else
                                    for (s = o.split(/[\[\]]+/), l = 0; l < s.length; l++) {
                                        var h;
                                        "" !== (h = this.cleanUp(this.unescape(s[l]))) && (l % 2 == 0 ? n.push({
                                            type: "text",
                                            text: h
                                        }) : this.isImage(h) ? n.push({
                                            type: "image",
                                            text: "[" + h + "]"
                                        }) : n.push({
                                            type: "format",
                                            text: "[" + h + "]"
                                        }))
                                    }
                    }
                    return n
                }, e.prototype.isImage = function(t) {
                    return !!t.match(/img[ ]?:/)
                }, e
            }(a.a);
        l.c.registeredClasses.TextFormatter = c
    },
    MlsF: function(t, e, i) {
        "use strict";
        e.b = function(t) {
            switch (t) {
                case 0:
                    return 0;
                case -1:
                    return 1;
                case 1:
                    return -1
            }
        }, e.a = function(t, e) {
            return 0 === t ? e : t
        }
    },
    Mpxm: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        }), i.d(e, "b", function() {
            return u
        });
        var n = i("4DCw"),
            r = i("ZhuL"),
            a = i("x79X"),
            o = i("OVUc"),
            s = i("hJ5i"),
            l = function() {
                function t() {
                    this.adapter = new a.a(this)
                }
                return t.prototype.load = function(t) {
                    var e = Array.isArray(t) ? t : [t],
                        i = s.map(e, function(t) {
                            return t.dispatchImmediately("started"), t.dispatchImmediately("loadstarted"), o.a(t.url, t, t.requestOptions)
                        });
                    Promise.all(i).then(function(t) {
                        s.each(t, function(t) {
                            var e = t.target;
                            e.dispatchImmediately("loadended"), t.error ? e.events.isEnabled("error") && e.events.dispatchImmediately("error", {
                                type: "error",
                                code: t.xhr.status,
                                message: e.language.translate("Unable to load file: %1", null, e.url),
                                target: e
                            }) : e.processData(t.response, t.type), e.dispatchImmediately("ended")
                        })
                    }).catch(function(t) {
                        t.target && (t.target.dispatchImmediately("loadended"), t.target.events.isEnabled("error") && t.target.events.dispatchImmediately("error", {
                            type: "error",
                            code: t.xhr.status,
                            message: t.target.language.translate("Unable to load file: %1", null, t.target.url),
                            target: t.target
                        }), t.target.dispatchImmediately("ended"))
                    })
                }, t.prototype.getParserByType = function(t) {
                    var e = this.adapter.apply("getParserByType", {
                        parser: null,
                        type: t
                    }).parser;
                    return e || ("csv" == t || "text/csv" == t || "application/vnd.ms-excel" == t ? new n.a : "json" == t || "application/json" == t ? new r.a : void 0)
                }, t.prototype.getParserByData = function(t, e) {
                    var i = this.adapter.apply("getParserByData", {
                        parser: null,
                        data: t,
                        type: e
                    }).parser;
                    if (!i) {
                        if (i = this.getParserByType(e)) return i;
                        if (r.a.isJSON(t)) return this.getParserByType("json");
                        if (n.a.isCSV(t)) return this.getParserByType("csv")
                    }
                    return i
                }, t
            }(),
            u = new l
    },
    Mr4Y: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("Vs7R"),
            o = i("Gg2j"),
            s = i("hGwe"),
            l = i("8ZqG"),
            u = i("CuFa"),
            h = i("sxA1"),
            c = i("C84C"),
            p = i("Mtpk"),
            d = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.angle = 30, e.depth = 30, e.className = "Rectangle3D", e.layout = "none";
                    var i = e.createChild(a.a);
                    i.shouldClone = !1, i.setElement(e.paper.add("path")), i.isMeasured = !1, e.sideBack = i, e._disposers.push(e.sideBack);
                    var n = e.createChild(a.a);
                    n.shouldClone = !1, n.setElement(e.paper.add("path")), n.isMeasured = !1, e.sideBottom = n, e._disposers.push(e.sideBottom);
                    var r = e.createChild(a.a);
                    r.shouldClone = !1, r.setElement(e.paper.add("path")), r.isMeasured = !1, e.sideLeft = r, e._disposers.push(e.sideLeft);
                    var o = e.createChild(a.a);
                    o.shouldClone = !1, o.setElement(e.paper.add("path")), o.isMeasured = !1, e.sideRight = o, e._disposers.push(e.sideRight);
                    var s = e.createChild(a.a);
                    s.shouldClone = !1, s.setElement(e.paper.add("path")), s.isMeasured = !1, e.sideTop = s, e._disposers.push(e.sideTop);
                    var l = e.createChild(a.a);
                    return l.shouldClone = !1, l.setElement(e.paper.add("path")), l.isMeasured = !1, e.sideFront = l, e._disposers.push(e.sideFront), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.innerWidth,
                        i = this.innerHeight,
                        n = this.depth,
                        r = this.angle,
                        a = o.sin(r),
                        l = o.cos(r),
                        u = {
                            x: 0,
                            y: 0
                        },
                        h = {
                            x: e,
                            y: 0
                        },
                        c = {
                            x: e,
                            y: i
                        },
                        p = {
                            x: 0,
                            y: i
                        },
                        d = {
                            x: n * l,
                            y: -n * a
                        },
                        f = {
                            x: n * l + e,
                            y: -n * a
                        },
                        g = {
                            x: n * l + e,
                            y: -n * a + i
                        },
                        y = {
                            x: n * l,
                            y: -n * a + i
                        };
                    this.sideFront.path = s.moveTo(u) + s.lineTo(h) + s.lineTo(c) + s.lineTo(p) + s.closePath(), this.sideBack.path = s.moveTo(d) + s.lineTo(f) + s.lineTo(g) + s.lineTo(y) + s.closePath(), this.sideLeft.path = s.moveTo(u) + s.lineTo(d) + s.lineTo(y) + s.lineTo(p) + s.closePath(), this.sideRight.path = s.moveTo(h) + s.lineTo(f) + s.lineTo(g) + s.lineTo(c) + s.closePath(), this.sideBottom.path = s.moveTo(p) + s.lineTo(y) + s.lineTo(g) + s.lineTo(c) + s.closePath(), this.sideTop.path = s.moveTo(u) + s.lineTo(d) + s.lineTo(f) + s.lineTo(h) + s.closePath()
                }, Object.defineProperty(e.prototype, "depth", {
                    get: function() {
                        return this.getPropertyValue("depth")
                    },
                    set: function(t) {
                        this.setPropertyValue("depth", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "angle", {
                    get: function() {
                        return this.getPropertyValue("angle")
                    },
                    set: function(t) {
                        this.setPropertyValue("angle", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setFill = function(e) {
                    var i;
                    if (t.prototype.setFill.call(this, e), p.isString(e) && (e = Object(l.e)(e)), e instanceof l.a) i = e.hex;
                    else if (e instanceof h.a || e instanceof u.a) i = e.stops.getIndex(0).color.hex;
                    else {
                        var n = new c.a;
                        n.lightness = -.2, this.sideBack.filters.push(n);
                        var r = n.clone();
                        r.lightness = -.4, this.sideLeft.filters.push(r);
                        var a = n.clone();
                        a.lightness = -.2, this.sideRight.filters.push(a);
                        var o = n.clone();
                        o.lightness = -.1, this.sideTop.filters.push(o);
                        var s = n.clone();
                        s.lightness = -.5, this.sideBottom.filters.push(s)
                    }
                    i && (this.sideBack.fill = Object(l.c)(i).lighten(-.2), this.sideLeft.fill = Object(l.c)(i).lighten(-.4), this.sideRight.fill = Object(l.c)(i).lighten(-.2), this.sideTop.fill = Object(l.c)(i).lighten(-.1), this.sideBottom.fill = Object(l.c)(i).lighten(-.5))
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.sideBack.copyFrom(e.sideBack), this.sideLeft.copyFrom(e.sideLeft), this.sideRight.copyFrom(e.sideRight), this.sideTop.copyFrom(e.sideTop), this.sideBottom.copyFrom(e.sideBottom)
                }, e
            }(r.a)
    },
    Mtpk: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.isNaN = r, e.getType = a, e.getDefault = function(t, e) {
            return t || e
        }, e.checkString = function(t) {
            if ("string" == typeof t) return !0;
            throw new Error("Expected a string but got " + a(t))
        }, e.checkBoolean = function(t) {
            if ("boolean" == typeof t) return !0;
            throw new Error("Expected a boolean but got " + a(t))
        }, e.checkNumber = function(t) {
            if ("number" != typeof t) throw new Error("Expected a number but got " + a(t));
            if (r(t)) throw new Error("Expected a number but got NaN");
            return !0
        }, e.checkObject = function(t) {
            var e = a(t);
            if ("[object Object]" === e) return !0;
            throw new Error("Expected an object but got " + e)
        }, e.checkArray = function(t) {
            if (Array.isArray(t)) return !0;
            throw new Error("Expected an array but got " + a(t))
        }, e.checkDate = function(t) {
            var e = a(t);
            if ("[object Date]" === e) return !0;
            throw new Error("Expected a date but got " + e)
        }, e.castString = o, e.castNumber = function(t) {
            if ("string" == typeof t) {
                var e = +t;
                if (r(e)) throw new Error("Cannot cast string " + JSON.stringify(t) + " to a number");
                return e
            }
            if ("number" == typeof t) {
                if (r(t)) throw new Error("Expected a number but got NaN");
                return t
            }
            var i = a(t);
            if ("[object Date]" === i) return t.getTime();
            throw new Error("Expected a string, number, or date but got " + i)
        }, e.toBoolean = function(t) {
            return !!t
        }, e.toNumber = s, e.toText = function(t) {
            if (l(t) && !u(t)) {
                if (h(t)) return o(t);
                if (c(t)) return t.toString()
            }
            return t
        }, e.toNumberOrPercent = function(t) {
            if (!l(t) || h(t) || Object(n.b)(t)) return t;
            if (u(t) && -1 != t.indexOf("%")) return Object(n.c)(s(t));
            return s(t)
        }, e.hasValue = l, e.getValue = function(t) {
            if (l(t)) return t;
            throw new Error("Value doesn't exist")
        }, e.getValueDefault = function(t, e) {
            return l(t) ? t : e
        }, e.isDate = function(t) {
            return "[object Date]" === a(t)
        }, e.isString = u, e.isNumber = h, e.isObject = c, e.isArray = function(t) {
            return Array.isArray(t)
        };
        var n = i("tjMS");

        function r(t) {
            return Number(t) !== t
        }

        function a(t) {
            return {}.toString.call(t)
        }

        function o(t) {
            if ("string" == typeof t) return t;
            if ("number" == typeof t) return "" + t;
            throw new Error("Expected a string or number but got " + a(t))
        }

        function s(t) {
            if (l(t) && !h(t)) {
                var e = Number(t);
                return r(e) && u(t) && "" != t ? s(t.replace(/[^0-9.\-]+/g, "")) : e
            }
            return t
        }

        function l(t) {
            return null != t
        }

        function u(t) {
            return "string" == typeof t
        }

        function h(t) {
            return "number" == typeof t && Number(t) == t
        }

        function c(t) {
            return "object" == typeof t && null != t
        }
    },
    "ND2/": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("PTiM"),
            a = i("8ZqG"),
            o = i("aFzC"),
            s = i("hGwe"),
            l = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "WavedLine", e.element = e.paper.add("path"), e.waveLength = 16, e.waveHeight = 4, e.tension = .8, e.pixelPerfect = !1, e.fill = Object(a.c)(), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    var t = {
                            x: this.x1,
                            y: this.y1
                        },
                        e = {
                            x: this.x2,
                            y: this.y2
                        };
                    this.path = s.moveTo(t) + Object(o.c)(t, e, this.waveLength, this.waveHeight, this.tension, !0)
                }, Object.defineProperty(e.prototype, "waveLength", {
                    get: function() {
                        return this.getPropertyValue("waveLength")
                    },
                    set: function(t) {
                        this.setPropertyValue("waveLength", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "waveHeight", {
                    get: function() {
                        return this.getPropertyValue("waveHeight")
                    },
                    set: function(t) {
                        this.setPropertyValue("waveHeight", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tension", {
                    get: function() {
                        return this.getPropertyValue("tension")
                    },
                    set: function(t) {
                        this.setPropertyValue("tension", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a)
    },
    "NI+5": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("3sMl"),
            a = i("hqo8"),
            o = i("7X7h"),
            s = i("EErT"),
            l = i("Ox5T"),
            u = i("gxUV").f;
        r && n({
            target: "Object",
            proto: !0,
            forced: a
        }, {
            __lookupSetter__: function(t) {
                var e, i = o(this),
                    n = s(t, !0);
                do {
                    if (e = u(i, n)) return e.set
                } while (i = l(i))
            }
        })
    },
    NK3S: function(t, e, i) {
        "use strict";
        var n = i("3weC"),
            r = i("EErT");
        t.exports = function(t) {
            if ("string" !== t && "number" !== t && "default" !== t) throw TypeError("Incorrect hint");
            return r(n(this), "number" !== t)
        }
    },
    NKcy: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("UjlR"),
            a = i("7X7h"),
            o = i("tHyI"),
            s = i("HnbP"),
            l = i("Rs0P");
        n({
            target: "Array",
            proto: !0
        }, {
            flatMap: function(t) {
                var e, i = a(this),
                    n = o(i.length);
                return s(t), (e = l(i, 0)).length = r(e, i, i, n, 0, 1, t, arguments.length > 1 ? arguments[1] : void 0), e
            }
        })
    },
    NNEa: function(t, e, i) {
        "use strict";
        var n = i("/vWR"),
            r = i("Tl3C").getWeakData,
            a = i("3weC"),
            o = i("Kg2n"),
            s = i("L56b"),
            l = i("L4xm"),
            u = i("X/sl"),
            h = i("JZRr"),
            c = i("SqFF"),
            p = c.set,
            d = c.getterFor,
            f = u.find,
            g = u.findIndex,
            y = 0,
            m = function(t) {
                return t.frozen || (t.frozen = new v)
            },
            v = function() {
                this.entries = []
            },
            b = function(t, e) {
                return f(t.entries, function(t) {
                    return t[0] === e
                })
            };
        v.prototype = {
            get: function(t) {
                var e = b(this, t);
                if (e) return e[1]
            },
            has: function(t) {
                return !!b(this, t)
            },
            set: function(t, e) {
                var i = b(this, t);
                i ? i[1] = e : this.entries.push([t, e])
            },
            delete: function(t) {
                var e = g(this.entries, function(e) {
                    return e[0] === t
                });
                return ~e && this.entries.splice(e, 1), !!~e
            }
        }, t.exports = {
            getConstructor: function(t, e, i, u) {
                var c = t(function(t, n) {
                        s(t, c, e), p(t, {
                            type: e,
                            id: y++,
                            frozen: void 0
                        }), void 0 != n && l(n, t[u], t, i)
                    }),
                    f = d(e),
                    g = function(t, e, i) {
                        var n = f(t),
                            o = r(a(e), !0);
                        return !0 === o ? m(n).set(e, i) : o[n.id] = i, t
                    };
                return n(c.prototype, {
                    delete: function(t) {
                        var e = f(this);
                        if (!o(t)) return !1;
                        var i = r(t);
                        return !0 === i ? m(e).delete(t) : i && h(i, e.id) && delete i[e.id]
                    },
                    has: function(t) {
                        var e = f(this);
                        if (!o(t)) return !1;
                        var i = r(t);
                        return !0 === i ? m(e).has(t) : i && h(i, e.id)
                    }
                }), n(c.prototype, i ? {
                    get: function(t) {
                        var e = f(this);
                        if (o(t)) {
                            var i = r(t);
                            return !0 === i ? m(e).get(t) : i ? i[e.id] : void 0
                        }
                    },
                    set: function(t, e) {
                        return g(this, t, e)
                    }
                } : {
                    add: function(t) {
                        return g(this, t, !0)
                    }
                }), c
            }
        }
    },
    NR9A: function(t, e, i) {
        i("NRfM")(Math, "Math", !0)
    },
    NRfM: function(t, e, i) {
        var n = i("8+rI").f,
            r = i("JZRr"),
            a = i("KslR")("toStringTag");
        t.exports = function(t, e, i) {
            t && !r(t = i ? t : t.prototype, a) && n(t, a, {
                configurable: !0,
                value: e
            })
        }
    },
    NSJ1: function(t, e, i) {
        var n = i("vfdp"),
            r = i("6aQQ"),
            a = i("XqrT"),
            o = i("UseD").NATIVE_ARRAY_BUFFER_VIEWS,
            s = n.ArrayBuffer,
            l = n.Int8Array;
        t.exports = !o || !r(function() {
            l(1)
        }) || !r(function() {
            new l(-1)
        }) || !a(function(t) {
            new l, new l(null), new l(1.5), new l(t)
        }, !0) || r(function() {
            return 1 !== new l(new s(2), 1, void 0).length
        })
    },
    NWlt: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("big")
        }, {
            big: function() {
                return r(this, "big", "", "")
            }
        })
    },
    NZ9V: function(t, e, i) {
        "use strict";
        i("1M4z");
        var n = i("z3p0"),
            r = i("6aQQ"),
            a = i("KslR"),
            o = i("4Wbs"),
            s = i("k2B3"),
            l = a("species"),
            u = !r(function() {
                var t = /./;
                return t.exec = function() {
                    var t = [];
                    return t.groups = {
                        a: "7"
                    }, t
                }, "7" !== "".replace(t, "$<a>")
            }),
            h = "$0" === "a".replace(/./, "$0"),
            c = a("replace"),
            p = !!/./ [c] && "" === /./ [c]("a", "$0"),
            d = !r(function() {
                var t = /(?:)/,
                    e = t.exec;
                t.exec = function() {
                    return e.apply(this, arguments)
                };
                var i = "ab".split(t);
                return 2 !== i.length || "a" !== i[0] || "b" !== i[1]
            });
        t.exports = function(t, e, i, c) {
            var f = a(t),
                g = !r(function() {
                    var e = {};
                    return e[f] = function() {
                        return 7
                    }, 7 != "" [t](e)
                }),
                y = g && !r(function() {
                    var e = !1,
                        i = /a/;
                    return "split" === t && ((i = {}).constructor = {}, i.constructor[l] = function() {
                        return i
                    }, i.flags = "", i[f] = /./ [f]), i.exec = function() {
                        return e = !0, null
                    }, i[f](""), !e
                });
            if (!g || !y || "replace" === t && (!u || !h || p) || "split" === t && !d) {
                var m = /./ [f],
                    v = i(f, "" [t], function(t, e, i, n, r) {
                        return e.exec === o ? g && !r ? {
                            done: !0,
                            value: m.call(e, i, n)
                        } : {
                            done: !0,
                            value: t.call(i, e, n)
                        } : {
                            done: !1
                        }
                    }, {
                        REPLACE_KEEPS_$0: h,
                        REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: p
                    }),
                    b = v[0],
                    x = v[1];
                n(String.prototype, t, b), n(RegExp.prototype, f, 2 == e ? function(t, e) {
                    return x.call(t, this, e)
                } : function(t) {
                    return x.call(t, this)
                })
            }
            c && s(RegExp.prototype[f], "sham", !0)
        }
    },
    Nfo5: function(t, e, i) {
        var n = i("3weC"),
            r = i("HnbP"),
            a = i("KslR")("species");
        t.exports = function(t, e) {
            var i, o = n(t).constructor;
            return void 0 === o || void 0 == (i = n(o)[a]) ? e : r(i)
        }
    },
    NlGZ: function(t, e, i) {
        "use strict";
        var n, r;
        ! function(a, o) {
            void 0 === (r = "function" == typeof(n = o) ? n.call(e, i, e, t) : n) || (t.exports = r)
        }("undefined" != typeof window && window, function() {
            if ("undefined" == typeof window) return null;
            var t = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(),
                e = t.requestAnimationFrame || t.mozRequestAnimationFrame || t.webkitRequestAnimationFrame || function(e) {
                    return t.setTimeout(e, 20)
                };

            function i(t, e) {
                var i = Object.prototype.toString.call(t),
                    n = "[object Array]" === i || "[object NodeList]" === i || "[object HTMLCollection]" === i || "[object Object]" === i || "undefined" != typeof jQuery && t instanceof jQuery || "undefined" != typeof Elements && t instanceof Elements,
                    r = 0,
                    a = t.length;
                if (n)
                    for (; r < a; r++) e(t[r]);
                else e(t)
            }

            function n(t) {
                if (!t.getBoundingClientRect) return {
                    width: t.offsetWidth,
                    height: t.offsetHeight
                };
                var e = t.getBoundingClientRect();
                return {
                    width: Math.round(e.width),
                    height: Math.round(e.height)
                }
            }

            function r(t, e) {
                Object.keys(e).forEach(function(i) {
                    t.style[i] = e[i]
                })
            }
            var a = function(t, o) {
                function s(t, i) {
                    if (t)
                        if (t.resizedAttached) t.resizedAttached.add(i);
                        else {
                            t.resizedAttached = new function() {
                                var t, e, i = [];
                                this.add = function(t) {
                                    i.push(t)
                                }, this.call = function(n) {
                                    for (t = 0, e = i.length; t < e; t++) i[t].call(this, n)
                                }, this.remove = function(n) {
                                    var r = [];
                                    for (t = 0, e = i.length; t < e; t++) i[t] !== n && r.push(i[t]);
                                    i = r
                                }, this.length = function() {
                                    return i.length
                                }
                            }, t.resizedAttached.add(i), t.resizeSensor = document.createElement("div"), t.resizeSensor.dir = "ltr", t.resizeSensor.className = "resize-sensor";
                            var a = {
                                    pointerEvents: "none",
                                    position: "absolute",
                                    left: "0px",
                                    top: "0px",
                                    right: "0px",
                                    bottom: "0px",
                                    overflow: "hidden",
                                    zIndex: "-1",
                                    visibility: "hidden",
                                    maxWidth: "100%"
                                },
                                o = {
                                    position: "absolute",
                                    left: "0px",
                                    top: "0px",
                                    transition: "0s"
                                };
                            r(t.resizeSensor, a);
                            var s = document.createElement("div");
                            s.className = "resize-sensor-expand", r(s, a);
                            var l = document.createElement("div");
                            r(l, o), s.appendChild(l);
                            var u = document.createElement("div");
                            u.className = "resize-sensor-shrink", r(u, a);
                            var h = document.createElement("div");
                            r(h, o), r(h, {
                                width: "200%",
                                height: "200%"
                            }), u.appendChild(h), t.resizeSensor.appendChild(s), t.resizeSensor.appendChild(u), t.appendChild(t.resizeSensor);
                            var c, p, d = window.getComputedStyle(t),
                                f = d ? d.getPropertyValue("position") : null;
                            "absolute" !== f && "relative" !== f && "fixed" !== f && (t.style.position = "relative");
                            var g = n(t),
                                y = 0,
                                m = 0,
                                v = !0,
                                b = 0,
                                x = function() {
                                    if (v) {
                                        if (0 === t.offsetWidth && 0 === t.offsetHeight) return void(b || (b = e(function() {
                                            b = 0, x()
                                        })));
                                        v = !1
                                    }! function() {
                                        var e = t.offsetWidth,
                                            i = t.offsetHeight;
                                        l.style.width = e + 10 + "px", l.style.height = i + 10 + "px", s.scrollLeft = e + 10, s.scrollTop = i + 10, u.scrollLeft = e + 10, u.scrollTop = i + 10
                                    }()
                                };
                            t.resizeSensor.resetSensor = x;
                            var _ = function() {
                                    p = 0, c && (y = g.width, m = g.height, t.resizedAttached && t.resizedAttached.call(g))
                                },
                                P = function() {
                                    g = n(t), (c = g.width !== y || g.height !== m) && !p && (p = e(_)), x()
                                },
                                w = function(t, e, i) {
                                    t.attachEvent ? t.attachEvent("on" + e, i) : t.addEventListener(e, i)
                                };
                            w(s, "scroll", P), w(u, "scroll", P), e(x)
                        }
                }
                i(t, function(t) {
                    s(t, o)
                }), this.detach = function(e) {
                    a.detach(t, e)
                }, this.reset = function() {
                    t.resizeSensor.resetSensor()
                }
            };
            if (a.reset = function(t) {
                    i(t, function(t) {
                        t.resizeSensor.resetSensor()
                    })
                }, a.detach = function(t, e) {
                    i(t, function(t) {
                        t && (t.resizedAttached && "function" == typeof e && (t.resizedAttached.remove(e), t.resizedAttached.length()) || t.resizeSensor && (t.contains(t.resizeSensor) && t.removeChild(t.resizeSensor), delete t.resizeSensor, delete t.resizedAttached))
                    })
                }, "undefined" != typeof MutationObserver) {
                var o = new MutationObserver(function(t) {
                    for (var e in t)
                        if (t.hasOwnProperty(e))
                            for (var i = t[e].addedNodes, n = 0; n < i.length; n++) i[n].resizeSensor && a.reset(i[n])
                });
                document.addEventListener("DOMContentLoaded", function(t) {
                    o.observe(document.body, {
                        childList: !0,
                        subtree: !0
                    })
                })
            }
            return a
        })
    },
    "Nv8/": function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        });
        var n = {};
        i.d(n, "System", function() {
            return r.a
        }), i.d(n, "system", function() {
            return r.b
        }), i.d(n, "BaseObject", function() {
            return a.a
        }), i.d(n, "BaseObjectEvents", function() {
            return a.b
        }), i.d(n, "Component", function() {
            return o.a
        }), i.d(n, "Container", function() {
            return s.a
        }), i.d(n, "DataItem", function() {
            return l.a
        }), i.d(n, "Sprite", function() {
            return u.a
        }), i.d(n, "SpriteEventDispatcher", function() {
            return h.a
        }), i.d(n, "SpriteState", function() {
            return c.a
        }), i.d(n, "registry", function() {
            return p.c
        }), i.d(n, "Registry", function() {
            return p.a
        }), i.d(n, "is", function() {
            return p.b
        }), i.d(n, "options", function() {
            return d.a
        }), i.d(n, "CSVParser", function() {
            return f.a
        }), i.d(n, "DataLoader", function() {
            return g.a
        }), i.d(n, "dataLoader", function() {
            return g.b
        }), i.d(n, "DataParser", function() {
            return y.a
        }), i.d(n, "DataSource", function() {
            return m.a
        }), i.d(n, "JSONParser", function() {
            return v.a
        }), i.d(n, "SVGDefaults", function() {
            return b.a
        }), i.d(n, "Button", function() {
            return x.a
        }), i.d(n, "Circle", function() {
            return _.a
        }), i.d(n, "Ellipse", function() {
            return P.a
        }), i.d(n, "Image", function() {
            return S
        }), i.d(n, "Label", function() {
            return C.a
        }), i.d(n, "Line", function() {
            return I.a
        }), i.d(n, "Popup", function() {
            return k.a
        }), i.d(n, "Modal", function() {
            return D.a
        }), i.d(n, "PointedRectangle", function() {
            return j.a
        }), i.d(n, "PointedShape", function() {
            return V.a
        }), i.d(n, "Polyarc", function() {
            return A.a
        }), i.d(n, "Polygon", function() {
            return M.a
        }), i.d(n, "Polyline", function() {
            return F.a
        }), i.d(n, "Polyspline", function() {
            return E.a
        }), i.d(n, "Preloader", function() {
            return B
        }), i.d(n, "Rectangle", function() {
            return U.a
        }), i.d(n, "ResizeButton", function() {
            return W.a
        }), i.d(n, "RoundedRectangle", function() {
            return Y.a
        }), i.d(n, "Scrollbar", function() {
            return H.a
        }), i.d(n, "Slider", function() {
            return z
        }), i.d(n, "Slice", function() {
            return N.a
        }), i.d(n, "TextLink", function() {
            return X.a
        }), i.d(n, "Tooltip", function() {
            return G.a
        }), i.d(n, "Trapezoid", function() {
            return K.a
        }), i.d(n, "Triangle", function() {
            return q.a
        }), i.d(n, "WavedCircle", function() {
            return Z.a
        }), i.d(n, "WavedLine", function() {
            return Q.a
        }), i.d(n, "WavedRectangle", function() {
            return J.a
        }), i.d(n, "ZoomOutButton", function() {
            return $.a
        }), i.d(n, "PlayButton", function() {
            return tt
        }), i.d(n, "Cone", function() {
            return et.a
        }), i.d(n, "Rectangle3D", function() {
            return it.a
        }), i.d(n, "Slice3D", function() {
            return nt.a
        }), i.d(n, "Export", function() {
            return rt.a
        }), i.d(n, "ExportMenu", function() {
            return at.a
        }), i.d(n, "DateFormatter", function() {
            return ot.a
        }), i.d(n, "DurationFormatter", function() {
            return st.a
        }), i.d(n, "NumberFormatter", function() {
            return lt.a
        }), i.d(n, "TextFormatter", function() {
            return ut.a
        }), i.d(n, "getTextFormatter", function() {
            return ut.b
        }), i.d(n, "Inertia", function() {
            return ht.a
        }), i.d(n, "Interaction", function() {
            return ct.a
        }), i.d(n, "getInteraction", function() {
            return ct.b
        }), i.d(n, "InteractionKeyboardObject", function() {
            return pt.a
        }), i.d(n, "InteractionObject", function() {
            return dt.a
        }), i.d(n, "InteractionObjectEventDispatcher", function() {
            return ft.a
        }), i.d(n, "MouseCursorStyle", function() {
            return gt.a
        }), i.d(n, "AMElement", function() {
            return yt.a
        }), i.d(n, "Group", function() {
            return mt.a
        }), i.d(n, "Paper", function() {
            return vt.a
        }), i.d(n, "Tension", function() {
            return bt.b
        }), i.d(n, "Basis", function() {
            return bt.a
        }), i.d(n, "SVGContainer", function() {
            return xt.a
        }), i.d(n, "ColorModifier", function() {
            return _t.a
        }), i.d(n, "LinearGradient", function() {
            return Pt.a
        }), i.d(n, "LinearGradientModifier", function() {
            return wt.a
        }), i.d(n, "RadialGradientModifier", function() {
            return Tt
        }), i.d(n, "LinePattern", function() {
            return St.a
        }), i.d(n, "CirclePattern", function() {
            return Ct.a
        }), i.d(n, "Pattern", function() {
            return It.a
        }), i.d(n, "RadialGradient", function() {
            return Ot.a
        }), i.d(n, "RectPattern", function() {
            return kt.a
        }), i.d(n, "ColorizeFilter", function() {
            return jt
        }), i.d(n, "DesaturateFilter", function() {
            return Vt.a
        }), i.d(n, "DropShadowFilter", function() {
            return At.a
        }), i.d(n, "BlurFilter", function() {
            return Mt
        }), i.d(n, "Filter", function() {
            return Dt.a
        }), i.d(n, "FocusFilter", function() {
            return Ft
        }), i.d(n, "LightenFilter", function() {
            return Et.a
        }), i.d(n, "GlobalAdapter", function() {
            return Rt.b
        }), i.d(n, "globalAdapter", function() {
            return Rt.c
        }), i.d(n, "Adapter", function() {
            return Rt.a
        }), i.d(n, "Animation", function() {
            return Nt.a
        }), i.d(n, "animate", function() {
            return Nt.c
        }), i.d(n, "nextFrame", function() {
            return Lt.a
        }), i.d(n, "readFrame", function() {
            return Lt.c
        }), i.d(n, "writeFrame", function() {
            return Lt.f
        }), i.d(n, "whenIdle", function() {
            return Lt.e
        }), i.d(n, "triggerIdle", function() {
            return Lt.d
        }), i.d(n, "Cache", function() {
            return Bt.a
        }), i.d(n, "cache", function() {
            return Bt.b
        }), i.d(n, "Color", function() {
            return Ut.a
        }), i.d(n, "color", function() {
            return Ut.c
        }), i.d(n, "isColor", function() {
            return Ut.d
        }), i.d(n, "castColor", function() {
            return Ut.b
        }), i.d(n, "ColorSet", function() {
            return Wt.a
        }), i.d(n, "PatternSet", function() {
            return Yt.a
        }), i.d(n, "InterfaceColorSet", function() {
            return R.a
        }), i.d(n, "DictionaryDisposer", function() {
            return Ht.b
        }), i.d(n, "Dictionary", function() {
            return Ht.a
        }), i.d(n, "DictionaryTemplate", function() {
            return Ht.c
        }), i.d(n, "Disposer", function() {
            return zt.b
        }), i.d(n, "MultiDisposer", function() {
            return zt.c
        }), i.d(n, "MutableValueDisposer", function() {
            return zt.d
        }), i.d(n, "CounterDisposer", function() {
            return zt.a
        }), i.d(n, "StyleRule", function() {
            return O.c
        }), i.d(n, "StyleClass", function() {
            return O.b
        }), i.d(n, "getElement", function() {
            return O.q
        }), i.d(n, "addClass", function() {
            return O.f
        }), i.d(n, "removeClass", function() {
            return O.x
        }), i.d(n, "blur", function() {
            return O.h
        }), i.d(n, "focus", function() {
            return O.o
        }), i.d(n, "outerHTML", function() {
            return O.v
        }), i.d(n, "isElement", function() {
            return O.s
        }), i.d(n, "copyAttributes", function() {
            return O.j
        }), i.d(n, "fixPixelPerfect", function() {
            return O.n
        }), i.d(n, "ready", function() {
            return O.w
        }), i.d(n, "EventDispatcher", function() {
            return Xt.a
        }), i.d(n, "TargetedEventDispatcher", function() {
            return Xt.b
        }), i.d(n, "ListIterator", function() {
            return Gt.ListIterator
        }), i.d(n, "min", function() {
            return Gt.min
        }), i.d(n, "max", function() {
            return Gt.max
        }), i.d(n, "join", function() {
            return Gt.join
        }), i.d(n, "Keyboard", function() {
            return Kt.a
        }), i.d(n, "keyboard", function() {
            return Kt.b
        }), i.d(n, "Language", function() {
            return qt.a
        }), i.d(n, "IndexedIterable", function() {
            return Zt.a
        }), i.d(n, "ListGrouper", function() {
            return Zt.d
        }), i.d(n, "ListDisposer", function() {
            return Zt.c
        }), i.d(n, "List", function() {
            return Zt.b
        }), i.d(n, "ListTemplate", function() {
            return Zt.e
        }), i.d(n, "Morpher", function() {
            return Qt.a
        }), i.d(n, "reverse", function() {
            return Jt.b
        }), i.d(n, "or", function() {
            return Jt.a
        }), i.d(n, "Percent", function() {
            return L.a
        }), i.d(n, "percent", function() {
            return L.c
        }), i.d(n, "isPercent", function() {
            return L.b
        }), i.d(n, "Plugin", function() {
            return $t.a
        }), i.d(n, "Responsive", function() {
            return te.a
        }), i.d(n, "ResponsiveBreakpoints", function() {
            return te.b
        }), i.d(n, "defaultRules", function() {
            return te.c
        }), i.d(n, "OrderedList", function() {
            return ee.a
        }), i.d(n, "SortedList", function() {
            return ee.c
        }), i.d(n, "OrderedListTemplate", function() {
            return ee.b
        }), i.d(n, "SortedListTemplate", function() {
            return ee.d
        }), i.d(n, "PX", function() {
            return ie.f
        }), i.d(n, "STRING", function() {
            return ie.g
        }), i.d(n, "NUMBER", function() {
            return ie.c
        }), i.d(n, "DATE", function() {
            return ie.a
        }), i.d(n, "DURATION", function() {
            return ie.b
        }), i.d(n, "PLACEHOLDER", function() {
            return ie.d
        }), i.d(n, "PLACEHOLDER2", function() {
            return ie.e
        }), i.d(n, "isNaN", function() {
            return T.isNaN
        }), i.d(n, "checkString", function() {
            return T.checkString
        }), i.d(n, "checkBoolean", function() {
            return T.checkBoolean
        }), i.d(n, "checkNumber", function() {
            return T.checkNumber
        }), i.d(n, "checkObject", function() {
            return T.checkObject
        }), i.d(n, "castString", function() {
            return T.castString
        }), i.d(n, "castNumber", function() {
            return T.castNumber
        }), i.d(n, "isString", function() {
            return T.isString
        }), i.d(n, "isNumber", function() {
            return T.isNumber
        }), i.d(n, "isObject", function() {
            return T.isObject
        }), i.d(n, "isArray", function() {
            return T.isArray
        }), i.d(n, "Validatable", function() {
            return ne.a
        }), i.d(n, "path", function() {
            return re
        }), i.d(n, "colors", function() {
            return ae
        }), i.d(n, "ease", function() {
            return oe
        }), i.d(n, "math", function() {
            return se
        }), i.d(n, "array", function() {
            return le
        }), i.d(n, "number", function() {
            return ue
        }), i.d(n, "object", function() {
            return he
        }), i.d(n, "string", function() {
            return ce
        }), i.d(n, "time", function() {
            return pe
        }), i.d(n, "utils", function() {
            return de
        }), i.d(n, "iter", function() {
            return Gt
        }), i.d(n, "type", function() {
            return T
        }), i.d(n, "create", function() {
            return Pe
        }), i.d(n, "createFromConfig", function() {
            return we
        }), i.d(n, "disposeAllCharts", function() {
            return me
        }), i.d(n, "useTheme", function() {
            return Oe
        }), i.d(n, "unuseTheme", function() {
            return Te
        }), i.d(n, "unuseAllThemes", function() {
            return Se
        }), i.d(n, "addLicense", function() {
            return Ce
        });
        var r = i("Rpw0"),
            a = i("Tjl+"),
            o = i("Y9w3"),
            s = i("C6dT"),
            l = i("A6AV"),
            u = i("Vs7R"),
            h = i("kQxV"),
            c = i("ux7t"),
            p = i("aCit"),
            d = i("Q4nc"),
            f = i("4DCw"),
            g = i("Mpxm"),
            y = i("mIpt"),
            m = i("EjGA"),
            v = i("ZhuL"),
            b = i("hpNl"),
            x = i("aGXA"),
            _ = i("FzPm"),
            P = i("Ybtf"),
            w = i("m4/l"),
            O = i("58Sn"),
            T = i("Mtpk"),
            S = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Image", e.element = e.paper.add("image"), e.applyTheme(), e.width = 50, e.height = 50, e
                }
                return Object(w.c)(e, t), e.prototype.draw = function() {
                    if (t.prototype.draw.call(this), this.href) {
                        var e = this.innerWidth,
                            i = this.innerHeight;
                        T.isNumber(this.widthRatio) && (e = i * this.widthRatio, this.width = e), T.isNumber(this.heightRatio) && (i = e * this.heightRatio, this.height = i), this.element.attr({
                            width: e,
                            height: i
                        }), this.element.attrNS(O.d, "xlink:href", this.href)
                    }
                }, Object.defineProperty(e.prototype, "href", {
                    get: function() {
                        return this.getPropertyValue("href")
                    },
                    set: function(t) {
                        this.setPropertyValue("href", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "widthRatio", {
                    get: function() {
                        return this.getPropertyValue("widthRatio")
                    },
                    set: function(t) {
                        this.setPropertyValue("widthRatio", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "heightRatio", {
                    get: function() {
                        return this.getPropertyValue("heightRatio")
                    },
                    set: function(t) {
                        this.setPropertyValue("heightRatio", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bbox", {
                    get: function() {
                        return {
                            x: 0,
                            y: 0,
                            width: this.pixelWidth,
                            height: this.pixelHeight
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(u.a);
        p.c.registeredClasses.Image = S;
        var C = i("p9TX"),
            I = i("PTiM"),
            k = i("UsNi"),
            D = i("W8Sc"),
            j = i("MZQ8"),
            V = i("1qam"),
            A = i("MXvJ"),
            M = i("R6wv"),
            F = i("jfaP"),
            E = i("xgTw"),
            R = i("MIZb"),
            N = i("Inf5"),
            L = i("tjMS"),
            B = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "Preloader", e.width = Object(L.c)(100), e.height = Object(L.c)(100);
                    var i = new R.a,
                        n = e.createChild(s.a);
                    n.shouldClone = !1;
                    var r = n.createChild(N.a);
                    r.shouldClone = !1, r.radius = 53, r.arc = 360, r.fill = i.getFor("fill"), r.fillOpacity = .8, r.innerRadius = 42, r.isMeasured = !1, e.backgroundSlice = r;
                    var a = n.createChild(N.a);
                    a.shouldClone = !1, a.radius = 50, a.innerRadius = 45, a.fill = i.getFor("alternativeBackground"), a.fillOpacity = .2, a.isMeasured = !1, e.progressSlice = a;
                    var o = n.createChild(C.a);
                    return o.shouldClone = !1, o.horizontalCenter = "middle", o.verticalCenter = "middle", o.isMeasured = !1, o.fill = i.getFor("text"), o.align = "center", o.valign = "middle", o.fillOpacity = .4, e.label = o, e.background.opacity = 1, e.background.fill = i.getFor("background"), e.contentAlign = "center", e.contentValign = "middle", e.delay = 300, e.states.create("hidden").properties.opacity = 0, e.visible = !1, e.hide(0), e.__disabled = !0, e._disposers.push(e.backgroundSlice), e._disposers.push(e.progressSlice), e._disposers.push(e.label), e._disposers.push(n), e
                }
                return Object(w.c)(e, t), Object.defineProperty(e.prototype, "progress", {
                    get: function() {
                        return this.getPropertyValue("progress")
                    },
                    set: function(t) {
                        var e = this;
                        this.__disabled = !1, this.validateLayout(), this.setPropertyValue("progress", t), this.progressSlice.arc = 360 * t, this.label && (this.label.text = Math.round(100 * t) + "%"), t >= 1 ? (this._started && (this._started = void 0), p.c.events.once("enterframe", function() {
                            var t = e.hide();
                            t && !t.isFinished() ? t.events.once("animationended", function() {
                                e.__disabled = !0
                            }) : e.__disabled = !0
                        }), this.interactionsEnabled = !1, this.setPropertyValue("progress", 0)) : t > 0 && (this.delay ? this._started ? this._started + this.delay <= (new Date).getTime() && (this.__disabled = !1, this.show(), this.interactionsEnabled = !0) : this._started = (new Date).getTime() : (this.__disabled = !1, this.show(), this.interactionsEnabled = !0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "delay", {
                    get: function() {
                        return this.getPropertyValue("delay")
                    },
                    set: function(t) {
                        this.setPropertyValue("delay", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(s.a);
        p.c.registeredClasses.Preloader = B;
        var U = i("GtDR"),
            W = i("xIv9"),
            Y = i("CnhP"),
            H = i("ISWh"),
            z = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Slider", e.thumb.opacity = 0, e.thumb.interactionsEnabled = !1, e.endGrip.opacity = 0, e.endGrip.interactionsEnabled = !1, e.startGrip.events.on("drag", function() {
                        e.endGrip.x = e.startGrip.x, e.endGrip.y = e.startGrip.y
                    }), e.applyTheme(), e
                }
                return Object(w.c)(e, t), Object.defineProperty(e.prototype, "__end", {
                    get: function() {
                        return this._start
                    },
                    set: function(t) {},
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "end", {
                    get: function() {
                        return this._start
                    },
                    set: function(t) {},
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "start", {
                    get: function() {
                        return this._start
                    },
                    set: function(t) {
                        this._isBusy || (this.__start = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(H.a);
        p.c.registeredClasses.Slider = z;
        var X = i("Trvg"),
            G = i("cxKZ"),
            K = i("DziZ"),
            q = i("Rnbi"),
            Z = i("Vk33"),
            Q = i("ND2/"),
            J = i("w4m0"),
            $ = i("BEgH"),
            tt = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "PlayButton", e.padding(12, 12, 12, 12), e.showSystemTooltip = !0;
                    var i = new R.a,
                        n = e.background;
                    n.cornerRadius(25, 25, 25, 25), n.fill = i.getFor("primaryButton"), n.stroke = i.getFor("primaryButtonStroke"), n.strokeOpacity = 0, n.states.getKey("hover").properties.fill = i.getFor("primaryButtonHover"), n.states.getKey("down").properties.fill = i.getFor("primaryButtonActive");
                    var r = new q.a;
                    r.direction = "right", r.width = 9, r.height = 11, r.marginLeft = 1, r.marginRight = 1, r.horizontalCenter = "middle", r.verticalCenter = "middle", r.stroke = i.getFor("primaryButtonText"), r.fill = r.stroke, e.icon = r;
                    var a = new Y.a;
                    a.width = 11, a.height = 11, a.horizontalCenter = "middle", a.verticalCenter = "middle", a.cornerRadius(0, 0, 0, 0), a.stroke = i.getFor("primaryButtonText"), a.fill = r.stroke, e.togglable = !0;
                    var o = e.states.create("active");
                    return o.transitionDuration = 0, o.properties.icon = a, e.defaultState.transitionDuration = 0, e.applyTheme(), e
                }
                return Object(w.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), T.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Play"))
                }, e
            }(x.a);
        p.c.registeredClasses.PlayButton = tt;
        var et = i("ncT3"),
            it = i("Mr4Y"),
            nt = i("nPzZ"),
            rt = i("GAaQ"),
            at = i("qJno"),
            ot = i("7XB+"),
            st = i("akNo"),
            lt = i("CTEm"),
            ut = i("MipW"),
            ht = i("0PyG"),
            ct = i("zhwk"),
            pt = i("Oe1l"),
            dt = i("vbOF"),
            ft = i("YotE"),
            gt = i("qCRI"),
            yt = i("pzs1"),
            mt = i("cOH5"),
            vt = i("P7v+"),
            bt = i("aFzC"),
            xt = i("HDh7"),
            _t = i("DA7/"),
            Pt = i("sxA1"),
            wt = i("/e9j"),
            Ot = i("CuFa"),
            Tt = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "RadialGradientModifier", e.gradient = new Ot.a, e.applyTheme(), e
                }
                return Object(w.c)(e, t), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.gradient = e.gradient.clone()
                }, e
            }(i("3/51").a);
        p.c.registeredClasses.RadialGradientModifier = Tt;
        var St = i("WODi"),
            Ct = i("TZWN"),
            It = i("ZLF9"),
            kt = i("2gKx"),
            Dt = i("ohjg"),
            jt = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "ColorizeFilter", e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({
                        type: "matrix"
                    }), e.filterPrimitives.push(e.feColorMatrix), e.intensity = 1, e.applyTheme(), e
                }
                return Object(w.c)(e, t), e.prototype.applyFilter = function() {
                    var t, e, i, n = this.intensity,
                        r = 1 - n,
                        a = this.color;
                    a && a.rgb ? (t = a.rgb.r / 255 * n, e = a.rgb.g / 255 * n, i = a.rgb.b / 255 * n) : (t = 0, e = 0, i = 0), this.feColorMatrix.attr({
                        values: r + " 0 0 0 " + t + " 0 " + r + " 0 0 " + e + " 0 0 " + r + " 0 " + i + " 0 0 0 1 0"
                    })
                }, Object.defineProperty(e.prototype, "color", {
                    get: function() {
                        return this.properties.color
                    },
                    set: function(t) {
                        this.properties.color = t, this.applyFilter()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "intensity", {
                    get: function() {
                        return this.properties.intensity
                    },
                    set: function(t) {
                        this.properties.intensity = t, this.applyFilter()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(Dt.a);
        p.c.registeredClasses.ColorizeFilter = jt;
        var Vt = i("85D4"),
            At = i("VAFc"),
            Mt = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "BlurFilter", e.feGaussianBlur = e.paper.add("feGaussianBlur"), e.feGaussianBlur.attr({
                        result: "blurOut",
                        in: "SourceGraphic"
                    }), e.filterPrimitives.push(e.feGaussianBlur), e.width = 200, e.height = 200, e.blur = 1.5, e.applyTheme(), e
                }
                return Object(w.c)(e, t), Object.defineProperty(e.prototype, "blur", {
                    get: function() {
                        return this.properties.blur
                    },
                    set: function(t) {
                        this.properties.blur = t, this.feGaussianBlur.attr({
                            stdDeviation: t / this.scale
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(Dt.a);
        p.c.registeredClasses.BlurFilter = Mt;
        var Ft = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "FocusFilter", e.feFlood = e.paper.add("feFlood"), e.feFlood.attr({
                        "flood-color": (new R.a).getFor("primaryButtonHover"),
                        result: "base"
                    }), e.filterPrimitives.push(e.feFlood), e.feMorphology = e.paper.add("feMorphology"), e.feMorphology.attr({
                        result: "bigger",
                        in: "SourceGraphic",
                        operator: "dilate",
                        radius: "2"
                    }), e.filterPrimitives.push(e.feMorphology), e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({
                        result: "mask",
                        in: "bigger",
                        type: "matrix",
                        values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"
                    }), e.filterPrimitives.push(e.feColorMatrix), e.feComposite = e.paper.add("feComposite"), e.feComposite.attr({
                        result: "drop",
                        in: "base",
                        in2: "mask",
                        operator: "in"
                    }), e.filterPrimitives.push(e.feComposite), e.feBlend = e.paper.add("feBlend"), e.feBlend.attr({
                        in: "SourceGraphic",
                        in2: "drop",
                        mode: "normal"
                    }), e.filterPrimitives.push(e.feBlend), e.width = 130, e.height = 130, e.applyTheme(), e
                }
                return Object(w.c)(e, t), Object.defineProperty(e.prototype, "stroke", {
                    get: function() {
                        return this.properties.stroke
                    },
                    set: function(t) {
                        this.properties.stroke = t, this.feFlood.attr({
                            "flood-color": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeWidth", {
                    get: function() {
                        return this.properties.strokeWidth
                    },
                    set: function(t) {
                        this.properties.strokeWidth = t, this.feMorphology.attr({
                            radius: t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "opacity", {
                    get: function() {
                        return this.properties.opacity
                    },
                    set: function(t) {
                        this.properties.opacity = t, this.feColorMatrix.attr({
                            values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " + t + " 0"
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setSprite = function(e) {
                    this._sprite && this._sprite != e && this._sprite.group.removeStyle("outline"), e.group.addStyle({
                        outline: "none"
                    }), t.prototype.setSprite.call(this, e)
                }, e
            }(Dt.a),
            Et = i("C84C"),
            Rt = i("x79X"),
            Nt = i("1yyj"),
            Lt = i("/9XX"),
            Bt = i("eCqC"),
            Ut = i("8ZqG"),
            Wt = i("DHte"),
            Yt = i("W0E6"),
            Ht = i("+qIf"),
            zt = i("hD5A"),
            Xt = i("o0Lc"),
            Gt = i("Wglt"),
            Kt = i("WYhe"),
            qt = i("P/bD"),
            Zt = i("vMqJ"),
            Qt = i("oC3T"),
            Jt = i("MlsF"),
            $t = i("Iz1H"),
            te = i("TGuK"),
            ee = i("VGgz"),
            ie = i("ScGY"),
            ne = i("/IEW"),
            re = i("hGwe"),
            ae = i("hxI2"),
            oe = i("0FpR"),
            se = i("Gg2j"),
            le = i("hJ5i"),
            ue = i("3Cxr"),
            he = i("Qkdp"),
            ce = i("wUYf"),
            pe = i("L91H"),
            de = i("v9UT"),
            fe = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "AmChartsLogo", e.valign = "bottom";
                    var i = .3;
                    //e.opacity = .3, e.defaultState.properties.opacity = .4, e.url = "https://www.amcharts.com/", e.urlTarget = "_blank", e.showSystemTooltip = !0, e.readerTitle = "Chart created using amCharts library", e.width = 66, e.height = 21, e.background.opacity = 0;
                    var n = Object(Ut.c)("#474758");
                    "#ffffff" == (new R.a).getFor("background").alternative.hex && (n = Object(Ut.c)("#ffffff"));
                    var r = new Pt.a;
                    r.addColor(n), r.addColor(n, 1, .75), r.addColor(Object(Ut.c)("#3cabff"), 1, .755), r.rotation = -10;
                    var a = r,
                        o = e.createChild(E.a);
                    o.shouldClone = !1, o.isMeasured = !1, o.segments = [
                        [{
                            x: 15,
                            y: 15
                        }, {
                            x: 27,
                            y: 15
                        }, {
                            x: 36,
                            y: 6
                        }, {
                            x: 40.5,
                            y: 10.5
                        }, {
                            x: 45,
                            y: 6
                        }, {
                            x: 54,
                            y: 15
                        }, {
                            x: 60,
                            y: 15
                        }]
                    ], o.strokeWidth = 6 * i, o.tensionX = .8, o.tensionY = 1, o.stroke = Object(Ut.c)("#3cabff");
                    var s = e.createChild(E.a);
                    s.shouldClone = !1, s.isMeasured = !1, s.segments = [
                        [{
                            x: 6,
                            y: 15
                        }, {
                            x: 15,
                            y: 15
                        }, {
                            x: 27,
                            y: 12 * i
                        }, {
                            x: 39.9,
                            y: 15
                        }, {
                            x: 51,
                            y: 15
                        }, {
                            x: 60,
                            y: 15
                        }]
                    ], s.strokeWidth = 6 * i, s.tensionX = .75, s.tensionY = 1, s.stroke = a, e._disposers.push(s);
                    var l = new Vt.a;
                    e.filters.push(l);
                    var u = new Vt.a;
                    u.saturation = 1;
                    var h = e.states.create("hover");
                    return h.properties.opacity = 1, h.filters.push(u), e.applyTheme(), e
                }
                return Object(w.c)(e, t), e
            }(s.a),
            ge = i("pjXm");

        function ye(t, e) {
            var i = O.q(t);
            if (i) {
                i.innerHTML = "";
                var n = new xt.a(i),
                    a = new vt.a(n.SVGContainer, "svg-" + (xt.b.length - 1)),
                    o = new s.a;
                o.htmlContainer = i, o.svgContainer = n, o.width = Object(L.c)(100), o.height = Object(L.c)(100), o.background.fillOpacity = 0, o.paper = a, a.append(o.group), o.relativeWidth = 1, o.relativeHeight = 1, n.container = o;
                var l = o.createChild(e);
                l.topParent = o;
                var u = l.uid;
                p.c.invalidSprites[u] = [], p.c.invalidDatas[u] = [], p.c.invalidPositions[u] = [], p.c.invalidLayouts[u] = [], o.baseId = u, l.isBaseSprite = !0, l.focusFilter = new Ft, p.c.baseSprites.push(l), p.c.baseSpritesByUid[u] = l, l.maskRectangle = {
                    x: 0,
                    y: 0,
                    width: Math.max(n.width, 0),
                    height: Math.max(n.height, 0)
                }, o.events.on("maxsizechanged", function(t) {
                    0 != t.previousWidth && 0 != t.previousHeight || o.deepInvalidate(), l.maskRectangle && (l.maskRectangle = {
                        x: 0,
                        y: 0,
                        width: Math.max(n.width, 0),
                        height: Math.max(n.height, 0)
                    })
                });
                var h = null,
                    c = function() {
                        l.isDisposed() ? h = null : null == O.r(l.dom) ? (ge.b("Chart was not disposed", l.uid), h = null) : h = window.setTimeout(c, 1e3)
                    };
                c(), l.addDisposer(new zt.b(function() {
                    null !== h && clearTimeout(h), le.remove(p.c.baseSprites, l), p.c.baseSpritesByUid[l.uid] = void 0
                })), l.addDisposer(o);
                var f = o.createChild(s.a);
                f.topParent = o, f.width = Object(L.c)(100), f.height = Object(L.c)(100), f.isMeasured = !1, o.tooltipContainer = f, l.tooltip = new G.a, l.tooltip.hide(0), l.tooltip.setBounds({
                    x: 0,
                    y: 0,
                    width: f.maxWidth,
                    height: f.maxHeight
                }), f.events.on("maxsizechanged", function() {
                    T.getValue(l.tooltip).setBounds({
                        x: 0,
                        y: 0,
                        width: f.maxWidth,
                        height: f.maxHeight
                    })
                }, void 0, !1);
                var g = new B;
                if (g.events.on("inited", function() {
                        g.__disabled = !0
                    }, void 0, !1), o.preloader = g, l instanceof s.a && !l.hasLicense()) {
                    var y = f.createChild(fe);
                    f.events.on("maxsizechanged", function(t) {
                        f.maxWidth <= 100 || f.maxHeight <= 50 ? y.hide() : (y.isHidden || y.isHiding) && y.show()
                    }, void 0, !1), l.logo = y, y.align = "left", y.valign = "bottom"
                }
                if (de.used(l.numberFormatter), o.isStandaloneInstance = !0, d.a.onlyShowOnViewport)
                    if (O.t(i, d.a.viewportTarget)) d.a.queue && ve(l);
                    else {
                        l.__disabled = !0, l.tooltipContainer.__disabled = !0;
                        var m = [O.g(window, "DOMContentLoaded", function() {
                            xe(l)
                        }), O.g(window, "load", function() {
                            xe(l)
                        }), O.g(window, "resize", function() {
                            xe(l)
                        }), O.g(window, "scroll", function() {
                            xe(l)
                        })];
                        d.a.viewportTarget && (m.push(O.g(d.a.viewportTarget, "resize", function() {
                            xe(l)
                        })), m.push(O.g(d.a.viewportTarget, "scroll", function() {
                            xe(l)
                        })));
                        var v = new zt.c(m);
                        l.addDisposer(v), l.vpDisposer = v
                    }
                else d.a.queue && ve(l);
                return l
            }
            throw r.b.log("html container not found"), new Error("html container not found")
        }

        function me() {
            for (; 0 !== p.c.baseSprites.length;) p.c.baseSprites.pop().dispose()
        }

        function ve(t) {
            -1 == p.c.queue.indexOf(t) && (t.__disabled = !0, t.tooltipContainer.__disabled = !0, t.events.disableType("appeared"), 0 == p.c.queue.length && _e(t), t.addDisposer(new zt.b(function() {
                be(t)
            })), p.c.queue.push(t))
        }

        function be(t) {
            var e = p.c.queue.indexOf(t);
            if (e >= 0) {
                p.c.queue.splice(p.c.queue.indexOf(t), 1);
                var i = p.c.queue[e];
                i && _e(i)
            }
        }

        function xe(t) {
            t.__disabled && O.t(t.htmlContainer, d.a.viewportTarget) && (t.vpDisposer && t.vpDisposer.dispose(), ve(t))
        }

        function _e(t) {
            t.__disabled = !1, t.tooltipContainer.__disabled = !1, t.events.enableType("appeared"), t.showOnInit && t.events.on("appeared", function() {
                be(t)
            }), t.vpDisposer && t.vpDisposer.dispose(), t instanceof o.a ? (t.invalidateData(), t.reinit(), t.events.once("datavalidated", function() {
                t.showOnInit ? t.appear() : be(t)
            })) : t.showOnInit ? t.appear() : be(t)
        }

        function Pe(t, e) {
            var i;
            T.isString(e) && (T.hasValue(p.c.registeredClasses[e]) ? e = p.c.registeredClasses[e] : (e = p.c.registeredClasses.Container, i = new Error("Class [" + e + "] is not loaded.")));
            var n = ye(t, e);
            return i && n.raiseCriticalError(i), n
        }

        function we(t, e, i) {
            var n, r;
            T.hasValue(i) || (i = t.type, delete t.type), T.hasValue(e) || (e = t.container, delete t.container), T.isString(i) && T.hasValue(p.c.registeredClasses[i]) ? n = p.c.registeredClasses[i] : "function" != typeof i ? (n = s.a, r = new Error("Class [" + i + "] is not loaded.")) : n = i;
            var a = ye(e, n);
            return r ? a.raiseCriticalError(r) : a.config = t, a
        }

        function Oe(t) {
            -1 === p.c.themes.indexOf(t) && p.c.themes.push(t)
        }

        function Te(t) {
            le.remove(p.c.themes, t)
        }

        function Se() {
            p.c.themes = []
        }

        function Ce(t) {
            d.a.licenses.push(t)
        }
        window.am4core = n, i.p = function(t) {
            return /(.*\/)[^\/]*$/.exec(t)[1]
        }(function() {
            if (document.currentScript) return document.currentScript;
            var t = document.getElementsByTagName("script");
            return t[t.length - 1]
        }().src)
    },
    OMnz: function(t, e, i) {
        var n = i("z3p0"),
            r = Date.prototype,
            a = r.toString,
            o = r.getTime;
        new Date(NaN) + "" != "Invalid Date" && n(r, "toString", function() {
            var t = o.call(this);
            return t == t ? a.call(this) : "Invalid Date"
        })
    },
    ORGY: function(t, e, i) {
        i("6WsA")("replace")
    },
    OVUc: function(t, e, i) {
        "use strict";
        e.a = function(t, e, i) {
            return new Promise(function(r, a) {
                var o = n.hasValue(i) && "blob" == i.responseType,
                    s = new XMLHttpRequest;
                if (s.onload = function() {
                        if (200 === s.status) {
                            var t, i = void 0;
                            if (o) return void
                            function(t) {
                                return new Promise(function(e, i) {
                                    var n = new FileReader;
                                    n.onload = function(t) {
                                        e(n.result)
                                    }, n.onerror = function(t) {
                                        i(t)
                                    }, n.readAsText(t)
                                })
                            }(t = s.response).then(function(i) {
                                var n = {
                                    xhr: s,
                                    error: !1,
                                    response: i,
                                    blob: t,
                                    type: s.getResponseHeader("Content-Type"),
                                    target: e
                                };
                                r(n)
                            });
                            i = s.responseText || s.response;
                            var n = {
                                xhr: s,
                                error: !1,
                                response: i,
                                blob: t,
                                type: s.getResponseHeader("Content-Type"),
                                target: e
                            };
                            r(n)
                        } else a({
                            xhr: s,
                            error: !0,
                            type: s.getResponseHeader("Content-Type"),
                            target: e
                        })
                    }, s.onerror = function() {
                        a({
                            xhr: s,
                            error: !0,
                            type: s.getResponseHeader("Content-Type"),
                            target: e
                        })
                    }, s.open("GET", t, !0), i && i.withCredentials && (s.withCredentials = !0), n.hasValue(i)) {
                    if (n.hasValue(i.requestHeaders))
                        for (var l = 0; l < i.requestHeaders.length; l++) {
                            var u = i.requestHeaders[l];
                            s.setRequestHeader(u.key, u.value)
                        }
                    n.hasValue(i.responseType) && (s.responseType = i.responseType)
                }
                s.send()
            })
        };
        var n = i("Mtpk")
    },
    OXm9: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return g
        });
        var n = i("m4/l"),
            r = i("Meme"),
            a = i("ND2/"),
            o = i("w4m0"),
            s = i("aCit"),
            l = i("tjMS"),
            u = i("Gg2j"),
            h = i("hGwe"),
            c = i("v9UT"),
            p = i("Mtpk"),
            d = i("TGuK"),
            f = i("5xph"),
            g = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "AxisRendererY", e.minGridDistance = 40, e.opposite = !1, e.height = Object(l.c)(100), e.labels.template.verticalCenter = "middle", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.setAxis = function(e) {
                    t.prototype.setAxis.call(this, e), e.layout = "horizontal"
                }, e.prototype.updateGridContainer = function() {
                    var t = this.axis;
                    if (t) {
                        var e = this.gridContainer;
                        e.y = t.pixelY, e.height = t.axisLength
                    }
                }, e.prototype.toAxisPosition = function(t) {
                    var e = this.axis;
                    if (e) {
                        var i = 1 - t,
                            n = e.relativePositionSprite,
                            r = e.pixelY;
                        if (n ? r = c.spritePointToSprite({
                                x: 0,
                                y: this.pixelY
                            }, this.parent, n).y : n = e.parent, n) return 1 - (i - r / n.innerHeight) / (e.axisLength / n.innerHeight)
                    }
                    return t
                }, e.prototype.processRenderer = function() {
                    t.prototype.processRenderer.call(this);
                    var e = this.axis;
                    if (e) {
                        var i = e.title;
                        i.valign = "middle", e.height instanceof l.a || (e.height = Object(l.c)(100)), this.opposite ? (i.rotation = 90, this.line.toBack(), i.toFront()) : (i.rotation = -90, i.toBack(), this.line.toFront())
                    }
                }, e.prototype.updateTooltip = function() {
                    if (this.axis) {
                        var t = 0,
                            e = 2e3,
                            i = this.axisLength;
                        this.opposite ? this.inside && (t = -2e3, e = 2e3) : this.inside || (t = -2e3, e = 2e3), this.axis.updateTooltip("horizontal", {
                            x: t,
                            y: 0,
                            width: e,
                            height: i
                        })
                    }
                }, Object.defineProperty(e.prototype, "axisLength", {
                    get: function() {
                        var t = this.axis;
                        return t.measuredHeight - t.pixelPaddingTop - t.pixelPaddingBottom || 0
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.positionToPoint = function(t, e) {
                    return {
                        x: 0,
                        y: this.positionToCoordinate(t)
                    }
                }, e.prototype.pointToPosition = function(t) {
                    return this.coordinateToPosition(t.y, t.x)
                }, e.prototype.coordinateToPosition = function(t, e) {
                    var i, n = this.axis,
                        r = n.axisFullLength;
                    return i = n.renderer.inversed ? 1 - n.start - t / r : t / r + (1 - n.end), u.round(i, 5)
                }, e.prototype.getPositionRangePath = function(t, e) {
                    var i = u.fitToRange(this.positionToCoordinate(t), 0, this.axisLength),
                        n = u.fitToRange(this.positionToCoordinate(e), 0, this.axisLength),
                        r = Math.abs(n - i),
                        a = this.getWidth(),
                        o = Math.min(i, n);
                    return h.rectToPath({
                        x: 0,
                        y: o,
                        width: a,
                        height: r
                    }, !0)
                }, e.prototype.updateGridElement = function(t, e, i) {
                    e += (i - e) * t.location;
                    var n = this.positionToPoint(e);
                    t.path = h.moveTo({
                        x: 0,
                        y: 0
                    }) + h.lineTo({
                        x: this.getWidth(),
                        y: 0
                    }), this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1)
                }, e.prototype.updateTickElement = function(t, e, i) {
                    e += (i - e) * t.location;
                    var n = this.positionToPoint(e),
                        r = t.length;
                    try {
                        c.used(this.axis.title.measuredWidth)
                    } catch (t) {}
                    n.x = c.spritePointToSprite({
                        x: this.line.pixelX,
                        y: 0
                    }, this.line.parent, this.gridContainer).x, this.opposite ? r *= t.inside ? -1 : 1 : r *= t.inside ? 1 : -1, t.path = h.moveTo({
                        x: 0,
                        y: 0
                    }) + h.lineTo({
                        x: r,
                        y: 0
                    }), this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1)
                }, e.prototype.updateAxisLine = function() {
                    this.line.path = h.moveTo({
                        x: 0,
                        y: 0
                    }) + h.lineTo({
                        x: 0,
                        y: this.axisLength
                    })
                }, e.prototype.updateBaseGridElement = function() {
                    t.prototype.updateBaseGridElement.call(this);
                    var e = this.axis,
                        i = this.getWidth(),
                        n = this.axisLength,
                        r = e.basePoint.y,
                        a = this.baseGrid;
                    if (r < -.2 || r > n + .2) a.hide(0);
                    else {
                        var o = c.spritePointToSprite({
                            x: 0,
                            y: 0
                        }, this.gridContainer, a.parent).x;
                        a.path = h.moveTo({
                            x: 0,
                            y: 0
                        }) + h.lineTo({
                            x: i,
                            y: 0
                        }), a.moveTo({
                            x: o,
                            y: r
                        }), a.show(0)
                    }
                }, e.prototype.updateLabelElement = function(t, e, i, n) {
                    p.hasValue(n) || (n = t.location), e += (i - e) * n, t.isMeasured = !t.inside;
                    var r, a = this.positionToPoint(e),
                        o = 0,
                        s = this.gridContainer.maxWidth;
                    this.opposite ? (t.inside ? (r = "right", "left" == t.align && (o = -s, r = "left"), "center" == t.align && (o = -s / 2, r = "middle")) : r = "left", a.x = 0 + o) : (t.inside ? (r = "left", "right" == t.align && (o = s, r = "right"), "center" == t.align && (o = s / 2, r = "middle")) : r = "right", a.x = this.measuredWidth + o), 0 == t.rotation && (t.horizontalCenter = r), this.positionItem(t, a), this.toggleVisibility(t, e, this.minLabelPosition, this.maxLabelPosition)
                }, e.prototype.updateBreakElement = function(e) {
                    t.prototype.updateBreakElement.call(this, e);
                    var i = e.startLine,
                        n = e.endLine,
                        r = e.fillShape,
                        a = e.startPoint,
                        o = e.endPoint,
                        s = e.pixelMarginLeft,
                        l = this.getWidth() - e.pixelMarginLeft - e.pixelMarginRight;
                    a.y = u.fitToRange(a.y, -1, this.axisLength + 1), o.y = u.fitToRange(o.y, -1, this.axisLength + 1), a.y == o.y && (a.y < 0 || a.y > this.axisLength) ? e.fillShape.__disabled = !0 : e.fillShape.__disabled = !1;
                    var h = Math.abs(l - s);
                    i.x = s, i.height = 0, i.width = h, n.x = s, n.height = 0, n.width = h, r.width = h, r.height = Math.abs(o.y - a.y), r.x = s, r.y = o.y
                }, e.prototype.createBreakSprites = function(t) {
                    t.startLine = new a.a, t.endLine = new a.a;
                    var e = new o.a;
                    e.setWavedSides(!0, !1, !0, !1), t.fillShape = e
                }, e.prototype.positionToCoordinate = function(t) {
                    var e, i = this.axis,
                        n = i.axisFullLength;
                    return e = i.renderer.inversed ? (t - i.start) * n : (i.end - t) * n, u.round(e, 1)
                }, e.prototype.updateBullet = function(t, e, i) {
                    var n = .5;
                    t instanceof f.a && (n = t.location), e += (i - e) * n;
                    var r = this.positionToPoint(e);
                    r.x = c.spritePointToSprite({
                        x: this.line.pixelX,
                        y: 0
                    }, this.line.parent, this.gridContainer).x, this.positionItem(t, r), this.toggleVisibility(t, e, 0, 1)
                }, e
            }(r.a);
        s.c.registeredClasses.AxisRendererY = g, d.c.push({
            relevant: d.b.widthS,
            state: function(t, e) {
                if (t instanceof g) {
                    var i = t.states.create(e);
                    return i.properties.inside = !0, i.properties.maxLabelPosition = .9, i.properties.minLabelPosition = .1, i
                }
                return null
            }
        }), d.c.push({
            relevant: d.b.widthXS,
            state: function(t, e) {
                if (t instanceof g) {
                    var i = t.states.create(e);
                    return i.properties.disabled = !0, i
                }
                return null
            }
        })
    },
    Oe1l: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("zhwk"),
            r = i("Rpw0"),
            a = i("hJ5i"),
            o = function() {
                function t(t, e) {
                    this._disposed = !1, this.directionX = 0, this.directionY = 0, this.interaction = t, this.keyboardEvent = e, this._startedOn = (new Date).getTime(), Object(n.b)().processDragStart(t), r.b.animations.push(this), this.update()
                }
                return t.prototype.update = function() {
                    var t = this.interaction,
                        e = Object(n.b)().getKeyboardOption(t, "speed"),
                        i = Object(n.b)().getKeyboardOption(t, "accelleration"),
                        r = Object(n.b)().getKeyboardOption(t, "accellerationDelay"),
                        a = {
                            x: 0,
                            y: 0
                        };
                    this.keyboardEvent.shiftKey ? (e *= .5, i = 1) : this.keyboardEvent.ctrlKey && (e *= 2);
                    var o = (new Date).getTime() - this._startedOn,
                        s = o - r;
                    if (i > 0 && s > 0) {
                        var l = o / r;
                        o = r, a.x += this.directionX * (e * i * l * s), a.y += this.directionY * (e * i * l * s)
                    }
                    a.x += this.directionX * (e * o), a.y += this.directionY * (e * o), Object(n.b)().handleTransformMove(t, a, {
                        x: 0,
                        y: 0
                    }, this.keyboardEvent, !0, !1)
                }, t.prototype.isDisposed = function() {
                    return this._disposed
                }, t.prototype.dispose = function() {
                    this._disposed || (Object(n.b)().processDragStop(this.interaction), a.remove(r.b.animations, this))
                }, t
            }()
    },
    OhoW: function(t, e, i) {
        "use strict";
        var n = i("NZ9V"),
            r = i("AzDz"),
            a = i("3weC"),
            o = i("swFJ"),
            s = i("Nfo5"),
            l = i("L0in"),
            u = i("tHyI"),
            h = i("Xw1K"),
            c = i("4Wbs"),
            p = i("6aQQ"),
            d = [].push,
            f = Math.min,
            g = !p(function() {
                return !RegExp(4294967295, "y")
            });
        n("split", 2, function(t, e, i) {
            var n;
            return n = "c" == "abbc".split(/(b)*/)[1] || 4 != "test".split(/(?:)/, -1).length || 2 != "ab".split(/(?:ab)*/).length || 4 != ".".split(/(.?)(.?)/).length || ".".split(/()()/).length > 1 || "".split(/.?/).length ? function(t, i) {
                var n = String(o(this)),
                    a = void 0 === i ? 4294967295 : i >>> 0;
                if (0 === a) return [];
                if (void 0 === t) return [n];
                if (!r(t)) return e.call(n, t, a);
                for (var s, l, u, h = [], p = (t.ignoreCase ? "i" : "") + (t.multiline ? "m" : "") + (t.unicode ? "u" : "") + (t.sticky ? "y" : ""), f = 0, g = new RegExp(t.source, p + "g");
                    (s = c.call(g, n)) && !((l = g.lastIndex) > f && (h.push(n.slice(f, s.index)), s.length > 1 && s.index < n.length && d.apply(h, s.slice(1)), u = s[0].length, f = l, h.length >= a));) g.lastIndex === s.index && g.lastIndex++;
                return f === n.length ? !u && g.test("") || h.push("") : h.push(n.slice(f)), h.length > a ? h.slice(0, a) : h
            } : "0".split(void 0, 0).length ? function(t, i) {
                return void 0 === t && 0 === i ? [] : e.call(this, t, i)
            } : e, [function(e, i) {
                var r = o(this),
                    a = void 0 == e ? void 0 : e[t];
                return void 0 !== a ? a.call(e, r, i) : n.call(String(r), e, i)
            }, function(t, r) {
                var o = i(n, t, this, r, n !== e);
                if (o.done) return o.value;
                var c = a(t),
                    p = String(this),
                    d = s(c, RegExp),
                    y = c.unicode,
                    m = (c.ignoreCase ? "i" : "") + (c.multiline ? "m" : "") + (c.unicode ? "u" : "") + (g ? "y" : "g"),
                    v = new d(g ? c : "^(?:" + c.source + ")", m),
                    b = void 0 === r ? 4294967295 : r >>> 0;
                if (0 === b) return [];
                if (0 === p.length) return null === h(v, p) ? [p] : [];
                for (var x = 0, _ = 0, P = []; _ < p.length;) {
                    v.lastIndex = g ? _ : 0;
                    var w, O = h(v, g ? p : p.slice(_));
                    if (null === O || (w = f(u(v.lastIndex + (g ? 0 : _)), p.length)) === x) _ = l(p, _, y);
                    else {
                        if (P.push(p.slice(x, _)), P.length === b) return P;
                        for (var T = 1; T <= O.length - 1; T++)
                            if (P.push(O[T]), P.length === b) return P;
                        _ = x = w
                    }
                }
                return P.push(p.slice(x)), P
            }]
        }, !g)
    },
    Ox5T: function(t, e, i) {
        var n = i("JZRr"),
            r = i("7X7h"),
            a = i("fYap"),
            o = i("QKtu"),
            s = a("IE_PROTO"),
            l = Object.prototype;
        t.exports = o ? Object.getPrototypeOf : function(t) {
            return t = r(t), n(t, s) ? t[s] : "function" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? l : null
        }
    },
    "Oz+B": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("mtbW"),
            o = i("3weC"),
            s = i("Y8n3"),
            l = i("tHyI"),
            u = i("Nfo5"),
            h = a.ArrayBuffer,
            c = a.DataView,
            p = h.prototype.slice;
        n({
            target: "ArrayBuffer",
            proto: !0,
            unsafe: !0,
            forced: r(function() {
                return !new h(2).slice(1, void 0).byteLength
            })
        }, {
            slice: function(t, e) {
                if (void 0 !== p && void 0 === e) return p.call(o(this), t);
                for (var i = o(this).byteLength, n = s(t, i), r = s(void 0 === e ? i : e, i), a = new(u(this, h))(l(r - n)), d = new c(this), f = new c(a), g = 0; n < r;) f.setUint8(g++, d.getUint8(n++));
                return a
            }
        })
    },
    "P+4d": function(t, e, i) {
        var n = i("0sYB"),
            r = i("CqLV");
        n({
            target: "Number",
            stat: !0,
            forced: Number.parseFloat != r
        }, {
            parseFloat: r
        })
    },
    "P/bD": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("x79X"),
            o = i("hJ5i"),
            s = i("Mtpk"),
            l = i("JNIx"),
            u = i("Q4nc"),
            h = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.adapter = new a.a(e), e._locale = l.a, e._defaultLocale = l.a, e.className = "Language", s.hasValue(u.a.defaultLocale) && (e.locale = u.a.defaultLocale), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.getLocale = function(t) {
                    return null == t && (t = this._locale), this.adapter.apply("locale", {
                        locale: t
                    }).locale
                }, e.prototype.translate = function(t, e) {
                    for (var i = [], r = 2; r < arguments.length; r++) i[r - 2] = arguments[r];
                    e = this.getLocale(e);
                    var a = t,
                        o = this.getTranslations(e)[t];
                    if (null === o) o = "";
                    else if (s.hasValue(o)) o && (a = o);
                    else if (e !== this._defaultLocale) return this.translate.apply(this, Object(n.f)([t, this._defaultLocale], i));
                    if (i.length)
                        for (var l = i.length, u = 0; u < l; ++u) a = a.split("%" + (u + 1)).join(i[u]);
                    return this.adapter.apply("translate", {
                        translation: a,
                        locale: e
                    }).translation
                }, e.prototype.translateAny = function(t, e) {
                    for (var i = [], n = 2; n < arguments.length; n++) i[n - 2] = arguments[n];
                    return this.translate(t, e)
                }, e.prototype.translateEmpty = function(t, e) {
                    for (var i = [], r = 2; r < arguments.length; r++) i[r - 2] = arguments[r];
                    var a = this.translate.apply(this, Object(n.f)([t, e], i));
                    return a == t ? "" : a
                }, e.prototype.translateFunc = function(t, e) {
                    e = this.getLocale(e);
                    var i = this.getTranslations(e)[t];
                    return null != i ? i : e !== this._defaultLocale ? this.translateFunc(t, this._defaultLocale) : function() {
                        return ""
                    }
                }, e.prototype.translateAll = function(t, e) {
                    var i = this;
                    return this.isDefault() ? t : o.map(t, function(t) {
                        return i.translate(t, e)
                    })
                }, e.prototype.isDefault = function() {
                    return this._defaultLocale === this._locale
                }, Object.defineProperty(e.prototype, "locale", {
                    get: function() {
                        return this._locale
                    },
                    set: function(t) {
                        if (this._locale != t && (this._locale = t, this.events.isEnabled("localechanged"))) {
                            var e = {
                                type: "localechanged",
                                locale: t,
                                target: this
                            };
                            this.events.dispatchImmediately("localechanged", e)
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getTranslations = function(t) {
                    return this.adapter.apply("translations", {
                        translations: t,
                        locale: t
                    }).translations
                }, e
            }(r.b)
    },
    "P7v+": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        }), e.b = function() {
            if (null === l) {
                var t = document.createElement("div");
                t.hidden = !0, document.body.appendChild(t);
                var e = new a.a(t, !0);
                l = new s(e.SVGContainer, "ghost")
            }
            return l
        };
        var n = i("pzs1"),
            r = i("cOH5"),
            a = i("HDh7"),
            o = i("58Sn"),
            s = function() {
                function t(t, e) {
                    this.container = t, this.id = e;
                    var i = document.createElementNS(o.a, "svg");
                    i.setAttribute("version", "1.1"), i.setAttributeNS(o.e, "xmlns", o.a), i.setAttributeNS(o.e, "xmlns:xlink", o.d), i.setAttribute("role", "group"), this.container.appendChild(i);
                    var n = document.createElementNS(o.a, "desc");
                    n.appendChild(document.createTextNode("JavaScript chart by amCharts")), i.appendChild(n), this.defs = document.createElementNS(o.a, "defs"), i.appendChild(this.defs), i.style.width = "100%", i.style.height = "100%", i.style.overflow = "visible", this.svg = i
                }
                return t.prototype.add = function(t) {
                    return new n.a(t)
                }, t.prototype.addGroup = function(t) {
                    return new r.a(t)
                }, t.prototype.append = function(t) {
                    t && this.svg.appendChild(t.node)
                }, t.prototype.appendDef = function(t) {
                    t && this.defs.appendChild(t.node)
                }, t.prototype.foreignObject = function() {
                    return new n.a("foreignObject")
                }, t.prototype.supportsForeignObject = function() {
                    return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Extensibility", "1.1")
                }, t
            }(),
            l = null
    },
    PGhV: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("blink")
        }, {
            blink: function() {
                return r(this, "blink", "", "")
            }
        })
    },
    PTiM: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("8ZqG"),
            o = i("sxA1"),
            s = i("aCit"),
            l = i("Mtpk"),
            u = i("Gg2j"),
            h = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Line", e.element = e.paper.add("line"), e.fill = Object(a.c)(), e.x1 = 0, e.y1 = 0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this), this.x1 == this.x2 || this.y1 == this.y2 ? this.pixelPerfect = !0 : this.pixelPerfect = !1, this.x1 = this.x1, this.x2 = this.x2, this.y1 = this.y1, this.y2 = this.y2
                }, Object.defineProperty(e.prototype, "x1", {
                    get: function() {
                        return this.getPropertyValue("x1")
                    },
                    set: function(t) {
                        l.isNumber(t) || (t = 0);
                        var e = 0;
                        this.pixelPerfect && this.stroke instanceof o.a && (e = 1e-5), this.setPropertyValue("x1", t, !0), this.element.attr({
                            x1: t + e
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "x2", {
                    get: function() {
                        var t = this.getPropertyValue("x2");
                        return l.isNumber(t) || (t = this.pixelWidth), t
                    },
                    set: function(t) {
                        l.isNumber(t) || (t = 0), this.setPropertyValue("x2", t, !0), this.element.attr({
                            x2: t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "y1", {
                    get: function() {
                        return this.getPropertyValue("y1")
                    },
                    set: function(t) {
                        l.isNumber(t) || (t = 0);
                        var e = 0;
                        this.pixelPerfect && this.stroke instanceof o.a && (e = 1e-5), this.setPropertyValue("y1", t, !0), this.element.attr({
                            y1: t + e
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "y2", {
                    get: function() {
                        var t = this.getPropertyValue("y2");
                        return l.isNumber(t) || (t = this.pixelHeight), t
                    },
                    set: function(t) {
                        l.isNumber(t) || (t = 0), this.setPropertyValue("y2", t, !0), this.element.attr({
                            y2: t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.positionToPoint = function(t) {
                    var e = {
                            x: this.x1,
                            y: this.y1
                        },
                        i = {
                            x: this.x2,
                            y: this.y2
                        },
                        n = u.getMidPoint(e, i, t),
                        r = u.getAngle(e, i);
                    return {
                        x: n.x,
                        y: n.y,
                        angle: r
                    }
                }, e
            }(r.a);
        s.c.registeredClasses.Line = h
    },
    Pm8L: function(t, e) {
        t.exports = function(t, e) {
            return {
                enumerable: !(1 & t),
                configurable: !(2 & t),
                writable: !(4 & t),
                value: e
            }
        }
    },
    PoRT: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("X/sl").every,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("every", function(t) {
            return r(a(this), t, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    Puh1: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return p
        }), i.d(e, "a", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("AC2I"),
            a = i("Inf5"),
            o = i("IbTV"),
            s = i("BmDP"),
            l = i("aCit"),
            u = i("Gg2j"),
            h = i("Mtpk"),
            c = i("tjMS"),
            p = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "PieSeriesDataItem", e.values.radiusValue = {}, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "radiusValue", {
                    get: function() {
                        return this.values.radiusValue.value
                    },
                    set: function(t) {
                        this.setValue("radiusValue", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.hide = function(e, i, n, r) {
                    return t.prototype.hide.call(this, e, i, 0, ["value", "radiusValue"])
                }, e.prototype.show = function(e, i, n) {
                    return t.prototype.show.call(this, e, i, ["value", "radiusValue"])
                }, e
            }(r.b),
            d = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "PieSeries", e.alignLabels = !0, e.layout = "none", e.labels.template.radius = Object(c.c)(5), e.addDisposer(e.labels.template.events.on("enabled", e.invalidate, e, !1)), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.createSlice = function() {
                    return new a.a
                }, e.prototype.createTick = function() {
                    return new s.a
                }, e.prototype.createLabel = function() {
                    return new o.a
                }, e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), h.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Pie Slice Series"))
                }, e.prototype.createDataItem = function() {
                    return new p
                }, e.prototype.initSlice = function(t) {
                    t.isMeasured = !1, t.defaultState.properties.scale = 1, t.observe("scale", this.handleSliceScale, this), t.observe(["dx", "dy", "x", "y", "shiftRadius"], this.handleSliceMove, this), t.tooltipText = "{category}: {value.percent.formatNumber('#.#')}% ({value.value})", t.states.create("hover").properties.scale = 1.05, t.defaultState.properties.shiftRadius = 0, t.togglable = !0, t.events.on("toggled", function(t) {
                        t.target.hideTooltip()
                    }), t.states.create("active").properties.shiftRadius = .1
                }, e.prototype.validate = function() {
                    this._leftItems = [], this._rightItems = [], this._currentStartAngle = this.startAngle, this._arcRect = u.getArcRect(this.startAngle, this.endAngle), this._maxRadiusPercent = 0;
                    for (var e = this.startIndex; e < this.endIndex; e++) {
                        var i = this.dataItems.getIndex(e).values.radiusValue.percent;
                        i > this._maxRadiusPercent && (this._maxRadiusPercent = i)
                    }
                    t.prototype.validate.call(this), this.alignLabels && (this.startAngle > this.endAngle ? this._rightItems.reverse() : this._leftItems.reverse(), this._rightItems.sort(function(t, e) {
                        var i = (t.slice.middleAngle + 360) % 360,
                            n = (e.slice.middleAngle + 360) % 360;
                        return i > 270 && (i -= 360), n > 270 && (n -= 360), i < n ? -1 : 1
                    }), this._leftItems.sort(function(t, e) {
                        return (t.slice.middleAngle + 360) % 360 < (e.slice.middleAngle + 360) % 360 ? 1 : -1
                    }), this.arrangeLabels(this._rightItems), this.arrangeLabels2(this._rightItems), this.arrangeLabels(this._leftItems), this.arrangeLabels2(this._leftItems))
                }, e.prototype.validateDataElement = function(e) {
                    if (this.pixelRadius > 0) {
                        this.ignoreZeroValues && 0 == e.value ? e.__disabled = !0 : e.__disabled = !1;
                        var i = e.slice;
                        if (i.radius = this.pixelRadius, h.isNumber(e.radiusValue) && (i.radius = this.pixelInnerRadius + (this.pixelRadius - this.pixelInnerRadius) * e.values.radiusValue.percent / this._maxRadiusPercent), i.innerRadius instanceof c.a || (i.innerRadius = this.pixelInnerRadius), i.startAngle = this._currentStartAngle, i.arc = Math.abs(e.values.value.percent) * (this.endAngle - this.startAngle) / 100, !this.labels.template.disabled) {
                            var n = e.label,
                                r = e.tick;
                            r.slice = i, r.label = n;
                            var a = (i.middleAngle + 360) % 360,
                                o = void 0;
                            if (this.alignLabels) {
                                var s = n.pixelRadius(i.radius),
                                    l = r.length + s;
                                n.dx = 0, n.dy = 0, n.verticalCenter = "middle";
                                var u = this._arcRect;
                                a > 270 || a <= 90 ? (l += (u.width + u.x) * this.pixelRadius, n.horizontalCenter = "left", this._rightItems.push(e)) : (l -= u.x * this.pixelRadius, n.horizontalCenter = "right", this._leftItems.push(e), l *= -1);
                                var p = i.radius + r.length + s;
                                o = {
                                    x: l,
                                    y: i.iy * p
                                }, n.moveTo(o)
                            } else {
                                var d = i.depth;
                                h.isNumber(d) || (d = 0), n.fixPosition(i.middleAngle, i.radius, i.radiusY, 0, -d)
                            }
                        }
                        this._currentStartAngle += i.arc, t.prototype.validateDataElement.call(this, e)
                    }
                }, Object.defineProperty(e.prototype, "radius", {
                    get: function() {
                        return this.getPropertyValue("radius")
                    },
                    set: function(t) {
                        this.setPercentProperty("radius", t, !0, !1, 10, !1) && this.invalidateDataItems()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelRadius", {
                    get: function() {
                        return this._pixelRadius
                    },
                    set: function(t) {
                        this._pixelRadius != t && (this._pixelRadius = t, this.invalidateDataItems())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelInnerRadius", {
                    get: function() {
                        return this._pixelInnerRadius
                    },
                    set: function(t) {
                        this._pixelInnerRadius != t && (this._pixelInnerRadius = t, this.invalidateDataItems())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "innerRadius", {
                    get: function() {
                        return this.getPropertyValue("innerRadius")
                    },
                    set: function(t) {
                        this.setPercentProperty("innerRadius", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startAngle", {
                    get: function() {
                        var t = this.getPropertyValue("startAngle");
                        return h.isNumber(t) ? t : this._startAngleInternal
                    },
                    set: function(t) {
                        this.setPropertyValue("startAngle", u.normalizeAngle(t), !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endAngle", {
                    get: function() {
                        var t = this.getPropertyValue("endAngle");
                        return h.isNumber(t) ? t : this._endAngleInternal
                    },
                    set: function(t) {
                        this.setPropertyValue("endAngle", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.positionBullet = function(e) {
                    t.prototype.positionBullet.call(this, e);
                    var i = e.dataItem.slice,
                        n = e.locationX;
                    h.isNumber(n) || (n = .5);
                    var r = e.locationY;
                    h.isNumber(r) || (r = 1);
                    var a = i.startAngle + i.arc * n;
                    e.x = r * i.radius * u.cos(a), e.y = r * i.radiusY * u.sin(a)
                }, e.prototype.handleSliceMove = function(t) {
                    if (!this.alignLabels) {
                        var e = t.target,
                            i = e.dataItem;
                        if (i) {
                            var n = i.label;
                            n && (n.dx = n.fdx + e.dx + e.pixelX, n.dy = n.fdy + e.dy + e.pixelY)
                        }
                    }
                }, Object.defineProperty(e.prototype, "bbox", {
                    get: function() {
                        if (this.definedBBox) return this.definedBBox;
                        var t = this.chart;
                        return t ? u.getArcRect(t.startAngle, t.endAngle, this.pixelRadius) : u.getArcRect(this.startAngle, this.endAngle, this.pixelRadius)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        l.c.registeredClasses.PieSeries = d, l.c.registeredClasses.PieSeriesDataItem = p
    },
    Q0ab: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("X/sl").map,
            a = i("ugpH"),
            o = i("J+FZ"),
            s = a("map"),
            l = o("map");
        n({
            target: "Array",
            proto: !0,
            forced: !s || !l
        }, {
            map: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    Q4nc: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return n
        });
        var n = {
            verbose: !0,
            commercialLicense: !1,
            classNamePrefix: "amcharts-",
            autoSetClassName: !1,
            minPolylineStep: .5,
            onlyShowOnViewport: !1,
            queue: !1,
            licenses: []
        }
    },
    QKtu: function(t, e, i) {
        var n = i("6aQQ");
        t.exports = !n(function() {
            function t() {}
            return t.prototype.constructor = null, Object.getPrototypeOf(new t) !== t.prototype
        })
    },
    QQDG: function(t, e, i) {
        var n = i("0sYB"),
            r = i("5SyC"),
            a = Math.cosh,
            o = Math.abs,
            s = Math.E;
        n({
            target: "Math",
            stat: !0,
            forced: !a || a(710) === 1 / 0
        }, {
            cosh: function(t) {
                var e = r(o(t) - 1) + 1;
                return (e + 1 / (e * s * s)) * (s / 2)
            }
        })
    },
    QgOz: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("tHyI"),
            a = i("oxAz"),
            o = i("7X7h"),
            s = i("6aQQ"),
            l = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("set", function(t) {
            l(this);
            var e = a(arguments.length > 1 ? arguments[1] : void 0, 1),
                i = this.length,
                n = o(t),
                s = r(n.length),
                u = 0;
            if (s + e > i) throw RangeError("Wrong length");
            for (; u < s;) this[e + u] = n[u++]
        }, s(function() {
            new Int8Array(1).set({})
        }))
    },
    Qj4T: function(t, e, i) {
        var n = i("0sYB"),
            r = i("5SyC"),
            a = Math.exp;
        n({
            target: "Math",
            stat: !0
        }, {
            tanh: function(t) {
                var e = r(t = +t),
                    i = r(-t);
                return e == 1 / 0 ? 1 : i == 1 / 0 ? -1 : (e - i) / (a(t) + a(-t))
            }
        })
    },
    Qkdp: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.entries = function(t) {
            return function(e) {
                for (var i in t)
                    if (s(t, i) && !e([i, t[i]])) break
            }
        }, e.keys = a, e.keysOrdered = o, e.hasKey = s, e.getKey = function(t, e) {
            return t[e]
        }, e.eachContinue = l, e.each = function(t, e) {
            l(t, function(t, i) {
                return e(t, i), !0
            })
        }, e.eachOrdered = function(t, e, i) {
            n.each(o(t, i), function(i) {
                e(i, t[i])
            })
        }, e.copy = function(t) {
            return Object.assign({}, t)
        }, e.merge = function(t, e) {
            return Object.assign({}, t, e)
        }, e.copyProperties = u, e.softCopyProperties = function(t, e, i) {
            n.each(i, function(i) {
                r.hasValue(t[i]) && !r.hasValue(e[i]) && (e[i] = t[i])
            })
        }, e.forceCopyProperties = function(t, e, i) {
            n.each(i, function(i) {
                e[i] = t[i]
            })
        }, e.copyAllProperties = function(t, e) {
            u(t, e, a(t))
        };
        var n = i("hJ5i"),
            r = i("Mtpk");

        function a(t) {
            var e = [];
            for (var i in t) s(t, i) && e.push(i);
            return e
        }

        function o(t, e) {
            return a(t).sort(e)
        }

        function s(t, e) {
            return {}.hasOwnProperty.call(t, e)
        }

        function l(t, e) {
            for (var i in t)
                if (s(t, i) && !e(i, t[i])) break
        }

        function u(t, e, i) {
            n.each(i, function(i) {
                r.hasValue(t[i]) && (e[i] = t[i])
            })
        }
    },
    "QwL+": function(t, e, i) {
        var n = i("0sYB"),
            r = i("vRI3"),
            a = Math.acosh,
            o = Math.log,
            s = Math.sqrt,
            l = Math.LN2;
        n({
            target: "Math",
            stat: !0,
            forced: !a || 710 != Math.floor(a(Number.MAX_VALUE)) || a(1 / 0) != 1 / 0
        }, {
            acosh: function(t) {
                return (t = +t) < 1 ? NaN : t > 94906265.62425156 ? o(t) + l : r(t - 1 + s(t - 1) * s(t + 1))
            }
        })
    },
    QzDi: function(t, e, i) {
        var n, r = i("3weC"),
            a = i("Mdrz"),
            o = i("XhXf"),
            s = i("lt6Q"),
            l = i("fGTV"),
            u = i("BAfC"),
            h = i("fYap")("IE_PROTO"),
            c = function() {},
            p = function(t) {
                return "<script>" + t + "<\/script>"
            },
            d = function() {
                try {
                    n = document.domain && new ActiveXObject("htmlfile")
                } catch (t) {}
                d = n ? function(t) {
                    t.write(p("")), t.close();
                    var e = t.parentWindow.Object;
                    return t = null, e
                }(n) : function() {
                    var t, e = u("iframe");
                    return e.style.display = "none", l.appendChild(e), e.src = String("javascript:"), (t = e.contentWindow.document).open(), t.write(p("document.F=Object")), t.close(), t.F
                }();
                for (var t = o.length; t--;) delete d.prototype[o[t]];
                return d()
            };
        s[h] = !0, t.exports = Object.create || function(t, e) {
            var i;
            return null !== t ? (c.prototype = r(t), i = new c, c.prototype = null, i[h] = t) : i = d(), void 0 === e ? i : a(i, e)
        }
    },
    R3j0: function(t, e, i) {
        i("6WsA")("hasInstance")
    },
    R6wv: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("oC3T"),
            o = i("aCit"),
            s = i("hGwe"),
            l = i("Mtpk"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Polygon", e.element = e.paper.add("path"), e.shapeRendering = "auto", e._currentPoints = [], e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "points", {
                    get: function() {
                        var t = this.getPropertyValue("points"),
                            e = this.path;
                        if (e && (!t || 0 == t.length)) {
                            for (var i = e.slice(1, e.length - 1).split("ZM"), n = 0; n < i.length; n++) {
                                var r = i[n];
                                if (r.length > 0) {
                                    var a = r.split("M"),
                                        o = a[0],
                                        s = a[1];
                                    if (o && o.length > 0) {
                                        var l = o.split("L");
                                        if (l.length > 0) {
                                            var u = [],
                                                h = [u];
                                            t.push(h);
                                            for (var c = 0; c < l.length; c++) {
                                                var p = l[c].split(",");
                                                u.push({
                                                    x: +p[0],
                                                    y: +p[1]
                                                })
                                            }
                                            if (s && s.length > 0) {
                                                var d = s.split("L");
                                                if (d.length > 0) {
                                                    var f = [];
                                                    h.push(f);
                                                    for (c = d.length - 1; c >= 0; c--) {
                                                        p = d[c].split(",");
                                                        f.push({
                                                            x: +p[0],
                                                            y: +p[1]
                                                        })
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            this.setPropertyValue("points", t), this._currentPoints = t
                        }
                        return t
                    },
                    set: function(t) {
                        this.setPropertyValue("points", t, !0), this._currentPoints = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "currentPoints", {
                    get: function() {
                        return this._currentPoints && 0 != this._currentPoints.length || !this.path || (this._currentPoints = this.points), this._currentPoints
                    },
                    set: function(t) {
                        this._currentPoints != t && (this._currentPoints = t, this.draw())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.draw = function() {
                    var e, i, n, r, a = "",
                        o = this._currentPoints;
                    if (o.length > 0) {
                        for (var u = 0, h = o.length; u < h; u++) {
                            var c = o[u][0],
                                p = o[u][1];
                            if (c && c.length > 0) {
                                var d = c[0];
                                a += s.moveTo(d);
                                for (var f = 0; f < c.length; f++) d = c[f], a += s.lineTo(d), (!l.isNumber(i) || i < d.x) && (i = d.x), (!l.isNumber(e) || e > d.x) && (e = d.x), (!l.isNumber(n) || n > d.y) && (n = d.y), (!l.isNumber(r) || r < d.y) && (r = d.y)
                            }
                            if (p && p.length > 0) {
                                d = p[0];
                                a += s.moveTo(d);
                                for (var g = 0, y = p.length; g < y; g++) d = p[g], a += s.lineTo(d)
                            }
                        }
                        a && (a += s.closePath()), this.bbox.x = e, this.bbox.y = n, this.bbox.width = i - e, this.bbox.height = r - n, t.prototype.setPath.call(this, a)
                    }
                }, e.prototype.setPath = function(e) {
                    return !!t.prototype.setPath.call(this, e) && (this.points = [], this._bbox = this.group.getBBox(), !0)
                }, e.prototype.measureElement = function() {}, Object.defineProperty(e.prototype, "centerPoint", {
                    get: function() {
                        return {
                            x: this.bbox.x + this.bbox.width / 2,
                            y: this.bbox.y + this.bbox.height / 2
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "morpher", {
                    get: function() {
                        return this._morpher || (this._morpher = new a.a(this), this._disposers.push(this._morpher)), this._morpher
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        o.c.registeredClasses.Polygon = u
    },
    RBX2: function(t, e, i) {
        "use strict";
        i("0sYB")({
            target: "URL",
            proto: !0,
            enumerable: !0
        }, {
            toJSON: function() {
                return URL.prototype.toString.call(this)
            }
        })
    },
    "RIy+": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("jnLg").start,
            a = i("rCh7")("trimStart"),
            o = a ? function() {
                return r(this)
            } : "".trimStart;
        n({
            target: "String",
            proto: !0,
            forced: a
        }, {
            trimStart: o,
            trimLeft: o
        })
    },
    RjhM: function(t, e, i) {
        var n = i("1wCr");
        t.exports = n("navigator", "userAgent") || ""
    },
    RlUG: function(t, e, i) {
        "use strict";
        var n = i("HMf+"),
            r = i("JZFm");
        t.exports = n("Map", function(t) {
            return function() {
                return t(this, arguments.length ? arguments[0] : void 0)
            }
        }, r)
    },
    Rnbi: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("aCit"),
            o = i("hGwe"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Triangle", e.element = e.paper.add("path"), e.direction = "top", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e, i = this.pixelWidth,
                        n = this.pixelHeight;
                    switch (this.direction) {
                        case "right":
                            e = o.moveTo({
                                x: 0,
                                y: 0
                            }) + o.lineTo({
                                x: i,
                                y: n / 2
                            }) + o.lineTo({
                                x: 0,
                                y: n
                            }) + o.closePath();
                            break;
                        case "left":
                            e = o.moveTo({
                                x: i,
                                y: 0
                            }) + o.lineTo({
                                x: 0,
                                y: n / 2
                            }) + o.lineTo({
                                x: i,
                                y: n
                            }) + o.closePath();
                            break;
                        case "bottom":
                            e = o.moveTo({
                                x: 0,
                                y: 0
                            }) + o.lineTo({
                                x: i,
                                y: 0
                            }) + o.lineTo({
                                x: i / 2,
                                y: n
                            }) + o.closePath();
                            break;
                        case "top":
                            e = o.moveTo({
                                x: i / 2,
                                y: 0
                            }) + o.lineTo({
                                x: i,
                                y: n
                            }) + o.lineTo({
                                x: 0,
                                y: n
                            }) + o.closePath()
                    }
                    this.path = e
                }, Object.defineProperty(e.prototype, "direction", {
                    get: function() {
                        return this.getPropertyValue("direction")
                    },
                    set: function(t) {
                        this.setPropertyValue("direction", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.Triangle = s
    },
    Rpw0: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        }), i.d(e, "b", function() {
            return h
        });
        var n = i("aCit"),
            r = i("C6dT"),
            a = i("/9XX"),
            o = i("hJ5i"),
            s = i("Qkdp"),
            l = i("pjXm"),
            u = function() {
                function t() {
                    this._isPaused = !1, this.animations = [], this.uid = n.c.getUniqueId(), this.dummyCounter = 0, this._frameRequested = !1, this.updateStepDuration = 45, this.time = Date.now()
                }
                return t.prototype.reportTime = function(t, e) {
                    this.dummyCounter, e && (this.time = Date.now())
                }, t.prototype.update = function() {
                    var t = this;
                    if (!this._isPaused) {
                        this._frameRequested = !1;
                        var e = Date.now();
                        n.c.dispatchImmediately("enterframe");
                        for (var i in n.c.invalidDatas)
                            if (s.hasKey(n.c.invalidDatas, i)) {
                                for (var r = n.c.invalidDatas[i]; r.length > 0;) {
                                    var l = (u = r[0]).dataProvider;
                                    if (u.isDisposed()) o.remove(r, u);
                                    else if (l && l.dataInvalid) try {
                                        if (l.validateData(), l.dataValidationProgress < 1) break
                                    } catch (t) {
                                        o.remove(r, l), l.raiseCriticalError(t)
                                    } else try {
                                        if (u.validateData(), u.dataValidationProgress < 1) break
                                    } catch (t) {
                                        o.remove(r, u), u.raiseCriticalError(t)
                                    }
                                }
                                if (Date.now() - e > this.updateStepDuration) break
                            } for (; n.c.invalidRawDatas.length > 0;) {
                            if ((u = n.c.invalidRawDatas[0]).isDisposed()) o.remove(n.c.invalidRawDatas, u);
                            else try {
                                u.validateRawData()
                            } catch (t) {
                                o.remove(n.c.invalidRawDatas, u), u.raiseCriticalError(t)
                            }
                        }
                        for (; n.c.invalidDataItems.length > 0;) {
                            l = (u = n.c.invalidDataItems[0]).dataProvider;
                            if (u.isDisposed() || u.dataInvalid || l && l.dataInvalid);
                            else try {
                                u.validateDataItems()
                            } catch (t) {
                                o.remove(n.c.invalidDataItems, u), u.raiseCriticalError(t)
                            }
                            o.remove(n.c.invalidDataItems, u)
                        }
                        for (; n.c.invalidDataRange.length > 0;) {
                            var u;
                            l = (u = n.c.invalidDataRange[0]).dataProvider;
                            if (u.isDisposed() || u.dataInvalid || l && l.dataInvalid);
                            else try {
                                u.validateDataRange(), u.skipRangeEvent || u.dispatchImmediately("datarangechanged"), u.skipRangeEvent = !1
                            } catch (t) {
                                o.remove(n.c.invalidDataRange, u), u.raiseCriticalError(t)
                            }
                            o.remove(n.c.invalidDataRange, u)
                        }
                        var h = [];
                        s.each(n.c.invalidLayouts, function(e) {
                            t.validateLayouts(e)
                        }), s.each(n.c.invalidPositions, function(e) {
                            t.validatePositions(e)
                        });
                        var c = !1;
                        if (e = Date.now(), s.each(n.c.invalidSprites, function(i, r) {
                                for (var a = 0; r.length > 0;) {
                                    if (t.validateLayouts(i), t.validatePositions(i), 5 == ++a) {
                                        if (Date.now() - e > t.updateStepDuration) break;
                                        a = 0
                                    }
                                    var s = r[r.length - 1];
                                    if (s && !s.isDisposed()) {
                                        if (s._systemCheckIfValidate())
                                            if (t.checkIfValidate2(s)) try {
                                                s._systemUpdate(h)
                                            } catch (t) {
                                                s.invalid = !1, o.remove(r, s), s.raiseCriticalError(t)
                                            } else h.push(s);
                                            else h.push(s);
                                        s.invalid = !1
                                    }
                                    o.remove(r, s)
                                }
                                n.c.invalidSprites[i] = n.c.invalidSprites[i].concat(h)
                            }), s.each(n.c.invalidSprites, function(t, e) {
                                e.length > 0 && (c = !0)
                            }), s.each(n.c.invalidDatas, function(t, e) {
                                e.length > 0 && (c = !0)
                            }), o.each(o.copy(this.animations), function(t) {
                                t.update()
                            }), s.each(n.c.invalidLayouts, function(e) {
                                t.validateLayouts(e)
                            }), s.each(n.c.invalidPositions, function(e) {
                                t.validatePositions(e)
                            }), Object(a.d)(), s.each(n.c.invalidLayouts, function(e) {
                                t.validateLayouts(e)
                            }), s.each(n.c.invalidPositions, function(e) {
                                t.validatePositions(e)
                            }), n.c.dispatchImmediately("exitframe"), (c || this.animations.length > 0 || [].length > 0) && this.requestFrame(), this.updateStepDuration < 200) {
                            var p = !0;
                            s.each(n.c.invalidDatas, function(t, e) {
                                e.length > 0 && (p = !1)
                            }), s.each(n.c.invalidSprites, function(t, e) {
                                e.length > 0 && (p = !1)
                            }), p && (this.updateStepDuration = 200)
                        }
                    }
                }, t.prototype.checkIfValidate2 = function(t) {
                    return !(t.dataItem && t.dataItem.component && t.dataItem.component.dataInvalid && !t.dataItem.component.isTemplate)
                }, t.prototype.requestFrame = function() {
                    var t = this;
                    this._frameRequested || (Object(a.b)(function() {
                        t.update()
                    }), this._frameRequested = !0)
                }, t.prototype.softInvalidate = function(t) {
                    var e = this;
                    t.children.each(function(t) {
                        t instanceof r.a && e.softInvalidate(t), t.measureFailed && (Object(n.b)(t, "Label") ? t.hardInvalidate() : t.invalidate(), t.measureFailed = !1)
                    })
                }, t.prototype.validatePositions = function(t) {
                    for (var e = n.c.invalidPositions[t]; e.length > 0;) {
                        var i = e[e.length - 1];
                        if (i.isDisposed()) o.remove(e, i);
                        else try {
                            i._systemValidatePositions()
                        } catch (t) {
                            i.positionInvalid = !1, o.remove(e, i), i.raiseCriticalError(t)
                        }
                    }
                }, t.prototype.validateLayouts = function(t) {
                    for (var e = n.c.invalidLayouts[t]; e.length > 0;) {
                        var i = e[e.length - 1];
                        if (i.isDisposed()) o.remove(e, i);
                        else try {
                            i.children.each(function(t) {
                                t._systemValidateLayouts()
                            }), i.validateLayout()
                        } catch (t) {
                            i.layoutInvalid = !1, o.remove(e, i), i.raiseCriticalError(t)
                        }
                    }
                }, t.prototype.log = function(t) {
                    l.a(t)
                }, Object.defineProperty(t.prototype, "isPaused", {
                    get: function() {
                        return this._isPaused
                    },
                    set: function(t) {
                        this._isPaused = t, t || (this._frameRequested = !1, this.requestFrame())
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.VERSION = "4.9.1", t
            }(),
            h = new u
    },
    Rs0P: function(t, e, i) {
        var n = i("Kg2n"),
            r = i("o3G/"),
            a = i("KslR")("species");
        t.exports = function(t, e) {
            var i;
            return r(t) && ("function" != typeof(i = t.constructor) || i !== Array && !r(i.prototype) ? n(i) && null === (i = i[a]) && (i = void 0) : i = void 0), new(void 0 === i ? Array : i)(0 === e ? 0 : e)
        }
    },
    "S+7J": function(t, e, i) {
        var n = i("0sYB"),
            r = i("L4xm"),
            a = i("WShl");
        n({
            target: "Object",
            stat: !0
        }, {
            fromEntries: function(t) {
                var e = {};
                return r(t, function(t, i) {
                    a(e, t, i)
                }, void 0, !0), e
            }
        })
    },
    ScGY: function(t, e, i) {
        "use strict";
        i.d(e, "f", function() {
            return n
        }), i.d(e, "g", function() {
            return r
        }), i.d(e, "c", function() {
            return a
        }), i.d(e, "a", function() {
            return o
        }), i.d(e, "b", function() {
            return s
        }), i.d(e, "d", function() {
            return l
        }), i.d(e, "e", function() {
            return u
        });
        var n = "px",
            r = "string",
            a = "number",
            o = "date",
            s = "duration",
            l = "__Â§Â§Â§__",
            u = "__Â§Â§Â§Â§__"
    },
    ScUe: function(t, e, i) {
        "use strict";
        var n = i("exNg"),
            r = i("swFJ");
        t.exports = "".repeat || function(t) {
            var e = String(r(this)),
                i = "",
                a = n(t);
            if (a < 0 || a == 1 / 0) throw RangeError("Wrong number of repetitions");
            for (; a > 0;
                (a >>>= 1) && (e += e)) 1 & a && (i += e);
            return i
        }
    },
    SqFF: function(t, e, i) {
        var n, r, a, o = i("JAqT"),
            s = i("vfdp"),
            l = i("Kg2n"),
            u = i("k2B3"),
            h = i("JZRr"),
            c = i("fYap"),
            p = i("lt6Q"),
            d = s.WeakMap;
        if (o) {
            var f = new d,
                g = f.get,
                y = f.has,
                m = f.set;
            n = function(t, e) {
                return m.call(f, t, e), e
            }, r = function(t) {
                return g.call(f, t) || {}
            }, a = function(t) {
                return y.call(f, t)
            }
        } else {
            var v = c("state");
            p[v] = !0, n = function(t, e) {
                return u(t, v, e), e
            }, r = function(t) {
                return h(t, v) ? t[v] : {}
            }, a = function(t) {
                return h(t, v)
            }
        }
        t.exports = {
            set: n,
            get: r,
            has: a,
            enforce: function(t) {
                return a(t) ? r(t) : n(t, {})
            },
            getterFor: function(t) {
                return function(e) {
                    var i;
                    if (!l(e) || (i = r(e)).type !== t) throw TypeError("Incompatible receiver, " + t + " required");
                    return i
                }
            }
        }
    },
    "TDx+": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("p9TX"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "AxisLabel", e.isMeasured = !1, e.padding(10, 10, 10, 10), e.location = .5, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "location", {
                    get: function() {
                        return this.getPropertyValue("location")
                    },
                    set: function(t) {
                        this.setPropertyValue("location", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "inside", {
                    get: function() {
                        return this.getPropertyValue("inside")
                    },
                    set: function(t) {
                        this.setPropertyValue("inside", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setDisabled = function(e) {
                    var i = t.prototype.setDisabled.call(this, e);
                    return this.axis && this.axis.invalidateDataItems(), i
                }, e
            }(r.a);
        a.c.registeredClasses.AxisLabel = o
    },
    TGuK: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        }), i.d(e, "c", function() {
            return p
        }), i.d(e, "b", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("vMqJ"),
            o = i("x79X"),
            s = i("aCit"),
            l = i("Wglt"),
            u = i("hJ5i"),
            h = i("Mtpk"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._rules = new a.b, e._appliedRules = {}, e._appliedTargets = [], e._useDefault = !0, e.adapter = new o.a(e), e._enabled = !1, e._noStates = [], e.className = "Responsive", e.rules.events.on("inserted", e.checkRules, !0), e.rules.events.on("removed", e.checkRules, !0), e._disposers.push(e.rules.events), e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "component", {
                    get: function() {
                        return this._component
                    },
                    set: function(t) {
                        t != this._component && (this._sizeEventDisposer && this.removeDispose(this._sizeEventDisposer), this._component = t, this._sizeEventDisposer = h.getValue(this.component).events.on("sizechanged", this.checkRules, this), this._disposers.push(this._sizeEventDisposer), this.enabled = !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "enabled", {
                    get: function() {
                        return this.adapter.apply("enabled", this._enabled)
                    },
                    set: function(t) {
                        this._enabled != t && (this._enabled = t, this.applyRules())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "useDefault", {
                    get: function() {
                        return this.adapter.apply("useDefault", this._useDefault)
                    },
                    set: function(t) {
                        this._useDefault != t && (this._useDefault = t, this.applyRules())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "rules", {
                    get: function() {
                        return this.adapter.apply("rules", this._rules)
                    },
                    set: function(t) {
                        this._rules = t, this._enabled = !0, this.applyRules()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "defaultRules", {
                    get: function() {
                        return this.adapter.apply("defaultRules", p)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "allRules", {
                    get: function() {
                        var t = new a.b;
                        return this.useDefault && t.copyFrom(this.defaultRules), t.copyFrom(this.rules), this.adapter.apply("allRules", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.isApplied = function(t) {
                    var e = this._appliedRules[t];
                    return !!h.hasValue(e) && e
                }, e.prototype.checkRules = function() {
                    var t = this,
                        e = this.allRules;
                    if (e && 0 != e.length) {
                        var i = !1,
                            n = h.getValue(this.component);
                        if (l.each(e.iterator(), function(e) {
                                e.id || (e.id = s.c.getUniqueId());
                                var r = e.relevant(n);
                                (r && !t.isApplied(e.id) || !r && t.isApplied(e.id)) && (i = !0), t._appliedRules[e.id] = r
                            }), i) {
                            if (!this.component.isReady()) return n.hidden = !0, void n.events.once("ready", function(e) {
                                e.target.show(0), t.applyRules()
                            });
                            this.dispatchImmediately("ruleschanged"), this.applyRules()
                        }
                    }
                }, e.prototype.applyRules = function(t) {
                    var e = this,
                        i = h.hasValue(t) ? t : h.getValue(this.component),
                        n = !1;
                    if (this.enabled) {
                        var r = !1;
                        l.each(this.allRules.iterator(), function(t) {
                            var a = e.getState(t, i);
                            a && (n || (-1 !== u.indexOf(e._appliedTargets, i.uid) && i.applyCurrentState(0), n = !0), e.isApplied(h.getValue(t.id)) && (a.transitionDuration = 0, i.setState(a), e.dispatchImmediately("ruleapplied", {
                                rule: t
                            }), r = !0))
                        }), r ? u.replace(this._appliedTargets, i.uid) : u.remove(this._appliedTargets, i.uid)
                    }
                    i.children && l.each(i.children.iterator(), function(t) {
                        e.applyRules(t)
                    })
                }, e.prototype.getState = function(t, e) {
                    var i = "responsive-" + t.id,
                        n = e.uid + "_" + i;
                    if (-1 === u.indexOf(this._noStates, n)) {
                        if (e.states.hasKey(i)) return e.states.getKey(i);
                        var r = t.state(e, i);
                        return r || this._noStates.push(n), r
                    }
                }, e.prototype.getValue = function(t, e) {
                    var i = t.getPropertyValue(e);
                    return !h.hasValue(i) && h.hasValue(t[e]) && (i = t[e]), i
                }, e
            }(r.b),
            p = new a.b;
        p.events.on("inserted", function(t) {
            t.newValue.id = s.c.getUniqueId()
        });
        var d = function() {
            function t() {}
            return t.widthXXS = function(e) {
                return e.pixelWidth <= t.XXS
            }, t.widthXS = function(e) {
                return e.pixelWidth <= t.XS
            }, t.widthS = function(e) {
                return e.pixelWidth <= t.S
            }, t.widthM = function(e) {
                return e.pixelWidth <= t.M
            }, t.widthL = function(e) {
                return e.pixelWidth <= t.L
            }, t.widthXL = function(e) {
                return e.pixelWidth <= t.XL
            }, t.widthXXL = function(e) {
                return e.pixelWidth <= t.XXL
            }, t.heightXXS = function(e) {
                return e.pixelHeight <= t.XXS
            }, t.heightXS = function(e) {
                return e.pixelHeight <= t.XS
            }, t.heightS = function(e) {
                return e.pixelHeight <= t.S
            }, t.heightM = function(e) {
                return e.pixelHeight <= t.M
            }, t.heightL = function(e) {
                return e.pixelHeight <= t.L
            }, t.heightXL = function(e) {
                return e.pixelHeight <= t.XL
            }, t.heightXXL = function(e) {
                return e.pixelHeight <= t.XXL
            }, t.isXXS = function(e) {
                return e.pixelWidth <= t.XXS && e.pixelHeight <= t.XXS
            }, t.isXS = function(e) {
                return e.pixelWidth <= t.XS && e.pixelHeight <= t.XS
            }, t.isS = function(e) {
                return e.pixelWidth <= t.S && e.pixelHeight <= t.S
            }, t.isM = function(e) {
                return e.pixelWidth <= t.M && e.pixelHeight <= t.M
            }, t.isL = function(e) {
                return e.pixelWidth <= t.L && e.pixelHeight <= t.L
            }, t.isXL = function(e) {
                return e.pixelWidth <= t.XL && e.pixelHeight <= t.XL
            }, t.isXXL = function(e) {
                return e.pixelWidth <= t.XXL && e.pixelHeight <= t.XXL
            }, t.maybeXXS = function(e) {
                return e.pixelWidth <= t.XXS || e.pixelHeight <= t.XXS
            }, t.maybeXS = function(e) {
                return e.pixelWidth <= t.XS || e.pixelHeight <= t.XS
            }, t.maybeS = function(e) {
                return e.pixelWidth <= t.S || e.pixelHeight <= t.S
            }, t.maybeM = function(e) {
                return e.pixelWidth <= t.M || e.pixelHeight <= t.M
            }, t.maybeL = function(e) {
                return e.pixelWidth <= t.L || e.pixelHeight <= t.L
            }, t.maybeXL = function(e) {
                return e.pixelWidth <= t.XL || e.pixelHeight <= t.XL
            }, t.maybeXXL = function(e) {
                return e.pixelWidth <= t.XXL || e.pixelHeight <= t.XXL
            }, t.XXS = 100, t.XS = 200, t.S = 300, t.M = 400, t.L = 600, t.XL = 800, t.XXL = 1e3, t
        }()
    },
    TIsG: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("Y8n3"),
            a = i("exNg"),
            o = i("tHyI"),
            s = i("7X7h"),
            l = i("Rs0P"),
            u = i("WShl"),
            h = i("ugpH"),
            c = i("J+FZ"),
            p = h("splice"),
            d = c("splice", {
                ACCESSORS: !0,
                0: 0,
                1: 2
            }),
            f = Math.max,
            g = Math.min;
        n({
            target: "Array",
            proto: !0,
            forced: !p || !d
        }, {
            splice: function(t, e) {
                var i, n, h, c, p, d, y = s(this),
                    m = o(y.length),
                    v = r(t, m),
                    b = arguments.length;
                if (0 === b ? i = n = 0 : 1 === b ? (i = 0, n = m - v) : (i = b - 2, n = g(f(a(e), 0), m - v)), m + i - n > 9007199254740991) throw TypeError("Maximum allowed length exceeded");
                for (h = l(y, n), c = 0; c < n; c++)(p = v + c) in y && u(h, c, y[p]);
                if (h.length = n, i < n) {
                    for (c = v; c < m - n; c++) d = c + i, (p = c + n) in y ? y[d] = y[p] : delete y[d];
                    for (c = m; c > m - n + i; c--) delete y[c - 1]
                } else if (i > n)
                    for (c = m - n; c > v; c--) d = c + i - 1, (p = c + n - 1) in y ? y[d] = y[p] : delete y[d];
                for (c = 0; c < i; c++) y[c + v] = arguments[c + 2];
                return y.length = m - n + i, h
            }
        })
    },
    TM0y: function(t, e, i) {
        var n = i("vfdp");
        i("NRfM")(n.JSON, "JSON", !0)
    },
    TQpL: function(t, e, i) {
        "use strict";
        var n = i("HnbP");
        t.exports.f = function(t) {
            return new function(t) {
                var e, i;
                this.promise = new t(function(t, n) {
                    if (void 0 !== e || void 0 !== i) throw TypeError("Bad Promise constructor");
                    e = t, i = n
                }), this.resolve = n(e), this.reject = n(i)
            }(t)
        }
    },
    TXRX: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("aCit"),
            o = i("TGuK"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Bullet", e.isMeasured = !1, e.tooltipX = 0, e.tooltipY = 0, e.layout = "none", e.applyOnClones = !0, e.copyToLegendMarker = !0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "locationX", {
                    get: function() {
                        return this.getPropertyValue("locationX")
                    },
                    set: function(t) {
                        if (this.setPropertyValue("locationX", t)) {
                            var e = this.dataItem;
                            e && e.component && e.component.invalidate()
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "locationY", {
                    get: function() {
                        return this.getPropertyValue("locationY")
                    },
                    set: function(t) {
                        if (this.setPropertyValue("locationY", t)) {
                            var e = this.dataItem;
                            e && e.component && e.component.invalidate()
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "xField", {
                    get: function() {
                        return this.getPropertyValue("xField")
                    },
                    set: function(t) {
                        this.setPropertyValue("xField", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "yField", {
                    get: function() {
                        return this.getPropertyValue("yField")
                    },
                    set: function(t) {
                        this.setPropertyValue("yField", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isDynamic", {
                    get: function() {
                        return this.getPropertyValue("isDynamic")
                    },
                    set: function(t) {
                        this.setPropertyValue("isDynamic", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "copyToLegendMarker", {
                    get: function() {
                        return this.getPropertyValue("copyToLegendMarker")
                    },
                    set: function(t) {
                        this.setPropertyValue("copyToLegendMarker", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.Bullet = s, o.c.push({
            relevant: o.b.isXS,
            state: function(t, e) {
                if (t instanceof s) {
                    var i = t.states.create(e);
                    return i.properties.disabled = !0, i
                }
                return null
            }
        })
    },
    TZWN: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("ZLF9"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.properties.radius = 2, e._circle = e.paper.add("circle"), e.addElement(e._circle), e.shapeRendering = "auto", e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this), this._circle && this._circle.attr({
                        r: this.radius,
                        cx: this.width / 2,
                        cy: this.height / 2
                    })
                }, Object.defineProperty(e.prototype, "radius", {
                    get: function() {
                        return this.properties.radius
                    },
                    set: function(t) {
                        this.properties.radius = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.CirclePattern = o
    },
    "Tjl+": function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return m
        }), i.d(e, "b", function() {
            return v
        });
        var n = i("m4/l"),
            r = i("vMqJ"),
            a = i("VGgz"),
            o = i("+qIf"),
            s = i("hD5A"),
            l = i("o0Lc"),
            u = i("x79X"),
            h = i("8ZqG"),
            c = i("tjMS"),
            p = i("aCit"),
            d = i("eCqC"),
            f = i("hJ5i"),
            g = i("Qkdp"),
            y = i("Mtpk"),
            m = function() {
                function t() {
                    this._disposed = !1, this._disposers = [], this.className = "BaseObject"
                }
                return t.prototype.debug = function() {}, Object.defineProperty(t.prototype, "uid", {
                    get: function() {
                        return this._uid || (this._uid = p.c.getUniqueId(), p.c.map.setKey(this._uid, this)), this._uid
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "id", {
                    get: function() {
                        return this._id
                    },
                    set: function(t) {
                        this._id = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "map", {
                    get: function() {
                        return this._map || (this._map = new o.a), this._map
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "delayedMap", {
                    get: function() {
                        return this._delayedMap || (this._delayedMap = new o.a), this._delayedMap
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.addDelayedMap = function(t, e) {
                    var i = this.delayedMap;
                    i.hasKey(e) || i.setKey(e, []), i.getKey(e).push({
                        property: t,
                        target: this
                    })
                }, t.prototype.processDelayedMap = function() {
                    var t = this;
                    this.delayedMap.each(function(e, i) {
                        if (t.map.hasKey(e)) {
                            var n = t.map.getKey(e);
                            f.each(i, function(t) {
                                t.target[t.property] = n
                            }), t.delayedMap.removeKey(e)
                        }
                    })
                }, t.prototype.applyTheme = function() {
                    var t = this;
                    if (p.c) {
                        var e = this.getCurrentThemes();
                        e && f.each(e, function(e, i) {
                            e(t)
                        })
                    }
                }, Object.defineProperty(t.prototype, "themes", {
                    get: function() {
                        return this._themes
                    },
                    set: function(t) {
                        this._themes = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.getCurrentThemes = function() {
                    return this.themes || p.c.themes
                }, t.prototype.isDisposed = function() {
                    return this._disposed
                }, t.prototype.dispose = function() {
                    if (!this._disposed) {
                        this._disposed = !0;
                        var t = this._disposers;
                        for (this._disposers = null; 0 !== t.length;) {
                            t.shift().dispose()
                        }
                        this.clearCache(), this.clonedFrom && this.clonedFrom.clones.removeValue(this);
                        var e = this._uid;
                        null != e && p.c.map.removeKey(e)
                    }
                }, t.prototype.addDisposer = function(t) {
                    this._disposers.push(t)
                }, t.prototype.removeDispose = function(t) {
                    if (!this._disposed) {
                        var e = f.indexOf(this._disposers, t);
                        e > -1 && this._disposers.splice(e, 1)
                    }
                    t.dispose()
                }, t.prototype.clone = function(t) {
                    t || (t = "clone-" + p.c.getUniqueId());
                    var e = new this.constructor;
                    return e.cloneId = t, e.copyFrom(this), e
                }, Object.defineProperty(t.prototype, "clones", {
                    get: function() {
                        return this._clones || (this._clones = new r.b), this._clones
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.copyFrom = function(t) {
                    t.clones.push(this), this.clonedFrom = t
                }, Object.defineProperty(t.prototype, "className", {
                    get: function() {
                        return this._className
                    },
                    set: function(t) {
                        this._className = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.setCache = function(t, e, i) {
                    d.b.set(this.uid, t, e, i)
                }, t.prototype.getCache = function(t, e) {
                    return void 0 === e && (e = void 0), d.b.get(this.uid, t, e)
                }, t.prototype.clearCache = function() {
                    d.b.clear(this.uid)
                }, t.prototype.setTimeout = function(t, e) {
                    var i = this,
                        n = setTimeout(function() {
                            i.removeDispose(r), t()
                        }, e),
                        r = new s.b(function() {
                            clearTimeout(n)
                        });
                    return this._disposers.push(r), r
                }, t.prototype.setInterval = function(t, e) {
                    var i = this,
                        n = setInterval(function() {
                            i.removeDispose(r), t()
                        }, e),
                        r = new s.b(function() {
                            clearTimeout(n)
                        });
                    return this._disposers.push(r), r
                }, Object.defineProperty(t.prototype, "config", {
                    set: function(t) {
                        try {
                            this.processConfig(t)
                        } catch (t) {
                            this.raiseCriticalError(t)
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.processConfig = function(e) {
                    var i = this;
                    if (e) {
                        var n = this;
                        if (g.eachOrdered(e, function(e, s) {
                                var d, f = s;
                                if ("callback" == e && "function" == typeof s && s.call(n), i.hasProperty(e))
                                    if (!y.isObject(f) || !y.hasValue(f.type) || y.isObject(n[e]) && y.hasValue(n[e].className) && !f.forceCreate && n[e].className == f.type || i.asIs(e) ? d = n[e] : (d = i.createClassInstance(f.type)) ? n[e] = d : d = n[e], d instanceof u.a) i.processAdapters(d, f);
                                    else if (d instanceof l.a) i.processEvents(d, f);
                                else if ("locale" == e && y.isString(f)) document["am4lang_" + f] && (n[e] = document["am4lang_" + f]);
                                else if ("parent" == e && y.isString(f)) {
                                    var m = i.map.getKey(f);
                                    m ? n[e] = m : i.addDelayedMap("parent", f)
                                } else if (i.asIs(e)) n[e] = f;
                                else if (i.asFunction(e) && y.isString(f)) {
                                    if (!y.hasValue(p.c.registeredClasses[f])) throw Error("Invalid easing function: " + f);
                                    n[e] = p.c.registeredClasses[f]
                                } else if (f instanceof t) n[e] = f;
                                else if (d instanceof t) d.config = f;
                                else if (d instanceof r.e || d instanceof a.b || d instanceof a.d) {
                                    if (y.isArray(f)) d instanceof r.e ? i.processListTemplate(f, d) : i.processOrderedTemplate(f, d);
                                    else if (y.isObject(f))
                                        if (f instanceof t) d.template = f;
                                        else {
                                            var v = void 0;
                                            v = y.hasValue(f.template) ? f.template : f, d.template instanceof t ? d.template.config = v : g.each(v, function(e, n) {
                                                var a = d.template[e];
                                                a instanceof u.a ? i.processAdapters(a, n) : a instanceof l.a ? i.processEvents(a, n) : a instanceof o.c ? i.processDictionaryTemplate(a, n) : d.template[e] instanceof t ? d.template[e].config = n : y.isObject(n) && y.hasValue(n.type) ? (a = i.createClassInstance(n.type)) ? (a instanceof t && (a.config = n), d.template[e] = a) : d.template[e] = n : a instanceof r.b ? i.processList(n, a) : d.template[e] = i.maybeColorOrPercent(n)
                                            }), y.hasValue(f.values) && (d instanceof r.e ? i.processListTemplate(f.values, d) : i.processOrderedTemplate(f.values, d))
                                        }
                                } else d instanceof r.b ? "children" == e ? i.processList(f, d, i) : i.processList(f, d) : d instanceof o.c ? i.processDictionaryTemplate(d, f) : d instanceof o.a ? i.processDictionary(d, f) : d instanceof h.a || d instanceof c.a ? n[e] = i.maybeColorOrPercent(f) : y.isObject(d) && y.isObject(f) ? g.copyAllProperties(f, d) : (f = i.maybeColorOrPercent(f), n[e] = f);
                                else i.isReserved(e) || (n[e] = f)
                            }, this.configOrder), this.processingErrors.length) {
                            var s = this.processingErrors.join("\n");
                            throw this._processingErrors = [], Error(s)
                        }
                    }
                }, t.prototype.maybeColorOrPercent = function(t) {
                    if (y.isString(t)) {
                        if (t.match(/^[\-]?[0-9.]+\%$/)) return Object(c.c)(y.toNumber(t));
                        if (t.match(/^\#[0-9abcdef]{3,}$/i)) return Object(h.c)(t)
                    }
                    return t
                }, t.prototype.processAdapters = function(t, e) {
                    var i = this;
                    y.isArray(e) ? f.each(e, function(e, n) {
                        t.add(e.key, e.callback, e.priority || 0, i)
                    }) : y.isObject(e) && g.each(e, function(e, i) {
                        t.has(e, i) || t.add(e, i)
                    })
                }, t.prototype.processEvents = function(t, e) {
                    var i = this;
                    y.isObject(e) ? g.each(e, function(e, i) {
                        t.has(e, i) || t.on(e, i)
                    }) : y.isArray(e) && f.each(e, function(e, n) {
                        t.on(e.type, e.callback, i)
                    })
                }, t.prototype.processDictionaryTemplate = function(e, i) {
                    y.isObject(i) && g.each(i, function(i, n) {
                        var r;
                        (r = "template" == i ? e.template : e.hasKey(i) ? e.getKey(i) : e.create(i)) instanceof t ? r.config = n : y.isObject(r) && y.isObject(n) ? g.copyAllProperties(n, r) : r.setKey(i, n)
                    })
                }, t.prototype.processDictionary = function(t, e) {
                    y.isObject(e) && g.each(e, function(e, i) {
                        t.setKey(e, i)
                    })
                }, t.prototype.processListTemplate = function(e, i) {
                    var n = this;
                    for (f.each(e, function(e, r) {
                            var a, o = n.getConfigEntryType(e);
                            if (i.hasIndex(r) && !e.forceCreate) a = i.getIndex(r);
                            else {
                                if (e instanceof t) return void i.push(e);
                                a = o ? i.create(o) : i.create()
                            }
                            e === a || y.isObject(e) && (a instanceof t ? a.config = e : y.isObject(a) && y.isObject(e) ? g.copyAllProperties(e, a) : i.setIndex(i.indexOf(a), e))
                        }); e.length > i.length;) i.pop()
                }, t.prototype.processOrderedTemplate = function(e, i) {
                    var n = this;
                    f.each(e, function(e, r) {
                        var a, o = n.getConfigEntryType(e);
                        a = o ? i.create(o) : i.create(), y.isObject(e) && (a instanceof t ? a.config = e : y.isObject(a) && y.isObject(e) ? g.copyAllProperties(e, a) : i.insert(e))
                    })
                }, t.prototype.processList = function(e, i, n) {
                    var r = this;
                    y.isArray(e) || (e = [e]);
                    var a = i.length;
                    for (f.each(e, function(e, o) {
                            if (y.isObject(e)) {
                                var s = void 0;
                                if (o < a && !e.forceCreate) s = i.getIndex(o);
                                else {
                                    if (e instanceof t) return void i.push(e);
                                    s = r.createEntryInstance(e), n ? s.parent = n : i.push(s)
                                }
                                s instanceof t ? s.config = e : y.isObject(s) && y.isObject(e) && g.copyAllProperties(e, s)
                            } else i.hasIndex(o) ? i.setIndex(o, e) : i.push(e)
                        }); e.length > i.length;) i.pop()
                }, t.prototype.configOrder = function(t, e) {
                    return t == e ? 0 : "language" == t ? -1 : "language" == e ? 1 : 0
                }, t.prototype.asIs = function(t) {
                    return -1 != f.indexOf(["locale"], t)
                }, t.prototype.asFunction = function(t) {
                    return !1
                }, t.prototype.createClassInstance = function(t) {
                    if (y.hasValue(p.c.registeredClasses[t])) return new p.c.registeredClasses[t];
                    throw Error('Invalid type: "' + t + '".')
                }, t.prototype.createEntryInstance = function(t) {
                    var e;
                    return y.hasValue(t.type) && (e = this.createClassInstance(t.type)), e || t
                }, t.prototype.getConfigEntryType = function(t) {
                    if (y.hasValue(t.type)) {
                        if (y.hasValue(p.c.registeredClasses[t.type])) return p.c.registeredClasses[t.type];
                        throw Error('Invalid type: "' + t.type + '".')
                    }
                }, t.prototype.hasProperty = function(t) {
                    return t in this
                }, t.prototype.isReserved = function(t) {
                    return -1 !== ["type", "forceCreate"].indexOf(t)
                }, Object.defineProperty(t.prototype, "processingErrors", {
                    get: function() {
                        return this._processingErrors || (this._processingErrors = []), this._processingErrors
                    },
                    enumerable: !0,
                    configurable: !0
                }), t
            }(),
            v = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "BaseObjectEvents", e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "events", {
                    get: function() {
                        return this._eventDispatcher || (this._eventDispatcher = new l.a, this._disposers.push(this._eventDispatcher)), this._eventDispatcher
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.dispatch = function(t, e) {
                    this._eventDispatcher && this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatch(t, {
                        type: t,
                        target: this
                    })) : this.events.dispatch(t, {
                        type: t,
                        target: this
                    }))
                }, e.prototype.dispatchImmediately = function(t, e) {
                    this._eventDispatcher && this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatchImmediately(t, e)) : this.events.dispatchImmediately(t, {
                        type: t,
                        target: this
                    }))
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), e._eventDispatcher && this.events.copyFrom(e._eventDispatcher)
                }, e
            }(m)
    },
    Tl3C: function(t, e, i) {
        var n = i("lt6Q"),
            r = i("Kg2n"),
            a = i("JZRr"),
            o = i("8+rI").f,
            s = i("vfRf"),
            l = i("6EAy"),
            u = s("meta"),
            h = 0,
            c = Object.isExtensible || function() {
                return !0
            },
            p = function(t) {
                o(t, u, {
                    value: {
                        objectID: "O" + ++h,
                        weakData: {}
                    }
                })
            },
            d = t.exports = {
                REQUIRED: !1,
                fastKey: function(t, e) {
                    if (!r(t)) return "symbol" == typeof t ? t : ("string" == typeof t ? "S" : "P") + t;
                    if (!a(t, u)) {
                        if (!c(t)) return "F";
                        if (!e) return "E";
                        p(t)
                    }
                    return t[u].objectID
                },
                getWeakData: function(t, e) {
                    if (!a(t, u)) {
                        if (!c(t)) return !0;
                        if (!e) return !1;
                        p(t)
                    }
                    return t[u].weakData
                },
                onFreeze: function(t) {
                    return l && d.REQUIRED && c(t) && !a(t, u) && p(t), t
                }
            };
        n[u] = !0
    },
    TqDQ: function(t, e, i) {
        var n = i("3sMl"),
            r = i("mte+").UNSUPPORTED_Y,
            a = i("8+rI").f,
            o = i("SqFF").get,
            s = RegExp.prototype;
        n && r && a(RegExp.prototype, "sticky", {
            configurable: !0,
            get: function() {
                if (this !== s) {
                    if (this instanceof RegExp) return !!o(this).sticky;
                    throw TypeError("Incompatible receiver, RegExp required")
                }
            }
        })
    },
    Trvg: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("p9TX"),
            a = i("qCRI"),
            o = i("MIZb"),
            s = i("aCit"),
            l = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "TextLink", e.selectable = !0;
                    var i = new o.a;
                    return e.fill = i.getFor("primaryButton").brighten(.3), e.states.create("hover").properties.fill = i.getFor("primaryButtonHover").brighten(.3), e.states.create("down").properties.fill = i.getFor("primaryButtonDown").brighten(.3), e.cursorOverStyle = a.a.pointer, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e
            }(r.a);
        s.c.registeredClasses.TextLink = l
    },
    TskY: function(t, e, i) {
        i("0sYB")({
            target: "Function",
            proto: !0
        }, {
            bind: i("uKH8")
        })
    },
    "U+Re": function(t, e, i) {
        var n = i("3sMl"),
            r = i("8+rI"),
            a = i("/arR"),
            o = i("mte+").UNSUPPORTED_Y;
        n && ("g" != /./g.flags || o) && r.f(RegExp.prototype, "flags", {
            configurable: !0,
            get: a
        })
    },
    "Uf/F": function(t, e, i) {
        i("0sYB")({
            target: "Number",
            stat: !0
        }, {
            MAX_SAFE_INTEGER: 9007199254740991
        })
    },
    Uf57: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return _
        }), i.d(e, "a", function() {
            return P
        });
        var n = i("m4/l"),
            r = i("aM7D"),
            a = i("Vs7R"),
            o = i("pR7v"),
            s = i("+qIf"),
            l = i("hD5A"),
            u = i("0Mwj"),
            h = i("VB2N"),
            c = i("KknQ"),
            p = i("aCit"),
            d = i("Wglt"),
            f = i("Gg2j"),
            g = i("v9UT"),
            y = i("Mtpk"),
            m = i("L91H"),
            v = i("hJ5i"),
            b = i("Qkdp"),
            x = i("hGwe"),
            _ = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "XYSeriesDataItem", e.values.customValue = {}, e.values.valueX = {
                        stack: 0
                    }, e.values.valueY = {
                        stack: 0
                    }, e.values.openValueX = {}, e.values.openValueY = {}, e.values.dateX = {}, e.values.dateY = {}, e.values.openDateX = {}, e.values.openDateY = {}, e.setLocation("dateX", .5, 0), e.setLocation("dateY", .5, 0), e.setLocation("categoryX", .5, 0), e.setLocation("categoryY", .5, 0), e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "valueX", {
                    get: function() {
                        return this.values.valueX.value
                    },
                    set: function(t) {
                        this.setValue("valueX", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "customValue", {
                    get: function() {
                        return this.values.customValue.value
                    },
                    set: function(t) {
                        this.setValue("customValue", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "valueY", {
                    get: function() {
                        return this.values.valueY.value
                    },
                    set: function(t) {
                        this.setValue("valueY", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dateX", {
                    get: function() {
                        return this.getDate("dateX")
                    },
                    set: function(t) {
                        this.setDate("dateX", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dateY", {
                    get: function() {
                        return this.getDate("dateY")
                    },
                    set: function(t) {
                        this.setDate("dateY", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "categoryX", {
                    get: function() {
                        return this.categories.categoryX
                    },
                    set: function(t) {
                        this.setCategory("categoryX", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "categoryY", {
                    get: function() {
                        return this.categories.categoryY
                    },
                    set: function(t) {
                        this.setCategory("categoryY", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "openValueX", {
                    get: function() {
                        return this.values.openValueX.value
                    },
                    set: function(t) {
                        this.setValue("openValueX", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "openValueY", {
                    get: function() {
                        return this.values.openValueY.value
                    },
                    set: function(t) {
                        this.setValue("openValueY", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "openDateX", {
                    get: function() {
                        return this.getDate("openDateX")
                    },
                    set: function(t) {
                        this.setDate("openDateX", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "openDateY", {
                    get: function() {
                        return this.getDate("openDateY")
                    },
                    set: function(t) {
                        this.setDate("openDateY", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "openCategoryX", {
                    get: function() {
                        return this.categories.openCategoryX
                    },
                    set: function(t) {
                        this.setCategory("openCategoryX", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "openCategoryY", {
                    get: function() {
                        return this.categories.openCategoryY
                    },
                    set: function(t) {
                        this.setCategory("openCategoryY", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getMin = function(t, e, i) {
                    var n, r = this;
                    return y.isNumber(i) || (i = 0), v.each(t, function(t) {
                        var a;
                        a = e ? r.getWorkingValue(t) : r.getValue(t), ((a += i) < n || !y.isNumber(n)) && (n = a)
                    }), n
                }, e.prototype.getMax = function(t, e, i) {
                    var n, r = this;
                    return y.isNumber(i) || (i = 0), v.each(t, function(t) {
                        var a;
                        a = e ? r.getWorkingValue(t) : r.getValue(t), ((a += i) > n || !y.isNumber(n)) && (n = a)
                    }), n
                }, e
            }(r.b),
            P = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.groupFields = {}, e._xAxis = new l.d, e._yAxis = new l.d, e._xValueFields = [], e._yValueFields = [], e._baseInterval = {}, e.dataGrouped = !1, e.usesShowFields = !1, e._dataSetChanged = !1, e._maxxX = 1e5, e._maxxY = 1e5, e._propertiesChanged = !1, e.className = "XYSeries", e.isMeasured = !1, e.groupFields.valueX = "close", e.groupFields.valueY = "close", e.groupFields.customValue = "close", e.groupFields.openValueX = "open", e.groupFields.openValueY = "open", e.cursorTooltipEnabled = !0, e.cursorHoverEnabled = !0, e.excludeFromTotal = !1, e.mainContainer.mask = new a.a, e.mainContainer.mask.setElement(e.paper.add("path")), e.stacked = !1, e.snapTooltip = !1, e.tooltip.pointerOrientation = "horizontal", e.hideTooltipWhileZooming = !0, e.maskBullets = !0, e.tooltip.events.on("hidden", function() {
                        e.returnBulletDefaultState()
                    }, void 0, !1), e._disposers.push(e._xAxis), e._disposers.push(e._yAxis), e.observe(a.b, function() {
                        e.inited && (e._propertiesChanged = !0, e.legendDataItem && (e.legendDataItem.childrenCreated = !1), e.chart && e.chart.legend && e.chart.legend.invalidateDataItems(), e.invalidate())
                    }, void 0, !1), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), y.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("X/Y Series"))
                }, e.prototype.createDataItem = function() {
                    return new _
                }, e.prototype.dataChangeUpdate = function() {
                    this.dataGrouped = !1, this._baseInterval = {}, this._currentDataSetId = "", this._tmin.clear(), this._tmax.clear(), this._smin.clear(), this._smax.clear(), this.xAxis && this.xAxis.seriesDataChangeUpdate(this), this.yAxis && this.yAxis.seriesDataChangeUpdate(this)
                }, e.prototype.validateData = function() {
                    this._baseInterval = {};
                    var e = this.dataFields;
                    if (e.valueYShow || e.openValueXShow || e.openValueXShow || e.openValueYShow ? this.usesShowFields = !0 : this.usesShowFields = !1, this.defineFields(), this.data.length > 0 && this.dataChangeUpdate(), t.prototype.validateData.call(this), this.updateItemReaderText(), this.chart && (!y.hasValue(this.dataFields[this._xField]) || !y.hasValue(this.dataFields[this._yField]))) throw Error('Data fields for series "' + (this.name ? this.name : this.uid) + '" are not properly defined.');
                    this.inited && this.isHidden && this.hide(0), this.dataGrouped = !1
                }, e.prototype.processDataItem = function(e, i) {
                    try {
                        t.prototype.processDataItem.call(this, e, i), this.xAxis.processSeriesDataItem(e, "X"), this.yAxis.processSeriesDataItem(e, "Y"), this.setInitialWorkingValues(e)
                    } catch (t) {
                        this._chart && this._chart.raiseCriticalError(t)
                    }
                }, e.prototype.updateDataItem = function(e) {
                    t.prototype.updateDataItem.call(this, e), this.xAxis.processSeriesDataItem(e, "X"), this.yAxis.processSeriesDataItem(e, "Y")
                }, e.prototype.setInitialWorkingValues = function(t) {}, e.prototype.disposeData = function() {
                    t.prototype.disposeData.call(this);
                    var e = this.xAxis,
                        i = this.yAxis;
                    if (e) {
                        var n = this.dataItemsByAxis.getKey(e.uid);
                        n && n.clear(), e instanceof h.a && this.clearCatAxis(e)
                    }
                    if (i) {
                        var r = this.dataItemsByAxis.getKey(i.uid);
                        r && r.clear(), i instanceof h.a && this.clearCatAxis(i)
                    }
                }, e.prototype.clearCatAxis = function(t) {
                    var e = this.uid;
                    t.dataItems.each(function(t) {
                        t.seriesDataItems[e] && (t.seriesDataItems[e] = [])
                    })
                }, e.prototype.defineFields = function() {
                    var t = this.xAxis,
                        e = this.yAxis;
                    if (t && e) {
                        var i = t.axisFieldName,
                            n = i + "X",
                            r = "open" + g.capitalize(i) + "X",
                            a = e.axisFieldName,
                            o = a + "Y",
                            s = "open" + g.capitalize(a) + "Y";
                        this._xField = n, this._yField = o, this.dataFields[r] && (this._xOpenField = r), this.dataFields[s] && (this._yOpenField = s), this.dataFields[s] || this.baseAxis != e || (this._yOpenField = o), this.dataFields[r] || this.baseAxis != t || (this._xOpenField = n), this.stacked && this.baseAxis == t && (this._xOpenField = n), this.stacked && this.baseAxis == e && (this._yOpenField = o), t instanceof h.a && e instanceof h.a && (this._yOpenField || (this._yOpenField = o)), this._xValueFields = [], this._yValueFields = [], this.addValueField(t, this._xValueFields, this._xField), this.addValueField(t, this._xValueFields, this._xOpenField), this.addValueField(e, this._yValueFields, this._yField), this.addValueField(e, this._yValueFields, this._yOpenField)
                    }
                }, e.prototype.addValueField = function(t, e, i) {
                    t instanceof o.a && y.hasValue(this.dataFields[i]) && -1 == e.indexOf(i) && e.push(i)
                }, e.prototype.setCategoryAxisField = function(t, e) {
                    y.hasValue(this.dataFields[t]) || (this.dataFields[t] = e.dataFields.category)
                }, e.prototype.setDateAxisField = function(t, e) {
                    y.hasValue(this.dataFields[t]) || (this.dataFields[t] = e.dataFields.date)
                }, e.prototype.afterDraw = function() {
                    t.prototype.afterDraw.call(this), this.createMask()
                }, e.prototype.createMask = function() {
                    if (this.mainContainer.mask) {
                        var t = this.getMaskPath();
                        d.each(this.axisRanges.iterator(), function(e) {
                            e.axisFill.fillPath && (e.axisFill.validate(), t += e.axisFill.fillPath)
                        }), this.mainContainer.mask.path = t
                    }
                }, e.prototype.getMaskPath = function() {
                    return this.xAxis && this.yAxis ? x.rectToPath({
                        x: 0,
                        y: 0,
                        width: this.xAxis.axisLength,
                        height: this.yAxis.axisLength
                    }) : ""
                }, e.prototype.getAxisField = function(t) {
                    return t == this.xAxis ? this.xField : t == this.yAxis ? this.yField : void 0
                }, e.prototype.validateDataItems = function() {
                    this._maxxX = f.max(1e5, 2 * this.chart.plotContainer.maxWidth), this._maxxY = f.max(1e5, 2 * this.chart.plotContainer.maxHeight);
                    var e = this.xAxis,
                        i = this.yAxis;
                    e && i && (e.updateAxisBySeries(), i.updateAxisBySeries()), t.prototype.validateDataItems.call(this), e && i && (e.postProcessSeriesDataItems(), i.postProcessSeriesDataItems())
                }, e.prototype.validateDataRange = function() {
                    var e = this.xAxis,
                        i = this.yAxis;
                    e && i && (e.dataRangeInvalid && e.validateDataRange(), i.dataRangeInvalid && i.validateDataRange()), t.prototype.validateDataRange.call(this)
                }, e.prototype.validate = function() {
                    var e = this.xAxis,
                        i = this.yAxis;
                    if (e && i) {
                        e.invalid && e.validate(), i.invalid && i.validate(), this.y = i.pixelY, this.x = e.pixelX, this._showBullets = !0;
                        var n = this.minBulletDistance;
                        y.isNumber(n) && this.baseAxis.axisLength / (this.endIndex - this.startIndex) < n && (this._showBullets = !1)
                    }
                    this.updateTooltip(), t.prototype.validate.call(this)
                }, Object.defineProperty(e.prototype, "xAxis", {
                    get: function() {
                        if (this.chart) {
                            if (!this._xAxis.get()) {
                                var t = this.chart.xAxes.getIndex(0);
                                if (!t) throw Error("There are no X axes on chart.");
                                this.xAxis = t
                            }
                            return this._xAxis.get()
                        }
                    },
                    set: function(t) {
                        this.setXAxis(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setXAxis = function(t) {
                    var e = this._xAxis.get();
                    e != t && (e && (this.dataItemsByAxis.removeKey(e.uid), this._xAxis.dispose(), e.series.removeValue(this)), this._xAxis.set(t, t.registerSeries(this)), this.dataItemsByAxis.setKey(t.uid, new s.a), this.invalidateData())
                }, Object.defineProperty(e.prototype, "yAxis", {
                    get: function() {
                        if (this.chart) {
                            if (!this._yAxis.get()) {
                                var t = this.chart.yAxes.getIndex(0);
                                if (!t) throw Error("There are no Y axes on chart.");
                                this.yAxis = t
                            }
                            return this._yAxis.get()
                        }
                    },
                    set: function(t) {
                        this.setYAxis(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setYAxis = function(t) {
                    var e = this._yAxis.get();
                    e != t && (e && (this.dataItemsByAxis.removeKey(e.uid), this._yAxis.dispose(), e.series.removeValue(this)), this._yAxis.set(t, t.registerSeries(this)), t.chart instanceof u.a && t.chart.handleYAxisSet(this), this.dataItemsByAxis.setKey(t.uid, new s.a), this.invalidateData())
                }, Object.defineProperty(e.prototype, "baseAxis", {
                    get: function() {
                        var t = this.xAxis,
                            e = this.yAxis;
                        return !this._baseAxis && t && e && (e instanceof c.a && (this._baseAxis = e), t instanceof c.a && (this._baseAxis = t), e instanceof h.a && (this._baseAxis = e), t instanceof h.a && (this._baseAxis = t), this._baseAxis || (this._baseAxis = t)), this._baseAxis
                    },
                    set: function(t) {
                        this._baseAxis != t && (this._baseAxis = t, this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setDataSet = function(e) {
                    var i = t.prototype.setDataSet.call(this, e);
                    if (i) {
                        this._dataSetChanged = !0;
                        var n = this.dataItems;
                        this._tmax.clear(), this._tmin.clear(), this._smax.clear(), this._smin.clear();
                        var r = this.xAxis,
                            a = this.yAxis;
                        this._prevStartIndex = void 0, this._prevEndIndex = void 0, this._startIndex = void 0, this._endIndex = void 0, r instanceof c.a && r == this.baseAxis && (this._tmin.setKey(r.uid, n.getIndex(0).dateX.getTime()), this._tmax.setKey(r.uid, n.getIndex(n.length - 1).dateX.getTime()), this.dispatch("extremeschanged")), a instanceof c.a && a == this.baseAxis && (this._tmin.setKey(a.uid, n.getIndex(0).dateY.getTime()), this._tmax.setKey(a.uid, n.getIndex(n.length - 1).dateY.getTime()), this.dispatch("extremeschanged"))
                    }
                    return i
                }, e.prototype.processValues = function(e) {
                    t.prototype.processValues.call(this, e);
                    var i = this.xAxis,
                        n = this.yAxis;
                    if (i && n) {
                        var r = this.dataItems,
                            a = 1 / 0,
                            s = -1 / 0,
                            l = 1 / 0,
                            u = -1 / 0,
                            h = this.startIndex,
                            p = this.endIndex,
                            d = h,
                            g = p;
                        e || (h = 0, p = this.dataItems.length);
                        for (var m = h; m < p; m++) {
                            var v = r.getIndex(m);
                            this.getStackValue(v, e);
                            var b = v.getValue("valueX", "stack"),
                                x = v.getValue("valueY", "stack");
                            a = f.min(v.getMin(this._xValueFields, e, b), a), l = f.min(v.getMin(this._yValueFields, e, x), l), s = f.max(v.getMax(this._xValueFields, e, b), s), u = f.max(v.getMax(this._yValueFields, e, x), u), this.stacked && (this.baseAxis == i && (x < l && (l = x), x > u && (u = x)), this.baseAxis == n && (b < a && (a = b), b > s && (s = b)))
                        }
                        i.processSeriesDataItems(), n.processSeriesDataItems();
                        var _ = i.uid,
                            P = n.uid;
                        if (!(this.xAxis instanceof o.a && (a == 1 / 0 || s == -1 / 0) || this.yAxis instanceof o.a && (l == 1 / 0 || u == -1 / 0))) {
                            if (!e && (this._tmin.getKey(_) != a || this._tmax.getKey(_) != s || this._tmin.getKey(P) != l || this._tmax.getKey(P) != u)) {
                                this._tmin.setKey(_, a), this._tmax.setKey(_, s), this._tmin.setKey(P, l), this._tmax.setKey(P, u);
                                var w = this.stackedSeries;
                                w && (w.isDisposed() ? this.stackedSeries = void 0 : w.processValues(!1)), this.dispatchImmediately("extremeschanged")
                            }
                            if (h != d || p != g) {
                                a = 1 / 0, s = -1 / 0, l = 1 / 0, u = -1 / 0;
                                for (m = d; m < g; m++) {
                                    v = r.getIndex(m);
                                    this.getStackValue(v, e);
                                    b = v.getValue("valueX", "stack"), x = v.getValue("valueY", "stack");
                                    a = f.min(v.getMin(this._xValueFields, e, b), a), l = f.min(v.getMin(this._yValueFields, e, x), l), s = f.max(v.getMax(this._xValueFields, e, b), s), u = f.max(v.getMax(this._yValueFields, e, x), u), this.stacked && (this.baseAxis == i && (x < l && (l = x), x > u && (u = x)), this.baseAxis == n && (b < a && (a = b), b > s && (s = b)))
                                }
                            }
                            if (!(this.xAxis instanceof o.a && (a == 1 / 0 || s == -1 / 0) || this.yAxis instanceof o.a && (l == 1 / 0 || u == -1 / 0))) {
                                if ((this._smin.getKey(_) != a || this._smax.getKey(_) != s || this._smin.getKey(P) != l || this._smax.getKey(P) != u) && (this._smin.setKey(_, a), this._smax.setKey(_, s), this._smin.setKey(P, l), this._smax.setKey(P, u), this.appeared || 0 != this.start || 1 != this.end || this.dataItems != this.mainDataSet)) {
                                    var O = !1;
                                    if (n instanceof o.a && !(n instanceof c.a)) {
                                        var T = this._tmin.getKey(P);
                                        (!y.isNumber(T) || (this.usesShowFields || this._dataSetChanged) && l < T || this.stackedSeries) && (this._tmin.setKey(P, l), O = !0);
                                        var S = this._tmax.getKey(P);
                                        (!y.isNumber(S) || (this.usesShowFields || this._dataSetChanged) && u > S || this.stackedSeries) && (this._tmax.setKey(P, u), O = !0)
                                    }
                                    if (i instanceof o.a && !(i instanceof c.a)) {
                                        T = this._tmin.getKey(_);
                                        (!y.isNumber(T) || (this.usesShowFields || this._dataSetChanged) && a < T || this.stackedSeries) && (this._tmin.setKey(_, a), O = !0);
                                        S = this._tmax.getKey(_);
                                        (!y.isNumber(S) || (this.usesShowFields || this._dataSetChanged) && s > S || this.stackedSeries) && (this._tmax.setKey(_, s), O = !0)
                                    }
                                    O && this.dispatchImmediately("extremeschanged"), 0 == this.start && 1 == this.end && (this._dataSetChanged = !1), this.dispatchImmediately("selectionextremeschanged")
                                }!e && this.stacked && this.processValues(!0)
                            }
                        }
                    }
                }, e.prototype.hideTooltip = function() {
                    t.prototype.hideTooltip.call(this), this.returnBulletDefaultState(), this._prevTooltipDataItem = void 0
                }, e.prototype.showTooltipAtPosition = function(t, e) {
                    var i;
                    if (this.visible && !this.isHiding && !this.isShowing) {
                        var n = this._xAxis.get(),
                            r = this._yAxis.get();
                        n == this.baseAxis && (i = n.getSeriesDataItem(this, n.toAxisPosition(t), this.snapTooltip)), r == this.baseAxis && (i = r.getSeriesDataItem(this, r.toAxisPosition(e), this.snapTooltip));
                        var a = this.showTooltipAtDataItem(i);
                        if (a) return a;
                        if (!this.tooltipText) return
                    }
                    this.hideTooltip()
                }, e.prototype.getAdjustedXLocation = function(t, e) {
                    return t.locations[e]
                }, e.prototype.getAdjustedYLocation = function(t, e) {
                    return t.locations[e]
                }, e.prototype.showTooltipAtDataItem = function(t) {
                    var e, i, r = this.chart.cursor;
                    if (r && r.hideSeriesTooltipsOnSelection && r.selection.visible && r.downPoint) this.hideTooltip();
                    else if (this.returnBulletDefaultState(t), t && t.visible) {
                        if (this.updateLegendValue(t), this.cursorTooltipEnabled) {
                            this.tooltipDataItem = t;
                            var a = this.tooltipXField,
                                o = this.tooltipYField;
                            if (y.hasValue(t[a]) && y.hasValue(t[o])) {
                                var s = this.getPoint(t, a, o, this.getAdjustedXLocation(t, a), this.getAdjustedYLocation(t, o));
                                if (s) {
                                    if (this.tooltipX = s.x, this.tooltipY = s.y, this._prevTooltipDataItem != t && (this.dispatchImmediately("tooltipshownat", {
                                            type: "tooltipshownat",
                                            target: this,
                                            dataItem: t
                                        }), this._prevTooltipDataItem = t), this.cursorHoverEnabled) try {
                                        for (var l = Object(n.g)(t.sprites), u = l.next(); !u.done; u = l.next()) {
                                            var h = u.value;
                                            !h.parent.visible || h.isHidden || h.__disabled || h.disabled || h.isHiding || (h.interactions.isRealHover || (h.dispatchImmediately("over"), h.interactions.isRealHover = !0), h.isHover = !0)
                                        }
                                    } catch (t) {
                                        e = {
                                            error: t
                                        }
                                    } finally {
                                        try {
                                            u && !u.done && (i = l.return) && i.call(l)
                                        } finally {
                                            if (e) throw e.error
                                        }
                                    }
                                    return this.showTooltip() ? g.spritePointToSvg({
                                        x: s.x,
                                        y: s.y
                                    }, this) : void 0
                                }
                            }
                        }
                    } else this.updateLegendValue(t, !0)
                }, e.prototype.returnBulletDefaultState = function(t) {
                    var e, i;
                    if (this._prevTooltipDataItem && this._prevTooltipDataItem != t) try {
                        for (var r = Object(n.g)(this._prevTooltipDataItem.sprites), a = r.next(); !a.done; a = r.next()) {
                            var o = a.value;
                            if (o.isDisposed()) this._prevTooltipDataItem = void 0;
                            else {
                                var s = o.interactions.isRealHover;
                                o.isHover = !1, s && o.dispatchImmediately("out")
                            }
                        }
                    } catch (t) {
                        e = {
                            error: t
                        }
                    } finally {
                        try {
                            a && !a.done && (i = r.return) && i.call(r)
                        } finally {
                            if (e) throw e.error
                        }
                    }
                }, e.prototype.shouldCreateBullet = function(t, e) {
                    var i = e.xField;
                    y.hasValue(i) || (i = this.xField);
                    var n = e.yField;
                    if (y.hasValue(n) || (n = this.yField), this.xAxis instanceof o.a && !t.hasValue([i]) || this.yAxis instanceof o.a && !t.hasValue([n])) return !1;
                    if (e.disabled) {
                        var r = e.propertyFields.disabled,
                            a = t.dataContext;
                        return !(!a || !1 !== a[r])
                    }
                    return !0
                }, e.prototype.updateTooltip = function() {
                    this.hideTooltipWhileZooming || !this.tooltip || this.tooltip.isHidden || this.isHiding || this.isHidden || !this.tooltipDataItem || this.showTooltipAtDataItem(this.tooltipDataItem)
                }, e.prototype.positionBullet = function(e) {
                    t.prototype.positionBullet.call(this, e);
                    var i = e.dataItem,
                        n = e.xField;
                    y.hasValue(n) || (n = this.xField);
                    var r = e.yField;
                    y.hasValue(r) || (r = this.yField);
                    var a = this.xAxis,
                        s = this.yAxis;
                    if (a instanceof o.a && !i.hasValue([n]) || s instanceof o.a && !i.hasValue([r])) e.visible = !1;
                    else {
                        var l = this.getBulletLocationX(e, n),
                            u = this.getBulletLocationY(e, r);
                        if (this.getPoint(i, n, r, l, u)) {
                            var p = this.xOpenField,
                                d = this.yOpenField,
                                f = void 0,
                                g = void 0;
                            if (a instanceof c.a) {
                                y.isNumber(l) || (l = 0);
                                var v = void 0,
                                    b = i.getWorkingValue(n);
                                if (p ? v = i.getWorkingValue(p) : a == this.baseAxis && (v = a.baseValue), y.isNumber(v) || (v = b), (v += S = i.getValue("valueX", "stack")) == (b += S)) {
                                    var x = a.baseInterval,
                                        _ = a.dateFormatter;
                                    v = m.round(new Date(v), x.timeUnit, x.count, _.firstDayOfWeek, _.utc).getTime(), b = m.add(new Date(v), x.timeUnit, x.count, _.utc).getTime()
                                }
                                var P = void 0;
                                P = a == this.baseAxis ? v + (b - v) * l : v + (b - v) * (1 - l), f = a.valueToPosition(P)
                            } else if (a instanceof o.a) {
                                y.isNumber(l) || (l = 0);
                                v = void 0, b = i.getWorkingValue(n);
                                v = p ? i.getWorkingValue(p) : a.baseValue;
                                P = (v += S = i.getValue("valueX", "stack")) + ((b += S) - v) * (1 - l);
                                f = a.valueToPosition(P)
                            } else if (a instanceof h.a) {
                                var w = this.getAdjustedXLocation(i, n),
                                    O = this.getAdjustedXLocation(i, p);
                                f = a.categoryToPosition(i[n], w);
                                var T = void 0;
                                p && (T = a.categoryToPosition(i[p], O)), y.isNumber(T) || (T = 1), f = T + (f - T) * l
                            }
                            if (s instanceof c.a) {
                                y.isNumber(u) || (u = 0);
                                v = void 0, b = i.getWorkingValue(r);
                                if (d ? v = i.getWorkingValue(d) : s == this.baseAxis && (v = s.baseValue), y.isNumber(v) || (v = b), (v += S = i.getValue("valueY", "stack")) == (b += S)) {
                                    x = s.baseInterval, _ = s.dateFormatter;
                                    v = m.round(new Date(v), x.timeUnit, x.count, _.firstDayOfWeek, _.utc).getTime(), b = m.add(new Date(v), x.timeUnit, x.count, _.utc).getTime()
                                }
                                P = void 0;
                                P = s == this.baseAxis ? v + (b - v) * u : v + (b - v) * (1 - u), g = s.valueToPosition(P)
                            } else if (s instanceof o.a) {
                                y.isNumber(u) || (u = 0);
                                var S;
                                v = void 0, b = i.getWorkingValue(r);
                                v = d ? i.getWorkingValue(d) : s.baseValue;
                                P = (v += S = i.getValue("valueY", "stack")) + ((b += S) - v) * (1 - u);
                                g = s.valueToPosition(P)
                            } else if (s instanceof h.a) {
                                g = s.categoryToPosition(i[r], u);
                                var C = this.getAdjustedYLocation(i, r),
                                    I = this.getAdjustedYLocation(i, d);
                                g = s.categoryToPosition(i[r], C);
                                var k = void 0;
                                d && (k = s.categoryToPosition(i[d], I)), y.isNumber(k) || (k = 1), g = k + (g - k) * u
                            }
                            e.visible = !0, this.positionBulletReal(e, f, g)
                        } else e.visible = !1
                    }
                }, e.prototype.positionBulletReal = function(t, e, i) {
                    t.x = this.xAxis.renderer.positionToPoint(e, i).x, t.y = this.yAxis.renderer.positionToPoint(i, e).y
                }, e.prototype.getBulletLocationX = function(t, e) {
                    var i = t.locationX,
                        n = t.dataItem;
                    return y.isNumber(i) || (i = n.workingLocations[e]), i
                }, e.prototype.getBulletLocationY = function(t, e) {
                    var i = t.locationY,
                        n = t.dataItem;
                    return y.isNumber(i) || (i = n.workingLocations[e]), i
                }, e.prototype.updateStacking = function() {
                    var t = this;
                    this.invalidateDataItems(), this.chart && this.chart.series.each(function(e) {
                        e.baseAxis == t.baseAxis && (e.stackedSeries = void 0, e.invalidateDataItems(), e.invalidateProcessedData())
                    })
                }, Object.defineProperty(e.prototype, "stacked", {
                    get: function() {
                        return this.getPropertyValue("stacked")
                    },
                    set: function(t) {
                        if (this.setPropertyValue("stacked", t, !0)) {
                            this.updateStacking();
                            var e, i = this.xAxis,
                                n = this.yAxis;
                            if (!t) i != this.baseAxis && i instanceof o.a && (e = this.xField), n != this.baseAxis && n instanceof o.a && (e = this.yField), e && this.dataItems.each(function(t) {
                                t.setCalculatedValue(e, 0, "stack")
                            })
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "snapTooltip", {
                    get: function() {
                        return this.getPropertyValue("snapTooltip")
                    },
                    set: function(t) {
                        this.setPropertyValue("snapTooltip", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.show = function(e) {
                    var i, n = this;
                    this.xAxis instanceof o.a && this.xAxis != this.baseAxis && (i = this._xValueFields), this.yAxis instanceof o.a && this.yAxis != this.baseAxis && (i = this._yValueFields);
                    var r, a = this.startIndex,
                        s = this.endIndex,
                        l = 0,
                        u = this.defaultState.transitionDuration;
                    y.isNumber(e) && (u = e), d.each(d.indexed(this.dataItems.iterator()), function(t) {
                        var e = t[0],
                            o = t[1];
                        n.sequencedInterpolation && u > 0 && (l = n.sequencedInterpolationDelay * e + u * (e - a) / (s - a)), r = o.show(u, l, i)
                    }), this.dataSets.each(function(t, e) {
                        e != n.dataItems && e.each(function(t) {
                            t.events.disable(), t.show(0, 0, i), t.events.enable()
                        })
                    }), this.mainDataSet != this.dataItems && this.mainDataSet.each(function(t) {
                        t.events.disable(), t.show(0, 0, i), t.events.enable()
                    });
                    var h = t.prototype.show.call(this, e);
                    return r && !r.isFinished() && (h = r), this.hidden && (this.dispatchImmediately("selectionextremeschanged"), this.hidden = !1), h
                }, e.prototype.hide = function(e) {
                    var i, n, r = this,
                        a = this.xAxis;
                    a instanceof o.a && a != this.baseAxis && (i = this._xValueFields, n = this.stacked || a.minZoomed < a.baseValue && a.maxZoomed > a.baseValue || this.stackedSeries ? a.baseValue : a.min);
                    var s = this.yAxis;
                    s instanceof o.a && s != this.baseAxis && (i = this._yValueFields, n = this.stacked || s.minZoomed < s.baseValue && s.maxZoomed > s.baseValue || this.stackedSeries ? s.baseValue : s.min);
                    var l = this.startIndex,
                        u = this.endIndex,
                        h = this.hiddenState.transitionDuration;
                    y.isNumber(e) && (h = e);
                    var c, p = 0;
                    d.each(d.indexed(this.dataItems.iterator()), function(t) {
                        var e = t[0],
                            a = t[1];
                        0 == h ? a.hide(0, 0, n, i) : (r.sequencedInterpolation && h > 0 && (p = r.sequencedInterpolationDelay * e + h * (e - l) / (u - l)), c = a.hide(h, p, n, i))
                    });
                    var f = t.prototype.hide.call(this, h);
                    return f && !f.isFinished() && f.delay(p), c && !c.isFinished() && (f = c), this.validateDataElements(), f
                }, e.prototype.handleDataItemWorkingValueChange = function(e, i) {
                    t.prototype.handleDataItemWorkingValueChange.call(this, e, i);
                    var n = this.baseAxis.series;
                    d.each(n.iterator(), function(t) {
                        (t.stacked || t.stackedSeries) && t.invalidateProcessedData()
                    })
                }, e.prototype.getStackValue = function(t, e) {
                    var i = this,
                        n = this.xAxis,
                        r = this.yAxis;
                    if (this.stacked && n && r) {
                        var a, s = this.chart,
                            l = s.series.indexOf(this);
                        n != this.baseAxis && n instanceof o.a && (a = this.xField), r != this.baseAxis && r instanceof o.a && (a = this.yField), a && (t.setCalculatedValue(a, 0, "stack"), d.eachContinue(s.series.range(0, l).backwards().iterator(), function(o) {
                            if (o.xAxis == n && o.yAxis == r) {
                                o.stackedSeries = i;
                                var s = o.dataItems.getIndex(t.index);
                                if (s && s.hasValue(i._xValueFields) && s.hasValue(i._yValueFields)) {
                                    var l = t.getValue(a),
                                        u = void 0,
                                        h = s.getValue(a) + s.getValue(a, "stack");
                                    if (u = e ? s.getWorkingValue(a) + s.getValue(a, "stack") : s.getValue(a) + s.getValue(a, "stack"), l >= 0 && h >= 0 || l < 0 && h < 0) return t.setCalculatedValue(a, u, "stack"), !1
                                } else if (!o.stacked) return !1
                            }
                            return !0
                        }))
                    }
                }, Object.defineProperty(e.prototype, "xField", {
                    get: function() {
                        return this._xField
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "yField", {
                    get: function() {
                        return this._yField
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "xOpenField", {
                    get: function() {
                        return this._xOpenField
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "yOpenField", {
                    get: function() {
                        return this._yOpenField
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipXField", {
                    get: function() {
                        return this._tooltipXField ? this._tooltipXField : this._xField
                    },
                    set: function(t) {
                        this._tooltipXField = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipYField", {
                    get: function() {
                        return this._tooltipYField ? this._tooltipYField : this._yField
                    },
                    set: function(t) {
                        this._tooltipYField = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.min = function(t) {
                    return this._tmin.getKey(t.uid)
                }, e.prototype.max = function(t) {
                    return this._tmax.getKey(t.uid)
                }, e.prototype.selectionMin = function(t) {
                    var e = this._smin.getKey(t.uid);
                    return y.isNumber(e) || (e = this.min(t)), e
                }, e.prototype.selectionMax = function(t) {
                    var e = this._smax.getKey(t.uid);
                    return y.isNumber(e) || (e = this.max(t)), e
                }, e.prototype.processConfig = function(e) {
                    if (e) {
                        if (y.hasValue(e.baseAxis) && y.isString(e.baseAxis) && (this.map.hasKey(e.baseAxis) ? e.baseAxis = this.map.getKey(e.baseAxis) : (this.processingErrors.push("[XYSeries (" + (this.name || "unnamed") + ')] No axis with id "' + e.baseAxis + '" found for `baseAxis`.'), delete e.baseAxis)), y.hasValue(e.xAxis) && y.isString(e.xAxis) && (this.map.hasKey(e.xAxis) ? e.xAxis = this.map.getKey(e.xAxis) : (this.processingErrors.push("[XYSeries (" + (this.name || "unnamed") + ')] No axis with id "' + e.xAxis + '" found for `xAxis`.'), delete e.xAxis)), y.hasValue(e.yAxis) && y.isString(e.yAxis) && (this.map.hasKey(e.yAxis) ? e.yAxis = this.map.getKey(e.yAxis) : (this.processingErrors.push("[XYSeries (" + (this.name || "unnamed") + ')] No axis with id "' + e.yAxis + '" found for `yAxis`.'), delete e.yAxis)), y.hasValue(e.axisRanges) && y.isArray(e.axisRanges))
                            for (var i = 0, n = e.axisRanges.length; i < n; i++) {
                                var r = e.axisRanges[i];
                                y.hasValue(r.type) || (r.type = "AxisDataItem"), y.hasValue(r.axis) && y.isString(r.axis) && this.map.hasKey(r.axis) ? r.component = this.map.getKey(r.axis) : y.hasValue(r.component) && y.isString(r.component) && this.map.hasKey(r.component) && (r.component = this.map.getKey(r.component))
                            }
                        y.hasValue(e.dataFields) && y.isObject(e.dataFields) || this.processingErrors.push("`dataFields` is not set for series [" + (this.name || "unnamed") + "]")
                    }
                    t.prototype.processConfig.call(this, e)
                }, e.prototype.getPoint = function(t, e, i, n, r, a, o) {
                    if (this.xAxis && this.yAxis) {
                        var s = this.xAxis.getX(t, e, n),
                            l = this.yAxis.getY(t, i, r);
                        return {
                            x: s = f.fitToRange(s, -this._maxxX, this._maxxX),
                            y: l = f.fitToRange(l, -this._maxxY, this._maxxY)
                        }
                    }
                }, e.prototype.updateItemReaderText = function() {
                    if (!this._itemReaderTextChanged) {
                        var t = "";
                        b.each(this.dataFields, function(e, i) {
                            t += "{" + e + "} "
                        }), this.itemReaderText = t, this._itemReaderTextChanged = !1
                    }
                }, Object.defineProperty(e.prototype, "cursorTooltipEnabled", {
                    get: function() {
                        return this.getPropertyValue("cursorTooltipEnabled")
                    },
                    set: function(t) {
                        this.setPropertyValue("cursorTooltipEnabled", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cursorHoverEnabled", {
                    get: function() {
                        return this.getPropertyValue("cursorHoverEnabled")
                    },
                    set: function(t) {
                        this.setPropertyValue("cursorHoverEnabled", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "excludeFromTotal", {
                    get: function() {
                        return this.getPropertyValue("excludeFromTotal")
                    },
                    set: function(t) {
                        this.setPropertyValue("excludeFromTotal", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hideTooltipWhileZooming", {
                    get: function() {
                        return this.getPropertyValue("hideTooltipWhileZooming")
                    },
                    set: function(t) {
                        this.setPropertyValue("hideTooltipWhileZooming", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maskBullets", {
                    get: function() {
                        return this.getPropertyValue("maskBullets")
                    },
                    set: function(t) {
                        this.setPropertyValue("maskBullets", t);
                        var e = this.chart;
                        e && (this.bulletsContainer.parent = t ? e.bulletsContainer : e.axisBulletsContainer)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    this.groupFields = g.copyProperties(e.groupFields, {}), t.prototype.copyFrom.call(this, e)
                }, e
            }(r.a);
        p.c.registeredClasses.XYSeries = P, p.c.registeredClasses.XYSeriesDataItem = _
    },
    Ui9R: function(t, e, i) {
        i("6WsA")("asyncIterator")
    },
    UjlR: function(t, e, i) {
        "use strict";
        var n = i("o3G/"),
            r = i("tHyI"),
            a = i("cLsB"),
            o = function(t, e, i, s, l, u, h, c) {
                for (var p, d = l, f = 0, g = !!h && a(h, c, 3); f < s;) {
                    if (f in i) {
                        if (p = g ? g(i[f], f, e) : i[f], u > 0 && n(p)) d = o(t, e, p, r(p.length), d, u - 1) - 1;
                        else {
                            if (d >= 9007199254740991) throw TypeError("Exceed the acceptable array length");
                            t[d] = p
                        }
                        d++
                    }
                    f++
                }
                return d
            };
        t.exports = o
    },
    Ur2B: function(t, e, i) {
        var n = i("5ou3"),
            r = i("CNF5"),
            a = i("KslR")("iterator");
        t.exports = function(t) {
            if (void 0 != t) return t[a] || t["@@iterator"] || r[n(t)]
        }
    },
    UsNi: function(t, e, i) {
        "use strict";
        var n = i("m4/l"),
            r = i("58Sn"),
            a = i("+qIf"),
            o = i("hD5A"),
            s = i("MIZb"),
            l = new a.a,
            u = i("x79X"),
            h = i("Tjl+"),
            c = i("zhwk"),
            p = i("WYhe"),
            d = i("Mtpk"),
            f = i("Qkdp");
        i.d(e, "a", function() {
            return g
        });
        var g = function(t) {
            function e() {
                var e = t.call(this) || this;
                return e.adapter = new u.a(e), e._elements = {}, e._IOs = {}, e._content = "", e._title = "", e._classPrefix = "ampopup", e._defaultStyles = !0, e._showCurtain = !1, e._draggable = !0, e._align = "center", e._verticalAlign = "middle", e._shift = {
                    x: 0,
                    y: 0
                }, e._tempShift = {
                    x: 0,
                    y: 0
                }, e._readerTitle = "", e._closable = !0, e._cssLoaded = !1, e._fitTo = "window", e.isTemplate = !1, e._sized = !1, e.className = "Popup", e
            }
            return Object(n.c)(e, t), e.prototype.open = function() {
                this.container && (this._elements.wrapper && this.container.appendChild(this._elements.wrapper), this._elements.curtain && (this.container.appendChild(this._elements.curtain), this.showCurtain = this.showCurtain), this.positionElement(), this.dispatchImmediately("opened"))
            }, e.prototype.close = function() {
                this._elements.wrapper && this._elements.wrapper.parentElement && this._elements.wrapper.parentElement.removeChild(this._elements.wrapper), this._elements.curtain && this._elements.curtain.parentElement && this._elements.curtain.parentElement.removeChild(this._elements.curtain), this.dispatchImmediately("closed"), this.releasePointers()
            }, e.prototype.dispose = function() {
                this.close(), t.prototype.dispose.call(this)
            }, e.prototype.positionElement = function(t) {
                var e = this;
                void 0 === t && (t = !0), this._elements.wrapper && setTimeout(function() {
                    if (e._elements.wrapper) {
                        if (t || !e._sized) {
                            if (e._elements.wrapper.style.opacity = "0.01", e._elements.wrapper.style.left = "0", e._elements.wrapper.style.top = "0", e._elements.wrapper.style.margin = "0 0 0 0", !e._elements.wrapper.style.width) {
                                var i = e._elements.wrapper.getBoundingClientRect();
                                e._elements.wrapper.style.width = i.width + "px", e._elements.wrapper.style.height = i.height + "px"
                            }
                            e._sized = !0
                        }
                        setTimeout(function() {
                            if (e._elements.wrapper) {
                                var i;
                                switch (!t && e._sized || !e._bbox ? (i = e._elements.wrapper.getBoundingClientRect(), e._elements.wrapper.style.opacity = "") : i = e._bbox, e.align) {
                                    case "left":
                                        e._elements.wrapper.style.left = "0", e._elements.wrapper.style.right = "auto", e._elements.wrapper.style.marginLeft = e.toStyle(e._shift.x + e._tempShift.x);
                                        break;
                                    case "center":
                                        e._elements.wrapper.style.left = "50%", e._elements.wrapper.style.right = "auto", e._elements.wrapper.style.marginLeft = e.toStyle(Math.round(-i.width / 2) + (e._shift.x + e._tempShift.x));
                                        break;
                                    case "right":
                                        e._elements.wrapper.style.left = "auto", e._elements.wrapper.style.right = "0", e._elements.wrapper.style.marginLeft = e.toStyle(e._shift.x + e._tempShift.x);
                                        break;
                                    default:
                                        e._elements.wrapper.style.left = e.toStyle(e.left) || "auto", e._elements.wrapper.style.right = e.toStyle(e.right) || "auto", e._elements.wrapper.style.marginLeft = e.toStyle(e._shift.x + e._tempShift.x)
                                }
                                switch (e.verticalAlign) {
                                    case "top":
                                        e._elements.wrapper.style.top = "0", e._elements.wrapper.style.bottom = "auto", e._elements.wrapper.style.marginTop = e.toStyle(e._shift.y + e._tempShift.y);
                                        break;
                                    case "middle":
                                        e._elements.wrapper.style.top = "50%", e._elements.wrapper.style.bottom = "auto", e._elements.wrapper.style.marginTop = e.toStyle(Math.round(-i.height / 2) + (e._shift.y + e._tempShift.y));
                                        break;
                                    case "bottom":
                                        e._elements.wrapper.style.top = "auto", e._elements.wrapper.style.bottom = "0", e._elements.wrapper.style.marginTop = e.toStyle(e._shift.y + e._tempShift.y);
                                        break;
                                    default:
                                        e._elements.wrapper.style.top = e.toStyle(e.top) || "auto", e._elements.wrapper.style.bottom = e.toStyle(e.bottom) || "auto", e._elements.wrapper.style.marginTop = e.toStyle(e._shift.y + e._tempShift.y)
                                }
                            }
                        }, 1)
                    }
                }, 1)
            }, e.prototype.setupDragging = function() {
                var t = this;
                this.draggable ? (this._IOs.header.events.has("drag") || this._IOs.header.events.on("drag", function(e) {
                    t._tempShift.x = e.shift.x, t._tempShift.y = e.shift.y, t.positionElement(!1)
                }), this._IOs.header.events.has("dragstop") || this._IOs.header.events.on("dragstop", function(e) {
                    t._shift.x += t._tempShift.x, t._shift.y += t._tempShift.y, t._tempShift.x = 0, t._tempShift.y = 0, t.positionElement(!1)
                })) : this._IOs.header && (Object(c.b)().unprepElement(this._IOs.header), this._IOs.header.events.has("drag") && this._IOs.header.events.off("drag"), this._IOs.header.events.has("dragstop") && this._IOs.header.events.off("dragstop"))
            }, e.prototype.toStyle = function(t) {
                return d.hasValue(t) ? d.isNumber(t) ? t + "px" : t.toString() : null
            }, Object.defineProperty(e.prototype, "classPrefix", {
                get: function() {
                    return this.adapter.apply("classPrefix", this._classPrefix)
                },
                set: function(t) {
                    this._classPrefix = t
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "classPrefixRaw", {
                get: function() {
                    return this._classPrefix
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "content", {
                get: function() {
                    return this.adapter.apply("content", this._content)
                },
                set: function(t) {
                    this._content != t && (this._content = t, this._elements.content || this.createContentElement(), this._elements.content.innerHTML = t, this.positionElement())
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.getClassNames = function() {
                return this.adapter.apply("classNames", {
                    wrapperClass: this.classPrefix + "",
                    headerClass: this.classPrefix + "-header",
                    titleClass: this.classPrefix + "-title",
                    contentClass: this.classPrefix + "-content",
                    insideClass: this.classPrefix + "-inside",
                    curtainClass: this.classPrefix + "-curtain",
                    closeClass: this.classPrefix + "-close"
                })
            }, e.prototype.createContentElement = function() {
                if (!this._elements.wrapper) {
                    var t = this.getClassNames(),
                        e = document.createElement("div");
                    e.className = t.contentClass, e.style.opacity = "0.01";
                    var i = document.createElement("a");
                    i.className = t.closeClass;
                    var n = document.createElement("div");
                    n.className = t.headerClass;
                    var r = document.createElement("div");
                    r.innerHTML = this.title, r.className = t.titleClass, this.title || (r.style.display = "none");
                    var a = document.createElement("div");
                    a.className = t.insideClass, a.innerHTML = this.content, this._IOs.wrapper = Object(c.b)().getInteraction(e), this._IOs.header = Object(c.b)().getInteraction(n), this._disposers.push(this._IOs.wrapper), this._IOs.wrapper.events.on("over", this.disablePointers, this), this._IOs.wrapper.events.on("out", this.releasePointers, this), this._IOs.close = Object(c.b)().getInteraction(i), this._disposers.push(this._IOs.close), i.style.visibility = "hidden", e.setAttribute("role", "dialog"), n.appendChild(i), n.appendChild(r), e.appendChild(n), e.appendChild(a), this.container.appendChild(e), this._elements.wrapper = e, this._elements.header = n, this._elements.content = a, this._elements.title = r, this._elements.close = i, this.defaultStyles && this.loadDefaultCSS(), this.createCurtainElement(), this.applyEvents(), this.applyReaderSettings(), this.setupDragging()
                }
            }, Object.defineProperty(e.prototype, "title", {
                get: function() {
                    return this.adapter.apply("title", this._title)
                },
                set: function(t) {
                    this._title != t && (this._title = t, this._elements.content || this.createContentElement(), this._elements.title.innerHTML = t, this.positionElement(), this.applyReaderSettings())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "readerTitle", {
                get: function() {
                    return this.adapter.apply("readerTitle", "" != this._readerTitle ? this._readerTitle : this.title)
                },
                set: function(t) {
                    this._readerTitle != t && (this._readerTitle = t, this.applyReaderSettings())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "closable", {
                get: function() {
                    return this.adapter.apply("closable", this._closable)
                },
                set: function(t) {
                    t !== this._closable && (this._closable = t, this.applyEvents())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "fitTo", {
                get: function() {
                    return this.adapter.apply("fitTo", this._fitTo)
                },
                set: function(t) {
                    t != this._fitTo && (this._fitTo = t, this.positionElement())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "defaultStyles", {
                get: function() {
                    return this.adapter.apply("defaultStyles", this._defaultStyles)
                },
                set: function(t) {
                    this._defaultStyles != t && (this._defaultStyles = t)
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "showCurtain", {
                get: function() {
                    return this.adapter.apply("showCurtain", this._showCurtain)
                },
                set: function(t) {
                    this._showCurtain != t && (this._showCurtain = t, this._elements.curtain && (this._elements.curtain.style.display = t ? "block" : "none"))
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.createCurtainElement = function() {
                var t = this.getClassNames(),
                    e = document.createElement("div");
                e.className = t.curtainClass, this.container.appendChild(e), this._IOs.curtain = Object(c.b)().getInteraction(e), this._disposers.push(this._IOs.curtain), this._IOs.curtain.events.on("over", this.disablePointers, this), this._IOs.curtain.events.on("out", this.releasePointers, this), e.style.display = this.showCurtain ? "block" : "none", this._elements.curtain = e
            }, Object.defineProperty(e.prototype, "draggable", {
                get: function() {
                    return this.adapter.apply("draggable", this._draggable)
                },
                set: function(t) {
                    this._draggable != t && (this._draggable = t, this.setupDragging())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "align", {
                get: function() {
                    return this.adapter.apply("align", this._align)
                },
                set: function(t) {
                    this._align != t && (this._align = t, this.positionElement())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "verticalAlign", {
                get: function() {
                    return this.adapter.apply("verticalAlign", this._verticalAlign)
                },
                set: function(t) {
                    this._verticalAlign != t && (this._verticalAlign = t, this.positionElement())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "left", {
                get: function() {
                    return this.adapter.apply("left", this._left)
                },
                set: function(t) {
                    this.left != t && (this._left = t, this._align = "none", this.positionElement())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "right", {
                get: function() {
                    return this.adapter.apply("right", this._right)
                },
                set: function(t) {
                    this.right != t && (this._right = t, this._align = "none", this.positionElement())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "top", {
                get: function() {
                    return this.adapter.apply("top", this._top)
                },
                set: function(t) {
                    this.top != t && (this._top = t, this._verticalAlign = "none", this.positionElement())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "bottom", {
                get: function() {
                    return this.adapter.apply("bottom", this._bottom)
                },
                set: function(t) {
                    this.bottom != t && (this._bottom = t, this._verticalAlign = "none", this.positionElement())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "elements", {
                get: function() {
                    return this._elements
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.loadDefaultCSS = function() {
                this._cssLoaded || (this._disposers.push(function(t) {
                    t || (t = "ampopup");
                    var e = new s.a,
                        i = e.getFor("text"),
                        n = e.getFor("background");
                    n.alpha = .8;
                    var a = e.getFor("alternativeBackground");
                    return a.alpha = .05, l.insertKeyIfEmpty(t, function() {
                        var e = new o.c([new r.c("." + t, {
                            overflow: "visible",
                            position: "absolute",
                            top: "0",
                            left: "0",
                            "z-index": "2000"
                        }), new r.c("." + t + "-curtain", {
                            width: "100%",
                            height: "100%",
                            position: "absolute",
                            top: "0",
                            left: "0",
                            "z-index": "2001",
                            "background-color": n.hex,
                            opacity: "0.5"
                        }), new r.c("." + t + "-header", {
                            display: "block",
                            width: "100%",
                            "min-height": "1.8em",
                            background: a.rgba
                        }), new r.c("." + t + "-title", {
                            "font-weight": "bold",
                            "font-size": "110%",
                            padding: "0.5em 1.2em 0.5em 1em"
                        }), new r.c("." + t + "-content", {
                            background: n.hex,
                            "background-color": n.rgba,
                            color: i.hex,
                            display: "inline-block",
                            position: "absolute",
                            top: "0",
                            left: "0",
                            "max-width": "90%",
                            "max-height": "90%",
                            overflow: "auto",
                            "z-index": "2002"
                        }), new r.c("." + t + "-inside", {
                            padding: "1em"
                        }), new r.c("." + t + "-close", {
                            display: "block",
                            position: "absolute",
                            top: "0.3em",
                            right: "0.3em",
                            "background-color": "rgb(100, 100, 100)",
                            background: "rgba(100, 100, 100, 0.1) url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgdmVyc2lvbj0iMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ0NS4yIDEwOS4ybC00Mi40LTQyLjRMMjU2IDIxMy42IDEwOS4yIDY2LjhsLTQyLjQgNDIuNEwyMTMuNiAyNTYgNjYuOCA0MDIuOGw0Mi40IDQyLjRMMjU2IDI5OC40bDE0Ni44IDE0Ni44IDQyLjQtNDIuNEwyOTguNCAyNTYiLz48L3N2Zz4=) no-repeat center",
                            "background-size": "80%",
                            width: "1.2em",
                            height: "1.2em",
                            cursor: "pointer"
                        })]);
                        return new o.a(function() {
                            l.removeKey(t), e.dispose()
                        })
                    }).increment()
                }(this.classPrefix)), f.each(this._elements, function(t, e) {
                    e.style.display = ""
                }), this._cssLoaded = !0)
            }, e.prototype.applyEvents = function() {
                var t = this;
                if (this._IOs.close)
                    if (this.closable) {
                        this._IOs.close.element.style.visibility = "visible";
                        var e = [Object(c.b)().body.events.on("keyup", function(e) {
                            p.b.isKey(e.event, "esc") && t.closable && t.close()
                        }), this._IOs.close.events.on("hit", function(e) {
                            t.close()
                        })];
                        e.push(this._IOs.curtain.events.on("hit", function(e) {
                            t.showCurtain && t.close()
                        })), this._disposers.push(new o.c(e))
                    } else this._IOs.close.element.style.visibility = "hidden"
            }, e.prototype.disablePointers = function() {
                this.sprite && (this._spriteInteractionsEnabled = this.sprite.interactionsEnabled, this.sprite.interactionsEnabled = !1)
            }, e.prototype.releasePointers = function() {
                d.hasValue(this._spriteInteractionsEnabled) && (this.sprite.interactionsEnabled = this._spriteInteractionsEnabled, this._spriteInteractionsEnabled = void 0)
            }, e.prototype.applyReaderSettings = function() {
                this.elements.wrapper.setAttribute("aria-label", this.readerTitle)
            }, e.prototype.copyFrom = function(e) {
                t.prototype.copyFrom.call(this, e), this.container = e.container, this.sprite = e.sprite, this.classPrefix = e.classPrefixRaw, this.content = e.content, this.title = e.title, this.readerTitle = e.readerTitle, this.defaultStyles = e.defaultStyles, this.showCurtain = e.showCurtain, this.align = e.align, this.verticalAlign = e.verticalAlign, this.left = e.left, this.right = e.right, this.top = e.top, this.bottom = e.bottom, this.adapter.copyFrom(e.adapter)
            }, e
        }(h.b)
    },
    UseD: function(t, e, i) {
        "use strict";
        var n, r = i("jqyf"),
            a = i("3sMl"),
            o = i("vfdp"),
            s = i("Kg2n"),
            l = i("JZRr"),
            u = i("5ou3"),
            h = i("k2B3"),
            c = i("z3p0"),
            p = i("8+rI").f,
            d = i("Ox5T"),
            f = i("KJuV"),
            g = i("KslR"),
            y = i("vfRf"),
            m = o.Int8Array,
            v = m && m.prototype,
            b = o.Uint8ClampedArray,
            x = b && b.prototype,
            _ = m && d(m),
            P = v && d(v),
            w = Object.prototype,
            O = w.isPrototypeOf,
            T = g("toStringTag"),
            S = y("TYPED_ARRAY_TAG"),
            C = r && !!f && "Opera" !== u(o.opera),
            I = !1,
            k = {
                Int8Array: 1,
                Uint8Array: 1,
                Uint8ClampedArray: 1,
                Int16Array: 2,
                Uint16Array: 2,
                Int32Array: 4,
                Uint32Array: 4,
                Float32Array: 4,
                Float64Array: 8
            },
            D = function(t) {
                return s(t) && l(k, u(t))
            };
        for (n in k) o[n] || (C = !1);
        if ((!C || "function" != typeof _ || _ === Function.prototype) && (_ = function() {
                throw TypeError("Incorrect invocation")
            }, C))
            for (n in k) o[n] && f(o[n], _);
        if ((!C || !P || P === w) && (P = _.prototype, C))
            for (n in k) o[n] && f(o[n].prototype, P);
        if (C && d(x) !== P && f(x, P), a && !l(P, T))
            for (n in I = !0, p(P, T, {
                    get: function() {
                        return s(this) ? this[S] : void 0
                    }
                }), k) o[n] && h(o[n], S, n);
        t.exports = {
            NATIVE_ARRAY_BUFFER_VIEWS: C,
            TYPED_ARRAY_TAG: I && S,
            aTypedArray: function(t) {
                if (D(t)) return t;
                throw TypeError("Target is not a typed array")
            },
            aTypedArrayConstructor: function(t) {
                if (f) {
                    if (O.call(_, t)) return t
                } else
                    for (var e in k)
                        if (l(k, n)) {
                            var i = o[e];
                            if (i && (t === i || O.call(i, t))) return t
                        } throw TypeError("Target is not a typed array constructor")
            },
            exportTypedArrayMethod: function(t, e, i) {
                if (a) {
                    if (i)
                        for (var n in k) {
                            var r = o[n];
                            r && l(r.prototype, t) && delete r.prototype[t]
                        }
                    P[t] && !i || c(P, t, i ? e : C && v[t] || e)
                }
            },
            exportTypedArrayStaticMethod: function(t, e, i) {
                var n, r;
                if (a) {
                    if (f) {
                        if (i)
                            for (n in k)(r = o[n]) && l(r, t) && delete r[t];
                        if (_[t] && !i) return;
                        try {
                            return c(_, t, i ? e : C && m[t] || e)
                        } catch (t) {}
                    }
                    for (n in k) !(r = o[n]) || r[t] && !i || c(r, t, e)
                }
            },
            isView: function(t) {
                var e = u(t);
                return "DataView" === e || l(k, e)
            },
            isTypedArray: D,
            TypedArray: _,
            TypedArrayPrototype: P
        }
    },
    Uskt: function(t, e, i) {
        var n = i("vfdp"),
            r = i("jnLg").trim,
            a = i("DUr5"),
            o = n.parseInt,
            s = /^[+-]?0[Xx]/,
            l = 8 !== o(a + "08") || 22 !== o(a + "0x16");
        t.exports = l ? function(t, e) {
            var i = r(String(t));
            return o(i, e >>> 0 || (s.test(i) ? 16 : 10))
        } : o
    },
    Uslz: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("hD5A"),
            o = i("ND2/"),
            s = i("vMqJ"),
            l = i("aCit"),
            u = i("8ZqG"),
            h = i("MIZb"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._axis = new a.d, e.dataItems = new s.b, e.className = "AxisBreak", e.breakSize = .01, e.marginLeft = -5, e.marginRight = -5, e.marginTop = -5, e.marginBottom = -5;
                    var i = new h.a,
                        n = new o.a;
                    n.fill = i.getFor("background"), n.stroke = Object(u.c)(), n.fillOpacity = .9, n.zIndex = 0, e._fillShape = n;
                    var r = new o.a;
                    r.fill = Object(u.c)(), r.stroke = i.getFor("grid"), r.strokeOpacity = .3, r.zIndex = 1, e._startLine = r;
                    var l = new o.a;
                    return l.fill = Object(u.c)(), l.stroke = Object(u.c)("#000000"), l.strokeOpacity = .3, l.zIndex = 2, e._endLine = l, e._disposers.push(e._axis), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.dispose = function() {
                    t.prototype.dispose.call(this), this._fillShape && this._fillShape.dispose(), this._startLine && this._startLine.dispose(), this._endLine && this._endLine.dispose()
                }, Object.defineProperty(e.prototype, "startLine", {
                    get: function() {
                        return this._startLine
                    },
                    set: function(t) {
                        this._startLine && this._startLine.dispose(), this._startLine = t, this.addBreakSprite(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endLine", {
                    get: function() {
                        return this._endLine
                    },
                    set: function(t) {
                        this._endLine && this._endLine.dispose(), this._endLine = t, this.addBreakSprite(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fillShape", {
                    get: function() {
                        return this._fillShape
                    },
                    set: function(t) {
                        this._fillShape && this._fillShape.dispose(), this._fillShape = t, this.addBreakSprite(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.addBreakSprite = function(t) {
                    t.parent = this, t.isMeasured = !1, this._disposers.push(t)
                }, Object.defineProperty(e.prototype, "axis", {
                    get: function() {
                        return this._axis.get()
                    },
                    set: function(t) {
                        if (this._axis.get() !== t) {
                            this._axis.set(t, t.renderer.gridContainer.events.on("transformed", this.invalidate, this, !1)), t.renderer.createBreakSprites(this);
                            var e = t.axisBreaks.template;
                            this.startLine.copyFrom(e.startLine), this.endLine.copyFrom(e.endLine), this.fillShape.copyFrom(e.fillShape)
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "breakSize", {
                    get: function() {
                        return this.getPropertyValue("breakSize")
                    },
                    set: function(t) {
                        this.setPropertyValue("breakSize", t) && this.axis && (this.axis.invalidate(), this.axis.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startPoint", {
                    get: function() {
                        var t = this.axis.renderer;
                        if (t) return t.positionToPoint(this.startPosition)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endPoint", {
                    get: function() {
                        var t = this.axis.renderer;
                        if (t) return t.positionToPoint(this.endPosition)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startPosition", {
                    get: function() {},
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endPosition", {
                    get: function() {},
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.draw = function() {
                    (t.prototype.draw.call(this), this.axis) && this.axis.renderer.updateBreakElement(this)
                }, Object.defineProperty(e.prototype, "startValue", {
                    get: function() {
                        return this.getPropertyValue("startValue")
                    },
                    set: function(t) {
                        this.setPropertyValue("startValue", t) && this.axis && (this.axis.invalidate(), this.axis.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endValue", {
                    get: function() {
                        return this.getPropertyValue("endValue")
                    },
                    set: function(t) {
                        this.setPropertyValue("endValue", t) && this.axis && (this.axis.invalidate(), this.axis.invalidateSeries())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        l.c.registeredClasses.AxisBreak = c
    },
    VAFc: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("ohjg"),
            a = i("8ZqG"),
            o = i("aCit"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "DropShadowFilter", e.color = Object(a.c)("#000"), e.feGaussianBlur = e.paper.add("feGaussianBlur"), e.feGaussianBlur.attr({
                        result: "blurOut",
                        in: "SourceGraphic"
                    }), e.filterPrimitives.push(e.feGaussianBlur), e.feOffset = e.paper.add("feOffset"), e.feOffset.attr({
                        result: "offsetBlur"
                    }), e.filterPrimitives.push(e.feOffset), e.feFlood = e.paper.add("feFlood"), e.feFlood.attr({
                        "flood-color": e.color
                    }), e.filterPrimitives.push(e.feFlood), e.feComposite = e.paper.add("feComposite"), e.feComposite.attr({
                        in2: "offsetBlur",
                        operator: "in"
                    }), e.filterPrimitives.push(e.feComposite), e.feMerge = e.paper.addGroup("feMerge"), e.feMerge.add(e.paper.add("feMergeNode")), e.feMerge.add(e.paper.add("feMergeNode").attr({
                        in: "SourceGraphic"
                    })), e.filterPrimitives.push(e.feMerge), e.width = 200, e.height = 200, e.blur = 1.5, e.dx = 3, e.dy = 3, e.opacity = .5, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "color", {
                    get: function() {
                        return this.properties.color
                    },
                    set: function(t) {
                        this.properties.color = t, this.feFlood && this.feFlood.attr({
                            "flood-color": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "opacity", {
                    get: function() {
                        return this.properties.opacity
                    },
                    set: function(t) {
                        this.properties.opacity = t, this.feFlood.attr({
                            "flood-opacity": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dx", {
                    get: function() {
                        return this.properties.dx
                    },
                    set: function(t) {
                        this.properties.dx = t, this.feOffset.attr({
                            dx: t / this.scale
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dy", {
                    get: function() {
                        return this.properties.dy
                    },
                    set: function(t) {
                        this.properties.dy = t, this.feOffset.attr({
                            dy: t / this.scale
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "blur", {
                    get: function() {
                        return this.properties.blur
                    },
                    set: function(t) {
                        this.properties.blur = t, this.feGaussianBlur.attr({
                            stdDeviation: t / this.scale
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.updateScale = function() {
                    this.dx = this.dx, this.dy = this.dy, this.blur = this.blur
                }, e
            }(r.a);
        o.c.registeredClasses.DropShadowFilter = s
    },
    VB2N: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return f
        }), i.d(e, "a", function() {
            return g
        });
        var n = i("m4/l"),
            r = i("AAkI"),
            a = i("k6kv"),
            o = i("OXm9"),
            s = i("aCit"),
            l = i("+qIf"),
            u = i("+K/x"),
            h = i("Gg2j"),
            c = i("Mtpk"),
            p = i("Wglt"),
            d = i("x79X"),
            f = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.seriesDataItems = {}, e.className = "CategoryAxisDataItem", e.text = "{category}", e.locations.category = 0, e.locations.endCategory = 1, e.deltaPosition = 0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "adapter", {
                    get: function() {
                        return this._adapterO || (this._adapterO = new d.a(this)), this._adapterO
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "category", {
                    get: function() {
                        return this._adapterO && this._adapterO.isEnabled("category") ? this._adapterO.apply("category", this.properties.category) : this.properties.category
                    },
                    set: function(t) {
                        this.setProperty("category", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endCategory", {
                    get: function() {
                        return this.properties.endCategory
                    },
                    set: function(t) {
                        this.setProperty("endCategory", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "deltaPosition", {
                    get: function() {
                        return this.properties.deltaCoordinate
                    },
                    set: function(t) {
                        t != this.properties.deltaCoordinate && (this.setProperty("deltaCoordinate", t), this.component && (this.component.invalidateDataItems(), this.component.invalidateSeries()))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.b),
            g = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.dataItemsByCategory = new l.a, e.className = "CategoryAxis", e.axisFieldName = "category", e._lastDataItem = e.createDataItem(), e._lastDataItem.component = e, e._disposers.push(e._lastDataItem), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.createDataItem = function() {
                    return new f
                }, e.prototype.createAxisBreak = function() {
                    return new u.a
                }, e.prototype.processSeriesDataItem = function(e, i) {
                    t.prototype.processSeriesDataItem.call(this, e, i);
                    var n = e["category" + this.axisLetter];
                    if (c.hasValue(n)) {
                        var r = this.dataItemsByCategory.getKey(n);
                        if (r) {
                            var a = e.component.uid,
                                o = r.seriesDataItems[a];
                            o || (o = [], r.seriesDataItems[a] = o), o.push(e)
                        }
                    } else e.component.dataItems.remove(e)
                }, e.prototype.validateDataRange = function() {
                    var i = this;
                    t.prototype.validateDataRange.call(this), p.each(this._series.iterator(), function(t) {
                        if (t.xAxis instanceof e && t.yAxis instanceof e) t.invalidateDataRange();
                        else {
                            var n = i.positionToIndex(i.start),
                                r = i.positionToIndex(i.end);
                            r >= i.dataItems.length && r--;
                            for (var a = t.uid, o = void 0, s = void 0, l = n; l <= r; l++) {
                                var u = i.dataItems.getIndex(l);
                                if (u) {
                                    var h = u.seriesDataItems[a];
                                    if (h)
                                        for (var p = 0; p < h.length; p++) {
                                            var d = h[p];
                                            if (d) {
                                                var f = d.index;
                                                (!c.isNumber(o) || f < o) && (o = f), (!c.isNumber(s) || f > s) && (s = f)
                                            }
                                        }
                                }
                            }
                            c.isNumber(o) ? t.startIndex = o : t.start = i.start, c.isNumber(s) ? t.endIndex = s + 1 : t.end = i.end, i._axisBreaks && i._axisBreaks.length > 0 && t.invalidateDataRange()
                        }
                    })
                }, e.prototype.validate = function() {
                    var e = this;
                    t.prototype.validate.call(this);
                    var i = this.dataItems.length,
                        n = h.fitToRange(Math.floor(this.start * i - 1), 0, i),
                        r = h.fitToRange(Math.ceil(this.end * i), 0, i);
                    this.renderer.invalid && this.renderer.validate();
                    var a = this.renderer.axisLength / this.renderer.minGridDistance,
                        o = Math.min(this.dataItems.length, Math.ceil((r - n) / a));
                    if (this._startIndex = Math.floor(n / o) * o, this._endIndex = Math.ceil(this.end * i), this.fixAxisBreaks(), this._startIndex == this._endIndex && this._endIndex++, this._frequency = o, !(this.axisLength <= 0)) {
                        this.maxZoomFactor = this.dataItems.length, this.dataItems.length <= 0 && (this.maxZoomFactor = 1), this.resetIterators(), n = h.max(0, this._startIndex - this._frequency), r = h.min(this.dataItems.length, this._endIndex + this._frequency);
                        for (var s = 0, l = 0; l < n; l++) {
                            (c = this.dataItems.getIndex(l)).__disabled = !0
                        }
                        l = r;
                        for (var u = this.dataItems.length; l < u; l++) {
                            (c = this.dataItems.getIndex(l)).__disabled = !0
                        }
                        for (l = n; l < r; l++)
                            if (l < this.dataItems.length) {
                                var c = this.dataItems.getIndex(l);
                                if (l / this._frequency == Math.round(l / this._frequency)) this.isInBreak(l) || (this.appendDataItem(c), this.validateDataElement(c, s)), s++;
                                else c.__disabled = !0
                            } if (this.appendDataItem(this._lastDataItem), this.validateDataElement(this._lastDataItem, s + 1, this.dataItems.length), this._axisBreaks) this._axisBreaks.each(function(t) {
                            var i = t.adjustedStartValue,
                                n = t.adjustedEndValue;
                            if (h.intersect({
                                    start: i,
                                    end: n
                                }, {
                                    start: e._startIndex,
                                    end: e._endIndex
                                }))
                                for (var r = h.fitToRange(Math.ceil(e._frequency / t.breakSize), 1, n - i), a = 0, o = i; o <= n; o += r) {
                                    var s = e.dataItems.getIndex(o);
                                    e.appendDataItem(s), e.validateDataElement(s, a), a++
                                }
                        });
                        this.validateBreaks(), this.validateAxisRanges(), this.ghostLabel.invalidate(), this.renderer.invalidateLayout()
                    }
                }, e.prototype.validateDataElement = function(e, i, n) {
                    t.prototype.validateDataElement.call(this, e), e.itemIndex = this._axisItemCount, this._axisItemCount++;
                    var r = this.renderer;
                    c.isNumber(n) || (n = this.categoryToIndex(e.category));
                    var s = this.categoryToIndex(e.endCategory);
                    c.isNumber(s) || (s = n);
                    var l, u, h, p = this.indexToPosition(n, e.locations.category),
                        d = this.indexToPosition(s, e.locations.endCategory);
                    e.position = p, e.isRange && (l = s, u = this.indexToPosition(n, e.locations.category), h = this.indexToPosition(l, e.locations.endCategory)), e.point = r.positionToPoint(p);
                    var f = e.tick;
                    f && !f.disabled && r.updateTickElement(f, p, d);
                    var g = e.grid;
                    g && !g.disabled && r.updateGridElement(g, p, d);
                    var y = e.label;
                    y && !y.disabled && (e.isRange && void 0 != y.text || (e.text = e.text), r.updateLabelElement(y, p, d), (r instanceof o.a && e.label.measuredWidth > this.ghostLabel.measuredWidth || r instanceof a.a && e.label.measuredHeight > this.ghostLabel.measuredHeight) && (e.label.html ? this.ghostLabel.html = e.label.currentText : this.ghostLabel.text = e.label.currentText));
                    var m = e.axisFill;
                    m && !m.disabled && (e.isRange || (l = n + this._frequency, u = this.indexToPosition(n, m.location), h = this.indexToPosition(l, m.location)), r.updateFillElement(m, u, h), e.isRange || this.fillRule(e, i)), e.bullet && r.updateBullet(e.bullet, p, d);
                    var v = e.mask;
                    v && r.updateFillElement(v, u, h)
                }, e.prototype.disposeData = function() {
                    this.dataItemsByCategory.clear(), t.prototype.disposeData.call(this)
                }, e.prototype.processDataItem = function(e, i) {
                    e && (t.prototype.processDataItem.call(this, e, i), c.hasValue(e.category) && this.dataItemsByCategory.setKey(e.category, e))
                }, e.prototype.getDataItem = function(t) {
                    var e = t[this.dataFields.category];
                    if (c.hasValue(e)) {
                        var i = this.dataItemsByCategory.getKey(e);
                        return i || this.dataItems.create()
                    }
                }, e.prototype.indexToPosition = function(t, e) {
                    c.isNumber(e) || (e = .5);
                    var i = this.startIndex,
                        n = this.endIndex,
                        r = this.adjustDifference(i, n),
                        a = this.startLocation;
                    if (r -= a, r -= 1 - this.endLocation, this._axisBreaks) {
                        var o = this._axisBreaks;
                        p.eachContinue(o.iterator(), function(e) {
                            var r = e.adjustedStartValue,
                                a = e.adjustedEndValue;
                            if (t < i || !c.isNumber(r) || !c.isNumber(a)) return !1;
                            if (h.intersect({
                                    start: r,
                                    end: a
                                }, {
                                    start: i,
                                    end: n
                                })) {
                                r = Math.max(i, r), a = Math.min(n, a);
                                var o = e.breakSize;
                                t > a ? i += (a - r) * (1 - o) : t < r || (t = r + (t - r) * o)
                            }
                            return !0
                        })
                    }
                    var s = 0,
                        l = this.dataItems.getIndex(t);
                    return l && (s = l.deltaPosition), h.round(s + (t + e - a - i) / r, 5)
                }, e.prototype.categoryToPosition = function(t, e) {
                    var i = this.categoryToIndex(t);
                    return this.indexToPosition(i, e)
                }, e.prototype.categoryToPoint = function(t, e) {
                    var i = this.categoryToPosition(t, e),
                        n = this.renderer.positionToPoint(i),
                        r = this.renderer.positionToAngle(i);
                    return {
                        x: n.x,
                        y: n.y,
                        angle: r
                    }
                }, e.prototype.anyToPoint = function(t, e) {
                    return this.categoryToPoint(t, e)
                }, e.prototype.anyToPosition = function(t, e) {
                    return this.categoryToPosition(t, e)
                }, e.prototype.categoryToIndex = function(t) {
                    if (c.hasValue(t)) {
                        var e = this.dataItemsByCategory.getKey(t);
                        if (e) return e.index
                    }
                }, e.prototype.zoomToCategories = function(t, e) {
                    this.zoomToIndexes(this.categoryToIndex(t), this.categoryToIndex(e) + 1)
                }, e.prototype.getAnyRangePath = function(t, e, i, n) {
                    var r = this.categoryToPosition(t, i),
                        a = this.categoryToPosition(e, n);
                    return this.getPositionRangePath(r, a)
                }, e.prototype.roundPosition = function(t, e) {
                    var i = this.positionToIndex(t);
                    return this.indexToPosition(i, e)
                }, e.prototype.getFirstSeriesDataItem = function(t, e) {
                    for (var i = 0; i < t.dataItems.length; i++) {
                        var n = t.dataItems.getIndex(i);
                        if (t.xAxis == this && n.categoryX == e) return n;
                        if (t.yAxis == this && n.categoryY == e) return n
                    }
                }, e.prototype.getLastSeriesDataItem = function(t, e) {
                    for (var i = t.dataItems.length - 1; i >= 0; i--) {
                        var n = t.dataItems.getIndex(i);
                        if (t.xAxis == this && n.categoryX == e) return n;
                        if (t.yAxis == this && n.categoryY == e) return n
                    }
                }, e.prototype.getSeriesDataItemByCategory = function(t, e) {
                    var i, n = this;
                    return e.dataItems.each(function(r) {
                        e.xAxis == n ? r.categoryX == t && (i = r) : e.yAxis == n && r.categoryY == t && (i = r)
                    }), i
                }, e.prototype.getSeriesDataItem = function(t, e, i) {
                    var n = this;
                    if (c.isNumber(e)) {
                        var r = this.positionToIndex(e);
                        r >= this.dataItems.length && r--;
                        var a = this.dataItems.getIndex(r);
                        if (a) {
                            var o, s = a.category,
                                l = t.dataItems.getIndex(r);
                            if (l) {
                                if (t.xAxis == this && l.categoryX == s) return l;
                                if (t.yAxis == this && l.categoryY == s) return l
                            }
                            return t.dataItems.each(function(e) {
                                t.xAxis == n && e.categoryX == s && (o || (o = e), Math.abs(r - o.index) > Math.abs(r - e.index) && (o = e)), t.yAxis == n && e.categoryY == s && (o || (o = e), Math.abs(r - o.index) > Math.abs(r - e.index) && (o = e))
                            }), o
                        }
                    }
                }, e.prototype.getX = function(t, e, i, n, r) {
                    var a = this.getPositionX(t, e, i, n, r);
                    return c.isNaN(a) ? this.basePoint.x : this.renderer.positionToPoint(a).x
                }, e.prototype.getPositionX = function(t, e, i, n, r) {
                    var a;
                    return c.hasValue(e) && (a = this.categoryToPosition(t.categories[e], i)), r && (a = h.fitToRange(a, r.start, r.end)), a
                }, e.prototype.getY = function(t, e, i, n, r) {
                    var a = this.getPositionY(t, e, i, n, r);
                    return c.isNaN(a) ? this.basePoint.y : this.renderer.positionToPoint(a).y
                }, e.prototype.getPositionY = function(t, e, i, n, r) {
                    var a;
                    return c.hasValue(e) && (a = this.categoryToPosition(t.categories[e], i)), r && (a = h.fitToRange(a, r.start, r.end)), a
                }, e.prototype.getAngle = function(t, e, i, n, r) {
                    var a = this.categoryToPosition(t.categories[e], i);
                    return r && (a = h.fitToRange(a, r.start, r.end)), this.positionToAngle(a)
                }, e.prototype.getCellStartPosition = function(t) {
                    return this.roundPosition(t, 0)
                }, e.prototype.getCellEndPosition = function(t) {
                    return this.roundPosition(t, 1)
                }, e.prototype.getTooltipText = function(t) {
                    var e = this.dataItems.getIndex(this.positionToIndex(t));
                    if (e) return this.tooltipDataItem = e, this.tooltip.dataItem = e, this.tooltipText ? this.tooltipText : this._adapterO ? this._adapterO.apply("getTooltipText", e.category) : e.category
                }, e.prototype.positionToIndex = function(t) {
                    (t = h.round(t, 10)) < 0 && (t = 0), t > 1 && (t = 1);
                    var e = this.startIndex,
                        i = this.endIndex,
                        n = i - e - this.startLocation - (1 - this.endLocation);
                    t += 1 / n * this.startLocation;
                    var r = null;
                    if (this._axisBreaks) {
                        var a = this._axisBreaks;
                        p.eachContinue(a.iterator(), function(a) {
                            var o = a.startPosition,
                                s = a.endPosition,
                                l = a.adjustedStartValue,
                                u = a.adjustedEndValue;
                            l = h.max(l, e), u = h.min(u, i);
                            var c = a.breakSize;
                            if (n -= (u - l) * (1 - c), t > s) e += (u - l) * (1 - c);
                            else if (!(t < o)) {
                                var p = (t - o) / (s - o);
                                return r = l + Math.round(p * (u - l)), !1
                            }
                            return !0
                        })
                    }
                    return c.isNumber(r) || (r = Math.floor(t * n + e)), r >= this.dataItems.length && (r = this.dataItems.length - 1), r
                }, e.prototype.positionToCategory = function(t) {
                    return this.getPositionLabel(t)
                }, e.prototype.getPositionLabel = function(t) {
                    var e = this.dataItems.getIndex(this.positionToIndex(t));
                    if (e) return e.category
                }, Object.defineProperty(e.prototype, "basePoint", {
                    get: function() {
                        return this.renderer.positionToPoint(1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.initRenderer = function() {
                    t.prototype.initRenderer.call(this), this.renderer.baseGrid.disabled = !0
                }, Object.defineProperty(e.prototype, "frequency", {
                    get: function() {
                        return this._frequency
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "sortBySeries", {
                    get: function() {
                        return this.getPropertyValue("sortBySeries")
                    },
                    set: function(t) {
                        this.setPropertyValue("sortBySeries", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.processConfig = function(e) {
                    e && c.hasValue(e.sortBySeries) && c.isString(e.sortBySeries) && (this.map.hasKey(e.sortBySeries) ? e.sortBySeries = this.map.getKey(e.sortBySeries) : (this.addDelayedMap("sortBySeries", e.sortBySeries), delete e.sortBySeries)), t.prototype.processConfig.call(this, e)
                }, e
            }(r.a);
        s.c.registeredClasses.CategoryAxis = g, s.c.registeredClasses.CategoryAxisDataItem = f
    },
    VGgz: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        }), i.d(e, "c", function() {
            return u
        }), i.d(e, "b", function() {
            return h
        }), i.d(e, "d", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("o0Lc"),
            a = i("hJ5i"),
            o = i("Wglt"),
            s = i("Mtpk"),
            l = function() {
                function t(t) {
                    this._values = [], this.events = new r.a, null != t && this.setAll(t)
                }
                return Object.defineProperty(t.prototype, "values", {
                    get: function() {
                        return this._values
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype._insert = function(t) {
                    return this._values.push(t), this._values.length - 1
                }, Object.defineProperty(t.prototype, "length", {
                    get: function() {
                        return this._values.length
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.indexOf = function(t) {
                    return a.indexOf(this._values, t)
                }, t.prototype.contains = function(t) {
                    return -1 !== this.indexOf(t)
                }, t.prototype.getIndex = function(t) {
                    return this._values[t]
                }, Object.defineProperty(t.prototype, "first", {
                    get: function() {
                        return this._values[0]
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "last", {
                    get: function() {
                        return this._values[this._values.length - 1]
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.insert = function(t) {
                    var e = this._insert(t);
                    this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", {
                        type: "inserted",
                        target: this,
                        index: e,
                        newValue: t
                    })
                }, t.prototype.remove = function(t) {
                    var e = this.indexOf(t);
                    if (-1 !== e) {
                        var i = this._values[e];
                        a.removeIndex(this._values, e), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", {
                            type: "removed",
                            target: this,
                            index: e,
                            oldValue: i
                        })
                    }
                }, t.prototype.setAll = function(t) {
                    var e = this;
                    a.eachReverse(this._values, function(t, i) {
                        e._values.pop(), e.events.isEnabled("removed") && e.events.dispatchImmediately("removed", {
                            type: "removed",
                            target: e,
                            index: i,
                            oldValue: t
                        })
                    }), a.each(t, function(t) {
                        e.insert(t)
                    })
                }, t.prototype.clear = function() {
                    this.setAll([])
                }, t.prototype.slice = function(e, i) {
                    var n = new t;
                    return n._values = this._values.slice(e, i), n
                }, t.prototype.findClosestIndex = function(t, e, i) {
                    void 0 === i && (i = "any");
                    var n, r, a = -1,
                        l = 0;
                    return o.eachContinue(this.iterator(), function(o) {
                        var u = e(o);
                        if ("any" === i) {
                            if (u === t) return a = l, !1;
                            var h = Math.abs(t - u);
                            (!s.hasValue(r) || r > h) && (a = l, n = u, r = h)
                        } else "left" === i && u < t ? (!s.hasValue(n) || n < u) && (a = l, n = u) : "right" === i && u >= t && (!s.hasValue(n) || n >= u) && (a = l, n = u);
                        return ++l, !0
                    }), -1 === a && ("left" === i ? a = 0 : "right" === i && (a = this.length - 1)), a
                }, t.prototype.iterator = function() {
                    return o.fromArray(this._values)
                }, t.prototype[Symbol.iterator] = function() {
                    var t, e;
                    return Object(n.d)(this, function(i) {
                        switch (i.label) {
                            case 0:
                                t = this._values.length, e = 0, i.label = 1;
                            case 1:
                                return e < t ? [4, this._values[e]] : [3, 4];
                            case 2:
                                i.sent(), i.label = 3;
                            case 3:
                                return ++e, [3, 1];
                            case 4:
                                return [2]
                        }
                    })
                }, t.prototype.each = function(t) {
                    a.each(this._values, t)
                }, t
            }(),
            u = function(t) {
                function e(e) {
                    var i = t.call(this) || this;
                    return i._ordering = e, i
                }
                return Object(n.c)(e, t), e.prototype._insert = function(t) {
                    var e = a.getSortedIndex(this._values, this._ordering, t).index;
                    return a.insertIndex(this._values, e, t), e
                }, e.prototype.indexOf = function(t) {
                    var e = a.getSortedIndex(this._values, this._ordering, t),
                        i = e.found,
                        n = e.index;
                    return i ? n : -1
                }, e.prototype.update = function(t) {
                    var e = a.indexOf(this._values, t);
                    if (-1 !== e) {
                        var i = this._values.length - 1;
                        (0 === e || this._ordering(this._values[e - 1], t) < 0) && (e === i || this._ordering(t, this._values[e + 1]) < 0) || (a.removeIndex(this._values, e), this._insert(t))
                    }
                }, e
            }(l),
            h = function(t) {
                function e(e) {
                    var i = t.call(this) || this;
                    return i.template = e, i
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "template", {
                    get: function() {
                        return this._template
                    },
                    set: function(t) {
                        t.isTemplate = !0, this._template = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(t) {
                    var e = this;
                    o.each(t.iterator(), function(t) {
                        e.insert(t.clone())
                    })
                }, e.prototype.slice = function(t, i) {
                    var n = new e(this.template);
                    return n._values = this._values.slice(t, i), n
                }, e.prototype.create = function(t) {
                    var e = null != t ? new t : this.template.clone();
                    return this.insert(e), e
                }, e
            }(l),
            c = function(t) {
                function e(e, i) {
                    var n = t.call(this, i) || this;
                    return n.template = e, n
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "template", {
                    get: function() {
                        return this._template
                    },
                    set: function(t) {
                        t.isTemplate = !0, this._template = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(t) {
                    var e = this;
                    o.each(t.iterator(), function(t) {
                        e.insert(t.clone())
                    })
                }, e.prototype.create = function(t) {
                    var e = null != t ? new t : this.template.clone();
                    return this.insert(e), e
                }, e
            }(u)
    },
    VIOb: function(t, e, i) {
        "use strict";
        var n = i("m4/l"),
            r = i("aCit"),
            a = i("Y9w3"),
            o = i("hD5A"),
            s = i("vMqJ"),
            l = i("C6dT"),
            u = i("p9TX"),
            h = i("aGXA"),
            c = i("Vs7R"),
            p = i("MIZb"),
            d = i("tjMS"),
            f = i("hGwe"),
            g = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "Grip";
                    var i = new p.a;
                    e.layout = "absolute", e.padding(10, 10, 10, 10), e.margin(3, 3, 3, 3), e.background.fillOpacity = .3, e.background.cornerRadius(10, 10, 10, 10);
                    var n = new c.a;
                    n.element = e.paper.add("path");
                    var r = f.moveTo({
                        x: -6,
                        y: 0
                    });
                    return r += f.lineTo({
                        x: 6,
                        y: 0
                    }), r += f.moveTo({
                        x: -8,
                        y: -6
                    }), r += f.lineTo({
                        x: 0,
                        y: -12
                    }), r += f.lineTo({
                        x: 8,
                        y: -6
                    }), r += f.moveTo({
                        x: -8,
                        y: 6
                    }), r += f.lineTo({
                        x: 0,
                        y: 12
                    }), r += f.lineTo({
                        x: 8,
                        y: 6
                    }), n.path = r, n.strokeWidth = 2, n.fillOpacity = 0, n.pixelPerfect = !0, n.padding(0, 4, 0, 4), n.stroke = i.getFor("text"), n.strokeOpacity = .7, n.align = "center", n.valign = "middle", e.icon = n, e.label.dispose(), e.label = void 0, e.position = "right", e.autoHideDelay = 3e3, e.events.on("shown", function(t) {
                        e._autoHideTimeout && e._autoHideTimeout.dispose(), e.autoHideDelay && (e._autoHideTimeout = e.setTimeout(function() {
                            e.hide()
                        }, e.autoHideDelay))
                    }), e.events.on("down", function(t) {
                        e._autoHideTimeout && e._autoHideTimeout.dispose()
                    }), e.events.on("out", function(t) {
                        e.autoHideDelay && (e._autoHideTimeout = e.setTimeout(function() {
                            e.hide()
                        }, e.autoHideDelay))
                    }), e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "position", {
                    get: function() {
                        return this.getPropertyValue("position")
                    },
                    set: function(t) {
                        if (this.setPropertyValue("position", t)) switch (t) {
                            case "left":
                                this.align = "left", this.valign = "middle", this.horizontalCenter = "left", this.verticalCenter = "middle", this.icon.rotation = 0, this.width = void 0, this.height = Object(d.c)(30);
                                break;
                            case "right":
                                this.align = "right", this.valign = "middle", this.horizontalCenter = "right", this.verticalCenter = "middle", this.icon.rotation = 0, this.width = void 0, this.height = Object(d.c)(30);
                                break;
                            case "top":
                                this.align = "center", this.valign = "top", this.horizontalCenter = "middle", this.verticalCenter = "top", this.icon.rotation = 90, this.width = Object(d.c)(30), this.height = void 0;
                                break;
                            case "bottom":
                                this.align = "center", this.valign = "bottom", this.horizontalCenter = "middle", this.verticalCenter = "bottom", this.icon.rotation = 90, this.width = Object(d.c)(30), this.height = void 0;
                                break;
                            default:
                                this.align = "center", this.valign = "middle", this.horizontalCenter = "middle", this.verticalCenter = "middle", this.icon.rotation = 90, this.width = Object(d.c)(30), this.height = void 0
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "autoHideDelay", {
                    get: function() {
                        return this.getPropertyValue("autoHideDelay")
                    },
                    set: function(t) {
                        this.setPropertyValue("autoHideDelay", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(h.a);
        r.c.registeredClasses.Grip = g;
        var y = i("A6AV"),
            m = i("Wglt"),
            v = i("Mtpk"),
            b = i("TGuK");
        i.d(e, "b", function() {
            return x
        }), i.d(e, "a", function() {
            return _
        });
        var x = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "ChartDataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e
            }(y.a),
            _ = function(t) {
                function e() {
                    var i = t.call(this) || this;
                    if (i._legend = new o.d, i.constructor === e) throw new Error("'Chart' cannot be instantiated directly. Please use a specific chart type.");
                    i.className = "Chart";
                    var n = new u.a;
                    i.titles = new s.e(n), i._disposers.push(new s.c(i.titles)), i._disposers.push(n), i.width = Object(d.c)(100), i.height = Object(d.c)(100), i.layout = "vertical";
                    var r = i.createChild(l.a);
                    r.shouldClone = !1, r.layout = "vertical", r.width = Object(d.c)(100), r.height = Object(d.c)(100), i.chartAndLegendContainer = r;
                    var a = r.createChild(l.a);
                    return a.shouldClone = !1, a.width = Object(d.c)(100), a.height = Object(d.c)(100), i.chartContainer = a, i.showOnInit = !0, i._disposers.push(i._legend), i.titles.events.on("inserted", function(t) {
                        i.processTitle(t), i.updateReaderTitleReferences()
                    }, i, !1), i.titles.events.on("removed", function(t) {
                        i.updateReaderTitleReferences()
                    }, i, !1), i.role = "region", i.defaultState.transitionDuration = 1, i.applyTheme(), i
                }
                return Object(n.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), v.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Chart"))
                }, e.prototype.draw = function() {
                    this.fixLayout(), t.prototype.draw.call(this)
                }, e.prototype.fixLayout = function() {
                    var t = this.legend;
                    if (t) {
                        var e = this.chartAndLegendContainer,
                            i = this.chartContainer;
                        switch (i.x = void 0, i.y = void 0, t.x = void 0, t.y = void 0, t.position) {
                            case "left":
                                e.layout = "horizontal", t.toBack();
                                break;
                            case "right":
                                e.layout = "horizontal", t.toFront();
                                break;
                            case "top":
                                e.layout = "vertical", t.toBack();
                                break;
                            case "bottom":
                                e.layout = "vertical", t.toFront()
                        }
                    }
                }, e.prototype.feedLegend = function() {}, e.prototype.processTitle = function(t) {
                    var e = t.newValue;
                    return e.parent = this, e.toBack(), e.shouldClone = !1, e.align = "center", e.uidAttr(), e
                }, e.prototype.updateReaderTitleReferences = function() {
                    if (this.titles.length) {
                        var t = [];
                        m.each(this.titles.iterator(), function(e) {
                            t.push(e.uid)
                        }), this.setSVGAttribute({
                            "aria-labelledby": t.join(" ")
                        })
                    } else this.removeSVGAttribute("aria-labelledby")
                }, Object.defineProperty(e.prototype, "legend", {
                    get: function() {
                        return this._legend.get()
                    },
                    set: function(t) {
                        this.setLegend(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setLegend = function(t) {
                    var e = this;
                    this._legend.get() !== t && (t ? (t.maxWidth = 200, t.parent = this.chartAndLegendContainer, this._legend.set(t, t.events.on("propertychanged", function(t) {
                        "position" == t.property && e.fixLayout()
                    }, void 0, !1))) : this._legend.reset(), this.feedLegend())
                }, e.prototype.dispose = function() {
                    this.legend && this.legend.dispose(), t.prototype.dispose.call(this)
                }, e.prototype.processConfig = function(e) {
                    e && v.hasValue(e.legend) && !v.hasValue(e.legend.type) && (e.legend.type = "Legend"), t.prototype.processConfig.call(this, e)
                }, e.prototype.copyFrom = function(e) {
                    this.titles.copyFrom(e.titles), this.chartContainer.copyFrom(e.chartContainer), e.legend && (this.legend = e.legend.clone(), this.legend.removeChildren()), t.prototype.copyFrom.call(this, e)
                }, Object.defineProperty(e.prototype, "dragGrip", {
                    get: function() {
                        var t = this;
                        if (!this._dragGrip) {
                            var e = this.tooltipContainer.createChild(g);
                            e.align = "right", e.valign = "middle", e.hide(0), e.events.on("down", function(e) {
                                e.touch && (t.interactionsEnabled = !1)
                            }), e.events.on("up", function(e) {
                                t.interactionsEnabled = !0
                            }), this.events.on("down", function(t) {
                                t.touch && e.show()
                            }), this._dragGrip = e
                        }
                        return this._dragGrip
                    },
                    set: function(t) {
                        this._dragGrip = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "focusable", {
                    get: function() {
                        return this.parent.focusable
                    },
                    set: function(t) {
                        this.parent.focusable = !0
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(a.a);
        r.c.registeredClasses.Chart = _, b.c.push({
            relevant: b.b.widthXS,
            state: function(t, e) {
                if (t instanceof _) {
                    var i = t.states.create(e);
                    return t.pixelPaddingLeft > 10 && (i.properties.paddingLeft = 10), t.pixelPaddingRight > 10 && (i.properties.paddingRight = 10), i
                }
                return null
            }
        }), b.c.push({
            relevant: b.b.heightXS,
            state: function(t, e) {
                if (t instanceof _) {
                    var i = t.states.create(e);
                    return t.pixelPaddingTop > 10 && (i.properties.paddingTop = 10), t.pixelPaddingBottom > 10 && (i.properties.paddingBottom = 10), i
                }
                return null
            }
        }), b.c.push({
            relevant: b.b.widthXXS,
            state: function(t, e) {
                if (t instanceof _) {
                    var i = t.states.create(e);
                    return i.properties.paddingLeft = 0, i.properties.paddingRight = 0, i
                }
                return null
            }
        }), b.c.push({
            relevant: b.b.heightXXS,
            state: function(t, e) {
                if (t instanceof _) {
                    var i = t.states.create(e);
                    return i.properties.paddingTop = 0, i.properties.paddingBottom = 0, i
                }
                return null
            }
        })
    },
    VTyh: function(t, e) {
        var i;
        i = function() {
            return this
        }();
        try {
            i = i || Function("return this")() || (0, eval)("this")
        } catch (t) {
            "object" == typeof window && (i = window)
        }
        t.exports = i
    },
    Vk33: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("FzPm"),
            a = i("aCit"),
            o = i("hGwe"),
            s = i("Gg2j"),
            l = i("v9UT"),
            u = i("aFzC"),
            h = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "WavedCircle", e.element = e.paper.add("path"), e.waveLength = 16, e.waveHeight = 4, e.fill = void 0, e.fillOpacity = 0, e.tension = .8, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    var t = "",
                        e = this.pixelRadius;
                    if (e > 0) {
                        var i = this.getPoints(e);
                        t = o.moveTo(i[0]) + new u.b(this.tension, this.tension).smooth(i)
                    }
                    var n = this.pixelInnerRadius;
                    n > 0 && ((i = this.getPoints(n)).reverse(), t += o.moveTo(i[0]) + new u.b(this.tension, this.tension).smooth(i));
                    this.path = t
                }, e.prototype.getPoints = function(t) {
                    for (var e = t * Math.PI * 2, i = this.waveHeight / 2, n = e / Math.round(e / this.waveLength), r = n / 2, a = [], o = e / n, l = 0; l <= o; l++) {
                        var u = l * n / e * 360,
                            h = (l * n + r) / e * 360;
                        a.push({
                            x: (t - i) * s.cos(u),
                            y: (t - i) * s.sin(u)
                        }), a.push({
                            x: (t + i) * s.cos(h),
                            y: (t + i) * s.sin(h)
                        })
                    }
                    return a.pop(), a
                }, Object.defineProperty(e.prototype, "innerRadius", {
                    get: function() {
                        return this.getPropertyValue("innerRadius")
                    },
                    set: function(t) {
                        this.setPercentProperty("innerRadius", t, !0, !1, 10, !1), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelInnerRadius", {
                    get: function() {
                        return l.relativeToValue(this.innerRadius, s.min(this.innerWidth / 2, this.innerHeight / 2))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "waveLength", {
                    get: function() {
                        return this.getPropertyValue("waveLength")
                    },
                    set: function(t) {
                        this.setPropertyValue("waveLength", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "waveHeight", {
                    get: function() {
                        return this.getPropertyValue("waveHeight")
                    },
                    set: function(t) {
                        this.setPropertyValue("waveHeight", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tension", {
                    get: function() {
                        return this.getPropertyValue("tension")
                    },
                    set: function(t) {
                        this.setPropertyValue("tension", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.WavedCircle = h
    },
    VlLm: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("3sMl"),
            a = i("vfdp"),
            o = i("JZRr"),
            s = i("Kg2n"),
            l = i("8+rI").f,
            u = i("z4fB"),
            h = a.Symbol;
        if (r && "function" == typeof h && (!("description" in h.prototype) || void 0 !== h().description)) {
            var c = {},
                p = function() {
                    var t = arguments.length < 1 || void 0 === arguments[0] ? void 0 : String(arguments[0]),
                        e = this instanceof p ? new h(t) : void 0 === t ? h() : h(t);
                    return "" === t && (c[e] = !0), e
                };
            u(p, h);
            var d = p.prototype = h.prototype;
            d.constructor = p;
            var f = d.toString,
                g = "Symbol(test)" == String(h("test")),
                y = /^Symbol\((.*)\)[^)]+$/;
            l(d, "description", {
                configurable: !0,
                get: function() {
                    var t = s(this) ? this.valueOf() : this,
                        e = f.call(t);
                    if (o(c, t)) return "";
                    var i = g ? e.slice(7, -1) : e.replace(y, "$1");
                    return "" === i ? void 0 : i
                }
            }), n({
                global: !0,
                forced: !0
            }, {
                Symbol: p
            })
        }
    },
    Vs7R: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return R
        }), i.d(e, "a", function() {
            return N
        });
        var n = i("m4/l"),
            r = i("ux7t"),
            a = i("kQxV"),
            o = i("Tjl+"),
            s = i("x79X"),
            l = i("+qIf"),
            u = i("vMqJ"),
            h = i("hD5A"),
            c = i("1yyj"),
            p = i("P7v+"),
            d = i("C6dT"),
            f = i("ZLF9"),
            g = i("sxA1"),
            y = i("CuFa"),
            m = i("8ZqG"),
            v = i("zhwk"),
            b = i("qCRI"),
            x = i("Q4nc"),
            _ = i("aCit"),
            P = i("CTEm"),
            w = i("7XB+"),
            O = i("akNo"),
            T = i("MipW"),
            S = i("P/bD"),
            C = i("GAaQ"),
            I = i("v9UT"),
            k = i("Gg2j"),
            D = i("ScGY"),
            j = i("hJ5i"),
            V = i("Qkdp"),
            A = i("Mtpk"),
            M = i("Wglt"),
            F = i("Rpw0"),
            E = i("tjMS"),
            R = ["fill", "fillOpacity", "stroke", "strokeOpacity", "strokeWidth", "strokeDasharray", "strokeDashoffset", "strokeLinecap", "strokeLinejoin"],
            N = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.properties = {}, e._eventDispatcher = new a.a(e), e._bindings = {}, e._isTemplate = !1, e._isPath = !1, e._inited = !1, e._ready = !1, e.isHiding = !1, e._isHidden = !1, e.isShowing = !1, e.isStandaloneInstance = !1, e._isActive = !1, e._mask = new h.d, e._positionPrecision = 3, e._language = new h.d, e._exporting = new h.d, e._exportable = !0, e._bbox = {
                        x: 0,
                        y: 0,
                        width: 0,
                        height: 0
                    }, e.invalid = !1, e.positionInvalid = !1, e.propertyFields = {}, e.applyOnClones = !1, e._measuredWidthSelf = 0, e._measuredHeightSelf = 0, e.maxLeft = 0, e.maxRight = 0, e.maxTop = 0, e.maxBottom = 0, e.maxLeftSelf = 0, e.maxRightSelf = 0, e.maxTopSelf = 0, e.maxBottomSelf = 0, e._isDragged = !1, e._isResized = !1, e._disabled = !1, e._internalDisabled = !1, e._updateDisabled = !1, e._internalDefaultsApplied = !1, e.rollOutDelay = 0, e.isBaseSprite = !1, e.shouldClone = !0, e.appeared = !1, e.ex = 0, e.ey = 0, e.dragWhileResize = !1, e.measureFailed = !1, e.preventShow = !1, e.cloneTooltip = !0, e.className = "Sprite", e._disposers.push(e._eventDispatcher), I.used(e.uid), e.group = e.paper.addGroup("g"), e.setPropertyValue("scale", 1), e.setPropertyValue("rotation", 0), e.setPropertyValue("align", "none"), e.setPropertyValue("valign", "none"), e.setPropertyValue("pixelPerfect", !1), e.setPropertyValue("visible", !0), e.setPropertyValue("tooltipPosition", "fixed"), e.setPropertyValue("verticalCenter", "none"), e.setPropertyValue("horizontalCenter", "none"), e.setPropertyValue("tooltipX", Object(E.c)(50)), e.setPropertyValue("tooltipX", Object(E.c)(50)), e.setPropertyValue("marginTop", 0), e.setPropertyValue("marginBottom", 0), e.setPropertyValue("marginLeft", 0), e.setPropertyValue("marginRight", 0), e.setPropertyValue("dx", 0), e.setPropertyValue("dy", 0), e.setPropertyValue("paddingTop", 0), e.setPropertyValue("paddingBottom", 0), e.setPropertyValue("paddingRight", 0), e.setPropertyValue("paddingLeft", 0), e.setPropertyValue("togglable", !1), e.setPropertyValue("hidden", !1), e.setPropertyValue("urlTarget", "_self"), e.setPropertyValue("alwaysShowTooltip", !1), e.setPropertyValue("showTooltipOn", "hover"), e._prevMeasuredWidth = 0, e._prevMeasuredHeight = 0, e._measuredWidth = 0, e._measuredHeight = 0, e._isMeasured = !0, e.invalidate(), e.applyTheme(), e._disposers.push(e.events), e._disposers.push(e.group), e._disposers.push(e._mask), e._disposers.push(e._language), e._disposers.push(e._exporting), e._disposers.push(new h.b(function() {
                        V.each(e._bindings, function(t, e) {
                            e.dispose()
                        })
                    })), e.setPropertyValue("interactionsEnabled", !0), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "events", {
                    get: function() {
                        return this._eventDispatcher
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "adapter", {
                    get: function() {
                        return this._adapterO || (this._adapterO = new s.a(this)), this._adapterO
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.applyTheme = function() {
                    t.prototype.applyTheme.call(this), x.a.autoSetClassName && this.setClassName()
                }, e.prototype.getCurrentThemes = function() {
                    var t = this._themes;
                    if (t) return t;
                    var e = this.parent;
                    return e ? e.getCurrentThemes() : _.c.themes
                }, e.prototype.applyInternalDefaults = function() {
                    this._internalDefaultsApplied = !0
                }, e.prototype.invalidate = function() {
                    this.disabled || this._isTemplate || this.invalid || (this.invalid = !0, _.c.addToInvalidSprites(this), F.b.requestFrame())
                }, e.prototype.validate = function() {
                    this.dispatchImmediately("beforevalidated"), this._internalDefaultsApplied || this.applyInternalDefaults(), this.beforeDraw(), this.draw(), this.invalid = !1, _.c.removeFromInvalidSprites(this), this.afterDraw()
                }, e.prototype.invalidatePosition = function() {
                    this.disabled || this._isTemplate || this.positionInvalid || (this.positionInvalid = !0, _.c.addToInvalidPositions(this), F.b.requestFrame())
                }, e.prototype.validatePosition = function() {
                    var t = this.pixelX,
                        e = this.pixelY,
                        i = this.dx,
                        n = this.dy,
                        r = t + i,
                        a = e + n;
                    this._updateDisabled && (this._internalDisabled ? this.group.attr({
                        display: "none"
                    }) : this.disabled || this.removeSVGAttribute("display"), this._updateDisabled = !1);
                    var o = this.measure(),
                        s = this.group.transformString;
                    this.group.moveTo({
                        x: r,
                        y: a
                    }), this.group.rotation = this.rotation, this.nonScaling ? this.group.scale = this.scale / this.globalScale : this.group.scale = this.scale, (s != this.group.transformString || o) && (null == s ? this.dispatch("transformed") : this.dispatchImmediately("transformed"), this.dispatch("positionchanged"), "hit" != this.showTooltipOn && "always" != this.showTooltipOn || this.updateTooltipPosition()), t + i == r && e + n == a && (_.c.removeFromInvalidPositions(this), this.positionInvalid = !1);
                    var l = this._maskRectangle;
                    l && this._clipElement.moveTo({
                        x: l.x - t,
                        y: l.y - e
                    })
                }, e.prototype.beforeDraw = function() {}, e.prototype.draw = function() {}, e.prototype.afterDraw = function() {
                    var t, e;
                    if ((this.isMeasured || "none" !== this.horizontalCenter || "none" !== this.verticalCenter) && this.measureElement(), this._inited) this.dispatch("validated");
                    else {
                        if (this._adapterO) try {
                            for (var i = Object(n.g)(this._adapterO.keys()), r = i.next(); !r.done; r = i.next()) {
                                var a = r.value;
                                switch (a) {
                                    case "mask":
                                    case "fill":
                                    case "opacity":
                                    case "fillOpacity":
                                    case "stroke":
                                    case "strokeOpacity":
                                    case "strokeWidth":
                                    case "shapeRendering":
                                    case "strokeDasharray":
                                    case "strokeDashoffset":
                                    case "strokeLinecap":
                                    case "strokeLinejoin":
                                    case "textDecoration":
                                    case "fontSize":
                                    case "fontFamily":
                                    case "fontWeight":
                                        this[a] = this[a]
                                }
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                r && !r.done && (e = i.return) && e.call(i)
                            } finally {
                                if (t) throw t.error
                            }
                        }
                        this.applyFilters(), this.visible = this.visible, this.interactionsEnabled = this.getPropertyValue("interactionsEnabled"), this._inited = !0, this.showOnInit || (this.appeared = !0), this.hidden && this.hide(0), this.applyMask(), this.dispatch("validated"), this.dispatch("inited"), this.dispatchReady()
                    }
                    "always" == this.showTooltipOn && (!this.visible || this.disabled || this.__disabled ? this.hideTooltip(0) : this.showTooltip())
                }, e.prototype.dispatchReady = function() {
                    this.isReady() || (this._ready = !0, this.dispatch("ready"))
                }, e.prototype.reinit = function() {
                    this._inited = !1, this.setState(this.defaultState), this.invalidate()
                }, e.prototype.handleGlobalScale = function() {
                    this.dispatch("globalscalechanged"), this.nonScalingStroke && (this.strokeWidth = this.strokeWidth), this.nonScaling && this.validatePosition(), this.updateFilterScale()
                }, e.prototype.updateFilterScale = function() {
                    var t = this;
                    M.each(this.filters.iterator(), function(e) {
                        e.scale = t.globalScale
                    })
                }, e.prototype.removeFromInvalids = function() {
                    _.c.removeFromInvalidSprites(this), _.c.removeFromInvalidPositions(this)
                }, e.prototype.copyFrom = function(e) {
                    var i = this;
                    t.prototype.copyFrom.call(this, e), this.isMeasured = e.isMeasured, this.states.copyFrom(e.states), e.filters.length > 0 && e.filters.each(function(t) {
                        i.filters.push(t.clone())
                    }), e._adapterO && this.adapter.copyFrom(e._adapterO), e._interaction && this.interactions.copyFrom(e.interactions), e._plugins && this.plugins.copyFrom(e.plugins), this.configField = e.configField, this.applyOnClones = e.applyOnClones, this.disabled = e.disabled, this.virtualParent = e.virtualParent, this.exportable = e.exportable, e._tooltip && (this._tooltip ? this._tooltip.copyFrom(e.tooltip) : e.cloneTooltip ? this.tooltip = e.tooltip.clone() : this._tooltip = e.tooltip), this._showSystemTooltip = e.showSystemTooltip, I.copyProperties(e.propertyFields, this.propertyFields), I.copyProperties(e.properties, this), e.fillModifier && (this.fillModifier = e.fillModifier.clone()), e.strokeModifier && (this.strokeModifier = e.strokeModifier.clone())
                }, e.prototype.dispose = function() {
                    if (!this.isDisposed()) {
                        if ("always" == this.showTooltipOn && this.tooltip && this.tooltip.hide(), this.dispatchImmediately("beforedisposed"), this.isBaseSprite) {
                            if (this.htmlContainer)
                                for (; this.htmlContainer.childNodes.length > 0;) this.htmlContainer.removeChild(this.htmlContainer.firstChild);
                            this.isBaseSprite = !1
                        }
                        if (t.prototype.dispose.call(this), this._adapterO && this._adapterO.clear(), this.applyOnClones && this._clones)
                            for (var e = this._clones.length - 1; e >= 0; e--) {
                                this._clones.getIndex(e).dispose()
                            }
                        this._svgContainer && this._svgContainer.dispose(), this._interactionDisposer && (this._interactionDisposer.dispose(), this._interactionDisposer = void 0), this._urlDisposer && this._urlDisposer.dispose(), this.removeFromInvalids(), this.element && this.element.dispose(), this.group && this.group.dispose(), this._numberFormatter && this._numberFormatter.dispose(), this._focusFilter && this._focusFilter.dispose();
                        var i = this.stroke;
                        !i || i instanceof m.a || !i.dispose || this.clonedFrom && this.clonedFrom.stroke == i || i.dispose();
                        var n = this.fill;
                        if (!n || n instanceof m.a || !n.dispose || this.clonedFrom && this.clonedFrom.fill == n || n.dispose(), A.hasValue(this.id) && this.map.removeKey(this.id), this.parent = void 0, this._filters)
                            for (; this._filters.length > 0;) {
                                var r = this._filters.getIndex(0);
                                r.dispose(), this._filters.removeValue(r)
                            }
                        this._alwaysShowDisposers = void 0
                    }
                }, Object.defineProperty(e.prototype, "isTemplate", {
                    get: function() {
                        return this._isTemplate
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this._isTemplate != t && (this._isTemplate = t, this instanceof d.a && M.each(this.children.iterator(), function(e) {
                            e.isTemplate = t
                        }), t ? (this.parent = this.parent, this.removeFromInvalids()) : this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "showSystemTooltip", {
                    get: function() {
                        return A.hasValue(this._showSystemTooltip) ? this._showSystemTooltip : this.virtualParent ? this.virtualParent.showSystemTooltip : !!this.parent && this.parent.showSystemTooltip
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this._showSystemTooltip != t && (this._showSystemTooltip = t, this.applyAccessibility())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "topParent", {
                    get: function() {
                        return this._topParent ? this._topParent : this.parent ? this.parent.topParent : void 0
                    },
                    set: function(t) {
                        this._topParent = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "parent", {
                    get: function() {
                        return this._parent
                    },
                    set: function(t) {
                        if (!this._isTemplate) {
                            I.used(this.paper);
                            var e = this._parent;
                            e != t && (e && e.children.removeValue(this), this._parent = t, t ? (this.topParent = t.topParent, t.isTemplate && (this.isTemplate = !0), this.baseId = t.baseId, t.children.push(this), this._tooltip && !this._tooltipContainer && (this._tooltip.parent = t.tooltipContainer), this._dataItem || (this.dataItem = t.dataItem), this.handleAlwaysShowTooltip(), this.dispatchImmediately("parentset")) : this.topParent = void 0)
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleAlwaysShow = function() {
                    this.showTooltip()
                }, e.prototype.handleAlwaysShowTooltip = function() {
                    var t = this,
                        e = this._alwaysShowDisposers;
                    if (e && j.each(e, function(t) {
                            t.dispose()
                        }), this._alwaysShowDisposers = [], "always" == this.showTooltipOn)
                        for (; void 0 != t;) {
                            var i = t.events.on("visibilitychanged", this.handleAlwaysShow, this, !1);
                            this.addDisposer(i), this._alwaysShowDisposers.push(i), t = t.parent
                        }
                }, Object.defineProperty(e.prototype, "virtualParent", {
                    get: function() {
                        return this._virtualParent
                    },
                    set: function(t) {
                        this._virtualParent = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.appendDefs = function() {
                    this.filterElement && this.paper.appendDef(this.filterElement);
                    var t = this.fill;
                    t && t.element && this.paper.appendDef(t.element);
                    var e = this.stroke;
                    if (e && e.element && this.paper.appendDef(e.element), this.fillModifier && this.fill instanceof m.a) {
                        var i = this.fillModifier.modify(this.fill);
                        i && i.element && this.paper.appendDef(i.element)
                    }
                    if (this.strokeModifier && this.stroke instanceof m.a) {
                        var n = this.strokeModifier.modify(this.stroke);
                        n && n.element && this.paper.appendDef(n.element)
                    }
                    this._clipPath && this.paper.appendDef(this._clipPath), !1 === this._exportable && (this.exportable = !1)
                }, Object.defineProperty(e.prototype, "map", {
                    get: function() {
                        var t = this.topParent;
                        return t ? t.map : (this._map || (this._map = new l.a), this._map)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "delayedMap", {
                    get: function() {
                        var t = this.topParent;
                        return t ? t.delayedMap : (this._delayedMap || (this._delayedMap = new l.a), this._delayedMap)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "id", {
                    get: function() {
                        return this._id
                    },
                    set: function(t) {
                        if (this._id != t) {
                            if (this._id = t, this.map.hasKey(t)) throw Error("Duplicate id (" + t + ") used on multiple objects.");
                            this.map.setKey(t, this), x.a.autoSetClassName && this.setClassName()
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dom", {
                    get: function() {
                        return this.group.node
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "paper", {
                    get: function() {
                        return this._paper ? this._paper : this.parent ? this.parent.paper : Object(p.b)()
                    },
                    set: function(t) {
                        this.setPaper(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setPaper = function(t) {
                    return this._paper != t && (this._paper = t, this.appendDefs(), !0)
                }, Object.defineProperty(e.prototype, "htmlContainer", {
                    get: function() {
                        return this._htmlContainer ? this._htmlContainer : this.parent ? this.parent.htmlContainer : void 0
                    },
                    set: function(t) {
                        this._htmlContainer = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "titleElement", {
                    get: function() {
                        return this._titleElement || (this._titleElement = this.paper.add("title"), this.group.add(this._titleElement)), this._titleElement
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "descriptionElement", {
                    get: function() {
                        return this._descriptionElement || (this._descriptionElement = this.paper.add("desc"), this.group.add(this._descriptionElement)), this._descriptionElement
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "filters", {
                    get: function() {
                        return this._filters || (this._filters = new u.b, this._disposers.push(this._filters.events.onAll(this.applyFilters, this)), this._disposers.push(new u.c(this._filters))), this._filters
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setSVGAttributes = function() {
                    this.fill = this.fill, this.opacity = this.opacity, this.fillOpacity = this.fillOpacity, this.stroke = this.stroke, this.strokeOpacity = this.strokeOpacity, this.shapeRendering = this.shapeRendering, this.strokeDasharray = this.strokeDasharray, this.strokeDashoffset = this.strokeDashoffset, this.strokeLinecap = this.strokeLinecap, this.strokeLinejoin = this.strokeLinejoin, this.focusable = this.focusable, this.tabindex = this.tabindex, this.role = this.role
                }, e.prototype.setSVGAttribute = function(t) {
                    this.group.attr(t)
                }, e.prototype.removeSVGAttribute = function(t) {
                    this.group.removeAttr(t)
                }, e.prototype.setClassName = function() {
                    var t = this.className,
                        e = x.a.classNamePrefix;
                    this.element && this.element.addClass(e + t), this.group.addClass(e + t + "-group"), A.hasValue(this.id) && this.group.addClass(e + this.id)
                }, e.prototype.uidAttr = function() {
                    return this.setSVGAttribute({
                        id: this.uid
                    }), this.uid
                }, e.prototype.updateClipPath = function() {
                    var t = this._clipElement;
                    t && t.moveTo({
                        x: this.mask.pixelX,
                        y: this.mask.pixelY
                    })
                }, e.prototype.createClipPath = function() {
                    if (!this._clipPath) {
                        this._clipPath = this.paper.addGroup("clipPath"), this.paper.appendDef(this._clipPath), this._disposers.push(this._clipPath);
                        var t = _.c.getUniqueId();
                        this._clipPath.attr({
                            id: t
                        }), this.group.attr({
                            "clip-path": 'url("' + I.getBaseURI() + t + '")'
                        })
                    }
                }, e.prototype.applyMask = function() {
                    var t = this.mask;
                    if (this._clipPath && t)
                        if (t instanceof d.a) {
                            this._clipElement.attr({
                                width: k.max(0, t.pixelWidth),
                                height: k.max(0, t.pixelHeight)
                            });
                            var e = I.spritePointToSprite({
                                x: t.pixelX,
                                y: t.pixelY
                            }, t.parent, this);
                            this._clipPath.x = e.x, this._clipPath.y = e.y
                        } else t.element && t.element != this._clipElement && (this._clipElement = t.element, this._clipPath.add(this._clipElement)), this._clipPath.scale = t.scale, this._clipPath.x = t.pixelX, this._clipPath.y = t.pixelY, this._clipPath.rotation = t.rotation
                }, e.prototype.applyFilters = function() {
                    var t = this;
                    if (this._filters && this._filters.length > 0) {
                        var e = 100,
                            i = 100;
                        this.filterElement ? this.filterElement.removeChildNodes() : (this.filterElement = this.paper.addGroup("filter"), this._disposers.push(this.filterElement)), this.paper.appendDef(this.filterElement);
                        var n = "filter-" + this.uid;
                        this.filterElement.attr({
                            id: n
                        }), M.each(this.filters.iterator(), function(n) {
                            n.sprite = t, n.paper = t.paper, n.appendPrimitives(t.filterElement), n.width > e && (e = n.width), n.height > i && (i = n.height), n.scale = t.globalScale
                        });
                        var r = e + "%",
                            a = i + "%";
                        this.filterElement.attr({
                            width: r,
                            height: a,
                            x: -(e - 100) / 2 + "%",
                            y: -(i - 100) / 2 + "%"
                        }), this.group.attr({
                            filter: 'url("' + I.getBaseURI() + n + '")'
                        })
                    } else this.filterElement && (this.group.removeAttr("filter"), this.filterElement.removeChildNodes())
                }, e.prototype.removeClipPath = function() {
                    this._clipPath && (this.removeDispose(this._clipPath), this._clipPath = void 0)
                }, e.prototype.setElement = function(t) {
                    this.element = t, this.setSVGAttributes(), this.applyAccessibility()
                }, Object.defineProperty(e.prototype, "element", {
                    get: function() {
                        return this._element
                    },
                    set: function(t) {
                        this.removeElement(), this._element = t, this.group.add(t), t.node instanceof SVGPathElement && (this._isPath = !0), this.invalid || this.validate(), x.a.autoSetClassName && this.setClassName()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "svgContainer", {
                    get: function() {
                        return this._svgContainer ? this._svgContainer : this.parent ? this.parent.svgContainer : void 0
                    },
                    set: function(t) {
                        this._svgContainer = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.measureElement = function() {
                    if (this.element)
                        if (this.definedBBox) this._bbox = this.definedBBox;
                        else {
                            var t = this.element.getBBox();
                            this._bbox = {
                                x: t.x,
                                y: t.y,
                                width: t.width,
                                height: t.height
                            }
                        }
                }, e.prototype.updateCenter = function() {
                    if (this.element) {
                        var t = this.element.transformString,
                            e = this.bbox,
                            i = 0,
                            n = 0,
                            r = e.x,
                            a = e.y,
                            o = e.width,
                            s = e.height,
                            l = this.pixelPaddingLeft,
                            u = this.pixelPaddingRight,
                            h = this.pixelPaddingTop,
                            c = this.pixelPaddingBottom,
                            p = k.max(o + l + u, this.pixelWidth),
                            d = k.max(s + h + c, this.pixelHeight),
                            f = e.x,
                            g = e.x + p,
                            y = e.y,
                            m = e.y + d,
                            v = this.horizontalCenter,
                            b = this.verticalCenter;
                        switch (v) {
                            case "none":
                                i = r + l;
                                break;
                            case "left":
                                i = l;
                                break;
                            case "middle":
                                i = l - (o + u + l) / 2;
                                break;
                            case "right":
                                i = -u - o
                        }
                        switch (b) {
                            case "none":
                                n = a + h;
                                break;
                            case "top":
                                n = h;
                                break;
                            case "middle":
                                n = h - (s + c + h) / 2;
                                break;
                            case "bottom":
                                n = -c - s
                        }
                        this._measuredHeight = d, this._measuredWidth = p;
                        var x = k.round(i - r, this._positionPrecision, !0),
                            _ = k.round(n - a, this._positionPrecision, !0);
                        this.ex = x - l, this.ey = _ - h, this.maxLeft = f + x - l, this.maxRight = g + x - l, this.maxTop = y + _ - h, this.maxBottom = m + _ - h, this.pixelPerfect && (x -= .5, _ -= .5), this.element.moveTo({
                            x: x,
                            y: _
                        }), t != this.element.transformString && this.dispatchImmediately("transformed")
                    }
                }, e.prototype.measure = function() {
                    this.updateCenter();
                    var t = this._measuredWidth,
                        e = this._measuredHeight,
                        i = this.maxLeft,
                        n = this.maxRight,
                        r = this.maxTop,
                        a = this.maxBottom;
                    this._measuredWidthSelf = t, this._measuredHeightSelf = e;
                    var o = this._positionPrecision;
                    if (this.maxLeftSelf = this.maxLeft, this.maxRightSelf = this.maxRight, this.maxTopSelf = this.maxTop, this.maxBottomSelf = this.maxBottom, 0 !== this.rotation || 1 !== this.scale) {
                        this.nonScalingStroke && (this.strokeWidth = this.strokeWidth);
                        var s = this.paper.svg,
                            l = s.createSVGMatrix(),
                            u = this.rotation;
                        l.a = k.cos(u) * this.scale, l.c = -k.sin(u) * this.scale, l.e = 0, l.b = k.sin(u) * this.scale, l.d = k.cos(u) * this.scale, l.f = 0;
                        var h = s.createSVGPoint();
                        h.x = i, h.y = r;
                        var c = s.createSVGPoint();
                        c.x = n, c.y = r;
                        var p = s.createSVGPoint();
                        p.x = n, p.y = a;
                        var d = s.createSVGPoint();
                        d.x = i, d.y = a;
                        var f = h.matrixTransform(l),
                            g = c.matrixTransform(l),
                            y = p.matrixTransform(l),
                            m = d.matrixTransform(l);
                        i = Math.min(f.x, g.x, y.x, m.x), n = Math.max(f.x, g.x, y.x, m.x), r = Math.min(f.y, g.y, y.y, m.y), t = n - i, e = (a = Math.max(f.y, g.y, y.y, m.y)) - r, this.maxLeft = k.round(i, o, !0), this.maxRight = k.round(n, o, !0), this.maxTop = k.round(r, o, !0), this.maxBottom = k.round(a, o, !0)
                    }
                    return this._measuredWidth = k.round(t, o, !0), this._measuredHeight = k.round(e, o, !0), (this._measuredWidth != this._prevMeasuredWidth || this._measuredHeight != this._prevMeasuredHeight) && (this._prevMeasuredHeight = this._measuredHeight, this._prevMeasuredWidth = this._measuredWidth, this.dispatch("sizechanged"), (this.isHover || "hit" == this.showTooltipOn || "always" == this.showTooltipOn) && this.tooltip && this.tooltip.visible && (A.hasValue(this.tooltipText) || A.hasValue(this.tooltipHTML)) && this.updateTooltipPosition(), !0)
                }, e.prototype.insertBefore = function(t) {
                    var e = this.parent;
                    if (e) {
                        var i = e.children.indexOf(t); - 1 !== i && (e.children.moveValue(this, i), e.sortChildren())
                    }
                    return this
                }, e.prototype.insertAfter = function(t) {
                    var e = this.parent;
                    if (e) {
                        var i = e.children.indexOf(t); - 1 !== i && (e.children.moveValue(this, i + 1), e.sortChildren())
                    }
                    return this
                }, e.prototype.removeElement = function() {
                    this._element && (this.removeDispose(this._element), this._element = void 0)
                }, e.prototype.getRelativeX = function(t) {
                    return t instanceof E.a ? t.value : this.parent ? t / this.parent.innerWidth : 0
                }, e.prototype.getRelativeY = function(t) {
                    return t instanceof E.a ? t.value : this.parent ? t / this.parent.innerHeight : 0
                }, e.prototype.getPixelX = function(t) {
                    var e = 0;
                    if (A.isNumber(t)) e = t;
                    else if (t instanceof E.a) {
                        var i = t.value;
                        this.parent && (e = k.round(this.parent.innerWidth * i, this._positionPrecision, !0))
                    }
                    return e
                }, e.prototype.getPixelY = function(t) {
                    var e = 0;
                    if (A.isNumber(t)) e = t;
                    else if (t instanceof E.a) {
                        var i = t.value;
                        this.parent && (e = k.round(this.parent.innerHeight * i, this._positionPrecision, !0))
                    }
                    return e
                }, e.prototype.moveTo = function(t, e, i, n) {
                    this.isDragged && !n || (t && (A.isNumber(t.x) && this.setPropertyValue("x", k.round(t.x, this._positionPrecision, !0)), A.isNumber(t.y) && this.setPropertyValue("y", k.round(t.y, this._positionPrecision, !0))), A.isNumber(e) && (this.rotation = e), A.isNumber(i) && (this.scale = i), this.invalidatePosition())
                }, Object.defineProperty(e.prototype, "mask", {
                    get: function() {
                        return this._adapterO ? this._adapterO.apply("mask", this._mask.get()) : this._mask.get()
                    },
                    set: function(t) {
                        var e = this;
                        this._mask.get() !== t && (t ? (this.createClipPath(), t instanceof d.a ? this._clipElement = this.paper.add("rect") : (t.isMeasured = !1, t.element && (this._clipElement = t.element)), this._clipElement && this._clipPath.add(this._clipElement), this._mask.set(t, new h.c([t.events.on("maxsizechanged", function() {
                            e.inited && e.applyMask()
                        }, void 0, !1), t.events.on("validated", this.applyMask, this, !1), t.events.on("positionchanged", this.applyMask, this, !1)])), this.applyMask()) : (this._mask.reset(), this.group.removeAttr("clip-path"), this.removeClipPath()))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maskRectangle", {
                    get: function() {
                        return this._maskRectangle
                    },
                    set: function(t) {
                        t ? (this.createClipPath(), this._clipElement || (this._clipElement = this.paper.add("rect"), this._clipPath.add(this._clipElement)), this._clipElement.attr({
                            width: t.width,
                            height: t.height
                        })) : (this.removeClipPath(), this._clipElement = void 0), this._maskRectangle = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isMeasured", {
                    get: function() {
                        return this._isMeasured
                    },
                    set: function(t) {
                        (t = A.toBoolean(t)) || (this._measuredWidth = 0, this._measuredHeight = 0), this._isMeasured != t && (this._isMeasured = t, this.invalidatePosition())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.hitTest = function(t) {
                    this.invalid && this.validate(), t.invalid && t.validate();
                    var e = this.pixelX,
                        i = this.pixelY,
                        n = e + this.measuredWidth,
                        r = i + this.measuredHeight,
                        a = t.pixelX,
                        o = t.pixelY,
                        s = a + t.measuredWidth,
                        l = o + t.measuredHeight;
                    return !(a > n || s < e || o > r || l < i)
                }, Object.defineProperty(e.prototype, "inited", {
                    get: function() {
                        return this._inited
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.isReady = function() {
                    return this._ready
                }, Object.defineProperty(e.prototype, "states", {
                    get: function() {
                        if (!this._states) {
                            var t = new r.a;
                            this._states = new l.c(t), this._disposers.push(this._states.events.on("insertKey", this.processState, this, !1)), this._disposers.push(this._states.events.on("setKey", this.processState, this, !1)), this._disposers.push(new l.b(this._states)), this._disposers.push(t)
                        }
                        return this._states
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hiddenState", {
                    get: function() {
                        if (!this.states.getKey("hidden")) {
                            var t = this.states.create("hidden");
                            t.properties.opacity = 0, t.properties.visible = !1
                        }
                        return this.states.getKey("hidden")
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "defaultState", {
                    get: function() {
                        this.states.getKey("default") || (this.states.create("default").properties.opacity = 1);
                        return this.states.getKey("default")
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.processState = function(t) {
                    var e = t.newValue;
                    if (e.sprite = this, e.name = t.key, (this.states.hasKey("hover") || "hover" == this.showTooltipOn && (A.hasValue(this.tooltipHTML) || A.hasValue(this.tooltipText))) && (this.hoverable = !0), (this.states.hasKey("down") || "hover" == this.showTooltipOn && (A.hasValue(this.tooltipHTML) || A.hasValue(this.tooltipText))) && (this.clickable = !0), this.states.hasKey("focus") && (this.focusable = !0), this.applyOnClones)
                        for (var i = this.clones.values, n = i.length, r = 0; r < n; ++r) {
                            var a = i[r];
                            a.isDisposed() || a.states.setKey(e.name, e)
                        }
                }, Object.defineProperty(e.prototype, "animations", {
                    get: function() {
                        return this._animations || (this._animations = [], this._disposers.push(new c.b(this._animations))), this._animations
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getSvgPoint = function(t) {
                    try {
                        var e = this.htmlContainer.getBoundingClientRect();
                        return {
                            x: t.x - e.left,
                            y: t.y - e.top
                        }
                    } catch (e) {
                        return t
                    }
                }, e.prototype.animate = function(t, e, i) {
                    return new c.a(this, t, e, i).start()
                }, e.prototype.setState = function(t, e, i) {
                    var n;
                    if (t instanceof r.a) this.states.setKey(t.name, t), n = t;
                    else if (!(n = this.states.getKey(t))) return;
                    if ("hover" == n.name) {
                        if (this.isHidden) return;
                        this.isHover = !0
                    }
                    return "hidden" == n.name ? this.isHiding = !0 : this.visible || this.setVisibility(n.properties.visible || this.defaultState.properties.visible), "active" == n.name && (this.isActive = !0), A.isNumber(e) || (e = n.transitionDuration), A.hasValue(i) || (i = n.transitionEasing), this.transitTo(n, e, i)
                }, e.prototype.applyCurrentState = function(t) {
                    var e = this.setState(this.defaultState, t);
                    return this.isHover && (e = this.setState("hover", t)), this.isDown && this.interactions.downPointers.length && (e = this.setState("down", t)), this.isFocused = this.isFocused, this.isActive && (e = this.setState("active", t), this.isHover && this.states.hasKey("hoverActive") && (e = this.setState("hoverActive", t))), e
                }, e.prototype.transitTo = function(t, e, i) {
                    var n, r = this,
                        a = [],
                        o = t.allValues;
                    if (V.each(o, function(t, e) {
                            var i = r[t];
                            if (e != i && void 0 == r.defaultState.properties[t] && (r.defaultState.properties[t] = i), "__unset" != e) {
                                var n = {
                                    from: i,
                                    to: e,
                                    property: t
                                };
                                a.push(n)
                            }
                        }), a.length > 0 && ((n = this.animate(a, e, i)) && !n.isFinished() ? this._disposers.push(n.events.on("animationended", function() {
                            r.dispatchImmediately("transitionended")
                        })) : this.dispatchImmediately("transitionended")), t.filters.length > 0) {
                        var s = [];
                        M.each(t.filters.iterator(), function(t) {
                            var n = t.clone();
                            s.push(n);
                            var a = [];
                            M.each(r.filters.iterator(), function(t) {
                                t.className == n.className && (M.contains(r.defaultState.filters.iterator(), function(t) {
                                    return t.className === n.className
                                }) || r.defaultState.filters.push(t), V.each(n.properties, function(e, i) {
                                    var n = t.properties[e];
                                    n != i && a.push({
                                        property: e,
                                        from: n,
                                        to: i
                                    })
                                }))
                            }), n.animate(a, e, i)
                        }), this.filters.clear(), this.filters.pushAll(s)
                    }
                    return n
                }, e.prototype.isInTransition = function() {
                    return this.animations.length > 0
                }, Object.defineProperty(e.prototype, "isHover", {
                    get: function() {
                        return !!this.isInteractive() && this.interactions.isHover
                    },
                    set: function(t) {
                        (t = A.toBoolean(t)) !== this.isHover && this.isInteractive() && (this.interactions.isHover = t, t ? this.handleOver() : (this.interactions.isRealHover = !1, this.handleOut()))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isDragged", {
                    get: function() {
                        return this._isDragged
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isResized", {
                    get: function() {
                        return this._isResized
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isDown", {
                    get: function() {
                        return !!this.isInteractive() && this.interactions.isDown
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.isInteractive() && this.isDown != t && (this.interactions.isDown = t, t ? this.handleDown() : this.handleUp())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isFocused", {
                    get: function() {
                        return !!this.isInteractive() && this.interactions.isFocused
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.focusable && this.isFocused != t && this.isInteractive() && (this.interactions.isFocused = t, !0 === t ? this.handleFocus() : this.handleBlur())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isActive", {
                    get: function() {
                        return this._isActive
                    },
                    set: function(t) {
                        this.setActive(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setActive = function(t) {
                    t = A.toBoolean(t), this._isActive !== t && (this._isActive = t, t && this.states.hasKey("active") ? (this.setState("active"), this.isHover && this.states.hasKey("hoverActive") && this.setState("hoverActive")) : this.applyCurrentState(), this.dispatchImmediately("toggled"))
                }, Object.defineProperty(e.prototype, "disabled", {
                    get: function() {
                        var t = this.getPropertyValue("disabled");
                        return A.hasValue(t) ? t : this.virtualParent ? this.virtualParent.disabled : !!this.parent && this.parent.disabled
                    },
                    set: function(t) {
                        this.setDisabled(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setDisabled = function(t) {
                    if (t = A.toBoolean(t), this.getPropertyValue("disabled") != t) {
                        if (this.setPropertyValue("disabled", t, !0), t) this.parent = this.parent, this.removeFromInvalids(), this.group.attr({
                            display: "none"
                        }), this.dispatch("disabled");
                        else {
                            if (this.parent) {
                                var e = this.parent.element;
                                e.hasChild(this.group) || e.add(this.group)
                            }
                            this instanceof d.a ? (this.deepInvalidate(), this._background && this._background.invalidate()) : this.invalidate(), this.__disabled || this.removeSVGAttribute("display"), this.dispatch("enabled")
                        }
                        return this.dispatch("transformed"), F.b.requestFrame(), !0
                    }
                    return !1
                }, Object.defineProperty(e.prototype, "__disabled", {
                    get: function() {
                        return this._internalDisabled
                    },
                    set: function(t) {
                        this._internalDisabled != t && (this._internalDisabled = t, this._updateDisabled = !0, this.invalidatePosition())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "numberFormatter", {
                    get: function() {
                        return this._numberFormatter ? this._numberFormatter : this.virtualParent ? this.virtualParent.numberFormatter : this.parent ? this.parent.numberFormatter : (this._numberFormatter = new P.a, this._numberFormatter.language = this.language, this.numberFormatter)
                    },
                    set: function(t) {
                        this._numberFormatter = t, this._numberFormatter.language = this.language
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dateFormatter", {
                    get: function() {
                        return this._dateFormatter ? this._dateFormatter : this.virtualParent ? this.virtualParent.dateFormatter : this.parent ? this.parent.dateFormatter : (this._dateFormatter = new w.a, this._dateFormatter.language = this.language, this.dateFormatter)
                    },
                    set: function(t) {
                        this._dateFormatter = t, this._dateFormatter.language = this.language
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "durationFormatter", {
                    get: function() {
                        return this._durationFormatter ? this._durationFormatter : this.virtualParent ? this.virtualParent.durationFormatter : this.parent ? this.parent.durationFormatter : (this._durationFormatter = new O.a, this._durationFormatter.language = this.language, this.durationFormatter)
                    },
                    set: function(t) {
                        this._durationFormatter = t, this._durationFormatter.language = this.language
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "language", {
                    get: function() {
                        var t = this._language.get();
                        return t || (this.virtualParent ? this.virtualParent.language : this.parent ? this.parent.language : (t = new S.a, this.language = t, t))
                    },
                    set: function(t) {
                        var e = this;
                        this._language.get() !== t && this._language.set(t, t.events.on("localechanged", function(t) {
                            if (e._numberFormatter && (e._numberFormatter.language = e.language), e._dateFormatter && (e._dateFormatter.language = e.language), e._durationFormatter && (e._durationFormatter.language = e.language), e._exporting.get()) {
                                var i = e._exporting.get();
                                i.numberFormatter.language = e.language, i.dateFormatter.language = e.language, i.durationFormatter.language = e.language, i.language = e.language
                            }
                            e instanceof d.a && e.deepInvalidate()
                        }))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.populateString = function(t, e) {
                    if (A.hasValue(t)) {
                        t = A.castString(t);
                        var i = (t = Object(T.b)().escape(t)).match(/\{([^}]+)\}/g),
                            n = void 0;
                        if (i)
                            for (n = 0; n < i.length; n++) {
                                var r = i[n].replace(/\{([^}]+)\}/, "$1"),
                                    a = this.getTagValue(r, "", e);
                                A.hasValue(a) || (a = ""), t = t.split(i[n]).join(a)
                            }
                        t = Object(T.b)().unescape(t)
                    } else t = "";
                    return this._adapterO ? this._adapterO.apply("populateString", t) : t
                }, e.prototype.getTagValue = function(t, e, i) {
                    var n;
                    A.hasValue(i) || (i = this.dataItem);
                    for (var r, a = [], o = /([^.]+)\(([^)]*)\)|([^.]+)/g; null !== (r = o.exec(t));)
                        if (r[3]) a.push({
                            prop: r[3]
                        });
                        else {
                            var s = [];
                            if ("" != I.trim(r[2]))
                                for (var l = /'([^']*)'|"([^"]*)"|([0-9\-]+)/g, u = void 0; null !== (u = l.exec(r[2]));) s.push(u[1] || u[2] || u[3]);
                            a.push({
                                method: r[1],
                                params: s
                            })
                        } if (i) {
                        n = this.getTagValueFromObject(a, i.values), A.hasValue(n) && !A.isObject(n) || (n = this.getTagValueFromObject(a, i));
                        var h = i.dataContext;
                        !A.hasValue(n) && h && (n = this.getTagValueFromObject(a, i.dataContext), !A.hasValue(n) && h.dataContext && (n = this.getTagValueFromObject(a, h.dataContext))), !A.hasValue(n) && i.component && i.component.dataItem !== i && (n = i.component.getTagValue(t, e))
                    }
                    return A.hasValue(n) || (n = this.getTagValueFromObject(a, this.populateStringFrom || this)), !A.hasValue(n) && this.parent && (n = this.parent.getTagValue(t, e)), n
                }, e.prototype.getTagValueFromObject = function(t, e, i) {
                    for (var n = e, r = !1, a = 0, o = t.length; a < o; a++) {
                        var s = t[a];
                        if (s.prop) {
                            if (n = n[s.prop], !A.hasValue(n)) return
                        } else switch (s.method) {
                            case "formatNumber":
                                var l = I.anyToNumber(n);
                                A.hasValue(l) && (n = this.numberFormatter.format(l, i || s.params[0] || void 0), r = !0);
                                break;
                            case "formatDate":
                                var u = void 0;
                                if (u = A.isString(n) ? this.dateFormatter.parse(n) : I.anyToDate(n), !A.isDate(u) || A.isNaN(u.getTime())) return;
                                A.hasValue(u) && (n = this.dateFormatter.format(u, i || s.params[0] || void 0), r = !0);
                                break;
                            case "formatDuration":
                                var h = I.anyToNumber(n);
                                A.hasValue(h) && (n = this.durationFormatter.format(h, i || s.params[0] || void 0, s.params[1] || void 0), r = !0);
                                break;
                            case "urlEncode":
                            case "encodeURIComponent":
                                n = encodeURIComponent(n);
                                break;
                            default:
                                n[s.method] && n[s.method].apply(this, s.params)
                        }
                    }
                    if (!r) {
                        var c = [{
                            method: "",
                            params: i
                        }];
                        if (A.hasValue(i)) {
                            var p = I.getFormat(i);
                            p === D.c ? c[0].method = "formatNumber" : p === D.a ? c[0].method = "formatDate" : p === D.b && (c[0].method = "formatDuration")
                        } else A.isNumber(n) ? (c[0].method = "formatNumber", c[0].params = "") : A.isDate(n) && (c[0].method = "formatDate", c[0].params = "");
                        c[0].method && (n = this.getTagValueFromObject(c, n))
                    }
                    return n
                }, Object.defineProperty(e.prototype, "dataItem", {
                    get: function() {
                        if (!this._dataItem) {
                            if (this.virtualParent) return this.virtualParent.dataItem;
                            if (this.parent) return this.parent.dataItem
                        }
                        return this._dataItem
                    },
                    set: function(t) {
                        this.setDataItem(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setDataItem = function(t) {
                    var e = this;
                    if (this._dataItem != t) {
                        if (this._dataItem = t, t) {
                            if (this.configField) {
                                var i = t.dataContext;
                                i && (this.config = i[this.configField], !this.config && i.dataContext && (this.config = i.dataContext[this.configField]))
                            }
                            var n = t.dataContext;
                            if (n) {
                                var r = n.dataContext;
                                V.each(this.propertyFields, function(t, i) {
                                    if (A.hasValue(n[i])) e[t] = n[i];
                                    else if (r) {
                                        var a = r[i];
                                        if (A.hasValue(a)) e[t] = a
                                    }
                                })
                            }
                        }
                        this.invalidate()
                    }
                }, e.prototype.getPropertyValue = function(t) {
                    var e = this.properties[t];
                    return this._isTemplate || this._adapterO && (e = this._adapterO.apply(t, e)), e
                }, e.prototype.setColorProperty = function(t, e, i) {
                    var n = this.properties[t];
                    return !(e instanceof m.a && n instanceof m.a && e.toString() == n.toString()) && this.setPropertyValue(t, e, i)
                }, e.prototype.setPercentProperty = function(t, e, i, n, r, a) {
                    if (e = A.toNumberOrPercent(e), A.isNumber(e)) return e = k.round(e, r, a), this.setPropertyValue(t, e, i, n);
                    var o = this.properties[t];
                    return !(e instanceof E.a && o instanceof E.a && e.value == o.value) && this.setPropertyValue(t, e, i, n)
                }, e.prototype.setPropertyValue = function(t, e, i, n) {
                    if (this.properties[t] !== e && !this.isDisposed()) {
                        if (this.properties[t] = e, this.events.isEnabled("propertychanged")) {
                            var r = {
                                type: "propertychanged",
                                target: this,
                                property: t
                            };
                            this.events.dispatchImmediately("propertychanged", r)
                        }
                        if (i && this.invalidate(), n && this.invalidatePosition(), this.applyOnClones)
                            for (var a = this.clones.values, o = a.length, s = 0; s < o; ++s) {
                                var l = a[s];
                                l.isDisposed() || (l[t] = e)
                            }
                        return !0
                    }
                    return !1
                }, e.prototype.bind = function(t, e, i, n) {
                    var r = this;
                    void 0 === i && (i = t), A.hasValue(this._bindings[t]) && this._bindings[t].dispose(), this[t] = e[i], this._bindings[t] = e.events.on("propertychanged", function(a) {
                        if (a.property === i) {
                            var o = e[i];
                            n && (o = n(o)), r[t] = o
                        }
                    })
                }, e.prototype.observe = function(t, e, i, n) {
                    var r = this;
                    return new h.c(j.map(j.toArray(t), function(t) {
                        return r.events.on("propertychanged", function(n) {
                            n.property === t && e.call(i, n)
                        }, i, n)
                    }))
                }, e.prototype.applyAccessibility = function() {
                    var t = this.readerTitle,
                        e = this.readerDescription,
                        i = this.role,
                        n = this.readerHidden,
                        r = this.readerChecked,
                        a = this.readerControls,
                        o = this.readerLive,
                        s = this.readerOrientation,
                        l = this.readerValueNow,
                        u = this.readerValueText,
                        h = [],
                        c = [],
                        p = this.readerLabelledBy;
                    p && h.push(p);
                    var d = this.readerDescribedBy;
                    if (d && c.push(d), !this.showSystemTooltip && t && (e = e ? t + " -- " + e : t, t = void 0), !t || e || this.showSystemTooltip) {
                        if (t) {
                            var f = this.titleElement,
                                g = this.uid + "-title";
                            f.node.textContent != t && (f.node.textContent = t, f.attr({
                                id: g
                            })), h.push(g)
                        } else this._titleElement && (this.group.removeElement(this._titleElement), this._titleElement = void 0);
                        var y = this.uid + "-description";
                        if (e) {
                            var m = this.descriptionElement;
                            m.node.textContent != e && (m.node.textContent = e, m.attr({
                                id: y
                            })), c.push(y)
                        } else this._descriptionElement && (this.group.removeElement(this._descriptionElement), this._descriptionElement = void 0, j.remove(c, y))
                    } else this.setSVGAttribute({
                        "aria-label": t
                    }), this.removeSVGAttribute("aria-description"), this._titleElement && (this.group.removeElement(this._titleElement), this._titleElement = void 0), this._descriptionElement && (this.group.removeElement(this._descriptionElement), this._descriptionElement = void 0);
                    h.length ? this.setSVGAttribute({
                        "aria-labelledby": h.join(" ")
                    }) : this.removeSVGAttribute("aria-labelledby"), c.length ? this.setSVGAttribute({
                        "aria-describedby": c.join(" ")
                    }) : this.removeSVGAttribute("aria-describedby"), i ? this.setSVGAttribute({
                        role: i
                    }) : this.removeSVGAttribute("role"), n ? this.setSVGAttribute({
                        "aria-hidden": "true"
                    }) : this.removeSVGAttribute("aria-hidden"), r ? this.setSVGAttribute({
                        "aria-checked": "true"
                    }) : !1 === r ? this.setSVGAttribute({
                        "aria-checked": "false"
                    }) : this.removeSVGAttribute("aria-checked"), a ? this.setSVGAttribute({
                        "aria-controls": a
                    }) : this.removeSVGAttribute("aria-controls"), o ? this.setSVGAttribute({
                        "aria-live": o
                    }) : this.removeSVGAttribute("aria-live"), s ? this.setSVGAttribute({
                        "aria-orientation": s
                    }) : this.removeSVGAttribute("aria-orientation"), l ? this.setSVGAttribute({
                        "aria-valuenow": l
                    }) : this.removeSVGAttribute("aria-valuenow"), u ? this.setSVGAttribute({
                        "aria-valuetext": u
                    }) : this.removeSVGAttribute("aria-valuetext")
                }, Object.defineProperty(e.prototype, "readerTitle", {
                    get: function() {
                        var t = this.getPropertyValue("readerTitle");
                        return A.hasValue(t) && this.dataItem ? this.populateString(t) : t
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerTitle", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerDescription", {
                    get: function() {
                        return this.getPropertyValue("readerDescription")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerDescription", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "role", {
                    get: function() {
                        return this.getPropertyValue("role")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("role", t) && (this.applyAccessibility(), "slider" == t && (this.setSVGAttribute({
                            "aria-valuemin": "0"
                        }), this.setSVGAttribute({
                            "aria-valuemax": "100"
                        })))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerHidden", {
                    get: function() {
                        return this.getPropertyValue("readerHidden")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("readerHidden", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerChecked", {
                    get: function() {
                        return this.getPropertyValue("readerChecked")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("readerChecked", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerControls", {
                    get: function() {
                        return this.getPropertyValue("readerControls")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerControls", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerLive", {
                    get: function() {
                        return this.getPropertyValue("readerLive")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerLive", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerLabelledBy", {
                    get: function() {
                        return this.getPropertyValue("readerLabelledBy")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerLabelledBy", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerDescribedBy", {
                    get: function() {
                        return this.getPropertyValue("readerDescribedBy")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerDescribedBy", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerOrientation", {
                    get: function() {
                        return this.getPropertyValue("readerOrientation")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerOrientation", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerValueNow", {
                    get: function() {
                        return this.getPropertyValue("readerValueNow")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerValueNow", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "readerValueText", {
                    get: function() {
                        return this.getPropertyValue("readerValueText")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("readerValueText", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "keyboardOptions", {
                    get: function() {
                        if (!this.interactions.keyboardOptions) {
                            if (this.virtualParent) return this.virtualParent.keyboardOptions;
                            if (this.parent) return this.parent.keyboardOptions
                        }
                        return this.interactions.keyboardOptions
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "mouseOptions", {
                    get: function() {
                        if (!this.interactions.mouseOptions) {
                            if (this.virtualParent) return this.virtualParent.mouseOptions;
                            if (this.parent) return this.parent.mouseOptions
                        }
                        return this.interactions.mouseOptions
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "interactions", {
                    get: function() {
                        if (!this._interaction) {
                            var t = Object(v.b)().getInteraction(this.dom);
                            this._interaction = t, this._interaction.clickable = this.clickable, this._interaction.hoverable = this.hoverable, this._interaction.trackable = this.trackable, this._interaction.draggable = this.draggable, this._interaction.swipeable = this.swipeable, this._interaction.resizable = this.resizable, this._interaction.wheelable = this.wheelable, this._interaction.contextMenuDisabled = this.contextMenuDisabled, this._interaction.inert = this.inert, this._interaction.sprite = this, this._disposers.push(this._interaction)
                        }
                        return this._interaction
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.isInteractive = function() {
                    return !!this._interaction
                }, Object.defineProperty(e.prototype, "focusable", {
                    get: function() {
                        return this.getPropertyValue("focusable")
                    },
                    set: function(t) {
                        var e = this;
                        t = A.toBoolean(t), this.setPropertyValue("focusable", t) && (t || this.isInteractive()) && (this.interactions.focusable = t, t ? (this.setSVGAttribute({
                            focusable: t
                        }), this._tabindex || (this.tabindex = 0)) : (this.removeSVGAttribute("focusable"), this.tabindex = void 0), this.interactions.setEventDisposer("sprite-focusable", t, function() {
                            return new h.c([e.events.on("blur", e.handleBlur, e, !1), e.events.on("focus", e.handleFocus, e, !1)])
                        }))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleFocus = function(t) {
                    this.focusable && (this.topParent && (this.topParent.hasFocused = !0), this.focusFilter && this.filters.push(this.focusFilter), this.hoverOnFocus && (this.isHover = !0, this.handleOver()))
                }, e.prototype.handleBlur = function(t) {
                    this.focusable && (this.topParent && (this.topParent.hasFocused = !1), this.focusFilter && this.filters.removeValue(this.focusFilter), this.hoverOnFocus && (this.isHover = !1, this.handleOut()))
                }, Object.defineProperty(e.prototype, "focusFilter", {
                    get: function() {
                        var t = this._focusFilter;
                        return t || (this.virtualParent ? this.virtualParent.focusFilter : this.parent ? this.parent.focusFilter : void 0)
                    },
                    set: function(t) {
                        this._focusFilter = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hoverOnFocus", {
                    get: function() {
                        return this.getPropertyValue("hoverOnFocus")
                    },
                    set: function(t) {
                        t !== this.hoverOnFocus && this.setPropertyValue("hoverOnFocus", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tabindex", {
                    get: function() {
                        var t = this._tabindex;
                        return null != t ? t : this.virtualParent ? this.virtualParent.tabindex : this.parent ? this.parent.tabindex : void 0
                    },
                    set: function(t) {
                        t = A.toNumber(t), this.setPropertyValue("tabindex", t) && A.isNumber(t) && (this.interactions.tabindex = t, this.setSVGAttribute({
                            tabindex: t
                        }), this.focusable = t > -1 || void 0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "inertiaOptions", {
                    get: function() {
                        return !this.interactions.inertiaOptions && this.parent ? this.parent.inertiaOptions : this.interactions.inertiaOptions
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "draggable", {
                    get: function() {
                        return this.getPropertyValue("draggable")
                    },
                    set: function(t) {
                        var e = this;
                        t = A.toBoolean(t), this.setPropertyValue("draggable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.draggable = t, this.interactions.setEventDisposer("sprite-draggable", t, function() {
                            return new h.c([e.events.on("down", e.handleDown, e, !1), e.events.on("dragstart", e.handleDragStart, e, !1), e.events.on("drag", e.handleDragMove, e, !1), e.events.on("dragstop", e.handleDragStop, e, !1)])
                        }))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleDragStart = function(t) {
                    this.interactions.isTouchProtected && t.touch || (this.interactions.originalPosition = {
                        x: this.pixelX,
                        y: this.pixelY
                    }, this._isDragged = !0, this.hideTooltip(0))
                }, e.prototype.dragStart = function(t) {
                    this._isDragged = !0, Object(v.b)().dragStart(this.interactions, t)
                }, e.prototype.handleDragStop = function(t) {
                    this.interactions.isTouchProtected && t.touch || (this._isDragged = !1, this.showTooltip(), this.interactions.originalPosition = void 0)
                }, e.prototype.dragStop = function(t) {
                    this._isDragged = !1, Object(v.b)().dragStop(this.interactions, t)
                }, e.prototype.handleDragMove = function(t) {
                    if (!this.interactions.isTouchProtected || !t.touch) {
                        var e = this.interactions.originalPosition;
                        if (e && this._isDragged) {
                            var i = this.parent.globalScale * this.svgContainer.cssScale;
                            this.moveTo({
                                x: e.x + t.shift.x / i,
                                y: e.y + t.shift.y / i
                            }, void 0, void 0, !0)
                        }
                        this.dispatchImmediately("dragged", t)
                    }
                }, Object.defineProperty(e.prototype, "inert", {
                    get: function() {
                        return this.getPropertyValue("inert")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("inert", t) && (t || this.isInteractive()) && (this.interactions.inert = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hoverOptions", {
                    get: function() {
                        if (!this.interactions.hoverOptions) {
                            if (this.virtualParent) return this.virtualParent.hoverOptions;
                            if (this.parent) return this.parent.hoverOptions
                        }
                        return this.interactions.hoverOptions
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hoverable", {
                    get: function() {
                        return this.getPropertyValue("hoverable")
                    },
                    set: function(t) {
                        var e = this;
                        t = A.toBoolean(t), this.setPropertyValue("hoverable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.hoverable = t, this.interactions.setEventDisposer("sprite-hoverable", t, function() {
                            return new h.c([e.events.on("over", e.handleOver, e, !1), e.events.on("out", e.handleOut, e, !1)])
                        }))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleOver = function(t) {
                    if (this._outTimeout && this._outTimeout.dispose(), this.isHover) {
                        this.states.hasKey("hover") && (this.isHidden || this.applyCurrentState());
                        var e = void 0;
                        t && t.pointer && (e = I.documentPointToSvg(t.pointer.point, this.svgContainer.SVGContainer, this.svgContainer.cssScale)), "hover" == this.showTooltipOn && this.showTooltip(e)
                    } else "hover" == this.showTooltipOn && this.hideTooltip(), !this.isHidden && this.states.hasKey("hover") && this.applyCurrentState()
                }, e.prototype.handleOut = function(t) {
                    var e = this;
                    this.tooltip && this.tooltip.targetSprite == this && this.tooltip.keepTargetHover ? this._outTimeout = this.setTimeout(function() {
                        e.tooltip.isHover || (e.tooltip.targetSprite == e && e.hideTooltip(), e._outTimeout = e.setTimeout(e.handleOutReal.bind(e), e.rollOutDelay))
                    }, 10) : ("hover" == this.showTooltipOn && this.hideTooltip(), this._outTimeout = this.setTimeout(this.handleOutReal.bind(this), this.rollOutDelay))
                }, e.prototype.handleOutReal = function() {
                    this.isHidden || this.isHiding || !this.states.hasKey("hover") || this.applyCurrentState()
                }, Object.defineProperty(e.prototype, "hitOptions", {
                    get: function() {
                        if (!this.interactions.hitOptions) {
                            if (this.virtualParent) return this.virtualParent.hitOptions;
                            if (this.parent) return this.parent.hitOptions
                        }
                        return this.interactions.hitOptions
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleDown = function(t) {
                    1 === this.interactions.downPointers.length && (this.interactions.originalPosition = {
                        x: this.pixelX,
                        y: this.pixelY
                    }, this.interactions.originalAngle = this.rotation, this.interactions.originalScale = this.scale, this.states.hasKey("down") && this.setState("down"))
                }, e.prototype.handleUp = function(t) {
                    var e = this;
                    this._isResized = !1, this.states.hasKey("down") && this.applyCurrentState(), "hit" == this.showTooltipOn && (this.showTooltip(), this._disposers.push(Object(v.b)().body.events.once("down", function(t) {
                        e.hideTooltip()
                    })))
                }, Object.defineProperty(e.prototype, "clickable", {
                    get: function() {
                        return this.getPropertyValue("clickable")
                    },
                    set: function(t) {
                        var e = this;
                        t = A.toBoolean(t), this.setPropertyValue("clickable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.clickable = t, this.interactions.setEventDisposer("sprite-clickable", t, function() {
                            return new h.c([e.events.on("down", e.handleDown, e, !1), e.events.on("up", e.handleUp, e, !1)])
                        }))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "togglable", {
                    get: function() {
                        return this.getPropertyValue("togglable")
                    },
                    set: function(t) {
                        var e = this;
                        t = A.toBoolean(t), this.setPropertyValue("togglable", t) && (t || this.isInteractive()) && this.interactions.setEventDisposer("sprite-togglable", t, function() {
                            return e.events.on("hit", e.handleToggle, e, !1)
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleToggle = function(t) {
                    this.isActive = !this.isActive
                }, Object.defineProperty(e.prototype, "contextMenuDisabled", {
                    get: function() {
                        return this.getPropertyValue("contextMenuDisabled")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("contextMenuDisabled", t) && (this.interactions.contextMenuDisabled = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "url", {
                    get: function() {
                        return this.getPropertyValue("url")
                    },
                    set: function(t) {
                        this.setPropertyValue("url", t) && (this._urlDisposer && this._urlDisposer.dispose(), I.isNotEmpty(t) && (this._urlDisposer = this.events.on("hit", this.urlHandler, this, !1), this.clickable = !0, this.cursorOverStyle = b.a.pointer))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "baseId", {
                    get: function() {
                        return !this._baseId && this.parent && (this.baseId = this.parent.baseId), this._baseId
                    },
                    set: function(t) {
                        this.setBaseId(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setBaseId = function(t) {
                    t != this._baseId && (this.invalid && (this.invalid = !1, _.c.removeFromInvalidSprites(this), this.invalidate()), this._baseId = t)
                }, Object.defineProperty(e.prototype, "baseSprite", {
                    get: function() {
                        return this.isBaseSprite ? this : this.parent ? this.parent.baseSprite : void 0
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "urlTarget", {
                    get: function() {
                        return this.getPropertyValue("urlTarget")
                    },
                    set: function(t) {
                        this.setPropertyValue("urlTarget", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.urlHandler = function(t) {
                    if (I.isNotEmpty(this.url)) {
                        var e = this.populateString(this.url);
                        "_self" === this.urlTarget ? window.location.href = e : window.open(e, this.urlTarget)
                    }
                }, Object.defineProperty(e.prototype, "swipeOptions", {
                    get: function() {
                        if (!this.interactions.swipeOptions) {
                            if (this.virtualParent) return this.virtualParent.swipeOptions;
                            if (this.parent) return this.parent.swipeOptions
                        }
                        return this.interactions.swipeOptions
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "swipeable", {
                    get: function() {
                        return this.getPropertyValue("swipeable")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("swipeable", t) && (this.applyCursorStyle(), (t || this.isInteractive()) && (this.interactions.swipeable = t))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "trackable", {
                    get: function() {
                        return this.getPropertyValue("trackable")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("trackable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.trackable = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "wheelable", {
                    get: function() {
                        return this.getPropertyValue("wheelable")
                    },
                    set: function(t) {
                        this.setPropertyValue("wheelable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.wheelable = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "resizable", {
                    get: function() {
                        return this.getPropertyValue("resizable")
                    },
                    set: function(t) {
                        var e = this;
                        t = A.toBoolean(t), this.setPropertyValue("resizable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.resizable = t, this.interactions.setEventDisposer("sprite-resizable", t, function() {
                            return new h.c([e.events.on("down", e.handleDown, e, !1), e.events.on("resize", e.handleResize, e, !1)])
                        }))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleResize = function(t) {
                    if ((!this.interactions.isTouchProtected || !t.touch) && (this._isResized = !0, this.scale = this.interactions.originalScale * t.scale, this.validatePosition(), this.draggable || this.dragWhileResize)) {
                        this._isDragged = !1;
                        var e = I.documentPointToSvg(t.point1, this.htmlContainer, this.svgContainer.cssScale),
                            i = I.documentPointToSvg(t.point2, this.htmlContainer, this.svgContainer.cssScale),
                            n = k.getMidPoint(e, i),
                            r = I.documentPointToSprite(t.startPoint1, this.parent),
                            a = I.documentPointToSprite(t.startPoint2, this.parent),
                            o = this.interactions.originalPosition,
                            s = this.interactions.originalScale;
                        if (o) {
                            var l = {
                                    x: (r.x - o.x) / s,
                                    y: (r.y - o.y) / s
                                },
                                u = {
                                    x: (a.x - o.x) / s,
                                    y: (a.y - o.y) / s
                                },
                                h = k.getMidPoint(l, u),
                                c = I.svgPointToSprite(n, this.parent);
                            this.moveTo({
                                x: c.x - h.x * this.scale,
                                y: c.y - h.y * this.scale
                            }, void 0, void 0, !0)
                        }
                    }
                }, Object.defineProperty(e.prototype, "cursorOptions", {
                    get: function() {
                        if (!this.interactions.cursorOptions) {
                            if (this.virtualParent) return this.virtualParent.cursorOptions;
                            if (this.parent) return this.parent.cursorOptions
                        }
                        return this.interactions.cursorOptions
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cursorOverStyle", {
                    set: function(t) {
                        this.cursorOptions.overStyle || (this.interactions.cursorOptions = {
                            defaultStyle: this.cursorOptions.defaultStyle
                        }), this.cursorOptions.overStyle = t, Object(v.b)().applyCursorOverStyle(this.interactions)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cursorDownStyle", {
                    set: function(t) {
                        this.cursorOptions.downStyle = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.applyCursorStyle = function() {}, Object.defineProperty(e.prototype, "interactionsEnabled", {
                    get: function() {
                        return !1 !== this.getPropertyValue("interactionsEnabled") && (this.virtualParent ? this.virtualParent.interactionsEnabled : !this.parent || this.parent.interactionsEnabled)
                    },
                    set: function(t) {
                        if (t = A.toBoolean(t), this.setPropertyValue("interactionsEnabled", t)) {
                            var e = null;
                            t ? this.group.node.style.pointerEvents = "" : e = "none", this.group.node.style.pointerEvents = e
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "exporting", {
                    get: function() {
                        return this.getExporting()
                    },
                    set: function(t) {
                        this._exporting.set(t, t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getExporting = function() {
                    var t = this._exporting.get();
                    return t || (!this.isStandaloneInstance && this.parent ? this.parent.exporting : ((t = new C.a(this.svgContainer.SVGContainer)).sprite = this, t.language = this.language, t.numberFormatter = this.numberFormatter, t.dateFormatter = this.dateFormatter, t.durationFormatter = this.durationFormatter, this._exporting.set(t, t), t))
                }, Object.defineProperty(e.prototype, "exportable", {
                    get: function() {
                        return this._exportable
                    },
                    set: function(t) {
                        var e = this.svgContainer;
                        this._exportable = t, e && (t ? j.remove(e.nonExportableSprites, this) : -1 == j.indexOf(e.nonExportableSprites, this) && e.nonExportableSprites.push(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.modalPrefix = function(t) {
                    return t = x.a.classNamePrefix + t
                }, Object.defineProperty(e.prototype, "modal", {
                    get: function() {
                        var t = this.svgContainer;
                        if (t) {
                            var e = t.modal;
                            return e.adapter.has("classPrefix", this.modalPrefix) || e.adapter.add("classPrefix", this.modalPrefix), e
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.openModal = function(t, e) {
                    var i = this.svgContainer;
                    if (i) return i.openModal(t, e)
                }, e.prototype.closeModal = function() {
                    var t = this.svgContainer;
                    t && t.closeModal()
                }, Object.defineProperty(e.prototype, "popups", {
                    get: function() {
                        var t = this.svgContainer;
                        if (t) {
                            var e = t.popups;
                            return e.template.sprite = this, e.template.adapter.has("classPrefix", this.modalPrefix) || e.template.adapter.add("classPrefix", this.modalPrefix), e
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.openPopup = function(t, e) {
                    var i = this.svgContainer;
                    if (i) return i.openPopup(t, e)
                }, e.prototype.closeAllPopups = function() {
                    var t = this.svgContainer;
                    t && t.closeAllPopups()
                }, Object.defineProperty(e.prototype, "x", {
                    get: function() {
                        return this.getPropertyValue("x")
                    },
                    set: function(t) {
                        this.isDragged || this.setPercentProperty("x", t, !1, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelX", {
                    get: function() {
                        var t = k.fitToRange(this.getPixelX(this.x), this.minX, this.maxX);
                        return this._adapterO ? this._adapterO.apply("pixelX", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativeX", {
                    get: function() {
                        return this._adapterO ? this._adapterO.apply("relativeX", this.getRelativeX(this.x)) : this.getRelativeX(this.x)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minX", {
                    get: function() {
                        return this.getPropertyValue("minX")
                    },
                    set: function(t) {
                        A.isNumber(t) && (t = k.round(t, this._positionPrecision, !0), this.setPropertyValue("minX", t, !1, !0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxX", {
                    get: function() {
                        return this.getPropertyValue("maxX")
                    },
                    set: function(t) {
                        A.isNumber(t) && (t = k.round(t, this._positionPrecision, !0), this.setPropertyValue("maxX", t, !1, !0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "y", {
                    get: function() {
                        return this.getPropertyValue("y")
                    },
                    set: function(t) {
                        this.isDragged || this.setPercentProperty("y", t, !1, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelY", {
                    get: function() {
                        var t = k.fitToRange(this.getPixelY(this.y), this.minY, this.maxY);
                        return this._adapterO ? this._adapterO.apply("pixelY", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativeY", {
                    get: function() {
                        return this._adapterO ? this._adapterO.apply("relativeY", this.getRelativeX(this.y)) : this.getRelativeX(this.y)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minY", {
                    get: function() {
                        return this.getPropertyValue("minY")
                    },
                    set: function(t) {
                        A.isNumber(t) && (t = k.round(t, this._positionPrecision, !0), this.setPropertyValue("minY", t, !1, !0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxY", {
                    get: function() {
                        return this.getPropertyValue("maxY")
                    },
                    set: function(t) {
                        A.isNumber(t) && (t = k.round(t, this._positionPrecision, !0), this.setPropertyValue("maxY", t, !1, !0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dx", {
                    get: function() {
                        return this.getPropertyValue("dx")
                    },
                    set: function(t) {
                        A.isNumber(t) && (t = k.round(t, this._positionPrecision, !0), this.setPropertyValue("dx", t, !1, !0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dy", {
                    get: function() {
                        return this.getPropertyValue("dy")
                    },
                    set: function(t) {
                        A.isNumber(t) && (t = k.round(t, this._positionPrecision, !0), this.setPropertyValue("dy", t, !1, !0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "rotation", {
                    get: function() {
                        return this.getPropertyValue("rotation")
                    },
                    set: function(t) {
                        t = A.toNumber(t), A.isNumber(t) || (t = 0), this.setPropertyValue("rotation", t, !1, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "align", {
                    get: function() {
                        return this.getPropertyValue("align")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("align", t) && this.parent && this.parent.invalidateLayout()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "valign", {
                    get: function() {
                        return this.getPropertyValue("valign")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("valign", t) && this.parent && this.parent.invalidateLayout()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "horizontalCenter", {
                    get: function() {
                        return this.getPropertyValue("horizontalCenter")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("horizontalCenter", t) && this.updateCenter()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "verticalCenter", {
                    get: function() {
                        return this.getPropertyValue("verticalCenter")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("verticalCenter", t) && this.updateCenter()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxWidth", {
                    get: function() {
                        var t = this.getPropertyValue("maxWidth");
                        if (!A.isNumber(t) && this.parent) {
                            var e = this.parent.maxWidth;
                            return "absolute" != this.parent.layout && "none" != this.align && void 0 != this.align && (e = e - this.pixelMarginLeft - this.pixelMarginRight), e
                        }
                        return t
                    },
                    set: function(t) {
                        this.setMaxWidth(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setMaxWidth = function(t) {
                    var e = this.maxWidth,
                        i = this.maxHeight;
                    if (this.setPropertyValue("maxWidth", t)) {
                        A.isNumber(this.relativeWidth) && this.invalidate();
                        var n = {
                            type: "maxsizechanged",
                            target: this,
                            previousWidth: e,
                            previousHeight: i
                        };
                        this.dispatchImmediately("maxsizechanged", n)
                    }
                }, Object.defineProperty(e.prototype, "maxHeight", {
                    get: function() {
                        var t = this.getPropertyValue("maxHeight");
                        if (!A.isNumber(t) && this.parent) {
                            var e = this.parent.maxHeight;
                            return "absolute" != this.parent.layout && "none" != this.valign && void 0 != this.valign && (e = e - this.pixelMarginTop - this.pixelMarginBottom), e
                        }
                        return t
                    },
                    set: function(t) {
                        this.setMaxHeight(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setMaxHeight = function(t) {
                    var e = this.maxWidth,
                        i = this.maxHeight;
                    if (this.setPropertyValue("maxHeight", t)) {
                        A.isNumber(this.relativeHeight) && this.invalidate();
                        var n = {
                            type: "maxsizechanged",
                            target: this,
                            previousWidth: e,
                            previousHeight: i
                        };
                        this.dispatchImmediately("maxsizechanged", n)
                    }
                }, Object.defineProperty(e.prototype, "minWidth", {
                    get: function() {
                        return this.getPropertyValue("minWidth")
                    },
                    set: function(t) {
                        this.setPropertyValue("minWidth", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minHeight", {
                    get: function() {
                        return this.getPropertyValue("minHeight")
                    },
                    set: function(t) {
                        this.setPropertyValue("minHeight", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "width", {
                    get: function() {
                        return this.getPropertyValue("width")
                    },
                    set: function(t) {
                        this.setPercentProperty("width", t, !0, !1, this._positionPrecision, !0) && (this.percentWidth = void 0, this.relativeWidth = void 0, t instanceof E.a ? (this.percentWidth = t.percent, A.isNumber(this._pixelWidth) && (this.maxWidth = void 0), this._pixelWidth = void 0) : (this._pixelWidth = Number(t), this.maxWidth = this._pixelWidth), this.invalidatePosition())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "height", {
                    get: function() {
                        return this.getPropertyValue("height")
                    },
                    set: function(t) {
                        this.setPercentProperty("height", t, !0, !1, this._positionPrecision, !0) && (this.percentHeight = void 0, this._relativeHeight = void 0, t instanceof E.a ? (this.percentHeight = t.percent, A.isNumber(this._pixelHeight) && (this.maxHeight = void 0), this._pixelHeight = void 0) : (this._pixelHeight = Number(t), this.maxHeight = this._pixelHeight), this.invalidatePosition())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelWidth", {
                    get: function() {
                        var t;
                        t = A.isNumber(this.percentWidth) ? this.maxWidth : A.isNumber(this._pixelWidth) ? this._pixelWidth : 0;
                        var e = this.minWidth;
                        null != e && t < e && (t = e);
                        var i = k.round(t, this._positionPrecision, !0);
                        return this._adapterO ? this._adapterO.apply("pixelWidth", i) : i
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelHeight", {
                    get: function() {
                        var t;
                        t = A.isNumber(this.percentHeight) ? this.maxHeight : A.isNumber(this._pixelHeight) ? this._pixelHeight : 0;
                        var e = this.minHeight;
                        null != e && t < e && (t = e);
                        var i = k.round(t, this._positionPrecision, !0);
                        return this._adapterO ? this._adapterO.apply("pixelHeight", i) : i
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativeWidth", {
                    get: function() {
                        var t = this._relativeWidth;
                        if (A.isNumber(t)) return this._adapterO ? this._adapterO.apply("relativeWidth", t) : t
                    },
                    set: function(t) {
                        this._relativeWidth != t && (this._relativeWidth = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativeHeight", {
                    get: function() {
                        var t = this._relativeHeight;
                        if (A.isNumber(t)) return this._adapterO ? this._adapterO.apply("relativeHeight", t) : t
                    },
                    set: function(t) {
                        this._relativeHeight != t && (this._relativeHeight = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "measuredWidth", {
                    get: function() {
                        return this.disabled || this.__disabled ? 0 : this._adapterO ? this._adapterO.apply("measuredWidth", this._measuredWidth) : this._measuredWidth
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "measuredHeight", {
                    get: function() {
                        return this.disabled || this.__disabled ? 0 : this._adapterO ? this._adapterO.apply("measuredHeight", this._measuredHeight) : this._measuredHeight
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "outerWidth", {
                    get: function() {
                        var t = this.pixelWidth + this.pixelMarginRight + this.pixelMarginLeft;
                        return this._adapterO ? this._adapterO.apply("outerWidth", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "outerHeight", {
                    get: function() {
                        var t = this.pixelHeight + this.pixelMarginTop + this.pixelMarginBottom;
                        return this._adapterO ? this._adapterO.apply("outerHeight", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "innerWidth", {
                    get: function() {
                        var t = Math.max(0, this.pixelWidth - this.pixelPaddingRight - this.pixelPaddingLeft);
                        return this._adapterO ? this._adapterO.apply("innerWidth", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "innerHeight", {
                    get: function() {
                        var t = Math.max(0, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom);
                        return this._adapterO ? this._adapterO.apply("innerHeight", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "globalScale", {
                    get: function() {
                        var t = this.scale;
                        return this.parent && (t *= this.parent.globalScale), this._adapterO ? this._adapterO.apply("globalScale", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "scale", {
                    get: function() {
                        return this.getPropertyValue("scale")
                    },
                    set: function(t) {
                        (t = A.toNumber(t)) < 0 && (t = 0), t != this.getPropertyValue("scale") && (this.setPropertyValue("scale", t, !1, !0), this.handleGlobalScale())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.margin = function(t, e, i, n) {
                    return this.marginTop = t, this.marginRight = e, this.marginBottom = i, this.marginLeft = n, this
                }, Object.defineProperty(e.prototype, "marginLeft", {
                    get: function() {
                        return this.getPropertyValue("marginLeft")
                    },
                    set: function(t) {
                        this.setPercentProperty("marginLeft", t, !0, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "marginRight", {
                    get: function() {
                        return this.getPropertyValue("marginRight")
                    },
                    set: function(t) {
                        this.setPercentProperty("marginRight", t, !0, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "marginTop", {
                    get: function() {
                        return this.getPropertyValue("marginTop")
                    },
                    set: function(t) {
                        this.setPercentProperty("marginTop", t, !0, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "marginBottom", {
                    get: function() {
                        return this.getPropertyValue("marginBottom")
                    },
                    set: function(t) {
                        this.setPercentProperty("marginBottom", t, !0, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelMarginRight", {
                    get: function() {
                        var t = this.getPixelX(this.marginRight);
                        return this._adapterO ? this._adapterO.apply("pixelMarginRight", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativeMarginRight", {
                    get: function() {
                        var t = this.getRelativeX(this.marginRight);
                        return this._adapterO ? this._adapterO.apply("relativeMarginRight", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelMarginLeft", {
                    get: function() {
                        var t = this.getPixelX(this.marginLeft);
                        return this._adapterO ? this._adapterO.apply("pixelMarginLeft", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativeMarginLeft", {
                    get: function() {
                        var t = this.getRelativeX(this.marginLeft);
                        return this._adapterO ? this._adapterO.apply("relativeMarginLeft", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelMarginTop", {
                    get: function() {
                        var t = this.getPixelY(this.marginTop);
                        return this._adapterO ? this._adapterO.apply("pixelMarginTop", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativeMarginTop", {
                    get: function() {
                        var t = this.getRelativeY(this.marginTop);
                        return this._adapterO ? this._adapterO.apply("relativeMarginTop", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelMarginBottom", {
                    get: function() {
                        var t = this.getPixelY(this.marginBottom);
                        return this._adapterO ? this._adapterO.apply("pixelMarginBottom", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativeMarginBottom", {
                    get: function() {
                        var t = this.getRelativeY(this.marginBottom);
                        return this._adapterO ? this._adapterO.apply("relativeMarginBottom", t) : t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.padding = function(t, e, i, n) {
                    return this.paddingTop = t, this.paddingRight = e, this.paddingBottom = i, this.paddingLeft = n, this
                }, Object.defineProperty(e.prototype, "paddingLeft", {
                    get: function() {
                        return this.getPropertyValue("paddingLeft")
                    },
                    set: function(t) {
                        this.setPercentProperty("paddingLeft", t, !0, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "paddingRight", {
                    get: function() {
                        return this.getPropertyValue("paddingRight")
                    },
                    set: function(t) {
                        this.setPercentProperty("paddingRight", t, !0, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "paddingTop", {
                    get: function() {
                        return this.getPropertyValue("paddingTop")
                    },
                    set: function(t) {
                        this.setPercentProperty("paddingTop", t, !0, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "paddingBottom", {
                    get: function() {
                        return this.getPropertyValue("paddingBottom")
                    },
                    set: function(t) {
                        this.setPercentProperty("paddingBottom", t, !0, !0, this._positionPrecision, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelPaddingRight", {
                    get: function() {
                        return this.getPixelX(this.paddingRight)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativePaddingRight", {
                    get: function() {
                        return this.getRelativeX(this.paddingRight)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelPaddingLeft", {
                    get: function() {
                        return this.getPixelX(this.paddingLeft)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativePaddingLeft", {
                    get: function() {
                        return this.getRelativeX(this.paddingLeft)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelPaddingTop", {
                    get: function() {
                        return this.getPixelY(this.paddingTop)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativePaddingTop", {
                    get: function() {
                        return this.getRelativeY(this.paddingTop)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelPaddingBottom", {
                    get: function() {
                        return this.getPixelY(this.paddingBottom)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "relativePaddingBottom", {
                    get: function() {
                        return this.getRelativeY(this.paddingBottom)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "path", {
                    get: function() {
                        return this.getPropertyValue("path")
                    },
                    set: function(t) {
                        this.setPath(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setPath = function(t) {
                    return !!this.setPropertyValue("path", t) && (this._adapterO && (t = this._adapterO.apply("path", t)), this._isPath || (this.element && (!this.element.node || this.element.node instanceof SVGPathElement) || (this.element = this.paper.add("path")), this._isPath = !0), A.hasValue(t) ? this.element.attr({
                        d: t
                    }) : this.element.removeAttr("d"), this.invalidatePosition(), this.inited || this.events.once("inited", this.validatePosition, this, !1), !0)
                }, Object.defineProperty(e.prototype, "fillModifier", {
                    get: function() {
                        return this.getPropertyValue("fillModifier")
                    },
                    set: function(t) {
                        this.setPropertyValue("fillModifier", t) && this.setFill(this.fill)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeModifier", {
                    get: function() {
                        return this.getPropertyValue("strokeModifier")
                    },
                    set: function(t) {
                        this.setPropertyValue("strokeModifier", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fillOpacity", {
                    get: function() {
                        return this.getPropertyValue("fillOpacity")
                    },
                    set: function(t) {
                        t = k.toNumberRange(t, 0, 1), this.setPropertyValue("fillOpacity", t) && this.setSVGAttribute({
                            "fill-opacity": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fill", {
                    get: function() {
                        return this.getPropertyValue("fill")
                    },
                    set: function(t) {
                        this.setFill(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setFill = function(t) {
                    if (A.isObject(t) || (t = Object(m.e)(t)), this.setColorProperty("fill", t) || this.fillModifier)
                        if (t instanceof m.a && this.fillModifier && (t = this.fillModifier.modify(t)), this.realFill = t, t instanceof m.a) this.setSVGAttribute({
                            fill: t.toString()
                        });
                        else if (A.hasValue(t)) {
                        if (t instanceof f.a || t instanceof g.a || t instanceof y.a) {
                            var e = t;
                            e.paper = this.paper, this.setSVGAttribute({
                                fill: 'url("' + I.getBaseURI() + e.id + '")'
                            })
                        }
                    } else this.removeSVGAttribute("fill")
                }, Object.defineProperty(e.prototype, "opacity", {
                    get: function() {
                        return this.getPropertyValue("opacity")
                    },
                    set: function(t) {
                        t = k.toNumberRange(t, 0, 1), this.setPropertyValue("opacity", t) && this.setSVGAttribute({
                            opacity: t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "stroke", {
                    get: function() {
                        return this.getPropertyValue("stroke")
                    },
                    set: function(t) {
                        this.setStroke(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setStroke = function(t) {
                    if (A.isObject(t) || (t = Object(m.e)(t)), this.setColorProperty("stroke", t) || this.strokeModifier)
                        if (t instanceof m.a && this.strokeModifier && (t = this.strokeModifier.modify(t)), this.realStroke = t, t instanceof m.a) "none" == t.hex ? this.removeSVGAttribute("stroke") : this.setSVGAttribute({
                            stroke: t.toString()
                        });
                        else if (A.hasValue(t)) {
                        if (t instanceof f.a || t instanceof g.a || t instanceof y.a) {
                            var e = t;
                            e.paper = this.paper, this.setSVGAttribute({
                                stroke: 'url("' + I.getBaseURI() + e.id + '")'
                            })
                        }
                    } else this.removeSVGAttribute("stroke")
                }, Object.defineProperty(e.prototype, "strokeOpacity", {
                    get: function() {
                        return this.getPropertyValue("strokeOpacity")
                    },
                    set: function(t) {
                        t = k.toNumberRange(t, 0, 1), this.setPropertyValue("strokeOpacity", t) && this.setSVGAttribute({
                            "stroke-opacity": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "nonScalingStroke", {
                    get: function() {
                        return this.getPropertyValue("nonScalingStroke")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("nonScalingStroke", t) && (this.strokeWidth = this.strokeWidth)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "nonScaling", {
                    get: function() {
                        return this.getPropertyValue("nonScaling")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("nonScaling", t, !1, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeWidth", {
                    get: function() {
                        return this.getPropertyValue("strokeWidth")
                    },
                    set: function(t) {
                        t = A.toNumber(t), this.setPropertyValue("strokeWidth", t, !0), this.nonScalingStroke && (A.isNumber(t) || (t = 1), t /= this.globalScale), this.setSVGAttribute({
                            "stroke-width": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeDasharray", {
                    get: function() {
                        return this.getPropertyValue("strokeDasharray")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("strokeDasharray", t) && this.setSVGAttribute({
                            "stroke-dasharray": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeDashoffset", {
                    get: function() {
                        return this.getPropertyValue("strokeDashoffset")
                    },
                    set: function(t) {
                        t = A.toNumber(t), this.setPropertyValue("strokeDashoffset", t) && this.setSVGAttribute({
                            "stroke-dashoffset": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeLinecap", {
                    get: function() {
                        return this.getPropertyValue("strokeLinecap")
                    },
                    set: function(t) {
                        this.setPropertyValue("strokeLinecap", t) && this.setSVGAttribute({
                            "stroke-linecap": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeLinejoin", {
                    get: function() {
                        return this.getPropertyValue("strokeLinejoin")
                    },
                    set: function(t) {
                        this.setPropertyValue("strokeLinejoin", t) && this.setSVGAttribute({
                            "stroke-linejoin": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "shapeRendering", {
                    get: function() {
                        return this.getPropertyValue("shapeRendering")
                    },
                    set: function(t) {
                        t = A.toText(t), this.setPropertyValue("shapeRendering", t) && this.setSVGAttribute({
                            "shape-rendering": t
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "pixelPerfect", {
                    get: function() {
                        return this.getPropertyValue("pixelPerfect")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this._positionPrecision = t ? 0 : 3, this.setPropertyValue("pixelPerfect", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "rtl", {
                    get: function() {
                        return A.hasValue(this._rtl) ? this._rtl : this.virtualParent ? this.virtualParent.rtl : !!this.parent && this.parent.rtl
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this._rtl = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.show = function(t) {
                    return this.showReal(t)
                }, e.prototype.showReal = function(t) {
                    var e = this;
                    if (!this.preventShow) {
                        var i, n = this.defaultState.properties;
                        if (!this.disabled && (this.isHidden || !this.visible || this.isHiding || null != n.opacity && this.opacity < n.opacity && !this.isShowing) && !this.isDisposed()) {
                            this.invalid && this.validate(), this.positionInvalid && this.validatePosition(), A.isNumber(t) || (t = this.defaultState.transitionDuration), this._hideAnimation && (this._hideAnimation.kill(), this._hideAnimation = void 0), this._showHideDisposer && this.removeDispose(this._showHideDisposer), this._isHidden = !1, this.isHiding = !1, this.isShowing = !0, (i = this.applyCurrentState(t)) && !i.isFinished() ? (this._showHideDisposer = i.events.on("animationended", function() {
                                e.isShowing = !1
                            }), this._disposers.push(this._showHideDisposer)) : this.isShowing = !1;
                            var r = this.defaultState.properties.visible;
                            A.hasValue(r) || (r = !0), this.visible = r, this.readerHidden = !1, this.dispatchImmediately("shown")
                        }
                        return i
                    }
                }, e.prototype.hide = function(t) {
                    return this.hideReal(t)
                }, e.prototype.hideReal = function(t) {
                    var e, i = this;
                    if (!this.isHiding && this.visible && !this.isDisposed()) {
                        this.tooltip && this.tooltip.currentSprite == this && this.hideTooltip(0), this._hideAnimation && (this._hideAnimation.kill(), this._hideAnimation = void 0), this.isShowing = !1, this._showHideDisposer && this.removeDispose(this._showHideDisposer);
                        var n = this.hiddenState;
                        n ? (e = this.setState(n, t, void 0)) && !e.isFinished() ? (this._hideAnimation = e, this._showHideDisposer = e.events.on("animationended", function() {
                            i.isHiding = !1, i._isHidden = !0
                        }, this), this._disposers.push(this._showHideDisposer), this._disposers.push(e)) : (this.isHiding = !1, this._isHidden = !0) : (this.visible = !1, this.isHiding = !1, this._isHidden = !0), this.readerHidden = !0, this.dispatchImmediately("hidden"), this.invalidate()
                    }
                    return A.isNumber(t) || (t = this.hiddenState.transitionDuration), e
                }, Object.defineProperty(e.prototype, "visible", {
                    get: function() {
                        return this.getVisibility()
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setVisibility(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getVisibility = function() {
                    var t = this.getPropertyValue("visible");
                    return A.hasValue(t) || (t = !0), t
                }, e.prototype.setVisibility = function(t) {
                    if (this.setPropertyValue("visible", t) && (t ? this.group.removeAttr("visibility") : this.group.attr({
                            visibility: "hidden"
                        }), this.events.isEnabled("visibilitychanged"))) {
                        var e = {
                            type: "visibilitychanged",
                            target: this,
                            visible: t
                        };
                        this.events.dispatchImmediately("visibilitychanged", e)
                    }
                }, Object.defineProperty(e.prototype, "zIndex", {
                    get: function() {
                        return this.getPropertyValue("zIndex")
                    },
                    set: function(t) {
                        t = A.toNumber(t), this.setPropertyValue("zIndex", t) && this.dispatch("zIndexChanged")
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.toFront = function() {
                    var t = this.parent;
                    t && t.children.indexOf(this) != t.children.length - 1 && (t.children.moveValue(this, t.children.length - 1), this.dispatch("zIndexChanged"))
                }, e.prototype.toBack = function() {
                    var t = this.parent;
                    t && 0 != t.children.indexOf(this) && (t.children.moveValue(this, 0), this.dispatch("zIndexChanged"))
                }, Object.defineProperty(e.prototype, "tooltip", {
                    get: function() {
                        return this._tooltip ? this._tooltip : this.virtualParent ? this.virtualParent.tooltip : this.parent ? this.parent.tooltip : void 0
                    },
                    set: function(t) {
                        this._tooltip && this.removeDispose(this._tooltip), this._tooltip = t, t && (t.parent = this.tooltipContainer)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipDataItem", {
                    get: function() {
                        var t = this._tooltipDataItem;
                        return t || this.dataItem
                    },
                    set: function(t) {
                        this._tooltipDataItem = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipColorSource", {
                    get: function() {
                        return this._tooltipColorSource
                    },
                    set: function(t) {
                        this._tooltipColorSource = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.showTooltip = function(t) {
                    "always" == this.showTooltipOn && !this._tooltip && this.tooltip && (this._tooltip = this.tooltip.clone());
                    for (var e = this; void 0 != e;) {
                        if (!e.visible || e.disabled || e.__disabled) return void(this._tooltip && this._tooltip.visible && this._tooltip.hide(0));
                        e = e.parent
                    }
                    if (A.hasValue(this.tooltipText) || A.hasValue(this.tooltipHTML)) {
                        var i = this.tooltip,
                            n = this.tooltipDataItem;
                        if (i) {
                            i.targetSprite = this;
                            var r = this,
                                a = this.tooltipColorSource;
                            if ((i.getStrokeFromObject || i.getFillFromObject) && a && (a.isTemplate ? n && j.eachContinue(n.sprites, function(t) {
                                    return t.clonedFrom != a || (r = t, !1)
                                }) : r = a), i.getStrokeFromObject) {
                                for (var o = this.stroke, s = r; void 0 != s.parent && (void 0 == (o = s.stroke) && (s = s.parent), void 0 == o););
                                o instanceof m.a ? i.background.animate({
                                    property: "stroke",
                                    to: o
                                }, i.animationDuration) : i.background.stroke = o
                            }
                            if (i.dataItem = n, i.label.populateStringFrom = this, i.getFillFromObject) {
                                var l = this.fill;
                                for (s = r; void 0 != s.parent;)
                                    if (void 0 == (l = s.fill) || l instanceof m.a && void 0 == l.rgb) s = s.parent;
                                    else if (void 0 != l) break;
                                void 0 == l && (l = Object(m.c)("#000000")), l instanceof m.a && i.visible ? i.background.animate({
                                    property: "fill",
                                    to: l
                                }, i.animationDuration) : i.background.fill = l, i.autoTextColor && l instanceof m.a && (i.label.fill = l.alternative)
                            }
                            var u = "";
                            if (this.tooltipHTML && (i.html = this.tooltipHTML, u = this.tooltipHTML), this.tooltipText && (i.text = this.tooltipText, u = this.tooltipText), this.updateTooltipPosition(t)) {
                                if (i.readerDescribedBy = this.uidAttr(), i.label.invalid && i.label.validate(), void 0 != u && "" != u && "" != i.label.currentText) {
                                    i && !i.parent && (i.parent = this.tooltipContainer);
                                    var h = i.defaultState.transitionDuration;
                                    return h <= 0 && (h = 1), i.show(h), i.currentSprite = this, !0
                                }
                                this.hideTooltip(0)
                            } else this.hideTooltip(0)
                        }
                    }
                    return !1
                }, e.prototype.updateTooltipPosition = function(t) {
                    var e = this;
                    if ("pointer" != this.tooltipPosition) {
                        var i = I.spritePointToSvg({
                            x: this.getTooltipX(),
                            y: this.getTooltipY()
                        }, this);
                        return this.pointTooltipTo(i)
                    }
                    if (this._interactionDisposer && this._interactionDisposer.dispose(), this._interactionDisposer = Object(v.b)().body.events.on("track", function(t) {
                            return e.pointTooltipTo(I.documentPointToSvg(t.point, e.svgContainer.SVGContainer, e.svgContainer.cssScale), !0)
                        }), t) return this.pointTooltipTo(t, !0)
                }, e.prototype.pointTooltipTo = function(t, e) {
                    var i = this.tooltip;
                    if (i && this.topParent) {
                        if (i.showInViewport) return i.pointTo(t, e), !0;
                        if (k.isInRectangle(t, {
                                x: 0,
                                y: 0,
                                width: this.topParent.maxWidth,
                                height: this.topParent.maxHeight
                            })) return i.pointTo(t, e), !0
                    }
                    return !1
                }, e.prototype.hideTooltip = function(t) {
                    if ("always" != this.showTooltipOn) {
                        var e = this.tooltip;
                        e && (e.targetSprite == this && (e.targetSprite = void 0), e.hide(t), this._interactionDisposer && (this._interactionDisposer.dispose(), this._interactionDisposer = void 0))
                    }
                }, Object.defineProperty(e.prototype, "tooltipHTML", {
                    get: function() {
                        return this.getPropertyValue("tooltipHTML")
                    },
                    set: function(t) {
                        t = A.toText(t), this.hoverable = !0, this.setPropertyValue("tooltipHTML", t) && this.tooltip && this.tooltip.visible && this.showTooltip()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipText", {
                    get: function() {
                        return this.getPropertyValue("tooltipText")
                    },
                    set: function(t) {
                        (t = A.toText(t)) && (this.hoverable = !0), this.setPropertyValue("tooltipText", t) && this.tooltip && this.tooltip.visible && this.showTooltip()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipContainer", {
                    get: function() {
                        return this._tooltipContainer ? this._tooltipContainer : this.parent ? this.parent.tooltipContainer : void 0
                    },
                    set: function(t) {
                        this._tooltipContainer = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipX", {
                    get: function() {
                        return this.getTooltipX()
                    },
                    set: function(t) {
                        this.setPercentProperty("tooltipX", t) && this.tooltip && this.tooltip.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "alwaysShowTooltip", {
                    get: function() {
                        return "always" == this.getPropertyValue("showTooltipOn")
                    },
                    set: function(t) {
                        (t = A.toBoolean(t)) && (this.showTooltipOn = "always")
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "showTooltipOn", {
                    get: function() {
                        return this.getPropertyValue("showTooltipOn")
                    },
                    set: function(t) {
                        this.setPropertyValue("showTooltipOn", t) && ("hit" == t && (this.clickable = !0), this.tooltip && ("always" == t ? this.showTooltip() : this.handleAlwaysShowTooltip()))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipPosition", {
                    get: function() {
                        return this.getPropertyValue("tooltipPosition")
                    },
                    set: function(t) {
                        this.setPropertyValue("tooltipPosition", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltipY", {
                    get: function() {
                        return this.getTooltipY()
                    },
                    set: function(t) {
                        this.setPercentProperty("tooltipY", t) && this.tooltip && this.tooltip.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getTooltipX = function() {
                    var t, e = this.getPropertyValue("tooltipX");
                    return A.hasValue(e) || (e = Object(E.c)(50)), A.isNumber(e) && (t = e), e instanceof E.a && (t = this.maxLeftSelf + this._measuredWidthSelf * e.value - this.pixelPaddingLeft - this.ex), A.isNumber(t) || (t = 0), t
                }, e.prototype.getTooltipY = function() {
                    var t, e = this.getPropertyValue("tooltipY");
                    return A.hasValue(e) || (e = Object(E.c)(50)), A.isNumber(e) && (t = e), e instanceof E.a && (t = this.maxTopSelf + this._measuredHeightSelf * e.value - this.pixelPaddingTop - this.ey), A.isNumber(t) || (t = 0), t
                }, e.prototype.raiseCriticalError = function(t) {
                    this.svgContainer && (this._adapterO ? this.modal.content = this._adapterO.apply("criticalError", t).message : this.modal.content = t.message, this.modal.closable = !1, this.modal.open(), this.disabled = !0), x.a.verbose && console.log(t)
                }, e.prototype.processConfig = function(e) {
                    e && (A.hasValue(e.tooltipColorSource) && A.isString(e.tooltipColorSource) && this.map.hasKey(e.tooltipColorSource) && (e.tooltipColorSource = this.map.getKey(e.tooltipColorSource)), A.hasValue(e.cursorOverStyle) && A.isString(e.cursorOverStyle) && (e.cursorOverStyle = this.getCursorStyle(e.cursorOverStyle)), A.hasValue(e.cursorDowntyle) && A.isString(e.cursorDowntyle) && (e.cursorDowntyle = this.getCursorStyle(e.cursorDowntyle)), A.hasValue(e.cursorOptions) && (A.hasValue(e.cursorOptions.overStyle) && A.isString(e.cursorOptions.overStyle) && (e.cursorOptions.overStyle = this.getCursorStyle(e.cursorOptions.overStyle)), A.hasValue(e.cursorOptions.downStyle) && A.isString(e.cursorOptions.downStyle) && (e.cursorOptions.downStyle = this.getCursorStyle(e.cursorOptions.downStyle)))), t.prototype.processConfig.call(this, e), this.processDelayedMap()
                }, e.prototype.getCursorStyle = function(t) {
                    switch (t) {
                        case "grab":
                            return b.a.grab;
                        case "grabbing":
                            return b.a.grabbing;
                        case "pointer":
                            return b.a.pointer;
                        case "horizontalResize":
                            return b.a.horizontalResize;
                        case "verticalResize":
                            return b.a.verticalResize;
                        default:
                            return b.a.default
                    }
                }, e.prototype.configOrder = function(e, i) {
                    return e == i ? 0 : "tooltipColorSource" == e ? 1 : "tooltipColorSource" == i ? -1 : t.prototype.configOrder.call(this, e, i)
                }, Object.defineProperty(e.prototype, "isHidden", {
                    get: function() {
                        return this._isHidden ? this._isHidden : !!this._parent && this._parent.isHidden
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "showOnInit", {
                    get: function() {
                        return this.getPropertyValue("showOnInit")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setShowOnInit(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setShowOnInit = function(t) {
                    this.setPropertyValue("showOnInit", t) && (this.isTemplate || (!t || this.inited || this.hidden ? this._showOnInitDisposer && this._showOnInitDisposer.dispose() : (this._showOnInitDisposer = new h.c([_.c.events.once("enterframe", this.hideInitially, this), this.events.once("beforevalidated", this.hideInitially, this, !1), this.events.on("inited", this.appear, this, !1)]), this._disposers.push(this._showOnInitDisposer))))
                }, e.prototype.hideInitially = function() {
                    this.isDisposed() || (this.appeared = !1, this.inited || this.hide(0))
                }, e.prototype.appear = function() {
                    var t = this;
                    if (this.appeared = !1, this.hidden || this.isHidden || this.hide(0), this.hidden) this.appeared = !0, this.dispatch("appeared");
                    else {
                        var e = this.show();
                        e && !e.isFinished() ? e.events.on("animationended", function() {
                            t.appeared = !0, t.dispatch("appeared")
                        }) : (this.appeared = !0, this.dispatch("appeared"))
                    }
                }, Object.defineProperty(e.prototype, "hidden", {
                    get: function() {
                        return this.getPropertyValue("hidden")
                    },
                    set: function(t) {
                        t = A.toBoolean(t), this.setPropertyValue("hidden", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bbox", {
                    get: function() {
                        return this.definedBBox ? this.definedBBox : this._bbox
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "plugins", {
                    get: function() {
                        var t = this;
                        return this._plugins || (this._plugins = new u.b, this._disposers.push(this._plugins.events.on("inserted", function(e) {
                            e.newValue.target = t, e.newValue.init()
                        })), this._disposers.push(new u.c(this._plugins))), this._plugins
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype._systemUpdate = function(t) {
                    this.validate()
                }, e.prototype._systemCheckIfValidate = function() {
                    return !0
                }, e.prototype._systemValidatePositions = function() {
                    this.validatePosition()
                }, e.prototype._systemValidateLayouts = function() {}, e
            }(o.b);
        _.c.registeredClasses.Sprite = N
    },
    Vwc7: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("vfdp"),
            a = i("1wCr"),
            o = i("lnCe"),
            s = i("3sMl"),
            l = i("xaIW"),
            u = i("7W4+"),
            h = i("6aQQ"),
            c = i("JZRr"),
            p = i("o3G/"),
            d = i("Kg2n"),
            f = i("3weC"),
            g = i("7X7h"),
            y = i("9XRO"),
            m = i("EErT"),
            v = i("Pm8L"),
            b = i("QzDi"),
            x = i("kcMx"),
            _ = i("GtmK"),
            P = i("YG4I"),
            w = i("KSd4"),
            O = i("gxUV"),
            T = i("8+rI"),
            S = i("EVp9"),
            C = i("k2B3"),
            I = i("z3p0"),
            k = i("LO3D"),
            D = i("fYap"),
            j = i("lt6Q"),
            V = i("vfRf"),
            A = i("KslR"),
            M = i("0irS"),
            F = i("6WsA"),
            E = i("NRfM"),
            R = i("SqFF"),
            N = i("X/sl").forEach,
            L = D("hidden"),
            B = A("toPrimitive"),
            U = R.set,
            W = R.getterFor("Symbol"),
            Y = Object.prototype,
            H = r.Symbol,
            z = a("JSON", "stringify"),
            X = O.f,
            G = T.f,
            K = P.f,
            q = S.f,
            Z = k("symbols"),
            Q = k("op-symbols"),
            J = k("string-to-symbol-registry"),
            $ = k("symbol-to-string-registry"),
            tt = k("wks"),
            et = r.QObject,
            it = !et || !et.prototype || !et.prototype.findChild,
            nt = s && h(function() {
                return 7 != b(G({}, "a", {
                    get: function() {
                        return G(this, "a", {
                            value: 7
                        }).a
                    }
                })).a
            }) ? function(t, e, i) {
                var n = X(Y, e);
                n && delete Y[e], G(t, e, i), n && t !== Y && G(Y, e, n)
            } : G,
            rt = function(t, e) {
                var i = Z[t] = b(H.prototype);
                return U(i, {
                    type: "Symbol",
                    tag: t,
                    description: e
                }), s || (i.description = e), i
            },
            at = u ? function(t) {
                return "symbol" == typeof t
            } : function(t) {
                return Object(t) instanceof H
            },
            ot = function(t, e, i) {
                t === Y && ot(Q, e, i), f(t);
                var n = m(e, !0);
                return f(i), c(Z, n) ? (i.enumerable ? (c(t, L) && t[L][n] && (t[L][n] = !1), i = b(i, {
                    enumerable: v(0, !1)
                })) : (c(t, L) || G(t, L, v(1, {})), t[L][n] = !0), nt(t, n, i)) : G(t, n, i)
            },
            st = function(t, e) {
                f(t);
                var i = y(e),
                    n = x(i).concat(ct(i));
                return N(n, function(e) {
                    s && !lt.call(i, e) || ot(t, e, i[e])
                }), t
            },
            lt = function(t) {
                var e = m(t, !0),
                    i = q.call(this, e);
                return !(this === Y && c(Z, e) && !c(Q, e)) && (!(i || !c(this, e) || !c(Z, e) || c(this, L) && this[L][e]) || i)
            },
            ut = function(t, e) {
                var i = y(t),
                    n = m(e, !0);
                if (i !== Y || !c(Z, n) || c(Q, n)) {
                    var r = X(i, n);
                    return !r || !c(Z, n) || c(i, L) && i[L][n] || (r.enumerable = !0), r
                }
            },
            ht = function(t) {
                var e = K(y(t)),
                    i = [];
                return N(e, function(t) {
                    c(Z, t) || c(j, t) || i.push(t)
                }), i
            },
            ct = function(t) {
                var e = t === Y,
                    i = K(e ? Q : y(t)),
                    n = [];
                return N(i, function(t) {
                    !c(Z, t) || e && !c(Y, t) || n.push(Z[t])
                }), n
            };
        (l || (I((H = function() {
            if (this instanceof H) throw TypeError("Symbol is not a constructor");
            var t = arguments.length && void 0 !== arguments[0] ? String(arguments[0]) : void 0,
                e = V(t),
                i = function(t) {
                    this === Y && i.call(Q, t), c(this, L) && c(this[L], e) && (this[L][e] = !1), nt(this, e, v(1, t))
                };
            return s && it && nt(Y, e, {
                configurable: !0,
                set: i
            }), rt(e, t)
        }).prototype, "toString", function() {
            return W(this).tag
        }), I(H, "withoutSetter", function(t) {
            return rt(V(t), t)
        }), S.f = lt, T.f = ot, O.f = ut, _.f = P.f = ht, w.f = ct, M.f = function(t) {
            return rt(A(t), t)
        }, s && (G(H.prototype, "description", {
            configurable: !0,
            get: function() {
                return W(this).description
            }
        }), o || I(Y, "propertyIsEnumerable", lt, {
            unsafe: !0
        }))), n({
            global: !0,
            wrap: !0,
            forced: !l,
            sham: !l
        }, {
            Symbol: H
        }), N(x(tt), function(t) {
            F(t)
        }), n({
            target: "Symbol",
            stat: !0,
            forced: !l
        }, {
            for: function(t) {
                var e = String(t);
                if (c(J, e)) return J[e];
                var i = H(e);
                return J[e] = i, $[i] = e, i
            },
            keyFor: function(t) {
                if (!at(t)) throw TypeError(t + " is not a symbol");
                if (c($, t)) return $[t]
            },
            useSetter: function() {
                it = !0
            },
            useSimple: function() {
                it = !1
            }
        }), n({
            target: "Object",
            stat: !0,
            forced: !l,
            sham: !s
        }, {
            create: function(t, e) {
                return void 0 === e ? b(t) : st(b(t), e)
            },
            defineProperty: ot,
            defineProperties: st,
            getOwnPropertyDescriptor: ut
        }), n({
            target: "Object",
            stat: !0,
            forced: !l
        }, {
            getOwnPropertyNames: ht,
            getOwnPropertySymbols: ct
        }), n({
            target: "Object",
            stat: !0,
            forced: h(function() {
                w.f(1)
            })
        }, {
            getOwnPropertySymbols: function(t) {
                return w.f(g(t))
            }
        }), z) && n({
            target: "JSON",
            stat: !0,
            forced: !l || h(function() {
                var t = H();
                return "[null]" != z([t]) || "{}" != z({
                    a: t
                }) || "{}" != z(Object(t))
            })
        }, {
            stringify: function(t, e, i) {
                for (var n, r = [t], a = 1; arguments.length > a;) r.push(arguments[a++]);
                if (n = e, (d(e) || void 0 !== t) && !at(t)) return p(e) || (e = function(t, e) {
                    if ("function" == typeof n && (e = n.call(this, t, e)), !at(e)) return e
                }), r[1] = e, z.apply(null, r)
            }
        });
        H.prototype[B] || C(H.prototype, B, H.prototype.valueOf), E(H, "Symbol"), j[L] = !0
    },
    VwzZ: function(t, e, i) {
        var n = i("3weC");
        t.exports = function(t, e, i, r) {
            try {
                return r ? e(n(i)[0], i[1]) : e(i)
            } catch (e) {
                var a = t.return;
                throw void 0 !== a && n(a.call(t)), e
            }
        }
    },
    W0E6: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("8ZqG"),
            o = i("MIZb"),
            s = i("WODi"),
            l = i("2gKx"),
            u = i("TZWN"),
            h = i("aCit"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._list = [], e._currentStep = 0, e._startIndex = 0, e._currentPass = 0, e.baseColor = new a.a({
                        r: 103,
                        g: 183,
                        b: 220
                    }), e.className = "PatternSet";
                    var i = new o.a;
                    return e.list = [e.getLinePattern(1e3, 45, 1, 6), e.getRectPattern(10, 0, 4), e.getLinePattern(1e3, -45, 1, 6), e.getCirclePattern(11, 2, !0), e.getLinePattern(6, 90, 1), e.getRectPattern(12, 45, 6, !0), e.getLinePattern(6, 0, 1), e.getRectPattern(7, 0, 4), e.getLinePattern(1e3, 45, 2, 3, "4,2"), e.getCirclePattern(9, 3, !1), e.getLinePattern(1e3, -45, 2, 3, "4,2"), e.getRectPattern(10, 45, Math.sqrt(50)), e.getLinePattern(1e3, -45, 2, 1), e.getRectPattern(10, 0, 9), e.getLinePattern(1e3, 45, 2, 1), e.getLinePattern(1e3, 0, 3, 1), e.getRectPattern(10, 45, 10), e.getLinePattern(1e3, 90, 3, 1)], e.baseColor = i.getFor("stroke"), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.getLinePattern = function(t, e, i, n, r) {
                    var a = new s.a;
                    return a.width = t, a.height = t, a.stroke = this.baseColor, a.gap = n, a.strokeDasharray = r, a.strokeWidth = i, a.rotation = e, a
                }, e.prototype.getRectPattern = function(t, e, i, n) {
                    var r = new l.a;
                    return r.width = t, r.height = t, r.rectWidth = i, r.rectHeight = i, n ? (r.stroke = this.baseColor, r.strokeWidth = 1, r.fillOpacity = 0) : (r.fill = this.baseColor, r.strokeWidth = 0), 0 != e && (r.shapeRendering = "auto"), r.rotation = e, r
                }, e.prototype.getCirclePattern = function(t, e, i) {
                    var n = new u.a;
                    return n.width = t, n.height = t, n.shapeRendering = "auto", n.radius = e, i ? (n.stroke = this.baseColor, n.strokeWidth = 1, n.fillOpacity = 0) : (n.fill = this.baseColor, n.strokeWidth = 0), n
                }, Object.defineProperty(e.prototype, "list", {
                    get: function() {
                        return this._list
                    },
                    set: function(t) {
                        this._list = t, this.reset()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.next = function() {
                    var t = this.getIndex(this.currentStep);
                    return this._currentStep++, t
                }, e.prototype.getIndex = function(t) {
                    for (; this.list.length <= t;) this.generatePatterns();
                    return this.list[t].clone()
                }, e.prototype.generatePatterns = function() {
                    var t = this.list.length / (this._currentPass + 1);
                    this._currentPass++;
                    for (var e = 0; e < t; e++) this.list.push(this.list[e].clone())
                }, e.prototype.reset = function() {
                    this._currentStep = this._startIndex
                }, Object.defineProperty(e.prototype, "currentStep", {
                    get: function() {
                        return this._currentStep
                    },
                    set: function(t) {
                        this._currentStep = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startIndex", {
                    get: function() {
                        return this._startIndex
                    },
                    set: function(t) {
                        this._startIndex = t, this.reset()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.processConfig = function(e) {
                    t.prototype.processConfig.call(this, e)
                }, e
            }(r.a);
        h.c.registeredClasses.PatternSet = c
    },
    W8Sc: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("UsNi"),
            a = i("x79X"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.adapter = new a.a(e), e.className = "Modal", e.showCurtain = !0, e.draggable = !1, e
                }
                return Object(n.c)(e, t), e
            }(r.a)
    },
    WAWz: function(t, e, i) {
        i("6WsA")("split")
    },
    WODi: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("ZLF9"),
            a = i("aCit"),
            o = i("hGwe"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.properties.gap = 0, e._line = e.paper.add("path"), e.addElement(e._line), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    if (t.prototype.draw.call(this), Math.round(this.rotation / 90) != this.rotation / 90 && (this.properties.shapeRendering = "auto"), this._line) {
                        var e = this.width,
                            i = this.height,
                            n = "";
                        if (this.gap)
                            for (var r = this.gap + this.strokeWidth, a = this.height / r, s = -a / 2; s < 1.5 * a; s++) Math.round(this.rotation / 90) != this.rotation / 90 ? (n += o.moveTo({
                                x: -e,
                                y: (s + .5) * r
                            }) + o.lineTo({
                                x: 2 * e,
                                y: (s + .5) * r
                            }), this.properties.rotationX = this.width / 2, this.properties.rotationY = this.height / 2) : n += o.moveTo({
                                x: -e,
                                y: s * r
                            }) + o.lineTo({
                                x: 2 * e,
                                y: s * r
                            });
                        else Math.round(this.rotation / 90) != this.rotation / 90 ? (n = o.moveTo({
                            x: -e,
                            y: i / 2
                        }) + o.lineTo({
                            x: 2 * e,
                            y: i / 2
                        }), this.properties.rotationX = this.width / 2, this.properties.rotationY = this.height / 2) : n = o.moveTo({
                            x: 0,
                            y: 0
                        }) + o.lineTo({
                            x: e,
                            y: 0
                        });
                        this._line.attr({
                            d: n
                        })
                    }
                }, Object.defineProperty(e.prototype, "gap", {
                    get: function() {
                        return this.properties.gap
                    },
                    set: function(t) {
                        this.properties.gap = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.LinePattern = s
    },
    WShl: function(t, e, i) {
        "use strict";
        var n = i("EErT"),
            r = i("8+rI"),
            a = i("Pm8L");
        t.exports = function(t, e, i) {
            var o = n(e);
            o in t ? r.f(t, o, a(0, i)) : t[o] = i
        }
    },
    WYhe: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return r
        }), i.d(e, "b", function() {
            return a
        });
        var n = i("Mtpk"),
            r = function() {
                function t() {}
                return t.prototype.getEventKey = function(t) {
                    var e;
                    switch (t.keyCode || t.which) {
                        case 38:
                            e = "up";
                            break;
                        case 40:
                            e = "down";
                            break;
                        case 37:
                            e = "left";
                            break;
                        case 39:
                            e = "right";
                            break;
                        case 13:
                            e = "enter";
                            break;
                        case 27:
                            e = "esc";
                            break;
                        case 36:
                            e = "home";
                            break;
                        case 35:
                            e = "end";
                            break;
                        case 9:
                            e = "tab";
                            break;
                        case 17:
                            e = "ctrl";
                            break;
                        case 18:
                            e = "alt";
                            break;
                        case 16:
                            e = "shift";
                            break;
                        case 32:
                            e = "space";
                            break;
                        case 36:
                            e = "home";
                            break;
                        case 35:
                            e = "end";
                            break;
                        case 33:
                            e = "pgup";
                            break;
                        case 34:
                            e = "pgdn";
                            break;
                        case 45:
                            e = "ins";
                            break;
                        case 46:
                            e = "del";
                            break;
                        case 107:
                            e = "plus";
                            break;
                        case 109:
                            e = "minus";
                            break;
                        default:
                            e = "other"
                    }
                    return e
                }, t.prototype.isKey = function(t, e) {
                    var i = this.getEventKey(t);
                    return n.isString(e) && (e = [e]), -1 !== e.indexOf(i)
                }, t.prototype.shiftKey = function(t) {
                    return t.shiftKey
                }, t.prototype.ctrlKey = function(t) {
                    return t.ctrlKey
                }, t.prototype.altKey = function(t) {
                    return t.altKey
                }, t.prototype.metaKey = function(t) {
                    return t.metaKey
                }, t
            }(),
            a = new r
    },
    WeDP: function(t, e, i) {
        "use strict";
        var n, r, a, o = i("Ox5T"),
            s = i("k2B3"),
            l = i("JZRr"),
            u = i("KslR"),
            h = i("lnCe"),
            c = u("iterator"),
            p = !1;
        [].keys && ("next" in (a = [].keys()) ? (r = o(o(a))) !== Object.prototype && (n = r) : p = !0), void 0 == n && (n = {}), h || l(n, c) || s(n, c, function() {
            return this
        }), t.exports = {
            IteratorPrototype: n,
            BUGGY_SAFARI_ITERATORS: p
        }
    },
    Wglt: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.fromArray = r, e.length = function(t) {
            var e = 0;
            return t(function(t) {
                return ++e, !0
            }), e
        }, e.toArray = a, e.eachContinue = function(t, e) {
            t(e)
        }, e.each = function(t, e) {
            t(function(t) {
                return e(t), !0
            })
        }, e.sort = function(t, e) {
            return r(a(t).sort(e))
        }, e.map = function(t, e) {
            return function(i) {
                return t(function(t) {
                    return i(e(t))
                })
            }
        }, e.filter = function(t, e) {
            return function(i) {
                return t(function(t) {
                    return !e(t) || i(t)
                })
            }
        }, e.concat = function() {
            for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
            return function(e) {
                for (var i = !0, n = function(t) {
                        return i = e(t)
                    }, r = t.length, a = 0; a < r && (t[a](n), i); ++a);
            }
        }, e.flatten = function(t) {
            return function(e) {
                var i = !0,
                    n = function(t) {
                        return i = e(t)
                    };
                t(function(t) {
                    return t(n), i
                })
            }
        }, e.indexed = function(t) {
            return function(e) {
                var i = 0;
                t(function(t) {
                    return e([i++, t])
                })
            }
        }, e.findIndex = function(t, e) {
            var i = !1,
                n = 0;
            return t(function(t) {
                return e(t) ? (i = !0, !1) : (++n, !0)
            }), i ? n : -1
        }, e.find = function(t, e) {
            var i;
            return t(function(t) {
                return !e(t) || (i = t, !1)
            }), i
        }, e.findMap = function(t, e) {
            var i;
            return t(function(t) {
                var n = e(t);
                return null === n || (i = n, !1)
            }), i
        }, e.contains = function(t, e) {
            var i = !1;
            return t(function(t) {
                return !e(t) || (i = !0, !1)
            }), i
        }, e.foldl = o, e.min = function(t) {
            return o(t, null, s)
        }, e.max = function(t) {
            return o(t, null, l)
        }, e.join = function(t, e) {
            void 0 === e && (e = "");
            var i = !0,
                n = "";
            return t(function(t) {
                return i ? i = !1 : n += e, n += t, !0
            }), n
        }, i.d(e, "ListIterator", function() {
            return u
        });
        var n = i("hJ5i");

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

        function a(t) {
            var e = [];
            return t(function(t) {
                return e.push(t), !0
            }), e
        }

        function o(t, e, i) {
            return t(function(t) {
                return e = i(e, t), !0
            }), e
        }

        function s(t, e) {
            return null == t || e < t ? e : t
        }

        function l(t, e) {
            return null == t || e > t ? e : t
        }
        var u = function() {
            function t(t, e) {
                this.createNewItems = !1, this.list = t, this._create = e, this.reset()
            }
            return t.prototype.reset = function() {
                this._listCopy = a(this.list.iterator())
            }, t.prototype.clear = function() {
                this._listCopy.length = 0
            }, t.prototype.getFirst = function() {
                return this.returnItem(0)
            }, t.prototype.getLast = function() {
                return this.returnItem(this._listCopy.length - 1)
            }, t.prototype.find = function(t) {
                var e = n.findIndex(this._listCopy, t);
                if (-1 !== e) {
                    var i = this._listCopy[e];
                    return n.remove(this._listCopy, i), i
                }
                return this.getLast()
            }, t.prototype.removeItem = function(t) {
                return n.remove(this._listCopy, t)
            }, t.prototype.returnItem = function(t) {
                if (t >= 0 && t < this._listCopy.length) {
                    var e = this._listCopy[t];
                    return n.remove(this._listCopy, e), e
                }
                if (this.createNewItems) return this._create()
            }, t.prototype.iterator = function() {
                return r(this._listCopy)
            }, t
        }()
    },
    Wqjq: function(t, e, i) {
        var n = i("exNg"),
            r = i("swFJ"),
            a = function(t) {
                return function(e, i) {
                    var a, o, s = String(r(e)),
                        l = n(i),
                        u = s.length;
                    return l < 0 || l >= u ? t ? "" : void 0 : (a = s.charCodeAt(l)) < 55296 || a > 56319 || l + 1 === u || (o = s.charCodeAt(l + 1)) < 56320 || o > 57343 ? t ? s.charAt(l) : a : t ? s.slice(l, l + 2) : o - 56320 + (a - 55296 << 10) + 65536
                }
            };
        t.exports = {
            codeAt: a(!1),
            charAt: a(!0)
        }
    },
    "X/sl": function(t, e, i) {
        var n = i("cLsB"),
            r = i("tNpr"),
            a = i("7X7h"),
            o = i("tHyI"),
            s = i("Rs0P"),
            l = [].push,
            u = function(t) {
                var e = 1 == t,
                    i = 2 == t,
                    u = 3 == t,
                    h = 4 == t,
                    c = 6 == t,
                    p = 5 == t || c;
                return function(d, f, g, y) {
                    for (var m, v, b = a(d), x = r(b), _ = n(f, g, 3), P = o(x.length), w = 0, O = y || s, T = e ? O(d, P) : i ? O(d, 0) : void 0; P > w; w++)
                        if ((p || w in x) && (v = _(m = x[w], w, b), t))
                            if (e) T[w] = v;
                            else if (v) switch (t) {
                        case 3:
                            return !0;
                        case 5:
                            return m;
                        case 6:
                            return w;
                        case 2:
                            l.call(T, m)
                    } else if (h) return !1;
                    return c ? -1 : u || h ? h : T
                }
            };
        t.exports = {
            forEach: u(0),
            map: u(1),
            filter: u(2),
            some: u(3),
            every: u(4),
            find: u(5),
            findIndex: u(6)
        }
    },
    XDqO: function(t, e, i) {
        var n = i("0sYB"),
            r = i("IpLv"),
            a = Math.abs;
        n({
            target: "Number",
            stat: !0
        }, {
            isSafeInteger: function(t) {
                return r(t) && a(t) <= 9007199254740991
            }
        })
    },
    XDyS: function(t, e, i) {
        i("0sYB")({
            target: "Reflect",
            stat: !0
        }, {
            has: function(t, e) {
                return e in t
            }
        })
    },
    XUj0: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("bold")
        }, {
            bold: function() {
                return r(this, "b", "", "")
            }
        })
    },
    XaED: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("anchor")
        }, {
            anchor: function(t) {
                return r(this, "a", "name", t)
            }
        })
    },
    XhXf: function(t, e) {
        t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
    },
    XqN8: function(t, e, i) {
        "use strict";
        var n = {
            value: function() {}
        };

        function r() {
            for (var t, e = 0, i = arguments.length, n = {}; e < i; ++e) {
                if (!(t = arguments[e] + "") || t in n || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
                n[t] = []
            }
            return new a(n)
        }

        function a(t) {
            this._ = t
        }

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

        function s(t, e, i) {
            for (var r = 0, a = t.length; r < a; ++r)
                if (t[r].name === e) {
                    t[r] = n, t = t.slice(0, r).concat(t.slice(r + 1));
                    break
                } return null != i && t.push({
                name: e,
                value: i
            }), t
        }
        a.prototype = r.prototype = {
            constructor: a,
            on: function(t, e) {
                var i, n = this._,
                    r = function(t, e) {
                        return t.trim().split(/^|\s+/).map(function(t) {
                            var i = "",
                                n = t.indexOf(".");
                            if (n >= 0 && (i = t.slice(n + 1), t = t.slice(0, n)), t && !e.hasOwnProperty(t)) throw new Error("unknown type: " + t);
                            return {
                                type: t,
                                name: i
                            }
                        })
                    }(t + "", n),
                    a = -1,
                    l = r.length;
                if (!(arguments.length < 2)) {
                    if (null != e && "function" != typeof e) throw new Error("invalid callback: " + e);
                    for (; ++a < l;)
                        if (i = (t = r[a]).type) n[i] = s(n[i], t.name, e);
                        else if (null == e)
                        for (i in n) n[i] = s(n[i], t.name, null);
                    return this
                }
                for (; ++a < l;)
                    if ((i = (t = r[a]).type) && (i = o(n[i], t.name))) return i
            },
            copy: function() {
                var t = {},
                    e = this._;
                for (var i in e) t[i] = e[i].slice();
                return new a(t)
            },
            call: function(t, e) {
                if ((i = arguments.length - 2) > 0)
                    for (var i, n, r = new Array(i), a = 0; a < i; ++a) r[a] = arguments[a + 2];
                if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t);
                for (a = 0, i = (n = this._[t]).length; a < i; ++a) n[a].value.apply(e, r)
            },
            apply: function(t, e, i) {
                if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t);
                for (var n = this._[t], r = 0, a = n.length; r < a; ++r) n[r].value.apply(e, i)
            }
        };
        var l = r;
        i.d(e, "a", function() {
            return l
        })
    },
    XqrT: function(t, e, i) {
        var n = i("KslR")("iterator"),
            r = !1;
        try {
            var a = 0,
                o = {
                    next: function() {
                        return {
                            done: !!a++
                        }
                    },
                    return: function() {
                        r = !0
                    }
                };
            o[n] = function() {
                return this
            }, Array.from(o, function() {
                throw 2
            })
        } catch (t) {}
        t.exports = function(t, e) {
            if (!e && !r) return !1;
            var i = !1;
            try {
                var a = {};
                a[n] = function() {
                    return {
                        next: function() {
                            return {
                                done: i = !0
                            }
                        }
                    }
                }, t(a)
            } catch (t) {}
            return i
        }
    },
    Xroj: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("strike")
        }, {
            strike: function() {
                return r(this, "strike", "", "")
            }
        })
    },
    Xw1K: function(t, e, i) {
        var n = i("2xmP"),
            r = i("4Wbs");
        t.exports = function(t, e) {
            var i = t.exec;
            if ("function" == typeof i) {
                var a = i.call(t, e);
                if ("object" != typeof a) throw TypeError("RegExp exec method returned something other than an Object or null");
                return a
            }
            if ("RegExp" !== n(t)) throw TypeError("RegExp#exec called on incompatible receiver");
            return r.call(t, e)
        }
    },
    Y2i6: function(t, e, i) {
        var n = i("vfdp");
        t.exports = function(t, e) {
            var i = n.console;
            i && i.error && (1 === arguments.length ? i.error(t) : i.error(t, e))
        }
    },
    Y8n3: function(t, e, i) {
        var n = i("exNg"),
            r = Math.max,
            a = Math.min;
        t.exports = function(t, e) {
            var i = n(t);
            return i < 0 ? r(i + e, 0) : a(i, e)
        }
    },
    Y8ws: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("small")
        }, {
            small: function() {
                return r(this, "small", "", "")
            }
        })
    },
    Y9w3: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return _
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("vMqJ"),
            o = i("VGgz"),
            s = i("+qIf"),
            l = i("hD5A"),
            u = i("EjGA"),
            h = i("TGuK"),
            c = i("Rpw0"),
            p = i("A6AV"),
            d = i("aCit"),
            f = i("Gg2j"),
            g = i("hJ5i"),
            y = i("0FpR"),
            m = i("v9UT"),
            v = i("Wglt"),
            b = i("Qkdp"),
            x = i("Mtpk"),
            _ = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.dataFields = {}, e._dataSources = {}, e._parseDataFrom = 0, e._dataDisposers = [], e._currentDataSetId = "", e._start = 0, e._end = 1, e.skipRangeEvent = !1, e.rangeChangeDuration = 0, e.rangeChangeEasing = y.cubicOut, e.parsingStepDuration = 50, e.dataInvalid = !1, e.rawDataInvalid = !1, e.dataRangeInvalid = !1, e.dataItemsInvalid = !1, e.interpolationDuration = 0, e.interpolationEasing = y.cubicOut, e.sequencedInterpolation = !0, e.sequencedInterpolationDelay = 0, e.dataValidationProgress = 0, e._addAllDataItems = !0, e._usesData = !0, e.className = "Component", e.minZoomCount = 1, e.maxZoomCount = 0, e._dataItems = new o.b(e.createDataItem()), e._dataItems.events.on("inserted", e.handleDataItemAdded, e, !1), e._dataItems.events.on("removed", e.handleDataItemRemoved, e, !1), e._disposers.push(new a.c(e._dataItems)), e._disposers.push(e._dataItems.template), e.invalidateData(), e.dataUsers.events.on("inserted", e.handleDataUserAdded, e, !1), e._disposers.push(new l.c(e._dataDisposers)), e._start = 0, e._end = 1, e.maxZoomDeclination = 1, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.createDataItem = function() {
                    return new p.a
                }, e.prototype.handleDataUserAdded = function(t) {
                    t.newValue.dataProvider = this
                }, e.prototype.handleDataItemValueChange = function(t, e) {
                    this.dataItemsInvalid || this.invalidateDataItems()
                }, e.prototype.handleDataItemWorkingValueChange = function(t, e) {}, e.prototype.handleDataItemWorkingLocationChange = function(t, e) {}, e.prototype.handleDataItemCalculatedValueChange = function(t, e) {}, e.prototype.handleDataItemPropertyChange = function(t, e) {}, e.prototype.processDataItem = function(t, e) {
                    var i = this;
                    if (t) {
                        e || (e = {}), t.dataContext = e;
                        var n = !1;
                        b.each(this.dataFields, function(r, s) {
                            var l = r,
                                u = e[s];
                            if (i._adapterO && i._adapterO.isEnabled("dataContextValue") && (u = i._adapterO.apply("dataContextValue", {
                                    field: l,
                                    value: u,
                                    dataItem: t
                                }).value), t.hasChildren[l]) {
                                if (x.hasValue(u)) {
                                    n = !0;
                                    var h = i.createDataItem();
                                    h.copyFrom(i.mainDataSet.template);
                                    var c = new o.b(h);
                                    c.events.on("inserted", i.handleDataItemAdded, i, !1), c.events.on("removed", i.handleDataItemRemoved, i, !1), i._dataDisposers.push(new a.c(c));
                                    for (var p = u.length, d = 0; d < p; d++) {
                                        var f = u[d],
                                            g = c.create();
                                        g.parent = t, i.processDataItem(g, f)
                                    }
                                    t[l] = c
                                }
                            } else x.hasValue(u) && (n = !0, t[l] = u)
                        }), b.each(this.propertyFields, function(i, r) {
                            var a = i,
                                o = e[r];
                            x.hasValue(o) && (n = !0, t.setProperty(a, o))
                        }), this._addAllDataItems || n || this.mainDataSet.remove(t)
                    }
                }, e.prototype.updateDataItem = function(t) {
                    var e = this;
                    if (t) {
                        var i = t.dataContext;
                        b.each(this.dataFields, function(n, r) {
                            var a = n,
                                o = i[r];
                            if (e._adapterO && (o = e._adapterO.apply("dataContextValue", {
                                    field: a,
                                    value: o,
                                    dataItem: t
                                }).value), t.hasChildren[a]) {
                                if (o) {
                                    var s = t[a];
                                    v.each(s.iterator(), function(t) {
                                        e.updateDataItem(t)
                                    })
                                }
                            } else x.hasValue(o) && (t[a] = o)
                        }), b.each(this.propertyFields, function(e, n) {
                            var r = e,
                                a = i[n];
                            x.hasValue(a) && t.setProperty(r, a)
                        })
                    }
                }, e.prototype.validateDataElements = function() {
                    for (var t = this.endIndex, e = this.startIndex; e < t; e++) {
                        var i = this.dataItems.getIndex(e);
                        i && this.validateDataElement(i)
                    }
                }, e.prototype.validate = function() {
                    this.validateDataElements(), t.prototype.validate.call(this)
                }, e.prototype.validateDataElement = function(t) {}, e.prototype.addData = function(t, e) {
                    var i = this;
                    if (!this.dataInvalid && this.inited && (this._parseDataFrom = this.data.length), t instanceof Array ? g.each(t, function(t) {
                            i.data.push(t)
                        }) : this.data.push(t), this.inited) this.removeData(e);
                    else if (x.isNumber(e))
                        for (; e > 0;) this.data.shift(), e--;
                    this.invalidateData()
                }, e.prototype.removeData = function(t) {
                    if (x.isNumber(t) && t > 0) {
                        for (; t > 0;) {
                            var e = this.mainDataSet.getIndex(0);
                            e && this.mainDataSet.remove(e), this.dataUsers.each(function(t) {
                                if (!t.data || 0 == t.data.length) {
                                    var e = t.dataItems.getIndex(0);
                                    e && t.dataItems.remove(e)
                                }
                            }), this.data.shift(), this._parseDataFrom > 0 && this._parseDataFrom--, t--
                        }
                        this.invalidateDataItems()
                    }
                }, e.prototype.invalidateData = function() {
                    this.disabled || this.isTemplate || (d.c.addToInvalidComponents(this), c.b.requestFrame(), this.dataInvalid = !0, v.each(this.dataUsers.iterator(), function(t) {
                        t.invalidateDataItems()
                    }))
                }, e.prototype.invalidateDataUsers = function() {
                    v.each(this.dataUsers.iterator(), function(t) {
                        t.invalidate()
                    })
                }, e.prototype.invalidateDataItems = function() {
                    this.disabled || this.isTemplate || (g.move(d.c.invalidDataItems, this), c.b.requestFrame(), this.dataItemsInvalid = !0, v.each(this.dataUsers.iterator(), function(t) {
                        t.invalidateDataItems()
                    }))
                }, e.prototype.invalidateDataRange = function() {
                    this.disabled || this.isTemplate || (this.dataRangeInvalid = !0, g.move(d.c.invalidDataRange, this), c.b.requestFrame())
                }, e.prototype.validateDataRange = function() {
                    g.remove(d.c.invalidDataRange, this), this.dataRangeInvalid = !1, this.startIndex == this._prevStartIndex && this.endIndex == this._prevEndIndex || (this.rangeChangeUpdate(), this.appendDataItems(), this.invalidate(), this.dispatchImmediately("datarangechanged"))
                }, e.prototype.sliceData = function() {
                    this._workingStartIndex = this.startIndex, this._workingEndIndex = this.endIndex
                }, e.prototype.rangeChangeUpdate = function() {
                    this.sliceData(), this._prevStartIndex = this.startIndex, this._prevEndIndex = this.endIndex
                }, e.prototype.appendDataItems = function() {
                    for (var t = this.endIndex, e = this.startIndex; e < t; e++) {
                        (i = this.dataItems.getIndex(e)) && (i.__disabled = !1)
                    }
                    for (e = 0; e < this.startIndex; e++) {
                        (i = this.dataItems.getIndex(e)).__disabled = !0
                    }
                    for (e = this.endIndex; e < this.dataItems.length; e++) {
                        var i;
                        (i = this.dataItems.getIndex(e)).__disabled = !0
                    }
                }, e.prototype.invalidateRawData = function() {
                    this.disabled || this.isTemplate || (g.move(d.c.invalidRawDatas, this), c.b.requestFrame(), this.rawDataInvalid = !0, v.each(this.dataUsers.iterator(), function(t) {
                        t.invalidateRawData()
                    }))
                }, e.prototype.validateRawData = function() {
                    var t = this;
                    g.remove(d.c.invalidRawDatas, this), v.each(this.mainDataSet.iterator(), function(e) {
                        e && t.updateDataItem(e)
                    })
                }, e.prototype.dispose = function() {
                    var e = this;
                    this.mainDataSet.template.clones.clear(), b.each(this._dataSources, function(t, i) {
                        e.removeDispose(i)
                    }), t.prototype.dispose.call(this)
                }, e.prototype.disposeData = function() {
                    this.mainDataSet.template.clones.clear(), g.each(this._dataDisposers, function(t) {
                        t.dispose()
                    }), v.each(this.dataUsers.iterator(), function(t) {
                        t.disposeData()
                    }), this._dataDisposers.length = 0, this._startIndex = void 0, this._endIndex = void 0, this.mainDataSet.clear(), this.mainDataSet.template.clones.clear(), this._dataSets && this._dataSets.clear()
                }, e.prototype.getDataItem = function(t) {
                    return this.mainDataSet.create()
                }, e.prototype.validateData = function() {
                    if (this.dispatchImmediately("beforedatavalidated"), this.dataInvalid = !1, d.c.removeFromInvalidComponents(this), !this.__disabled) {
                        if (this.dataValidationProgress = 0, this._prevStartIndex = void 0, this._prevEndIndex = void 0, this._startIndex = void 0, this._endIndex = void 0, this.dataFields.data && this.dataItem) {
                            var t = this.dataItem.dataContext;
                            this._data = t[this.dataFields.data]
                        }
                        if (0 === this._parseDataFrom && this.data.length > 0 && this.disposeData(), this.data.length > 0) {
                            var e = this.preloader;
                            v.each(this.dataUsers.iterator(), function(t) {
                                t._startIndex = void 0, t._endIndex = void 0
                            });
                            for (var i = 0, n = Date.now(), r = this._parseDataFrom, a = this.data.length, o = function() {
                                    var t = s.data[r];
                                    if (s._usesData) {
                                        var a = s.getDataItem(t);
                                        s.processDataItem(a, t)
                                    }
                                    if ((s.dataUsers.each(function(e) {
                                            if (0 == e.data.length) {
                                                var i = e.getDataItem(t);
                                                e.processDataItem(i, t)
                                            }
                                        }), 100 == ++i) && (i = 0, Date.now() - n > s.parsingStepDuration && r < s.data.length - 10)) return s._parseDataFrom = r + 1, e && (r / s.data.length > .5 && !e.visible || (e.progress = r / s.data.length)), s.dataValidationProgress = r / s.data.length, r = s.data.length, s.invalidateData(), {
                                        value: void 0
                                    }
                                }, s = this; r < a; r++) {
                                var l = o();
                                if ("object" == typeof l) return l.value
                            }
                            e && (e.progress = 1), this.dataUsers.each(function(t) {
                                t.hidden && t.hide(0)
                            })
                        }
                        this.dataValidationProgress = 1, this._parseDataFrom = 0, this.invalidateDataItems(), this._internalDefaultsApplied || this.applyInternalDefaults(), this.dispatch("datavalidated")
                    }
                }, e.prototype.validateDataItems = function() {
                    g.remove(d.c.invalidDataItems, this), this.dataItemsInvalid = !1, this.invalidateDataRange(), this.invalidate(), this.dispatch("dataitemsvalidated")
                }, Object.defineProperty(e.prototype, "data", {
                    get: function() {
                        return this._data || (this._data = []), this._adapterO ? this._adapterO.apply("data", this._data) : this._data
                    },
                    set: function(t) {
                        this.setData(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setData = function(t) {
                    this._parseDataFrom = 0, this.disposeData(), this._data = t, t && t.length > 0 ? this.invalidateData() : (this.dispatchImmediately("beforedatavalidated"), this.dispatch("datavalidated"))
                }, e.prototype.getDataSource = function(t) {
                    var e = this;
                    return x.hasValue(this._dataSources[t]) || (this._dataSources[t] = new u.a, this._dataSources[t].component = this, this.setDataSourceEvents(this._dataSources[t], t), this._dataSources[t].adapter.add("dateFields", function(t) {
                        return e.dataSourceDateFields(t)
                    }), this._dataSources[t].adapter.add("numberFields", function(t) {
                        return e.dataSourceNumberFields(t)
                    }), this.events.on("inited", function() {
                        e.loadData(t)
                    }, this, !1)), this._dataSources[t]
                }, Object.defineProperty(e.prototype, "dataSource", {
                    get: function() {
                        return this._dataSources.data || this.getDataSource("data"), this._dataSources.data
                    },
                    set: function(t) {
                        var e = this;
                        this._dataSources.data && this.removeDispose(this._dataSources.data), this._dataSources.data = t, this._dataSources.data.component = this, this.events.on("inited", function() {
                            e.loadData("data")
                        }, this, !1), this.setDataSourceEvents(t, "data")
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.loadData = function(t) {
                    this._dataSources[t].load()
                }, e.prototype.dataSourceDateFields = function(t) {
                    return t
                }, e.prototype.dataSourceNumberFields = function(t) {
                    return t
                }, e.prototype.populateDataSourceFields = function(t, e, i) {
                    return g.each(i, function(i) {
                        e[i] && -1 === g.indexOf(t, e[i]) && t.push(e[i])
                    }), t
                }, e.prototype.setDataSourceEvents = function(t, e) {
                    var i = this;
                    t.events.on("started", function(t) {
                        var e = i.preloader;
                        e && (e.progress = 0)
                    }, void 0, !1), t.events.on("loadstarted", function(t) {
                        var e = i.preloader;
                        e && (e.progress = .25)
                    }, void 0, !1), t.events.on("loadended", function(t) {
                        var e = i.preloader;
                        e && (e.progress = .5)
                    }, void 0, !1), t.events.on("parseended", function(t) {
                        var e = i.preloader;
                        e && (e.progress = .75)
                    }, void 0, !1), t.events.on("ended", function(t) {
                        var e = i.preloader;
                        e && (e.progress = 1)
                    }, void 0, !1), t.events.on("error", function(t) {
                        var e = i.preloader;
                        e && (e.progress = 1), i.openModal(t.message)
                    }, void 0, !1), e && t.events.on("done", function(n) {
                        var r = i.preloader;
                        r && (r.progress = 1), "data" != e || x.isArray(n.data) || (n.data = [n.data]), t.incremental && "data" == e && i.data.length ? i.addData(n.data, t.keepCount ? n.data.length : 0) : t.updateCurrentData && "data" == e && i.data.length ? (g.each(i.data, function(t, e) {
                            x.hasValue(n.data[e]) && b.each(t, function(i, r) {
                                x.hasValue(n.data[e][i]) && (t[i] = n.data[e][i])
                            })
                        }), i.invalidateRawData()) : i[e] = n.data
                    })
                }, Object.defineProperty(e.prototype, "responsive", {
                    get: function() {
                        return this._responsive || (this._responsive = new h.a, this._responsive.component = this), this._responsive
                    },
                    set: function(t) {
                        this._responsive = t, this._responsive.component = this
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.zoom = function(t, e, i, n) {
                    var r = this;
                    void 0 === e && (e = !1), void 0 === i && (i = !1);
                    var a = t.start,
                        o = t.end,
                        s = t.priority;
                    if (t.start == t.end && (t.start = t.start - .5 / this.maxZoomFactor, t.end = t.end + .5 / this.maxZoomFactor), "end" == s && 1 == o && 0 != a && a < this.start && (s = "start"), "start" == s && 0 == a && o > this.end && (s = "end"), x.isNumber(n) || (n = this.maxZoomDeclination), !x.isNumber(a) || !x.isNumber(o)) return {
                        start: this.start,
                        end: this.end
                    };
                    if (this._finalStart != a || this._finalEnd != o) {
                        var l = this.maxZoomFactor / this.minZoomCount,
                            u = this.maxZoomFactor / this.maxZoomCount;
                        if ("start" == s ? (this.maxZoomCount > 0 && 1 / (o - a) < u && (o = a + 1 / u), 1 / (o - a) > l && (o = a + 1 / l), o > 1 && o - a < 1 / l && (a = o - 1 / l)) : (this.maxZoomCount > 0 && 1 / (o - a) < u && (a = o - 1 / u), 1 / (o - a) > l && (a = o - 1 / l), a < 0 && o - a < 1 / l && (o = a + 1 / l)), a < -n && (a = -n), 1 / (o - a) > l && (o = a + 1 / l), o > 1 + n && (o = 1 + n), 1 / (o - a) > l && (a = o - 1 / l), this._finalEnd = o, this._finalStart = a, this.skipRangeEvent = e, this.dispatchImmediately("rangechangestarted"), this.rangeChangeDuration > 0 && !i) {
                            var h = this.rangeChangeAnimation;
                            if (h && h.progress < 1) {
                                var c = h.animationOptions;
                                if (c.length > 1) {
                                    if (c[0].to == a && c[1].to == o) return {
                                        start: a,
                                        end: o
                                    };
                                    h.isDisposed() || h.stop()
                                }
                            }
                            this.rangeChangeAnimation && this.rangeChangeAnimation.kill(), h = this.animate([{
                                property: "start",
                                to: a
                            }, {
                                property: "end",
                                to: o
                            }], this.rangeChangeDuration, this.rangeChangeEasing), this.rangeChangeAnimation = h, h && !h.isFinished() ? h.events.on("animationended", function() {
                                r.dispatchImmediately("rangechangeended")
                            }) : this.dispatchImmediately("rangechangeended")
                        } else this.start = a, this.end = o, this.dispatch("rangechangeended")
                    }
                    return {
                        start: a,
                        end: o
                    }
                }, e.prototype.zoomToIndexes = function(t, e, i, n) {
                    if (x.isNumber(t) && x.isNumber(e)) {
                        var r = t / this.dataItems.length,
                            a = e / this.dataItems.length;
                        this.zoom({
                            start: r,
                            end: a
                        }, i, n)
                    }
                }, Object.defineProperty(e.prototype, "zoomFactor", {
                    get: function() {
                        return f.fitToRange(1 / (this.end - this.start), 1, this.maxZoomFactor)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxZoomFactor", {
                    get: function() {
                        return this.getPropertyValue("maxZoomFactor")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxZoomFactor", t) && (1 == t && (this.maxZoomDeclination = 0), this.invalidateDataRange())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxZoomDeclination", {
                    get: function() {
                        return this.getPropertyValue("maxZoomDeclination")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxZoomDeclination", t) && this.invalidateDataRange()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "startIndex", {
                    get: function() {
                        return x.isNumber(this._startIndex) || (this._startIndex = 0), this._startIndex
                    },
                    set: function(t) {
                        this._startIndex = f.fitToRange(Math.round(t), 0, this.dataItems.length), this.start = this.indexToPosition(this._startIndex)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.indexToPosition = function(t) {
                    return t / this.dataItems.length
                }, Object.defineProperty(e.prototype, "endIndex", {
                    get: function() {
                        var t = this.dataItems.length;
                        return (!x.isNumber(this._endIndex) || this._endIndex > t) && (this._endIndex = t), this._endIndex
                    },
                    set: function(t) {
                        this._endIndex = f.fitToRange(Math.round(t), 0, this.dataItems.length), this.end = this.indexToPosition(this._endIndex)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "start", {
                    get: function() {
                        return this._adapterO ? this._adapterO.apply("start", this._start) : this._start
                    },
                    set: function(t) {
                        if (this._start != t) {
                            this._start = t;
                            var e = Math.max(0, Math.floor(this.dataItems.length * t) || 0);
                            this._startIndex = Math.min(e, this.dataItems.length), this.invalidateDataRange(), this.invalidate(), this.dispatchImmediately("startchanged"), this.dispatch("startendchanged")
                        }
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "end", {
                    get: function() {
                        return this._adapterO ? this._adapterO.apply("end", this._end) : this._end
                    },
                    set: function(t) {
                        this._end != t && (this._end = t, this._endIndex = Math.min(this.dataItems.length, Math.ceil(this.dataItems.length * t) || 0), this.invalidateDataRange(), this.invalidate(), this.dispatchImmediately("endchanged"), this.dispatch("startendchanged"))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.removeFromInvalids = function() {
                    t.prototype.removeFromInvalids.call(this), d.c.removeFromInvalidComponents(this), g.remove(d.c.invalidDataItems, this), g.remove(d.c.invalidDataRange, this), g.remove(d.c.invalidRawDatas, this)
                }, Object.defineProperty(e.prototype, "dataItems", {
                    get: function() {
                        if ("" != this._currentDataSetId) {
                            var t = this.dataSets.getKey(this._currentDataSetId);
                            if (t) return t
                        }
                        return this._dataItems
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "dataSets", {
                    get: function() {
                        return this._dataSets || (this._dataSets = new s.a), this._dataSets
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setDataSet = function(t) {
                    if (this._currentDataSetId != t) {
                        if (this.dataSets.getKey(t)) return this.dataItems.each(function(t) {
                            t.__disabled = !0
                        }), this._currentDataSetId = t, this.invalidateDataRange(), this._prevStartIndex = void 0, this.dataItems.each(function(t) {
                            t.__disabled = !1
                        }), !0;
                        if ("" != this._currentDataSetId) return this.dataItems.each(function(t) {
                            t.__disabled = !0
                        }), this._currentDataSetId = "", this.invalidateDataRange(), this._prevStartIndex = void 0, this.dataItems.each(function(t) {
                            t.__disabled = !1
                        }), !0
                    }
                    return !1
                }, Object.defineProperty(e.prototype, "currentDataSetId", {
                    get: function() {
                        return this._currentDataSetId
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "mainDataSet", {
                    get: function() {
                        return this._dataItems
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype._updateDataItemIndexes = function(t) {
                    for (var e = this.mainDataSet.values, i = e.length, n = t; n < i; ++n) e[n]._index = n
                }, e.prototype.handleDataItemAdded = function(t) {
                    t.newValue.component = this, this._updateDataItemIndexes(t.index), this.dataItemsInvalid || this.invalidateDataItems()
                }, e.prototype.handleDataItemRemoved = function(t) {
                    this._updateDataItemIndexes(t.index), this.dataItemsInvalid || this.invalidateDataItems()
                }, e.prototype.bindDataField = function(t, e) {
                    this.dataFields[t] = e, this.invalidateDataRange()
                }, e.prototype.invalidateProcessedData = function() {
                    this.resetProcessedRange(), this.invalidateDataRange()
                }, e.prototype.resetProcessedRange = function() {
                    this._prevEndIndex = null, this._prevStartIndex = null
                }, Object.defineProperty(e.prototype, "dataUsers", {
                    get: function() {
                        var t = this;
                        return this._dataUsers || (this._dataUsers = new a.b, this._disposers.push(new l.b(function() {
                            v.each(t._dataUsers.iterator(), function(t) {
                                t.dispose()
                            })
                        }))), this._dataUsers
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.clone = function() {
                    var e = t.prototype.clone.call(this);
                    return e.dataFields = m.copyProperties(this.dataFields, {}), e
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.data = e.data, this.sequencedInterpolation = e.sequencedInterpolation, this.sequencedInterpolationDelay = e.sequencedInterpolationDelay, this.interpolationDuration = e.interpolationDuration, this.interpolationEasing = e.interpolationEasing
                }, e.prototype.reinit = function() {
                    this._inited = !1, this.deepInvalidate()
                }, e.prototype.getExporting = function() {
                    var e = t.prototype.getExporting.call(this);
                    return e.adapter.has("data", this._exportData, -1, this) || (e.adapter.add("data", this._exportData, -1, this), this.events.on("datavalidated", function(t) {
                        e.menu && e.menu.invalidate(), e.handleDataUpdated()
                    })), e
                }, e.prototype._exportData = function(t) {
                    return t.data = this.data, t
                }, e.prototype.setDisabled = function(e) {
                    var i = t.prototype.setDisabled.call(this, e);
                    return i && this.invalidateData(), i
                }, e.prototype.setShowOnInit = function(e) {
                    e != this.getPropertyValue("showOnInit") && (!e || this.inited || this.hidden ? this._showOnInitDisposer2 && this.removeDispose(this._showOnInitDisposer2) : (this._showOnInitDisposer2 = this.events.once("dataitemsvalidated", this.hideInitially, this, !1), this._disposers.push(this._showOnInitDisposer2))), t.prototype.setShowOnInit.call(this, e)
                }, e.prototype.setBaseId = function(e) {
                    e != this._baseId && this.dataInvalid && (this.dataInvalid = !1, d.c.removeFromInvalidComponents(this), this._baseId = e, this.invalidateData()), t.prototype.setBaseId.call(this, e)
                }, Object.defineProperty(e.prototype, "minZoomCount", {
                    get: function() {
                        return this.getPropertyValue("minZoomCount")
                    },
                    set: function(t) {
                        this.setPropertyValue("minZoomCount", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxZoomCount", {
                    get: function() {
                        return this.getPropertyValue("maxZoomCount")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxZoomCount", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype._systemCheckIfValidate = function() {
                    return !(this.dataInvalid || this.dataProvider && this.dataProvider.dataInvalid)
                }, e.prototype.asFunction = function(e) {
                    return "interpolationEasing" == e || "rangeChangeEasing" == e || t.prototype.asIs.call(this, e)
                }, e
            }(r.a);
        d.c.registeredClasses.Component = _
    },
    YG4I: function(t, e, i) {
        var n = i("9XRO"),
            r = i("GtmK").f,
            a = {}.toString,
            o = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
        t.exports.f = function(t) {
            return o && "[object Window]" == a.call(t) ? function(t) {
                try {
                    return r(t)
                } catch (t) {
                    return o.slice()
                }
            }(t) : r(n(t))
        }
    },
    YOID: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("Vs7R"),
            o = i("aCit"),
            s = i("hGwe"),
            l = i("Qkdp"),
            u = i("8ZqG"),
            h = i("aFzC"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "LineSeriesSegment", e.isMeasured = !1, e.interactionsEnabled = !1, e.layout = "none";
                    var i = e.createChild(a.a);
                    e.fillSprite = i, i.shouldClone = !1, i.setElement(e.paper.add("path")), i.isMeasured = !1, e._disposers.push(i);
                    var n = e.createChild(a.a);
                    return e.strokeSprite = n, n.shouldClone = !1, n.fill = Object(u.c)(), n.setElement(e.paper.add("path")), n.isMeasured = !1, e._disposers.push(n), e
                }
                return Object(n.c)(e, t), e.prototype.drawSegment = function(t, e, i, n) {
                    if (!this.disabled)
                        if (t.length > 0 && e.length > 0) {
                            var r = s.moveTo({
                                x: t[0].x - .2,
                                y: t[0].y - .2
                            }) + s.moveTo(t[0]) + new h.b(i, n).smooth(t);
                            0 == this.strokeOpacity || 0 == this.strokeSprite.strokeOpacity || (this.strokeSprite.path = r), (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) && (r += s.lineTo(e[0]) + new h.b(i, n).smooth(e), r += s.lineTo(t[0]), r += s.closePath(), this.fillSprite.path = r)
                        } else this.fillSprite.path = "", this.strokeSprite.path = ""
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e);
                    var i = this.strokeSprite;
                    l.copyProperties(e, i.properties, a.b), i.events.copyFrom(e.strokeSprite.events), i.fillOpacity = 0;
                    var n = this.fillSprite;
                    l.copyProperties(e, n.properties, a.b), n.events.copyFrom(e.fillSprite.events), n.strokeOpacity = 0
                }, e
            }(r.a);
        o.c.registeredClasses.LineSeriesSegment = c
    },
    "YRD/": function(t, e, i) {
        "use strict";
        var n = i("1wCr"),
            r = i("8+rI"),
            a = i("KslR"),
            o = i("3sMl"),
            s = a("species");
        t.exports = function(t) {
            var e = n(t),
                i = r.f;
            o && e && !e[s] && i(e, s, {
                configurable: !0,
                get: function() {
                    return this
                }
            })
        }
    },
    YWS7: function(t, e, i) {
        var n = i("0sYB"),
            r = i("9XRO"),
            a = i("tHyI");
        n({
            target: "String",
            stat: !0
        }, {
            raw: function(t) {
                for (var e = r(t.raw), i = a(e.length), n = arguments.length, o = [], s = 0; i > s;) o.push(String(e[s++])), s < n && o.push(String(arguments[s]));
                return o.join("")
            }
        })
    },
    Ybtf: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("FzPm"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Ellipse", e.element = e.paper.add("ellipse"), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this), this.element.attr({
                        rx: this.radius
                    }), this.element.attr({
                        ry: this.radiusY
                    })
                }, Object.defineProperty(e.prototype, "radiusY", {
                    get: function() {
                        return this.innerHeight / 2
                    },
                    set: function(t) {
                        this.height = 2 * t, this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "radius", {
                    get: function() {
                        return this.innerWidth / 2
                    },
                    set: function(t) {
                        this.width = 2 * t, this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.Ellipse = o
    },
    YcPX: function(t, e, i) {
        var n = i("0sYB"),
            r = i("Kg2n"),
            a = i("Tl3C").onFreeze,
            o = i("6EAy"),
            s = i("6aQQ"),
            l = Object.preventExtensions;
        n({
            target: "Object",
            stat: !0,
            forced: s(function() {
                l(1)
            }),
            sham: !o
        }, {
            preventExtensions: function(t) {
                return l && r(t) ? l(a(t)) : t
            }
        })
    },
    Ygeo: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("7dku").right,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("reduceRight", function(t) {
            return r(a(this), t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    YotE: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("o0Lc"),
            a = i("hD5A"),
            o = function(t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e._domEvents = {}, e
                }
                return Object(n.c)(e, t), e.prototype._addDOMEvent = function(t, e, i, n) {
                    var r = this;
                    if (!this._domEvents[t]) {
                        var o = function(t) {
                            i.call(n, e, t)
                        };
                        this.target.element.addEventListener(t, o, !1), this._domEvents[t] = new a.a(function() {
                            delete r._domEvents[t], r.target.element.removeEventListener(t, o, !1)
                        })
                    }
                    return this._domEvents[t].increment()
                }, e.prototype._dispatchKeyboardEvent = function(t, e) {
                    this.target.events.isEnabled(t) && this.target.events.dispatchImmediately(t, {
                        type: t,
                        target: this.target,
                        event: e
                    })
                }, e.prototype._on = function(e, i, n, r, o, s) {
                    var l = t.prototype._on.call(this, e, i, n, r, o, s),
                        u = [l.disposer];
                    switch (i) {
                        case "hit":
                        case "doublehit":
                        case "rightclick":
                        case "down":
                        case "up":
                            this.target.clickable = !0;
                            break;
                        case "drag":
                        case "dragstart":
                        case "dragstop":
                            this.target.draggable = !0;
                            break;
                        case "track":
                            this.target.trackable = !0;
                            break;
                        case "resize":
                            this.target.resizable = !0;
                            break;
                        case "swipe":
                        case "swipeleft":
                        case "swiperight":
                            this.target.swipeable = !0;
                            break;
                        case "wheel":
                        case "wheelup":
                        case "wheeldown":
                        case "wheelleft":
                        case "wheelright":
                            this.target.wheelable = !0;
                            break;
                        case "over":
                        case "out":
                            this.target.hoverable = !0;
                            break;
                        case "focus":
                        case "blur":
                        case "focusin":
                        case "focusout":
                            this.target.focusable = !0;
                            break;
                        case "keydown":
                        case "keyup":
                        case "keypress":
                        case "input":
                            u.push(this._addDOMEvent(i, i, this._dispatchKeyboardEvent, this))
                    }
                    return l.disposer = new a.c(u), l
                }, e
            }(r.b)
    },
    ZKUO: function(t, e, i) {
        i("0sYB")({
            target: "Reflect",
            stat: !0
        }, {
            ownKeys: i("grfs")
        })
    },
    ZLF9: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("P7v+"),
            o = i("vMqJ"),
            s = i("1yyj"),
            l = i("aCit"),
            u = i("MIZb"),
            h = i("Wglt"),
            c = i("Qkdp"),
            p = i("Mtpk"),
            d = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._elements = new o.b, e.properties = {}, e.className = "Pattern", e.width = 10, e.height = 10, e.x = 0, e.y = 0, e.patternUnits = "userSpaceOnUse";
                    var i = new u.a;
                    return e.backgroundFill = i.getFor("background"), e.backgroundOpacity = 0, e.fillOpacity = 1, e.fill = i.getFor("alternativeBackground"), e.stroke = i.getFor("alternativeBackground"), e.strokeOpacity = 1, e.strokeWidth = 1, e.shapeRendering = "crispEdges", e.rotation = 0, e.element = e.paper.addGroup("pattern"), e.id = "pattern-" + l.c.getUniqueId(), e.element.attr({
                        id: e.id
                    }), e._disposers.push(e.element), e._disposers.push(new o.c(e._elements)), e.patternUnits = e.patternUnits, e.width = e.width, e.height = e.height, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    var t = this,
                        e = this.element;
                    if (e) {
                        e.removeChildNodes();
                        var i = this.paper.add("rect");
                        i.attr({
                            width: this.width,
                            height: this.height,
                            "shape-rendering": "crispEdges",
                            fill: this.backgroundFill.hex,
                            "fill-opacity": this.backgroundOpacity,
                            stroke: this.backgroundFill.hex,
                            "stroke-opacity": this.backgroundOpacity
                        }), e.add(i), e.attr({
                            x: this.x,
                            y: this.y,
                            width: this.width,
                            height: this.height,
                            stroke: this.stroke.hex,
                            fill: this.fill.hex,
                            "fill-opacity": this.fillOpacity,
                            "stroke-opacity": this.strokeOpacity,
                            "stroke-width": this.strokeWidth,
                            "shape-rendering": this.shapeRendering,
                            patternUnits: this.patternUnits,
                            "stroke-dasharray": this.strokeDasharray
                        }), h.each(this._elements.iterator(), function(e) {
                            e.rotation = t.rotation, e.rotationX = t.properties.rotationX, e.rotationY = t.properties.rotationY, t.element.add(e)
                        })
                    }
                }, e.prototype.animate = function(t, e, i) {
                    return new s.a(this, t, e, i).start()
                }, e.prototype.addElement = function(t) {
                    this._elements.push(t), this._disposers.push(t)
                }, e.prototype.removeElement = function(t) {
                    this._elements.removeValue(t), this.removeDispose(t)
                }, Object.defineProperty(e.prototype, "elements", {
                    get: function() {
                        return this._elements
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fillOpacity", {
                    get: function() {
                        return this.properties.fillOpacity
                    },
                    set: function(t) {
                        this.properties.fillOpacity = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fill", {
                    get: function() {
                        return this.properties.fill
                    },
                    set: function(t) {
                        this.properties.fill = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "backgroundFill", {
                    get: function() {
                        return this.properties.backgroundFill
                    },
                    set: function(t) {
                        this.properties.backgroundFill = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "backgroundOpacity", {
                    get: function() {
                        return this.properties.backgroundOpacity
                    },
                    set: function(t) {
                        this.properties.backgroundOpacity = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "stroke", {
                    get: function() {
                        return this.properties.stroke
                    },
                    set: function(t) {
                        this.properties.stroke = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeOpacity", {
                    get: function() {
                        return this.properties.strokeOpacity
                    },
                    set: function(t) {
                        this.properties.strokeOpacity = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeWidth", {
                    get: function() {
                        return this.properties.strokeWidth
                    },
                    set: function(t) {
                        this.properties.strokeWidth = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "shapeRendering", {
                    get: function() {
                        return this.properties.shapeRendering
                    },
                    set: function(t) {
                        this.properties.shapeRendering = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "rotation", {
                    get: function() {
                        return this.properties.rotation
                    },
                    set: function(t) {
                        this.properties.rotation = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "patternUnits", {
                    get: function() {
                        return this.properties.patternUnits
                    },
                    set: function(t) {
                        this.properties.patternUnits = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "width", {
                    get: function() {
                        return this.properties.width
                    },
                    set: function(t) {
                        this.properties.width = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "height", {
                    get: function() {
                        return this.properties.height
                    },
                    set: function(t) {
                        this.properties.height = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "x", {
                    get: function() {
                        return this.properties.x
                    },
                    set: function(t) {
                        this.properties.x = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "y", {
                    get: function() {
                        return this.properties.y
                    },
                    set: function(t) {
                        this.properties.y = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "paper", {
                    get: function() {
                        return this._paper ? this._paper : Object(a.b)()
                    },
                    set: function(t) {
                        this._paper != t && (this._paper = t, this.draw(), t.appendDef(this.element))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    var i = this;
                    t.prototype.copyFrom.call(this, e), c.each(e.properties, function(t, e) {
                        i[t] = e
                    })
                }, Object.defineProperty(e.prototype, "animations", {
                    get: function() {
                        return this._animations || (this._animations = [], this._disposers.push(new s.b(this._animations))), this._animations
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "strokeDasharray", {
                    get: function() {
                        return this.properties.strokeDashArray
                    },
                    set: function(t) {
                        this.properties.strokeDashArray = t, this.draw()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.processConfig = function(e) {
                    if (e && p.hasValue(e.elements) && p.isArray(e.elements))
                        for (var i = 0, n = e.elements.length; i < n; i++) {
                            var a = e.elements[i];
                            if (p.hasValue(a.type)) {
                                var o = this.createEntryInstance(a);
                                o instanceof r.a && (o.config = a), this.addElement(p.hasValue(a.typeProperty) ? o[a.typeProperty] : o.element)
                            }
                        }
                    t.prototype.processConfig.call(this, e)
                }, e
            }(r.a);
        l.c.registeredClasses.Pattern = d
    },
    ZYec: function(t, e, i) {
        i("0sYB")({
            target: "Object",
            stat: !0
        }, {
            is: i("fXYt")
        })
    },
    ZhuL: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("mIpt"),
            a = i("Qkdp"),
            o = i("Mtpk"),
            s = function(t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e.contentType = "application/json", e.options = {}, e
                }
                return Object(n.c)(e, t), e.isJSON = function(t) {
                    try {
                        return JSON.parse(t), !0
                    } catch (t) {
                        return !1
                    }
                }, e.prototype.parse = function(t) {
                    var e, i = this;
                    try {
                        o.hasValue(JSON) && (e = JSON.parse(t))
                    } catch (t) {
                        return
                    }
                    var n = o.hasValue(this.options.emptyAs),
                        r = this.parsableNumbers,
                        s = this.parsableDates;
                    if (Array.isArray(e) && (r || s || n))
                        for (var l = function(t, o) {
                                var l = e[t];
                                a.each(l, function(t, e) {
                                    n && (l[t] = i.maybeToEmpty(l[t])), r && (l[t] = i.maybeToNumber(t, l[t])), s && (l[t] = i.maybeToDate(t, l[t]))
                                })
                            }, u = 0, h = e.length; u < h; u++) l(u);
                    return e
                }, e
            }(r.a)
    },
    ZjxQ: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = n.aTypedArray,
            a = n.exportTypedArrayMethod,
            o = [].join;
        a("join", function(t) {
            return o.apply(r(this), arguments)
        })
    },
    ZoDA: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("Uslz"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "ValueAxisBreak", e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "startPosition", {
                    get: function() {
                        if (this.axis) return this.axis.valueToPosition(this.adjustedStartValue)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endPosition", {
                    get: function() {
                        if (this.axis) return this.axis.valueToPosition(this.adjustedEndValue)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.ValueAxisBreak = o
    },
    aCit: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        }), i.d(e, "c", function() {
            return h
        }), e.b = function(t, e) {
            var i = h.registeredClasses[e];
            return null != i && t instanceof i
        };
        var n = i("o0Lc"),
            r = i("+qIf"),
            a = i("eCqC"),
            o = i("Mtpk"),
            s = i("wUYf"),
            l = i("hJ5i"),
            u = function() {
                function t() {
                    this.events = new n.a, this.themes = [], this.loadedThemes = {}, this._uidCount = 0, this.registeredClasses = {}, this._placeholders = {}, this.invalidSprites = {}, this.invalidDatas = {}, this.invalidRawDatas = [], this.invalidDataItems = [], this.invalidDataRange = [], this.invalidPositions = {}, this.invalidLayouts = {}, this.baseSprites = [], this.baseSpritesByUid = {}, this.queue = [], this.uid = this.getUniqueId(), this.invalidSprites.noBase = [], this.invalidDatas.noBase = [], this.invalidLayouts.noBase = [], this.invalidPositions.noBase = []
                }
                return t.prototype.getUniqueId = function() {
                    var t = this._uidCount;
                    return this._uidCount += 1, "id-" + t
                }, Object.defineProperty(t.prototype, "map", {
                    get: function() {
                        return this._map || (this._map = new r.a), this._map
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.setCache = function(t, e, i) {
                    a.b.set(this.uid, t, e, i)
                }, t.prototype.getCache = function(t, e) {
                    return void 0 === e && (e = void 0), a.b.get(this.uid, t, e)
                }, t.prototype.dispatch = function(t, e) {
                    this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatch(t, {
                        type: t,
                        target: this
                    })) : this.events.dispatch(t, {
                        type: t,
                        target: this
                    }))
                }, t.prototype.dispatchImmediately = function(t, e) {
                    this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatchImmediately(t, e)) : this.events.dispatchImmediately(t, {
                        type: t,
                        target: this
                    }))
                }, t.prototype.getPlaceholder = function(t) {
                    return o.hasValue(this._placeholders[t]) ? this._placeholders[t] : (this._placeholders[t] = "__amcharts_" + t + "_" + s.random(8) + "__", this._placeholders[t])
                }, t.prototype.addToInvalidComponents = function(t) {
                    t.baseId ? l.move(this.invalidDatas[t.baseId], t) : l.move(this.invalidDatas.noBase, t)
                }, t.prototype.removeFromInvalidComponents = function(t) {
                    t.baseId && l.remove(this.invalidDatas[t.baseId], t), l.remove(this.invalidDatas.noBase, t)
                }, t.prototype.addToInvalidSprites = function(t) {
                    t.baseId ? l.add(this.invalidSprites[t.baseId], t) : l.add(this.invalidSprites.noBase, t)
                }, t.prototype.removeFromInvalidSprites = function(t) {
                    t.baseId && l.remove(this.invalidSprites[t.baseId], t), l.remove(this.invalidSprites.noBase, t)
                }, t.prototype.addToInvalidPositions = function(t) {
                    t.baseId ? l.add(this.invalidPositions[t.baseId], t) : l.add(this.invalidPositions.noBase, t)
                }, t.prototype.removeFromInvalidPositions = function(t) {
                    t.baseId && l.remove(this.invalidPositions[t.baseId], t), l.remove(this.invalidPositions.noBase, t)
                }, t.prototype.addToInvalidLayouts = function(t) {
                    t.baseId ? l.add(this.invalidLayouts[t.baseId], t) : l.add(this.invalidLayouts.noBase, t)
                }, t.prototype.removeFromInvalidLayouts = function(t) {
                    t.baseId && l.remove(this.invalidLayouts[t.baseId], t), l.remove(this.invalidLayouts.noBase, t)
                }, t
            }(),
            h = new u
    },
    aFzC: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return l
        }), e.c = function(t, e, i, a, u, h) {
            var c = t.x,
                p = t.y,
                d = e.x,
                f = e.y,
                g = s.getDistance(t, e);
            h && (i = g / Math.round(g / i));
            var y = n.c.getCache(o.stringify(["wavedLine", t.x, e.x, t.y, e.y, i, a]));
            if (!y) {
                if (g > 0) {
                    var m = Math.atan2(f - p, d - c),
                        v = Math.cos(m),
                        b = Math.sin(m),
                        x = i * v,
                        _ = i * b;
                    if (i <= 1 || a <= 1) y = r.lineTo(e);
                    else {
                        var P = Math.round(2 * g / i),
                            w = [],
                            O = 1;
                        d < c && (O *= -1), f < p && (O *= -1);
                        for (var T = 0; T <= P; T++) {
                            var S = c + T * x / 2 + (O *= -1) * a / 2 * b,
                                C = p + T * _ / 2 - O * a / 2 * v;
                            w.push({
                                x: S,
                                y: C
                            })
                        }
                        y = new l(u, u).smooth(w)
                    }
                } else y = "";
                n.c.setCache(o.stringify(["wavedLine", t.x, e.x, t.y, e.y, i, a]), y)
            }
            return y
        }, i.d(e, "a", function() {
            return u
        });
        var n = i("aCit"),
            r = i("hGwe"),
            a = i("hJ5i"),
            o = i("v9UT"),
            s = i("Gg2j"),
            l = function() {
                function t(t, e) {
                    this._tensionX = t, this._tensionY = e
                }
                return t.prototype.smooth = function(t) {
                    var e = this._tensionX,
                        i = this._tensionY;
                    if (t.length < 3 || e >= 1 && i >= 1) return r.polyline(t);
                    var n = t[0],
                        a = t[t.length - 1],
                        o = !1;
                    s.round(n.x, 3) == s.round(a.x) && s.round(n.y) == s.round(a.y) && (o = !0);
                    for (var l = "", u = 0, h = t.length - 1; u < h; u++) {
                        var c = t[u - 1],
                            p = t[u],
                            d = t[u + 1],
                            f = t[u + 2];
                        0 === u ? c = o ? t[t.length - 2] : t[u] : u == t.length - 2 && (f = o ? t[1] : t[u + 1]);
                        var g = s.getCubicControlPointA(c, p, d, f, e, i),
                            y = s.getCubicControlPointB(c, p, d, f, e, i);
                        l += r.cubicCurveTo(d, g, y)
                    }
                    return l
                }, t
            }();
        var u = function() {
            function t(t) {
                this._closed = t.closed
            }
            return t.prototype.smooth = function(t) {
                var e = this,
                    i = NaN,
                    n = NaN,
                    o = NaN,
                    s = NaN,
                    l = NaN,
                    u = NaN,
                    h = NaN,
                    c = NaN,
                    p = NaN,
                    d = NaN,
                    f = 0,
                    g = "",
                    y = function(t, e) {
                        g += r.cubicCurveTo({
                            x: (i + 4 * n + t) / 6,
                            y: (u + 4 * h + e) / 6
                        }, {
                            x: (2 * i + n) / 3,
                            y: (2 * u + h) / 3
                        }, {
                            x: (i + 2 * n) / 3,
                            y: (u + 2 * h) / 3
                        })
                    },
                    m = function(t) {
                        var a = t.x,
                            m = t.y;
                        switch (f) {
                            case 0:
                                f = 1, e._closed ? (o = a, c = m) : g += r.lineTo({
                                    x: a,
                                    y: m
                                });
                                break;
                            case 1:
                                f = 2, e._closed && (s = a, p = m);
                                break;
                            case 2:
                                if (f = 3, e._closed) {
                                    l = a, d = m, g += r.moveTo({
                                        x: (i + 4 * n + a) / 6,
                                        y: (u + 4 * h + m) / 6
                                    });
                                    break
                                }
                                g += r.lineTo({
                                    x: (5 * i + n) / 6,
                                    y: (5 * u + h) / 6
                                });
                            default:
                                y(a, m)
                        }
                        i = n, n = a, u = h, h = m
                    };
                if (a.each(t, m), this._closed) switch (f) {
                    case 1:
                        g += r.moveTo({
                            x: o,
                            y: c
                        }), g += r.closePath();
                        break;
                    case 2:
                        g += r.moveTo({
                            x: (o + 2 * s) / 3,
                            y: (c + 2 * p) / 3
                        }), g += r.lineTo({
                            x: (s + 2 * o) / 3,
                            y: (p + 2 * c) / 3
                        }), g += r.closePath();
                        break;
                    case 3:
                        m({
                            x: o,
                            y: c
                        }), m({
                            x: s,
                            y: p
                        }), m({
                            x: l,
                            y: d
                        })
                } else {
                    switch (f) {
                        case 3:
                            y(n, h);
                        case 2:
                            g += r.lineTo({
                                x: n,
                                y: h
                            })
                    }
                    g += r.closePath()
                }
                return g
            }, t
        }()
    },
    aGXA: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("p9TX"),
            o = i("CnhP"),
            s = i("MIZb"),
            l = i("aCit"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "Button", e.tooltipY = 0, e.iconPosition = "left", e.layout = "horizontal", e.contentAlign = "center", e.contentValign = "middle", e.padding(8, 16, 8, 16);
                    var i = new s.a,
                        n = e.background;
                    n.fill = i.getFor("secondaryButton"), n.stroke = i.getFor("secondaryButtonStroke"), n.fillOpacity = 1, n.strokeOpacity = 1, n.cornerRadius(3, 3, 3, 3), e.label = new a.a, e.label.fill = i.getFor("secondaryButtonText");
                    var r = n.states.create("hover");
                    r.properties.fillOpacity = 1, r.properties.fill = i.getFor("secondaryButtonHover");
                    var o = n.states.create("down");
                    return o.transitionDuration = 100, o.properties.fill = i.getFor("secondaryButtonDown"), o.properties.fillOpacity = 1, e.role = "button", e.focusable = !0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "icon", {
                    get: function() {
                        return this.getPropertyValue("icon")
                    },
                    set: function(t) {
                        var e = this.getPropertyValue("icon");
                        e && (e.parent = void 0), t && (this.setPropertyValue("icon", t), t.parent = this, t.interactionsEnabled = !1, this.iconPosition = this.iconPosition, this._disposers.push(t))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "iconPosition", {
                    get: function() {
                        return this.getPropertyValue("iconPosition")
                    },
                    set: function(t) {
                        this.setPropertyValue("iconPosition", t), this.icon && ("left" == t ? this.icon.toBack() : this.icon.toFront())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "label", {
                    get: function() {
                        return this._label
                    },
                    set: function(t) {
                        this._label && this.removeDispose(this._label), this._label = t, t && (t.parent = this, t.interactionsEnabled = !1, this._disposers.push(this._label))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createBackground = function() {
                    return new o.a
                }, e
            }(r.a);
        l.c.registeredClasses.Button = u
    },
    aHAe: function(t, e, i) {
        "use strict";
        var n = i("cLsB"),
            r = i("7X7h"),
            a = i("VwzZ"),
            o = i("3Ok2"),
            s = i("tHyI"),
            l = i("WShl"),
            u = i("Ur2B");
        t.exports = function(t) {
            var e, i, h, c, p, d, f = r(t),
                g = "function" == typeof this ? this : Array,
                y = arguments.length,
                m = y > 1 ? arguments[1] : void 0,
                v = void 0 !== m,
                b = u(f),
                x = 0;
            if (v && (m = n(m, y > 2 ? arguments[2] : void 0, 2)), void 0 == b || g == Array && o(b))
                for (i = new g(e = s(f.length)); e > x; x++) d = v ? m(f[x], x) : f[x], l(i, x, d);
            else
                for (p = (c = b.call(f)).next, i = new g; !(h = p.call(c)).done; x++) d = v ? a(c, m, [h.value, x], !0) : h.value, l(i, x, d);
            return i.length = x, i
        }
    },
    aM7D: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return O
        }), i.d(e, "a", function() {
            return T
        });
        var n = i("m4/l"),
            r = i("Y9w3"),
            a = i("Vs7R"),
            o = i("vMqJ"),
            s = i("+qIf"),
            l = i("A6AV"),
            u = i("C6dT"),
            h = i("cxKZ"),
            c = i("TXRX"),
            p = i("uWmK"),
            d = i("Q4nc"),
            f = i("8ZqG"),
            g = i("aCit"),
            y = i("Wglt"),
            m = i("Gg2j"),
            v = i("0FpR"),
            b = i("v9UT"),
            x = i("Qkdp"),
            _ = i("Mtpk"),
            P = i("hJ5i"),
            w = i("hxI2"),
            O = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "SeriesDataItem", e.values.value = {}, e.values.value = {}, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "bullets", {
                    get: function() {
                        return this._bullets || (this._bullets = new s.a, this._disposers.push(new s.b(this._bullets))), this._bullets
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.dispose = function() {
                    this.bullets.clear(), t.prototype.dispose.call(this)
                }, Object.defineProperty(e.prototype, "value", {
                    get: function() {
                        return this.values.value.value
                    },
                    set: function(t) {
                        this.setValue("value", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(l.a),
            T = function(t) {
                function e() {
                    var i = t.call(this) || this;
                    if (i._ignoreMinMax = !1, i._showBullets = !0, i.legendSettings = new p.c, i._tmin = new s.a, i._tmax = new s.a, i._smin = new s.a, i._smax = new s.a, i.dataItemsByAxis = new s.a, i.skipFocusThreshold = 20, i._itemReaderTextChanged = !1, i.calculatePercent = !1, i.autoDispose = !0, i.simplifiedProcessing = !1, i.constructor === e) throw new Error("'Series' cannot be instantiated directly. Please use a specific series type.");
                    i.className = "Series", i.isMeasured = !1, i.layout = "none", i.shouldClone = !1, i.setPropertyValue("hidden", !1), i.axisRanges = new o.b, i.axisRanges.events.on("inserted", i.processAxisRange, i, !1), i.minBulletDistance = 0, i.mainContainer = i.createChild(u.a), i.mainContainer.shouldClone = !1, i.mainContainer.mask = i.createChild(a.a), i._disposers.push(i.mainContainer);
                    var n = i.mainContainer.createChild(u.a);
                    return i._shouldBeReady.push(n), n.shouldClone = !1, n.layout = "none", n.virtualParent = i, i._disposers.push(n), i.bulletsContainer = n, i.tooltip = new h.a, i.tooltip.virtualParent = i, i._disposers.push(i.tooltip), i.hiddenState.transitionEasing = v.cubicIn, i.dataItem = i.createDataItem(), i._disposers.push(i.dataItem), i.dataItem.component = i, i.role = "group", i.applyTheme(), i
                }
                return Object(n.c)(e, t), e.prototype.applyTheme = function() {
                    t.prototype.applyTheme.call(this), d.a.autoSetClassName && this.bulletsContainer && (this.bulletsContainer.className = this.className + "-bullets", this.bulletsContainer.setClassName())
                }, e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), _.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Series"))
                }, e.prototype.createDataItem = function() {
                    return new O
                }, Object.defineProperty(e.prototype, "chart", {
                    get: function() {
                        return this._chart
                    },
                    set: function(t) {
                        this._chart = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.positionBullet = function(t) {}, e.prototype.processBullet = function(t) {
                    var e = this,
                        i = t.newValue;
                    i.isTemplate = !0, this.events.once("datavalidated", function(t) {
                        e.itemsFocusable() && (i.focusable = !0)
                    })
                }, e.prototype.removeBullet = function(t) {
                    var e = t.oldValue;
                    this.dataItems.each(function(t) {
                        var i = t.bullets.getKey(e.uid);
                        i && i.dispose()
                    }), this.invalidate()
                }, e.prototype.validateDataItems = function() {
                    t.prototype.validateDataItems.call(this), this.processValues(!1)
                }, e.prototype.getFirstValue = function(t, e) {
                    e > 0 && e < this.dataItems.length - 1 && e++;
                    for (var i = e; i >= 0; i--) {
                        var n = this.dataItems.getIndex(i).getActualWorkingValue(t);
                        if (_.isNumber(n)) return n
                    }
                    return null
                }, e.prototype.getAbsoluteFirstValue = function(t) {
                    for (var e = 0; e < this.dataItems.length; e++) {
                        var i = this.dataItems.getIndex(e).values[t].value;
                        if (_.isNumber(i)) return i
                    }
                    return null
                }, e.prototype.rangeChangeUpdate = function() {
                    t.prototype.rangeChangeUpdate.call(this), this.processValues(!0)
                }, e.prototype.processValues = function(t) {
                    var e = this;
                    if (!this.simplifiedProcessing) {
                        var i = this.dataItems,
                            n = {},
                            r = {},
                            a = {},
                            o = {},
                            s = {},
                            l = {},
                            u = {},
                            h = {},
                            c = {},
                            p = {},
                            d = m.max(0, this._workingStartIndex);
                        d = m.min(d, this.dataItems.length);
                        var f = m.min(this._workingEndIndex, this.dataItems.length);
                        if (_.isNumber(d) || (d = 0), _.isNumber(f) || (f = this.dataItems.length), d > 0) {
                            var g = i.getIndex(d - 1);
                            x.each(g.values, function(t, e) {
                                var i = g.getActualWorkingValue(t);
                                _.isNumber(i) && (h[t] = i)
                            })
                        }
                        for (var y = function(t) {
                                var f = i.getIndex(t);
                                x.each(f.values, function(t, i) {
                                    var g = f.getActualWorkingValue(t);
                                    if (_.isNumber(g)) {
                                        _.isNumber(n[t]) || (n[t] = 0), n[t]++, _.isNumber(r[t]) || (r[t] = 0), r[t] += g, _.isNumber(a[t]) || (a[t] = 0), a[t] += Math.abs(g), _.isNumber(l[t]) || (l[t] = g), u[t] = g, _.isNumber(o[t]) ? o[t] > g && (o[t] = g) : o[t] = g, _.isNumber(s[t]) ? s[t] < g && (s[t] = g) : s[t] = g, _.isNumber(c[t]) || (c[t] = e.getFirstValue(t, d)), _.isNumber(p[t]) || (p[t] = e.getAbsoluteFirstValue(t)), f.setCalculatedValue(t, g - c[t], "change"), f.setCalculatedValue(t, (g - c[t]) / c[t] * 100, "changePercent"), f.setCalculatedValue(t, g - p[t], "startChange"), f.setCalculatedValue(t, (g - p[t]) / p[t] * 100, "startChangePercent");
                                        var y = h[t];
                                        _.isNumber(y) || (y = g), f.setCalculatedValue(t, g - y, "previousChange"), f.setCalculatedValue(t, (g - y) / y * 100, "previousChangePercent"), h[t] = g
                                    }
                                })
                            }, v = d; v < f; v++) y(v);
                        if (this.calculatePercent) {
                            var b = function(t) {
                                var e = i.getIndex(t);
                                x.each(e.values, function(t) {
                                    var i = a[t],
                                        n = e.getActualWorkingValue(t);
                                    if (_.isNumber(n))
                                        if (i > 0) {
                                            n == i && (i = e.values[t].value);
                                            var r = n / i * 100;
                                            e.setCalculatedValue(t, r, "percent")
                                        } else e.setCalculatedValue(t, 0, "percent")
                                })
                            };
                            for (v = d; v < f; v++) b(v)
                        }
                        if (d > 0) {
                            var P = i.getIndex(d - 1);
                            x.each(P.values, function(t) {
                                var e = P.values[t].value;
                                P.setCalculatedValue(t, e - l[t], "change"), P.setCalculatedValue(t, (e - l[t]) / l[t] * 100, "changePercent")
                            })
                        }
                        var w = this.dataItem;
                        x.each(w.values, function(t) {
                            w.setCalculatedValue(t, r[t], "sum"), w.setCalculatedValue(t, a[t], "absoluteSum"), w.setCalculatedValue(t, r[t] / n[t], "average"), w.setCalculatedValue(t, l[t], "open"), w.setCalculatedValue(t, u[t], "close"), w.setCalculatedValue(t, o[t], "low"), w.setCalculatedValue(t, s[t], "high"), w.setCalculatedValue(t, n[t], "count")
                        })
                    }
                }, e.prototype.validate = function() {
                    y.each(this.axisRanges.iterator(), function(t) {
                        t.validate()
                    }), t.prototype.validate.call(this);
                    var e = this.bulletsContainer;
                    if (e.fill = this.fill, e.stroke = this.stroke, e.x = this.pixelX, e.y = this.pixelY, this.bulletsContainer.children.length > 0)
                        if (this._showBullets) {
                            for (var i = 0; i < this.startIndex; i++) {
                                (n = this.dataItems.getIndex(i)) && n.bullets.each(function(t, e) {
                                    e.__disabled = !0
                                })
                            }
                            for (i = this.dataItems.length - 1; i > this.endIndex; i--) {
                                var n;
                                (n = this.dataItems.getIndex(i)) && n.bullets.each(function(t, e) {
                                    e.__disabled = !0
                                })
                            }
                        } else this.bulletsContainer.children.each(function(t) {
                            t.__disabled = !0
                        });
                    this.updateTooltipBounds()
                }, e.prototype.updateTooltipBounds = function() {
                    if (this.topParent) {
                        var t = {
                            x: 0,
                            y: 0,
                            width: this.topParent.maxWidth,
                            height: this.topParent.maxHeight
                        };
                        this.tooltip.setBounds(t)
                    }
                }, e.prototype.shouldCreateBullet = function(t, e) {
                    return !0
                }, e.prototype.validateDataElement = function(e) {
                    var i = this;
                    t.prototype.validateDataElement.call(this, e), this._showBullets ? (this.isHidden || (this.bulletsContainer.visible = !0), this.bullets.each(function(t) {
                        var n = e.bullets.getKey(t.uid);
                        if (i.shouldCreateBullet(e, t)) {
                            if (!n) {
                                var r = t.propertyFields.disabled,
                                    a = e.dataContext;
                                r && a && !1 === a[r] ? (t.applyOnClones = !1, t.disabled = !1, n = t.clone(), t.disabled = !0, t.applyOnClones = !0) : n = t.clone(), n.shouldClone = !1, e.addSprite(n), i.visible && !i.isHiding || n.hide(0)
                            }
                            var o = n.dataItem;
                            if (o != e) {
                                o && o.bullets.setKey(t.uid, void 0);
                                var s = i.itemReaderText;
                                n instanceof c.a && (s || (s = "{" + n.xField + "}: {" + n.yField + "}"), n.isDynamic && (e.events.on("workingvaluechanged", n.deepInvalidate, n, !1), i.dataItem.events.on("workingvaluechanged", n.deepInvalidate, n, !1)), n.deepInvalidate()), n.focusable && (n.events.on("focus", function(t) {
                                    n.readerTitle = i.populateString(s, n.dataItem)
                                }, void 0, !1), n.events.on("blur", function(t) {
                                    n.readerTitle = ""
                                }, void 0, !1)), n.hoverable && (n.events.on("over", function(t) {
                                    n.readerTitle = i.populateString(s, n.dataItem)
                                }, void 0, !1), n.events.on("out", function(t) {
                                    n.readerTitle = ""
                                }, void 0, !1))
                            }
                            n.parent = i.bulletsContainer, e.bullets.setKey(t.uid, n), n.maxWidth = e.itemWidth, n.maxHeight = e.itemHeight, n.__disabled = !1, i.positionBullet(n)
                        } else n && (n.__disabled = !0)
                    })) : this.bulletsContainer.visible = !1
                }, e.prototype.handleDataItemWorkingValueChange = function(t, e) {
                    this.dataRangeInvalid || this.invalidateProcessedData()
                }, Object.defineProperty(e.prototype, "ignoreMinMax", {
                    get: function() {
                        return this._ignoreMinMax
                    },
                    set: function(t) {
                        this._ignoreMinMax = t, this.invalidateDataItems()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createMask = function() {}, e.prototype.processAxisRange = function(t) {
                    this.rangesContainer || (this.rangesContainer = this.createChild(u.a), this.rangesContainer.shouldClone = !1, this.rangesContainer.isMeasured = !1);
                    var e = t.newValue;
                    e && (e.contents.parent = this.rangesContainer, e.isRange = !0, e.events.on("valuechanged", this.invalidateDataItems, this, !1))
                }, e.prototype.getAxisField = function(t) {}, e.prototype.showTooltipAtPosition = function(t, e) {}, Object.defineProperty(e.prototype, "minBulletDistance", {
                    get: function() {
                        return this.getPropertyValue("minBulletDistance")
                    },
                    set: function(t) {
                        this.setPropertyValue("minBulletDistance", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bullets", {
                    get: function() {
                        return this._bullets || (this._bullets = new o.e(new c.a), this._bullets.template.virtualParent = this, this._bullets.events.on("inserted", this.processBullet, this, !1), this._bullets.events.on("removed", this.removeBullet, this, !1), this._disposers.push(new o.c(this._bullets)), this._disposers.push(this._bullets.template)), this._bullets
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createLegendMarker = function(t) {}, Object.defineProperty(e.prototype, "hiddenInLegend", {
                    get: function() {
                        return this.getPropertyValue("hiddenInLegend")
                    },
                    set: function(t) {
                        this.setPropertyValue("hiddenInLegend", t) && this.chart && this.chart.feedLegend()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "name", {
                    get: function() {
                        return this.getPropertyValue("name")
                    },
                    set: function(t) {
                        this.setPropertyValue("name", t);
                        var e = this.legendDataItem;
                        e && (e.component.invalidate(), e.component.invalidateRawData()), this.readerTitle = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "itemReaderText", {
                    get: function() {
                        var t = this._itemReaderText;
                        return t || (this.tooltipText ? t = b.plainText(this.tooltipText) : this.tooltipHTML && (t = b.plainText(this.tooltipHTML))), this._adapterO ? this._adapterO.apply("itemReaderText", t) : t
                    },
                    set: function(t) {
                        this._itemReaderText = t, this._itemReaderTextChanged = !0
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.itemsFocusable = function() {
                    return !(this.dataItems.length >= this.skipFocusThreshold)
                }, Object.defineProperty(e.prototype, "legendDataItem", {
                    get: function() {
                        return this._legendDataItem
                    },
                    set: function(t) {
                        this._legendDataItem = t, this._legendDataItem.itemContainer.deepInvalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.updateLegendValue = function(t, e) {
                    if (this.legendDataItem) {
                        var i = this.legendSettings,
                            n = this.legendDataItem,
                            r = n.label,
                            a = n.valueLabel;
                        t || e ? (a && (i.itemValueText && (a.text = i.itemValueText), a.dataItem = t), r && (i.itemLabelText && (r.text = i.itemLabelText), r.dataItem = t)) : (r && ((i.labelText || void 0 != i.itemLabelText) && (r.text = i.labelText), r.dataItem = this.dataItem), a && ((i.valueText || void 0 != i.itemValueText) && (a.text = i.valueText), a.dataItem = this.dataItem))
                    }
                }, e.prototype.copyFrom = function(e) {
                    this.bullets.copyFrom(e.bullets), this.bulletsContainer.copyFrom(e.bulletsContainer), this.calculatePercent = e.calculatePercent, this.simplifiedProcessing = e.simplifiedProcessing, t.prototype.copyFrom.call(this, e)
                }, e.prototype.raiseCriticalError = function(t) {
                    this._chart && this._chart.modal && (this._chart.modal.content = this._chart.adapter.apply("criticalError", t).message, this._chart.modal.closable = !1, this._chart.modal.open(), this._chart.disabled = !0), d.a.verbose && console.log(t)
                }, e.prototype.applyFilters = function() {
                    var e = this;
                    t.prototype.applyFilters.call(this), this.bulletsContainer.filters.clear(), y.each(this.filters.iterator(), function(t) {
                        e.bulletsContainer.filters.push(t.clone())
                    })
                }, Object.defineProperty(e.prototype, "heatRules", {
                    get: function() {
                        var t = this;
                        return this._heatRules || (this._heatRules = new o.b, this._heatRules.events.on("inserted", function(e) {
                            var i = e.newValue,
                                n = i.target;
                            if (n) {
                                var r = i.dataField;
                                _.hasValue(r) || (r = "value");
                                var o = i.min,
                                    s = i.max,
                                    l = t.dataItem,
                                    h = i.property,
                                    c = _.toNumber(i.minValue),
                                    p = _.toNumber(i.maxValue);
                                _.isNumber(c) || _.isNumber(p) || t.dataItem.events.on("calculatedvaluechanged", function(e) {
                                    e.property == r && y.each(t.dataItems.iterator(), function(t) {
                                        var e = !1;
                                        P.each(t.sprites, function(t) {
                                            if (t.clonedFrom == n) {
                                                var i = t;
                                                i[h] = i[h], e = !0
                                            }
                                        }), e || P.each(t.sprites, function(t) {
                                            t instanceof u.a && y.each(t.children.iterator(), function(t) {
                                                if (t.className == n.className) {
                                                    var e = t;
                                                    e[h] = e[h]
                                                } else t instanceof u.a && t.deepInvalidate()
                                            })
                                        })
                                    })
                                }), t.dataItems.template.events.on("workingvaluechanged", function(t) {
                                    if (t.property == r) {
                                        var e = t.target,
                                            i = !1;
                                        P.each(e.sprites, function(t) {
                                            if (t.clonedFrom == n) {
                                                var e = t;
                                                e[h] = e[h], i = !0
                                            }
                                        }), i || P.each(e.sprites, function(t) {
                                            t instanceof u.a && y.each(t.children.iterator(), function(t) {
                                                if (t.className == n.className) {
                                                    var e = t;
                                                    e[h] = e[h]
                                                } else t instanceof u.a && t.deepInvalidate()
                                            })
                                        })
                                    }
                                }), n.adapter.add(h, function(t, e, n) {
                                    var u = _.toNumber(i.minValue),
                                        h = _.toNumber(i.maxValue);
                                    if (e instanceof a.a) {
                                        var c = e.propertyFields[n];
                                        if (c && e.dataItem) {
                                            var p = e.dataItem.dataContext;
                                            if (p && _.hasValue(p[c])) return t
                                        }
                                    }
                                    var d = e.dataItem;
                                    if ((_.isNumber(u) || (u = l.values[r].low), _.isNumber(h) || (h = l.values[r].high), d) && d.values[r]) {
                                        var g = d.getActualWorkingValue(r);
                                        if (_.hasValue(o) && _.hasValue(s) && _.isNumber(u) && _.isNumber(h) && _.isNumber(g)) {
                                            var y = (g - u) / (h - u);
                                            if (_.isNumber(g) && !_.isNumber(y) && (y = .5), _.isNumber(o)) return o + (s - o) * y;
                                            if (o instanceof f.a) return new f.a(w.interpolate(o.rgb, s.rgb, y))
                                        }
                                    }
                                    return t
                                })
                            }
                        })), this._heatRules
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.processConfig = function(e) {
                    var i;
                    if (e) {
                        if (_.hasValue(e.bullets) && _.isArray(e.bullets))
                            for (var n = 0, r = e.bullets.length; n < r; n++) {
                                var a = e.bullets[n];
                                _.hasValue(a.type) || (a.type = "Bullet")
                            }
                        _.hasValue(e.heatRules) && _.isArray(e.heatRules) && (i = e.heatRules, delete e.heatRules)
                    }
                    if (t.prototype.processConfig.call(this, e), i) {
                        for (n = 0, r = i.length; n < r; n++) {
                            var s = i[n],
                                l = this;
                            if (_.hasValue(s.target) && _.isString(s.target))
                                if (this.map.hasKey(s.target)) l = this.map.getKey(s.target);
                                else
                                    for (var u = s.target.split("."), h = 0; h < u.length; h++)
                                        if (l instanceof o.b) {
                                            var c = l.getIndex(_.toNumber(u[h]));
                                            l = c || l[u[h]]
                                        } else l = l[u[h]];
                            s.target = l, _.hasValue(s.min) && (s.min = this.maybeColorOrPercent(s.min)), _.hasValue(s.max) && (s.max = this.maybeColorOrPercent(s.max))
                        }
                        t.prototype.processConfig.call(this, {
                            heatRules: i
                        })
                    }
                }, e.prototype.configOrder = function(e, i) {
                    return e == i ? 0 : "heatRules" == e ? 1 : "heatRules" == i ? -1 : t.prototype.configOrder.call(this, e, i)
                }, e.prototype.setVisibility = function(e) {
                    t.prototype.setVisibility.call(this, e), this.bulletsContainer.visible = e
                }, e
            }(r.a);
        g.c.registeredClasses.Series = T, g.c.registeredClasses.SeriesDataItem = O
    },
    aSLB: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("3sMl"),
            a = i("hqo8"),
            o = i("7X7h"),
            s = i("HnbP"),
            l = i("8+rI");
        r && n({
            target: "Object",
            proto: !0,
            forced: a
        }, {
            __defineSetter__: function(t, e) {
                l.f(o(this), t, {
                    set: s(e),
                    enumerable: !0,
                    configurable: !0
                })
            }
        })
    },
    abrF: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("YG4I").f;
        n({
            target: "Object",
            stat: !0,
            forced: r(function() {
                return !Object.getOwnPropertyNames(1)
            })
        }, {
            getOwnPropertyNames: a
        })
    },
    akNo: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("P/bD"),
            a = i("Tjl+"),
            o = i("MipW"),
            s = i("aCit"),
            l = i("ScGY"),
            u = i("Qkdp"),
            h = i("v9UT"),
            c = i("Mtpk"),
            p = i("Gg2j"),
            d = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._negativeBase = 0, e._baseUnit = "second", e._outputFormat = "svg", e._unitValues = {
                        millisecond: 1,
                        second: 1e3,
                        minute: 6e4,
                        hour: 36e5,
                        day: 864e5,
                        week: 6048e5,
                        month: 2592e6,
                        year: 31536e6
                    }, e._unitAliases = {
                        Y: "y",
                        D: "d",
                        H: "h",
                        K: "h",
                        k: "h",
                        n: "S"
                    }, e.className = "DurationFormatter", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.format = function(t, e, i) {
                    this.language || (this.sprite ? this.language = this.sprite.language : this.language = new r.a);
                    var n = i || this._baseUnit;
                    void 0 !== e && "" !== e || (e = c.hasValue(this.durationFormat) ? this.durationFormat : this.getFormat(c.toNumber(t), null, n)), e = h.cleanFormat(e);
                    var a, o = this.parseFormat(e, n),
                        s = Number(t);
                    a = s > this._negativeBase ? o.positive : s < this._negativeBase ? o.negative : o.zero;
                    var l = this.applyFormat(s, a);
                    return "" !== a.color && ("svg" === this._outputFormat ? l = "<tspan fill='" + a.color + "'>" + l + "</tspan>" : "html" === this._outputFormat && (l = "<span style='color: " + a.color + ";'>" + l + "</span>")), l
                }, e.prototype.parseFormat = function(t, e) {
                    var i = this,
                        n = this.getCache(t);
                    if (c.hasValue(n)) return n;
                    var r = e || this._baseUnit,
                        a = {
                            positive: {
                                color: "",
                                template: "",
                                parts: [],
                                source: "",
                                baseUnit: r,
                                parsed: !1,
                                absolute: !1
                            },
                            negative: {
                                color: "",
                                template: "",
                                parts: [],
                                source: "",
                                baseUnit: r,
                                parsed: !1,
                                absolute: !1
                            },
                            zero: {
                                color: "",
                                template: "",
                                parts: [],
                                source: "",
                                baseUnit: r,
                                parsed: !1,
                                absolute: !1
                            }
                        },
                        s = (t = t.replace("||", l.e)).split("|");
                    return a.positive.source = s[0], void 0 === s[2] ? a.zero = a.positive : a.zero.source = s[2], void 0 === s[1] ? a.negative = a.positive : a.negative.source = s[1], u.each(a, function(t, e) {
                        if (!e.parsed)
                            if (void 0 === i.getCache(e.source)) {
                                var n, r = e.source;
                                (n = e.source.match(/^\[([^\]]*)\]/)) && n.length && "" !== n[0] && (r = e.source.substr(n[0].length), e.color = n[1]);
                                for (var s = Object(o.b)().chunk(r, !0), u = 0; u < s.length; u++) {
                                    var h = s[u];
                                    if (h.text = h.text.replace(l.e, "|"), "value" === h.type) {
                                        h.text.match(/[yYMdDwhHKkmsSn]+a/) && (e.absolute = !0, h.text = h.text.replace(/([yYMdDwhHKkmsSn]+)a/, "$1"));
                                        var p = h.text.match(/y+|Y+|M+|d+|D+|w+|h+|H+|K+|k+|m+|s+|S+|n+/g);
                                        if (p)
                                            for (var d = 0; d < p.length; d++) c.hasValue(p[d]) || (p[d] = i._unitAliases[p[d]]), e.parts.push(p[d]), h.text = h.text.replace(p[d], l.d)
                                    }
                                    e.template += h.text
                                }
                                i.setCache(e.source, e), e.parsed = !0
                            } else a[t] = i.getCache(e.source)
                    }), this.setCache(t, a), a
                }, e.prototype.applyFormat = function(t, e) {
                    var i = !e.absolute && t < this._negativeBase;
                    t = Math.abs(t);
                    for (var n = this.toTimeStamp(t, e.baseUnit), r = e.template, a = 0, o = e.parts.length; a < o; a++) {
                        var s = e.parts[a],
                            u = this.toTimeUnit(s.substr(0, 1)),
                            c = s.length,
                            p = Math.floor(n / this._unitValues[u]);
                        r = r.replace(l.d, h.padString(p, c, "0")), n -= p * this._unitValues[u]
                    }
                    return i && (r = "-" + r), r
                }, e.prototype.toTimeStamp = function(t, e) {
                    return t * this._unitValues[e]
                }, e.prototype.toTimeUnit = function(t) {
                    switch (t) {
                        case "S":
                            return "millisecond";
                        case "s":
                            return "second";
                        case "m":
                            return "minute";
                        case "h":
                            return "hour";
                        case "d":
                            return "day";
                        case "w":
                            return "week";
                        case "M":
                            return "month";
                        case "y":
                            return "year"
                    }
                }, e.prototype.invalidateSprite = function() {
                    this.sprite && this.sprite.invalidate()
                }, Object.defineProperty(e.prototype, "baseUnit", {
                    get: function() {
                        return this._baseUnit
                    },
                    set: function(t) {
                        this._baseUnit = t, this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "outputFormat", {
                    get: function() {
                        return this._outputFormat
                    },
                    set: function(t) {
                        this._outputFormat = t.toLowerCase(), this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getFormat = function(t, e, i) {
                    if (c.hasValue(this.durationFormat)) return this.durationFormat;
                    if (i || (i = this.baseUnit), c.hasValue(e) && t != e) {
                        t = Math.abs(t), e = Math.abs(e);
                        var n = this.getValueUnit(p.max(t, e), i);
                        return this.durationFormats[i][n]
                    }
                    var r = this.getValueUnit(t, i);
                    return this.durationFormats[i][r]
                }, e.prototype.getValueUnit = function(t, e) {
                    var i;
                    e || (e = this.baseUnit);
                    var n = this.getMilliseconds(t, e);
                    return u.eachContinue(this._unitValues, function(t, r) {
                        if (t == e || i) {
                            if (n / r <= 1) return i || (i = t), !1;
                            i = t
                        }
                        return !0
                    }), i
                }, e.prototype.getMilliseconds = function(t, e) {
                    return e || (e = this.baseUnit), t * this._unitValues[e]
                }, Object.defineProperty(e.prototype, "durationFormat", {
                    get: function() {
                        return this._durationFormat
                    },
                    set: function(t) {
                        this._durationFormat != t && (this._durationFormat = t, this.invalidateSprite())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "durationFormats", {
                    get: function() {
                        return this._durationFormats || (this._durationFormats = {
                            millisecond: {
                                millisecond: this.language.translate("_duration_millisecond"),
                                second: this.language.translate("_duration_millisecond_second"),
                                minute: this.language.translate("_duration_millisecond_minute"),
                                hour: this.language.translate("_duration_millisecond_hour"),
                                day: this.language.translate("_duration_millisecond_day"),
                                week: this.language.translate("_duration_millisecond_week"),
                                month: this.language.translate("_duration_millisecond_month"),
                                year: this.language.translate("_duration_millisecond_year")
                            },
                            second: {
                                second: this.language.translate("_duration_second"),
                                minute: this.language.translate("_duration_second_minute"),
                                hour: this.language.translate("_duration_second_hour"),
                                day: this.language.translate("_duration_second_day"),
                                week: this.language.translate("_duration_second_week"),
                                month: this.language.translate("_duration_second_month"),
                                year: this.language.translate("_duration_second_year")
                            },
                            minute: {
                                minute: this.language.translate("_duration_minute"),
                                hour: this.language.translate("_duration_minute_hour"),
                                day: this.language.translate("_duration_minute_day"),
                                week: this.language.translate("_duration_minute_week"),
                                month: this.language.translate("_duration_minute_month"),
                                year: this.language.translate("_duration_minute_year")
                            },
                            hour: {
                                hour: this.language.translate("_duration_hour"),
                                day: this.language.translate("_duration_hour_day"),
                                week: this.language.translate("_duration_hour_week"),
                                month: this.language.translate("_duration_hour_month"),
                                year: this.language.translate("_duration_hour_year")
                            },
                            day: {
                                day: this.language.translate("_duration_day"),
                                week: this.language.translate("_duration_day_week"),
                                month: this.language.translate("_duration_day_month"),
                                year: this.language.translate("_duration_day_year")
                            },
                            week: {
                                week: this.language.translate("_duration_week"),
                                month: this.language.translate("_duration_week_month"),
                                year: this.language.translate("_duration_week_year")
                            },
                            month: {
                                month: this.language.translate("_duration_month"),
                                year: this.language.translate("_duration_month_year")
                            },
                            year: {
                                year: this.language.translate("_duration_year")
                            }
                        }), this._durationFormats
                    },
                    set: function(t) {
                        this._durationFormats = t, this.invalidateSprite()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(a.a);
        s.c.registeredClasses.DurationFormatter = d
    },
    bS9u: function(t, e, i) {
        "use strict";
        var n, r, a = 0,
            o = 0,
            s = 0,
            l = 1e3,
            u = 0,
            h = 0,
            c = 0,
            p = "object" == typeof performance && performance.now ? performance : Date,
            d = "object" == typeof window && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) {
                setTimeout(t, 17)
            };

        function f() {
            return h || (d(g), h = p.now() + c)
        }

        function g() {
            h = 0
        }

        function y() {
            this._call = this._time = this._next = null
        }

        function m(t, e, i) {
            var n = new y;
            return n.restart(t, e, i), n
        }

        function v() {
            f(), ++a;
            for (var t, e = n; e;)(t = h - e._time) >= 0 && e._call.call(null, t), e = e._next;
            --a
        }

        function b() {
            h = (u = p.now()) + c, a = o = 0;
            try {
                v()
            } finally {
                a = 0,
                    function() {
                        var t, e, i = n,
                            a = 1 / 0;
                        for (; i;) i._call ? (a > i._time && (a = i._time), t = i, i = i._next) : (e = i._next, i._next = null, i = t ? t._next = e : n = e);
                        r = t, _(a)
                    }(), h = 0
            }
        }

        function x() {
            var t = p.now(),
                e = t - u;
            e > l && (c -= e, u = t)
        }

        function _(t) {
            a || (o && (o = clearTimeout(o)), t - h > 24 ? (t < 1 / 0 && (o = setTimeout(b, t - p.now() - c)), s && (s = clearInterval(s))) : (s || (u = p.now(), s = setInterval(x, l)), a = 1, d(b)))
        }
        y.prototype = m.prototype = {
            constructor: y,
            restart: function(t, e, i) {
                if ("function" != typeof t) throw new TypeError("callback is not a function");
                i = (null == i ? f() : +i) + (null == e ? 0 : +e), this._next || r === this || (r ? r._next = this : n = this, r = this), this._call = t, this._time = i, _()
            },
            stop: function() {
                this._call && (this._call = null, this._time = 1 / 0, _())
            }
        };
        var P = function(t, e, i) {
                var n = new y;
                return e = null == e ? 0 : +e, n.restart(function(i) {
                    n.stop(), t(i + e)
                }, e, i), n
            },
            w = function(t, e, i) {
                var n = new y,
                    r = e;
                return null == e ? (n.restart(t, e, i), n) : (e = +e, i = null == i ? f() : +i, n.restart(function a(o) {
                    o += r, n.restart(a, r += e, i), t(o)
                }, e, i), n)
            };
        i.d(e, "a", function() {
            return f
        }), i.d(e, "c", function() {
            return m
        }), i.d(e, !1, function() {
            return v
        }), i.d(e, "b", function() {
            return P
        }), i.d(e, !1, function() {
            return w
        })
    },
    bUwg: function(t, e, i) {
        i("0sYB")({
            target: "Object",
            stat: !0,
            sham: !i("3sMl")
        }, {
            create: i("QzDi")
        })
    },
    bZFJ: function(t, e, i) {
        var n = i("0sYB"),
            r = i("8nEM"),
            a = Math.abs,
            o = Math.pow;
        n({
            target: "Math",
            stat: !0
        }, {
            cbrt: function(t) {
                return r(t = +t) * o(a(t), 1 / 3)
            }
        })
    },
    bvi0: function(t, e, i) {
        var n = i("vfdp"),
            r = i("29Us"),
            a = n["__core-js_shared__"] || r("__core-js_shared__", {});
        t.exports = a
    },
    cBFz: function(t, e, i) {
        "use strict";
        var n = i("vfdp"),
            r = i("UseD"),
            a = i("6aQQ"),
            o = n.Int8Array,
            s = r.aTypedArray,
            l = r.exportTypedArrayMethod,
            u = [].toLocaleString,
            h = [].slice,
            c = !!o && a(function() {
                u.call(new o(1))
            });
        l("toLocaleString", function() {
            return u.apply(c ? h.call(s(this)) : s(this), arguments)
        }, a(function() {
            return [1, 2].toLocaleString() != new o([1, 2]).toLocaleString()
        }) || !a(function() {
            o.prototype.toLocaleString.call([1, 2])
        }))
    },
    cLsB: function(t, e, i) {
        var n = i("HnbP");
        t.exports = function(t, e, i) {
            if (n(t), void 0 === e) return t;
            switch (i) {
                case 0:
                    return function() {
                        return t.call(e)
                    };
                case 1:
                    return function(i) {
                        return t.call(e, i)
                    };
                case 2:
                    return function(i, n) {
                        return t.call(e, i, n)
                    };
                case 3:
                    return function(i, n, r) {
                        return t.call(e, i, n, r)
                    }
            }
            return function() {
                return t.apply(e, arguments)
            }
        }
    },
    cOH5: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return r
        });
        var n = i("m4/l"),
            r = function(t) {
                function e(e) {
                    return t.call(this, e) || this
                }
                return Object(n.c)(e, t), e.prototype.add = function(t) {
                    t && this.node.appendChild(t.node)
                }, e.prototype.addToBack = function(t) {
                    if (t) {
                        var e = this.node.childNodes[0];
                        e ? e != t.node && this.node.insertBefore(t.node, e) : this.node.appendChild(t.node)
                    }
                }, e.prototype.removeElement = function(t) {
                    if (t) try {
                        t.node && t.node.parentNode == this.node && this.node.removeChild(t.node)
                    } catch (t) {}
                }, e.prototype.hasChild = function(t) {
                    for (var e = 0; e < this.node.childNodes.length; e++)
                        if (this.node.childNodes[e] == t.node) return !0;
                    return !1
                }, Object.defineProperty(e.prototype, "content", {
                    get: function() {
                        return this.node.innerHTML
                    },
                    set: function(t) {
                        this.node.innerHTML = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.removeChildren = function() {
                    if (this.node.childNodes)
                        for (; this.node.childNodes.length > 0;) {
                            var t = this.node.firstChild;
                            t && t.parentNode && t.parentNode.removeChild(t)
                        }
                }, e
            }(i("pzs1").a)
    },
    cSfM: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("sup")
        }, {
            sup: function() {
                return r(this, "sup", "", "")
            }
        })
    },
    "cXJ+": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("7dku").right,
            a = i("xlUI"),
            o = i("J+FZ"),
            s = a("reduceRight"),
            l = o("reduce", {
                1: 0
            });
        n({
            target: "Array",
            proto: !0,
            forced: !s || !l
        }, {
            reduceRight: function(t) {
                return r(this, t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    cxKZ: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return f
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("aCit"),
            o = i("MZQ8"),
            s = i("p9TX"),
            l = i("1yyj"),
            u = i("8ZqG"),
            h = i("VAFc"),
            c = i("Gg2j"),
            p = i("0FpR"),
            d = i("v9UT"),
            f = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._boundingRect = {
                        x: -4e4,
                        y: -4e4,
                        width: 8e4,
                        height: 8e4
                    }, e._pointTo = {
                        x: 0,
                        y: 0
                    }, e.fitPointerToBounds = !1, e._verticalOrientation = "up", e.className = "Tooltip", e.isMeasured = !1, e.getFillFromObject = !0, e.margin(5, 5, 5, 5), e.defaultState.transitionDuration = 1, e.hiddenState.transitionDuration = 1;
                    var i = e.background;
                    i.interactionsEnabled = !1, i.fillOpacity = .9, i.strokeWidth = 1, i.strokeOpacity = 1, i.stroke = Object(u.c)("#ffffff"), i.cornerRadius = 3, i.pointerLength = 6, i.pointerBaseWidth = 10;
                    var n = new h.a;
                    n.dy = 1, n.dx = 1, n.opacity = .5, i.filters.push(n), e.autoTextColor = !0;
                    var r = e.createChild(s.a);
                    return r.shouldClone = !1, e.label = r, r.padding(7, 12, 4, 12), r.interactionsEnabled = !1, r.horizontalCenter = "middle", r.fill = Object(u.c)("#ffffff"), e._disposers.push(r), e.label.events.on("sizechanged", e.drawBackground, e), e.label.zIndex = 1, e.pointerOrientation = "vertical", e.animationDuration = 0, e.animationEasing = p.cubicOut, e.setPropertyValue("showInViewport", !1), e.role = "tooltip", e.visible = !1, e.opacity = 0, e.x = 0, e.y = 0, e.events.on("visibilitychanged", e.handleVisibility, e), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.handleVisibility = function() {
                    this.visible && this.label.invalidate()
                }, Object.defineProperty(e.prototype, "getStrokeFromObject", {
                    get: function() {
                        return this.getPropertyValue("getStrokeFromObject")
                    },
                    set: function(t) {
                        this.setPropertyValue("getStrokeFromObject", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "autoTextColor", {
                    get: function() {
                        return this.getPropertyValue("autoTextColor")
                    },
                    set: function(t) {
                        this.setPropertyValue("autoTextColor", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "keepTargetHover", {
                    get: function() {
                        return this.getPropertyValue("keepTargetHover")
                    },
                    set: function(t) {
                        var e = this;
                        this.setPropertyValue("keepTargetHover", t, !0) && t && (this.hoverable = !0, this.background.interactionsEnabled = !0, this._disposers.push(this.events.on("over", function(t) {
                            e.targetSprite && e.targetSprite.hoverable && (e.targetSprite.isHover = !0)
                        })), this._disposers.push(this.events.on("out", function(t) {
                            e.targetSprite && e.targetSprite.hoverable && (e.targetSprite.isHover = !1)
                        })))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "showInViewport", {
                    get: function() {
                        return this.getPropertyValue("showInViewport")
                    },
                    set: function(t) {
                        this.setPropertyValue("showInViewport", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "getFillFromObject", {
                    get: function() {
                        return this.getPropertyValue("getFillFromObject")
                    },
                    set: function(t) {
                        this.setPropertyValue("getFillFromObject", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createBackground = function() {
                    return new o.a
                }, Object.defineProperty(e.prototype, "pointerOrientation", {
                    get: function() {
                        return this.getPropertyValue("pointerOrientation")
                    },
                    set: function(t) {
                        this.setPropertyValue("pointerOrientation", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "animationDuration", {
                    get: function() {
                        return this.getPropertyValue("animationDuration")
                    },
                    set: function(t) {
                        this.setPropertyValue("animationDuration", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "animationEasing", {
                    get: function() {
                        return this.getPropertyValue("animationEasing")
                    },
                    set: function(t) {
                        this.setPropertyValue("animationEasing", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "html", {
                    get: function() {
                        return this.label.html
                    },
                    set: function(t) {
                        this.label.html != t && (this.label.html = t, this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "text", {
                    get: function() {
                        return this.label.text
                    },
                    set: function(t) {
                        this.label.text != t && (this.label.text = t, this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.label;
                    e.invalid && e.validate();
                    var i, n, r = this._pointTo.x,
                        a = this._pointTo.y,
                        o = this._boundingRect,
                        s = e.measuredWidth,
                        l = e.measuredHeight,
                        u = this.background.pointerLength;
                    if (s > o.width) {
                        d.spritePointToDocument({
                            x: o.x,
                            y: o.y
                        }, this.parent);
                        var h = d.spritePointToDocument({
                                x: o.x + o.width,
                                y: o.y + o.height
                            }, this.parent),
                            p = document.body.offsetWidth;
                        d.used(document.body.offsetHeight), h.x > p / 2 ? o.x = o.width - s : o.width = o.x + s
                    }
                    var f = this.pointerOrientation;
                    "horizontal" == f || "left" == f || "right" == f ? (n = -l / 2, i = "horizontal" == f ? r > o.x + o.width / 2 ? -s / 2 - u : s / 2 + u : "left" == f ? s / 2 + u : -s / 2 - u) : (i = c.fitToRange(0, o.x - r + s / 2, o.x - r + o.width - s / 2), "vertical" == f ? a > o.y + l + u ? (n = -l - u, this._verticalOrientation = "up") : (n = u, this._verticalOrientation = "down") : "down" == f ? (n = -l - u, this._verticalOrientation = "up") : (n = u, this._verticalOrientation = "down")), n = c.fitToRange(n, o.y - a, o.y + o.height - l - a), e.x = i, e.y = n, this.drawBackground()
                }, e.prototype.updateBackground = function() {
                    this.group.addToBack(this.background.group)
                }, e.prototype.drawBackground = function() {
                    var t = this.label,
                        e = this.background,
                        i = t.measuredWidth,
                        n = t.measuredHeight,
                        r = this._boundingRect,
                        a = i,
                        o = t.pixelX - i / 2,
                        s = n,
                        l = t.pixelY,
                        u = this._pointTo.x,
                        h = this._pointTo.y,
                        p = r.x - u,
                        d = p + r.width,
                        f = r.y - h,
                        g = f + r.height;
                    e.x = o, e.y = l, e.width = a, e.height = s, this.fitPointerToBounds ? (e.pointerX = c.fitToRange(-e.x, p - e.x, d - e.x), e.pointerY = c.fitToRange(-e.y, f - e.y, g - e.y)) : (e.pointerX = -e.x, e.pointerY = -e.y), e.validate()
                }, e.prototype.pointTo = function(t, e) {
                    this._pointTo.x == t.x && this._pointTo.y == t.y || (this._pointTo = t, this.invalidate(), !this.visible || e ? (this.moveTo(this._pointTo), this._animation && this._animation.kill()) : 0 == this.pixelX && 0 == this.pixelY ? this.moveTo(this._pointTo) : (this._animation && this._animation.kill(), this._animation = new l.a(this, [{
                        property: "x",
                        to: t.x,
                        from: this.pixelX
                    }, {
                        property: "y",
                        to: t.y,
                        from: this.pixelY
                    }], this.animationDuration, this.animationEasing).start()))
                }, e.prototype.setBounds = function(t) {
                    var e = this._boundingRect;
                    e.x == t.x && e.y == t.y && e.width == t.width && e.height == t.height || (this._boundingRect = t, this.invalidate())
                }, Object.defineProperty(e.prototype, "boundingContainer", {
                    set: function(t) {
                        this._boundingContainer = t, t.events.on("sizechanged", this.updateBounds, this), t.events.on("positionchanged", this.updateBounds, this)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.updateBounds = function() {
                    var t = this._boundingContainer,
                        e = d.spriteRectToSvg({
                            x: t.pixelX,
                            y: t.pixelY,
                            width: t.maxWidth,
                            height: t.maxHeight
                        }, t);
                    this.setBounds(e)
                }, Object.defineProperty(e.prototype, "verticalOrientation", {
                    get: function() {
                        return this._verticalOrientation
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tooltip", {
                    get: function() {},
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.label.copyFrom(e.label), e._boundingRect && (this._boundingRect = e._boundingRect)
                }, e.prototype.asFunction = function(e) {
                    return "animationEasing" == e || t.prototype.asIs.call(this, e)
                }, e
            }(r.a);
        a.c.registeredClasses.Tooltip = f
    },
    dAGi: function(t, e, i) {
        "use strict";
        var n = i("NZ9V"),
            r = i("3weC"),
            a = i("swFJ"),
            o = i("fXYt"),
            s = i("Xw1K");
        n("search", 1, function(t, e, i) {
            return [function(e) {
                var i = a(this),
                    n = void 0 == e ? void 0 : e[t];
                return void 0 !== n ? n.call(e, i) : new RegExp(e)[t](String(i))
            }, function(t) {
                var n = i(e, t, this);
                if (n.done) return n.value;
                var a = r(t),
                    l = String(this),
                    u = a.lastIndex;
                o(u, 0) || (a.lastIndex = 0);
                var h = s(a, l);
                return o(a.lastIndex, u) || (a.lastIndex = u), null === h ? -1 : h.index
            }]
        })
    },
    dEJP: function(t, e, i) {
        var n = i("0sYB"),
            r = i("Uskt");
        n({
            target: "Number",
            stat: !0,
            forced: Number.parseInt != r
        }, {
            parseInt: r
        })
    },
    dlbc: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("fontcolor")
        }, {
            fontcolor: function(t) {
                return r(this, "font", "color", t)
            }
        })
    },
    dzqq: function(t, e, i) {
        var n = i("0sYB"),
            r = i("ibOM").values;
        n({
            target: "Object",
            stat: !0
        }, {
            values: function(t) {
                return r(t)
            }
        })
    },
    e71F: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("Kg2n"),
            o = Object.isExtensible;
        n({
            target: "Object",
            stat: !0,
            forced: r(function() {
                o(1)
            })
        }, {
            isExtensible: function(t) {
                return !!a(t) && (!o || o(t))
            }
        })
    },
    eAid: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("aCit"),
            o = i("8ZqG"),
            s = i("MIZb"),
            l = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "AxisLine", e.element = e.paper.add("path");
                    var i = new s.a;
                    return e.stroke = i.getFor("grid"), e.strokeOpacity = .15, e.pixelPerfect = !0, e.fill = Object(o.c)(), e.applyTheme(), e.interactionsEnabled = !1, e
                }
                return Object(n.c)(e, t), e
            }(r.a);
        a.c.registeredClasses.AxisLine = l
    },
    eCqC: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return a
        }), i.d(e, "b", function() {
            return o
        });
        var n = i("+qIf"),
            r = i("Mtpk"),
            a = function() {
                function t() {
                    this._storage = new n.a, this.ttl = 1e3
                }
                return t.prototype.set = function(t, e, i, a) {
                    var o = this._storage.insertKeyIfEmpty(t, function() {
                            return new n.a
                        }),
                        s = {
                            touched: (new Date).getTime(),
                            ttl: r.isNumber(a) ? a : this.ttl,
                            value: i
                        };
                    o.setKey(e, s)
                }, t.prototype.get = function(t, e, i) {
                    if (void 0 === i && (i = void 0), this._storage.hasKey(t)) {
                        var n = this._storage.getKey(t);
                        if (n.hasKey(e)) {
                            var r = n.getKey(e);
                            return r.ttl && r.touched + r.ttl < (new Date).getTime() && (r.expired = !0), r.expired ? (n.removeKey(e), i) : r.value
                        }
                        return i
                    }
                    return i
                }, t.prototype.clear = function(t) {
                    t ? this._storage.removeKey(t) : this._storage.clear()
                }, t
            }(),
            o = new a
    },
    eK2B: function(t, e, i) {
        i("6WsA")("matchAll")
    },
    eKCf: function(t, e, i) {
        var n = i("0sYB"),
            r = i("1wCr"),
            a = i("3weC");
        n({
            target: "Reflect",
            stat: !0,
            sham: !i("6EAy")
        }, {
            preventExtensions: function(t) {
                a(t);
                try {
                    var e = r("Object", "preventExtensions");
                    return e && e(t), !0
                } catch (t) {
                    return !1
                }
            }
        })
    },
    eKg1: function(t, e, i) {
        var n = i("0sYB"),
            r = Math.asinh,
            a = Math.log,
            o = Math.sqrt;
        n({
            target: "Math",
            stat: !0,
            forced: !(r && 1 / r(0) > 0)
        }, {
            asinh: function t(e) {
                return isFinite(e = +e) && 0 != e ? e < 0 ? -t(-e) : a(e + o(e * e + 1)) : e
            }
        })
    },
    eN1s: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("m4/l"),
            r = i("qzbU"),
            a = i("aCit"),
            o = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "AxisTick", e.element = e.paper.add("path"), e.location = .5, e.above = !1, e.isMeasured = !1, e.pixelPerfect = !0, e.strokeOpacity = 0, e.length = 5, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "location", {
                    get: function() {
                        return this.getPropertyValue("location")
                    },
                    set: function(t) {
                        this.setPropertyValue("location", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "inside", {
                    get: function() {
                        return this.getPropertyValue("inside")
                    },
                    set: function(t) {
                        this.setPropertyValue("inside", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "above", {
                    get: function() {
                        return this.getPropertyValue("above")
                    },
                    set: function(t) {
                        this.setPropertyValue("above", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setDisabled = function(e) {
                    var i = t.prototype.setDisabled.call(this, e);
                    return this.axis && this.axis.invalidateDataItems(), i
                }, e
            }(r.a);
        a.c.registeredClasses.AxisTick = o
    },
    eVN0: function(t, e, i) {
        var n = i("KslR")("match");
        t.exports = function(t) {
            var e = /./;
            try {
                "/./" [t](e)
            } catch (i) {
                try {
                    return e[n] = !1, "/./" [t](e)
                } catch (t) {}
            }
            return !1
        }
    },
    exNg: function(t, e) {
        var i = Math.ceil,
            n = Math.floor;
        t.exports = function(t) {
            return isNaN(t = +t) ? 0 : (t > 0 ? n : i)(t)
        }
    },
    eygo: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("vfdp"),
            a = i("3sMl"),
            o = i("NSJ1"),
            s = i("UseD"),
            l = i("mtbW"),
            u = i("L56b"),
            h = i("Pm8L"),
            c = i("k2B3"),
            p = i("tHyI"),
            d = i("E+A3"),
            f = i("oxAz"),
            g = i("EErT"),
            y = i("JZRr"),
            m = i("5ou3"),
            v = i("Kg2n"),
            b = i("QzDi"),
            x = i("KJuV"),
            _ = i("GtmK").f,
            P = i("3Fha"),
            w = i("X/sl").forEach,
            O = i("YRD/"),
            T = i("8+rI"),
            S = i("gxUV"),
            C = i("SqFF"),
            I = i("047P"),
            k = C.get,
            D = C.set,
            j = T.f,
            V = S.f,
            A = Math.round,
            M = r.RangeError,
            F = l.ArrayBuffer,
            E = l.DataView,
            R = s.NATIVE_ARRAY_BUFFER_VIEWS,
            N = s.TYPED_ARRAY_TAG,
            L = s.TypedArray,
            B = s.TypedArrayPrototype,
            U = s.aTypedArrayConstructor,
            W = s.isTypedArray,
            Y = function(t, e) {
                for (var i = 0, n = e.length, r = new(U(t))(n); n > i;) r[i] = e[i++];
                return r
            },
            H = function(t, e) {
                j(t, e, {
                    get: function() {
                        return k(this)[e]
                    }
                })
            },
            z = function(t) {
                var e;
                return t instanceof F || "ArrayBuffer" == (e = m(t)) || "SharedArrayBuffer" == e
            },
            X = function(t, e) {
                return W(t) && "symbol" != typeof e && e in t && String(+e) == String(e)
            },
            G = function(t, e) {
                return X(t, e = g(e, !0)) ? h(2, t[e]) : V(t, e)
            },
            K = function(t, e, i) {
                return !(X(t, e = g(e, !0)) && v(i) && y(i, "value")) || y(i, "get") || y(i, "set") || i.configurable || y(i, "writable") && !i.writable || y(i, "enumerable") && !i.enumerable ? j(t, e, i) : (t[e] = i.value, t)
            };
        a ? (R || (S.f = G, T.f = K, H(B, "buffer"), H(B, "byteOffset"), H(B, "byteLength"), H(B, "length")), n({
            target: "Object",
            stat: !0,
            forced: !R
        }, {
            getOwnPropertyDescriptor: G,
            defineProperty: K
        }), t.exports = function(t, e, i) {
            var a = t.match(/\d+$/)[0] / 8,
                s = t + (i ? "Clamped" : "") + "Array",
                l = "get" + t,
                h = "set" + t,
                g = r[s],
                y = g,
                m = y && y.prototype,
                T = {},
                S = function(t, e) {
                    j(t, e, {
                        get: function() {
                            return function(t, e) {
                                var i = k(t);
                                return i.view[l](e * a + i.byteOffset, !0)
                            }(this, e)
                        },
                        set: function(t) {
                            return function(t, e, n) {
                                var r = k(t);
                                i && (n = (n = A(n)) < 0 ? 0 : n > 255 ? 255 : 255 & n), r.view[h](e * a + r.byteOffset, n, !0)
                            }(this, e, t)
                        },
                        enumerable: !0
                    })
                };
            R ? o && (y = e(function(t, e, i, n) {
                return u(t, y, s), I(v(e) ? z(e) ? void 0 !== n ? new g(e, f(i, a), n) : void 0 !== i ? new g(e, f(i, a)) : new g(e) : W(e) ? Y(y, e) : P.call(y, e) : new g(d(e)), t, y)
            }), x && x(y, L), w(_(g), function(t) {
                t in y || c(y, t, g[t])
            }), y.prototype = m) : (y = e(function(t, e, i, n) {
                u(t, y, s);
                var r, o, l, h = 0,
                    c = 0;
                if (v(e)) {
                    if (!z(e)) return W(e) ? Y(y, e) : P.call(y, e);
                    r = e, c = f(i, a);
                    var g = e.byteLength;
                    if (void 0 === n) {
                        if (g % a) throw M("Wrong length");
                        if ((o = g - c) < 0) throw M("Wrong length")
                    } else if ((o = p(n) * a) + c > g) throw M("Wrong length");
                    l = o / a
                } else l = d(e), r = new F(o = l * a);
                for (D(t, {
                        buffer: r,
                        byteOffset: c,
                        byteLength: o,
                        length: l,
                        view: new E(r)
                    }); h < l;) S(t, h++)
            }), x && x(y, L), m = y.prototype = b(B)), m.constructor !== y && c(m, "constructor", y), N && c(m, N, s), T[s] = y, n({
                global: !0,
                forced: y != g,
                sham: !R
            }, T), "BYTES_PER_ELEMENT" in y || c(y, "BYTES_PER_ELEMENT", a), "BYTES_PER_ELEMENT" in m || c(m, "BYTES_PER_ELEMENT", a), O(s)
        }) : t.exports = function() {}
    },
    f3Fu: function(t, e, i) {
        var n = i("0sYB"),
            r = i("1wCr"),
            a = i("HnbP"),
            o = i("3weC"),
            s = i("Kg2n"),
            l = i("QzDi"),
            u = i("uKH8"),
            h = i("6aQQ"),
            c = r("Reflect", "construct"),
            p = h(function() {
                function t() {}
                return !(c(function() {}, [], t) instanceof t)
            }),
            d = !h(function() {
                c(function() {})
            }),
            f = p || d;
        n({
            target: "Reflect",
            stat: !0,
            forced: f,
            sham: f
        }, {
            construct: function(t, e) {
                a(t), o(e);
                var i = arguments.length < 3 ? t : a(arguments[2]);
                if (d && !p) return c(t, e, i);
                if (t == i) {
                    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])
                    }
                    var n = [null];
                    return n.push.apply(n, e), new(u.apply(t, n))
                }
                var r = i.prototype,
                    h = l(s(r) ? r : Object.prototype),
                    f = Function.apply.call(t, h, e);
                return s(f) ? f : h
            }
        })
    },
    "fG/y": function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = n.aTypedArray,
            a = n.exportTypedArrayMethod,
            o = Math.floor;
        a("reverse", function() {
            for (var t, e = r(this).length, i = o(e / 2), n = 0; n < i;) t = this[n], this[n++] = this[--e], this[e] = t;
            return this
        })
    },
    fGTV: function(t, e, i) {
        var n = i("1wCr");
        t.exports = n("document", "documentElement")
    },
    fXYt: function(t, e) {
        t.exports = Object.is || function(t, e) {
            return t === e ? 0 !== t || 1 / t == 1 / e : t != t && e != e
        }
    },
    fYap: function(t, e, i) {
        var n = i("LO3D"),
            r = i("vfRf"),
            a = n("keys");
        t.exports = function(t) {
            return a[t] || (a[t] = r(t))
        }
    },
    ffjw: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("X/sl").find,
            a = i("0FA2"),
            o = !0,
            s = i("J+FZ")("find");
        "find" in [] && Array(1).find(function() {
            o = !1
        }), n({
            target: "Array",
            proto: !0,
            forced: o || !s
        }, {
            find: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        }), a("find")
    },
    fjAw: function(t, e, i) {
        i("6WsA")("unscopables")
    },
    flUP: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("gxUV").f,
            a = i("tHyI"),
            o = i("qK31"),
            s = i("swFJ"),
            l = i("eVN0"),
            u = i("lnCe"),
            h = "".startsWith,
            c = Math.min,
            p = l("startsWith");
        n({
            target: "String",
            proto: !0,
            forced: !(!u && !p && !! function() {
                var t = r(String.prototype, "startsWith");
                return t && !t.writable
            }()) && !p
        }, {
            startsWith: function(t) {
                var e = String(s(this));
                o(t);
                var i = a(c(arguments.length > 1 ? arguments[1] : void 0, e.length)),
                    n = String(t);
                return h ? h.call(e, n, i) : e.slice(i, i + n.length) === n
            }
        })
    },
    fluH: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("+s7l"),
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("lastIndexOf", function(t) {
            return r.apply(a(this), arguments)
        })
    },
    g3YV: function(t, e, i) {
        var n = i("0sYB"),
            r = i("3sMl"),
            a = i("grfs"),
            o = i("9XRO"),
            s = i("gxUV"),
            l = i("WShl");
        n({
            target: "Object",
            stat: !0,
            sham: !r
        }, {
            getOwnPropertyDescriptors: function(t) {
                for (var e, i, n = o(t), r = s.f, u = a(n), h = {}, c = 0; u.length > c;) void 0 !== (i = r(n, e = u[c++])) && l(h, e, i);
                return h
            }
        })
    },
    gBcN: function(t, e, i) {
        var n, r, a, o = i("vfdp"),
            s = i("6aQQ"),
            l = i("2xmP"),
            u = i("cLsB"),
            h = i("fGTV"),
            c = i("BAfC"),
            p = i("q8hm"),
            d = o.location,
            f = o.setImmediate,
            g = o.clearImmediate,
            y = o.process,
            m = o.MessageChannel,
            v = o.Dispatch,
            b = 0,
            x = {},
            _ = function(t) {
                if (x.hasOwnProperty(t)) {
                    var e = x[t];
                    delete x[t], e()
                }
            },
            P = function(t) {
                return function() {
                    _(t)
                }
            },
            w = function(t) {
                _(t.data)
            },
            O = function(t) {
                o.postMessage(t + "", d.protocol + "//" + d.host)
            };
        f && g || (f = function(t) {
            for (var e = [], i = 1; arguments.length > i;) e.push(arguments[i++]);
            return x[++b] = function() {
                ("function" == typeof t ? t : Function(t)).apply(void 0, e)
            }, n(b), b
        }, g = function(t) {
            delete x[t]
        }, "process" == l(y) ? n = function(t) {
            y.nextTick(P(t))
        } : v && v.now ? n = function(t) {
            v.now(P(t))
        } : m && !p ? (a = (r = new m).port2, r.port1.onmessage = w, n = u(a.postMessage, a, 1)) : !o.addEventListener || "function" != typeof postMessage || o.importScripts || s(O) ? n = "onreadystatechange" in c("script") ? function(t) {
            h.appendChild(c("script")).onreadystatechange = function() {
                h.removeChild(this), _(t)
            }
        } : function(t) {
            setTimeout(P(t), 0)
        } : (n = O, o.addEventListener("message", w, !1))), t.exports = {
            set: f,
            clear: g
        }
    },
    gaw2: function(t, e, i) {
        var n = i("vfdp"),
            r = i("pVcl"),
            a = i("HgTb"),
            o = i("k2B3");
        for (var s in r) {
            var l = n[s],
                u = l && l.prototype;
            if (u && u.forEach !== a) try {
                o(u, "forEach", a)
            } catch (t) {
                u.forEach = a
            }
        }
    },
    gqvf: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return y
        });
        var n = i("m4/l"),
            r = i("1Fjw"),
            a = i("Vs7R"),
            o = i("hD5A"),
            s = i("aCit"),
            l = i("8ZqG"),
            u = i("MIZb"),
            h = i("zhwk"),
            c = i("qCRI"),
            p = i("Gg2j"),
            d = i("v9UT"),
            f = i("Mtpk"),
            g = i("hGwe"),
            y = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e._lineX = new o.d, e._lineY = new o.d, e._xAxis = new o.d, e._yAxis = new o.d, e.className = "XYCursor", e.behavior = "zoomX", e.maxPanOut = .1;
                    var i = new u.a,
                        n = e.createChild(a.a);
                    n.shouldClone = !1, n.fillOpacity = .2, n.fill = i.getFor("alternativeBackground"), n.isMeasured = !1, n.visible = !1, n.interactionsEnabled = !1, e.selection = n, e._disposers.push(e.selection);
                    var r = e.createChild(a.a);
                    r.shouldClone = !1, r.stroke = i.getFor("grid"), r.fill = Object(l.c)(), r.strokeDasharray = "3,3", r.isMeasured = !1, r.strokeOpacity = .4, r.interactionsEnabled = !1, r.y = 0, e.lineX = r, e._disposers.push(e.lineX);
                    var s = e.createChild(a.a);
                    return s.shouldClone = !1, s.stroke = i.getFor("grid"), s.fill = Object(l.c)(), s.strokeDasharray = "3,3", s.isMeasured = !1, s.strokeOpacity = .4, s.interactionsEnabled = !1, s.x = 0, e.lineY = s, e._disposers.push(e.lineY), e.events.on("sizechanged", e.updateSize, e, !1), e._disposers.push(e._lineX), e._disposers.push(e._lineY), e._disposers.push(e._xAxis), e._disposers.push(e._yAxis), e.mask = e, e.hideSeriesTooltipsOnSelection = !0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.updateSize = function() {
                    this.lineX && (this.lineX.path = g.moveTo({
                        x: 0,
                        y: 0
                    }) + g.lineTo({
                        x: 0,
                        y: this.innerHeight
                    })), this.lineY && (this.lineY.path = g.moveTo({
                        x: 0,
                        y: 0
                    }) + g.lineTo({
                        x: this.innerWidth,
                        y: 0
                    }))
                }, e.prototype.updateSelection = function() {
                    if (this._usesSelection) {
                        var t = this.downPoint,
                            e = this.behavior;
                        if (t) {
                            var i = this.point;
                            this.lineX && (i.x = this.lineX.pixelX), this.lineY && (i.y = this.lineY.pixelY);
                            var n = this.selection,
                                r = Math.min(i.x, t.x),
                                a = Math.min(i.y, t.y),
                                o = p.round(Math.abs(t.x - i.x), this._positionPrecision),
                                s = p.round(Math.abs(t.y - i.y), this._positionPrecision);
                            switch (e) {
                                case "zoomX":
                                    a = 0, s = this.pixelHeight;
                                    break;
                                case "zoomY":
                                    r = 0, o = this.pixelWidth;
                                    break;
                                case "selectX":
                                    a = 0, s = this.pixelHeight;
                                    break;
                                case "selectY":
                                    r = 0, o = this.pixelWidth
                            }
                            n.x = r, n.y = a, n.path = g.rectangle(o, s), n.validatePosition()
                        } else "select" != this._generalBehavior && this.selection.hide()
                    }
                }, e.prototype.fixPoint = function(t) {
                    return t.x = Math.max(0, t.x), t.y = Math.max(0, t.y), t.x = Math.min(this.pixelWidth, t.x), t.y = Math.min(this.pixelHeight, t.y), t
                }, e.prototype.triggerMoveReal = function(e) {
                    t.prototype.triggerMoveReal.call(this, e), this.snapToSeries && !this.snapToSeries.isHidden || this.updateLinePositions(e), this.downPoint && p.getDistance(this.downPoint, e) > 3 && "pan" == this._generalBehavior && (this.getPanningRanges(), this.dispatch("panning"))
                }, e.prototype.updateLinePositions = function(t) {
                    t = this.fixPoint(this.point), this.lineX && this.lineX.visible && !this.xAxis && (this.lineX.x = t.x), this.lineY && this.lineY.visible && !this.yAxis && (this.lineY.y = t.y), this.updateSelection()
                }, e.prototype.triggerDownReal = function(e) {
                    if (this.visible && !this.isHiding)
                        if ("select" == this._generalBehavior && (this.selection.parent = this.parent), this.fitsToBounds(e)) {
                            this.downPoint = {
                                x: e.x,
                                y: e.y
                            }, this.updatePoint(e), this.point.x = this.downPoint.x, this.point.y = this.downPoint.y;
                            var i = this.selection,
                                n = this.downPoint.x,
                                r = this.downPoint.y;
                            this._usesSelection && (i.x = n, i.y = r, i.path = "", i.show()), t.prototype.triggerDownReal.call(this, e)
                        } else this.downPoint = void 0;
                    else this.downPoint = void 0
                }, e.prototype.updatePoint = function(t) {
                    this.lineX && (t.x = this.lineX.pixelX), this.lineY && (t.y = this.lineY.pixelY)
                }, e.prototype.triggerUpReal = function(e) {
                    if (this.hasMoved()) this.downPoint && (this.upPoint = e, this.updatePoint(this.upPoint), "pan" != this._generalBehavior && this.getRanges(), "select" != this._generalBehavior && this.selection.hide(), t.prototype.triggerUpReal.call(this, e));
                    else {
                        if ("select" != this._generalBehavior ? this.selection.hide(0) : (this.xRange = void 0, this.yRange = void 0, this.dispatchImmediately("selectended")), "pan" == this._generalBehavior) Object(h.b)().setGlobalStyle(c.a.default);
                        this.dispatchImmediately("behaviorcanceled")
                    }
                    this.downPoint = void 0, this.dispatch("cursorpositionchanged")
                }, e.prototype.hasMoved = function() {
                    return ("zoomX" == this.behavior || "panX" == this.behavior ? p.getHorizontalDistance(this._upPointOrig, this._downPointOrig) : "zoomY" == this.behavior || "panY" == this.behavior ? p.getVerticalDistance(this._upPointOrig, this._downPointOrig) : p.getDistance(this._upPointOrig, this._downPointOrig)) > Object(h.b)().getHitOption(this.interactions, "hitTolerance")
                }, e.prototype.getPanningRanges = function() {
                    var t = p.round(this.downPoint.x / this.innerWidth, 5),
                        e = 1 - p.round(this.downPoint.y / this.innerHeight, 5),
                        i = t - p.round(this.point.x / this.innerWidth, 5),
                        n = e - (1 - p.round(this.point.y / this.innerHeight, 5));
                    this.xRange = {
                        start: i,
                        end: 1 + i
                    }, this.yRange = {
                        start: n,
                        end: 1 + n
                    }, "panX" == this.behavior && (this.yRange.start = 0, this.yRange.end = 1), "panY" == this.behavior && (this.xRange.start = 0, this.xRange.end = 1)
                }, e.prototype.getRanges = function() {
                    this.lineX && (this.upPoint.x = this.lineX.pixelX), this.lineY && (this.upPoint.y = this.lineY.pixelY), d.used(this.selection);
                    var t = p.round(this.downPoint.x / this.innerWidth, 5),
                        e = p.round(this.upPoint.x / this.innerWidth, 5),
                        i = 1 - p.round(this.downPoint.y / this.innerHeight, 5),
                        n = 1 - p.round(this.upPoint.y / this.innerHeight, 5);
                    this.xRange = {
                        start: p.min(t, e),
                        end: p.max(t, e)
                    }, this.yRange = {
                        start: p.min(i, n),
                        end: p.max(i, n)
                    }
                }, Object.defineProperty(e.prototype, "behavior", {
                    get: function() {
                        return this.getPropertyValue("behavior")
                    },
                    set: function(t) {
                        this.setPropertyValue("behavior", t, !0), this._usesSelection = !1, -1 != t.indexOf("zoom") && (this._generalBehavior = "zoom", this._usesSelection = !0), -1 != t.indexOf("select") && (this._generalBehavior = "select", this._usesSelection = !0), -1 != t.indexOf("pan") && (this._generalBehavior = "pan", this._usesSelection = !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.shouldPreventGestures = function(t) {
                    return !(this.interactions.isTouchProtected && t || "none" == this.behavior)
                }, Object.defineProperty(e.prototype, "fullWidthLineX", {
                    get: function() {
                        return this.getPropertyValue("fullWidthLineX")
                    },
                    set: function(t) {
                        this.setPropertyValue("fullWidthLineX", t), t || this.updateSize()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fullWidthLineY", {
                    get: function() {
                        return this.getPropertyValue("fullWidthLineY")
                    },
                    set: function(t) {
                        this.setPropertyValue("fullWidthLineY", t), t || this.updateSize()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hideSeriesTooltipsOnSelection", {
                    get: function() {
                        return this.getPropertyValue("hideSeriesTooltipsOnSelection")
                    },
                    set: function(t) {
                        this.setPropertyValue("hideSeriesTooltipsOnSelection", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxTooltipDistance", {
                    get: function() {
                        return this.getPropertyValue("maxTooltipDistance")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxTooltipDistance", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxPanOut", {
                    get: function() {
                        return this.getPropertyValue("maxPanOut")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxPanOut", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "xAxis", {
                    get: function() {
                        return this._xAxis.get()
                    },
                    set: function(t) {
                        var e = this;
                        this._xAxis.get() != t && this._xAxis.set(t, new o.c([t.tooltip.events.on("positionchanged", this.handleXTooltipPosition, this, !1), t.events.on("rangechangestarted", function(t) {
                            e.hide(0), e.preventShow = !0
                        }, void 0, !1), t.events.on("rangechangeended", function(t) {
                            e.preventShow = !1, e.hide(0), e.dispatch("cursorpositionchanged")
                        }, void 0, !1)]))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "yAxis", {
                    get: function() {
                        return this._yAxis.get()
                    },
                    set: function(t) {
                        var e = this;
                        this._yAxis.get() != t && this._yAxis.set(t, new o.c([t.tooltip.events.on("positionchanged", this.handleYTooltipPosition, this, !1), t.events.on("rangechangestarted", function(t) {
                            e.hide(0), e.__disabled = !0
                        }, void 0, !1), t.events.on("rangechangeended", function(t) {
                            e.__disabled = !1, e.hide(0), e.dispatch("cursorpositionchanged")
                        }, void 0, !1)]))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleXTooltipPosition = function(t) {
                    var e = this.xAxis.tooltip,
                        i = d.svgPointToSprite({
                            x: e.pixelX,
                            y: e.pixelY
                        }, this),
                        n = i.x;
                    if (i.y = 1, this.lineX && (this.lineX.x = n, this.fitsToBounds(i) || this.hide()), this.xAxis && this.fullWidthLineX) {
                        var r = this.xAxis.currentItemStartPoint,
                            a = this.xAxis.currentItemEndPoint;
                        if (r && a) {
                            this.lineX.x = n;
                            var o = a.x - r.x;
                            this.lineX.path = g.rectangle(o, this.innerHeight, -o / 2)
                        }
                    }
                }, e.prototype.handleYTooltipPosition = function(t) {
                    var e = this.yAxis.tooltip,
                        i = d.svgPointToSprite({
                            x: e.pixelX,
                            y: e.pixelY
                        }, this),
                        n = i.y;
                    if (i.x = 1, this.lineY && (this.lineY.y = n, this.fitsToBounds(i) || this.hide()), this.yAxis && this.fullWidthLineY) {
                        var r = this.yAxis.currentItemStartPoint,
                            a = this.yAxis.currentItemEndPoint;
                        if (r && a) {
                            this.lineY.y = n;
                            var o = a.y - r.y;
                            this.lineY.path = g.rectangle(this.innerWidth, o, 0, -o / 2)
                        }
                    }
                }, Object.defineProperty(e.prototype, "lineX", {
                    get: function() {
                        return this._lineX.get()
                    },
                    set: function(t) {
                        t ? (t.setElement(this.paper.add("path")), this._lineX.set(t, t.events.on("positionchanged", this.updateSelection, this, !1)), t.interactionsEnabled = !1, t.parent = this) : this._lineX.reset()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "lineY", {
                    get: function() {
                        return this._lineY.get()
                    },
                    set: function(t) {
                        t ? (t.setElement(this.paper.add("path")), this._lineY.set(t, t.events.on("positionchanged", this.updateSelection, this, !1)), t.parent = this, t.interactionsEnabled = !1) : this._lineY.reset()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "selection", {
                    get: function() {
                        return this._selection
                    },
                    set: function(t) {
                        this._selection = t, t && (t.element = this.paper.add("path"), t.parent = this)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.processConfig = function(e) {
                    e && (f.hasValue(e.xAxis) && f.isString(e.xAxis) && (this.map.hasKey(e.xAxis) ? e.xAxis = this.map.getKey(e.xAxis) : (this.processingErrors.push('[XYCursor] No axis with id "' + e.xAxis + '" found for `xAxis`'), delete e.xAxis)), f.hasValue(e.yAxis) && f.isString(e.yAxis) && (this.map.hasKey(e.yAxis) ? e.yAxis = this.map.getKey(e.yAxis) : (this.processingErrors.push('[XYCursor] No axis with id "' + e.yAxis + '" found for `yAxis`'), delete e.yAxis)), f.hasValue(e.snapToSeries) && f.isString(e.snapToSeries) && (this.map.hasKey(e.snapToSeries) ? e.snapToSeries = this.map.getKey(e.snapToSeries) : (this.processingErrors.push('[XYCursor] No series with id "' + e.snapToSeries + '" found for `series`'), delete e.snapToSeries))), t.prototype.processConfig.call(this, e)
                }, Object.defineProperty(e.prototype, "snapToSeries", {
                    get: function() {
                        return this.getPropertyValue("snapToSeries")
                    },
                    set: function(t) {
                        this.setPropertyValue("snapToSeries", t) && (this._snapToDisposer && this._snapToDisposer.dispose(), t && (this._snapToDisposer = t.events.on("tooltipshownat", this.handleSnap, this, !1)))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleSnap = function() {
                    var t = this.snapToSeries,
                        e = t.getTooltipX(),
                        i = t.getTooltipY();
                    this.xAxis && this.xAxis.renderer.opposite && (i -= this.pixelHeight), this.point = {
                        x: e,
                        y: i
                    }, this.getPositions();
                    var n = e,
                        r = i;
                    e -= this.pixelWidth, this.yAxis && this.yAxis.renderer.opposite && (e += this.pixelWidth);
                    var a = t.tooltip,
                        o = a.animationDuration,
                        s = a.animationEasing;
                    t.baseAxis == t.xAxis && t.yAxis.showTooltipAtPosition(this.yPosition), t.baseAxis == t.yAxis && t.xAxis.showTooltipAtPosition(this.xPosition), this.lineX.animate([{
                        property: "y",
                        to: i
                    }], o, s), this.lineY.animate([{
                        property: "x",
                        to: e
                    }], o, s), this.xAxis || this.lineX.animate([{
                        property: "x",
                        to: n
                    }], o, s), this.yAxis || this.lineY.animate([{
                        property: "y",
                        to: r
                    }], o, s)
                }, e.prototype.dispose = function() {
                    this.hide(0), t.prototype.dispose.call(this)
                }, e
            }(r.a);
        s.c.registeredClasses.XYCursor = y
    },
    grfs: function(t, e, i) {
        var n = i("1wCr"),
            r = i("GtmK"),
            a = i("KSd4"),
            o = i("3weC");
        t.exports = n("Reflect", "ownKeys") || function(t) {
            var e = r.f(o(t)),
                i = a.f;
            return i ? e.concat(i(t)) : e
        }
    },
    gxUV: function(t, e, i) {
        var n = i("3sMl"),
            r = i("EVp9"),
            a = i("Pm8L"),
            o = i("9XRO"),
            s = i("EErT"),
            l = i("JZRr"),
            u = i("t+NF"),
            h = Object.getOwnPropertyDescriptor;
        e.f = n ? h : function(t, e) {
            if (t = o(t), e = s(e, !0), u) try {
                return h(t, e)
            } catch (t) {}
            if (l(t, e)) return a(!r.f.call(t, e), t[e])
        }
    },
    "h+H5": function(t, e, i) {
        var n = i("0sYB"),
            r = i("ibOM").entries;
        n({
            target: "Object",
            stat: !0
        }, {
            entries: function(t) {
                return r(t)
            }
        })
    },
    hD5A: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return o
        }), i.d(e, "c", function() {
            return s
        }), i.d(e, "d", function() {
            return l
        }), i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("hJ5i"),
            a = i("Mtpk"),
            o = function() {
                function t(t) {
                    this._disposed = !1, this._dispose = t
                }
                return t.prototype.isDisposed = function() {
                    return this._disposed
                }, t.prototype.dispose = function() {
                    this._disposed || (this._disposed = !0, this._dispose())
                }, t
            }(),
            s = function(t) {
                function e(e) {
                    return t.call(this, function() {
                        r.each(e, function(t) {
                            t.dispose()
                        })
                    }) || this
                }
                return Object(n.c)(e, t), e
            }(o),
            l = function(t) {
                function e() {
                    var e = t.call(this, function() {
                        a.hasValue(e._disposer) && (e._disposer.dispose(), e._disposer = void 0)
                    }) || this;
                    return e
                }
                return Object(n.c)(e, t), e.prototype.get = function() {
                    return this._value
                }, e.prototype.set = function(t, e) {
                    a.hasValue(this._disposer) && this._disposer.dispose(), this._disposer = e, this._value = t
                }, e.prototype.reset = function() {
                    this.set(void 0, void 0)
                }, e
            }(o),
            u = function(t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e._counter = 0, e
                }
                return Object(n.c)(e, t), e.prototype.increment = function() {
                    var t = this;
                    return ++this._counter, new o(function() {
                        --t._counter, 0 === t._counter && t.dispose()
                    })
                }, e
            }(o)
    },
    hGwe: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.polyline = function(t) {
            var e = l(t[0]),
                i = {
                    x: 0,
                    y: 0
                },
                a = o.a.minPolylineStep;
            r.isNumber(a) || (a = .5);
            for (var s = 0, u = t.length; s < u; s++) {
                var h = t[s];
                n.getDistance(h, i) > a && (e += l(h), i = h)
            }
            return e
        }, e.moveTo = s, e.lineTo = l, e.quadraticCurveTo = function(t, e) {
            return " Q" + n.round(e.x, 4) + "," + n.round(e.y, 4) + " " + n.round(t.x, 4) + "," + n.round(t.y, 4)
        }, e.cubicCurveTo = function(t, e, i) {
            return " C" + n.round(e.x, 4) + "," + n.round(e.y, 4) + " " + n.round(i.x, 4) + "," + n.round(i.y, 4) + " " + n.round(t.x, 4) + "," + n.round(t.y, 4)
        }, e.closePath = u, e.arcTo = h, e.arc = function(t, e, i, a, o, u, p) {
            if (0 == e) return "";
            r.isNumber(a) || (a = 0);
            if (0 == i && a <= 0) return "";
            if (i < a) {
                var d = i;
                i = a, a = d, r.isNumber(o) && (o = o / a * i)
            }
            360 == (e = n.min(e, 360)) && (u = 0, p = 0);
            var f = t + e,
                g = n.sin(n.min(e, 45) / 2);
            o = r.isNumber(o) ? o : i, u = u || 0, p = r.isNumber(p) ? p : u;
            var y = o / i * a,
                m = o / i * u,
                v = o / i * p;
            u = n.fitToRange(u, 0, (i - a) / 2), m = n.fitToRange(m, 0, (o - y) / 2), p = n.fitToRange(p, 0, (i - a) / 2), v = n.fitToRange(v, 0, (o - y) / 2), u = n.round(n.fitToRange(u, 0, i * g), 4), m = n.round(n.fitToRange(m, 0, o * g), 4), p = n.round(n.fitToRange(p, 0, a * g), 4), v = n.round(n.fitToRange(v, 0, y * g), 4);
            var b = Math.asin(u / i / 2) * n.DEGREES * 2,
                x = Math.asin(m / o / 2) * n.DEGREES * 2;
            a < p && (a = p);
            y < v && (y = v);
            var _ = Math.asin(p / a / 2) * n.DEGREES * 2,
                P = Math.asin(v / y / 2) * n.DEGREES * 2;
            r.isNumber(_) || (_ = 0);
            r.isNumber(P) || (P = 0);
            var w = t + e / 2,
                O = {
                    x: n.round(n.cos(w) * a, 4),
                    y: n.sin(w) * y
                },
                T = {
                    x: n.cos(t) * (a + p),
                    y: n.sin(t) * (y + v)
                },
                S = {
                    x: n.cos(t) * (i - u),
                    y: n.sin(t) * (o - m)
                },
                C = {
                    x: n.cos(f) * (i - u),
                    y: n.sin(f) * (o - m)
                },
                I = {
                    x: n.cos(f) * (a + p),
                    y: n.sin(f) * (y + v)
                },
                k = {
                    x: n.cos(t + b) * i,
                    y: n.sin(t + x) * o
                },
                D = {
                    x: n.cos(f - _) * a,
                    y: n.sin(f - P) * y
                };
            p += p * n.sin(_ / 2), v += v * n.sin(P / 2), _ > (f - t) / 2 && (D = O);
            var j = "";
            360 == e ? j = s(S) : (j = s(T), j += l(S), j += c(k, u, m, !0));
            j += h(t + b, e - 2 * b, i, o), r.isNumber(a) && 0 != a ? (360 == e && 0 == u ? j += s(I) : (j += c(C, u, m, !0), j += l(I), j += c(D, p, v, !0)), j += h(f - _, -(e - 2 * _), a, y), (e < 360 || u > 0) && (j += c(T, p, v, !0)), j += l(T)) : (j += c(C, u, m, !0), e < 360 && (j += l(T)));
            return j
        }, e.arcToPoint = c, e.rectangle = function(t, e, i, n) {
            r.isNumber(i) || (i = 0);
            r.isNumber(n) || (n = 0);
            return s({
                x: i,
                y: n
            }) + l({
                x: i + t,
                y: n
            }) + l({
                x: i + t,
                y: n + e
            }) + l({
                x: i,
                y: n + e
            }) + " Z"
        }, e.rectToPath = function(t, e) {
            var i = ",",
                n = " L";
            return e ? "M" + t.x + i + t.y + n + t.x + i + (t.y + t.height) + n + (t.x + t.width) + i + (t.y + t.height) + n + (t.x + t.width) + i + t.y + n + t.x + i + t.y : "M" + t.x + i + t.y + n + (t.x + t.width) + i + t.y + n + (t.x + t.width) + i + (t.y + t.height) + n + t.x + i + (t.y + t.height) + n + t.x + i + t.y
        }, e.pathToPoints = function(t, e) {
            var i = Object(a.b)().add("path").node;
            if (i.setAttribute("d", t), i.getPointAtLength && i.getTotalLength) {
                for (var n = i.getTotalLength(), r = [], o = 0; o < e; o++) {
                    var s = i.getPointAtLength(o / e * n);
                    r.push({
                        x: s.x,
                        y: s.y
                    })
                }
                return r
            }
            i.remove()
        }, e.spiralPoints = function(t, e, i, a, o, s, l, u, h) {
            r.isNumber(u) || (u = 0);
            r.isNumber(u) || (h = u);
            var c = o + .01,
                p = u * n.RADIANS,
                d = [];
            for (; c < i + l;) {
                var f = s;
                if (f / 2 > c && (f = 2 * c), (p += 2 * Math.asin(f / 2 / c)) * n.DEGREES > h + (i - o) / l * 360) break;
                var g = p * n.DEGREES,
                    y = {
                        x: t + c * Math.cos(p),
                        y: e + c * a / i * Math.sin(p)
                    };
                d.push(y), c = o + g / 360 * l
            }
            return d.shift(), d
        }, e.pointsToPath = function(t) {
            if (!t || 0 == t.length) return "";
            var e = s(t[0]);
            if (t && t.length > 0)
                for (var i = 1; i < t.length; i++) e += l(t[i]);
            return e
        };
        var n = i("Gg2j"),
            r = i("Mtpk"),
            a = i("P7v+"),
            o = i("Q4nc");

        function s(t) {
            return " M" + n.round(t.x, 4) + "," + n.round(t.y, 4) + " "
        }

        function l(t) {
            return " L" + n.round(t.x, 4) + "," + n.round(t.y, 4) + " "
        }

        function u() {
            return " Z"
        }

        function h(t, e, i, a) {
            if (0 == e) return "";
            r.isNumber(a) || (a = i);
            var o = "",
                s = ",",
                u = Math.ceil(Math.abs(e) / 180),
                h = 1;
            e < 0 && (h = 0);
            var c = 0,
                p = 0,
                d = -n.cos(t) * i,
                f = -n.sin(t) * a;
            if (e < .5 && i > 3e3) {
                var g = t + e;
                return l({
                    x: m = n.round(n.cos(g) * i, 4),
                    y: v = n.round(n.sin(g) * a, 4)
                })
            }
            for (var y = 0; y < u; y++) {
                var m, v;
                g = t + e / u * (y + 1);
                o += " a" + i + s + a + s + 0 + s + 0 + s + h + s + (m = n.round(n.cos(g) * i + d - c, 4)) + s + (v = n.round(n.sin(g) * a + f - p, 4)), c = m, p = v
            }
            return o
        }

        function c(t, e, i, r, a, o) {
            if (0 == e) return "";
            var s = ",";
            return " A" + e + s + i + s + (o = o || 0) + s + +(a = Boolean(a)) + s + +(r = Boolean(r)) + s + n.round(t.x, 4) + s + n.round(t.y, 4)
        }
    },
    hJ5i: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.indexOf = a, e.any = function(t, e) {
            for (var i = t.length, n = 0; n < i; ++n)
                if (e(t[n])) return !0;
            return !1
        }, e.map = function(t, e) {
            for (var i = t.length, n = new Array(i), r = 0; r < i; ++r) n[r] = e(t[r], r);
            return n
        }, e.each = function(t, e) {
            for (var i = t.length, n = 0; n < i; ++n) e(t[n], n)
        }, e.eachReverse = function(t, e) {
            var i = t.length;
            for (; i--;) e(t[i], i)
        }, e.eachContinue = function(t, e) {
            for (var i = t.length, n = 0; n < i && e(t[n], n); ++n);
        }, e.shiftLeft = function(t, e) {
            for (var i = t.length, n = e; n < i; ++n) t[n - e] = t[n];
            t.length = i - e
        }, e.last = function(t) {
            var e = t.length;
            return e ? t[e - 1] : void 0
        }, e.first = function(t) {
            return t[0]
        }, e.insert = o, e.setIndex = function(t, e, i) {
            s(t, e), o(t, e, i)
        }, e.pushAll = function(t, e) {
            for (var i = e.length, n = 0; n < i; ++n) t.push(e[n])
        }, e.remove = s, e.move = function(t, e, i) {
            var n = a(t, e); - 1 !== n && u(t, n);
            null == i ? t.push(e) : l(t, i, e)
        }, e.add = function(t, e, i) {
            r.isNumber(i) ? 0 === i ? t.unshift(e) : t.splice(i, 0, e) : t.push(e)
        }, e.replace = function(t, e, i) {
            var n = t.indexOf(e); - 1 !== n && t.splice(n, 1);
            r.isNumber(i) ? t.splice(i, 0, e) : t.push(e)
        }, e.toArray = function(t) {
            return Array.isArray(t) ? t : [t]
        }, e.has = function(t, e) {
            return -1 !== a(t, e)
        }, e.copy = function(t) {
            for (var e = t.length, i = new Array(e), n = 0; n < e; ++n) i[n] = t[n];
            return i
        }, e.slice = function(t, e, i) {
            void 0 === i && (i = t.length);
            for (var n = new Array(i - e), r = e; r < i; ++r) n[r - e] = t[r];
            return n
        }, e.insertIndex = l, e.removeIndex = u, e.getSortedIndex = function(t, e, i) {
            var n = 0,
                r = t.length,
                a = !1;
            for (; n < r;) {
                var o = n + r >> 1,
                    s = e(i, t[o]);
                s < 0 ? r = o : 0 === s ? (a = !0, n = o + 1) : n = o + 1
            }
            return {
                found: a,
                index: a ? n - 1 : n
            }
        }, e.findIndex = h, e.find = function(t, e) {
            var i = h(t, e);
            if (-1 !== i) return t[i]
        }, e.shuffle = function(t) {
            var e, i, n = t.length;
            for (; 0 !== n;) i = Math.floor(Math.random() * n), e = t[n -= 1], t[n] = t[i], t[i] = e
        };
        var n = i("Gg2j"),
            r = i("Mtpk");

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

        function o(t, e, i) {
            i = n.fitToRange(i, 0, t.length), t.splice(i, 0, e)
        }

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

        function l(t, e, i) {
            t.splice(e, 0, i)
        }

        function u(t, e) {
            t.splice(e, 1)
        }

        function h(t, e) {
            for (var i = t.length, n = 0; n < i; ++n)
                if (e(t[n], n)) return n;
            return -1
        }
    },
    ha1R: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("Kg2n"),
            o = Object.isFrozen;
        n({
            target: "Object",
            stat: !0,
            forced: r(function() {
                o(1)
            })
        }, {
            isFrozen: function(t) {
                return !a(t) || !!o && o(t)
            }
        })
    },
    hpNl: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return r
        });
        var n = i("8ZqG"),
            r = function() {
                function t() {}
                return t.opacity = 1, t.strokeOpacity = 1, t.strokeWidth = 1, t.fillOpacity = 1, t.fill = Object(n.c)("#000000"), t.stroke = Object(n.c)("#000000"), t.focusable = void 0, t.tabindex = 0, t
            }()
    },
    hqo8: function(t, e, i) {
        "use strict";
        var n = i("lnCe"),
            r = i("vfdp"),
            a = i("6aQQ");
        t.exports = n || !a(function() {
            var t = Math.random();
            __defineSetter__.call(null, t, function() {}), delete r[t]
        })
    },
    hvfb: function(t, e, i) {
        var n, r, a = i("vfdp"),
            o = i("RjhM"),
            s = a.process,
            l = s && s.versions,
            u = l && l.v8;
        u ? r = (n = u.split("."))[0] + n[1] : o && (!(n = o.match(/Edge\/(\d+)/)) || n[1] >= 74) && (n = o.match(/Chrome\/(\d+)/)) && (r = n[1]), t.exports = r && +r
    },
    hxI2: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.rgb = function(t, e) {
            var i;
            a[t] ? i = a[t] : "#" === t.charAt(0) ? i = o(t) : t.match(/^rgba?\(/) && (i = s(t));
            i || (i = {
                r: 0,
                g: 0,
                b: 0,
                a: 1
            });
            r.hasValue(e) && (i.a = e);
            return i
        }, e.hexToRgb = o, e.rgbaToRgb = s, e.rgbToHex = function(t) {
            return "#" + l(t.r.toString(16)) + l(t.g.toString(16)) + l(t.b.toString(16))
        }, e.rgbToRGBA = function(t) {
            return r.hasValue(t.a) && 1 !== t.a ? "rgba(" + t.r + "," + t.g + "," + t.b + "," + t.a + ")" : "rgb(" + t.r + "," + t.g + "," + t.b + ")"
        }, e.pad2 = l, e.interpolate = function(t, e, i) {
            return i = n.fitToRange(i, 0, 1), t ? e ? {
                r: t.r + Math.round((e.r - t.r) * i),
                g: t.g + Math.round((e.g - t.g) * i),
                b: t.b + Math.round((e.b - t.b) * i),
                a: (t.a || 1) + Math.round(((e.a || 1) - (t.a || 1)) * i)
            } : t : e || t
        }, e.lighten = function(t, e) {
            return t ? {
                r: Math.max(0, Math.min(255, t.r + u(t.r, e))),
                g: Math.max(0, Math.min(255, t.g + u(t.g, e))),
                b: Math.max(0, Math.min(255, t.b + u(t.b, e))),
                a: t.a
            } : t
        }, e.getLightnessStep = u, e.brighten = function(t, e) {
            if (t) {
                var i = Math.min(Math.max(t.r, t.g, t.b), 230),
                    n = u(i, e);
                return {
                    r: Math.max(0, Math.min(255, Math.round(t.r + n))),
                    g: Math.max(0, Math.min(255, Math.round(t.g + n))),
                    b: Math.max(0, Math.min(255, Math.round(t.b + n))),
                    a: t.a
                }
            }
            return t
        }, e.getBrightnessStep = function(t, e) {
            return Math.round(255 * e)
        }, e.saturate = function(t, e) {
            if (null == t || 1 == e) return t;
            var i = c(t);
            return i.s = e, h(i)
        }, e.hslToRgb = h, e.rgbToHsl = c, e.rgbToHsv = function(t) {
            var e = t.r / 255,
                i = t.g / 255,
                n = t.b / 255,
                r = Math.max(e, i, n),
                a = Math.min(e, i, n),
                o = 0,
                s = 0,
                l = r,
                u = r - a;
            if (s = 0 == r ? 0 : u / r, r == a) o = 0;
            else {
                switch (r) {
                    case e:
                        o = (i - n) / u + (i < n ? 6 : 0);
                        break;
                    case i:
                        o = (n - e) / u + 2;
                        break;
                    case n:
                        o = (e - i) / u + 4
                }
                o /= 6
            }
            return {
                h: o,
                s: s,
                v: l
            }
        }, e.hsvToRgb = function(t) {
            var e = 0,
                i = 0,
                n = 0,
                r = t.h,
                a = t.s,
                o = t.v,
                s = Math.floor(6 * r),
                l = 6 * r - s,
                u = o * (1 - a),
                h = o * (1 - l * a),
                c = o * (1 - (1 - l) * a);
            switch (s % 6) {
                case 0:
                    e = o, i = c, n = u;
                    break;
                case 1:
                    e = h, i = o, n = u;
                    break;
                case 2:
                    e = u, i = o, n = c;
                    break;
                case 3:
                    e = u, i = h, n = o;
                    break;
                case 4:
                    e = c, i = u, n = o;
                    break;
                case 5:
                    e = o, i = u, n = h
            }
            return {
                r: Math.round(255 * e),
                g: Math.round(255 * i),
                b: Math.round(255 * n)
            }
        }, e.isLight = function(t) {
            return (299 * t.r + 587 * t.g + 114 * t.b) / 1e3 >= 128
        };
        var n = i("Gg2j"),
            r = i("Mtpk"),
            a = {
                aliceblue: {
                    r: 240,
                    g: 248,
                    b: 255
                },
                antiquewhite: {
                    r: 250,
                    g: 235,
                    b: 215
                },
                aqua: {
                    r: 0,
                    g: 255,
                    b: 255
                },
                aquamarine: {
                    r: 127,
                    g: 255,
                    b: 212
                },
                azure: {
                    r: 240,
                    g: 255,
                    b: 255
                },
                beige: {
                    r: 245,
                    g: 245,
                    b: 220
                },
                bisque: {
                    r: 255,
                    g: 228,
                    b: 196
                },
                black: {
                    r: 0,
                    g: 0,
                    b: 0
                },
                blanchedalmond: {
                    r: 255,
                    g: 235,
                    b: 205
                },
                blue: {
                    r: 0,
                    g: 0,
                    b: 255
                },
                blueviolet: {
                    r: 138,
                    g: 43,
                    b: 226
                },
                brown: {
                    r: 165,
                    g: 42,
                    b: 42
                },
                burlywood: {
                    r: 222,
                    g: 184,
                    b: 135
                },
                cadetblue: {
                    r: 95,
                    g: 158,
                    b: 160
                },
                chartreuse: {
                    r: 127,
                    g: 255,
                    b: 0
                },
                chocolate: {
                    r: 210,
                    g: 105,
                    b: 30
                },
                coral: {
                    r: 255,
                    g: 127,
                    b: 80
                },
                cornflowerblue: {
                    r: 100,
                    g: 149,
                    b: 237
                },
                cornsilk: {
                    r: 255,
                    g: 248,
                    b: 220
                },
                crimson: {
                    r: 220,
                    g: 20,
                    b: 60
                },
                cyan: {
                    r: 0,
                    g: 255,
                    b: 255
                },
                darkblue: {
                    r: 0,
                    g: 0,
                    b: 139
                },
                darkcyan: {
                    r: 0,
                    g: 139,
                    b: 139
                },
                darkgoldenrod: {
                    r: 184,
                    g: 134,
                    b: 11
                },
                darkgray: {
                    r: 169,
                    g: 169,
                    b: 169
                },
                darkgrey: {
                    r: 169,
                    g: 169,
                    b: 169
                },
                darkgreen: {
                    r: 0,
                    g: 100,
                    b: 0
                },
                darkkhaki: {
                    r: 189,
                    g: 183,
                    b: 107
                },
                darkmagenta: {
                    r: 139,
                    g: 0,
                    b: 139
                },
                darkolivegreen: {
                    r: 85,
                    g: 107,
                    b: 47
                },
                darkorange: {
                    r: 255,
                    g: 140,
                    b: 0
                },
                darkorchid: {
                    r: 153,
                    g: 50,
                    b: 204
                },
                darkred: {
                    r: 139,
                    g: 0,
                    b: 0
                },
                darksalmon: {
                    r: 233,
                    g: 150,
                    b: 122
                },
                darkseagreen: {
                    r: 143,
                    g: 188,
                    b: 143
                },
                darkslateblue: {
                    r: 72,
                    g: 61,
                    b: 139
                },
                darkslategray: {
                    r: 47,
                    g: 79,
                    b: 79
                },
                darkslategrey: {
                    r: 47,
                    g: 79,
                    b: 79
                },
                darkturquoise: {
                    r: 0,
                    g: 206,
                    b: 209
                },
                darkviolet: {
                    r: 148,
                    g: 0,
                    b: 211
                },
                deeppink: {
                    r: 255,
                    g: 20,
                    b: 147
                },
                deepskyblue: {
                    r: 0,
                    g: 191,
                    b: 255
                },
                dimgray: {
                    r: 105,
                    g: 105,
                    b: 105
                },
                dimgrey: {
                    r: 105,
                    g: 105,
                    b: 105
                },
                dodgerblue: {
                    r: 30,
                    g: 144,
                    b: 255
                },
                firebrick: {
                    r: 178,
                    g: 34,
                    b: 34
                },
                floralwhite: {
                    r: 255,
                    g: 250,
                    b: 240
                },
                forestgreen: {
                    r: 34,
                    g: 139,
                    b: 34
                },
                fuchsia: {
                    r: 255,
                    g: 0,
                    b: 255
                },
                gainsboro: {
                    r: 220,
                    g: 220,
                    b: 220
                },
                ghostwhite: {
                    r: 248,
                    g: 248,
                    b: 255
                },
                gold: {
                    r: 255,
                    g: 215,
                    b: 0
                },
                goldenrod: {
                    r: 218,
                    g: 165,
                    b: 32
                },
                gray: {
                    r: 128,
                    g: 128,
                    b: 128
                },
                grey: {
                    r: 128,
                    g: 128,
                    b: 128
                },
                green: {
                    r: 0,
                    g: 128,
                    b: 0
                },
                greenyellow: {
                    r: 173,
                    g: 255,
                    b: 47
                },
                honeydew: {
                    r: 240,
                    g: 255,
                    b: 240
                },
                hotpink: {
                    r: 255,
                    g: 105,
                    b: 180
                },
                indianred: {
                    r: 205,
                    g: 92,
                    b: 92
                },
                indigo: {
                    r: 75,
                    g: 0,
                    b: 130
                },
                ivory: {
                    r: 255,
                    g: 255,
                    b: 240
                },
                khaki: {
                    r: 240,
                    g: 230,
                    b: 140
                },
                lavender: {
                    r: 230,
                    g: 230,
                    b: 250
                },
                lavenderblush: {
                    r: 255,
                    g: 240,
                    b: 245
                },
                lawngreen: {
                    r: 124,
                    g: 252,
                    b: 0
                },
                lemonchiffon: {
                    r: 255,
                    g: 250,
                    b: 205
                },
                lightblue: {
                    r: 173,
                    g: 216,
                    b: 230
                },
                lightcoral: {
                    r: 240,
                    g: 128,
                    b: 128
                },
                lightcyan: {
                    r: 224,
                    g: 255,
                    b: 255
                },
                lightgoldenrodyellow: {
                    r: 250,
                    g: 250,
                    b: 210
                },
                lightgray: {
                    r: 211,
                    g: 211,
                    b: 211
                },
                lightgrey: {
                    r: 211,
                    g: 211,
                    b: 211
                },
                lightgreen: {
                    r: 144,
                    g: 238,
                    b: 144
                },
                lightpink: {
                    r: 255,
                    g: 182,
                    b: 193
                },
                lightsalmon: {
                    r: 255,
                    g: 160,
                    b: 122
                },
                lightseagreen: {
                    r: 32,
                    g: 178,
                    b: 170
                },
                lightskyblue: {
                    r: 135,
                    g: 206,
                    b: 250
                },
                lightslategray: {
                    r: 119,
                    g: 136,
                    b: 153
                },
                lightslategrey: {
                    r: 119,
                    g: 136,
                    b: 153
                },
                lightsteelblue: {
                    r: 176,
                    g: 196,
                    b: 222
                },
                lightyellow: {
                    r: 255,
                    g: 255,
                    b: 224
                },
                lime: {
                    r: 0,
                    g: 255,
                    b: 0
                },
                limegreen: {
                    r: 50,
                    g: 205,
                    b: 50
                },
                linen: {
                    r: 250,
                    g: 240,
                    b: 230
                },
                magenta: {
                    r: 255,
                    g: 0,
                    b: 255
                },
                maroon: {
                    r: 128,
                    g: 0,
                    b: 0
                },
                mediumaquamarine: {
                    r: 102,
                    g: 205,
                    b: 170
                },
                mediumblue: {
                    r: 0,
                    g: 0,
                    b: 205
                },
                mediumorchid: {
                    r: 186,
                    g: 85,
                    b: 211
                },
                mediumpurple: {
                    r: 147,
                    g: 112,
                    b: 219
                },
                mediumseagreen: {
                    r: 60,
                    g: 179,
                    b: 113
                },
                mediumslateblue: {
                    r: 123,
                    g: 104,
                    b: 238
                },
                mediumspringgreen: {
                    r: 0,
                    g: 250,
                    b: 154
                },
                mediumturquoise: {
                    r: 72,
                    g: 209,
                    b: 204
                },
                mediumvioletred: {
                    r: 199,
                    g: 21,
                    b: 133
                },
                midnightblue: {
                    r: 25,
                    g: 25,
                    b: 112
                },
                mintcream: {
                    r: 245,
                    g: 255,
                    b: 250
                },
                mistyrose: {
                    r: 255,
                    g: 228,
                    b: 225
                },
                moccasin: {
                    r: 255,
                    g: 228,
                    b: 181
                },
                navajowhite: {
                    r: 255,
                    g: 222,
                    b: 173
                },
                navy: {
                    r: 0,
                    g: 0,
                    b: 128
                },
                oldlace: {
                    r: 253,
                    g: 245,
                    b: 230
                },
                olive: {
                    r: 128,
                    g: 128,
                    b: 0
                },
                olivedrab: {
                    r: 107,
                    g: 142,
                    b: 35
                },
                orange: {
                    r: 255,
                    g: 165,
                    b: 0
                },
                orangered: {
                    r: 255,
                    g: 69,
                    b: 0
                },
                orchid: {
                    r: 218,
                    g: 112,
                    b: 214
                },
                palegoldenrod: {
                    r: 238,
                    g: 232,
                    b: 170
                },
                palegreen: {
                    r: 152,
                    g: 251,
                    b: 152
                },
                paleturquoise: {
                    r: 175,
                    g: 238,
                    b: 238
                },
                palevioletred: {
                    r: 219,
                    g: 112,
                    b: 147
                },
                papayawhip: {
                    r: 255,
                    g: 239,
                    b: 213
                },
                peachpuff: {
                    r: 255,
                    g: 218,
                    b: 185
                },
                peru: {
                    r: 205,
                    g: 133,
                    b: 63
                },
                pink: {
                    r: 255,
                    g: 192,
                    b: 203
                },
                plum: {
                    r: 221,
                    g: 160,
                    b: 221
                },
                powderblue: {
                    r: 176,
                    g: 224,
                    b: 230
                },
                purple: {
                    r: 128,
                    g: 0,
                    b: 128
                },
                rebeccapurple: {
                    r: 102,
                    g: 51,
                    b: 153
                },
                red: {
                    r: 255,
                    g: 0,
                    b: 0
                },
                rosybrown: {
                    r: 188,
                    g: 143,
                    b: 143
                },
                royalblue: {
                    r: 65,
                    g: 105,
                    b: 225
                },
                saddlebrown: {
                    r: 139,
                    g: 69,
                    b: 19
                },
                salmon: {
                    r: 250,
                    g: 128,
                    b: 114
                },
                sandybrown: {
                    r: 244,
                    g: 164,
                    b: 96
                },
                seagreen: {
                    r: 46,
                    g: 139,
                    b: 87
                },
                seashell: {
                    r: 255,
                    g: 245,
                    b: 238
                },
                sienna: {
                    r: 160,
                    g: 82,
                    b: 45
                },
                silver: {
                    r: 192,
                    g: 192,
                    b: 192
                },
                skyblue: {
                    r: 135,
                    g: 206,
                    b: 235
                },
                slateblue: {
                    r: 106,
                    g: 90,
                    b: 205
                },
                slategray: {
                    r: 112,
                    g: 128,
                    b: 144
                },
                slategrey: {
                    r: 112,
                    g: 128,
                    b: 144
                },
                snow: {
                    r: 255,
                    g: 250,
                    b: 250
                },
                springgreen: {
                    r: 0,
                    g: 255,
                    b: 127
                },
                steelblue: {
                    r: 70,
                    g: 130,
                    b: 180
                },
                tan: {
                    r: 210,
                    g: 180,
                    b: 140
                },
                teal: {
                    r: 0,
                    g: 128,
                    b: 128
                },
                thistle: {
                    r: 216,
                    g: 191,
                    b: 216
                },
                tomato: {
                    r: 255,
                    g: 99,
                    b: 71
                },
                turquoise: {
                    r: 64,
                    g: 224,
                    b: 208
                },
                violet: {
                    r: 238,
                    g: 130,
                    b: 238
                },
                wheat: {
                    r: 245,
                    g: 222,
                    b: 179
                },
                white: {
                    r: 255,
                    g: 255,
                    b: 255
                },
                whitesmoke: {
                    r: 245,
                    g: 245,
                    b: 245
                },
                yellow: {
                    r: 255,
                    g: 255,
                    b: 0
                },
                yellowgreen: {
                    r: 154,
                    g: 205,
                    b: 50
                }
            };

        function o(t) {
            t = t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function(t, e, i, n) {
                return e + e + i + i + n + n
            });
            var e = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);
            return e ? {
                r: parseInt(e[1], 16),
                g: parseInt(e[2], 16),
                b: parseInt(e[3], 16)
            } : void 0
        }

        function s(t) {
            var e = (t = t.replace(/[ ]/g, "")).match(/^rgb\(([0-9]*),([0-9]*),([0-9]*)\)/i);
            if (e) e.push("1");
            else if (!(e = t.match(/^rgba\(([0-9]*),([0-9]*),([0-9]*),([.0-9]*)\)/i))) return;
            return {
                r: parseInt(e[1]),
                g: parseInt(e[2]),
                b: parseInt(e[3]),
                a: parseFloat(e[4])
            }
        }

        function l(t) {
            return 1 == t.length ? "0" + t : "" + t
        }

        function u(t, e) {
            var i = e > 0 ? 255 - t : t;
            return Math.round(i * e)
        }

        function h(t) {
            var e, i, n, r = t.h,
                a = t.s,
                o = t.l;
            if (0 == a) e = i = n = o;
            else {
                var s = function(t, e, i) {
                        return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + 6 * (e - t) * i : i < .5 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t
                    },
                    l = o < .5 ? o * (1 + a) : o + a - o * a,
                    u = 2 * o - l;
                e = s(u, l, r + 1 / 3), i = s(u, l, r), n = s(u, l, r - 1 / 3)
            }
            return {
                r: Math.round(255 * e),
                g: Math.round(255 * i),
                b: Math.round(255 * n)
            }
        }

        function c(t) {
            var e = t.r / 255,
                i = t.g / 255,
                n = t.b / 255,
                r = Math.max(e, i, n),
                a = Math.min(e, i, n),
                o = 0,
                s = 0,
                l = (r + a) / 2;
            if (r === a) o = s = 0;
            else {
                var u = r - a;
                switch (s = l > .5 ? u / (2 - r - a) : u / (r + a), r) {
                    case e:
                        o = (i - n) / u + (i < n ? 6 : 0);
                        break;
                    case i:
                        o = (n - e) / u + 2;
                        break;
                    case n:
                        o = (e - i) / u + 4
                }
                o /= 6
            }
            return {
                h: o,
                s: s,
                l: l
            }
        }
    },
    hznD: function(t, e, i) {
        "use strict";
        var n = i("oRlD"),
            r = i("5ou3");
        t.exports = n ? {}.toString : function() {
            return "[object " + r(this) + "]"
        }
    },
    ibOM: function(t, e, i) {
        var n = i("3sMl"),
            r = i("kcMx"),
            a = i("9XRO"),
            o = i("EVp9").f,
            s = function(t) {
                return function(e) {
                    for (var i, s = a(e), l = r(s), u = l.length, h = 0, c = []; u > h;) i = l[h++], n && !o.call(s, i) || c.push(t ? [i, s[i]] : s[i]);
                    return c
                }
            };
        t.exports = {
            entries: s(!0),
            values: s(!1)
        }
    },
    ilXn: function(t, e, i) {
        "use strict";
        var n = /[^\0-\u007E]/,
            r = /[.\u3002\uFF0E\uFF61]/g,
            a = "Overflow: input needs wider integers to process",
            o = Math.floor,
            s = String.fromCharCode,
            l = function(t) {
                return t + 22 + 75 * (t < 26)
            },
            u = function(t, e, i) {
                var n = 0;
                for (t = i ? o(t / 700) : t >> 1, t += o(t / e); t > 455; n += 36) t = o(t / 35);
                return o(n + 36 * t / (t + 38))
            },
            h = function(t) {
                var e, i, n = [],
                    r = (t = function(t) {
                        for (var e = [], i = 0, n = t.length; i < n;) {
                            var r = t.charCodeAt(i++);
                            if (r >= 55296 && r <= 56319 && i < n) {
                                var a = t.charCodeAt(i++);
                                56320 == (64512 & a) ? e.push(((1023 & r) << 10) + (1023 & a) + 65536) : (e.push(r), i--)
                            } else e.push(r)
                        }
                        return e
                    }(t)).length,
                    h = 128,
                    c = 0,
                    p = 72;
                for (e = 0; e < t.length; e++)(i = t[e]) < 128 && n.push(s(i));
                var d = n.length,
                    f = d;
                for (d && n.push("-"); f < r;) {
                    var g = 2147483647;
                    for (e = 0; e < t.length; e++)(i = t[e]) >= h && i < g && (g = i);
                    var y = f + 1;
                    if (g - h > o((2147483647 - c) / y)) throw RangeError(a);
                    for (c += (g - h) * y, h = g, e = 0; e < t.length; e++) {
                        if ((i = t[e]) < h && ++c > 2147483647) throw RangeError(a);
                        if (i == h) {
                            for (var m = c, v = 36;; v += 36) {
                                var b = v <= p ? 1 : v >= p + 26 ? 26 : v - p;
                                if (m < b) break;
                                var x = m - b,
                                    _ = 36 - b;
                                n.push(s(l(b + x % _))), m = o(x / _)
                            }
                            n.push(s(l(m))), p = u(c, y, f == d), c = 0, ++f
                        }
                    }++c, ++h
                }
                return n.join("")
            };
        t.exports = function(t) {
            var e, i, a = [],
                o = t.toLowerCase().replace(r, ".").split(".");
            for (e = 0; e < o.length; e++) i = o[e], a.push(n.test(i) ? "xn--" + h(i) : i);
            return a.join(".")
        }
    },
    "jC/1": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("HnbP"),
            a = i("7X7h"),
            o = i("6aQQ"),
            s = i("xlUI"),
            l = [],
            u = l.sort,
            h = o(function() {
                l.sort(void 0)
            }),
            c = o(function() {
                l.sort(null)
            }),
            p = s("sort");
        n({
            target: "Array",
            proto: !0,
            forced: h || !c || !p
        }, {
            sort: function(t) {
                return void 0 === t ? u.call(a(this)) : u.call(a(this), r(t))
            }
        })
    },
    jFX2: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("F/ei"),
            a = i("swFJ"),
            o = i("tHyI"),
            s = i("HnbP"),
            l = i("3weC"),
            u = i("2xmP"),
            h = i("AzDz"),
            c = i("/arR"),
            p = i("k2B3"),
            d = i("6aQQ"),
            f = i("KslR"),
            g = i("Nfo5"),
            y = i("L0in"),
            m = i("SqFF"),
            v = i("lnCe"),
            b = f("matchAll"),
            x = m.set,
            _ = m.getterFor("RegExp String Iterator"),
            P = RegExp.prototype,
            w = P.exec,
            O = "".matchAll,
            T = !!O && !d(function() {
                "a".matchAll(/./)
            }),
            S = r(function(t, e, i, n) {
                x(this, {
                    type: "RegExp String Iterator",
                    regexp: t,
                    string: e,
                    global: i,
                    unicode: n,
                    done: !1
                })
            }, "RegExp String", function() {
                var t = _(this);
                if (t.done) return {
                    value: void 0,
                    done: !0
                };
                var e = t.regexp,
                    i = t.string,
                    n = function(t, e) {
                        var i, n = t.exec;
                        if ("function" == typeof n) {
                            if ("object" != typeof(i = n.call(t, e))) throw TypeError("Incorrect exec result");
                            return i
                        }
                        return w.call(t, e)
                    }(e, i);
                return null === n ? {
                    value: void 0,
                    done: t.done = !0
                } : t.global ? ("" == String(n[0]) && (e.lastIndex = y(i, o(e.lastIndex), t.unicode)), {
                    value: n,
                    done: !1
                }) : (t.done = !0, {
                    value: n,
                    done: !1
                })
            }),
            C = function(t) {
                var e, i, n, r, a, s, u = l(this),
                    h = String(t);
                return e = g(u, RegExp), void 0 === (i = u.flags) && u instanceof RegExp && !("flags" in P) && (i = c.call(u)), n = void 0 === i ? "" : String(i), r = new e(e === RegExp ? u.source : u, n), a = !!~n.indexOf("g"), s = !!~n.indexOf("u"), r.lastIndex = o(u.lastIndex), new S(r, h, a, s)
            };
        n({
            target: "String",
            proto: !0,
            forced: T
        }, {
            matchAll: function(t) {
                var e, i, n, r = a(this);
                if (null != t) {
                    if (h(t) && !~String(a("flags" in P ? t.flags : c.call(t))).indexOf("g")) throw TypeError("`.matchAll` does not allow non-global regexes");
                    if (T) return O.apply(r, arguments);
                    if (void 0 === (i = t[b]) && v && "RegExp" == u(t) && (i = C), null != i) return s(i).call(t, r)
                } else if (T) return O.apply(r, arguments);
                return e = String(r), n = new RegExp(t, "g"), v ? C.call(n, e) : n[b](e)
            }
        }), v || b in P || p(P, b, C)
    },
    jViO: function(t, e, i) {
        var n = i("0sYB"),
            r = i("1wCr"),
            a = i("HnbP"),
            o = i("3weC"),
            s = i("6aQQ"),
            l = r("Reflect", "apply"),
            u = Function.apply;
        n({
            target: "Reflect",
            stat: !0,
            forced: !s(function() {
                l(function() {})
            })
        }, {
            apply: function(t, e, i) {
                return a(t), o(i), l ? l(t, e, i) : u.call(t, e, i)
            }
        })
    },
    jfaP: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("8ZqG"),
            o = i("aCit"),
            s = i("hGwe"),
            l = i("Gg2j"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._distance = 0, e.className = "Polyline", e.element = e.paper.add("path"), e.shapeRendering = "auto", e.fill = Object(a.c)(), e.strokeOpacity = 1, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.makePath = function() {
                    this._distance = 0;
                    var t = this.segments;
                    if (t && t.length > 0) {
                        for (var e = "", i = 0, n = t.length; i < n; i++) {
                            var r = t[i];
                            if (r.length > 0) {
                                e += s.moveTo(r[0]);
                                for (var a = 1; a < r.length; a++) {
                                    var o = r[a];
                                    e += s.lineTo(o), this._distance += l.getDistance(r[a - 1], o)
                                }
                            }
                        }
                        this.path = e
                    }
                    this._realSegments = t
                }, Object.defineProperty(e.prototype, "segments", {
                    get: function() {
                        return this.getPropertyValue("segments")
                    },
                    set: function(t) {
                        this.setPropertyValue("segments", t), this.makePath()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "distance", {
                    get: function() {
                        return this._distance
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.positionToPoint = function(t) {
                    var e = 0;
                    t < 0 && (t = Math.abs(t), e = 180);
                    var i = this._realSegments;
                    if (i) {
                        for (var n = this.distance, r = 0, a = 0, o = 0, s = void 0, u = void 0, h = 0; h < i.length; h++) {
                            var c = i[h];
                            if (c.length > 1) {
                                for (var p = 1; p < c.length; p++)
                                    if (s = c[p - 1], u = c[p], a = r / n, o = (r += l.getDistance(s, u)) / n, a <= t && o > t) {
                                        h = i.length;
                                        break
                                    }
                            } else 1 == c.length && (s = c[0], u = c[0], a = 0, o = 1)
                        }
                        if (s && u) {
                            var d = (t - a) / (o - a),
                                f = l.getMidPoint(s, u, d);
                            return {
                                x: f.x,
                                y: f.y,
                                angle: e + l.getAngle(s, u)
                            }
                        }
                    }
                    return {
                        x: 0,
                        y: 0,
                        angle: 0
                    }
                }, Object.defineProperty(e.prototype, "realSegments", {
                    get: function() {
                        return this._realSegments
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        o.c.registeredClasses.Polyline = u
    },
    jgaU: function(t, e, i) {
        i("gaw2"), i("Hp8y"), i("/NC3"), i("M44V"), i("ybeA"), i("w2pQ"), i("RBX2"), i("Ecdy");
        var n = i("lCww");
        t.exports = n
    },
    jmmR: function(t, e, i) {
        var n = i("0sYB"),
            r = i("7X7h"),
            a = i("kcMx");
        n({
            target: "Object",
            stat: !0,
            forced: i("6aQQ")(function() {
                a(1)
            })
        }, {
            keys: function(t) {
                return a(r(t))
            }
        })
    },
    jnLg: function(t, e, i) {
        var n = i("swFJ"),
            r = "[" + i("DUr5") + "]",
            a = RegExp("^" + r + r + "*"),
            o = RegExp(r + r + "*$"),
            s = function(t) {
                return function(e) {
                    var i = String(n(e));
                    return 1 & t && (i = i.replace(a, "")), 2 & t && (i = i.replace(o, "")), i
                }
            };
        t.exports = {
            start: s(1),
            end: s(2),
            trim: s(3)
        }
    },
    jqnv: function(t, e, i) {
        var n = i("0sYB"),
            r = i("3weC"),
            a = i("ucqQ"),
            o = i("KJuV");
        o && n({
            target: "Reflect",
            stat: !0
        }, {
            setPrototypeOf: function(t, e) {
                r(t), a(e);
                try {
                    return o(t, e), !0
                } catch (t) {
                    return !1
                }
            }
        })
    },
    jqyf: function(t, e) {
        t.exports = "undefined" != typeof ArrayBuffer && "undefined" != typeof DataView
    },
    k2B3: function(t, e, i) {
        var n = i("3sMl"),
            r = i("8+rI"),
            a = i("Pm8L");
        t.exports = n ? function(t, e, i) {
            return r.f(t, e, a(1, i))
        } : function(t, e, i) {
            return t[e] = i, t
        }
    },
    k6kv: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return g
        });
        var n = i("m4/l"),
            r = i("Meme"),
            a = i("5xph"),
            o = i("ND2/"),
            s = i("w4m0"),
            l = i("aCit"),
            u = i("tjMS"),
            h = i("Gg2j"),
            c = i("hGwe"),
            p = i("v9UT"),
            d = i("Mtpk"),
            f = i("TGuK"),
            g = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "AxisRendererX", e.minGridDistance = 120, e.opposite = !1, e.rotation = 0, e.width = Object(u.c)(100), e.labels.template.horizontalCenter = "middle", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.setAxis = function(e) {
                    t.prototype.setAxis.call(this, e), e.layout = "vertical"
                }, e.prototype.updateGridContainer = function() {
                    var t = this.axis;
                    if (t) {
                        var e = this.gridContainer;
                        e.x = t.pixelX, e.width = t.axisLength
                    }
                }, e.prototype.processRenderer = function() {
                    t.prototype.processRenderer.call(this);
                    var e = this.axis;
                    if (e) {
                        e.width instanceof u.a || (e.width = Object(u.c)(100)), p.used(this.line);
                        var i = e.title;
                        i.rotation = 0, i.align = "center", this.opposite ? (this.line.toFront(), i.toBack()) : (i.toFront(), this.toBack(), this.line.toBack())
                    }
                }, e.prototype.updateTooltip = function() {
                    if (this.axis) {
                        var t = this.line.pixelX,
                            e = this.line.pixelY,
                            i = this.axisLength,
                            n = 1e3;
                        this.opposite ? this.inside || (e = -1e3, n = 1e3) : this.inside && (e = -1e3, n = 1e3), this.axis.updateTooltip("vertical", {
                            x: t,
                            y: e,
                            width: i,
                            height: n
                        })
                    }
                }, e.prototype.updateLabelElement = function(t, e, i, n) {
                    d.hasValue(n) || (n = t.location), e += (i - e) * n;
                    var r = this.positionToPoint(e);
                    t.isMeasured = !t.inside;
                    var a, o = 0,
                        s = this.gridContainer.maxHeight;
                    this.opposite ? (t.inside ? (a = "top", "bottom" == t.valign && (o = s, a = "bottom"), "middle" == t.valign && (o = s / 2, a = "middle")) : a = "bottom", r.y = o) : (t.inside ? (a = "bottom", "top" == t.valign && (o = -s, a = "top"), "middle" == t.valign && (o = -s / 2, a = "middle")) : a = "top", r.y += o), 0 == t.rotation && (t.verticalCenter = a), this.positionItem(t, r), this.toggleVisibility(t, e, this.minLabelPosition, this.maxLabelPosition)
                }, Object.defineProperty(e.prototype, "axisLength", {
                    get: function() {
                        var t = this.axis;
                        return t.measuredWidth - t.pixelPaddingRight - t.pixelPaddingLeft || 0
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.positionToPoint = function(t, e) {
                    return {
                        x: this.positionToCoordinate(t),
                        y: 0
                    }
                }, e.prototype.pointToPosition = function(t) {
                    return this.coordinateToPosition(t.x, t.y)
                }, e.prototype.getPositionRangePath = function(t, e) {
                    var i = h.fitToRange(this.positionToCoordinate(t), 0, this.axisLength),
                        n = h.fitToRange(this.positionToCoordinate(e), 0, this.axisLength),
                        r = Math.abs(n - i),
                        a = this.getHeight(),
                        o = Math.min(i, n);
                    return c.rectToPath({
                        x: o,
                        y: 0,
                        width: r,
                        height: a
                    }, !0)
                }, e.prototype.updateBreakElement = function(e) {
                    t.prototype.updateBreakElement.call(this, e);
                    var i = e.startLine,
                        n = e.endLine,
                        r = e.fillShape,
                        a = e.startPoint,
                        o = e.endPoint,
                        s = e.pixelMarginLeft,
                        l = this.getHeight() - e.pixelMarginTop - e.pixelMarginBottom;
                    a.x = h.fitToRange(a.x, -1, this.axisLength + 1), o.x = h.fitToRange(o.x, -1, this.axisLength + 1), a.x == o.x && (a.x < 0 || a.x > this.axisLength) ? e.fillShape.__disabled = !0 : e.fillShape.__disabled = !1, i.y = s, i.width = 0, i.height = l, n.y = s, n.width = 0, n.height = l, r.height = l, r.width = Math.abs(o.x - a.x), r.y = s, r.x = a.x
                }, e.prototype.updateGridElement = function(t, e, i) {
                    e += (i - e) * t.location;
                    var n = this.positionToPoint(e);
                    t.path = c.moveTo({
                        x: 0,
                        y: 0
                    }) + c.lineTo({
                        x: 0,
                        y: this.getHeight()
                    }), this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1)
                }, e.prototype.updateTickElement = function(t, e, i) {
                    e += (i - e) * t.location;
                    var n = this.positionToPoint(e),
                        r = t.length;
                    n.y = p.spritePointToSprite({
                        x: 0,
                        y: this.line.pixelY
                    }, this.line.parent, this.gridContainer).y, this.opposite ? r *= t.inside ? 1 : -1 : r *= t.inside ? -1 : 1, t.path = c.moveTo({
                        x: 0,
                        y: 0
                    }) + c.lineTo({
                        x: 0,
                        y: r
                    }), this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1)
                }, e.prototype.updateAxisLine = function() {
                    this.line.path = c.moveTo({
                        x: 0,
                        y: 0
                    }) + c.lineTo({
                        x: this.axisLength,
                        y: 0
                    })
                }, e.prototype.updateBaseGridElement = function() {
                    t.prototype.updateBaseGridElement.call(this);
                    var e = this.axis,
                        i = this.getHeight(),
                        n = this.axisLength,
                        r = this.baseGrid,
                        a = e.basePoint.x;
                    if (a < -.2 || a > n + .2) r.hide(0);
                    else {
                        var o = p.spritePointToSprite({
                            x: 0,
                            y: 0
                        }, this.gridContainer, r.parent).y;
                        r.path = c.moveTo({
                            x: 0,
                            y: 0
                        }) + c.lineTo({
                            x: 0,
                            y: i
                        }), r.moveTo({
                            x: a,
                            y: o
                        }), r.show(0)
                    }
                }, e.prototype.createBreakSprites = function(t) {
                    t.startLine = new o.a, t.endLine = new o.a;
                    var e = new s.a;
                    e.setWavedSides(!1, !0, !1, !0), t.fillShape = e
                }, e.prototype.toAxisPosition = function(t) {
                    var e = t,
                        i = this.axis;
                    if (i) {
                        var n = i.relativePositionSprite,
                            r = i.pixelX;
                        if (n ? r = p.spritePointToSprite({
                                x: this.pixelX,
                                y: 0
                            }, this.parent, n).x : n = i.parent, n) return (e - r / n.innerWidth) / (i.axisLength / n.innerWidth)
                    }
                    return t
                }, e.prototype.updateBullet = function(t, e, i) {
                    var n = .5;
                    t instanceof a.a && (n = t.location), e += (i - e) * n;
                    var r = this.positionToPoint(e);
                    r.y = p.spritePointToSprite({
                        x: 0,
                        y: this.line.pixelY
                    }, this.line.parent, this.gridContainer).y, this.positionItem(t, r), this.toggleVisibility(t, e, 0, 1)
                }, e
            }(r.a);
        l.c.registeredClasses.AxisRendererX = g, f.c.push({
            relevant: f.b.heightXS,
            state: function(t, e) {
                if (t instanceof g) {
                    var i = t.states.create(e);
                    return i.properties.inside = !0, i.properties.maxLabelPosition = .9, i.properties.minLabelPosition = .1, i
                }
                return null
            }
        }), f.c.push({
            relevant: f.b.heightXXS,
            state: function(t, e) {
                if (t instanceof g) {
                    var i = t.states.create(e);
                    return i.properties.disabled = !0, i
                }
                return null
            }
        })
    },
    kHz4: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("HnbP"),
            a = i("TQpL"),
            o = i("AYiJ"),
            s = i("L4xm");
        n({
            target: "Promise",
            stat: !0
        }, {
            allSettled: function(t) {
                var e = this,
                    i = a.f(e),
                    n = i.resolve,
                    l = i.reject,
                    u = o(function() {
                        var i = r(e.resolve),
                            a = [],
                            o = 0,
                            l = 1;
                        s(t, function(t) {
                            var r = o++,
                                s = !1;
                            a.push(void 0), l++, i.call(e, t).then(function(t) {
                                s || (s = !0, a[r] = {
                                    status: "fulfilled",
                                    value: t
                                }, --l || n(a))
                            }, function(t) {
                                s || (s = !0, a[r] = {
                                    status: "rejected",
                                    reason: t
                                }, --l || n(a))
                            })
                        }), --l || n(a)
                    });
                return u.error && l(u.value), i.promise
            }
        })
    },
    kQxV: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("+qIf"),
            a = i("o0Lc"),
            o = i("hD5A"),
            s = i("v9UT"),
            l = i("Qkdp"),
            u = function(t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e._interactionEvents = new r.a, e
                }
                return Object(n.c)(e, t), e.prototype._dispatchSpriteEvent = function(t) {
                    if (!this.target.disabled && !this.target.isTemplate && this.target.events.isEnabled(t.type)) {
                        var e = l.merge(t, {
                            target: this.target
                        });
                        this.target.events.dispatchImmediately(e.type, e)
                    }
                }, e.prototype._dispatchSpritePointEvent = function(t) {
                    if (!this.target.disabled && !this.target.isTemplate && this.target.events.isEnabled(t.type)) {
                        var e = l.merge(t, {
                            target: this.target,
                            spritePoint: s.documentPointToSprite(t.point, this.target),
                            svgPoint: this.target.getSvgPoint(t.point)
                        });
                        this.target.events.dispatchImmediately(e.type, e)
                    }
                }, e.prototype._addInteractionObjectEvent = function(t, e, i, n) {
                    var r = this;
                    return this._interactionEvents.insertKeyIfEmpty(t, function() {
                        var a = r.target.interactions.events.on(t, e, i, n);
                        return new o.a(function() {
                            r._interactionEvents.removeKey(t), a.dispose()
                        })
                    }).increment()
                }, e.prototype._on = function(e, i, n, r, a, s) {
                    var l = t.prototype._on.call(this, e, i, n, r, a, s),
                        u = [l.disposer];
                    switch (i) {
                        case "hit":
                        case "track":
                        case "doublehit":
                        case "wheel":
                        case "wheelup":
                        case "wheeldown":
                        case "wheelleft":
                        case "wheelright":
                            u.push(this._addInteractionObjectEvent(i, this._dispatchSpritePointEvent, this, a));
                            break;
                        case "rightclick":
                        case "down":
                        case "up":
                        case "drag":
                        case "dragged":
                        case "dragstart":
                        case "dragstop":
                        case "over":
                        case "out":
                        case "swipe":
                        case "swipeleft":
                        case "swiperight":
                        case "resize":
                        case "focus":
                        case "blur":
                        case "toggled":
                            u.push(this._addInteractionObjectEvent(i, this._dispatchSpriteEvent, this, a))
                    }
                    switch (i) {
                        case "hit":
                        case "doublehit":
                        case "rightclick":
                        case "down":
                        case "up":
                            this.target.clickable = !0;
                            break;
                        case "toggled":
                            this.target.togglable = !0;
                            break;
                        case "drag":
                        case "dragstart":
                        case "dragstop":
                            this.target.draggable = !0;
                            break;
                        case "track":
                            this.target.trackable = !0;
                            break;
                        case "resize":
                            this.target.resizable = !0;
                            break;
                        case "swipe":
                        case "swipeleft":
                        case "swiperight":
                            this.target.swipeable = !0;
                            break;
                        case "wheel":
                        case "wheelup":
                        case "wheeldown":
                        case "wheelleft":
                        case "wheelright":
                            this.target.wheelable = !0;
                            break;
                        case "over":
                            this.target.hoverable = !0;
                        case "out":
                            this.target.hoverable = !0;
                            break;
                        case "focus":
                        case "blur":
                            this.target.focusable = !0
                    }
                    return l.disposer = new o.c(u), l
                }, e
            }(a.b)
    },
    "kZk/": function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("jnLg").trim;
        n({
            target: "String",
            proto: !0,
            forced: i("rCh7")("trim")
        }, {
            trim: function() {
                return r(this)
            }
        })
    },
    kcMx: function(t, e, i) {
        var n = i("3pky"),
            r = i("XhXf");
        t.exports = Object.keys || function(t) {
            return n(t, r)
        }
    },
    keeN: function(t, e, i) {
        i("eygo")("Int8", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        })
    },
    kwkr: function(t, e, i) {
        var n = i("0sYB"),
            r = i("uPlY");
        n({
            target: "Date",
            proto: !0,
            forced: Date.prototype.toISOString !== r
        }, {
            toISOString: r
        })
    },
    lCww: function(t, e, i) {
        var n = i("vfdp");
        t.exports = n
    },
    lL3t: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("X/sl").some,
            a = i("xlUI"),
            o = i("J+FZ"),
            s = a("some"),
            l = o("some");
        n({
            target: "Array",
            proto: !0,
            forced: !s || !l
        }, {
            some: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    lOhE: function(t, e, i) {
        var n = i("0sYB"),
            r = Math.log,
            a = Math.LOG10E;
        n({
            target: "Math",
            stat: !0
        }, {
            log10: function(t) {
                return r(t) * a
            }
        })
    },
    lPoY: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("ojxk").indexOf,
            a = i("xlUI"),
            o = i("J+FZ"),
            s = [].indexOf,
            l = !!s && 1 / [1].indexOf(1, -0) < 0,
            u = a("indexOf"),
            h = o("indexOf", {
                ACCESSORS: !0,
                1: 0
            });
        n({
            target: "Array",
            proto: !0,
            forced: l || !u || !h
        }, {
            indexOf: function(t) {
                return l ? s.apply(this, arguments) || 0 : r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        })
    },
    leaB: function(t, e, i) {
        var n = i("6aQQ"),
            r = i("KslR"),
            a = i("lnCe"),
            o = r("iterator");
        t.exports = !n(function() {
            var t = new URL("b?a=1&b=2&c=3", "http://a"),
                e = t.searchParams,
                i = "";
            return t.pathname = "c%20d", e.forEach(function(t, n) {
                e.delete("b"), i += n + t
            }), a && !t.toJSON || !e.sort || "http://a/c%20d?a=1&c=3" !== t.href || "3" !== e.get("c") || "a=1" !== String(new URLSearchParams("?a=1")) || !e[o] || "a" !== new URL("https://a@b").username || "b" !== new URLSearchParams(new URLSearchParams("a=b")).get("a") || "xn--e1aybc" !== new URL("http://Ñ‚ÐµÑÑ‚").host || "#%D0%B1" !== new URL("http://a#Ð±").hash || "a1c3" !== i || "x" !== new URL("http://x", void 0).host
        })
    },
    lkeQ: function(t, e, i) {
        "use strict";
        var n = i("vfdp"),
            r = i("UseD"),
            a = i("yBTm"),
            o = i("KslR")("iterator"),
            s = n.Uint8Array,
            l = a.values,
            u = a.keys,
            h = a.entries,
            c = r.aTypedArray,
            p = r.exportTypedArrayMethod,
            d = s && s.prototype[o],
            f = !!d && ("values" == d.name || void 0 == d.name),
            g = function() {
                return l.call(c(this))
            };
        p("entries", function() {
            return h.call(c(this))
        }), p("keys", function() {
            return u.call(c(this))
        }), p("values", g, !f), p(o, g, !f)
    },
    lm74: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("o3G/"),
            a = [].reverse,
            o = [1, 2];
        n({
            target: "Array",
            proto: !0,
            forced: String(o) === String(o.reverse())
        }, {
            reverse: function() {
                return r(this) && (this.length = this.length), a.call(this)
            }
        })
    },
    lnCe: function(t, e) {
        t.exports = !1
    },
    lt6Q: function(t, e) {
        t.exports = {}
    },
    lzhD: function(t, e, i) {
        i("eygo")("Uint32", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        })
    },
    "m4/l": function(t, e, i) {
        "use strict";
        e.c = function(t, e) {
            function i() {
                this.constructor = t
            }
            n(t, e), t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i)
        }, i.d(e, "a", function() {
            return r
        }), e.b = function(t, e, i, n) {
            return new(i || (i = Promise))(function(r, a) {
                function o(t) {
                    try {
                        l(n.next(t))
                    } catch (t) {
                        a(t)
                    }
                }

                function s(t) {
                    try {
                        l(n.throw(t))
                    } catch (t) {
                        a(t)
                    }
                }

                function l(t) {
                    t.done ? r(t.value) : new i(function(e) {
                        e(t.value)
                    }).then(o, s)
                }
                l((n = n.apply(t, e || [])).next())
            })
        }, e.d = function(t, e) {
            var i, n, r, a, o = {
                label: 0,
                sent: function() {
                    if (1 & r[0]) throw r[1];
                    return r[1]
                },
                trys: [],
                ops: []
            };
            return a = {
                next: s(0),
                throw: s(1),
                return: s(2)
            }, "function" == typeof Symbol && (a[Symbol.iterator] = function() {
                return this
            }), a;

            function s(a) {
                return function(s) {
                    return function(a) {
                        if (i) throw new TypeError("Generator is already executing.");
                        for (; o;) try {
                            if (i = 1, n && (r = 2 & a[0] ? n.return : a[0] ? n.throw || ((r = n.return) && r.call(n), 0) : n.next) && !(r = r.call(n, a[1])).done) return r;
                            switch (n = 0, r && (a = [2 & a[0], r.value]), a[0]) {
                                case 0:
                                case 1:
                                    r = a;
                                    break;
                                case 4:
                                    return o.label++, {
                                        value: a[1],
                                        done: !1
                                    };
                                case 5:
                                    o.label++, n = a[1], a = [0];
                                    continue;
                                case 7:
                                    a = o.ops.pop(), o.trys.pop();
                                    continue;
                                default:
                                    if (!(r = (r = o.trys).length > 0 && r[r.length - 1]) && (6 === a[0] || 2 === a[0])) {
                                        o = 0;
                                        continue
                                    }
                                    if (3 === a[0] && (!r || a[1] > r[0] && a[1] < r[3])) {
                                        o.label = a[1];
                                        break
                                    }
                                    if (6 === a[0] && o.label < r[1]) {
                                        o.label = r[1], r = a;
                                        break
                                    }
                                    if (r && o.label < r[2]) {
                                        o.label = r[2], o.ops.push(a);
                                        break
                                    }
                                    r[2] && o.ops.pop(), o.trys.pop();
                                    continue
                            }
                            a = e.call(t, o)
                        } catch (t) {
                            a = [6, t], n = 0
                        } finally {
                            i = r = 0
                        }
                        if (5 & a[0]) throw a[1];
                        return {
                            value: a[0] ? a[1] : void 0,
                            done: !0
                        }
                    }([a, s])
                }
            }
        }, e.g = a, e.e = o, e.f = function() {
            for (var t = [], e = 0; e < arguments.length; e++) t = t.concat(o(arguments[e]));
            return t
        };
        var n = function(t, e) {
            return (n = Object.setPrototypeOf || {
                    __proto__: []
                }
                instanceof Array && function(t, e) {
                    t.__proto__ = e
                } || function(t, e) {
                    for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i])
                })(t, e)
        };
        var r = function() {
            return (r = Object.assign || function(t) {
                for (var e, i = 1, n = arguments.length; i < n; i++)
                    for (var r in e = arguments[i]) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]);
                return t
            }).apply(this, arguments)
        };

        function a(t) {
            var e = "function" == typeof Symbol && t[Symbol.iterator],
                i = 0;
            return e ? e.call(t) : {
                next: function() {
                    return t && i >= t.length && (t = void 0), {
                        value: t && t[i++],
                        done: !t
                    }
                }
            }
        }

        function o(t, e) {
            var i = "function" == typeof Symbol && t[Symbol.iterator];
            if (!i) return t;
            var n, r, a = i.call(t),
                o = [];
            try {
                for (;
                    (void 0 === e || e-- > 0) && !(n = a.next()).done;) o.push(n.value)
            } catch (t) {
                r = {
                    error: t
                }
            } finally {
                try {
                    n && !n.done && (i = a.return) && i.call(a)
                } finally {
                    if (r) throw r.error
                }
            }
            return o
        }
    },
    "mF5+": function(t, e, i) {
        i("Vwc7"), i("Ui9R"), i("VlLm"), i("R3j0"), i("zNr0"), i("uAB6"), i("t/IY"), i("eK2B"), i("ORGY"), i("06/b"), i("ywCi"), i("WAWz"), i("1Er2"), i("ruXs"), i("fjAw"), i("16a9"), i("bUwg"), i("vIej"), i("w+oS"), i("h+H5"), i("Hfxi"), i("S+7J"), i("LoW2"), i("g3YV"), i("abrF"), i("sB9f"), i("ZYec"), i("e71F"), i("ha1R"), i("wgyV"), i("jmmR"), i("YcPX"), i("GzrW"), i("EyBv"), i("dzqq"), i("ywzu"), i("/fwt"), i("aSLB"), i("s4go"), i("NI+5"), i("TskY"), i("DDWt"), i("09Lt"), i("ntrI"), i("5tyj"), i("xbKe"), i("2MCn"), i("xv7a"), i("JezW"), i("LPN9"), i("tCdX"), i("6Ah2"), i("ffjw"), i("onIP"), i("5hgO"), i("NKcy"), i("8xQt"), i("nK49"), i("lPoY"), i("+Pwd"), i("MS5+"), i("Q0ab"), i("FL8s"), i("cXJ+"), i("lm74"), i("Jdjl"), i("lL3t"), i("jC/1"), i("TIsG"), i("KvVN"), i("FZ9I"), i("M1hx"), i("yBTm"), i("oxU5"), i("YWS7"), i("+APs"), i("wLyq"), i("1t1Z"), i("FE89"), i("jFX2"), i("Ibl2"), i("3XS/"), i("LV//"), i("3Z2E"), i("dAGi"), i("OhoW"), i("flUP"), i("kZk/"), i("RIy+"), i("sgPD"), i("sSOU"), i("XaED"), i("NWlt"), i("PGhV"), i("XUj0"), i("Djm3"), i("dlbc"), i("5FpK"), i("u5pl"), i("FBxm"), i("Y8ws"), i("Xroj"), i("BKHV"), i("cSfM"), i("2gbO"), i("1M4z"), i("U+Re"), i("TqDQ"), i("Gkqv"), i("8Cf/"), i("DMUu"), i("0KD/"), i("3mR7"), i("zYbq"), i("yv8f"), i("HyBf"), i("sVTF"), i("XDqO"), i("Uf/F"), i("5rWR"), i("P+4d"), i("dEJP"), i("onRi"), i("mSSX"), i("QwL+"), i("eKg1"), i("ocaP"), i("bZFJ"), i("pkYH"), i("QQDG"), i("qcEY"), i("+uwN"), i("oe0p"), i("Ca8x"), i("lOhE"), i("zQLg"), i("02tF"), i("xLUE"), i("L7fL"), i("Qj4T"), i("NR9A"), i("G83T"), i("pNDo"), i("2K9G"), i("kwkr"), i("OMnz"), i("ob/C"), i("57vZ"), i("TM0y"), i("MC1b"), i("kHz4"), i("wGwV"), i("RlUG"), i("IbQD"), i("vi/P"), i("9bPn"), i("DUzp"), i("2ih1"), i("Oz+B"), i("0aVp"), i("keeN"), i("tqfd"), i("9PYb"), i("sEiD"), i("mukW"), i("oq5N"), i("lzhD"), i("DgVf"), i("xtHw"), i("wfEi"), i("36nV"), i("Fhpb"), i("PoRT"), i("KWTK"), i("tEse"), i("wyAw"), i("Gmkj"), i("/XmW"), i("KWPb"), i("+Z4/"), i("lkeQ"), i("ZjxQ"), i("fluH"), i("D3TA"), i("IN7q"), i("Ygeo"), i("fG/y"), i("QgOz"), i("7gIX"), i("1ayE"), i("32Y2"), i("tg9j"), i("cBFz"), i("oa9N"), i("jViO"), i("f3Fu"), i("9lsj"), i("/SU0"), i("J+05"), i("1dhw"), i("olmY"), i("XDyS"), i("1E9r"), i("ZKUO"), i("eKCf"), i("9HTT"), i("jqnv");
        var n = i("lCww");
        t.exports = n
    },
    mIpt: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("7XB+"),
            r = i("v9UT"),
            a = i("Mtpk"),
            o = function() {
                function t() {}
                return t.prototype.parse = function(t) {
                    return []
                }, Object.defineProperty(t.prototype, "parsableNumbers", {
                    get: function() {
                        return this.options.numberFields && this.options.numberFields.length > 0
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.maybeToNumber = function(t, e) {
                    return -1 !== this.options.numberFields.indexOf(t) ? r.anyToNumber(e) : e
                }, Object.defineProperty(t.prototype, "parsableDates", {
                    get: function() {
                        return this.options.dateFields && this.options.dateFields.length > 0
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.maybeToDate = function(t, e) {
                    return -1 !== this.options.dateFields.indexOf(t) ? this.options.dateFormatter.parse(e, this.dateFormat) : e
                }, t.prototype.maybeToEmpty = function(t) {
                    return a.hasValue(t) && "" != t || !a.hasValue(this.options.emptyAs) ? t : this.options.emptyAs
                }, Object.defineProperty(t.prototype, "dateFormatter", {
                    get: function() {
                        return this.options.dateFormatter || (this.options.dateFormatter = new n.a, this.options.dateFormat && (this.options.dateFormat = this.options.dateFormat)), this.options.dateFormatter
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "dateFormat", {
                    get: function() {
                        return this.options.dateFormat || this.dateFormatter.inputDateFormat
                    },
                    enumerable: !0,
                    configurable: !0
                }), t
            }()
    },
    mSSX: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("4BZe"),
            o = 1..toPrecision;
        n({
            target: "Number",
            proto: !0,
            forced: r(function() {
                return "1" !== o.call(1, void 0)
            }) || !r(function() {
                o.call({})
            })
        }, {
            toPrecision: function(t) {
                return void 0 === t ? o.call(a(this)) : o.call(a(this), t)
            }
        })
    },
    mtbW: function(t, e, i) {
        "use strict";
        var n = i("vfdp"),
            r = i("3sMl"),
            a = i("jqyf"),
            o = i("k2B3"),
            s = i("/vWR"),
            l = i("6aQQ"),
            u = i("L56b"),
            h = i("exNg"),
            c = i("tHyI"),
            p = i("E+A3"),
            d = i("MfFr"),
            f = i("Ox5T"),
            g = i("KJuV"),
            y = i("GtmK").f,
            m = i("8+rI").f,
            v = i("vjgd"),
            b = i("NRfM"),
            x = i("SqFF"),
            _ = x.get,
            P = x.set,
            w = n.ArrayBuffer,
            O = w,
            T = n.DataView,
            S = T && T.prototype,
            C = Object.prototype,
            I = n.RangeError,
            k = d.pack,
            D = d.unpack,
            j = function(t) {
                return [255 & t]
            },
            V = function(t) {
                return [255 & t, t >> 8 & 255]
            },
            A = function(t) {
                return [255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255]
            },
            M = function(t) {
                return t[3] << 24 | t[2] << 16 | t[1] << 8 | t[0]
            },
            F = function(t) {
                return k(t, 23, 4)
            },
            E = function(t) {
                return k(t, 52, 8)
            },
            R = function(t, e) {
                m(t.prototype, e, {
                    get: function() {
                        return _(this)[e]
                    }
                })
            },
            N = function(t, e, i, n) {
                var r = p(i),
                    a = _(t);
                if (r + e > a.byteLength) throw I("Wrong index");
                var o = _(a.buffer).bytes,
                    s = r + a.byteOffset,
                    l = o.slice(s, s + e);
                return n ? l : l.reverse()
            },
            L = function(t, e, i, n, r, a) {
                var o = p(i),
                    s = _(t);
                if (o + e > s.byteLength) throw I("Wrong index");
                for (var l = _(s.buffer).bytes, u = o + s.byteOffset, h = n(+r), c = 0; c < e; c++) l[u + c] = h[a ? c : e - c - 1]
            };
        if (a) {
            if (!l(function() {
                    w(1)
                }) || !l(function() {
                    new w(-1)
                }) || l(function() {
                    return new w, new w(1.5), new w(NaN), "ArrayBuffer" != w.name
                })) {
                for (var B, U = (O = function(t) {
                        return u(this, O), new w(p(t))
                    }).prototype = w.prototype, W = y(w), Y = 0; W.length > Y;)(B = W[Y++]) in O || o(O, B, w[B]);
                U.constructor = O
            }
            g && f(S) !== C && g(S, C);
            var H = new T(new O(2)),
                z = S.setInt8;
            H.setInt8(0, 2147483648), H.setInt8(1, 2147483649), !H.getInt8(0) && H.getInt8(1) || s(S, {
                setInt8: function(t, e) {
                    z.call(this, t, e << 24 >> 24)
                },
                setUint8: function(t, e) {
                    z.call(this, t, e << 24 >> 24)
                }
            }, {
                unsafe: !0
            })
        } else O = function(t) {
            u(this, O, "ArrayBuffer");
            var e = p(t);
            P(this, {
                bytes: v.call(new Array(e), 0),
                byteLength: e
            }), r || (this.byteLength = e)
        }, T = function(t, e, i) {
            u(this, T, "DataView"), u(t, O, "DataView");
            var n = _(t).byteLength,
                a = h(e);
            if (a < 0 || a > n) throw I("Wrong offset");
            if (a + (i = void 0 === i ? n - a : c(i)) > n) throw I("Wrong length");
            P(this, {
                buffer: t,
                byteLength: i,
                byteOffset: a
            }), r || (this.buffer = t, this.byteLength = i, this.byteOffset = a)
        }, r && (R(O, "byteLength"), R(T, "buffer"), R(T, "byteLength"), R(T, "byteOffset")), s(T.prototype, {
            getInt8: function(t) {
                return N(this, 1, t)[0] << 24 >> 24
            },
            getUint8: function(t) {
                return N(this, 1, t)[0]
            },
            getInt16: function(t) {
                var e = N(this, 2, t, arguments.length > 1 ? arguments[1] : void 0);
                return (e[1] << 8 | e[0]) << 16 >> 16
            },
            getUint16: function(t) {
                var e = N(this, 2, t, arguments.length > 1 ? arguments[1] : void 0);
                return e[1] << 8 | e[0]
            },
            getInt32: function(t) {
                return M(N(this, 4, t, arguments.length > 1 ? arguments[1] : void 0))
            },
            getUint32: function(t) {
                return M(N(this, 4, t, arguments.length > 1 ? arguments[1] : void 0)) >>> 0
            },
            getFloat32: function(t) {
                return D(N(this, 4, t, arguments.length > 1 ? arguments[1] : void 0), 23)
            },
            getFloat64: function(t) {
                return D(N(this, 8, t, arguments.length > 1 ? arguments[1] : void 0), 52)
            },
            setInt8: function(t, e) {
                L(this, 1, t, j, e)
            },
            setUint8: function(t, e) {
                L(this, 1, t, j, e)
            },
            setInt16: function(t, e) {
                L(this, 2, t, V, e, arguments.length > 2 ? arguments[2] : void 0)
            },
            setUint16: function(t, e) {
                L(this, 2, t, V, e, arguments.length > 2 ? arguments[2] : void 0)
            },
            setInt32: function(t, e) {
                L(this, 4, t, A, e, arguments.length > 2 ? arguments[2] : void 0)
            },
            setUint32: function(t, e) {
                L(this, 4, t, A, e, arguments.length > 2 ? arguments[2] : void 0)
            },
            setFloat32: function(t, e) {
                L(this, 4, t, F, e, arguments.length > 2 ? arguments[2] : void 0)
            },
            setFloat64: function(t, e) {
                L(this, 8, t, E, e, arguments.length > 2 ? arguments[2] : void 0)
            }
        });
        b(O, "ArrayBuffer"), b(T, "DataView"), t.exports = {
            ArrayBuffer: O,
            DataView: T
        }
    },
    "mte+": function(t, e, i) {
        "use strict";
        var n = i("6aQQ");

        function r(t, e) {
            return RegExp(t, e)
        }
        e.UNSUPPORTED_Y = n(function() {
            var t = r("a", "y");
            return t.lastIndex = 2, null != t.exec("abcd")
        }), e.BROKEN_CARET = n(function() {
            var t = r("^r", "gy");
            return t.lastIndex = 2, null != t.exec("str")
        })
    },
    mukW: function(t, e, i) {
        i("eygo")("Uint16", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        })
    },
    nK49: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("ojxk").includes,
            a = i("0FA2");
        n({
            target: "Array",
            proto: !0,
            forced: !i("J+FZ")("indexOf", {
                ACCESSORS: !0,
                1: 0
            })
        }, {
            includes: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        }), a("includes")
    },
    nPzZ: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("Inf5"),
            a = i("Vs7R"),
            o = i("Gg2j"),
            s = i("hGwe"),
            l = i("Mtpk"),
            u = i("8ZqG"),
            h = i("CuFa"),
            c = i("sxA1"),
            p = i("C84C"),
            d = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "Slice3D", e.layout = "none";
                    var i = e.createChild(a.a);
                    e.edge = i, i.shouldClone = !1, i.isMeasured = !1, i.toBack(), e.angle = 30, e.depth = 20;
                    var n = e.createChild(a.a);
                    e.sideA = n, n.shouldClone = !1, n.isMeasured = !1;
                    var r = e.createChild(a.a);
                    return e.sideB = r, r.shouldClone = !1, r.isMeasured = !1, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.setFill = function(e) {
                    var i;
                    if (t.prototype.setFill.call(this, e), e instanceof u.a) i = e.hex;
                    else if (e instanceof c.a || e instanceof h.a) i = e.stops.getIndex(0).color.hex;
                    else {
                        var n = new p.a;
                        n.lightness = -.25, this.edge.filters.push(n), this.sideA.filters.push(n.clone()), this.sideB.filters.push(n.clone())
                    }
                    if (i) {
                        var r = Object(u.c)(i).lighten(-.25);
                        this.edge.fill = r, this.sideA.fill = r, this.sideB.fill = r, this.edge.stroke = r, this.sideA.stroke = r, this.sideB.stroke = r
                    }
                }, e.prototype.draw = function() {
                    if (this.cornerRadius = 0, this.innerCornerRadius = 0, t.prototype.draw.call(this), 0 !== this.arc && this.radius > 0 && this.depth > 0) {
                        this.sideB.show(0), this.sideA.show(0), this.edge.show(0);
                        for (var e = this.startAngle, i = this.arc, n = this.pixelInnerRadius || 0, r = this.radiusY || 0, a = this.radius, l = e + i, u = r / a * n, h = {
                                x: o.cos(e) * n,
                                y: o.sin(e) * u
                            }, c = {
                                x: o.cos(e) * a,
                                y: o.sin(e) * r
                            }, p = {
                                x: o.cos(l) * a,
                                y: o.sin(l) * r
                            }, d = {
                                x: o.cos(l) * n,
                                y: o.sin(l) * u
                            }, f = this.depth, g = {
                                x: h.x,
                                y: h.y - f
                            }, y = {
                                x: c.x,
                                y: c.y - f
                            }, m = {
                                x: p.x,
                                y: p.y - f
                            }, v = {
                                x: d.x,
                                y: d.y - f
                            }, b = "", x = Math.ceil(i / 5), _ = i / x, P = e, w = y, O = 0; O < x; O++)
                            if ((P += _) > 0 && P < 180) {
                                b += s.moveTo(w);
                                var T = {
                                    x: o.cos(P) * a,
                                    y: o.sin(P) * r - f
                                };
                                b += s.lineTo({
                                    x: w.x,
                                    y: w.y + f
                                }), b += s.arcToPoint({
                                    x: T.x,
                                    y: T.y + f
                                }, a, r, !0), b += s.lineTo(T), b += s.arcToPoint(w, a, r), b += "z", w = T
                            } else {
                                b += s.moveTo(w);
                                T = {
                                    x: o.cos(P) * a,
                                    y: o.sin(P) * r - f
                                };
                                b += s.arcToPoint(T, a, r, !0), b += s.lineTo({
                                    x: T.x,
                                    y: T.y + f
                                }), b += s.arcToPoint({
                                    x: w.x,
                                    y: w.y + f
                                }, a, r), b += s.lineTo(w), b += "z", w = T
                            } w = g, P = e;
                        for (O = 0; O < x; O++)
                            if ((P += _) > 0 && P < 180) {
                                b += s.moveTo(w);
                                T = {
                                    x: o.cos(P) * n,
                                    y: o.sin(P) * u - f
                                };
                                b += s.lineTo({
                                    x: w.x,
                                    y: w.y + f
                                }), b += s.arcToPoint({
                                    x: T.x,
                                    y: T.y + f
                                }, n, u, !0), b += s.lineTo(T), b += s.arcToPoint(w, n, u), b += "z", w = T
                            } else {
                                b += s.moveTo(w);
                                T = {
                                    x: o.cos(P) * n,
                                    y: o.sin(P) * u - f
                                };
                                b += s.arcToPoint(T, n, u, !0), b += s.lineTo({
                                    x: T.x,
                                    y: T.y + f
                                }), b += s.arcToPoint({
                                    x: w.x,
                                    y: w.y + f
                                }, n, u), b += s.lineTo(w), b += "z", w = T
                            } this.edge.path = b, this.sideA.path = s.moveTo(h) + s.lineTo(c) + s.lineTo(y) + s.lineTo(g) + s.closePath(), this.sideB.path = s.moveTo(p) + s.lineTo(d) + s.lineTo(v) + s.lineTo(m) + s.closePath(), this.startAngle < 90 ? this.sideA.toBack() : this.sideA.toFront(), this.startAngle + this.arc > 90 ? this.sideB.toBack() : this.sideB.toFront(), this.slice.dy = -f
                    } else this.sideA.hide(0), this.sideB.hide(0), this.edge.hide(0)
                }, Object.defineProperty(e.prototype, "depth", {
                    get: function() {
                        return this.getPropertyValue("depth")
                    },
                    set: function(t) {
                        this.setPropertyValue("depth", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "angle", {
                    get: function() {
                        var t = this.getPropertyValue("angle");
                        return l.isNumber(t) || (t = 0), t
                    },
                    set: function(t) {
                        this.setPropertyValue("angle", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "radiusY", {
                    get: function() {
                        var t = this.getPropertyValue("radiusY");
                        return l.isNumber(t) || (t = this.radius - this.radius * this.angle / 90), t
                    },
                    set: function(t) {
                        this.setPropertyValue("radiusY", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.edge.copyFrom(e.edge), this.sideA.copyFrom(e.sideA), this.sideB.copyFrom(e.sideB)
                }, e
            }(r.a)
    },
    ncT3: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("Vs7R"),
            o = i("Ybtf"),
            s = i("/e9j"),
            l = i("tjMS"),
            u = i("Qkdp"),
            h = i("hGwe"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Cone", e.angle = 30, e.radius = Object(l.c)(100), e.topRadius = Object(l.c)(100), e.top = e.createChild(o.a), e.top.shouldClone = !1, e.bottom = e.createChild(o.a), e.bottom.shouldClone = !1, e.body = e.createChild(a.a), e.body.shouldClone = !1, e.body.setElement(e.paper.add("path")), e.layout = "none", e.bodyFillModifier = new s.a, e.bodyFillModifier.lightnesses = [0, -.25, 0], e.body.fillModifier = e.bodyFillModifier, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this), u.copyProperties(this, this.top, a.b), u.copyProperties(this, this.bottom, a.b), u.copyProperties(this, this.body, a.b);
                    var e, i, n, r = this.innerWidth,
                        o = this.innerHeight,
                        s = this.bottom,
                        l = this.top,
                        c = this.angle;
                    "horizontal" == this.orientation ? (e = o / 2, s.y = o / 2, l.y = o / 2, l.x = r, i = (90 - c) / 90, n = 0, this.bodyFillModifier.gradient.rotation = 90) : (i = 0, n = (90 - c) / 90, e = r / 2, s.y = o, s.x = r / 2, l.x = r / 2, this.bodyFillModifier.gradient.rotation = 0);
                    var p, d = this.radius.value * e,
                        f = this.topRadius.value * e;
                    s.radius = d - d * i, s.radiusY = d - d * n, l.radius = f - f * i, l.radiusY = f - f * n, p = "horizontal" == this.orientation ? h.moveTo({
                        x: 0,
                        y: o / 2 - s.radiusY
                    }) + h.arcTo(-90, -180, s.radius, s.radiusY) + h.lineTo({
                        x: r,
                        y: o / 2 + l.radiusY
                    }) + h.arcTo(90, 180, l.radius, l.radiusY) + h.closePath() : h.moveTo({
                        x: r / 2 - l.radius,
                        y: 0
                    }) + h.arcTo(180, -180, l.radius, l.radiusY) + h.lineTo({
                        x: r / 2 + s.radius,
                        y: o
                    }) + h.arcTo(0, 180, s.radius, s.radiusY) + h.closePath(), this.body.path = p
                }, Object.defineProperty(e.prototype, "angle", {
                    get: function() {
                        return this.getPropertyValue("angle")
                    },
                    set: function(t) {
                        this.setPropertyValue("angle", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "radius", {
                    get: function() {
                        return this.getPropertyValue("radius")
                    },
                    set: function(t) {
                        this.setPropertyValue("radius", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "topRadius", {
                    get: function() {
                        return this.getPropertyValue("topRadius")
                    },
                    set: function(t) {
                        this.setPropertyValue("topRadius", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "orientation", {
                    get: function() {
                        return this.getPropertyValue("orientation")
                    },
                    set: function(t) {
                        this.setPropertyValue("orientation", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a)
    },
    ncgu: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return s
        }), i.d(e, "a", function() {
            return l
        });
        var n = i("m4/l"),
            r = i("pR7v"),
            a = i("aCit"),
            o = i("Gg2j"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "DurationAxisDataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e
            }(r.b),
            l = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._baseUnit = "second", e.className = "DurationAxis", e.setPropertyValue("maxZoomFactor", 1e6), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.formatLabel = function(t, e) {
                    return this.durationFormatter.format(t, e || this.axisDurationFormat)
                }, e.prototype.adjustMinMax = function(e, i, r, a, s) {
                    var l, u, h, c = this.baseUnit;
                    if (this.setPropertyValue("maxPrecision", 0), "millisecond" == c || "second" == c || "minute" == c || "hour" == c) {
                        a <= 1 && (a = 1), a = Math.round(a);
                        var p = e,
                            d = i;
                        0 === r && (r = Math.abs(i));
                        var f, g = [60, 30, 20, 15, 10, 2, 1],
                            y = 1;
                        "hour" == c && (g = [24, 12, 6, 4, 2, 1]);
                        try {
                            for (var m = Object(n.g)(g), v = m.next(); !v.done; v = m.next()) {
                                var b = v.value;
                                if (r / b > a) {
                                    y = b;
                                    break
                                }
                            }
                        } catch (t) {
                            l = {
                                error: t
                            }
                        } finally {
                            try {
                                v && !v.done && (u = m.return) && u.call(m)
                            } finally {
                                if (l) throw l.error
                            }
                        }
                        var x = Math.ceil((i - e) / y / a),
                            _ = Math.log(Math.abs(x)) * Math.LOG10E,
                            P = Math.pow(10, Math.floor(_)) / 10,
                            w = x / P;
                        f = y * (x = o.closest(g, w) * P), this.durationFormatter.getValueUnit(f, this.baseUnit), e = Math.floor(e / f) * f, i = Math.ceil(i / f) * f, s && ((e -= f) < 0 && p >= 0 && (e = 0), (i += f) > 0 && d <= 0 && (i = 0)), h = {
                            min: e,
                            max: i,
                            step: f
                        }
                    } else h = t.prototype.adjustMinMax.call(this, e, i, r, a, s);
                    return this.axisDurationFormat = this.durationFormatter.getFormat(h.step, h.max, this.baseUnit), h
                }, Object.defineProperty(e.prototype, "tooltipDurationFormat", {
                    get: function() {
                        return this._tooltipDurationFormat
                    },
                    set: function(t) {
                        this._tooltipDurationFormat = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getTooltipText = function(t) {
                    var e = o.round(this.positionToValue(t), this._stepDecimalPlaces),
                        i = this.formatLabel(e, this.tooltipDurationFormat);
                    return this._adapterO ? this._adapterO.apply("getTooltipText", i) : i
                }, Object.defineProperty(e.prototype, "baseUnit", {
                    get: function() {
                        return this._baseUnit
                    },
                    set: function(t) {
                        this._baseUnit != t && (this._baseUnit = t, this.durationFormatter.baseUnit = t, this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.baseUnit = e.baseUnit
                }, e
            }(r.a);
        a.c.registeredClasses.DurationAxis = l, a.c.registeredClasses.DurationAxisDataItem = s
    },
    nj15: function(t, e, i) {
        i("mF5+"), i("jgaU");
        var n = i("lCww");
        t.exports = n
    },
    ntrI: function(t, e, i) {
        i("0sYB")({
            global: !0
        }, {
            globalThis: i("vfdp")
        })
    },
    o0Lc: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        }), i.d(e, "b", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("hD5A"),
            a = i("hJ5i"),
            o = i("/9XX"),
            s = i("Mtpk"),
            l = function() {
                function t() {
                    this._listeners = [], this._killed = [], this._disabled = {}, this._iterating = 0, this._enabled = !0, this._disposed = !1
                }
                return t.prototype.isDisposed = function() {
                    return this._disposed
                }, t.prototype.dispose = function() {
                    if (!this._disposed) {
                        this._disposed = !0;
                        var t = this._listeners;
                        this._iterating = 1, this._listeners = null, this._disabled = null;
                        try {
                            a.each(t, function(t) {
                                t.disposer.dispose()
                            })
                        } finally {
                            this._killed = null, this._iterating = null
                        }
                    }
                }, t.prototype.hasListeners = function() {
                    return 0 !== this._listeners.length
                }, t.prototype.hasListenersByType = function(t) {
                    return a.any(this._listeners, function(e) {
                        return (null === e.type || e.type === t) && !e.killed
                    })
                }, t.prototype.enable = function() {
                    this._enabled = !0
                }, t.prototype.disable = function() {
                    this._enabled = !1
                }, t.prototype.enableType = function(t) {
                    delete this._disabled[t]
                }, t.prototype.disableType = function(t, e) {
                    void 0 === e && (e = 1 / 0), this._disabled[t] = e
                }, t.prototype._removeListener = function(t) {
                    if (0 === this._iterating) {
                        var e = this._listeners.indexOf(t);
                        if (-1 === e) throw new Error("Invalid state: could not remove listener");
                        this._listeners.splice(e, 1)
                    } else this._killed.push(t)
                }, t.prototype._removeExistingListener = function(t, e, i, n) {
                    if (this._disposed) throw new Error("EventDispatcher is disposed");
                    this._eachListener(function(r) {
                        r.once !== t || r.type !== e || null != i && r.callback !== i || r.context !== n || r.disposer.dispose()
                    })
                }, t.prototype.isEnabled = function(t) {
                    if (this._disposed) throw new Error("EventDispatcher is disposed");
                    return this._enabled && this._listeners.length > 0 && this.hasListenersByType(t) && null == this._disabled[t]
                }, t.prototype.has = function(t, e, i) {
                    return -1 !== a.findIndex(this._listeners, function(n) {
                        return !0 !== n.once && n.type === t && (null == e || n.callback === e) && n.context === i
                    })
                }, t.prototype._shouldDispatch = function(t) {
                    if (this._disposed) throw new Error("EventDispatcher is disposed");
                    var e = this._disabled[t];
                    return s.isNumber(e) ? (e <= 1 ? delete this._disabled[t] : --this._disabled[t], !1) : this._enabled
                }, t.prototype._eachListener = function(t) {
                    var e = this;
                    ++this._iterating;
                    try {
                        a.each(this._listeners, t)
                    } finally {
                        --this._iterating, 0 === this._iterating && 0 !== this._killed.length && (a.each(this._killed, function(t) {
                            e._removeListener(t)
                        }), this._killed.length = 0)
                    }
                }, t.prototype.dispatchImmediately = function(t, e) {
                    this._shouldDispatch(t) && this._eachListener(function(i) {
                        i.killed || null !== i.type && i.type !== t || i.dispatch(t, e)
                    })
                }, t.prototype.dispatch = function(t, e) {
                    this._shouldDispatch(t) && this._eachListener(function(i) {
                        i.killed || null !== i.type && i.type !== t || o.e(function() {
                            i.killed || i.dispatch(t, e)
                        })
                    })
                }, t.prototype._on = function(t, e, i, n, a, o) {
                    var s = this;
                    if (this._disposed) throw new Error("EventDispatcher is disposed");
                    this._removeExistingListener(t, e, i, n);
                    var l = {
                        type: e,
                        callback: i,
                        context: n,
                        shouldClone: a,
                        dispatch: o,
                        killed: !1,
                        once: t,
                        disposer: new r.b(function() {
                            l.killed = !0, s._removeListener(l)
                        })
                    };
                    return this._listeners.push(l), l
                }, t.prototype.onAll = function(t, e, i) {
                    return void 0 === i && (i = !0), this._on(!1, null, t, e, i, function(i, n) {
                        return t.call(e, i, n)
                    }).disposer
                }, t.prototype.on = function(t, e, i, n) {
                    return void 0 === n && (n = !0), this._on(!1, t, e, i, n, function(t, n) {
                        return e.call(i, n)
                    }).disposer
                }, t.prototype.once = function(t, e, i, n) {
                    void 0 === n && (n = !0);
                    var r = this._on(!0, t, e, i, n, function(t, n) {
                        r.disposer.dispose(), e.call(i, n)
                    });
                    return r.disposer
                }, t.prototype.off = function(t, e, i) {
                    this._removeExistingListener(!1, t, e, i)
                }, t.prototype.copyFrom = function(t) {
                    var e = this;
                    if (this._disposed) throw new Error("EventDispatcher is disposed");
                    if (t === this) throw new Error("Cannot copyFrom the same TargetedEventDispatcher");
                    a.each(t._listeners, function(t) {
                        !t.killed && t.shouldClone && (null === t.type ? e.onAll(t.callback, t.context) : t.once ? e.once(t.type, t.callback, t.context) : e.on(t.type, t.callback, t.context))
                    })
                }, t
            }(),
            u = function(t) {
                function e(e) {
                    var i = t.call(this) || this;
                    return i.target = e, i
                }
                return Object(n.c)(e, t), e.prototype.copyFrom = function(t) {
                    var e = this;
                    if (this._disposed) throw new Error("EventDispatcher is disposed");
                    if (t === this) throw new Error("Cannot copyFrom the same TargetedEventDispatcher");
                    a.each(t._listeners, function(i) {
                        i.context !== t.target && !i.killed && i.shouldClone && (null === i.type ? e.onAll(i.callback, i.context) : i.once ? e.once(i.type, i.callback, i.context) : e.on(i.type, i.callback, i.context))
                    })
                }, e
            }(l)
    },
    "o3G/": function(t, e, i) {
        var n = i("2xmP");
        t.exports = Array.isArray || function(t) {
            return "Array" == n(t)
        }
    },
    oC3T: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("1yyj"),
            o = i("Gg2j"),
            s = i("0FpR"),
            l = i("Mtpk"),
            u = function(t) {
                function e(e) {
                    var i = t.call(this) || this;
                    return i._bboxes = [], i.morphDuration = 800, i.morphEasing = s.cubicOut, i.morphToSingle = !0, i.scaleRatio = 1, i.className = "Morpher", i.morphable = e, i.applyTheme(), i
                }
                return Object(n.c)(e, t), e.prototype.morphToPolygon = function(t, e, i) {
                    var n = this.morphable.currentPoints;
                    if (n && t) {
                        this.sortPoints(n), this.sortPoints(t), this._morphFromPointsReal = [], this._morphToPointsReal = [], l.hasValue(e) || (e = this.morphDuration), l.hasValue(i) || (i = this.morphEasing), this._morphFromPointsReal = this.normalizePoints(t, n), this._morphToPointsReal = this.normalizePoints(n, t), this.morphable.currentPoints = this._morphFromPointsReal;
                        var r = new a.a(this, {
                            property: "morphProgress",
                            from: 0,
                            to: 1
                        }, e, i);
                        return this._disposers.push(r), r.start(), r
                    }
                }, e.prototype.normalizePoints = function(t, e) {
                    for (var i = 0, n = t.length; i < n; i++) {
                        var r = t[i][0],
                            a = t[i][1],
                            s = l.getValue(o.getBBox(r)),
                            u = s.x + s.width,
                            h = s.y + s.height;
                        if (e[i] || (e[i] = []), r && !e[i][0] && (e[i][0] = [{
                                x: u,
                                y: h
                            }, {
                                x: u,
                                y: h
                            }]), e[i][0]) {
                            e[i][0] = this.addPoints(e[i][0], r.length);
                            for (var c = 1 / 0, p = 0, d = 0; d < e[i][0].length; d++) {
                                var f = o.getDistance(e[i][0][d], r[0]);
                                f < c && (p = d, c = f)
                            }
                            var g = e[i][0].slice(0, p),
                                y = e[i][0].slice(p);
                            e[i][0] = y.concat(g)
                        }
                        a && (e[i][1] || (e[i][1] = [{
                            x: u,
                            y: h
                        }, {
                            x: u,
                            y: h
                        }]), e[i][1] = this.addPoints(e[i][1], a.length))
                    }
                    return e
                }, e.prototype.sortPoints = function(t) {
                    t.sort(function(t, e) {
                        var i = l.getValue(o.getBBox(t[0])),
                            n = l.getValue(o.getBBox(e[0]));
                        return i.width * i.height > n.width * n.height ? -1 : 1
                    });
                    for (var e = [], i = 0, n = t.length; i < n; i++) {
                        var r = t[i][0];
                        r && e.push(l.getValue(o.getBBox(r)))
                    }
                    return o.getCommonRectangle(e)
                }, e.prototype.morphToCircle = function(t, e, i) {
                    var n = this.morphable.points,
                        r = this.sortPoints(n);
                    this._morphFromPointsReal = [], this._morphToPointsReal = [], l.hasValue(e) || (e = this.morphDuration), l.hasValue(i) || (i = this.morphEasing);
                    for (var s = 0, u = n.length; s < u; s++) {
                        var h = n[s][0],
                            c = n[s][1];
                        if (this._morphFromPointsReal[s] = [], this._morphToPointsReal[s] = [], h) {
                            var p = h,
                                d = h,
                                f = l.getValue(o.getBBox(d));
                            this.morphToSingle && (f = l.getValue(r));
                            var g = f.x + f.width / 2,
                                y = f.y + f.height / 2,
                                m = t;
                            l.isNumber(m) || (m = Math.min(f.width / 2, f.height / 2)), p = [];
                            var v = o.getAngle({
                                    x: g,
                                    y: y
                                }, h[0]),
                                b = 100;
                            h.length > b && (b = h.length);
                            for (var x = 360 / ((b = (d = this.addPoints(h, b)).length) - 1), _ = 0; _ < b; _++) {
                                var P = x * _ + v,
                                    w = {
                                        x: g + m * o.cos(P),
                                        y: y + m * o.sin(P)
                                    };
                                p[_] = w
                            }
                            if (c && c.length > 0)
                                for (var O = 0, T = c.length; O < T; O++) p.push({
                                    x: g,
                                    y: y
                                });
                            this._morphFromPointsReal[s][0] = d, this._morphToPointsReal[s][0] = p
                        }
                    }
                    this.morphable.currentPoints = this._morphFromPointsReal;
                    var S = new a.a(this, {
                        property: "morphProgress",
                        from: 0,
                        to: 1
                    }, e, i);
                    return this._disposers.push(S), S.start(), S
                }, e.prototype.addPoints = function(t, e) {
                    for (var i = Math.round(e / t.length), n = [], r = 0, a = t.length; r < a; r++) {
                        var o = t[r],
                            s = void 0;
                        s = r == t.length - 1 ? t[0] : t[r + 1], n.push(o);
                        for (var l = 1; l < i; l++) {
                            var u = l / i,
                                h = {
                                    x: o.x + (s.x - o.x) * u,
                                    y: o.y + (s.y - o.y) * u
                                };
                            n.push(h)
                        }
                        n.length + t.length - r == e && (i = 0)
                    }
                    if (n.length < e && t.length > 0) {
                        var c = t[t.length - 1];
                        for (l = n.length; l < e; l++) n.push({
                            x: c.x,
                            y: c.y
                        })
                    }
                    return n
                }, e.prototype.morphToRectangle = function(t, e, i, n) {
                    var r = this.morphable.points;
                    this.sortPoints(r), this._morphFromPointsReal = [], this._morphToPointsReal = [], l.hasValue(i) || (i = this.morphDuration), l.hasValue(n) || (n = this.morphEasing);
                    for (var o = 0, s = r.length; o < s; o++) {
                        var u = r[o][0],
                            h = r[o][1];
                        if (this._morphFromPointsReal[o] = [], this._morphToPointsReal[o] = [], u) {
                            var c = u,
                                p = u,
                                d = this._bboxes[o];
                            this.morphToSingle;
                            var f = d.x,
                                g = d.y,
                                y = t,
                                m = e;
                            if (l.isNumber(y) || (y = d.width), l.isNumber(m) || (m = d.height), c = [{
                                    x: f,
                                    y: g
                                }, {
                                    x: f + y,
                                    y: g
                                }, {
                                    x: f + y,
                                    y: g + m
                                }, {
                                    x: f,
                                    y: g + m
                                }], c = this.addPoints(c, u.length), u.length < 4)
                                for (var v = u.length; v < 4; v++) c.push({
                                    x: u[v].x,
                                    y: u[v].y
                                });
                            if (h && h.length > 0)
                                for (var b = d.x + d.width / 2, x = d.y + d.height / 2, _ = 0, P = h.length; _ < P; _++) c.push({
                                    x: b,
                                    y: x
                                });
                            this._morphFromPointsReal[o][0] = p, this._morphToPointsReal[o][0] = c
                        }
                    }
                    this.morphable.currentPoints = this._morphFromPointsReal;
                    var w = new a.a(this, {
                        property: "morphProgress",
                        from: 0,
                        to: 1
                    }, i, n);
                    return this._disposers.push(w), w.start(), w
                }, Object.defineProperty(e.prototype, "morphProgress", {
                    get: function() {
                        return this._morphProgress
                    },
                    set: function(t) {
                        this._morphProgress = t;
                        var e = [];
                        if (null != t) {
                            var i = this._morphFromPointsReal,
                                n = this._morphToPointsReal;
                            if (null != i && null != n)
                                for (var r = 0, a = i.length; r < a; r++) {
                                    var o = [];
                                    e.push(o);
                                    var s = i[r][0],
                                        l = i[r][1],
                                        u = n[r][0],
                                        h = n[r][1];
                                    if (s && s.length > 0 && u && u.length > 0) {
                                        for (var c = [], p = 0, d = s.length; p < d; p++) {
                                            var f = s[p],
                                                g = u[p],
                                                y = {
                                                    x: f.x + (g.x * this.scaleRatio - f.x) * t,
                                                    y: f.y + (g.y * this.scaleRatio - f.y) * t
                                                };
                                            c.push(y)
                                        }
                                        o[0] = c
                                    }
                                    if (l && l.length > 0 && h && h.length > 0) {
                                        for (var m = [], v = 0, b = l.length; v < b; v++) {
                                            f = l[v], g = h[v], y = {
                                                x: f.x + (g.x * this.scaleRatio - f.x) * t,
                                                y: f.y + (g.y * this.scaleRatio - f.y) * t
                                            };
                                            m.push(y)
                                        }
                                        o[1] = m
                                    }
                                }
                        }
                        this.morphable.currentPoints = e
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.morphBack = function(t, e) {
                    this._morphToPointsReal = this._morphFromPointsReal, this._morphFromPointsReal = this.morphable.currentPoints, l.hasValue(t) || (t = this.morphDuration), l.hasValue(e) || (e = this.morphEasing);
                    var i = new a.a(this, {
                        property: "morphProgress",
                        from: 0,
                        to: 1
                    }, t, e);
                    return this._disposers.push(i), i.start(), i
                }, Object.defineProperty(e.prototype, "animations", {
                    get: function() {
                        return this._animations || (this._animations = [], this._disposers.push(new a.b(this._animations))), this._animations
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a)
    },
    oRlD: function(t, e, i) {
        var n = {};
        n[i("KslR")("toStringTag")] = "z", t.exports = "[object z]" === String(n)
    },
    oa9N: function(t, e, i) {
        "use strict";
        var n = i("UseD").exportTypedArrayMethod,
            r = i("6aQQ"),
            a = i("vfdp").Uint8Array,
            o = a && a.prototype || {},
            s = [].toString,
            l = [].join;
        r(function() {
            s.call({})
        }) && (s = function() {
            return l.call(this)
        });
        var u = o.toString != s;
        n("toString", s, u)
    },
    "ob/C": function(t, e, i) {
        var n = i("k2B3"),
            r = i("NK3S"),
            a = i("KslR")("toPrimitive"),
            o = Date.prototype;
        a in o || n(o, a, r)
    },
    ocaP: function(t, e, i) {
        var n = i("0sYB"),
            r = Math.atanh,
            a = Math.log;
        n({
            target: "Math",
            stat: !0,
            forced: !(r && 1 / r(-0) < 0)
        }, {
            atanh: function(t) {
                return 0 == (t = +t) ? t : a((1 + t) / (1 - t)) / 2
            }
        })
    },
    oe0p: function(t, e, i) {
        var n = i("0sYB"),
            r = Math.hypot,
            a = Math.abs,
            o = Math.sqrt;
        n({
            target: "Math",
            stat: !0,
            forced: !!r && r(1 / 0, NaN) !== 1 / 0
        }, {
            hypot: function(t, e) {
                for (var i, n, r = 0, s = 0, l = arguments.length, u = 0; s < l;) u < (i = a(arguments[s++])) ? (r = r * (n = u / i) * n + 1, u = i) : r += i > 0 ? (n = i / u) * n : i;
                return u === 1 / 0 ? 1 / 0 : u * o(r)
            }
        })
    },
    ohjg: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("P7v+"),
            o = i("1yyj"),
            s = i("vMqJ"),
            l = i("Qkdp"),
            u = i("Wglt"),
            h = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.properties = {}, e.isTemplate = !1, e._scale = 1, e._nonScaling = !0, e.className = "Filter", e.filterPrimitives = new s.b, e.filterPrimitives.events.on("inserted", function(t) {
                        e._disposers.push(t.newValue)
                    }), e.width = 120, e.height = 120, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.appendPrimitives = function(t) {
                    u.each(this.filterPrimitives.iterator(), function(e) {
                        t.add(e)
                    })
                }, e.prototype.animate = function(t, e, i) {
                    return new o.a(this, t, e, i).start()
                }, Object.defineProperty(e.prototype, "width", {
                    get: function() {
                        return this.properties.width
                    },
                    set: function(t) {
                        this.properties.width = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "height", {
                    get: function() {
                        return this.properties.height
                    },
                    set: function(t) {
                        this.properties.height = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    var i = this;
                    t.prototype.copyFrom.call(this, e), l.each(e.properties, function(t, e) {
                        i[t] = e
                    })
                }, Object.defineProperty(e.prototype, "paper", {
                    get: function() {
                        return this._paper ? this._paper : Object(a.b)()
                    },
                    set: function(t) {
                        this._paper != t && (this._paper = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "animations", {
                    get: function() {
                        return this._animations || (this._animations = [], this._disposers.push(new o.b(this._animations))), this._animations
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "scale", {
                    get: function() {
                        return this._scale
                    },
                    set: function(t) {
                        this._scale = t, this.updateScale()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.updateScale = function() {}, Object.defineProperty(e.prototype, "nonScaling", {
                    get: function() {
                        return this._nonScaling
                    },
                    set: function(t) {
                        this._nonScaling = t, t || (this._scale = 1), this.updateScale()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "sprite", {
                    set: function(t) {
                        this.setSprite(t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setSprite = function(t) {
                    this._sprite && this._sprite != t && this._sprite.filters.removeValue(this), this._sprite = t
                }, e
            }(r.a)
    },
    ojxk: function(t, e, i) {
        var n = i("9XRO"),
            r = i("tHyI"),
            a = i("Y8n3"),
            o = function(t) {
                return function(e, i, o) {
                    var s, l = n(e),
                        u = r(l.length),
                        h = a(o, u);
                    if (t && i != i) {
                        for (; u > h;)
                            if ((s = l[h++]) != s) return !0
                    } else
                        for (; u > h; h++)
                            if ((t || h in l) && l[h] === i) return t || h || 0;
                    return !t && -1
                }
            };
        t.exports = {
            includes: o(!0),
            indexOf: o(!1)
        }
    },
    olmY: function(t, e, i) {
        var n = i("0sYB"),
            r = i("3weC"),
            a = i("Ox5T");
        n({
            target: "Reflect",
            stat: !0,
            sham: !i("QKtu")
        }, {
            getPrototypeOf: function(t) {
                return a(r(t))
            }
        })
    },
    onIP: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("X/sl").findIndex,
            a = i("0FA2"),
            o = !0,
            s = i("J+FZ")("findIndex");
        "findIndex" in [] && Array(1).findIndex(function() {
            o = !1
        }), n({
            target: "Array",
            proto: !0,
            forced: o || !s
        }, {
            findIndex: function(t) {
                return r(this, t, arguments.length > 1 ? arguments[1] : void 0)
            }
        }), a("findIndex")
    },
    onRi: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("exNg"),
            a = i("4BZe"),
            o = i("ScUe"),
            s = i("6aQQ"),
            l = 1..toFixed,
            u = Math.floor,
            h = function(t, e, i) {
                return 0 === e ? i : e % 2 == 1 ? h(t, e - 1, i * t) : h(t * t, e / 2, i)
            };
        n({
            target: "Number",
            proto: !0,
            forced: l && ("0.000" !== 8e-5.toFixed(3) || "1" !== .9.toFixed(0) || "1.25" !== 1.255.toFixed(2) || "1000000000000000128" !== (0xde0b6b3a7640080).toFixed(0)) || !s(function() {
                l.call({})
            })
        }, {
            toFixed: function(t) {
                var e, i, n, s, l = a(this),
                    c = r(t),
                    p = [0, 0, 0, 0, 0, 0],
                    d = "",
                    f = "0",
                    g = function(t, e) {
                        for (var i = -1, n = e; ++i < 6;) n += t * p[i], p[i] = n % 1e7, n = u(n / 1e7)
                    },
                    y = function(t) {
                        for (var e = 6, i = 0; --e >= 0;) i += p[e], p[e] = u(i / t), i = i % t * 1e7
                    },
                    m = function() {
                        for (var t = 6, e = ""; --t >= 0;)
                            if ("" !== e || 0 === t || 0 !== p[t]) {
                                var i = String(p[t]);
                                e = "" === e ? i : e + o.call("0", 7 - i.length) + i
                            } return e
                    };
                if (c < 0 || c > 20) throw RangeError("Incorrect fraction digits");
                if (l != l) return "NaN";
                if (l <= -1e21 || l >= 1e21) return String(l);
                if (l < 0 && (d = "-", l = -l), l > 1e-21)
                    if (i = (e = function(t) {
                            for (var e = 0, i = t; i >= 4096;) e += 12, i /= 4096;
                            for (; i >= 2;) e += 1, i /= 2;
                            return e
                        }(l * h(2, 69, 1)) - 69) < 0 ? l * h(2, -e, 1) : l / h(2, e, 1), i *= 4503599627370496, (e = 52 - e) > 0) {
                        for (g(0, i), n = c; n >= 7;) g(1e7, 0), n -= 7;
                        for (g(h(10, n, 1), 0), n = e - 1; n >= 23;) y(1 << 23), n -= 23;
                        y(1 << n), g(1, 1), y(2), f = m()
                    } else g(0, i), g(1 << -e, 0), f = m() + o.call("0", c);
                return f = c > 0 ? d + ((s = f.length) <= c ? "0." + o.call("0", c - s) + f : f.slice(0, s - c) + "." + f.slice(s - c)) : d + f
            }
        })
    },
    oq5N: function(t, e, i) {
        i("eygo")("Int32", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        })
    },
    oxAz: function(t, e, i) {
        var n = i("sxi3");
        t.exports = function(t, e) {
            var i = n(t);
            if (i % e) throw RangeError("Wrong offset");
            return i
        }
    },
    oxU5: function(t, e, i) {
        var n = i("0sYB"),
            r = i("Y8n3"),
            a = String.fromCharCode,
            o = String.fromCodePoint;
        n({
            target: "String",
            stat: !0,
            forced: !!o && 1 != o.length
        }, {
            fromCodePoint: function(t) {
                for (var e, i = [], n = arguments.length, o = 0; n > o;) {
                    if (e = +arguments[o++], r(e, 1114111) !== e) throw RangeError(e + " is not a valid code point");
                    i.push(e < 65536 ? a(e) : a(55296 + ((e -= 65536) >> 10), e % 1024 + 56320))
                }
                return i.join("")
            }
        })
    },
    p9TX: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return f
        });
        var n = i("m4/l"),
            r = i("C6dT"),
            a = i("aCit"),
            o = i("MipW"),
            s = i("hD5A"),
            l = i("MIZb"),
            u = i("Gg2j"),
            h = i("v9UT"),
            c = i("Mtpk"),
            p = i("58Sn"),
            d = i("TGuK"),
            f = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.isOversized = !1, e.className = "Label", e.fill = (new l.a).getFor("text"), e.wrap = !1, e.truncate = !1, e.fullWords = !0, e.ellipsis = "â€¦", e.textAlign = "start", e.textValign = "top", e.layout = "absolute", e.baseLineRatio = -.27, e._positionPrecision = 1, e.events.on("maxsizechanged", function() {
                        e.inited && e.handleMaxSize()
                    }, e, !1), e.events.once("validated", e.handleValidate, e, !1), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.afterDraw = function() {
                    t.prototype.afterDraw.call(this), this.validatePosition()
                }, e.prototype.setPaper = function(e) {
                    var i = t.prototype.setPaper.call(this, e);
                    return i && this.hardInvalidate(), i
                }, e.prototype.handleValidate = function() {
                    !this.currentText && !this.text || 0 != this.bbox.width && 0 != this.bbox.height || a.c.events.once("exitframe", this.hardInvalidate, this)
                }, e.prototype.handleMaxSize = function() {
                    this.bbox.width > this.availableWidth || this.bbox.width < this.availableWidth && (this.isOversized || this.truncate) || this.bbox.height > this.availableHeight || this.bbox.height < this.availableHeight && this.isOversized ? this.invalidate() : this.alignSVGText()
                }, e.prototype.arrange = function() {}, e.prototype.updateCurrentText = function() {
                    var t, e;
                    h.isNotEmpty(this.html) && this.paper.supportsForeignObject() ? (t = "html", e = this.html) : (t = "svg", e = this.text), c.isObject(e) && (e = e.toString()), c.hasValue(e) && "" !== e && (e = this.populateString(e, this.dataItem)), "html" == t ? this._adapterO && (e = this._adapterO.apply("htmlOutput", e)) : this._adapterO && (e = this._adapterO.apply("textOutput", e));
                    var i = e != this.currentText || t != this._currentFormat;
                    return this.currentText = e, this._currentFormat = t, i
                }, e.prototype.hardInvalidate = function() {
                    this._prevStatus = "", this.invalidate()
                }, e.prototype.getLineBBox = function(t) {
                    var e = t && t.element,
                        i = e && e.node;
                    i && i.parentNode && (t.bbox = e.getBBox())
                }, e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.bbox.width,
                        i = this.bbox.height,
                        n = this.topParent;
                    if (!n || n.maxWidth && n.maxHeight) {
                        var r = u.max(this.availableWidth - this.pixelPaddingLeft - this.pixelPaddingRight, 0),
                            a = u.max(this.availableHeight - this.pixelPaddingTop - this.pixelPaddingBottom, 0),
                            s = a + "," + r + this.wrap + this.truncate + this.fullWords + this.rtl + this.ellipsis;
                        if (this.updateCurrentText() || !this.inited || this._prevStatus != s) {
                            this._measuredWidth = 0, this._measuredHeight = 0, this.isOversized = !1;
                            var l = this._currentFormat,
                                p = this.currentText;
                            if (c.hasValue(p) && "" != p) {
                                var d = p.split("\n");
                                this._prevStatus = s, this.textAlign = this.textAlign;
                                var f = this.group.getAttr("display");
                                if ("none" == f && this.group.removeAttr("display"), this.textPathElement && this.textPathElement.removeChildren(), "svg" === l) {
                                    this.element.removeAttr("display");
                                    var g = this.element;
                                    this.resetBBox();
                                    for (var y = 0, m = "", v = 0; v < d.length; v++) {
                                        var b = d[v];
                                        if ("" != b) {
                                            var x = Object(o.b)().chunk(b, null, this.ignoreFormatting),
                                                _ = 0,
                                                P = !0,
                                                w = !1,
                                                O = this.getLineInfo(v);
                                            O ? (O.text = "", O.element.textContent = "") : (O = {
                                                text: "",
                                                element: this.getSVGLineElement("", 0),
                                                complex: !1
                                            }, g.add(O.element)), O.element.removeAttr("display"), O.element.removeChildren(), this.textPathElement && O.element.add(this.textPathElement);
                                            for (var T = 0; T < x.length; T++) {
                                                T && (O.complex = !0);
                                                var S = x[T];
                                                if ("format" === S.type) m = S.text;
                                                else {
                                                    if (w) continue;
                                                    O.text = S.text, O.style = Object(o.b)().translateStyleShortcuts(m);
                                                    var C = this.getSvgElement(O.text, O.style);
                                                    if (this.textPathElement ? this.textPathElement.add(C) : O.element.add(C), this.getLineBBox(O), O.bbox.width = Math.ceil(O.bbox.width), _ < O.bbox.height && (_ = O.bbox.height), (this.wrap || this.truncate) && O.bbox.width > r) {
                                                        this.isOversized = !0;
                                                        var I = O.element.textContent,
                                                            k = O.bbox.width / I.length,
                                                            D = u.min(Math.ceil((O.bbox.width - r) / k), I.length);
                                                        if (this.truncate) {
                                                            var j = !1,
                                                                V = O.element.node;
                                                            if (V && V.childNodes)
                                                                for (var A = O.element.node.childNodes.length - 1; A >= 0; A--) {
                                                                    var M = O.element.node.childNodes[A];
                                                                    if (j && O.bbox.width <= r && (M.textContent += " " + this.ellipsis, O.bbox = O.element.getBBox(), O.bbox.width = Math.floor(O.bbox.width), O.bbox.width <= r)) break;
                                                                    j = !1;
                                                                    var F = M.textContent;
                                                                    for (I = O.element.textContent, D = u.min(Math.ceil((O.bbox.width - r) / k), I.length); O.bbox.width > r && D <= I.length && D > 0;) {
                                                                        (N = u.max(I.length - D - this.ellipsis.length, 1)) <= 1 && (D = 0, A > 0 && (j = !0, O.element.node.removeChild(M))), (F = h.truncateWithEllipsis(F, N, this.ellipsis, this.fullWords, this.rtl)).length > N && this.fullWords && (F = h.truncateWithEllipsis(F, N, this.ellipsis, !1, this.rtl)), M.textContent = F, O.bbox = O.element.getBBox(), O.bbox.width = Math.floor(O.bbox.width), D = Math.ceil(1.1 * D)
                                                                    }
                                                                    w = !0
                                                                }
                                                        } else {
                                                            if (O.element.node) {
                                                                for (var E = O.element.node.lastChild, R = void 0; O.bbox.width > r && D <= I.length && D > 0;) {
                                                                    var N = u.max(S.text.length - D, 1);
                                                                    P ? R = h.splitTextByCharCount(S.text, N, !0, this.rtl) : ((R = h.splitTextByCharCount(S.text, N, !0, this.rtl))[0].length > N || 1 === N) && (O.element.node.removeChild(E), D = 0), D > 0 && (E.textContent = Object(o.b)().cleanUp(h.trim(R.shift()))), O.bbox = O.element.getBBox(), O.bbox.width = Math.floor(O.bbox.width), D = Math.ceil(1.1 * D)
                                                                }
                                                                if (R.length > 0) {
                                                                    var L = "";
                                                                    c.hasValue(R) && (this.rtl ? L += R.join("") + m : L += m + R.join("").replace(/([\[\]]{1})/g, "$1$1"));
                                                                    for (var B = T + 1; B < x.length; B++) "value" == x[B].type ? L += x[B].text.replace(/([\[\]]{1})/g, "$1$1") : L += x[B].text;
                                                                    d.splice(v + 1, 0, L)
                                                                }
                                                                w = !0
                                                            }
                                                        }
                                                    }
                                                    this.bbox.width < O.bbox.width && (this.bbox.width = O.bbox.width), this.bbox.height = y + _, this.textPathElement ? O.element.attr({
                                                        dy: -this.paddingBottom.toString()
                                                    }) : O.element.attr({
                                                        x: "0",
                                                        y: y + _,
                                                        dy: u.round(this.baseLineRatio * _, 3).toString()
                                                    }), P = !1
                                                }
                                            }
                                            var U = O.element.node;
                                            if (U)(E = U.lastChild) && (E.textContent = this.rtl ? h.ltrim(E.textContent) : h.rtrim(E.textContent));
                                            y += _, this.addLineInfo(O, v)
                                        } else {
                                            var W = this.getSVGLineElement("", 0);
                                            W.add(this.getSvgElement(".", Object(o.b)().translateStyleShortcuts(m))), g.add(W);
                                            var Y = Math.ceil(W.getBBox().height);
                                            Y > 0 && (y += Y), g.removeElement(W);
                                            var H = this.getLineInfo(v);
                                            H && (H.text = "", H.element.textContent = "")
                                        }
                                    }
                                    this.maybeHideOversized(), this.measureFailed = !1, 0 != this.bbox.width && 0 != this.bbox.height || (this.measureFailed = !0), this._measuredWidth = u.round(u.max(this.bbox.width, this.pixelWidth - this.pixelPaddingLeft - this.pixelPaddingRight)), this._measuredHeight = u.round(u.max(this.bbox.height, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom)), this.alignSVGText(), this.bbox.width = this._measuredWidth, this.bbox.height = this._measuredHeight, i == this._measuredHeight && e == this._measuredWidth || this.dispatch("transformed"), this.hideUnused(d.length)
                                } else {
                                    this.element.removeAttr("display"), this.resetBBox(), (g = this.element).removeChildren();
                                    var z = this.paper.foreignObject();
                                    g.add(z), this.maxWidth && z.attr({
                                        width: this.maxWidth
                                    }), this.maxHeight && z.attr({
                                        height: this.maxHeight
                                    });
                                    var X = this.getHTMLLineElement(p);
                                    z.node.appendChild(X), X.style.display = "inline-block";
                                    var G = X.clientWidth,
                                        K = X.clientHeight;
                                    X.style.display = "block", this._bbox = {
                                        x: 0,
                                        y: 0,
                                        width: G,
                                        height: K
                                    }, z.attr({
                                        width: G,
                                        height: K
                                    }), this.maybeHideOversized(), this._measuredWidth = u.max(this.bbox.width, this.pixelWidth - this.pixelPaddingLeft - this.pixelPaddingRight), this._measuredHeight = u.max(this.bbox.height, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom), this.bbox.width = this._measuredWidth, this.bbox.height = this._measuredHeight, this.truncate && (X.style.overflow = "hidden"), (G > r || K > a) && (this.isOversized = !0)
                                }
                                this.setStyles(), this.updateCenter(), this.updateBackground(), "none" == f && this.group.attr({
                                    display: "none"
                                }), this.pathElement && this.paper.appendDef(this.pathElement)
                            } else this.element.attr({
                                display: "none"
                            })
                        }
                    } else n.events.once("maxsizechanged", this.hardInvalidate, this, !1)
                }, e.prototype.maybeHideOversized = function() {
                    this.hideOversized && (this.availableWidth < this.bbox.width || this.availableHeight < this.bbox.height ? (this.element.attr({
                        display: "none"
                    }), this.isOversized = !0) : (this.element.removeAttr("display"), this.isOversized = !1))
                }, e.prototype.alignSVGText = function() {
                    var t = this.element,
                        e = t.node.children || t.node.childNodes;
                    if (e && (!e || 0 != e.length)) {
                        var i = this._measuredWidth,
                            n = this._measuredHeight;
                        h.used(this.pixelPaddingLeft), h.used(this.pixelPaddingRight), h.used(this.pixelPaddingTop), h.used(this.pixelPaddingBottom);
                        for (var r = e.length - 1; r >= 0; r--) {
                            var a = e[r];
                            if (a.setAttribute("text-anchor", this.textAlign), this.textPathElement) a.removeAttribute("x"), a.removeAttribute("y");
                            else {
                                switch (this.textAlign) {
                                    case "middle":
                                        a.setAttribute("x", (i / 2).toString() + "px");
                                        break;
                                    case "end":
                                        this.rtl || a.setAttribute("x", i.toString());
                                        break;
                                    default:
                                        this.rtl ? a.setAttribute("x", i.toString()) : a.removeAttribute("text-anchor")
                                }
                                var o = c.toNumber(a.getAttribute("y"));
                                switch (this.textValign) {
                                    case "middle":
                                        a.setAttribute("y", (o + (n - this.bbox.height) / 2).toString());
                                        break;
                                    case "bottom":
                                        a.setAttribute("y", (o + n - this.bbox.height).toString());
                                        break;
                                    default:
                                        a.setAttribute("y", o.toString())
                                }
                            }
                        }
                    }
                }, e.prototype.getSVGLineElement = function(t, e) {
                    var i = this.paper.addGroup("text");
                    return i.textContent = t, i.attr({
                        x: "0"
                    }), c.hasValue(e) && i.attr({
                        y: e.toString()
                    }), (this.truncate || this.wrap) && i.attr({
                        overflow: "hidden"
                    }), this.rtl && i.attr({
                        direction: "rtl"
                    }), i
                }, e.prototype.resetBBox = function() {
                    this._bbox = {
                        x: 0,
                        y: 0,
                        width: 0,
                        height: 0
                    }
                }, e.prototype.getHTMLLineElement = function(t) {
                    var e = document.createElement("div");
                    switch (e.innerHTML = t, this.textAlign) {
                        case "middle":
                            e.style.textAlign = "center";
                            break;
                        case "end":
                            e.style.textAlign = "right"
                    }
                    return this.wrap ? e.style.wordWrap = "break-word" : e.style.whiteSpace = "nowrap", this.rtl && (e.style.direction = "rtl"), c.hasValue(this.fill) && (e.style.color = this.fill.toString()), e
                }, e.prototype.setStyles = function() {
                    var t = this.element;
                    !this.selectable || this.draggable || this.resizable || this.swipeable ? t.addStyle({
                        webkitUserSelect: "none",
                        msUserSelect: "none"
                    }) : this.selectable && (t.removeStyle("webkitUserSelect"), t.removeStyle("msUserSelect"))
                }, e.prototype.hideUnused = function(t) {
                    this.initLineCache();
                    var e = this.getCache("lineInfo");
                    if (e.length >= t)
                        for (var i = t; i < e.length; i++) {
                            var n = e[i];
                            n && n.element && n.element.attr({
                                display: "none"
                            })
                        }
                }, Object.defineProperty(e.prototype, "text", {
                    get: function() {
                        return this.getPropertyValue("text")
                    },
                    set: function(t) {
                        this.setPropertyValue("text", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "path", {
                    get: function() {
                        return this.getPropertyValue("path")
                    },
                    set: function(t) {
                        this.setPropertyValue("path", t, !0) && (this.pathElement && this.pathElement.dispose(), this.textPathElement && this.textPathElement.dispose(), this.pathElement = this.paper.add("path"), this.pathElement.attr({
                            d: t
                        }), this.pathElement.attr({
                            id: "text-path-" + this.uid
                        }), this._disposers.push(this.pathElement), this.textPathElement = this.paper.addGroup("textPath"), this.textPathElement.attrNS(p.d, "xlink:href", "#text-path-" + this.uid), this.textPathElement.attr({
                            path: t
                        }), this._disposers.push(this.textPathElement), this.hardInvalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "locationOnPath", {
                    get: function() {
                        return this.getPropertyValue("locationOnPath")
                    },
                    set: function(t) {
                        this.setPropertyValue("locationOnPath", t), this.textPathElement && this.textPathElement.attr({
                            startOffset: 100 * t + "%"
                        })
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "baseLineRatio", {
                    get: function() {
                        return this.getPropertyValue("baseLineRatio")
                    },
                    set: function(t) {
                        this.setPropertyValue("baseLineRatio", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "wrap", {
                    get: function() {
                        return this.getPropertyValue("wrap")
                    },
                    set: function(t) {
                        this.resetBBox(), this.setPropertyValue("wrap", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "truncate", {
                    get: function() {
                        return this.getPropertyValue("truncate")
                    },
                    set: function(t) {
                        this.resetBBox(), this.setPropertyValue("truncate", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "fullWords", {
                    get: function() {
                        return this.getPropertyValue("fullWords")
                    },
                    set: function(t) {
                        this.setPropertyValue("fullWords", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "ellipsis", {
                    get: function() {
                        return this.getPropertyValue("ellipsis")
                    },
                    set: function(t) {
                        this.setPropertyValue("ellipsis", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "selectable", {
                    get: function() {
                        return this.getPropertyValue("selectable")
                    },
                    set: function(t) {
                        this.setPropertyValue("selectable", t, !0), this.setStyles()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "textAlign", {
                    get: function() {
                        return this.getPropertyValue("textAlign")
                    },
                    set: function(t) {
                        this.setPropertyValue("textAlign", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "textValign", {
                    get: function() {
                        return this.getPropertyValue("textValign")
                    },
                    set: function(t) {
                        this.setPropertyValue("textValign", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "html", {
                    get: function() {
                        return this.getPropertyValue("html")
                    },
                    set: function(t) {
                        this.setPropertyValue("html", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hideOversized", {
                    get: function() {
                        return this.getPropertyValue("hideOversized")
                    },
                    set: function(t) {
                        this.setPropertyValue("hideOversized", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "ignoreFormatting", {
                    get: function() {
                        return this.getPropertyValue("ignoreFormatting")
                    },
                    set: function(t) {
                        this.setPropertyValue("ignoreFormatting", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.measureElement = function() {}, e.prototype.getLineInfo = function(t) {
                    this.initLineCache();
                    var e = this.getCache("lineInfo");
                    return e.length > t ? e[t] : void 0
                }, e.prototype.addLineInfo = function(t, e) {
                    this.initLineCache(), this.getCache("lineInfo")[e] = t
                }, e.prototype.initLineCache = function() {
                    c.hasValue(this.getCache("lineInfo")) || this.setCache("lineInfo", [], 0)
                }, e.prototype.setDataItem = function(e) {
                    this._sourceDataItemEvents && this._sourceDataItemEvents.dispose(), e && (this._sourceDataItemEvents = new s.c([e.events.on("valuechanged", this.invalidate, this, !1), e.events.on("workingvaluechanged", this.invalidate, this, !1), e.events.on("calculatedvaluechanged", this.invalidate, this, !1), e.events.on("propertychanged", this.invalidate, this, !1)])), t.prototype.setDataItem.call(this, e)
                }, Object.defineProperty(e.prototype, "availableWidth", {
                    get: function() {
                        return c.hasValue(this.maxWidth) ? this.maxWidth : this.pixelWidth
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "availableHeight", {
                    get: function() {
                        return c.hasValue(this.maxHeight) ? this.maxHeight : this.pixelHeight
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getSvgElement = function(t, e) {
                    var i = this.paper.add("tspan");
                    return i.textContent = t, e && i.node.setAttribute("style", e), i
                }, e.prototype.deepInvalidate = function() {
                    t.prototype.deepInvalidate.call(this), this.hardInvalidate()
                }, Object.defineProperty(e.prototype, "readerTitle", {
                    get: function() {
                        var t = this.getPropertyValue("readerTitle");
                        return t || (t = this.populateString(h.plainText(h.isNotEmpty(this.html) ? this.html : this.text))), t
                    },
                    set: function(t) {
                        t = c.toText(t), this.setPropertyValue("readerTitle", t) && this.applyAccessibility()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.Label = f, d.c.push({
            relevant: d.b.heightXS,
            state: function(t, e) {
                if (t instanceof f && t.parent && t.parent.isBaseSprite) {
                    var i = t.states.create(e);
                    return i.properties.disabled = !0, i
                }
                return null
            }
        })
    },
    pNDo: function(t, e, i) {
        i("0sYB")({
            target: "Date",
            stat: !0
        }, {
            now: function() {
                return (new Date).getTime()
            }
        })
    },
    pR7v: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return f
        }), i.d(e, "a", function() {
            return g
        });
        var n = i("m4/l"),
            r = i("AAkI"),
            a = i("OXm9"),
            o = i("hD5A"),
            s = i("aCit"),
            l = i("ZoDA"),
            u = i("Gg2j"),
            h = i("Wglt"),
            c = i("Qkdp"),
            p = i("Mtpk"),
            d = i("v9UT"),
            f = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "ValueAxisDataItem", e.values.value = {}, e.values.endValue = {}, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "value", {
                    get: function() {
                        return this.values.value.value
                    },
                    set: function(t) {
                        this.setValue("value", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endValue", {
                    get: function() {
                        return this.values.endValue.value
                    },
                    set: function(t) {
                        this.setValue("endValue", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.b),
            g = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._stepDecimalPlaces = 0, e._baseValue = 0, e._adjustedStart = 0, e._adjustedEnd = 1, e._extremesChanged = !1, e._deltaMinMax = 1, e.calculateTotals = !1, e.className = "ValueAxis", e.axisFieldName = "value", e.setPropertyValue("maxZoomFactor", 1e3), e.setPropertyValue("extraMin", 0), e.setPropertyValue("extraMax", 0), e.setPropertyValue("strictMinMax", !1), e.setPropertyValue("maxPrecision", Number.MAX_VALUE), e.setPropertyValue("extraTooltipPrecision", 0), e.keepSelection = !1, e.includeRangesInMinMax = !1, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.fillRule = function(t) {
                    var e = t.value,
                        i = t.component;
                    t.axisFill.disabled || (u.round(e / i.step / 2, 5) == Math.round(e / i.step / 2) ? t.axisFill.__disabled = !0 : t.axisFill.__disabled = !1)
                }, e.prototype.createDataItem = function() {
                    return new f
                }, e.prototype.createAxisBreak = function() {
                    return new l.a
                }, e.prototype.dataChangeUpdate = function() {
                    this.clearCache(), this.keepSelection ? (0 != this._start && this.dispatchImmediately("startchanged"), 1 != this._end && this.dispatchImmediately("endchanged"), 0 == this._start && 1 == this._end || this.dispatchImmediately("startendchanged")) : 0 == this._start && 1 == this._end || (this._start = 0, this._end = 1, this.dispatchImmediately("startendchanged")), this._maxZoomed = this._maxDefined, this._minZoomed = this._minDefined, this._maxAdjusted = this._maxDefined, this._minAdjusted = this._minDefined
                }, e.prototype.processSeriesDataItems = function() {
                    if (this.calculateTotals) {
                        var t = this.series.getIndex(0),
                            e = t.startIndex;
                        if (t.dataItems.length > 0) {
                            e > 0 && e--;
                            var i = t.endIndex;
                            i < t.dataItems.length && i++;
                            for (var n = function(t) {
                                    var e = {},
                                        i = {};
                                    r.series.each(function(n) {
                                        if (!n.excludeFromTotal) {
                                            var r = n.dataItems.getIndex(t);
                                            r && c.each(r.values, function(t) {
                                                var n = r.values[t].workingValue;
                                                p.isNumber(n) && (p.isNumber(e[t]) ? e[t] += Math.abs(n) : e[t] = Math.abs(n), p.isNumber(i[t]) ? i[t] += n : i[t] = n)
                                            })
                                        }
                                    }), r.series.each(function(n) {
                                        if (!n.excludeFromTotal) {
                                            var r = n.dataItems.getIndex(t);
                                            r && c.each(r.values, function(t) {
                                                var n = r.values[t].workingValue;
                                                p.isNumber(n) && (r.setCalculatedValue(t, e[t], "total"), r.setCalculatedValue(t, 100 * n / e[t], "totalPercent"), r.setCalculatedValue(t, i[t], "sum"))
                                            })
                                        }
                                    })
                                }, r = this, a = e; a < i; ++a) n(a)
                        }
                    }
                }, e.prototype.validate = function() {
                    this.axisLength <= 0 || (t.prototype.validate.call(this), this.getMinMax(), this.fixAxisBreaks(), this.calculateZoom(), this.validateAxisElements(), this.validateAxisRanges(), this.validateBreaks(), this.hideUnusedDataItems(), this.renderer.invalidateLayout())
                }, e.prototype.calculateZoom = function() {
                    if (p.isNumber(this.min) && p.isNumber(this.max)) {
                        var t = this.positionToValue(this.start),
                            e = this.positionToValue(this.end),
                            i = this.adjustDifference(t, e),
                            n = this.adjustMinMax(t, e, i, this._gridCount, !0),
                            r = d.decimalPlaces(n.step);
                        this._stepDecimalPlaces = r, t = u.round(t, r), e = u.round(e, r);
                        var a = (n = this.adjustMinMax(t, e, i, this._gridCount, !0)).step;
                        if (this.syncWithAxis) {
                            var o = this.getCache(t + "-" + e);
                            p.isNumber(o) && (a = o)
                        } else t = n.min, e = n.max;
                        this._minZoomed == t && this._maxZoomed == e && this._step == a || (this._minZoomed = t, this._maxZoomed = e, this._step = a, this.dispatchImmediately("selectionextremeschanged"))
                    }
                }, e.prototype.validateAxisElements = function() {
                    var t = this;
                    if (p.isNumber(this.max) && p.isNumber(this.min)) {
                        var e = this.minZoomed - 2 * this._step;
                        if (this.logarithmic) Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E > 1 ? e = Math.pow(10, Math.log(this.min) * Math.LOG10E) : 0 == (e = Math.floor(this.minZoomed / this._step) * this._step) && (e = this.minZoomed);
                        else e = Math.floor(e / this._step) * this._step;
                        var i = this._maxZoomed + this._step;
                        this.resetIterators();
                        for (var n = this._dataItemsIterator, r = 0; e <= i;) {
                            if (!this.isInBreak(e)) {
                                var a = n.find(function(t) {
                                    return t.value === e
                                });
                                a.__disabled && (a.__disabled = !1), this.appendDataItem(a), a.axisBreak = void 0, a.value != e && (a.value = e, a.text = this.formatLabel(e), a.label && a.label.invalid && a.label.validate(), a.value >= this.min && a.value <= this.max && a.label && ("Y" == this.axisLetter && a.label.measuredWidth > this.ghostLabel.measuredWidth || "X" == this.axisLetter && a.label.measuredHeight > this.ghostLabel.measuredHeight) && (this.ghostLabel.text = a.label.currentText, this.ghostLabel.validate())), this.validateDataElement(a)
                            }
                            if (r++, this.logarithmic) Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E > 1 ? e = Math.pow(10, Math.log(this.min) * Math.LOG10E + r) : e += this._step;
                            else e += this._step;
                            var o = Math.pow(10, Math.floor(Math.log(Math.abs(this._step)) * Math.LOG10E));
                            if (o < 1) {
                                var s = Math.round(Math.abs(Math.log(Math.abs(o)) * Math.LOG10E)) + 2;
                                e = u.round(e, s)
                            }
                        }
                        var l = this._axisBreaks;
                        if (l) {
                            var c = this.renderer;
                            h.each(l.iterator(), function(e) {
                                if (e.breakSize > 0 && u.getDistance(e.startPoint, e.endPoint) > c.minGridDistance)
                                    for (var i = e.adjustedMin; i <= e.adjustedMax;) {
                                        if (i >= e.adjustedStartValue && i <= e.adjustedEndValue) {
                                            var r = n.find(function(t) {
                                                return t.value === i
                                            });
                                            r.__disabled && (r.__disabled = !1), t.appendDataItem(r), r.axisBreak = e, r.value != i && (r.value = i, r.text = t.formatLabel(i), r.label && r.label.invalid && r.label.validate()), t.validateDataElement(r)
                                        }
                                        i += e.adjustedStep
                                    }
                            })
                        }
                    }
                }, e.prototype.validateDataElement = function(e) {
                    t.prototype.validateDataElement.call(this, e), e.itemIndex = this._axisItemCount, this._axisItemCount++;
                    var i = this.renderer,
                        n = e.value,
                        r = e.endValue,
                        a = this.valueToPosition(n);
                    e.position = a;
                    var o = a,
                        s = this.valueToPosition(n + this._step);
                    p.isNumber(r) && (s = o = this.valueToPosition(r)), e.point = i.positionToPoint(a);
                    var l = e.tick;
                    l && !l.disabled && i.updateTickElement(l, a, o);
                    var u = e.grid;
                    u && !u.disabled && i.updateGridElement(u, a, o);
                    var h = e.label;
                    h && !h.disabled && i.updateLabelElement(h, a, o);
                    var c = e.axisFill;
                    c && !c.disabled && (i.updateFillElement(c, a, s), e.isRange || this.fillRule(e)), e.bullet && i.updateBullet(e.bullet, a, o);
                    var d = e.mask;
                    d && i.updateFillElement(d, a, s)
                }, e.prototype.formatLabel = function(t) {
                    return this.numberFormatter.format(t)
                }, Object.defineProperty(e.prototype, "basePoint", {
                    get: function() {
                        var t = this.baseValue,
                            e = this.valueToPosition(t);
                        return this.renderer.positionToPoint(e)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "baseValue", {
                    get: function() {
                        var t = this._baseValue;
                        return this.logarithmic && (t = this.min), this._adapterO ? this._adapterO.apply("baseValue", t) : t
                    },
                    set: function(t) {
                        this._baseValue = t, this.invalidateLayout(), this.invalidateSeries()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.anyToPosition = function(t) {
                    return this.valueToPosition(t)
                }, e.prototype.valueToPoint = function(t) {
                    var e = this.valueToPosition(t),
                        i = this.renderer.positionToPoint(e),
                        n = this.renderer.positionToAngle(e);
                    return {
                        x: i.x,
                        y: i.y,
                        angle: n
                    }
                }, e.prototype.anyToPoint = function(t) {
                    return this.valueToPoint(t)
                }, e.prototype.valueToPosition = function(t) {
                    if (p.isNumber(t)) {
                        var e = this.min,
                            i = this.max;
                        if (p.isNumber(e) && p.isNumber(i)) {
                            var n = this._difference,
                                r = this._axisBreaks;
                            r && r.length > 0 && h.eachContinue(r.iterator(), function(n) {
                                var r = n.adjustedStartValue,
                                    a = n.adjustedEndValue;
                                if (p.isNumber(r) && p.isNumber(a)) {
                                    if (t < r) return !1;
                                    if (u.intersect({
                                            start: r,
                                            end: a
                                        }, {
                                            start: e,
                                            end: i
                                        })) {
                                        r = Math.max(r, e), a = Math.min(a, i);
                                        var o = n.breakSize;
                                        t > a ? e += (a - r) * (1 - o) : t < r || (t = r + (t - r) * o)
                                    }
                                }
                                return !0
                            });
                            return this.logarithmic ? (Math.log(t) * Math.LOG10E - Math.log(this.min) * Math.LOG10E) / (Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E) : (t - e) / n
                        }
                    }
                    return 0
                }, e.prototype.invalidateLabels = function() {
                    t.prototype.invalidateLabels.call(this), this.dataItems && (this.dataItems.each(function(t) {
                        t.value = void 0
                    }), this.invalidate())
                }, e.prototype.positionToValue = function(t) {
                    t = u.round(t, 10);
                    var e = this.min,
                        i = this.max;
                    if (p.isNumber(e) && p.isNumber(i)) {
                        var n = i - e,
                            r = null,
                            a = this._axisBreaks;
                        return a && a.length > 0 && h.eachContinue(a.iterator(), function(a) {
                            var o = a.startPosition,
                                s = a.endPosition,
                                l = a.adjustedStartValue,
                                h = a.adjustedEndValue;
                            if (p.isNumber(l) && p.isNumber(h)) {
                                if (l > i) return !1;
                                if (u.intersect({
                                        start: l,
                                        end: h
                                    }, {
                                        start: e,
                                        end: i
                                    })) {
                                    l = u.max(l, e), h = u.min(h, i);
                                    var c = a.breakSize;
                                    if (n -= (h - l) * (1 - c), t > s) e += (h - l) * (1 - c);
                                    else if (!(t < o)) return r = l + (t - o) / (s - o) * (h - l), !1
                                }
                                return !0
                            }
                        }), p.isNumber(r) || (r = this.logarithmic ? Math.pow(Math.E, (t * (Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E) + Math.log(this.min) * Math.LOG10E) / Math.LOG10E) : t * n + e), r
                    }
                }, e.prototype.xToValue = function(t) {
                    return this.positionToValue(this.pointToPosition({
                        x: t,
                        y: 0
                    }))
                }, e.prototype.yToValue = function(t) {
                    return this.positionToValue(this.pointToPosition({
                        x: 0,
                        y: t
                    }))
                }, e.prototype.pointToPosition = function(t) {
                    return this.renderer instanceof a.a ? 1 - this.renderer.pointToPosition(t) : this.renderer.pointToPosition(t)
                }, e.prototype.animateMinMax = function(t, e) {
                    return this.animate([{
                        property: "_minAdjusted",
                        from: this._minAdjusted,
                        to: t
                    }, {
                        property: "_maxAdjusted",
                        from: this._maxAdjusted,
                        to: e
                    }], this.rangeChangeDuration, this.rangeChangeEasing)
                }, e.prototype.getMinMax = function() {
                    var t = this;
                    this.updateGridCount();
                    var e = Number.POSITIVE_INFINITY,
                        i = Number.NEGATIVE_INFINITY;
                    if (p.isNumber(this._minDefined) && p.isNumber(this._maxDefined) || (this.series.each(function(n) {
                            if (!n.ignoreMinMax) {
                                var r = n.min(t);
                                p.isNumber(r) && r < e && (e = r);
                                var a = n.max(t);
                                p.isNumber(a) && a > i && (i = a)
                            }
                        }), this.includeRangesInMinMax && this.axisRanges.each(function(t) {
                            if (!t.ignoreMinMax) {
                                var n = u.min(t.value, t.endValue),
                                    r = u.max(t.value, t.endValue);
                                (n < e || !p.isNumber(e)) && (e = n), (r > i || !p.isNumber(i)) && (i = r)
                            }
                        })), this.logarithmic && e <= 0) throw Error("Logarithmic value axis can not have values <= 0.");
                    if (0 == e && 0 == i && (i = .9, e = -.9), p.isNumber(this._minDefined) && (e = this._minDefined), p.isNumber(this._maxDefined) && (i = this._maxDefined), this._adapterO && (e = this._adapterO.apply("min", e)), this._adapterO && (i = this._adapterO.apply("max", i)), p.isNumber(e) && p.isNumber(i)) {
                        this._minReal = e, this._maxReal = i, e == Number.POSITIVE_INFINITY && (e = void 0), i == Number.NEGATIVE_INFINITY && (i = void 0);
                        var n = this.adjustDifference(e, i);
                        if (e = this.fixMin(e), (i = this.fixMax(i)) - e <= 1 / Math.pow(10, 15)) {
                            if (i - e != 0) this._deltaMinMax = (i - e) / 2;
                            else {
                                var r = Math.log(Math.abs(i)) * Math.LOG10E,
                                    a = Math.pow(10, Math.floor(r));
                                a /= 10, this._deltaMinMax = a
                            }
                            e -= this._deltaMinMax, i += this._deltaMinMax
                        }
                        e -= (i - e) * this.extraMin, i += (i - e) * this.extraMax;
                        var o = this.strictMinMax;
                        p.isNumber(this._maxDefined) && (o = !0);
                        var s = this.adjustMinMax(e, i, n, this._gridCount, o);
                        if (e = s.min, n = (i = s.max) - e, s = this.adjustMinMax(e, i, i - e, this._gridCount, !0), e = s.min, i = s.max, this.strictMinMax && (e = p.isNumber(this._minDefined) ? this._minDefined : this._minReal, (i = p.isNumber(this._maxDefined) ? this._maxDefined : this._maxReal) - e <= 1e-8 && (e -= this._deltaMinMax, i += this._deltaMinMax), e -= (i - e) * this.extraMin, i += (i - e) * this.extraMax), this._adapterO && (e = this._adapterO.apply("min", e)), this._adapterO && (i = this._adapterO.apply("max", i)), this._step = s.step, (this._minAdjusted != e || this._maxAdjusted != i) && p.isNumber(e) && p.isNumber(i)) {
                            var l = this._minMaxAnimation;
                            if (this._extremesChanged && p.isNumber(this._minAdjusted) && p.isNumber(this._maxAdjusted) && this.inited) {
                                if (l && !l.isFinished() && this._finalMax == i && this._finalMin == e) return;
                                this._finalMin = e, this._finalMax = i, (l = this.animateMinMax(e, i)) && !l.isFinished() ? (l.events.on("animationprogress", this.validateDataItems, this), l.events.on("animationended", function() {
                                    t.series.each(function(t) {
                                        t.validate()
                                    }), t.validateDataItems(), t.handleSelectionExtremesChange()
                                }), this._minMaxAnimation = l) : this.series.each(function(t) {
                                    t.validate()
                                }), this.validateDataItems(), this.dispatchImmediately("extremeschanged"), this.handleSelectionExtremesChange()
                            } else {
                                if (l && !l.isFinished() && this._finalMax == i && this._finalMin == e) return;
                                this._minAdjusted = e, this._maxAdjusted = i, this._finalMin = e, this._finalMax = i, this.invalidateDataItems(), this.dispatchImmediately("extremeschanged")
                            }
                        }
                        this._extremesChanged = !1, this._difference = this.adjustDifference(e, i)
                    }
                }, e.prototype.fixMin = function(t) {
                    return t
                }, e.prototype.fixMax = function(t) {
                    return t
                }, e.prototype.adjustMinMax = function(t, e, i, n, r) {
                    n <= 1 && (n = 1), n = Math.round(n);
                    var a = t,
                        o = e;
                    0 === i && (i = Math.abs(e));
                    var s = Math.log(Math.abs(i)) * Math.LOG10E,
                        l = Math.pow(10, Math.floor(s)),
                        h = l /= 10;
                    r && (h = 0), this.logarithmic ? (t <= 0 && (t = this.baseValue), t == 1 / 0 && (t = 1), e == -1 / 0 && (e = 10), t = Math.pow(10, Math.floor(Math.log(Math.abs(t)) * Math.LOG10E)), e = Math.pow(10, Math.ceil(Math.log(Math.abs(e)) * Math.LOG10E))) : (r ? (t = Math.floor(t / l) * l, e = Math.ceil(e / l) * l) : (t = Math.ceil(t / l) * l - h, e = Math.floor(e / l) * l + h), t < 0 && a >= 0 && (t = 0), e > 0 && o <= 0 && (e = 0)), s = Math.log(Math.abs(i)) * Math.LOG10E, l = Math.pow(10, Math.floor(s)), l /= 10;
                    var c = Math.ceil(i / n / l) * l,
                        p = Math.pow(10, Math.floor(Math.log(Math.abs(c)) * Math.LOG10E)),
                        d = Math.ceil(c / p);
                    d > 5 ? d = 10 : d <= 5 && d > 2 && (d = 5), c = Math.ceil(c / (p * d)) * p * d, this.maxPrecision < Number.MAX_VALUE && c != u.ceil(c, this.maxPrecision) && (c = u.ceil(c, this.maxPrecision));
                    var f = 0;
                    if (p < 1 && (f = Math.round(Math.abs(Math.log(Math.abs(p)) * Math.LOG10E)) + 1, c = u.round(c, f)), !this.logarithmic) {
                        var g = Math.floor(t / c);
                        t = u.round(c * g, f);
                        var y = void 0;
                        (y = r ? Math.floor(e / c) : Math.ceil(e / c)) == g && y++, (e = u.round(c * y, f)) < o && (e += c), t > a && (t -= c)
                    }
                    return {
                        min: t,
                        max: e,
                        step: c
                    }
                }, Object.defineProperty(e.prototype, "min", {
                    get: function() {
                        var t = this._minAdjusted;
                        return p.isNumber(t) || (t = this._minDefined), t
                    },
                    set: function(t) {
                        this._minDefined != t && (this._minDefined = t, this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "minDefined", {
                    get: function() {
                        return this._minDefined
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxDefined", {
                    get: function() {
                        return this._maxDefined
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "extraMin", {
                    get: function() {
                        return this.getPropertyValue("extraMin")
                    },
                    set: function(t) {
                        this.setPropertyValue("extraMin", t) && this.invalidateDataItems()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "extraMax", {
                    get: function() {
                        return this.getPropertyValue("extraMax")
                    },
                    set: function(t) {
                        this.setPropertyValue("extraMax", t) && this.invalidateDataItems()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "step", {
                    get: function() {
                        return this._step
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "max", {
                    get: function() {
                        var t = this._maxAdjusted;
                        return p.isNumber(t) || (t = this._maxDefined), t
                    },
                    set: function(t) {
                        this._maxDefined != t && (this._maxDefined = t, this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.registerSeries = function(e) {
                    return new o.c([t.prototype.registerSeries.call(this, e), e.events.on("extremeschanged", this.handleExtremesChange, this, !1), e.events.on("selectionextremeschanged", this.handleSelectionExtremesChange, this, !1), this.events.on("extremeschanged", e.invalidate, e, !1)])
                }, e.prototype.handleSelectionExtremesChange = function() {
                    var t, e, i = this,
                        n = !0;
                    if (h.each(this.series.iterator(), function(r) {
                            if (!r.ignoreMinMax && !r.isHidden) {
                                r.visible && !r.isHiding && (n = !1);
                                var a = r.selectionMin(i),
                                    o = r.selectionMax(i);
                                p.isNumber(a) && (!p.isNumber(t) || a < t) && (t = a), p.isNumber(o) && (!p.isNumber(e) || o > e) && (e = o)
                            }
                        }), this.includeRangesInMinMax && this.axisRanges.each(function(t) {
                            if (!t.ignoreMinMax) {
                                var i = u.min(t.value, t.endValue),
                                    n = u.max(t.value, t.endValue);
                                i < e && (e = i), n > e && (e = n)
                            }
                        }), p.isNumber(this._minDefined) ? t = this.strictMinMax ? this._minDefined : this.min : this.strictMinMax && (t = this._minReal), p.isNumber(this._maxDefined) ? e = this.strictMinMax ? this._maxDefined : this.max : this.strictMinMax && (e = this._maxReal), t == e) {
                        t -= this._deltaMinMax, e += this._deltaMinMax;
                        var r = this.adjustMinMax(t, e, 0, this._gridCount, this.strictMinMax);
                        t = r.min, e = r.max
                    }
                    var a = this.adjustDifference(t, e),
                        o = this.adjustMinMax(t, e, a, this._gridCount);
                    t = o.min, e = o.max, t -= (e - t) * this.extraMin, e += (e - t) * this.extraMax, t = u.fitToRange(t, this.min, this.max), e = u.fitToRange(e, this.min, this.max), a = this.adjustDifference(t, e), o = this.adjustMinMax(t, e, a, this._gridCount, !0), t = o.min, e = o.max, this.strictMinMax && (t = u.max(t, this._minDefined), e = u.min(e, this._maxDefined));
                    var s = o.step;
                    this.syncWithAxis && (o = this.syncAxes(t, e, s), t = o.min, e = o.max, this.invalidate()), s = o.step, this._difference = this.adjustDifference(this.min, this.max);
                    var l = this.valueToPosition(t),
                        c = this.valueToPosition(e);
                    n && !this.syncWithAxis && (l = 0, c = 1);
                    var d = 0;
                    this.syncWithAxis ? (d = 5, this.setCache(t + "-" + e, s)) : (this._step = s, this._minZoomed = t, this._maxZoomed = e), this.keepSelection || this.zoom({
                        start: l,
                        end: c
                    }, !1, !1, d)
                }, Object.defineProperty(e.prototype, "strictMinMax", {
                    get: function() {
                        return this.getPropertyValue("strictMinMax")
                    },
                    set: function(t) {
                        this.setPropertyValue("strictMinMax", t) && this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "logarithmic", {
                    get: function() {
                        return this.getPropertyValue("logarithmic")
                    },
                    set: function(t) {
                        this.setPropertyValue("logarithmic", t) && this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "keepSelection", {
                    get: function() {
                        return this.getPropertyValue("keepSelection")
                    },
                    set: function(t) {
                        this.setPropertyValue("keepSelection", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "includeRangesInMinMax", {
                    get: function() {
                        return this.getPropertyValue("includeRangesInMinMax")
                    },
                    set: function(t) {
                        this.setPropertyValue("includeRangesInMinMax", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxPrecision", {
                    get: function() {
                        return this.getPropertyValue("maxPrecision")
                    },
                    set: function(t) {
                        this.setPropertyValue("maxPrecision", t) && this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "extraTooltipPrecision", {
                    get: function() {
                        return this.getPropertyValue("extraTooltipPrecision")
                    },
                    set: function(t) {
                        this.setPropertyValue("extraTooltipPrecision", t) && this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleExtremesChange = function() {
                    var t = this;
                    if (this._extremesChanged = !0, this.getMinMax(), this.ghostLabel) {
                        this.dataItems.each(function(e) {
                            e.label && e.label.pixelWidth > 0 && (t.ghostLabel.text = e.label.currentText)
                        })
                    }
                }, e.prototype.getX = function(t, e, i, n, r) {
                    return this.renderer.positionToPoint(this.getPositionX(t, e, i, n, r)).x
                }, e.prototype.getPositionX = function(t, e, i, n, r) {
                    var a = t.getWorkingValue(e);
                    p.hasValue(n) || (n = "valueX");
                    var o = t.getValue(n, "stack");
                    p.isNumber(a) || (a = this.baseValue, this.logarithmic && o > 0 && (a = 0));
                    var s = this.valueToPosition(a + o);
                    return r && (s = u.fitToRange(s, r.start, r.end)), s
                }, e.prototype.getY = function(t, e, i, n, r) {
                    return this.renderer.positionToPoint(this.getPositionY(t, e, i, n, r)).y
                }, e.prototype.getPositionY = function(t, e, i, n, r) {
                    var a = t.getWorkingValue(e);
                    p.hasValue(n) || (n = "valueY");
                    var o = t.getValue(n, "stack");
                    p.isNumber(a) || (a = this.baseValue, this.logarithmic && o > 0 && (a = 0));
                    var s = this.valueToPosition(a + o);
                    return r && (s = u.fitToRange(s, r.start, r.end)), s
                }, e.prototype.getAngle = function(t, e, i, n, r) {
                    var a = t.getWorkingValue(e),
                        o = t.getValue(n, "stack");
                    p.isNumber(a) || (a = this.baseValue);
                    var s = this.valueToPosition(a + o);
                    return r && (s = u.fitToRange(s, r.start, r.end)), this.positionToAngle(s)
                }, e.prototype.getAnyRangePath = function(t, e, i) {
                    var n = this.valueToPosition(t),
                        r = this.valueToPosition(e);
                    return this.getPositionRangePath(n, r)
                }, e.prototype.getTooltipText = function(t) {
                    var e = u.round(this.positionToValue(t), this._stepDecimalPlaces + this.extraTooltipPrecision),
                        i = this.tooltip.numberFormatter.format(e);
                    return this._adapterO ? this._adapterO.apply("getTooltipText", i) : i
                }, e.prototype.zoomToValues = function(t, e, i, n) {
                    var r = (t - this.min) / (this.max - this.min),
                        a = (e - this.min) / (this.max - this.min);
                    this.zoom({
                        start: r,
                        end: a
                    }, i, n)
                }, Object.defineProperty(e.prototype, "minZoomed", {
                    get: function() {
                        return this.syncWithAxis ? this._minZoomed : u.max(this.min, this._minZoomed)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "maxZoomed", {
                    get: function() {
                        return this.syncWithAxis ? this._maxZoomed : u.min(this.max, this._maxZoomed)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.fixAxisBreaks = function() {
                    var e = this;
                    t.prototype.fixAxisBreaks.call(this);
                    var i = this._axisBreaks;
                    i && i.length > 0 && i.each(function(t) {
                        var i = t.adjustedStartValue,
                            n = t.adjustedEndValue,
                            r = n - i,
                            a = Math.ceil(r * t.breakSize) * e._gridCount / (e.max - e.min),
                            o = e.adjustMinMax(i, n, r, a, !0);
                        t.adjustedStep = o.step, t.adjustedMin = o.min, t.adjustedMax = o.max
                    }), this._difference = this.adjustDifference(this.min, this.max)
                }, e.prototype.getPositionLabel = function(t) {
                    var e = this.positionToValue(t);
                    return this.numberFormatter.format(e)
                }, e.prototype.showTooltipAt = function(t) {
                    this.showTooltipAtPosition(this.valueToPosition(t))
                }, e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.min = e.min, this.max = e.max, this.calculateTotals = e.calculateTotals, this._baseValue = e.baseValue
                }, Object.defineProperty(e.prototype, "syncWithAxis", {
                    get: function() {
                        return this.getPropertyValue("syncWithAxis")
                    },
                    set: function(t) {
                        var e = this;
                        this.setPropertyValue("syncWithAxis", t, !0) && t && (this._disposers.push(t.events.on("extremeschanged", this.handleSelectionExtremesChange, this, !1)), this._disposers.push(t.events.on("selectionextremeschanged", this.handleSelectionExtremesChange, this, !1)), this.events.on("shown", this.handleSelectionExtremesChange, this, !1), this.events.on("maxsizechanged", function() {
                            e.clearCache(), e._disposers.push(s.c.events.once("exitframe", function() {
                                e.handleSelectionExtremesChange()
                            }))
                        }, this, !1))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.syncAxes = function(t, e, i) {
                    var n = this.syncWithAxis;
                    if (n) {
                        p.isNumber(t) || (t = this.min), p.isNumber(e) || (e = this.max), p.isNumber(i) || (i = this._step);
                        var r = Math.round((n.maxZoomed - n.minZoomed) / n.step),
                            a = Math.round((e - t) / i);
                        if (p.isNumber(r) && p.isNumber(a))
                            for (var o = !1, s = 0, l = .01 * (e - t), u = t, h = e, c = i; 1 != o;)
                                if (o = this.checkSync(u, h, c, r), ++s > 1e3 && (o = !0), o) t = u, e = h, i = c;
                                else {
                                    s / 3 == Math.round(s / 3) ? u = t - l * s : h = e + l * s;
                                    var d = this.adjustMinMax(u, h, h - u, this._gridCount, !0);
                                    u = d.min, h = d.max, c = d.step
                                }
                    }
                    return {
                        min: t,
                        max: e,
                        step: i
                    }
                }, e.prototype.checkSync = function(t, e, i, n) {
                    for (var r = (e - t) / i, a = 1; a < n; a++)
                        if (u.round(r / a, 1) == n || r * a == n) return !0;
                    return !1
                }, e.prototype.processConfig = function(e) {
                    e && p.hasValue(e.syncWithAxis) && p.isString(e.syncWithAxis) && (this.map.hasKey(e.syncWithAxis) ? e.syncWithAxis = this.map.getKey(e.syncWithAxis) : (this.processingErrors.push('[ValueAxis] No axis with id "' + e.syncWithAxis + '" found for `syncWithAxis`'), delete e.xAxis)), t.prototype.processConfig.call(this, e)
                }, e
            }(r.a);
        s.c.registeredClasses.ValueAxis = g, s.c.registeredClasses.ValueAxisDataItem = f
    },
    pVcl: function(t, e) {
        t.exports = {
            CSSRuleList: 0,
            CSSStyleDeclaration: 0,
            CSSValueList: 0,
            ClientRectList: 0,
            DOMRectList: 0,
            DOMStringList: 0,
            DOMTokenList: 1,
            DataTransferItemList: 0,
            FileList: 0,
            HTMLAllCollection: 0,
            HTMLCollection: 0,
            HTMLFormElement: 0,
            HTMLSelectElement: 0,
            MediaList: 0,
            MimeTypeArray: 0,
            NamedNodeMap: 0,
            NodeList: 1,
            PaintRequestList: 0,
            Plugin: 0,
            PluginArray: 0,
            SVGLengthList: 0,
            SVGNumberList: 0,
            SVGPathSegList: 0,
            SVGPointList: 0,
            SVGStringList: 0,
            SVGTransformList: 0,
            SourceBufferList: 0,
            StyleSheetList: 0,
            TextTrackCueList: 0,
            TextTrackList: 0,
            TouchList: 0
        }
    },
    pjXm: function(t, e, i) {
        "use strict";
        e.a = function() {
            for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
            r.a.verbose && console && console.log.apply(console, Object(n.f)(t))
        }, e.b = function() {
            for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
            console && console.warn.apply(console, Object(n.f)(t))
        };
        var n = i("m4/l"),
            r = i("Q4nc")
    },
    pkYH: function(t, e, i) {
        var n = i("0sYB"),
            r = Math.floor,
            a = Math.log,
            o = Math.LOG2E;
        n({
            target: "Math",
            stat: !0
        }, {
            clz32: function(t) {
                return (t >>>= 0) ? 31 - r(a(t + .5) * o) : 32
            }
        })
    },
    pzs1: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return o
        });
        var n = i("58Sn"),
            r = i("Qkdp"),
            a = i("Mtpk"),
            o = function() {
                function t(t) {
                    this._isDisposed = !1, this._x = 0, this._y = 0, this._rotationY = 0, this._rotationX = 0, this._rotation = 0, this._scale = 1, this.node = "string" == typeof t ? document.createElementNS(n.a, t) : t
                }
                return t.prototype.removeNode = function() {
                    this.node && this.node.parentNode && this.node.parentNode.removeChild(this.node)
                }, Object.defineProperty(t.prototype, "transformString", {
                    get: function() {
                        if (this.node) return this._transformString
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.transform = function() {
                    var t = "translate(" + this._x + "," + this._y + ")";
                    if (1 != this._scale && (t += (t ? " " : "") + "scale(" + this._scale + ")"), 0 != this._rotation) {
                        var e = "rotate(" + this._rotation + ")";
                        this._rotationX && this._rotationY && (e = "rotate(" + this._rotation + " " + this._rotationX + " " + this._rotationY + ")"), t += (t ? " " : "") + e
                    }
                    this._transformString = t, this.node.setAttribute("transform", t)
                }, t.prototype.getBBox = function() {
                    var t = {
                        width: 0,
                        height: 0,
                        x: 0,
                        y: 0
                    };
                    if (this.node && this.node.parentNode) try {
                        var e = this.node.getBBox();
                        t.x = e.x, t.y = e.y, t.width = e.width, t.height = e.height
                    } catch (t) {}
                    return t
                }, t.prototype.moveTo = function(t) {
                    if (t) {
                        var e = t.x,
                            i = t.y;
                        this._x == e && this._y == i || (this._x = e, this._y = i, this.transform())
                    }
                }, Object.defineProperty(t.prototype, "content", {
                    get: function() {
                        return this.node.innerHTML || ""
                    },
                    set: function(t) {
                        this.node.innerHTML = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "textContent", {
                    get: function() {
                        return this.node.textContent || ""
                    },
                    set: function(t) {
                        this.node.textContent = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "x", {
                    get: function() {
                        return this._x
                    },
                    set: function(t) {
                        this._x != t && (this._x = t, this.transform())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "y", {
                    get: function() {
                        return this._y
                    },
                    set: function(t) {
                        this._y != t && (this._y = t, this.transform())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "rotation", {
                    get: function() {
                        return this._rotation
                    },
                    set: function(t) {
                        this._rotation != t && (this._rotation = t, this.transform())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "rotationX", {
                    get: function() {
                        return this._rotationX
                    },
                    set: function(t) {
                        this._rotationX != t && (this._rotationX = t, this.transform())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "rotationY", {
                    get: function() {
                        return this._rotationY
                    },
                    set: function(t) {
                        this._rotationY != t && (this._rotationY = t, this.transform())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(t.prototype, "scale", {
                    get: function() {
                        return this._scale
                    },
                    set: function(t) {
                        this._scale != t && (this._scale = t, this.transform())
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.removeAttr = function(t) {
                    this.node.removeAttribute(t)
                }, t.prototype.attr = function(t) {
                    var e = this;
                    return r.each(t, function(t, i) {
                        a.hasValue(i) ? e.node.setAttribute(t, i) : e.node.removeAttribute(t)
                    }), this
                }, t.prototype.getAttr = function(t) {
                    return this.node.getAttribute(t)
                }, t.prototype.attrNS = function(t, e, i) {
                    return this.node.setAttributeNS(t, e, i), this
                }, t.prototype.getAttrNS = function(t, e) {
                    return this.node.getAttributeNS(t, e)
                }, t.prototype.removeStyle = function(t) {
                    delete this.node.style[t]
                }, t.prototype.getStyle = function(t) {
                    return this.node.style[t]
                }, t.prototype.addStyle = function(t) {
                    var e = this;
                    return r.each(t, function(t, i) {
                        a.hasValue(i) ? e.node.style[t] = i : e.removeStyle(t)
                    }), this
                }, t.prototype.addClass = function(t) {
                    n.f(this.node, t)
                }, t.prototype.removeClass = function(t) {
                    n.x(this.node, t)
                }, t.prototype.setClass = function(t) {
                    this.node.setAttribute("class", t)
                }, t.prototype.removeChildNodes = function() {
                    for (; this.node.childNodes.length > 0;) this.node.removeChild(this.node.firstChild)
                }, t.prototype.isDisposed = function() {
                    return this._isDisposed
                }, t.prototype.dispose = function() {
                    this.removeNode()
                }, t
            }()
    },
    q8hm: function(t, e, i) {
        var n = i("RjhM");
        t.exports = /(iphone|ipod|ipad).*applewebkit/i.test(n)
    },
    qCRI: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return n
        });
        var n = function() {
            function t() {}
            return t.grab = [{
                property: "cursor",
                value: "move"
            }, {
                property: "cursor",
                value: "grab"
            }, {
                property: "cursor",
                value: "-webkit-grab"
            }], t.grabbing = [{
                property: "cursor",
                value: "move"
            }, {
                property: "cursor",
                value: "grabbing"
            }, {
                property: "cursor",
                value: "-webkit-grabbing"
            }], t.pointer = [{
                property: "cursor",
                value: "pointer"
            }], t.default = [{
                property: "cursor",
                value: "default"
            }], t.horizontalResize = [{
                property: "cursor",
                value: "ew-resize"
            }], t.verticalResize = [{
                property: "cursor",
                value: "ns-resize"
            }], t.notAllowed = [{
                property: "cursor",
                value: "not-allowed"
            }], t
        }()
    },
    qJno: function(t, e, i) {
        "use strict";
        var n = i("m4/l"),
            r = i("58Sn"),
            a = i("MIZb"),
            o = i("+qIf"),
            s = i("hD5A"),
            l = new o.a,
            u = i("x79X"),
            h = i("vMqJ"),
            c = i("zhwk"),
            p = i("P/bD"),
            d = i("/IEW"),
            f = i("WYhe"),
            g = i("v9UT"),
            y = i("Wglt"),
            m = i("Mtpk");
        i.d(e, "a", function() {
            return v
        });
        var v = function(t) {
            function e() {
                var e = t.call(this) || this;
                return e.adapter = new u.a(e), e.closeDelay = 1e3, e.closeOnClick = !0, e._language = new s.d, e._menuTag = "ul", e._itemTag = "li", e._labelTag = "a", e._iconTag = "img", e._classPrefix = "amexport", e._defaultStyles = !0, e._align = "right", e._verticalAlign = "top", e._tabindex = 0, e._ignoreNextClose = !1, e._items = [{
                    label: "...",
                    menu: [{
                        label: "Image",
                        menu: [{
                            type: "png",
                            label: "PNG"
                        }, {
                            type: "jpg",
                            label: "JPG"
                        }, {
                            type: "svg",
                            label: "SVG"
                        }, {
                            type: "pdf",
                            label: "PDF"
                        }]
                    }, {
                        label: "Data",
                        menu: [{
                            type: "json",
                            label: "JSON"
                        }, {
                            type: "csv",
                            label: "CSV"
                        }, {
                            type: "xlsx",
                            label: "XLSX"
                        }, {
                            type: "html",
                            label: "HTML"
                        }, {
                            type: "pdfdata",
                            label: "PDF"
                        }]
                    }, {
                        label: "Print",
                        type: "print"
                    }]
                }], e.className = "ExportMenu", e._disposers.push(e._language), e.invalidate(), e.applyTheme(), e
            }
            return Object(n.c)(e, t), e.prototype.validate = function() {
                this.draw(), t.prototype.validate.call(this)
            }, e.prototype.draw = function() {
                var t = this;
                this._element ? (this._element.innerHTML = "", this._element.className = this.getMenuItemClass(0)) : this._element = this.createMenuElement(0), this.defaultStyles && (this._element.style.display = "none"), m.getValue(this._container).appendChild(this._element);
                for (var e = this.adapter.apply("items", {
                        items: this._items
                    }).items, i = e.length, n = 0; n < i; n++) this.drawBranch(this._element, e[n], 0);
                this._element = this.adapter.apply("menuElement", {
                    menuElement: this._element
                }).menuElement, this._disposers.push(Object(c.b)().body.events.on("down", function(e) {
                    e.pointer.touch || (t._ignoreNextClose = !1), t.close()
                })), this._disposers.push(Object(c.b)().body.events.on("keyup", function(e) {
                    var i = f.b.getEventKey(e.event);
                    switch (i) {
                        case "esc":
                            t.close();
                            break;
                        case "up":
                        case "down":
                        case "left":
                        case "right":
                            t.moveSelection(i)
                    }
                })), this.defaultStyles && this.loadDefaultCSS()
            }, e.prototype.drawBranch = function(t, e, i) {
                var n = this;
                if (!0 !== (e = this.adapter.apply("branch", {
                        branch: e,
                        level: i
                    }).branch).unsupported) {
                    e.ascendants || (e.ascendants = new h.b);
                    var r, a = e.type,
                        o = this.createItemElement(i, a);
                    e.icon ? ((r = this.createIconElement(i, a)).src = e.icon, e.label && (r.title = e.label)) : e.svg ? (r = this.createSvgElement(i, a, e.svg), e.label && (r.title = e.label)) : (r = this.createLabelElement(i, a)).innerHTML = e.label ? this.language.translate(e.label) : "";
                    var s = this.getReaderLabel(e, r.innerHTML);
                    r.setAttribute("aria-label", s), o.appendChild(r), e.interactions = Object(c.b)().getInteraction(r), e.element = o, this.typeClickable(a) && (e.interactions.events.on("hit", function(t) {
                        if (n.events.isEnabled("hit")) {
                            var i = {
                                type: "hit",
                                event: t.event,
                                target: n,
                                branch: e
                            };
                            n.events.dispatchImmediately("hit", i)
                        }
                    }), e.interactions.events.on("keyup", function(t) {
                        if (f.b.isKey(t.event, "enter") && n.events.isEnabled("enter")) {
                            var i = {
                                type: "enter",
                                event: t.event,
                                target: n,
                                branch: e
                            };
                            n.events.dispatchImmediately("enter", i)
                        }
                    }));
                    var l = this.getSubMenu(e);
                    null != l && (e.interactions.events.on("keyup", function(t) {
                        f.b.isKey(t.event, "enter") && (n.selectBranch(l[0]), n.setFocus(l[0]))
                    }), e.interactions.events.on("hit", function(t) {
                        n.selectBranch(e)
                    })), e.interactions.events.on("over", function(t) {
                        if (t.pointer.touch && (n._ignoreNextClose = !0), n.selectBranch(e), n.events.isEnabled("over")) {
                            var i = {
                                type: "over",
                                event: t.event,
                                target: n,
                                branch: e
                            };
                            n.events.dispatchImmediately("over", i)
                        }
                    }), e.interactions.events.on("out", function(t) {
                        if (t.pointer.touch || n.delayUnselectBranch(e), n.events.isEnabled("out")) {
                            var i = {
                                type: "out",
                                event: t.event,
                                target: n,
                                branch: e
                            };
                            n.events.dispatchImmediately("out", i)
                        }
                    }), e.interactions.events.on("focus", function(t) {
                        n.selectBranch(e)
                    }), e.interactions.events.on("blur", function(t) {
                        n.delayUnselectBranch(e)
                    });
                    var u = i + 1;
                    if (e.menu) {
                        for (var p = this.createMenuElement(u), d = e.menu.length, g = 0; g < d; g++) {
                            var y = new h.b;
                            e.menu[g].ascendants = y, e.ascendants.length && y.copyFrom(e.ascendants), y.push(e), this.drawBranch(p, e.menu[g], u)
                        }
                        if ("" == p.innerHTML) return;
                        o.appendChild(p)
                    }
                    e.hidden && this.hideBranch(e), e.id && o.setAttribute("id", e.id), e.color && (o.style.backgroundColor = e.color.hex), t.appendChild(o)
                }
            }, e.prototype.createMenuElement = function(t) {
                var e = document.createElement(this.menuTag);
                return e.className = this.getMenuItemClass(t), 0 === t && e.setAttribute("role", "menu"), e
            }, e.prototype.getMenuItemClass = function(t) {
                var e = this.classPrefix + "-menu " + this.classPrefix + "-menu-level-" + t;
                return 0 === t && (e += " " + this.classPrefix + "-menu-root " + this.classPrefix + "-" + this.align + " " + this.classPrefix + "-" + this.verticalAlign), this.adapter.apply("menuClass", {
                    className: e,
                    level: t
                }).className
            }, e.prototype.createItemElement = function(t, e) {
                var i = document.createElement(this.itemTag),
                    n = this.classPrefix + "-item " + this.classPrefix + "-item-level-" + t + " " + this.classPrefix + "-item-" + (e || "blank");
                return i.className = this.adapter.apply("itemClass", {
                    className: n,
                    level: t,
                    type: e
                }).className, i
            }, e.prototype.createLabelElement = function(t, e) {
                var i = document.createElement(this.labelTag),
                    n = this.classPrefix + "-label " + this.classPrefix + "-label-level-" + t + " " + this.classPrefix + "-item-" + (e || "blank");
                return this.typeClickable(e) && (n += " " + this.classPrefix + "-clickable"), i.className = this.adapter.apply("labelClass", {
                    className: n,
                    level: t,
                    type: e
                }).className, i.setAttribute("tabindex", this.tabindex.toString()), i.setAttribute("role", "menuitem"), i
            }, e.prototype.createIconElement = function(t, e) {
                var i = document.createElement(this.iconTag),
                    n = this.classPrefix + "-icon " + this.classPrefix + "-icon-level-" + t + " " + this.classPrefix + "-item-" + (e || "blank");
                return this.typeClickable(e) && (n += " " + this.classPrefix + "-clickable"), i.className = this.adapter.apply("labelClass", {
                    className: n,
                    level: t,
                    type: e
                }).className, i.setAttribute("tabindex", this.tabindex.toString()), i.setAttribute("role", "menuitem"), i
            }, e.prototype.createSvgElement = function(t, e, i) {
                var n = (new DOMParser).parseFromString(i, "image/svg+xml").documentElement,
                    r = this.classPrefix + "-icon " + this.classPrefix + "-icon-level-" + t + " " + this.classPrefix + "-item-" + (e || "blank");
                return this.typeClickable(e) && (r += " " + this.classPrefix + "-clickable"), n.setAttribute("class", this.adapter.apply("labelClass", {
                    className: r,
                    level: t,
                    type: e
                }).className), n.setAttribute("tabindex", this.tabindex.toString()), n.setAttribute("role", "menuitem"), n
            }, e.prototype.dispose = function() {
                this._disposed || (t.prototype.dispose.call(this), this._element && this._element.parentNode && this._element.parentNode.removeChild(this._element))
            }, e.prototype.typeClickable = function(t) {
                return m.hasValue(t)
            }, e.prototype.hasSubMenu = function(t) {
                return !(!t.menu || !t.menu.length)
            }, e.prototype.getSubMenu = function(t) {
                if (t.menu && t.menu.length) return t.menu
            }, e.prototype.getReaderLabel = function(t, e) {
                return e = g.stripTags(e), this.hasSubMenu(t) ? e += " [" + this.language.translate("Click, tap or press ENTER to open") + "]" : "print" == t.type ? e = this.language.translate("Click, tap or press ENTER to print.") : this.typeClickable(t.type) && (e = this.language.translate("Click, tap or press ENTER to export as %1.", void 0, e)), this.adapter.apply("rederLabel", {
                    label: e,
                    branch: t
                }).label
            }, Object.defineProperty(e.prototype, "container", {
                get: function() {
                    return this._container
                },
                set: function(t) {
                    this._container = t, this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "items", {
                get: function() {
                    return this._items
                },
                set: function(t) {
                    this._items = t, this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "tag", {
                set: function(t) {
                    this._menuTag = t, this._itemTag = "ul" == t ? "li" : "div", this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "menuTag", {
                get: function() {
                    return this.adapter.apply("menuTag", {
                        tag: this._menuTag
                    }).tag
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "itemTag", {
                get: function() {
                    return this.adapter.apply("itemTag", {
                        tag: this._itemTag
                    }).tag
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "labelTag", {
                get: function() {
                    return this.adapter.apply("labelTag", {
                        tag: this._labelTag
                    }).tag
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "iconTag", {
                get: function() {
                    return this.adapter.apply("iconTag", {
                        tag: this._iconTag
                    }).tag
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "align", {
                get: function() {
                    return this.adapter.apply("align", {
                        align: this._align
                    }).align
                },
                set: function(t) {
                    this._align = t, this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "verticalAlign", {
                get: function() {
                    return this.adapter.apply("verticalAlign", {
                        verticalAlign: this._verticalAlign
                    }).verticalAlign
                },
                set: function(t) {
                    this._verticalAlign = t, this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "classPrefix", {
                get: function() {
                    return this.adapter.apply("classPrefix", {
                        classPrefix: this._classPrefix
                    }).classPrefix
                },
                set: function(t) {
                    this._classPrefix = t, this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "defaultStyles", {
                get: function() {
                    return this.adapter.apply("defaultStyles", {
                        defaultStyles: this._defaultStyles
                    }).defaultStyles
                },
                set: function(t) {
                    this._defaultStyles != t && (this._defaultStyles = t, t && this.loadDefaultCSS()), this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.loadDefaultCSS = function() {
                this._disposers.push(function(t) {
                    var e = t || "amexport",
                        i = new a.a;
                    return l.insertKeyIfEmpty(e, function() {
                        var t = new s.c([new r.c("." + e + "-menu *", {
                            "box-sizing": "border-box"
                        }), new r.c("." + e + "-menu-level-0", {
                            position: "absolute",
                            top: "5px",
                            right: "5px"
                        }), new r.c("." + e + "-menu-level-0." + e + "-left", {
                            right: "auto",
                            left: "5px"
                        }), new r.c("." + e + "-menu-level-0." + e + "-right", {
                            right: "5px",
                            left: "auto"
                        }), new r.c("." + e + "-menu-level-0." + e + "-top", {
                            top: "5px",
                            bottom: "auto"
                        }), new r.c("." + e + "-menu-level-0." + e + "-bottom", {
                            top: "auto",
                            bottom: "5px"
                        }), new r.c("." + e + "-item." + e + "-item-level-0", {
                            opacity: "0.3",
                            width: "30px",
                            "min-height": "30px",
                            transition: "all 100ms ease-in-out"
                        }), new r.c("div:hover ." + e + "-item." + e + "-item-level-0, ." + e + "-item." + e + "-item-level-0.active", {
                            opacity: "0.9"
                        }), new r.c("." + e + "-item." + e + "-item-level-0 > a", {
                            padding: "0",
                            "text-align": "center",
                            overflow: "hidden"
                        }), new r.c("." + e + "-item." + e + "-item-level-0:before", {
                            display: "block"
                        }), new r.c("." + e + "-item", {
                            position: "relative",
                            display: "block",
                            opacity: "0",
                            "z-index": "1",
                            "border-radius": "3px",
                            "background-color": i.getFor("secondaryButton").hex,
                            padding: "0",
                            margin: "1px 1px 0 0",
                            color: i.getFor("secondaryButton").alternative.hex,
                            transition: "all 100ms ease-in-out, opacity 0.5s ease 0.5s"
                        }), new r.c("." + e + "-left ." + e + "-item", {
                            margin: "1px 0 0 1px"
                        }), new r.c("." + e + "-item:hover, ." + e + "-item.active", {
                            background: i.getFor("secondaryButtonHover").hex,
                            color: i.getFor("secondaryButtonText").hex
                        }), new r.c("." + e + "-item > ." + e + "-menu", {
                            position: "absolute",
                            top: "-1px",
                            right: "0",
                            "margin-right": "100%"
                        }), new r.c("." + e + "-left ." + e + "-item > ." + e + "-menu", {
                            left: "0",
                            right: "auto",
                            "margin-left": "100%",
                            "margin-right": "auto"
                        }), new r.c("." + e + "-right ." + e + "-item > ." + e + "-menu", {
                            left: "auto",
                            right: "0",
                            "margin-left": "auto",
                            "margin-right": "100%"
                        }), new r.c("." + e + "-top ." + e + "-item > ." + e + "-menu", {
                            top: "-1px",
                            bottom: "auto"
                        }), new r.c("." + e + "-bottom ." + e + "-item > ." + e + "-menu", {
                            top: "auto",
                            bottom: "0"
                        }), new r.c("." + e + "-item > ." + e + "-menu", {
                            display: "none"
                        }), new r.c("." + e + "-item:hover > ." + e + "-menu, ." + e + "-item.active > ." + e + "-menu", {
                            display: "block"
                        }), new r.c("." + e + "-item:hover > ." + e + "-menu > ." + e + "-item, ." + e + "-item.active > ." + e + "-menu > ." + e + "-item", {
                            opacity: "1"
                        }), new r.c("." + e + "-menu", {
                            display: "block",
                            "list-style": "none",
                            margin: "0",
                            padding: "0"
                        }), new r.c("." + e + "-label", {
                            display: "block",
                            cursor: "default",
                            padding: "0.5em 1em"
                        }), new r.c("." + e + "-icon", {
                            display: "block",
                            cursor: "default",
                            padding: "0.2em 0.4em",
                            width: "1.2em",
                            height: "1.2em",
                            "min-width": "32px",
                            "min-height": "32px",
                            margin: "auto auto",
                            "border-radius": "3px"
                        }), new r.c("." + e + "-item-level-0 > ." + e + "-icon", {
                            padding: "0.1em 0.2em"
                        }), new r.c("." + e + "-clickable", {
                            cursor: "pointer"
                        })]);
                        return new s.a(function() {
                            l.removeKey(e), t.dispose()
                        })
                    }).increment()
                }(this.classPrefix)), this._element && (this._element.style.display = "")
            }, Object.defineProperty(e.prototype, "tabindex", {
                get: function() {
                    return this.adapter.apply("tabindex", {
                        tabindex: this._tabindex
                    }).tabindex
                },
                set: function(t) {
                    this._tabindex = t, this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "language", {
                get: function() {
                    var t = this,
                        e = this._language.get();
                    return null == e && (e = new p.a, this._language.set(e, e.events.on("localechanged", function(e) {
                        t.invalidate()
                    }))), e
                },
                set: function(t) {
                    var e = this;
                    this._language.set(t, t.events.on("localechanged", function(t) {
                        e.invalidate()
                    })), this.invalidate()
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.close = function() {
                var t = this;
                if (this._ignoreNextClose) this._ignoreNextClose = !1;
                else {
                    if (this.closeOnClick && (this._element.style.pointerEvents = "none", setTimeout(function() {
                            t._element.style.pointerEvents = "auto"
                        }, 100)), this._currentSelection && (this.setBlur(this._currentSelection), this._currentSelection = void 0), this._element)
                        for (var e = this._element.getElementsByClassName("active"), i = e.length - 1; i >= 0; i--) e[i] && r.x(e[i], "active");
                    this.events.dispatchImmediately("closed", {
                        type: "closed",
                        target: this
                    })
                }
            }, e.prototype.selectBranch = function(t) {
                var e = this;
                if (t.closeTimeout && (this.removeDispose(t.closeTimeout), t.closeTimeout = void 0), r.f(t.interactions.element.parentElement, "active"), this._currentSelection && this._currentSelection !== t && this._currentSelection.ascendants && y.each(y.concat(y.fromArray([this._currentSelection]), this._currentSelection.ascendants.iterator()), function(i) {
                        t.ascendants.contains(i) || t === i || e.unselectBranch(i, !0)
                    }), y.each(t.ascendants.iterator(), function(t) {
                        t.closeTimeout && (e.removeDispose(t.closeTimeout), t.closeTimeout = void 0), r.f(t.interactions.element.parentElement, "active")
                    }), this._currentSelection = t, this.events.isEnabled("branchselected")) {
                    var i = {
                        type: "branchselected",
                        target: this,
                        branch: t
                    };
                    this.events.dispatchImmediately("branchselected", i)
                }
            }, e.prototype.unselectBranch = function(t, e) {
                if (r.x(t.interactions.element.parentElement, "active"), this._currentSelection == t && (this._currentSelection = void 0), this.events.isEnabled("branchunselected")) {
                    var i = {
                        type: "branchunselected",
                        target: this,
                        branch: t
                    };
                    this.events.dispatchImmediately("branchunselected", i)
                }
            }, e.prototype.delayUnselectBranch = function(t, e) {
                var i = this;
                t.closeTimeout && (this.removeDispose(t.closeTimeout), t.closeTimeout = void 0), t.closeTimeout = this.setTimeout(function() {
                    i.unselectBranch(t, e)
                }, this.closeDelay), !0 !== e && t.ascendants && y.each(t.ascendants.iterator(), function(t) {
                    i.delayUnselectBranch(t, !0)
                })
            }, e.prototype.moveSelection = function(t) {
                if (this._currentSelection) {
                    var e;
                    if ("up" == t) e = this.getPrevSibling(this._currentSelection);
                    else if ("down" == t) e = this.getNextSibling(this._currentSelection);
                    else if ("left" == t && "right" == this.align || "right" == t && "left" == this.align) {
                        var i = this.getSubMenu(this._currentSelection);
                        null != i && (e = i[0])
                    } else("right" == t && "right" == this.align || "left" == t && "left" == this.align) && (e = this.getParentItem(this._currentSelection));
                    e && e !== this._currentSelection && (this.selectBranch(e), this.setFocus(e), this._currentSelection = e)
                }
            }, e.prototype.getSiblings = function(t) {
                var e = this.getParentItem(t);
                return e && e.menu ? e.menu : []
            }, e.prototype.getParentItem = function(t) {
                return t.ascendants && t.ascendants.length ? t.ascendants.getIndex(t.ascendants.length - 1) : void 0
            }, e.prototype.getNextSibling = function(t) {
                var e = this.getSiblings(t);
                if (e.length > 1) {
                    var i = e.indexOf(t) + 1;
                    return e[i = e.length == i ? 0 : i].unsupported ? this.getNextSibling(e[i]) : e[i]
                }
                return t
            }, e.prototype.getPrevSibling = function(t) {
                var e = this.getSiblings(t);
                if (e.length > 1) {
                    var i = e.indexOf(t) - 1;
                    return e[i = -1 == i ? e.length - 1 : i].unsupported ? this.getPrevSibling(e[i]) : e[i]
                }
                return t
            }, e.prototype.setFocus = function(t) {
                if (t.interactions) try {
                    t.interactions.element.focus()
                } catch (t) {}
            }, e.prototype.setBlur = function(t) {
                if (t.interactions) try {
                    t.interactions.element.blur()
                } catch (t) {}
            }, e.prototype.hideBranch = function(t) {
                t.element.style.display = "none"
            }, e.prototype.showBranch = function(t) {
                t.element.style.display = ""
            }, e
        }(d.a)
    },
    qK31: function(t, e, i) {
        var n = i("AzDz");
        t.exports = function(t) {
            if (n(t)) throw TypeError("The method doesn't accept regular expressions");
            return t
        }
    },
    qcEY: function(t, e, i) {
        var n = i("0sYB"),
            r = i("5SyC");
        n({
            target: "Math",
            stat: !0,
            forced: r != Math.expm1
        }, {
            expm1: r
        })
    },
    quKg: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return p
        }), i.d(e, "a", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("DXFp"),
            a = i("tjMS"),
            o = i("Puh1"),
            s = i("aCit"),
            l = i("Wglt"),
            u = i("v9UT"),
            h = i("Gg2j"),
            c = i("Mtpk"),
            p = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "PieChartDataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), e
            }(r.b),
            d = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "PieChart", e.innerRadius = 0, e.radius = Object(a.c)(80), e.align = "none", e.valign = "none", e.startAngle = -90, e.endAngle = 270;
                    var i = e.seriesContainer;
                    return i.isMeasured = !0, i.valign = "middle", i.align = "center", i.layout = "absolute", i.width = void 0, i.height = void 0, e.chartContainer.minHeight = 50, e.chartContainer.minWidth = 50, e.chartContainer.events.on("maxsizechanged", e.updateRadius, e, !1), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), c.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Pie chart"))
                }, e.prototype.validateLayout = function() {
                    t.prototype.validateLayout.call(this), this.updateRadius()
                }, e.prototype.handleSeriesAdded = function(e) {
                    t.prototype.handleSeriesAdded.call(this, e), this._chartPixelRadius = void 0, this.updateSeriesAngles()
                }, e.prototype.updateSeriesAngles = function() {
                    var t = this;
                    this.series.each(function(e) {
                        e._startAngleInternal = t.startAngle, e._endAngleInternal = t.endAngle
                    })
                }, e.prototype.updateRadius = function() {
                    var t = this.chartContainer,
                        e = h.getArcRect(this.startAngle, this.endAngle, 1),
                        i = {
                            x: 0,
                            y: 0,
                            width: 0,
                            height: 0
                        },
                        n = this.innerRadius;
                    n instanceof a.a && (i = h.getArcRect(this.startAngle, this.endAngle, n.value)), e = h.getCommonRectangle([e, i]);
                    var r = Math.min(t.innerWidth / e.width, t.innerHeight / e.height);
                    c.isNumber(r) || (r = 0);
                    var o = u.relativeRadiusToValue(this.radius, r),
                        s = u.relativeRadiusToValue(this.innerRadius, r),
                        p = (o - s) / this.series.length;
                    o == this._chartPixelRadius && s == this._chartPixelInnerRadius || (this._chartPixelRadius = o, this._chartPixelInnerRadius = s, l.each(l.indexed(this.series.iterator()), function(t) {
                        var e = t[0],
                            i = t[1],
                            n = s + u.relativeRadiusToValue(i.radius, o - s),
                            r = s + u.relativeRadiusToValue(i.innerRadius, o - s);
                        c.isNumber(n) || (n = s + p * (e + 1)), c.isNumber(r) || (r = s + p * e), i.pixelRadius = n, i.pixelInnerRadius = r
                    }), this.seriesContainer.definedBBox = {
                        x: o * e.x,
                        y: o * e.y,
                        width: o * e.width,
                        height: o * e.height
                    }, this.seriesContainer.invalidateLayout(), this.bulletsContainer.x = this.seriesContainer.x, this.bulletsContainer.y = this.seriesContainer.y)
                }, Object.defineProperty(e.prototype, "radius", {
                    get: function() {
                        return this.getPropertyValue("radius")
                    },
                    set: function(t) {
                        this.setPercentProperty("radius", t, !0, !1, 10, !1) && this.invalidateLayout()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "innerRadius", {
                    get: function() {
                        return this.getPropertyValue("innerRadius")
                    },
                    set: function(t) {
                        this.setPercentProperty("innerRadius", t, !0, !1, 10, !1)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createSeries = function() {
                    return new o.a
                }, Object.defineProperty(e.prototype, "startAngle", {
                    get: function() {
                        return this.getPropertyValue("startAngle")
                    },
                    set: function(t) {
                        this.setPropertyValue("startAngle", t) && (this.updateRadius(), this.updateSeriesAngles())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "endAngle", {
                    get: function() {
                        return this.getPropertyValue("endAngle")
                    },
                    set: function(t) {
                        this.setPropertyValue("endAngle", t) && (this.updateRadius(), this.updateSeriesAngles())
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        s.c.registeredClasses.PieChart = d, s.c.registeredClasses.PieChartDataItem = p
    },
    qzbU: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("Vs7R"),
            a = i("aCit"),
            o = i("MIZb"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "Tick";
                    var i = new o.a;
                    return e.fillOpacity = 0, e.length = 6, e.strokeOpacity = .2, e.stroke = i.getFor("grid"), e.isMeasured = !1, e.nonScalingStroke = !0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "length", {
                    get: function() {
                        return this.disabled ? 0 : this.getPropertyValue("length")
                    },
                    set: function(t) {
                        this.setPropertyValue("length", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        a.c.registeredClasses.Tick = s
    },
    rCh7: function(t, e, i) {
        var n = i("6aQQ"),
            r = i("DUr5");
        t.exports = function(t) {
            return n(function() {
                return !!r[t]() || "â€‹Â…á Ž" != "â€‹Â…á Ž" [t]() || r[t].name !== t
            })
        }
    },
    "rhk+": function(t, e, i) {
        var n = i("tHyI"),
            r = i("ScUe"),
            a = i("swFJ"),
            o = Math.ceil,
            s = function(t) {
                return function(e, i, s) {
                    var l, u, h = String(a(e)),
                        c = h.length,
                        p = void 0 === s ? " " : String(s),
                        d = n(i);
                    return d <= c || "" == p ? h : (l = d - c, (u = r.call(p, o(l / p.length))).length > l && (u = u.slice(0, l)), t ? h + u : u + h)
                }
            };
        t.exports = {
            start: s(!1),
            end: s(!0)
        }
    },
    ruXs: function(t, e, i) {
        i("6WsA")("toStringTag")
    },
    s4go: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("3sMl"),
            a = i("hqo8"),
            o = i("7X7h"),
            s = i("EErT"),
            l = i("Ox5T"),
            u = i("gxUV").f;
        r && n({
            target: "Object",
            proto: !0,
            forced: a
        }, {
            __lookupGetter__: function(t) {
                var e, i = o(this),
                    n = s(t, !0);
                do {
                    if (e = u(i, n)) return e.get
                } while (i = l(i))
            }
        })
    },
    sB9f: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("7X7h"),
            o = i("Ox5T"),
            s = i("QKtu");
        n({
            target: "Object",
            stat: !0,
            forced: r(function() {
                o(1)
            }),
            sham: !s
        }, {
            getPrototypeOf: function(t) {
                return o(a(t))
            }
        })
    },
    sEiD: function(t, e, i) {
        i("eygo")("Int16", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        })
    },
    sSOU: function(t, e, i) {
        "use strict";
        var n = i("Wqjq").charAt,
            r = i("SqFF"),
            a = i("vBfr"),
            o = r.set,
            s = r.getterFor("String Iterator");
        a(String, "String", function(t) {
            o(this, {
                type: "String Iterator",
                string: String(t),
                index: 0
            })
        }, function() {
            var t, e = s(this),
                i = e.string,
                r = e.index;
            return r >= i.length ? {
                value: void 0,
                done: !0
            } : (t = n(i, r), e.index += t.length, {
                value: t,
                done: !1
            })
        })
    },
    sVTF: function(t, e, i) {
        i("0sYB")({
            target: "Number",
            stat: !0
        }, {
            isNaN: function(t) {
                return t != t
            }
        })
    },
    saPf: function(t, e, i) {
        var n = i("swFJ"),
            r = /"/g;
        t.exports = function(t, e, i, a) {
            var o = String(n(t)),
                s = "<" + e;
            return "" !== i && (s += " " + i + '="' + String(a).replace(r, "&quot;") + '"'), s + ">" + o + "</" + e + ">"
        }
    },
    sgPD: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("jnLg").end,
            a = i("rCh7")("trimEnd"),
            o = a ? function() {
                return r(this)
            } : "".trimEnd;
        n({
            target: "String",
            proto: !0,
            forced: a
        }, {
            trimEnd: o,
            trimRight: o
        })
    },
    swFJ: function(t, e) {
        t.exports = function(t) {
            if (void 0 == t) throw TypeError("Can't call method on " + t);
            return t
        }
    },
    sxA1: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return c
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("vMqJ"),
            o = i("P7v+"),
            s = i("aCit"),
            l = i("Wglt"),
            u = i("Gg2j"),
            h = i("Mtpk"),
            c = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e._stops = new a.b, e._rotation = 0, e.className = "LinearGradient", e._stops.events.on("setIndex", e.validate, e), e._stops.events.on("inserted", e.validate, e), e.element = e.paper.addGroup("linearGradient"), e.id = "gradient-" + s.c.getUniqueId(), e.element.attr({
                        id: e.id
                    }), e._disposers.push(e.element), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.validate = function() {
                    var t = this,
                        e = (this._rotation + 90) * u.RADIANS,
                        i = Math.round(50 + 50 * Math.sin(e + Math.PI)) + "%",
                        n = Math.round(50 + 50 * Math.cos(e)) + "%",
                        r = Math.round(50 + 50 * Math.sin(e)) + "%",
                        a = Math.round(50 + 50 * Math.cos(e + Math.PI)) + "%",
                        o = this.element;
                    o.removeChildNodes(), o.attr({
                        x1: i,
                        x2: r,
                        y1: n,
                        y2: a
                    }), l.each(l.indexed(this._stops.iterator()), function(e) {
                        var i = e[0],
                            n = e[1],
                            r = n.offset;
                        h.isNumber(r) || (r = i / (t._stops.length - 1));
                        var a = t.paper.add("stop");
                        h.hasValue(n.color) && a.attr({
                            "stop-color": n.color.toString()
                        }), h.isNumber(n.opacity) && a.attr({
                            "stop-opacity": n.opacity
                        }), h.isNumber(r) && a.attr({
                            offset: r
                        }), o.add(a)
                    })
                }, e.prototype.clear = function() {
                    this._stops.clear()
                }, e.prototype.addColor = function(t, e, i) {
                    this._stops.push({
                        color: t,
                        opacity: e,
                        offset: i
                    })
                }, Object.defineProperty(e.prototype, "stops", {
                    get: function() {
                        return this._stops
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "paper", {
                    get: function() {
                        return this._paper ? this._paper : Object(o.b)()
                    },
                    set: function(t) {
                        this._paper != t && (this._paper = t, this.validate(), t.appendDef(this.element))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "rotation", {
                    get: function() {
                        return this._rotation
                    },
                    set: function(t) {
                        this._rotation = t, this.validate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.stops.copyFrom(e.stops), this._rotation = e.rotation
                }, e
            }(r.a);
        s.c.registeredClasses.LinearGradient = c
    },
    sxi3: function(t, e, i) {
        var n = i("exNg");
        t.exports = function(t) {
            var e = n(t);
            if (e < 0) throw RangeError("The argument can't be less than 0");
            return e
        }
    },
    "t+NF": function(t, e, i) {
        var n = i("3sMl"),
            r = i("6aQQ"),
            a = i("BAfC");
        t.exports = !n && !r(function() {
            return 7 != Object.defineProperty(a("div"), "a", {
                get: function() {
                    return 7
                }
            }).a
        })
    },
    "t/IY": function(t, e, i) {
        i("6WsA")("match")
    },
    tCdX: function(t, e, i) {
        var n = i("0sYB"),
            r = i("vjgd"),
            a = i("0FA2");
        n({
            target: "Array",
            proto: !0
        }, {
            fill: r
        }), a("fill")
    },
    tEse: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("X/sl").filter,
            a = i("Nfo5"),
            o = n.aTypedArray,
            s = n.aTypedArrayConstructor;
        (0, n.exportTypedArrayMethod)("filter", function(t) {
            for (var e = r(o(this), t, arguments.length > 1 ? arguments[1] : void 0), i = a(this, this.constructor), n = 0, l = e.length, u = new(s(i))(l); l > n;) u[n] = e[n++];
            return u
        })
    },
    tHyI: function(t, e, i) {
        var n = i("exNg"),
            r = Math.min;
        t.exports = function(t) {
            return t > 0 ? r(n(t), 9007199254740991) : 0
        }
    },
    tNpr: function(t, e, i) {
        var n = i("6aQQ"),
            r = i("2xmP"),
            a = "".split;
        t.exports = n(function() {
            return !Object("z").propertyIsEnumerable(0)
        }) ? function(t) {
            return "String" == r(t) ? a.call(t, "") : Object(t)
        } : Object
    },
    tf09: function(t, e, i) {
        var n = i("RjhM");
        t.exports = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(n)
    },
    tg9j: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("tHyI"),
            a = i("Y8n3"),
            o = i("Nfo5"),
            s = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("subarray", function(t, e) {
            var i = s(this),
                n = i.length,
                l = a(t, n);
            return new(o(i, i.constructor))(i.buffer, i.byteOffset + l * i.BYTES_PER_ELEMENT, r((void 0 === e ? n : a(e, n)) - l))
        })
    },
    tjMS: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return n
        }), e.c = function(t) {
            return new n(t)
        }, e.b = function(t) {
            return t instanceof n
        };
        var n = function() {
            function t(t) {
                this._value = t
            }
            return Object.defineProperty(t.prototype, "value", {
                get: function() {
                    return this._value / 100
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(t.prototype, "percent", {
                get: function() {
                    return this._value
                },
                enumerable: !0,
                configurable: !0
            }), t.prototype.toString = function() {
                return this._value + "%"
            }, t
        }()
    },
    tqfd: function(t, e, i) {
        i("eygo")("Uint8", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        })
    },
    u5pl: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("saPf");
        n({
            target: "String",
            proto: !0,
            forced: i("v0oN")("italics")
        }, {
            italics: function() {
                return r(this, "i", "", "")
            }
        })
    },
    uAB6: function(t, e, i) {
        i("6WsA")("iterator")
    },
    uKH8: function(t, e, i) {
        "use strict";
        var n = i("HnbP"),
            r = i("Kg2n"),
            a = [].slice,
            o = {};
        t.exports = Function.bind || function(t) {
            var e = n(this),
                i = a.call(arguments, 1),
                s = function() {
                    var n = i.concat(a.call(arguments));
                    return this instanceof s ? function(t, e, i) {
                        if (!(e in o)) {
                            for (var n = [], r = 0; r < e; r++) n[r] = "a[" + r + "]";
                            o[e] = Function("C,a", "return new C(" + n.join(",") + ")")
                        }
                        return o[e](t, i)
                    }(e, n.length, n) : e.apply(t, n)
                };
            return r(e.prototype) && (s.prototype = e.prototype), s
        }
    },
    uPlY: function(t, e, i) {
        "use strict";
        var n = i("6aQQ"),
            r = i("rhk+").start,
            a = Math.abs,
            o = Date.prototype,
            s = o.getTime,
            l = o.toISOString;
        t.exports = n(function() {
            return "0385-07-25T07:06:39.999Z" != l.call(new Date(-5e13 - 1))
        }) || !n(function() {
            l.call(new Date(NaN))
        }) ? function() {
            if (!isFinite(s.call(this))) throw RangeError("Invalid time value");
            var t = this.getUTCFullYear(),
                e = this.getUTCMilliseconds(),
                i = t < 0 ? "-" : t > 9999 ? "+" : "";
            return i + r(a(t), i ? 6 : 4, 0) + "-" + r(this.getUTCMonth() + 1, 2, 0) + "-" + r(this.getUTCDate(), 2, 0) + "T" + r(this.getUTCHours(), 2, 0) + ":" + r(this.getUTCMinutes(), 2, 0) + ":" + r(this.getUTCSeconds(), 2, 0) + "." + r(e, 3, 0) + "Z"
        } : l
    },
    uWmK: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return w
        }), i.d(e, "c", function() {
            return O
        }), i.d(e, "a", function() {
            return T
        });
        var n = i("m4/l"),
            r = i("Y9w3"),
            a = i("A6AV"),
            o = i("vMqJ"),
            s = i("CnhP"),
            l = i("C6dT"),
            u = i("p9TX"),
            h = i("WYhe"),
            c = i("aCit"),
            p = i("zhwk"),
            d = i("tjMS"),
            f = i("MIZb"),
            g = i("v9UT"),
            y = i("Mtpk"),
            m = i("Gg2j"),
            v = i("Vs7R"),
            b = i("hD5A"),
            x = i("qCRI"),
            _ = i("TGuK"),
            P = i("ISWh"),
            w = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.childrenCreated = !1, e.className = "LegendDataItem", e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "label", {
                    get: function() {
                        var t = this;
                        if (!this._label) {
                            var e = this.component.labels.create();
                            this._label = e, this.addSprite(e), this._disposers.push(e), e.parent = this.itemContainer, this._disposers.push(new b.b(function() {
                                y.hasValue(t.component) && t.component.labels.removeValue(e)
                            }))
                        }
                        return this._label
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "color", {
                    get: function() {
                        return this.properties.color
                    },
                    set: function(t) {
                        this.setProperty("color", t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "valueLabel", {
                    get: function() {
                        var t = this;
                        if (!this._valueLabel) {
                            var e = this.component.valueLabels.create();
                            this._valueLabel = e, this.addSprite(e), this._disposers.push(e), e.parent = this.itemContainer, this._disposers.push(new b.b(function() {
                                y.hasValue(t.component) && t.component.valueLabels.removeValue(e)
                            }))
                        }
                        return this._valueLabel
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "itemContainer", {
                    get: function() {
                        var t = this;
                        if (!this._itemContainer) {
                            var e = this.component,
                                i = e.itemContainers.create();
                            i.parent = e, this._itemContainer = i, this.addSprite(i), this._disposers.push(i), i.togglable && i.events.on("toggled", function(t) {
                                e.toggleDataItem(t.target.dataItem)
                            }, void 0, !1), i.focusable && (i.events.on("focus", function(t) {
                                e.focusedItem = t.target.dataItem
                            }, void 0, !1), i.events.on("blur", function(t) {
                                e.focusedItem = void 0
                            }, void 0, !1)), this._disposers.push(new b.b(function() {
                                y.hasValue(t.component) && t.component.itemContainers.removeValue(i)
                            })), this.dataContext.uidAttr && (i.readerControls = this.dataContext.uidAttr(), i.readerLabelledBy = this.dataContext.uidAttr());
                            var n = this.dataContext;
                            if ((n instanceof a.a || n instanceof v.a) && !n.isDisposed()) {
                                var r = function(t) {
                                    i.readerChecked = t.visible, i.events.disableType("toggled"), i.isActive = !t.visible, i.events.enableType("toggled")
                                };
                                n.addDisposer(new b.b(function() {
                                    t.component && t.component.dataItems.remove(t)
                                })), n instanceof v.a ? (i.addDisposer(n.events.on("visibilitychanged", r, void 0, !1)), i.addDisposer(n.events.on("hidden", function(t) {
                                    i.readerChecked = !1, i.events.disableType("toggled"), i.isActive = !0, i.events.enableType("toggled")
                                }, void 0, !1)), i.addDisposer(n.events.on("shown", function(t) {
                                    i.readerChecked = !0, i.events.disableType("toggled"), i.isActive = !1, i.events.enableType("toggled")
                                }, void 0, !1))) : i.addDisposer(n.events.on("visibilitychanged", r, void 0, !1))
                            }
                        }
                        return this._itemContainer
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "marker", {
                    get: function() {
                        var t = this;
                        if (!this._marker) {
                            var e = this.component.markers.create();
                            this._marker = e, e.parent = this.itemContainer, this.addSprite(e), this._disposers.push(e), this._disposers.push(new b.b(function() {
                                y.hasValue(t.component) && t.component.markers.removeValue(e)
                            }))
                        }
                        return this._marker
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(a.a),
            O = function() {
                return function() {
                    this.createMarker = !0
                }
            }(),
            T = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "Legend", e.layout = "grid", e.setPropertyValue("useDefaultMarker", !1), e.setPropertyValue("scrollable", !1), e.setPropertyValue("contentAlign", "center");
                    var i = new l.a;
                    i.applyOnClones = !0, i.padding(8, 0, 8, 0), i.margin(0, 10, 0, 10), i.layout = "horizontal", i.clickable = !0, i.focusable = !0, i.role = "switch", i.togglable = !0, i.cursorOverStyle = x.a.pointer, i.background.fillOpacity = 0, e.itemContainers = new o.e(i), e._disposers.push(new o.c(e.itemContainers)), e._disposers.push(e.itemContainers.template), e._disposers.push(Object(p.b)().body.events.on("keyup", function(t) {
                        h.b.isKey(t.event, "enter") && e.focusedItem && e.focusedItem.itemContainer.clickable && e.toggleDataItem(e.focusedItem)
                    }, e));
                    var n = new f.a,
                        r = new l.a;
                    r.width = 23, r.height = 23, r.interactionsEnabled = !1, r.applyOnClones = !0, r.setStateOnChildren = !0, r.background.fillOpacity = 0, r.background.strokeOpacity = 0, r.propertyFields.fill = "fill", r.valign = "middle";
                    var a = n.getFor("disabledBackground");
                    r.events.on("childadded", function(t) {
                        var e = t.newValue.states.create("active");
                        e.properties.stroke = a, e.properties.fill = a
                    }), e.markers = new o.e(r), e._disposers.push(new o.c(e.markers)), e._disposers.push(e.markers.template);
                    var c = r.createChild(s.a);
                    c.width = Object(d.c)(100), c.height = Object(d.c)(100), c.applyOnClones = !0, c.propertyFields.fill = "fill", c.strokeOpacity = 0;
                    var g = new u.a;
                    g.text = "{name}", g.margin(0, 5, 0, 5), g.valign = "middle", g.applyOnClones = !0, g.states.create("active").properties.fill = n.getFor("disabledBackground"), e.labels = new o.e(g), e._disposers.push(new o.c(e.labels)), e._disposers.push(e.labels.template), g.interactionsEnabled = !1, g.truncate = !0, g.fullWords = !1;
                    var y = new u.a;
                    return y.margin(0, 5, 0, 0), y.valign = "middle", y.width = 50, y.align = "right", y.textAlign = "end", y.applyOnClones = !0, y.states.create("active").properties.fill = n.getFor("disabledBackground"), y.interactionsEnabled = !1, e.valueLabels = new o.e(y), e._disposers.push(new o.c(e.valueLabels)), e._disposers.push(e.valueLabels.template), e.position = "bottom", i.states.create("active"), i.setStateOnChildren = !0, e.role = "group", e.events.on("layoutvalidated", e.handleScrollbar, e, !1), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), y.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Legend"))
                }, e.prototype.createDataItem = function() {
                    return new w
                }, e.prototype.validateDataElement = function(e) {
                    t.prototype.validateDataElement.call(this, e);
                    var i = e.itemContainer,
                        n = e.marker;
                    g.used(e.label);
                    var r = e.valueLabel;
                    i.readerChecked = e.dataContext.visible, e.dataContext.legendDataItem = e, e.label.width = void 0, "right" == r.align && (r.width = void 0);
                    var a = e.dataContext.legendSettings,
                        o = e.dataContext;
                    !o.createLegendMarker || this.useDefaultMarker && o instanceof v.a || e.childrenCreated || (o.createLegendMarker(n), e.childrenCreated = !0), o.updateLegendValue && o.updateLegendValue(), o.component && o.component.updateLegendValue && o.component.updateLegendValue(o), r.invalid && r.validate(), "" == r.text || void 0 == r.text ? r.__disabled = !0 : r.__disabled = !1, !a || void 0 == a.itemValueText && void 0 == a.valueText || (r.__disabled = !1);
                    var s = e.dataContext.visible;
                    void 0 === s && (s = !0), s = y.toBoolean(s), e.dataContext.visible = s, i.events.disableType("toggled"), i.isActive = !s, i.isActive ? i.setState("active", 0) : i.setState("default", 0), i.events.enableType("toggled")
                }, e.prototype.afterDraw = function() {
                    var e = this,
                        i = this.getPropertyValue("maxWidth"),
                        n = 0;
                    this.labels.each(function(t) {
                        t.invalid && t.validate(), t.measuredWidth + t.pixelMarginLeft + t.pixelMarginRight > n && (n = t.measuredWidth + t.pixelMarginLeft + t.pixelMarginRight)
                    });
                    var r = 0;
                    this.valueLabels.each(function(t) {
                        t.invalid && t.validate(), t.measuredWidth + t.pixelMarginLeft + t.pixelMarginRight > r && (r = t.measuredWidth + t.pixelMarginLeft + t.pixelMarginRight)
                    });
                    var a = 0;
                    this.markers.each(function(t) {
                        t.invalid && t.validate(), t.measuredWidth + t.pixelMarginLeft + t.pixelMarginRight > a && (a = t.measuredWidth + t.pixelMarginLeft + t.pixelMarginRight)
                    });
                    var o, s = this.itemContainers.template,
                        l = s.pixelMarginRight + s.pixelMarginLeft,
                        u = n + r + a;
                    y.isNumber(i) ? ((i -= l) > u && (i = u), o = i - a - r) : o = n, this.labels.each(function(t) {
                        ("right" == e.valueLabels.template.align || t.measuredWidth > o) && (t.width = o - t.pixelMarginLeft - t.pixelMarginRight)
                    }), "right" == this.valueLabels.template.align && this.valueLabels.each(function(t) {
                        t.width = r
                    }), t.prototype.afterDraw.call(this)
                }, e.prototype.handleScrollbar = function() {
                    var t = this.scrollbar;
                    this.scrollable && t && (t.height = this.measuredHeight, t.x = this.measuredWidth - t.pixelWidth - t.pixelMarginLeft, this.contentHeight > this.measuredHeight ? (t.visible = !0, t.thumb.height = t.height * this.measuredHeight / this.contentHeight, this.paddingRight = t.pixelWidth + t.pixelMarginLeft + +t.pixelMarginRight) : t.visible = !1, this.updateMasks())
                }, Object.defineProperty(e.prototype, "position", {
                    get: function() {
                        return this.getPropertyValue("position")
                    },
                    set: function(t) {
                        this.setPropertyValue("position", t) && ("left" == t || "right" == t ? (this.margin(10, 5, 10, 10), this.valign = "middle", this.valueLabels.template.align = "right", y.isNumber(this.maxColumns) || (this.maxColumns = 1), this.width = void 0, this.maxWidth = 220) : (this.maxColumns = void 0, this.width = Object(d.c)(100), this.valueLabels.template.align = "left"), this.invalidate())
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "useDefaultMarker", {
                    get: function() {
                        return this.getPropertyValue("useDefaultMarker")
                    },
                    set: function(t) {
                        this.setPropertyValue("useDefaultMarker", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "scrollable", {
                    get: function() {
                        return this.getPropertyValue("scrollable")
                    },
                    set: function(t) {
                        if (this.setPropertyValue("scrollable", t, !0))
                            if (t) {
                                var e = this.createChild(P.a);
                                this.scrollbar = e, e.isMeasured = !1, e.orientation = "vertical", e.endGrip.__disabled = !0, e.startGrip.__disabled = !0, e.visible = !1, e.marginLeft = 5, this._mouseWheelDisposer = this.events.on("wheel", this.handleWheel, this, !1), this._disposers.push(this._mouseWheelDisposer), this._disposers.push(e.events.on("rangechanged", this.updateMasks, this, !1))
                            } else this._mouseWheelDisposer && (this._mouseWheelDisposer.dispose(), this.scrollbar && (this.scrollbar.dispose(), this.scrollbar = void 0))
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleWheel = function(t) {
                    var e = t.shift.y,
                        i = this.scrollbar;
                    if (i) {
                        var n = e / 1e3 * this.measuredHeight / this.contentHeight,
                            r = i.end - i.start;
                        e > 0 ? (i.start = m.max(0, i.start - n), i.end = i.start + r) : (i.end = m.min(1, i.end - n), i.start = i.end - r)
                    }
                }, e.prototype.updateMasks = function() {
                    var t = this;
                    this.scrollbar && this.itemContainers.each(function(e) {
                        e.dy = -t.scrollbar.thumb.pixelY * t.contentHeight / t.measuredHeight, e.maskRectangle = {
                            x: 0,
                            y: -e.dy,
                            width: t.measuredWidth,
                            height: t.measuredHeight
                        }
                    })
                }, e.prototype.toggleDataItem = function(t) {
                    var e = t.dataContext;
                    !e.visible || e.isHiding || e instanceof v.a && e.isHidden ? (t.color = t.colorOrig, t.itemContainer.isActive = !1, !0 === e.hidden && (e.hidden = !1), e.show ? e.show() : e.visible = !0) : (t.itemContainer.isActive = !0, e.hide ? e.hide() : e.visible = !1, t.color = (new f.a).getFor("disabledBackground"))
                }, Object.defineProperty(e.prototype, "preloader", {
                    get: function() {},
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.handleDataItemPropertyChange = function(t, e) {
                    t.valueLabel.invalidate(), t.label.invalidate()
                }, e
            }(r.a);
        c.c.registeredClasses.Legend = T, _.c.push({
            relevant: _.b.widthXS,
            state: function(t, e) {
                if (t instanceof T && ("left" == t.position || "right" == t.position)) {
                    var i = t.states.create(e);
                    return i.properties.position = "bottom", i
                }
                return null
            }
        }), _.c.push({
            relevant: _.b.heightXS,
            state: function(t, e) {
                if (t instanceof T && ("top" == t.position || "bottom" == t.position)) {
                    var i = t.states.create(e);
                    return i.properties.position = "right", i
                }
                return null
            }
        }), _.c.push({
            relevant: _.b.isXS,
            state: function(t, e) {
                if (t instanceof T) {
                    var i = t.states.create(e);
                    return i.properties.disabled = !0, i
                }
                return null
            }
        })
    },
    ucqQ: function(t, e, i) {
        var n = i("Kg2n");
        t.exports = function(t) {
            if (!n(t) && null !== t) throw TypeError("Can't set " + String(t) + " as a prototype");
            return t
        }
    },
    ugpH: function(t, e, i) {
        var n = i("6aQQ"),
            r = i("KslR"),
            a = i("hvfb"),
            o = r("species");
        t.exports = function(t) {
            return a >= 51 || !n(function() {
                var e = [];
                return (e.constructor = {})[o] = function() {
                    return {
                        foo: 1
                    }
                }, 1 !== e[t](Boolean).foo
            })
        }
    },
    ux7t: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return f
        });
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("aCit"),
            o = i("x79X"),
            s = i("vMqJ"),
            l = i("8ZqG"),
            u = i("tjMS"),
            h = i("v9UT"),
            c = i("0FpR"),
            p = i("Qkdp"),
            d = i("Mtpk"),
            f = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.transitionDuration = 0, e.transitionEasing = c.cubicOut, e.properties = {}, e.propertyFields = {}, e.filters = new s.b, e.isTemplate = !1, e.className = "SpriteState", e._disposers.push(new s.c(e.filters)), e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "adapter", {
                    get: function() {
                        var t = this;
                        return this._adapterO || (this._adapterO = new o.a(this), this._adapterO.events.on("inserted", function(e) {
                            t[e.newValue.key] = t[e.newValue.key]
                        }, void 0, !1), this._adapterO.events.on("removed", function(e) {
                            t[e.newValue.key] = t[e.newValue.key]
                        }, void 0, !1)), this._adapterO
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.getPropertyValue = function(t) {
                    var e = this.properties[t],
                        i = this.sprite;
                    if (i) {
                        var n = this.propertyFields[t];
                        if (d.hasValue(n) && (i.dataItem && (e = i.dataItem.dataContext[n]), void 0 == e && (e = "__unset")), d.hasValue(e)) this._adapterO && (e = this._adapterO.apply(t, e));
                        else {
                            var r = i.getPropertyValue(t);
                            (e = this._adapterO ? this._adapterO.apply(t, r) : r) == r && (e = void 0)
                        }
                    }
                    return e
                }, e.prototype.copyFrom = function(t) {
                    t && t != this && (this.transitionDuration = t.transitionDuration, this.transitionEasing = t.transitionEasing, h.copyProperties(t.properties, this.properties), h.copyProperties(t.propertyFields, this.propertyFields), this.filters.copyFrom(t.filters), t._adapterO && this.adapter.copyFrom(t._adapterO))
                }, Object.defineProperty(e.prototype, "allValues", {
                    get: function() {
                        var t = this,
                            e = {};
                        if (p.each(this.properties, function(i, n) {
                                e[i] = t.getPropertyValue(i)
                            }), this._adapterO) {
                            var i = this._adapterO.keys();
                            p.each(i, function(i, n) {
                                var r = t.getPropertyValue(n);
                                e[n] = r
                            })
                        }
                        var n = this.propertyFields;
                        return p.each(n, function(i) {
                            var n = t.getPropertyValue(i);
                            e[i] = n
                        }), e
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.reset = function() {
                    this.properties = {}, this.filters.clear()
                }, e.prototype.processConfig = function(e) {
                    d.hasValue(e) && d.hasValue(e.properties) && p.each(e.properties, function(t, i) {
                        d.isString(i) && (i.match(/^[0-9.\-]+\%$/) ? e.properties[t] = Object(u.c)(d.toNumber(i)) : i.match(/^\#[0-9abcdef]{3,}$/i) && (e.properties[t] = Object(l.e)(i)))
                    }), t.prototype.processConfig.call(this, e)
                }, e.prototype.asFunction = function(e) {
                    return "transitionEasing" == e || t.prototype.asIs.call(this, e)
                }, e
            }(r.a);
        a.c.registeredClasses.SpriteState = f
    },
    v0oN: function(t, e, i) {
        var n = i("6aQQ");
        t.exports = function(t) {
            return n(function() {
                var e = "" [t]('"');
                return e !== e.toLowerCase() || e.split('"').length > 3
            })
        }
    },
    v36H: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return P
        }), i.d(e, "a", function() {
            return w
        });
        var n = i("m4/l"),
            r = i("Uf57"),
            a = i("Vs7R"),
            o = i("C6dT"),
            s = i("vMqJ"),
            l = i("YOID"),
            u = i("pR7v"),
            h = i("KknQ"),
            c = i("ncgu"),
            p = i("VB2N"),
            d = i("aCit"),
            f = i("PTiM"),
            g = i("p9TX"),
            y = i("GtDR"),
            m = i("Wglt"),
            v = i("Qkdp"),
            b = i("Mtpk"),
            x = i("hJ5i"),
            _ = i("TXRX"),
            P = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "LineSeriesDataItem", e
                }
                return Object(n.c)(e, t), e
            }(r.b),
            w = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.minDistance = .5, e.segments = new s.e(e.createSegment()), e.segments.template.applyOnClones = !0, e._disposers.push(new s.c(e.segments)), e._disposers.push(e.segments.template), e._segmentsIterator = new m.ListIterator(e.segments, function() {
                        return e.segments.create()
                    }), e._segmentsIterator.createNewItems = !0, e.className = "LineSeries", e.strokeOpacity = 1, e.fillOpacity = 0, e.connect = !0, e.tensionX = 1, e.tensionY = 1, e.autoGapCount = 1.1, e.segmentsContainer = e.mainContainer.createChild(o.a), e.segmentsContainer.isMeasured = !1, e.bulletsContainer.toFront(), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.applyInternalDefaults = function() {
                    t.prototype.applyInternalDefaults.call(this), b.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Line Series"))
                }, e.prototype.createSegment = function() {
                    return new l.a
                }, e.prototype.createDataItem = function() {
                    return new P
                }, e.prototype.setInitialWorkingValues = function(t) {
                    var e = this._yAxis.get(),
                        i = this._xAxis.get();
                    if (this.appeared && this.visible) {
                        var n = this.dataItems.getIndex(t.index - 1);
                        if (t.component = this, this.baseAxis == i && e instanceof u.a) {
                            var r = e.minZoomed;
                            if (n && (r = n.values.valueY.workingValue), t.setWorkingValue("valueY", r, 0), t.setWorkingValue("valueY", t.values.valueY.value), i instanceof h.a) t.setWorkingLocation("dateX", t.locations.dateX - 1, 0), t.setWorkingLocation("dateX", t.locations.dateX);
                            else if (i instanceof c.a && n) {
                                var a = t.valueX;
                                t.setWorkingValue("valueX", n.valueX, 0), t.setWorkingValue("valueX", a)
                            }
                        }
                        if (this.baseAxis == e && i instanceof u.a) {
                            var o = i.minZoomed;
                            if (n && (o = n.values.valueX.workingValue), t.setWorkingValue("valueX", o, 0), t.setWorkingValue("valueX", t.values.valueX.value), e instanceof h.a) t.setWorkingLocation("dateY", t.locations.dateX - 1, 0), t.setWorkingLocation("dateY", t.locations.dateY);
                            else if (e instanceof c.a && n) {
                                a = t.valueY;
                                t.setWorkingValue("valueY", n.valueY, 0), t.setWorkingValue("valueY", a)
                            }
                        }
                    } else this.baseAxis == i && e instanceof u.a && (i instanceof h.a && t.setWorkingLocation("dateX", t.locations.dateX), i instanceof p.a && t.setWorkingLocation("categoryX", t.locations.categoryX)), this.baseAxis == e && i instanceof u.a && (e instanceof h.a && t.setWorkingLocation("dateY", t.locations.dateY), e instanceof p.a && t.setWorkingLocation("categoryY", t.locations.categoryY))
                }, e.prototype.updateLegendValue = function(e, i) {
                    t.prototype.updateLegendValue.call(this, e, i), e && e.segment && (this.tooltipColorSource = e.segment)
                }, e.prototype.validate = function() {
                    var e = this;
                    t.prototype.validate.call(this), this.xAxis && this.yAxis && (this._segmentsIterator.reset(), this.openSegmentWrapper(this._adjustedStartIndex), m.each(this.axisRanges.iterator(), function(t) {
                        e.openSegmentWrapper(e._adjustedStartIndex, t)
                    }), m.each(this._segmentsIterator.iterator(), function(t) {
                        t.__disabled = !0
                    }))
                }, e.prototype.sliceData = function() {
                    for (var t = this.startIndex, e = this.endIndex, i = this.startIndex - 1; i >= 0; i--) {
                        if ((r = this.dataItems.getIndex(i)) && r.hasValue(this._xValueFields) && r.hasValue(this._yValueFields)) {
                            t = i;
                            break
                        }
                    }
                    this._adjustedStartIndex = this.findAdjustedIndex(t, ["stroke", "strokeWidth", "strokeDasharray", "strokeOpacity", "fill", "fillOpacity", "opacity"]);
                    i = this.endIndex;
                    for (var n = this.dataItems.length; i < n; i++) {
                        var r;
                        if ((r = this.dataItems.getIndex(i)) && r.hasValue(this._xValueFields) && r.hasValue(this._yValueFields)) {
                            e = i + 1;
                            break
                        }
                    }
                    this._workingStartIndex = t, this._workingEndIndex = e
                }, e.prototype.findAdjustedIndex = function(t, e) {
                    var i = this,
                        n = this.propertyFields,
                        r = t;
                    return x.each(e, function(e) {
                        if (b.hasValue(n[e]))
                            for (var a = r; a >= 0; a--) {
                                var o = i.dataItems.getIndex(a);
                                if (o && b.hasValue(o.properties[e])) {
                                    t > a && (t = a);
                                    break
                                }
                            }
                    }), t
                }, e.prototype.openSegmentWrapper = function(t, e) {
                    var i = {
                        index: t,
                        axisRange: e
                    };
                    do {
                        i = this.openSegment(i.index, i.axisRange)
                    } while (i)
                }, e.prototype.openSegment = function(t, e) {
                    var i = !1,
                        n = [];
                    t = Math.min(t, this.dataItems.length);
                    var r, o = Math.min(this._workingEndIndex, this.dataItems.length);
                    this._workingEndIndex = Math.min(this._workingEndIndex, this.dataItems.length);
                    var s = !1,
                        l = this._segmentsIterator.getFirst();
                    l.__disabled = !1, e ? (l.parent = e.contents, v.copyProperties(e.contents, l, a.b)) : (v.copyProperties(this, l, a.b), l.filters.clear(), l.parent = this.segmentsContainer);
                    for (var u = this.connect, c = !1, p = t; p < o; p++) {
                        var d = this.dataItems.getIndex(p);
                        if (d.segment = l, d.hasProperties && (p == t ? this.updateSegmentProperties(d.properties, l) : s = this.updateSegmentProperties(d.properties, l, !0)), d.hasValue(this._xValueFields) && d.hasValue(this._yValueFields)) this.addPoints(n, d, this.xField, this.yField), c = !0;
                        else {
                            if (p == t) continue;
                            if (!u && c) {
                                r = p;
                                break
                            }
                        }
                        if (r = p, this.baseAxis instanceof h.a) {
                            var f = this.dataItems.getIndex(p + 1);
                            if (f && this.baseAxis.makeGap(f, d)) {
                                i = !0;
                                break
                            }
                        }
                        if (s) break
                    }
                    return this.closeSegment(l, n, t, r, e, i)
                }, e.prototype.addPoints = function(t, e, i, n, r) {
                    var a = this.getPoint(e, i, n, e.workingLocations[i], e.workingLocations[n]);
                    r || (e.point = a), t.push(a)
                }, e.prototype.closeSegment = function(t, e, i, n, r, a) {
                    var o = [];
                    if (this.dataFields[this._xOpenField] || this.dataFields[this._yOpenField] || this.stacked)
                        for (var s = n; s >= i; s--) {
                            var l = this.dataItems.getIndex(s);
                            l.hasValue(this._xValueFields) && l.hasValue(this._yValueFields) && this.addPoints(o, l, this.xOpenField, this.yOpenField, !0)
                        } else {
                            var u = this.baseAxis,
                                h = e.length,
                                c = this.xAxis,
                                p = this.yAxis;
                            h > 0 && (u == c ? (o.push({
                                x: e[h - 1].x,
                                y: p.basePoint.y
                            }), o.push({
                                x: e[0].x,
                                y: p.basePoint.y
                            })) : (o.push({
                                x: c.basePoint.x,
                                y: e[h - 1].y
                            }), o.push({
                                x: c.basePoint.x,
                                y: e[0].y
                            })))
                        }
                    return this.drawSegment(t, e, o), a && n++, n < this._workingEndIndex - 1 ? {
                        index: n,
                        axisRange: r
                    } : null
                }, e.prototype.drawSegment = function(t, e, i) {
                    t.drawSegment(e, i, this.tensionX, this.tensionY)
                }, e.prototype.updateSegmentProperties = function(t, e, i) {
                    var n = !1;
                    return v.each(t, function(t, r) {
                        if (b.hasValue(r)) {
                            var a = e[t],
                                o = void 0;
                            a && (o = a.toString ? a.toString() : a);
                            var s = void 0;
                            r && (s = r.toString ? r.toString() : r), a == r || void 0 != o && void 0 != s && o == s || (i || (e[t] = r), n = !0)
                        }
                    }), n
                }, Object.defineProperty(e.prototype, "connect", {
                    get: function() {
                        return this.getPropertyValue("connect")
                    },
                    set: function(t) {
                        this.setPropertyValue("connect", t) && this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tensionX", {
                    get: function() {
                        return this.getPropertyValue("tensionX")
                    },
                    set: function(t) {
                        this.setPropertyValue("tensionX", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tensionY", {
                    get: function() {
                        return this.getPropertyValue("tensionY")
                    },
                    set: function(t) {
                        this.setPropertyValue("tensionY", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.createLegendMarker = function(t) {
                    var e = this,
                        i = t.pixelWidth,
                        n = t.pixelHeight;
                    t.disposeChildren();
                    var r = t.createChild(f.a);
                    if (r.shouldClone = !1, v.copyProperties(this, r, a.b), r.x2 = i, r.y = n / 2, r.visible = !0, this.fillOpacity > 0) {
                        var s = t.createChild(y.a);
                        v.copyProperties(this, s, a.b), s.width = i, s.height = n, s.y = 0, s.strokeOpacity = 0, s.visible = !0, r.y = 0
                    }
                    var l = t.dataItem;
                    l.color = this.stroke, l.colorOrig = this.fill, m.eachContinue(this.bullets.iterator(), function(r) {
                        if (r instanceof _.a && !r.copyToLegendMarker) return !1;
                        var a = !1;
                        if (r instanceof o.a && m.each(r.children.iterator(), function(t) {
                                if (t instanceof g.a) return a = !0, !0
                            }), !a) {
                            var s = r.clone();
                            return s.parent = t, s.isMeasured = !0, s.tooltipText = void 0, s.x = i / 2, e.fillOpacity > 0 ? s.y = 0 : s.y = n / 2, s.visible = !0, b.hasValue(s.fill) || (s.fill = e.fill), b.hasValue(s.stroke) || (s.stroke = e.stroke), !1
                        }
                    })
                }, e.prototype.disposeData = function() {
                    t.prototype.disposeData.call(this), this.segments.clear()
                }, Object.defineProperty(e.prototype, "autoGapCount", {
                    get: function() {
                        return this.getPropertyValue("autoGapCount")
                    },
                    set: function(t) {
                        this.setPropertyValue("autoGapCount", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        d.c.registeredClasses.LineSeries = w, d.c.registeredClasses.LineSeriesDataItem = P
    },
    v9UT: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.used = function(t) {}, e.copyProperties = function(t, e) {
            return u.each(t, function(t, i) {
                o.hasValue(i) && (e[t] = i)
            }), e
        }, e.stripHash = c, e.getBaseURI = function() {
            var t = "#";
            if (Object(r.b)()) {
                var e = document.baseURI;
                if (e) {
                    e = c(e);
                    var i = c(location.href);
                    e !== i && (t = i + t)
                }
            }
            return t
        }, e.softCopyProperties = function(t, e) {
            return u.each(t, function(t, i) {
                o.hasValue(i) && !o.hasValue(e[t]) && (e[t] = i)
            }), e
        }, e.copy = function(t, e) {
            return u.each(t, function(t, i) {
                e[t] = i
            }), e
        }, e.isNotEmpty = function(t) {
            return o.hasValue(t) && "" !== t.toString()
        }, e.relativeToValue = function(t, e) {
            return o.isNumber(t) ? t : null != t && o.isNumber(t.value) && o.isNumber(e) ? e * t.value : 0
        }, e.relativeRadiusToValue = function(t, e, i) {
            var n;
            o.isNumber(t) ? (n = t) < 0 && (n = i ? e + n : e - n) : null != t && o.isNumber(t.value) && (n = e * t.value);
            return n
        }, e.valueToRelative = function(t, e) {
            return t instanceof n.a ? t.value : t / e
        }, e.getPixelRatio = function() {
            return window.devicePixelRatio || 1
        }, e.camelToDashed = function(t) {
            return t.replace(/\W+/g, "-").replace(/([a-z\d])([A-Z])/g, "$1-$2").toLowerCase()
        }, e.capitalize = function(t) {
            var e = t.split("");
            return e[0] = e[0].toUpperCase(), e.join("")
        }, e.stringify = function(t) {
            return JSON.stringify(t)
        }, e.escapeForRgex = function(t) {
            return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
        }, e.splitTextByCharCount = p, e.truncateWithEllipsis = function(t, e, i, n, r) {
            if (t.length <= e) return t;
            (e -= i.length) < 1 && (e = 1);
            return (p(t, e, n, r)[0] || "") + i
        }, e.trim = function(t) {
            return t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
        }, e.rtrim = function(t) {
            return t.replace(/[\s\uFEFF\xA0]+$/g, "")
        }, e.ltrim = function(t) {
            return t.replace(/^[\s\uFEFF\xA0]+/g, "")
        }, e.reverseString = d, e.unquote = function(t) {
            var e = t.trim();
            (e = t.replace(/^'(.*)'$/, "$1")) == t && (e = t.replace(/^"(.*)"$/, "$1"));
            return e
        }, e.padString = function(t, e, i) {
            void 0 === e && (e = 0);
            void 0 === i && (i = "0");
            "string" != typeof t && (t = t.toString());
            return e > t.length ? Array(e - t.length + 1).join(i) + t : t
        }, e.getFormat = function(t) {
            if (void 0 === t) return l.g;
            var e = (t = (t = (t = t.toLowerCase().replace(/^\[[^\]]*\]/, "")).replace(/\[[^\]]+\]/, "")).trim()).match(/\/(date|number|duration)$/);
            if (e) return e[1];
            if (t === l.c) return l.c;
            if (t === l.a) return l.a;
            if (t === l.b) return l.b;
            if (t.match(/[#0]/)) return l.c;
            if (t.match(/[ymwdhnsqaxkzgtei]/)) return l.a;
            return l.g
        }, e.cleanFormat = function(t) {
            return t.replace(/\/(date|number|duration)$/i, "")
        }, e.stripTags = f, e.plainText = function(t) {
            return t ? f(t.replace(/[\n\r]+/g, ". ")) : t
        }, e.numberToString = function(t) {
            if (o.isNaN(t)) return "NaN";
            if (t === 1 / 0) return "Infinity";
            if (t === -1 / 0) return "-Infinity";
            if (0 === t && 1 / t == -1 / 0) return "-0";
            var e = t < 0;
            t = Math.abs(t);
            var i, n = o.getValue(/^([0-9]+)(?:\.([0-9]+))?(?:e[\+\-]([0-9]+))?$/.exec("" + t)),
                r = n[1],
                a = n[2] || "";
            if (null == n[3]) i = "" === a ? r : r + "." + a;
            else {
                var l = +n[3];
                if (t < 1) {
                    var u = l - 1;
                    i = "0." + s.repeat("0", u) + r + a
                } else {
                    var u = l - a.length;
                    i = 0 === u ? r + a : u < 0 ? r + a.slice(0, u) + "." + a.slice(u) : r + a + s.repeat("0", u)
                }
            }
            return e ? "-" + i : i
        }, e.anyToDate = function(t) {
            if (o.isDate(t)) return new Date(t);
            if (o.isNumber(t)) return new Date(t);
            var e = Number(t);
            return o.isNumber(e) ? new Date(e) : new Date(t)
        }, e.anyToNumber = function(t) {
            if (o.isDate(t)) return t.getTime();
            if (o.isNumber(t)) return t;
            if (o.isString(t)) {
                var e = Number(t);
                return o.isNumber(e) ? e : void 0
            }
        }, e.getYearDay = g, e.getWeek = y, e.getMonthWeek = function(t, e) {
            void 0 === e && (e = !1);
            var i = y(new Date(t.getFullYear(), t.getMonth(), 1), e),
                n = y(t, e);
            1 == n && (n = 53);
            return n - i + 1
        }, e.getDayFromWeek = function(t, e, i, n) {
            void 0 === i && (i = 1);
            void 0 === n && (n = !1);
            var r = new Date(e, 0, 4, 0, 0, 0, 0);
            n && r.setUTCFullYear(e);
            return 7 * t + i - ((r.getDay() || 7) + 3)
        }, e.get12Hours = function(t, e) {
            t > 12 ? t -= 12 : 0 === t && (t = 12);
            return o.hasValue(e) ? t + (e - 1) : t
        }, e.getTimeZone = function(t, e, i, n) {
            void 0 === e && (e = !1);
            void 0 === i && (i = !1);
            void 0 === n && (n = !1);
            if (n) return e ? "Coordinated Universal Time" : "UTC";
            var r = t.toLocaleString("UTC"),
                a = t.toLocaleString("UTC", {
                    timeZoneName: e ? "long" : "short"
                }).substr(r.length);
            !1 === i && (a = a.replace(/ (standard|daylight|summer|winter) /i, " "));
            return a
        }, e.random = function(t, e) {
            return Math.floor(Math.random() * e) + t
        }, e.fitNumber = function(t, e, i) {
            if (t > i) return i;
            if (t < e) return e;
            return t
        }, e.fitNumberRelative = function(t, e, i) {
            var n = i - e;
            t > i ? t = e + (t - n * Math.floor(t / n)) : t < e && (t = e + (t - n * Math.floor(t / n)));
            return t
        }, e.svgPointToSprite = m, e.spritePointToSvg = v, e.spritePointToSprite = function(t, e, i) {
            return m(v(t, e), i)
        }, e.svgRectToSprite = function(t, e) {
            var i = m(t, e),
                n = m({
                    x: t.x + t.width,
                    y: t.y + t.height
                }, e);
            return {
                x: i.x,
                y: i.y,
                width: n.x - i.x,
                height: n.y - i.y
            }
        }, e.spriteRectToSvg = function(t, e) {
            var i = v(t, e),
                n = v({
                    x: t.x + t.width,
                    y: t.y + t.height
                }, e);
            return {
                x: i.x,
                y: i.y,
                width: n.x - i.x,
                height: n.y - i.y
            }
        }, e.documentPointToSvg = b, e.svgPointToDocument = x, e.documentPointToSprite = function(t, e) {
            if (e && e.htmlContainer) {
                var i = b(t, o.getValue(e.htmlContainer), e.svgContainer.cssScale);
                return m(i, e)
            }
            return t
        }, e.spritePointToDocument = function(t, e) {
            if (e && e.htmlContainer) {
                var i = v(t, e);
                return x(i, o.getValue(e.htmlContainer))
            }
            return t
        }, e.width = function(t) {
            var e = getComputedStyle(t),
                i = parseFloat(e.paddingLeft) + parseFloat(e.paddingRight),
                n = parseFloat(e.borderLeftWidth) + parseFloat(e.borderRightWidth);
            return t.clientWidth - i - n
        }, e.height = function(t) {
            var e = getComputedStyle(t),
                i = parseFloat(e.paddingTop) + parseFloat(e.paddingBottom),
                n = parseFloat(e.borderTopWidth) + parseFloat(e.borderBottomWidth);
            return t.clientHeight - i - n
        }, e.decimalPlaces = function(t) {
            var e = ("" + t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
            if (!e) return 0;
            return Math.max(0, (e[1] ? e[1].length : 0) - (e[2] ? +e[2] : 0))
        }, e.parseUrl = P, e.serializeUrl = w, e.joinUrl = function(t, e) {
            var i = P(t),
                n = P(e);
            if (O(i)) throw new Error("Left URL is not absolute");
            if (O(n)) {
                if ("" !== n.path)
                    if ("/" === n.path[0]) i.path = n.path;
                    else {
                        var r = i.path.split(/\//),
                            a = n.path.split(/\//);
                        if (0 === r.length ? 0 !== a.length && r.push("") : r.length > 1 && r.pop(), h.pushAll(r, a), i.path = r.join("/"), "" !== i.path && "/" !== i.path[0]) throw new Error("URL path must start with /")
                    } return i.query = n.query, i.hash = n.hash, w(i)
            }
            return w(n)
        }, e.isIE = function() {
            return !!window.MSInputMethodContext && !!document.documentMode
        };
        var n = i("tjMS"),
            r = i("LBDG"),
            a = i("Gg2j"),
            o = i("Mtpk"),
            s = i("wUYf"),
            l = i("ScGY"),
            u = i("Qkdp"),
            h = i("hJ5i");

        function c(t) {
            return /^[^#]*/.exec(t)[0]
        }

        function p(t, e, i, n) {
            if (t.length <= e) return [t];
            var r = [];
            if (i)
                for (var a = -1, o = t.replace(/([,;:!?\\\/\.]+[\s]+|[\s])/g, l.d + "$1" + l.d).split(l.d), s = 0; s < o.length; s++) {
                    var u = o[s],
                        h = u.length;
                    if (0 !== h) {
                        var c;
                        if (h > e) {
                            if (n && (u = d(u)), c = u.match(new RegExp(".{1," + e + "}", "g"))) {
                                if (n)
                                    for (var p = 0; p < c.length; p++) c[p] = d(c[p]);
                                r = r.concat(c)
                            }
                        } else -1 === a && (r.push(""), a = 0), r[a].length + h + 1 > e && "" !== r[a] && (r.push(""), a++), r[a] += u;
                        a = r.length - 1
                    }
                } else if (c = t.match(new RegExp(".{1," + e + "}", "g"))) {
                    if (n)
                        for (p = 0; p < c.length; p++) c[p] = d(c[p]);
                    r = c
                } return 1 == r.length && i && r[0].length > e && (r = []), r
        }

        function d(t) {
            return t.split("").reverse().join("")
        }

        function f(t) {
            return t ? t.replace(/<[^>]*>/g, "") : t
        }

        function g(t, e) {
            void 0 === e && (e = !1);
            var i = new Date(t.getFullYear(), 0, 1, 0, 0, 0, 0);
            return Math.floor((t.getTime() - i.getTime()) / 864e5) + 1
        }

        function y(t, e) {
            void 0 === e && (e = !1);
            var i = g(t, e) - 1,
                n = Math.floor((i - (t.getDay() || 7) + 10) / 7);
            return 0 === n ? n = 53 : 53 === n && (n = 1), n
        }

        function m(t, e) {
            var i = t.x,
                n = t.y,
                r = [];
            if (e) {
                for (; o.hasValue(e.parent);) r.push(e), e = e.parent;
                r.reverse();
                for (var s = 0; s < r.length; s++) {
                    var l = r[s],
                        u = l.rotation,
                        h = i - l.pixelX - l.ex,
                        c = n - l.pixelY - l.ey;
                    l.dx && (i -= l.dx), l.dy && (n -= l.dy);
                    var p = l.scale;
                    l.group && (p = l.group.scale), i = (a.cos(-u) * h - a.sin(-u) * c) / p - l.pixelPaddingLeft, n = (a.cos(-u) * c + a.sin(-u) * h) / p - l.pixelPaddingTop
                }
            }
            return {
                x: i,
                y: n
            }
        }

        function v(t, e) {
            var i = t.x,
                n = t.y;
            if (e)
                for (; o.hasValue(e.parent);) {
                    var r = e.rotation;
                    i += e.pixelPaddingLeft + e.ex, n += e.pixelPaddingTop + e.ey, e.dx && (i += e.dx), e.dy && (n += e.dy);
                    var s = e.scale;
                    e.group && (s = e.group.scale);
                    var l = e.pixelX + (i * a.cos(r) - n * a.sin(r)) * s,
                        u = e.pixelY + (i * a.sin(r) + n * a.cos(r)) * s;
                    i = l, n = u, e = e.parent
                }
            return {
                x: i,
                y: n
            }
        }

        function b(t, e, i) {
            try {
                var n = e.getBoundingClientRect();
                return o.isNumber(i) || (i = 1), {
                    x: (t.x - n.left) / i,
                    y: (t.y - n.top) / i
                }
            } catch (e) {
                return t
            }
        }

        function x(t, e) {
            try {
                var i = e.getBoundingClientRect();
                return {
                    x: t.x + i.left,
                    y: t.y + i.top
                }
            } catch (e) {
                return t
            }
        }
        var _ = /^([a-zA-Z][a-zA-Z0-9\+\.\-]*:)?(?:(\/\/)([^\@]+\@)?([^\/\?\#\:]*)(\:[0-9]+)?)?([^\?\#]*)(\?[^\#]*)?(\#.*)?$/;

        function P(t) {
            var e = _.exec(t);
            return {
                protocol: e && e[1] || "",
                separator: e && e[2] || "",
                authority: e && e[3] || "",
                domain: e && e[4] || "",
                port: e && e[5] || "",
                path: e && e[6] || "",
                query: e && e[7] || "",
                hash: e && e[8] || ""
            }
        }

        function w(t) {
            return t.protocol + t.separator + t.authority + t.domain + t.port + t.path + t.query + t.hash
        }

        function O(t) {
            return "" === t.protocol && "" === t.separator && "" === t.authority && "" === t.domain && "" === t.port
        }
    },
    vBfr: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("F/ei"),
            a = i("Ox5T"),
            o = i("KJuV"),
            s = i("NRfM"),
            l = i("k2B3"),
            u = i("z3p0"),
            h = i("KslR"),
            c = i("lnCe"),
            p = i("CNF5"),
            d = i("WeDP"),
            f = d.IteratorPrototype,
            g = d.BUGGY_SAFARI_ITERATORS,
            y = h("iterator"),
            m = function() {
                return this
            };
        t.exports = function(t, e, i, h, d, v, b) {
            r(i, e, h);
            var x, _, P, w = function(t) {
                    if (t === d && I) return I;
                    if (!g && t in S) return S[t];
                    switch (t) {
                        case "keys":
                        case "values":
                        case "entries":
                            return function() {
                                return new i(this, t)
                            }
                    }
                    return function() {
                        return new i(this)
                    }
                },
                O = e + " Iterator",
                T = !1,
                S = t.prototype,
                C = S[y] || S["@@iterator"] || d && S[d],
                I = !g && C || w(d),
                k = "Array" == e && S.entries || C;
            if (k && (x = a(k.call(new t)), f !== Object.prototype && x.next && (c || a(x) === f || (o ? o(x, f) : "function" != typeof x[y] && l(x, y, m)), s(x, O, !0, !0), c && (p[O] = m))), "values" == d && C && "values" !== C.name && (T = !0, I = function() {
                    return C.call(this)
                }), c && !b || S[y] === I || l(S, y, I), p[e] = I, d)
                if (_ = {
                        values: w("values"),
                        keys: v ? I : w("keys"),
                        entries: w("entries")
                    }, b)
                    for (P in _) !g && !T && P in S || u(S, P, _[P]);
                else n({
                    target: e,
                    proto: !0,
                    forced: g || T
                }, _);
            return _
        }
    },
    vIej: function(t, e, i) {
        var n = i("0sYB"),
            r = i("3sMl");
        n({
            target: "Object",
            stat: !0,
            forced: !r,
            sham: !r
        }, {
            defineProperty: i("8+rI").f
        })
    },
    vMqJ: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return l
        }), i.d(e, "d", function() {
            return u
        }), i.d(e, "c", function() {
            return h
        }), i.d(e, "b", function() {
            return p
        }), i.d(e, "e", function() {
            return d
        });
        var n = i("m4/l"),
            r = i("hD5A"),
            a = i("o0Lc"),
            o = i("hJ5i"),
            s = i("Wglt"),
            l = function() {
                function t(t, e, i) {
                    this._array = t, this._start = e, this._end = i
                }
                return t.prototype.iterator = function() {
                    var t = this;
                    return function(e) {
                        if (t._start !== t._end)
                            if (t._start < t._end)
                                for (var i = t._start; i < t._end && e(t._array[i]); ++i);
                            else
                                for (i = t._start - 1; i >= t._end && e(t._array[i]); --i);
                    }
                }, t.prototype.backwards = function() {
                    return new t(this._array, this._end, this._start)
                }, t.prototype.range = function(e, i) {
                    if (e <= i) {
                        if (this._start === this._end) return this;
                        if (this._start < this._end) {
                            var n = i - e;
                            return e = Math.max(this._start + e, this._start), i = Math.min(e + n, this._end), new t(this._array, e, i)
                        }
                        n = i - e;
                        return e = Math.max(this._start - e, this._end), i = Math.max(e - n, this._end), new t(this._array, e, i)
                    }
                    throw new Error("Start index must be lower than end index")
                }, t
            }(),
            u = function(t) {
                function e(e, i, n) {
                    var r = t.call(this, [e.events.on("inserted", function(t) {
                        var i = t.newValue,
                            n = r._getKey(i),
                            a = 0;
                        s.eachContinue(e.iterator(), function(t) {
                            return t !== i && (r._getKey(t) === n && ++a, !0)
                        }), r._insert(i, n, a)
                    }, void 0, !1), e.events.on("removed", function(t) {
                        r._remove(t.oldValue)
                    }, void 0, !1)]) || this;
                    return r._keys = [], r._groups = {}, r._getKey = i, r._sort = n, s.each(e.iterator(), function(t) {
                        r._insert(t, i(t))
                    }), r
                }
                return Object(n.c)(e, t), e.prototype._insert = function(t, e, i) {
                    if (null == this._groups[e]) {
                        this._groups[e] = [];
                        var n = o.getSortedIndex(this._keys, this._sort, e),
                            r = n.found,
                            a = n.index;
                        if (r) throw new Error("Key already exists: " + e);
                        o.insertIndex(this._keys, a, e)
                    }
                    null == i ? this._groups[e].push(t) : o.insertIndex(this._groups[e], i, t)
                }, e.prototype._remove = function(t) {
                    var e = this._getKey(t),
                        i = this._groups[e];
                    if (null != i && (o.remove(i, t), 0 === i.length)) {
                        delete this._groups[e];
                        var n = o.getSortedIndex(this._keys, this._sort, e),
                            r = n.found,
                            a = n.index;
                        if (!r) throw new Error("Key doesn't exist: " + e);
                        o.removeIndex(this._keys, a)
                    }
                }, e.prototype.iterator = function() {
                    var t = this;
                    return s.flatten(s.map(s.fromArray(this._keys), function(e) {
                        return s.fromArray(t._groups[e])
                    }))
                }, e
            }(r.c),
            h = function(t) {
                function e(e) {
                    var i = e.events.on("removed", function(t) {
                        t.oldValue.dispose()
                    }, void 0, !1);
                    return t.call(this, function() {
                        i.dispose(), s.each(e.iterator(), function(t) {
                            t.dispose()
                        })
                    }) || this
                }
                return Object(n.c)(e, t), e
            }(r.b);

        function c(t, e) {
            if (!(t >= 0 && t < e)) throw new Error("Index out of bounds: " + t)
        }
        var p = function() {
                function t(t) {
                    void 0 === t && (t = []), this.events = new a.a, this._values = t
                }
                return Object.defineProperty(t.prototype, "values", {
                    get: function() {
                        return this._values
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.contains = function(t) {
                    return -1 !== this._values.indexOf(t)
                }, t.prototype.removeValue = function(t) {
                    for (var e = 0, i = this._values.length; e < i;) this._values[e] === t ? (this.removeIndex(e), --i) : ++e
                }, t.prototype.indexOf = function(t) {
                    return o.indexOf(this._values, t)
                }, Object.defineProperty(t.prototype, "length", {
                    get: function() {
                        return this._values.length
                    },
                    enumerable: !0,
                    configurable: !0
                }), t.prototype.hasIndex = function(t) {
                    return t >= 0 && t < this._values.length
                }, t.prototype.getIndex = function(t) {
                    return this._values[t]
                }, t.prototype.setIndex = function(t, e) {
                    c(t, this._values.length);
                    var i = this._values[t];
                    return i !== e && (this._values[t] = e, this.events.isEnabled("setIndex") && this.events.dispatchImmediately("setIndex", {
                        type: "setIndex",
                        target: this,
                        index: t,
                        oldValue: i,
                        newValue: e
                    }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", {
                        type: "removed",
                        target: this,
                        oldValue: i
                    }), this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", {
                        type: "inserted",
                        target: this,
                        newValue: e
                    })), i
                }, t.prototype.insertIndex = function(t, e) {
                    c(t, this._values.length + 1), o.insertIndex(this._values, t, e), this.events.isEnabled("insertIndex") && this.events.dispatchImmediately("insertIndex", {
                        type: "insertIndex",
                        target: this,
                        index: t,
                        newValue: e
                    }), this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", {
                        type: "inserted",
                        target: this,
                        newValue: e
                    })
                }, t.prototype._sortQuicksort = function(t, e, i) {
                    if (t < e) {
                        var n = this._sortPartition(t, e, i);
                        this._sortQuicksort(t, n, i), this._sortQuicksort(n + 1, e, i)
                    }
                }, t.prototype._sortPartition = function(t, e, i) {
                    for (var n = this._values, r = n[t], a = t - 1, o = e + 1;;) {
                        do {
                            ++a
                        } while (i(n[a], r) < 0);
                        do {
                            --o
                        } while (i(n[o], r) > 0);
                        if (a >= o) return o;
                        this.swap(a, o)
                    }
                }, t.prototype.sort = function(t) {
                    this._sortQuicksort(0, this._values.length - 1, t)
                }, t.prototype.swap = function(t, e) {
                    var i = this._values.length;
                    if (c(t, i), c(e, i), t !== e) {
                        var n = this._values[t],
                            r = this._values[e];
                        this._values[t] = r, this.events.isEnabled("setIndex") && this.events.dispatchImmediately("setIndex", {
                            type: "setIndex",
                            target: this,
                            index: t,
                            oldValue: n,
                            newValue: r
                        }), this._values[e] = n, this.events.isEnabled("setIndex") && this.events.dispatchImmediately("setIndex", {
                            type: "setIndex",
                            target: this,
                            index: e,
                            oldValue: r,
                            newValue: n
                        })
                    }
                }, t.prototype.removeIndex = function(t) {
                    c(t, this._values.length);
                    var e = this._values[t];
                    return o.removeIndex(this._values, t), this.events.isEnabled("removeIndex") && this.events.dispatchImmediately("removeIndex", {
                        type: "removeIndex",
                        target: this,
                        index: t,
                        oldValue: e
                    }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", {
                        type: "removed",
                        target: this,
                        oldValue: e
                    }), e
                }, t.prototype.moveValue = function(t, e) {
                    var i = this.indexOf(t);
                    if (-1 !== i) {
                        var n = this._values[i];
                        o.removeIndex(this._values, i), this.events.isEnabled("removeIndex") && this.events.dispatchImmediately("removeIndex", {
                            type: "removeIndex",
                            target: this,
                            index: i,
                            oldValue: n
                        })
                    }
                    null == e ? (e = this._values.length, this._values.push(t)) : o.insertIndex(this._values, e, t), this.events.isEnabled("insertIndex") && this.events.dispatchImmediately("insertIndex", {
                        type: "insertIndex",
                        target: this,
                        index: e,
                        newValue: t
                    }), -1 === i && this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", {
                        type: "inserted",
                        target: this,
                        newValue: t
                    })
                }, t.prototype.push = function(t) {
                    var e = this._values.push(t) - 1;
                    return this.events.isEnabled("insertIndex") && this.events.dispatchImmediately("insertIndex", {
                        type: "insertIndex",
                        target: this,
                        index: e,
                        newValue: t
                    }), this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", {
                        type: "inserted",
                        target: this,
                        newValue: t
                    }), t
                }, t.prototype.unshift = function(t) {
                    this.insertIndex(0, t)
                }, t.prototype.pushAll = function(t) {
                    var e = this;
                    o.each(t, function(t) {
                        e.push(t)
                    })
                }, t.prototype.copyFrom = function(t) {
                    this.pushAll(t._values)
                }, t.prototype.pop = function() {
                    return this._values.length - 1 < 0 ? void 0 : this.removeIndex(this._values.length - 1)
                }, t.prototype.shift = function() {
                    return this._values.length ? this.removeIndex(0) : void 0
                }, t.prototype.setAll = function(t) {
                    var e = this,
                        i = o.copy(this._values);
                    this._values.length = 0, o.each(t, function(t) {
                        e._values.push(t)
                    }), this.events.isEnabled("setAll") && this.events.dispatchImmediately("setAll", {
                        type: "setAll",
                        target: this,
                        oldArray: i,
                        newArray: this._values
                    }), this.events.isEnabled("removed") && o.each(i, function(t) {
                        e.events.dispatchImmediately("removed", {
                            type: "removed",
                            target: e,
                            oldValue: t
                        })
                    }), this.events.isEnabled("inserted") && o.each(this._values, function(t) {
                        e.events.dispatchImmediately("inserted", {
                            type: "inserted",
                            target: e,
                            newValue: t
                        })
                    })
                }, t.prototype.clear = function() {
                    this.setAll([])
                }, t.prototype.iterator = function() {
                    return s.fromArray(this._values)
                }, t.prototype[Symbol.iterator] = function() {
                    var t, e;
                    return Object(n.d)(this, function(i) {
                        switch (i.label) {
                            case 0:
                                t = this._values.length, e = 0, i.label = 1;
                            case 1:
                                return e < t ? [4, this._values[e]] : [3, 4];
                            case 2:
                                i.sent(), i.label = 3;
                            case 3:
                                return ++e, [3, 1];
                            case 4:
                                return [2]
                        }
                    })
                }, t.prototype.each = function(t) {
                    o.each(this._values, t)
                }, t.prototype.range = function(t, e) {
                    if (t <= e) {
                        var i = e - t;
                        return t = Math.max(t, 0), e = Math.min(t + i, this._values.length), new l(this._values, t, e)
                    }
                    throw new Error("Start index must be lower than end index")
                }, t.prototype.backwards = function() {
                    return new l(this._values, this._values.length, 0)
                }, t
            }(),
            d = function(t) {
                function e(e) {
                    var i = t.call(this) || this;
                    return i.template = e, i
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "template", {
                    get: function() {
                        return this._template
                    },
                    set: function(t) {
                        t.isTemplate = !0, this._template = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(t) {
                    var e = this;
                    s.each(t.iterator(), function(t) {
                        e.push(t.clone())
                    })
                }, e.prototype.create = function(t) {
                    var e = null != t ? new t : this.template.clone();
                    return this.push(e), e
                }, e.prototype.clone = function() {
                    for (var t = new e(this.template), i = this.values, n = i.length, r = 0; r < n; ++r) t.push(i[r].clone());
                    return t
                }, e
            }(p)
    },
    vRI3: function(t, e) {
        var i = Math.log;
        t.exports = Math.log1p || function(t) {
            return (t = +t) > -1e-8 && t < 1e-8 ? t - t * t / 2 : i(1 + t)
        }
    },
    vbOF: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return h
        });
        var n = i("m4/l"),
            r = i("YotE"),
            a = i("Tjl+"),
            o = i("vMqJ"),
            s = i("+qIf"),
            l = i("zhwk"),
            u = i("Mtpk"),
            h = function(t) {
                function e(e) {
                    var i = t.call(this) || this;
                    return i._eventDispatcher = new r.a(i), i.eventDisposers = new s.a, i.replacedStyles = new s.a, i._clickable = !1, i._contextMenuDisabled = !1, i._hoverable = !1, i._trackable = !1, i._draggable = !1, i._swipeable = !1, i._resizable = !1, i._wheelable = !1, i._inert = !1, i._isHover = !1, i.isRealHover = !1, i._isHoverByTouch = !1, i._isDown = !1, i._isFocused = !1, i._isTouchProtected = !1, i._inertiaOptions = new s.a, i.inertias = new s.a, i._hitOptions = {}, i._hoverOptions = {}, i._swipeOptions = {}, i._keyboardOptions = {}, i._mouseOptions = {}, i._cursorOptions = {
                        defaultStyle: [{
                            property: "cursor",
                            value: "default"
                        }]
                    }, i._disposers.push(i._eventDispatcher), i._element = e, i.className = "InteractionObject", i._disposers.push(new s.b(i.inertias)), i._disposers.push(new s.b(i.eventDisposers)), i.applyTheme(), i
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "events", {
                    get: function() {
                        return this._eventDispatcher
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isHover", {
                    get: function() {
                        return this._isHover
                    },
                    set: function(t) {
                        this.isHover != t && (this._isHover = t, t ? Object(l.b)().overObjects.moveValue(this) : (this.isRealHover = !1, Object(l.b)().overObjects.removeValue(this)))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isHoverByTouch", {
                    get: function() {
                        return this._isHoverByTouch
                    },
                    set: function(t) {
                        this.isHoverByTouch != t && (this._isHoverByTouch = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "overPointers", {
                    get: function() {
                        return this._overPointers || (this._overPointers = new o.b), this._overPointers
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isDown", {
                    get: function() {
                        return this._isDown
                    },
                    set: function(t) {
                        this.isDown != t && (this._isDown = t, t ? Object(l.b)().downObjects.moveValue(this) : Object(l.b)().downObjects.removeValue(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "downPointers", {
                    get: function() {
                        return this._downPointers || (this._downPointers = new o.b), this._downPointers
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isFocused", {
                    get: function() {
                        return this._isFocused
                    },
                    set: function(t) {
                        this.isFocused != t && (this._isFocused = t, Object(l.b)().focusedObject = t ? this : void 0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "isTouchProtected", {
                    get: function() {
                        return this._isTouchProtected
                    },
                    set: function(t) {
                        this._isTouchProtected != t && (this._isTouchProtected = t, t ? Object(l.b)().unprepElement(this) : (this.draggable || this.swipeable || this.trackable || this.resizable) && Object(l.b)().prepElement(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "clickable", {
                    get: function() {
                        return this._clickable
                    },
                    set: function(t) {
                        this._clickable !== t && (this._clickable = t, Object(l.b)().processClickable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "contextMenuDisabled", {
                    get: function() {
                        return this._contextMenuDisabled
                    },
                    set: function(t) {
                        this._contextMenuDisabled !== t && (this._contextMenuDisabled = t, Object(l.b)().processContextMenu(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hoverable", {
                    get: function() {
                        return this._hoverable
                    },
                    set: function(t) {
                        this._hoverable !== t && (this._hoverable = t, Object(l.b)().processHoverable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "trackable", {
                    get: function() {
                        return this._trackable
                    },
                    set: function(t) {
                        this._trackable !== t && (this._trackable = t, Object(l.b)().processTrackable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "draggable", {
                    get: function() {
                        return this._draggable
                    },
                    set: function(t) {
                        this._draggable !== t && (this._draggable = t, Object(l.b)().processDraggable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "swipeable", {
                    get: function() {
                        return this._swipeable
                    },
                    set: function(t) {
                        this._swipeable !== t && (this._swipeable = t, Object(l.b)().processSwipeable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "resizable", {
                    get: function() {
                        return this._resizable
                    },
                    set: function(t) {
                        this._resizable !== t && (this._resizable = t, Object(l.b)().processResizable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "wheelable", {
                    get: function() {
                        return this._wheelable
                    },
                    set: function(t) {
                        this._wheelable !== t && (this._wheelable = t, Object(l.b)().processWheelable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "inert", {
                    get: function() {
                        return this._inert
                    },
                    set: function(t) {
                        this._inert !== t && (this._inert = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "focusable", {
                    get: function() {
                        return this._focusable
                    },
                    set: function(t) {
                        this._focusable !== t && (this._focusable = t, this._focusable && -1 == this.tabindex && (this._tabindex = 1), Object(l.b)().processFocusable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tabindex", {
                    get: function() {
                        return u.getValueDefault(this._tabindex, -1)
                    },
                    set: function(t) {
                        this._tabindex !== t && (this._tabindex = t, t > -1 && (this.focusable = !0), Object(l.b)().processFocusable(this))
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "element", {
                    get: function() {
                        return this._element
                    },
                    set: function(t) {
                        this._element = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "originalPosition", {
                    get: function() {
                        return this._originalPosition || {
                            x: 0,
                            y: 0
                        }
                    },
                    set: function(t) {
                        this._originalPosition = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "originalScale", {
                    get: function() {
                        return u.getValueDefault(this._originalScale, 1)
                    },
                    set: function(t) {
                        this._originalScale !== t && (this._originalScale = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "originalAngle", {
                    get: function() {
                        return u.getValueDefault(this._originalAngle, 0)
                    },
                    set: function(t) {
                        this._originalAngle !== t && (this._originalAngle = t)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "inertiaOptions", {
                    get: function() {
                        return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("inertiaOptions", this._inertiaOptions) : this._inertiaOptions
                    },
                    set: function(t) {
                        this._inertiaOptions = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hitOptions", {
                    get: function() {
                        return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("hitOptions", this._hitOptions) : this._hitOptions
                    },
                    set: function(t) {
                        this._hitOptions = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "hoverOptions", {
                    get: function() {
                        return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("hoverOptions", this._hoverOptions) : this._hoverOptions
                    },
                    set: function(t) {
                        this._hoverOptions = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "swipeOptions", {
                    get: function() {
                        return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("swipeOptions", this._swipeOptions) : this._swipeOptions
                    },
                    set: function(t) {
                        this._swipeOptions = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "keyboardOptions", {
                    get: function() {
                        return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("keyboardOptions", this._keyboardOptions) : this._keyboardOptions
                    },
                    set: function(t) {
                        this._keyboardOptions = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "mouseOptions", {
                    get: function() {
                        return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("mouseOptions", this._mouseOptions) : this._mouseOptions
                    },
                    set: function(t) {
                        this._mouseOptions = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "cursorOptions", {
                    get: function() {
                        return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("cursorOptions", this._cursorOptions) : this._cursorOptions
                    },
                    set: function(t) {
                        this._cursorOptions = t
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.copyFrom = function(e) {
                    t.prototype.copyFrom.call(this, e), this.inertiaOptions = e.inertiaOptions, this.hitOptions = e.hitOptions, this.hoverOptions = e.hoverOptions, this.swipeOptions = e.swipeOptions, this.keyboardOptions = e.keyboardOptions, this.cursorOptions = e.cursorOptions, this.contextMenuDisabled = e.contextMenuDisabled, Object(l.b)().applyCursorOverStyle(this)
                }, e.prototype.setEventDisposer = function(t, e, i) {
                    var n = this.eventDisposers.getKey(t);
                    e ? null == n && this.eventDisposers.setKey(t, i()) : null != n && (n.dispose(), this.eventDisposers.removeKey(t))
                }, e.prototype.dispose = function() {
                    t.prototype.dispose.call(this);
                    var e = Object(l.b)();
                    e.overObjects.removeValue(this), e.downObjects.removeValue(this), e.trackedObjects.removeValue(this), e.transformedObjects.removeValue(this), this.isHover && this.wheelable && e.unlockWheel(), e.focusedObject === this && (e.focusedObject = void 0)
                }, e
            }(a.b)
    },
    vfRf: function(t, e) {
        var i = 0,
            n = Math.random();
        t.exports = function(t) {
            return "Symbol(" + String(void 0 === t ? "" : t) + ")_" + (++i + n).toString(36)
        }
    },
    vfdp: function(t, e, i) {
        (function(e) {
            var i = function(t) {
                return t && t.Math == Math && t
            };
            t.exports = i("object" == typeof globalThis && globalThis) || i("object" == typeof window && window) || i("object" == typeof self && self) || i("object" == typeof e && e) || Function("return this")()
        }).call(e, i("VTyh"))
    },
    "vi/P": function(t, e, i) {
        "use strict";
        var n, r = i("vfdp"),
            a = i("/vWR"),
            o = i("Tl3C"),
            s = i("HMf+"),
            l = i("NNEa"),
            u = i("Kg2n"),
            h = i("SqFF").enforce,
            c = i("JAqT"),
            p = !r.ActiveXObject && "ActiveXObject" in r,
            d = Object.isExtensible,
            f = function(t) {
                return function() {
                    return t(this, arguments.length ? arguments[0] : void 0)
                }
            },
            g = t.exports = s("WeakMap", f, l);
        if (c && p) {
            n = l.getConstructor(f, "WeakMap", !0), o.REQUIRED = !0;
            var y = g.prototype,
                m = y.delete,
                v = y.has,
                b = y.get,
                x = y.set;
            a(y, {
                delete: function(t) {
                    if (u(t) && !d(t)) {
                        var e = h(this);
                        return e.frozen || (e.frozen = new n), m.call(this, t) || e.frozen.delete(t)
                    }
                    return m.call(this, t)
                },
                has: function(t) {
                    if (u(t) && !d(t)) {
                        var e = h(this);
                        return e.frozen || (e.frozen = new n), v.call(this, t) || e.frozen.has(t)
                    }
                    return v.call(this, t)
                },
                get: function(t) {
                    if (u(t) && !d(t)) {
                        var e = h(this);
                        return e.frozen || (e.frozen = new n), v.call(this, t) ? b.call(this, t) : e.frozen.get(t)
                    }
                    return b.call(this, t)
                },
                set: function(t, e) {
                    if (u(t) && !d(t)) {
                        var i = h(this);
                        i.frozen || (i.frozen = new n), v.call(this, t) ? x.call(this, t, e) : i.frozen.set(t, e)
                    } else x.call(this, t, e);
                    return this
                }
            })
        }
    },
    vjgd: function(t, e, i) {
        "use strict";
        var n = i("7X7h"),
            r = i("Y8n3"),
            a = i("tHyI");
        t.exports = function(t) {
            for (var e = n(this), i = a(e.length), o = arguments.length, s = r(o > 1 ? arguments[1] : void 0, i), l = o > 2 ? arguments[2] : void 0, u = void 0 === l ? i : r(l, i); u > s;) e[s++] = t;
            return e
        }
    },
    "w+oS": function(t, e, i) {
        var n = i("0sYB"),
            r = i("3sMl");
        n({
            target: "Object",
            stat: !0,
            forced: !r,
            sham: !r
        }, {
            defineProperties: i("Mdrz")
        })
    },
    w2pQ: function(t, e, i) {
        "use strict";
        i("sSOU");
        var n, r = i("0sYB"),
            a = i("3sMl"),
            o = i("leaB"),
            s = i("vfdp"),
            l = i("Mdrz"),
            u = i("z3p0"),
            h = i("L56b"),
            c = i("JZRr"),
            p = i("HZlQ"),
            d = i("aHAe"),
            f = i("Wqjq").codeAt,
            g = i("ilXn"),
            y = i("NRfM"),
            m = i("Ecdy"),
            v = i("SqFF"),
            b = s.URL,
            x = m.URLSearchParams,
            _ = m.getState,
            P = v.set,
            w = v.getterFor("URL"),
            O = Math.floor,
            T = Math.pow,
            S = /[A-Za-z]/,
            C = /[\d+\-.A-Za-z]/,
            I = /\d/,
            k = /^(0x|0X)/,
            D = /^[0-7]+$/,
            j = /^\d+$/,
            V = /^[\dA-Fa-f]+$/,
            A = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,
            M = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/,
            F = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,
            E = /[\u0009\u000A\u000D]/g,
            R = function(t, e) {
                var i, n, r;
                if ("[" == e.charAt(0)) {
                    if ("]" != e.charAt(e.length - 1)) return "Invalid host";
                    if (!(i = L(e.slice(1, -1)))) return "Invalid host";
                    t.host = i
                } else if (G(t)) {
                    if (e = g(e), A.test(e)) return "Invalid host";
                    if (null === (i = N(e))) return "Invalid host";
                    t.host = i
                } else {
                    if (M.test(e)) return "Invalid host";
                    for (i = "", n = d(e), r = 0; r < n.length; r++) i += z(n[r], U);
                    t.host = i
                }
            },
            N = function(t) {
                var e, i, n, r, a, o, s, l = t.split(".");
                if (l.length && "" == l[l.length - 1] && l.pop(), (e = l.length) > 4) return t;
                for (i = [], n = 0; n < e; n++) {
                    if ("" == (r = l[n])) return t;
                    if (a = 10, r.length > 1 && "0" == r.charAt(0) && (a = k.test(r) ? 16 : 8, r = r.slice(8 == a ? 1 : 2)), "" === r) o = 0;
                    else {
                        if (!(10 == a ? j : 8 == a ? D : V).test(r)) return t;
                        o = parseInt(r, a)
                    }
                    i.push(o)
                }
                for (n = 0; n < e; n++)
                    if (o = i[n], n == e - 1) {
                        if (o >= T(256, 5 - e)) return null
                    } else if (o > 255) return null;
                for (s = i.pop(), n = 0; n < i.length; n++) s += i[n] * T(256, 3 - n);
                return s
            },
            L = function(t) {
                var e, i, n, r, a, o, s, l = [0, 0, 0, 0, 0, 0, 0, 0],
                    u = 0,
                    h = null,
                    c = 0,
                    p = function() {
                        return t.charAt(c)
                    };
                if (":" == p()) {
                    if (":" != t.charAt(1)) return;
                    c += 2, h = ++u
                }
                for (; p();) {
                    if (8 == u) return;
                    if (":" != p()) {
                        for (e = i = 0; i < 4 && V.test(p());) e = 16 * e + parseInt(p(), 16), c++, i++;
                        if ("." == p()) {
                            if (0 == i) return;
                            if (c -= i, u > 6) return;
                            for (n = 0; p();) {
                                if (r = null, n > 0) {
                                    if (!("." == p() && n < 4)) return;
                                    c++
                                }
                                if (!I.test(p())) return;
                                for (; I.test(p());) {
                                    if (a = parseInt(p(), 10), null === r) r = a;
                                    else {
                                        if (0 == r) return;
                                        r = 10 * r + a
                                    }
                                    if (r > 255) return;
                                    c++
                                }
                                l[u] = 256 * l[u] + r, 2 != ++n && 4 != n || u++
                            }
                            if (4 != n) return;
                            break
                        }
                        if (":" == p()) {
                            if (c++, !p()) return
                        } else if (p()) return;
                        l[u++] = e
                    } else {
                        if (null !== h) return;
                        c++, h = ++u
                    }
                }
                if (null !== h)
                    for (o = u - h, u = 7; 0 != u && o > 0;) s = l[u], l[u--] = l[h + o - 1], l[h + --o] = s;
                else if (8 != u) return;
                return l
            },
            B = function(t) {
                var e, i, n, r;
                if ("number" == typeof t) {
                    for (e = [], i = 0; i < 4; i++) e.unshift(t % 256), t = O(t / 256);
                    return e.join(".")
                }
                if ("object" == typeof t) {
                    for (e = "", n = function(t) {
                            for (var e = null, i = 1, n = null, r = 0, a = 0; a < 8; a++) 0 !== t[a] ? (r > i && (e = n, i = r), n = null, r = 0) : (null === n && (n = a), ++r);
                            return r > i && (e = n, i = r), e
                        }(t), i = 0; i < 8; i++) r && 0 === t[i] || (r && (r = !1), n === i ? (e += i ? ":" : "::", r = !0) : (e += t[i].toString(16), i < 7 && (e += ":")));
                    return "[" + e + "]"
                }
                return t
            },
            U = {},
            W = p({}, U, {
                " ": 1,
                '"': 1,
                "<": 1,
                ">": 1,
                "`": 1
            }),
            Y = p({}, W, {
                "#": 1,
                "?": 1,
                "{": 1,
                "}": 1
            }),
            H = p({}, Y, {
                "/": 1,
                ":": 1,
                ";": 1,
                "=": 1,
                "@": 1,
                "[": 1,
                "\\": 1,
                "]": 1,
                "^": 1,
                "|": 1
            }),
            z = function(t, e) {
                var i = f(t, 0);
                return i > 32 && i < 127 && !c(e, t) ? t : encodeURIComponent(t)
            },
            X = {
                ftp: 21,
                file: null,
                http: 80,
                https: 443,
                ws: 80,
                wss: 443
            },
            G = function(t) {
                return c(X, t.scheme)
            },
            K = function(t) {
                return "" != t.username || "" != t.password
            },
            q = function(t) {
                return !t.host || t.cannotBeABaseURL || "file" == t.scheme
            },
            Z = function(t, e) {
                var i;
                return 2 == t.length && S.test(t.charAt(0)) && (":" == (i = t.charAt(1)) || !e && "|" == i)
            },
            Q = function(t) {
                var e;
                return t.length > 1 && Z(t.slice(0, 2)) && (2 == t.length || "/" === (e = t.charAt(2)) || "\\" === e || "?" === e || "#" === e)
            },
            J = function(t) {
                var e = t.path,
                    i = e.length;
                !i || "file" == t.scheme && 1 == i && Z(e[0], !0) || e.pop()
            },
            $ = function(t) {
                return "." === t || "%2e" === t.toLowerCase()
            },
            tt = function(t) {
                return ".." === (t = t.toLowerCase()) || "%2e." === t || ".%2e" === t || "%2e%2e" === t
            },
            et = {},
            it = {},
            nt = {},
            rt = {},
            at = {},
            ot = {},
            st = {},
            lt = {},
            ut = {},
            ht = {},
            ct = {},
            pt = {},
            dt = {},
            ft = {},
            gt = {},
            yt = {},
            mt = {},
            vt = {},
            bt = {},
            xt = {},
            _t = {},
            Pt = function(t, e, i, r) {
                var a, o, s, l, u = i || et,
                    h = 0,
                    p = "",
                    f = !1,
                    g = !1,
                    y = !1;
                for (i || (t.scheme = "", t.username = "", t.password = "", t.host = null, t.port = null, t.path = [], t.query = null, t.fragment = null, t.cannotBeABaseURL = !1, e = e.replace(F, "")), e = e.replace(E, ""), a = d(e); h <= a.length;) {
                    switch (o = a[h], u) {
                        case et:
                            if (!o || !S.test(o)) {
                                if (i) return "Invalid scheme";
                                u = nt;
                                continue
                            }
                            p += o.toLowerCase(), u = it;
                            break;
                        case it:
                            if (o && (C.test(o) || "+" == o || "-" == o || "." == o)) p += o.toLowerCase();
                            else {
                                if (":" != o) {
                                    if (i) return "Invalid scheme";
                                    p = "", u = nt, h = 0;
                                    continue
                                }
                                if (i && (G(t) != c(X, p) || "file" == p && (K(t) || null !== t.port) || "file" == t.scheme && !t.host)) return;
                                if (t.scheme = p, i) return void(G(t) && X[t.scheme] == t.port && (t.port = null));
                                p = "", "file" == t.scheme ? u = ft : G(t) && r && r.scheme == t.scheme ? u = rt : G(t) ? u = lt : "/" == a[h + 1] ? (u = at, h++) : (t.cannotBeABaseURL = !0, t.path.push(""), u = bt)
                            }
                            break;
                        case nt:
                            if (!r || r.cannotBeABaseURL && "#" != o) return "Invalid scheme";
                            if (r.cannotBeABaseURL && "#" == o) {
                                t.scheme = r.scheme, t.path = r.path.slice(), t.query = r.query, t.fragment = "", t.cannotBeABaseURL = !0, u = _t;
                                break
                            }
                            u = "file" == r.scheme ? ft : ot;
                            continue;
                        case rt:
                            if ("/" != o || "/" != a[h + 1]) {
                                u = ot;
                                continue
                            }
                            u = ut, h++;
                            break;
                        case at:
                            if ("/" == o) {
                                u = ht;
                                break
                            }
                            u = vt;
                            continue;
                        case ot:
                            if (t.scheme = r.scheme, o == n) t.username = r.username, t.password = r.password, t.host = r.host, t.port = r.port, t.path = r.path.slice(), t.query = r.query;
                            else if ("/" == o || "\\" == o && G(t)) u = st;
                            else if ("?" == o) t.username = r.username, t.password = r.password, t.host = r.host, t.port = r.port, t.path = r.path.slice(), t.query = "", u = xt;
                            else {
                                if ("#" != o) {
                                    t.username = r.username, t.password = r.password, t.host = r.host, t.port = r.port, t.path = r.path.slice(), t.path.pop(), u = vt;
                                    continue
                                }
                                t.username = r.username, t.password = r.password, t.host = r.host, t.port = r.port, t.path = r.path.slice(), t.query = r.query, t.fragment = "", u = _t
                            }
                            break;
                        case st:
                            if (!G(t) || "/" != o && "\\" != o) {
                                if ("/" != o) {
                                    t.username = r.username, t.password = r.password, t.host = r.host, t.port = r.port, u = vt;
                                    continue
                                }
                                u = ht
                            } else u = ut;
                            break;
                        case lt:
                            if (u = ut, "/" != o || "/" != p.charAt(h + 1)) continue;
                            h++;
                            break;
                        case ut:
                            if ("/" != o && "\\" != o) {
                                u = ht;
                                continue
                            }
                            break;
                        case ht:
                            if ("@" == o) {
                                f && (p = "%40" + p), f = !0, s = d(p);
                                for (var m = 0; m < s.length; m++) {
                                    var v = s[m];
                                    if (":" != v || y) {
                                        var b = z(v, H);
                                        y ? t.password += b : t.username += b
                                    } else y = !0
                                }
                                p = ""
                            } else if (o == n || "/" == o || "?" == o || "#" == o || "\\" == o && G(t)) {
                                if (f && "" == p) return "Invalid authority";
                                h -= d(p).length + 1, p = "", u = ct
                            } else p += o;
                            break;
                        case ct:
                        case pt:
                            if (i && "file" == t.scheme) {
                                u = yt;
                                continue
                            }
                            if (":" != o || g) {
                                if (o == n || "/" == o || "?" == o || "#" == o || "\\" == o && G(t)) {
                                    if (G(t) && "" == p) return "Invalid host";
                                    if (i && "" == p && (K(t) || null !== t.port)) return;
                                    if (l = R(t, p)) return l;
                                    if (p = "", u = mt, i) return;
                                    continue
                                }
                                "[" == o ? g = !0 : "]" == o && (g = !1), p += o
                            } else {
                                if ("" == p) return "Invalid host";
                                if (l = R(t, p)) return l;
                                if (p = "", u = dt, i == pt) return
                            }
                            break;
                        case dt:
                            if (!I.test(o)) {
                                if (o == n || "/" == o || "?" == o || "#" == o || "\\" == o && G(t) || i) {
                                    if ("" != p) {
                                        var x = parseInt(p, 10);
                                        if (x > 65535) return "Invalid port";
                                        t.port = G(t) && x === X[t.scheme] ? null : x, p = ""
                                    }
                                    if (i) return;
                                    u = mt;
                                    continue
                                }
                                return "Invalid port"
                            }
                            p += o;
                            break;
                        case ft:
                            if (t.scheme = "file", "/" == o || "\\" == o) u = gt;
                            else {
                                if (!r || "file" != r.scheme) {
                                    u = vt;
                                    continue
                                }
                                if (o == n) t.host = r.host, t.path = r.path.slice(), t.query = r.query;
                                else if ("?" == o) t.host = r.host, t.path = r.path.slice(), t.query = "", u = xt;
                                else {
                                    if ("#" != o) {
                                        Q(a.slice(h).join("")) || (t.host = r.host, t.path = r.path.slice(), J(t)), u = vt;
                                        continue
                                    }
                                    t.host = r.host, t.path = r.path.slice(), t.query = r.query, t.fragment = "", u = _t
                                }
                            }
                            break;
                        case gt:
                            if ("/" == o || "\\" == o) {
                                u = yt;
                                break
                            }
                            r && "file" == r.scheme && !Q(a.slice(h).join("")) && (Z(r.path[0], !0) ? t.path.push(r.path[0]) : t.host = r.host), u = vt;
                            continue;
                        case yt:
                            if (o == n || "/" == o || "\\" == o || "?" == o || "#" == o) {
                                if (!i && Z(p)) u = vt;
                                else if ("" == p) {
                                    if (t.host = "", i) return;
                                    u = mt
                                } else {
                                    if (l = R(t, p)) return l;
                                    if ("localhost" == t.host && (t.host = ""), i) return;
                                    p = "", u = mt
                                }
                                continue
                            }
                            p += o;
                            break;
                        case mt:
                            if (G(t)) {
                                if (u = vt, "/" != o && "\\" != o) continue
                            } else if (i || "?" != o)
                                if (i || "#" != o) {
                                    if (o != n && (u = vt, "/" != o)) continue
                                } else t.fragment = "", u = _t;
                            else t.query = "", u = xt;
                            break;
                        case vt:
                            if (o == n || "/" == o || "\\" == o && G(t) || !i && ("?" == o || "#" == o)) {
                                if (tt(p) ? (J(t), "/" == o || "\\" == o && G(t) || t.path.push("")) : $(p) ? "/" == o || "\\" == o && G(t) || t.path.push("") : ("file" == t.scheme && !t.path.length && Z(p) && (t.host && (t.host = ""), p = p.charAt(0) + ":"), t.path.push(p)), p = "", "file" == t.scheme && (o == n || "?" == o || "#" == o))
                                    for (; t.path.length > 1 && "" === t.path[0];) t.path.shift();
                                "?" == o ? (t.query = "", u = xt) : "#" == o && (t.fragment = "", u = _t)
                            } else p += z(o, Y);
                            break;
                        case bt:
                            "?" == o ? (t.query = "", u = xt) : "#" == o ? (t.fragment = "", u = _t) : o != n && (t.path[0] += z(o, U));
                            break;
                        case xt:
                            i || "#" != o ? o != n && ("'" == o && G(t) ? t.query += "%27" : t.query += "#" == o ? "%23" : z(o, U)) : (t.fragment = "", u = _t);
                            break;
                        case _t:
                            o != n && (t.fragment += z(o, W))
                    }
                    h++
                }
            },
            wt = function(t) {
                var e, i, n = h(this, wt, "URL"),
                    r = arguments.length > 1 ? arguments[1] : void 0,
                    o = String(t),
                    s = P(n, {
                        type: "URL"
                    });
                if (void 0 !== r)
                    if (r instanceof wt) e = w(r);
                    else if (i = Pt(e = {}, String(r))) throw TypeError(i);
                if (i = Pt(s, o, null, e)) throw TypeError(i);
                var l = s.searchParams = new x,
                    u = _(l);
                u.updateSearchParams(s.query), u.updateURL = function() {
                    s.query = String(l) || null
                }, a || (n.href = Tt.call(n), n.origin = St.call(n), n.protocol = Ct.call(n), n.username = It.call(n), n.password = kt.call(n), n.host = Dt.call(n), n.hostname = jt.call(n), n.port = Vt.call(n), n.pathname = At.call(n), n.search = Mt.call(n), n.searchParams = Ft.call(n), n.hash = Et.call(n))
            },
            Ot = wt.prototype,
            Tt = function() {
                var t = w(this),
                    e = t.scheme,
                    i = t.username,
                    n = t.password,
                    r = t.host,
                    a = t.port,
                    o = t.path,
                    s = t.query,
                    l = t.fragment,
                    u = e + ":";
                return null !== r ? (u += "//", K(t) && (u += i + (n ? ":" + n : "") + "@"), u += B(r), null !== a && (u += ":" + a)) : "file" == e && (u += "//"), u += t.cannotBeABaseURL ? o[0] : o.length ? "/" + o.join("/") : "", null !== s && (u += "?" + s), null !== l && (u += "#" + l), u
            },
            St = function() {
                var t = w(this),
                    e = t.scheme,
                    i = t.port;
                if ("blob" == e) try {
                    return new URL(e.path[0]).origin
                } catch (t) {
                    return "null"
                }
                return "file" != e && G(t) ? e + "://" + B(t.host) + (null !== i ? ":" + i : "") : "null"
            },
            Ct = function() {
                return w(this).scheme + ":"
            },
            It = function() {
                return w(this).username
            },
            kt = function() {
                return w(this).password
            },
            Dt = function() {
                var t = w(this),
                    e = t.host,
                    i = t.port;
                return null === e ? "" : null === i ? B(e) : B(e) + ":" + i
            },
            jt = function() {
                var t = w(this).host;
                return null === t ? "" : B(t)
            },
            Vt = function() {
                var t = w(this).port;
                return null === t ? "" : String(t)
            },
            At = function() {
                var t = w(this),
                    e = t.path;
                return t.cannotBeABaseURL ? e[0] : e.length ? "/" + e.join("/") : ""
            },
            Mt = function() {
                var t = w(this).query;
                return t ? "?" + t : ""
            },
            Ft = function() {
                return w(this).searchParams
            },
            Et = function() {
                var t = w(this).fragment;
                return t ? "#" + t : ""
            },
            Rt = function(t, e) {
                return {
                    get: t,
                    set: e,
                    configurable: !0,
                    enumerable: !0
                }
            };
        if (a && l(Ot, {
                href: Rt(Tt, function(t) {
                    var e = w(this),
                        i = String(t),
                        n = Pt(e, i);
                    if (n) throw TypeError(n);
                    _(e.searchParams).updateSearchParams(e.query)
                }),
                origin: Rt(St),
                protocol: Rt(Ct, function(t) {
                    var e = w(this);
                    Pt(e, String(t) + ":", et)
                }),
                username: Rt(It, function(t) {
                    var e = w(this),
                        i = d(String(t));
                    if (!q(e)) {
                        e.username = "";
                        for (var n = 0; n < i.length; n++) e.username += z(i[n], H)
                    }
                }),
                password: Rt(kt, function(t) {
                    var e = w(this),
                        i = d(String(t));
                    if (!q(e)) {
                        e.password = "";
                        for (var n = 0; n < i.length; n++) e.password += z(i[n], H)
                    }
                }),
                host: Rt(Dt, function(t) {
                    var e = w(this);
                    e.cannotBeABaseURL || Pt(e, String(t), ct)
                }),
                hostname: Rt(jt, function(t) {
                    var e = w(this);
                    e.cannotBeABaseURL || Pt(e, String(t), pt)
                }),
                port: Rt(Vt, function(t) {
                    var e = w(this);
                    q(e) || ("" == (t = String(t)) ? e.port = null : Pt(e, t, dt))
                }),
                pathname: Rt(At, function(t) {
                    var e = w(this);
                    e.cannotBeABaseURL || (e.path = [], Pt(e, t + "", mt))
                }),
                search: Rt(Mt, function(t) {
                    var e = w(this);
                    "" == (t = String(t)) ? e.query = null: ("?" == t.charAt(0) && (t = t.slice(1)), e.query = "", Pt(e, t, xt)), _(e.searchParams).updateSearchParams(e.query)
                }),
                searchParams: Rt(Ft),
                hash: Rt(Et, function(t) {
                    var e = w(this);
                    "" != (t = String(t)) ? ("#" == t.charAt(0) && (t = t.slice(1)), e.fragment = "", Pt(e, t, _t)) : e.fragment = null
                })
            }), u(Ot, "toJSON", function() {
                return Tt.call(this)
            }, {
                enumerable: !0
            }), u(Ot, "toString", function() {
                return Tt.call(this)
            }, {
                enumerable: !0
            }), b) {
            var Nt = b.createObjectURL,
                Lt = b.revokeObjectURL;
            Nt && u(wt, "createObjectURL", function(t) {
                return Nt.apply(b, arguments)
            }), Lt && u(wt, "revokeObjectURL", function(t) {
                return Lt.apply(b, arguments)
            })
        }
        y(wt, "URL"), r({
            global: !0,
            forced: !o,
            sham: !a
        }, {
            URL: wt
        })
    },
    w4m0: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return s
        });
        var n = i("m4/l"),
            r = i("GtDR"),
            a = i("aFzC"),
            o = i("hGwe"),
            s = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "WavedRectangle", e.element = e.paper.add("path"), e.waveLength = 16, e.waveHeight = 4, e.tension = .8, e.setPropertyValue("wavedLeft", !0), e.setPropertyValue("wavedRight", !0), e.setPropertyValue("wavedTop", !0), e.setPropertyValue("wavedBottom", !0), e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.draw = function() {
                    t.prototype.draw.call(this);
                    var e = this.pixelWidth,
                        i = this.pixelHeight;
                    if (e > 0 && i > 0) {
                        var n = {
                                x: 0,
                                y: 0
                            },
                            r = {
                                x: e,
                                y: 0
                            },
                            s = {
                                x: e,
                                y: i
                            },
                            l = {
                                x: 0,
                                y: i
                            },
                            u = Math.min(e, this.waveLength),
                            h = Math.min(i, this.waveHeight),
                            c = Math.min(i, this.waveLength),
                            p = Math.min(e, this.waveHeight),
                            d = "",
                            f = "",
                            g = "",
                            y = "";
                        this.wavedTop && (d = Object(a.c)(n, r, u, h, this.tension, !0)), this.wavedRight && (f = Object(a.c)(r, s, c, p, this.tension, !0)), this.wavedBottom && (g = Object(a.c)(s, l, u, h, this.tension, !0)), this.wavedLeft && (y = Object(a.c)(l, n, c, p, this.tension, !0)), this.path = o.moveTo(n) + d + o.lineTo(r) + f + o.lineTo(s) + g + o.lineTo(l) + y + "z"
                    }
                }, Object.defineProperty(e.prototype, "waveLength", {
                    get: function() {
                        return this.getPropertyValue("waveLength")
                    },
                    set: function(t) {
                        this.setPropertyValue("waveLength", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "waveHeight", {
                    get: function() {
                        return this.getPropertyValue("waveHeight")
                    },
                    set: function(t) {
                        this.setPropertyValue("waveHeight", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.setWavedSides = function(t, e, i, n) {
                    this.wavedTop = t, this.wavedRight = e, this.wavedBottom = i, this.wavedLeft = n
                }, Object.defineProperty(e.prototype, "tension", {
                    get: function() {
                        return this.getPropertyValue("tension")
                    },
                    set: function(t) {
                        this.setPropertyValue("tension", t), this.invalidate()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "wavedRight", {
                    get: function() {
                        return this.getPropertyValue("wavedRight")
                    },
                    set: function(t) {
                        this.setPropertyValue("wavedRight", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "wavedLeft", {
                    get: function() {
                        return this.getPropertyValue("wavedLeft")
                    },
                    set: function(t) {
                        this.setPropertyValue("wavedLeft", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "wavedTop", {
                    get: function() {
                        return this.getPropertyValue("wavedTop")
                    },
                    set: function(t) {
                        this.setPropertyValue("wavedTop", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "wavedBottom", {
                    get: function() {
                        return this.getPropertyValue("wavedBottom")
                    },
                    set: function(t) {
                        this.setPropertyValue("wavedBottom", t, !0)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a)
    },
    wGwV: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("lnCe"),
            a = i("97TN"),
            o = i("6aQQ"),
            s = i("1wCr"),
            l = i("Nfo5"),
            u = i("E81g"),
            h = i("z3p0");
        n({
            target: "Promise",
            proto: !0,
            real: !0,
            forced: !!a && o(function() {
                a.prototype.finally.call({
                    then: function() {}
                }, function() {})
            })
        }, {
            finally: function(t) {
                var e = l(this, s("Promise")),
                    i = "function" == typeof t;
                return this.then(i ? function(i) {
                    return u(e, t()).then(function() {
                        return i
                    })
                } : t, i ? function(i) {
                    return u(e, t()).then(function() {
                        throw i
                    })
                } : t)
            }
        }), r || "function" != typeof a || a.prototype.finally || h(a.prototype, "finally", s("Promise").prototype.finally)
    },
    wLyq: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("gxUV").f,
            a = i("tHyI"),
            o = i("qK31"),
            s = i("swFJ"),
            l = i("eVN0"),
            u = i("lnCe"),
            h = "".endsWith,
            c = Math.min,
            p = l("endsWith");
        n({
            target: "String",
            proto: !0,
            forced: !(!u && !p && !! function() {
                var t = r(String.prototype, "endsWith");
                return t && !t.writable
            }()) && !p
        }, {
            endsWith: function(t) {
                var e = String(s(this));
                o(t);
                var i = arguments.length > 1 ? arguments[1] : void 0,
                    n = a(e.length),
                    r = void 0 === i ? n : c(a(i), n),
                    l = String(t);
                return h ? h.call(e, l, r) : e.slice(r - l.length, r) === l
            }
        })
    },
    wUYf: function(t, e, i) {
        "use strict";
        Object.defineProperty(e, "__esModule", {
            value: !0
        }), e.order = function(t, e) {
            return t === e ? 0 : t < e ? -1 : 1
        }, e.repeat = function(t, e) {
            return new Array(e + 1).join(t)
        }, e.random = function(t) {
            for (var e = "", i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", n = 0; n < t; n++) e += i.charAt(Math.floor(Math.random() * i.length));
            return e
        }
    },
    wfEi: function(t, e, i) {
        "use strict";
        var n = i("NSJ1");
        (0, i("UseD").exportTypedArrayStaticMethod)("from", i("3Fha"), n)
    },
    wgyV: function(t, e, i) {
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("Kg2n"),
            o = Object.isSealed;
        n({
            target: "Object",
            stat: !0,
            forced: r(function() {
                o(1)
            })
        }, {
            isSealed: function(t) {
                return !a(t) || !!o && o(t)
            }
        })
    },
    wyAw: function(t, e, i) {
        "use strict";
        var n = i("UseD"),
            r = i("X/sl").find,
            a = n.aTypedArray;
        (0, n.exportTypedArrayMethod)("find", function(t) {
            return r(a(this), t, arguments.length > 1 ? arguments[1] : void 0)
        })
    },
    x79X: function(t, e, i) {
        "use strict";
        i.d(e, "b", function() {
            return u
        }), i.d(e, "c", function() {
            return h
        }), i.d(e, "a", function() {
            return c
        });
        var n = i("VGgz"),
            r = i("3Cxr"),
            a = i("MlsF"),
            o = i("Wglt"),
            s = i("hJ5i"),
            l = i("Mtpk"),
            u = function() {
                function t() {
                    this._callbackId = 0, this._callbacks = new n.c(function(t, e) {
                        return a.a(r.order(t.priority, e.priority), r.order(t.id, e.id))
                    })
                }
                return t.prototype.addAll = function(t, e, i, n, r) {
                    void 0 === n && (n = 0), this._callbacks.insert({
                        id: ++this._callbackId,
                        key: e,
                        callback: i,
                        priority: n,
                        scope: r,
                        type: t
                    })
                }, t.prototype.isEnabled = function(t, e) {
                    return s.any(this._callbacks.values, function(i) {
                        return i.key === e && t instanceof i.type
                    })
                }, t.prototype.applyAll = function(t, e, i) {
                    var n = this._callbacks.values,
                        r = n.length;
                    if (0 == r) return i;
                    for (var a = 0; a < r; ++a) {
                        var o = n[a];
                        o.key === e && t instanceof o.type && (i = o.callback.call(o.scope, i, t, e))
                    }
                    return i
                }, t
            }(),
            h = new u,
            c = function() {
                function t(t) {
                    this._callbackId = 0, this._callbacks = new n.c(function(t, e) {
                        return a.a(r.order(t.priority, e.priority), r.order(t.id, e.id))
                    }), this._disabled = {}, this.object = t, this.events = this._callbacks.events
                }
                return t.prototype.add = function(t, e, i, n) {
                    void 0 === i && (i = 0), this._callbacks.insert({
                        id: ++this._callbackId,
                        key: t,
                        callback: e,
                        priority: i,
                        scope: n
                    })
                }, t.prototype.has = function(t, e, i, n) {
                    return void 0 === i && (i = 0), o.contains(this._callbacks.iterator(), function(r) {
                        return r.key === t && r.callback === e && r.priority === i && r.scope === n
                    })
                }, t.prototype.remove = function(t, e) {
                    var i = this;
                    s.each(o.toArray(this._callbacks.iterator()), function(n) {
                        n.key !== t || l.isNumber(e) && e !== n.priority || i._callbacks.remove(n)
                    })
                }, t.prototype.enableKey = function(t) {
                    delete this._disabled[t]
                }, t.prototype.disableKey = function(t, e) {
                    void 0 === e && (e = 1 / 0), this._disabled[t] = e
                }, t.prototype._hasListenersByType = function(t) {
                    return s.any(this._callbacks.values, function(e) {
                        return e.key === t
                    })
                }, t.prototype.isEnabled = function(t) {
                    return null == this._disabled[t] && (this._hasListenersByType(t) || h.isEnabled(this.object, t))
                }, t.prototype._shouldDispatch = function(t) {
                    var e = this._disabled[t];
                    return !l.isNumber(e) || (e <= 1 ? delete this._disabled[t] : --this._disabled[t], !1)
                }, t.prototype.apply = function(t, e) {
                    if (this._shouldDispatch(t)) {
                        var i = this._callbacks.values,
                            n = i.length;
                        if (n > 0)
                            for (var r = 0; r < n; ++r) {
                                var a = i[r];
                                a.key === t && (e = a.callback.call(a.scope, e, this.object, t))
                            }
                        return e = h.applyAll(this.object, t, e)
                    }
                    return e
                }, t.prototype.keys = function() {
                    return o.toArray(o.map(this._callbacks.iterator(), function(t) {
                        return t.key
                    }))
                }, t.prototype.copyFrom = function(t) {
                    var e = this;
                    o.each(t._callbacks.iterator(), function(t) {
                        e.add(t.key, t.callback, t.priority, t.scope)
                    })
                }, t.prototype.clear = function() {
                    this._callbacks.clear()
                }, t
            }()
    },
    xIv9: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("aGXA"),
            a = i("Vs7R"),
            o = i("MIZb"),
            s = i("aCit"),
            l = i("hGwe"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    e.className = "ResizeButton", e.orientation = "horizontal", e.layout = "absolute", e.horizontalCenter = "middle", e.verticalCenter = "middle", e.draggable = !0, e.padding(8, 8, 8, 8), e.background.cornerRadius(20, 20, 20, 20);
                    var i = new a.a;
                    i.element = e.paper.add("path");
                    var n = l.moveTo({
                        x: -2,
                        y: -6
                    });
                    return n += l.lineTo({
                        x: -2,
                        y: 6
                    }), n += l.moveTo({
                        x: 2,
                        y: -6
                    }), n += l.lineTo({
                        x: 2,
                        y: 6
                    }), i.path = n, i.pixelPerfect = !0, i.padding(0, 4, 0, 4), i.stroke = (new o.a).getFor("alternativeText"), i.strokeOpacity = .7, e.icon = i, e.label.dispose(), e.label = void 0, e.applyTheme(), e
                }
                return Object(n.c)(e, t), Object.defineProperty(e.prototype, "orientation", {
                    set: function(t) {
                        var e = this.icon;
                        e && (e.rotation = "horizontal" == t ? 0 : -90)
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.a);
        s.c.registeredClasses.ResizeButton = u
    },
    xLUE: function(t, e, i) {
        i("0sYB")({
            target: "Math",
            stat: !0
        }, {
            sign: i("8nEM")
        })
    },
    xaIW: function(t, e, i) {
        var n = i("6aQQ");
        t.exports = !!Object.getOwnPropertySymbols && !n(function() {
            return !String(Symbol())
        })
    },
    xbKe: function(t, e, i) {
        i("0sYB")({
            target: "Array",
            stat: !0
        }, {
            isArray: i("o3G/")
        })
    },
    xgTw: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return u
        });
        var n = i("m4/l"),
            r = i("jfaP"),
            a = i("aCit"),
            o = i("Gg2j"),
            s = i("Mtpk"),
            l = i("hGwe"),
            u = function(t) {
                function e() {
                    var e = t.call(this) || this;
                    return e.className = "Polyspline", e.tensionX = .5, e.tensionY = .5, e.applyTheme(), e
                }
                return Object(n.c)(e, t), e.prototype.makePath = function() {
                    this._distance = 0;
                    var t = this.segments,
                        e = this.tensionX,
                        i = this.tensionY;
                    if (this.allPoints = [], t && t.length > 0) {
                        var n = "";
                        this._realSegments = [];
                        for (var r = 0, a = t.length; r < a; r++) {
                            var s = t[r],
                                u = [];
                            if (this._realSegments.push(u), s.length > 0) {
                                var h = s[0],
                                    c = s[s.length - 1],
                                    p = !1;
                                o.round(h.x, 3) == o.round(c.x) && o.round(h.y) == o.round(c.y) && (p = !0), n += l.moveTo(s[0]);
                                for (var d = 0; d < s.length - 1; d++) {
                                    var f = s[d - 1],
                                        g = s[d],
                                        y = s[d + 1],
                                        m = s[d + 2];
                                    0 === d ? f = s[d] : d == s.length - 2 && (m = s[d + 1]), m || (m = y), 0 === d ? f = p ? s[s.length - 2] : s[r] : d == s.length - 2 && (m = p ? s[1] : s[d + 1]);
                                    var v = o.getCubicControlPointA(f, g, y, m, e, i),
                                        b = o.getCubicControlPointB(f, g, y, m, e, i);
                                    n += l.cubicCurveTo(y, v, b);
                                    var x = 1.2 * Math.ceil(o.getCubicCurveDistance(g, y, v, b, 20)),
                                        _ = g;
                                    if (x > 0)
                                        for (var P = 0; P <= x; P++) {
                                            var w = o.getPointOnCubicCurve(g, y, v, b, P / x);
                                            if (w.x != _.x || w.y != _.y) {
                                                u.push(w);
                                                var O = o.round(o.getAngle(_, w), 5);
                                                this._distance += o.getDistance(_, w), this.allPoints[Math.floor(this._distance)] = {
                                                    x: w.x,
                                                    y: w.y,
                                                    angle: O
                                                }, _ = w
                                            }
                                        } else u.push(f)
                                }
                            }
                            var T = this.allPoints;
                            if (T.length > 1)
                                for (var S = 0; S < T.length; S++)
                                    if (!T[S])
                                        if (S > 1) T[S] = T[S - 1];
                                        else
                                            for (var C = 1; C < T.length; C++)
                                                if (T[C]) {
                                                    T[S] = T[C];
                                                    break
                                                }
                        }
                        this.path = n
                    }
                }, e.prototype.getClosestPointIndex = function(t) {
                    var e, i = this.allPoints,
                        n = 1 / 0;
                    if (i.length > 1)
                        for (var r = 1; r < i.length; r++) {
                            var a = o.getDistance(t, i[r]);
                            a < n && (e = r, n = a)
                        }
                    return e
                }, Object.defineProperty(e.prototype, "tensionX", {
                    get: function() {
                        return this.getPropertyValue("tensionX")
                    },
                    set: function(t) {
                        this.setPropertyValue("tensionX", t), this.makePath()
                    },
                    enumerable: !0,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "tensionY", {
                    get: function() {
                        return this.getPropertyValue("tensionY")
                    },
                    set: function(t) {
                        this.setPropertyValue("tensionY", t, !0), this.makePath()
                    },
                    enumerable: !0,
                    configurable: !0
                }), e.prototype.positionToPoint = function(t, e) {
                    var i = 0,
                        n = this.allPoints,
                        r = n.length;
                    if (s.isNumber(t) || (t = 0), r > 1) {
                        if (e && r > 3) {
                            if (t < 0) {
                                t < -.01 && (t = -.01);
                                var a = n[0],
                                    l = n[1];
                                return {
                                    x: u = a.x - (a.x - l.x) * r * t,
                                    y: h = a.y - (a.y - l.y) * r * t,
                                    angle: o.getAngle(a, l)
                                }
                            }
                            if (t > 1) {
                                t > 1.01 && (t = 1.01);
                                var u, h;
                                a = n[n.length - 2], l = n[n.length - 3];
                                return {
                                    x: u = a.x + (a.x - l.x) * r * (t - 1),
                                    y: h = a.y + (a.y - l.y) * r * (t - 1),
                                    angle: o.getAngle(a, {
                                        x: u,
                                        y: h
                                    })
                                }
                            }
                            if (1 == t) {
                                var c = n[n.length - 1];
                                return {
                                    x: c.x,
                                    y: c.y,
                                    angle: c.angle
                                }
                            }
                        } else t < 0 && (t = Math.abs(t), i = 180), t >= 1 && (t = .9999999999999);
                        var p;
                        return {
                            x: (p = n[Math.floor(t * r)]).x,
                            y: p.y,
                            angle: p.angle + i
                        }
                    }
                    return 1 == r ? {
                        x: (p = n[0]).x,
                        y: p.y,
                        angle: p.angle
                    } : {
                        x: 0,
                        y: 0,
                        angle: 0
                    }
                }, e
            }(r.a);
        a.c.registeredClasses.Polyspline = u
    },
    xlUI: function(t, e, i) {
        "use strict";
        var n = i("6aQQ");
        t.exports = function(t, e) {
            var i = [][t];
            return !!i && n(function() {
                i.call(null, e || function() {
                    throw 1
                }, 1)
            })
        }
    },
    xtHw: function(t, e, i) {
        i("eygo")("Float64", function(t) {
            return function(e, i, n) {
                return t(this, e, i, n)
            }
        })
    },
    xv7a: function(t, e, i) {
        "use strict";
        var n = i("0sYB"),
            r = i("6aQQ"),
            a = i("o3G/"),
            o = i("Kg2n"),
            s = i("7X7h"),
            l = i("tHyI"),
            u = i("WShl"),
            h = i("Rs0P"),
            c = i("ugpH"),
            p = i("KslR"),
            d = i("hvfb"),
            f = p("isConcatSpreadable"),
            g = d >= 51 || !r(function() {
                var t = [];
                return t[f] = !1, t.concat()[0] !== t
            }),
            y = c("concat"),
            m = function(t) {
                if (!o(t)) return !1;
                var e = t[f];
                return void 0 !== e ? !!e : a(t)
            };
        n({
            target: "Array",
            proto: !0,
            forced: !g || !y
        }, {
            concat: function(t) {
                var e, i, n, r, a, o = s(this),
                    c = h(o, 0),
                    p = 0;
                for (e = -1, n = arguments.length; e < n; e++)
                    if (a = -1 === e ? o : arguments[e], m(a)) {
                        if (p + (r = l(a.length)) > 9007199254740991) throw TypeError("Maximum allowed index exceeded");
                        for (i = 0; i < r; i++, p++) i in a && u(c, p, a[i])
                    } else {
                        if (p >= 9007199254740991) throw TypeError("Maximum allowed index exceeded");
                        u(c, p++, a)
                    } return c.length = p, c
            }
        })
    },
    yBTm: function(t, e, i) {
        "use strict";
        var n = i("9XRO"),
            r = i("0FA2"),
            a = i("CNF5"),
            o = i("SqFF"),
            s = i("vBfr"),
            l = o.set,
            u = o.getterFor("Array Iterator");
        t.exports = s(Array, "Array", function(t, e) {
            l(this, {
                type: "Array Iterator",
                target: n(t),
                index: 0,
                kind: e
            })
        }, function() {
            var t = u(this),
                e = t.target,
                i = t.kind,
                n = t.index++;
            return !e || n >= e.length ? (t.target = void 0, {
                value: void 0,
                done: !0
            }) : "keys" == i ? {
                value: n,
                done: !1
            } : "values" == i ? {
                value: e[n],
                done: !1
            } : {
                value: [n, e[n]],
                done: !1
            }
        }, "values"), a.Arguments = a.Array, r("keys"), r("values"), r("entries")
    },
    ybeA: function(t, e, i) {
        var n = i("0sYB"),
            r = i("vfdp"),
            a = i("RjhM"),
            o = [].slice,
            s = function(t) {
                return function(e, i) {
                    var n = arguments.length > 2,
                        r = n ? o.call(arguments, 2) : void 0;
                    return t(n ? function() {
                        ("function" == typeof e ? e : Function(e)).apply(this, r)
                    } : e, i)
                }
            };
        n({
            global: !0,
            bind: !0,
            forced: /MSIE .\./.test(a)
        }, {
            setTimeout: s(r.setTimeout),
            setInterval: s(r.setInterval)
        })
    },
    yv8f: function(t, e, i) {
        i("0sYB")({
            target: "Number",
            stat: !0
        }, {
            isFinite: i("IwOK")
        })
    },
    ywCi: function(t, e, i) {
        i("6WsA")("species")
    },
    ywzu: function(t, e, i) {
        var n = i("oRlD"),
            r = i("z3p0"),
            a = i("hznD");
        n || r(Object.prototype, "toString", a, {
            unsafe: !0
        })
    },
    z3p0: function(t, e, i) {
        var n = i("vfdp"),
            r = i("k2B3"),
            a = i("JZRr"),
            o = i("29Us"),
            s = i("2fPu"),
            l = i("SqFF"),
            u = l.get,
            h = l.enforce,
            c = String(String).split("String");
        (t.exports = function(t, e, i, s) {
            var l = !!s && !!s.unsafe,
                u = !!s && !!s.enumerable,
                p = !!s && !!s.noTargetGet;
            "function" == typeof i && ("string" != typeof e || a(i, "name") || r(i, "name", e), h(i).source = c.join("string" == typeof e ? e : "")), t !== n ? (l ? !p && t[e] && (u = !0) : delete t[e], u ? t[e] = i : r(t, e, i)) : u ? t[e] = i : o(e, i)
        })(Function.prototype, "toString", function() {
            return "function" == typeof this && u(this).source || s(this)
        })
    },
    z4fB: function(t, e, i) {
        var n = i("JZRr"),
            r = i("grfs"),
            a = i("gxUV"),
            o = i("8+rI");
        t.exports = function(t, e) {
            for (var i = r(e), s = o.f, l = a.f, u = 0; u < i.length; u++) {
                var h = i[u];
                n(t, h) || s(t, h, l(e, h))
            }
        }
    },
    zNr0: function(t, e, i) {
        i("6WsA")("isConcatSpreadable")
    },
    zQLg: function(t, e, i) {
        i("0sYB")({
            target: "Math",
            stat: !0
        }, {
            log1p: i("vRI3")
        })
    },
    zYbq: function(t, e, i) {
        i("0sYB")({
            target: "Number",
            stat: !0
        }, {
            EPSILON: Math.pow(2, -52)
        })
    },
    zhwk: function(t, e, i) {
        "use strict";
        i.d(e, "a", function() {
            return x
        }), e.b = P;
        var n = i("m4/l"),
            r = i("Tjl+"),
            a = i("vMqJ"),
            o = i("1yyj"),
            s = i("hD5A"),
            l = i("vbOF"),
            u = i("Oe1l"),
            h = i("+qIf"),
            c = i("0PyG"),
            p = i("58Sn"),
            d = i("WYhe"),
            f = i("Rpw0"),
            g = i("0FpR"),
            y = i("Gg2j"),
            m = i("Wglt"),
            v = i("Mtpk"),
            b = i("L91H"),
            x = function(t) {
                function e() {
                    var i = t.call(this) || this;
                    return i._globalEventsAdded = !1, i._pointerEvents = {
                        pointerdown: "mousedown",
                        pointerup: "mouseup",
                        pointermove: "mousemove",
                        pointercancel: "mouseup",
                        pointerover: "mouseover",
                        pointerout: "mouseout",
                        wheel: "wheel"
                    }, i._usePointerEventsOnly = !1, i._useTouchEventsOnly = !1, i._addHoverEvents = !0, i._passiveSupported = !1, i._delayedEvents = {
                        out: []
                    }, i.overObjects = new a.b, i.downObjects = new a.b, i.trackedObjects = new a.b, i.transformedObjects = new a.b, i.pointers = new h.a, i.inertiaOptions = new h.a, i.hitOptions = {
                        doubleHitTime: 300,
                        hitTolerance: 10,
                        noFocus: !0
                    }, i.hoverOptions = {
                        touchOutBehavior: "leave",
                        touchOutDelay: 1e3
                    }, i.swipeOptions = {
                        time: 500,
                        verticalThreshold: 75,
                        horizontalThreshold: 30
                    }, i.keyboardOptions = {
                        speed: .1,
                        accelleration: 1.2,
                        accellerationDelay: 2e3
                    }, i.mouseOptions = {
                        sensitivity: 1
                    }, i.className = "Interaction", i.body = i.getInteraction(document.body), i._disposers.push(i.body), window.hasOwnProperty("PointerEvent") ? (i._pointerEvents.pointerdown = "pointerdown", i._pointerEvents.pointerup = "pointerup", i._pointerEvents.pointermove = "pointermove", i._pointerEvents.pointercancel = "pointercancel", i._pointerEvents.pointerover = "pointerover", i._pointerEvents.pointerout = "pointerout") : window.hasOwnProperty("MSPointerEvent") ? (i._pointerEvents.pointerdown = "MSPointerDown", i._pointerEvents.pointerup = "MSPointerUp", i._pointerEvents.pointermove = "MSPointerMove", i._pointerEvents.pointercancel = "MSPointerUp", i._pointerEvents.pointerover = "MSPointerOver", i._pointerEvents.pointerout = "MSPointerOut") : "undefined" != typeof matchMedia && matchMedia("(pointer:fine)").matches ? "ontouchstart" in window && (i._addHoverEvents = !1, i._useTouchEventsOnly = !0) : window.navigator.userAgent.match(/MSIE /) ? i._usePointerEventsOnly = !0 : i.fullFF() ? i._usePointerEventsOnly = !0 : i._useTouchEventsOnly = !0, "onwheel" in document.createElement("div") ? i._pointerEvents.wheel = "wheel" : v.hasValue(document.onmousewheel) && (i._pointerEvents.wheel = "mousewheel"), i.inertiaOptions.setKey("move", {
                        time: 100,
                        duration: 500,
                        factor: 1,
                        easing: g.polyOut3
                    }), i.inertiaOptions.setKey("resize", {
                        time: 100,
                        duration: 500,
                        factor: 1,
                        easing: g.polyOut3
                    }), i._passiveSupported = e.passiveSupported, i.applyTheme(), i
                }
                return Object(n.c)(e, t), e.prototype.fullFF = function() {
                    return window.navigator.userAgent.match(/Firefox/) && !window.navigator.userAgent.match(/Android/)
                }, e.prototype.debug = function() {}, e.prototype.addGlobalEvents = function() {
                    var t = this;
                    this._globalEventsAdded || (this._useTouchEventsOnly || (this._disposers.push(Object(p.g)(document, this._pointerEvents.pointerdown, function(e) {
                        t.handleGlobalPointerDown(e)
                    })), this._disposers.push(Object(p.g)(document, this._pointerEvents.pointermove, function(e) {
                        t.handleGlobalPointerMove(e)
                    })), this._disposers.push(Object(p.g)(document, this._pointerEvents.pointerup, function(e) {
                        t.handleGlobalPointerUp(e)
                    })), this._disposers.push(Object(p.g)(document, this._pointerEvents.pointercancel, function(e) {
                        t.handleGlobalPointerUp(e, !0)
                    }))), this._usePointerEventsOnly || (this._disposers.push(Object(p.g)(document, "touchstart", function(e) {
                        t.handleGlobalTouchStart(e)
                    })), this._disposers.push(Object(p.g)(document, "touchmove", function(e) {
                        t.handleGlobalTouchMove(e)
                    })), this._disposers.push(Object(p.g)(document, "touchend", function(e) {
                        t.handleGlobalTouchEnd(e)
                    }))), this._disposers.push(Object(p.g)(document, "keydown", function(e) {
                        t.handleGlobalKeyDown(e)
                    })), this._disposers.push(Object(p.g)(document, "keyup", function(e) {
                        t.handleGlobalKeyUp(e)
                    })), this._globalEventsAdded = !0)
                }, e.prototype.processClickable = function(t) {
                    this.processTouchable(t)
                }, e.prototype.processContextMenu = function(t) {
                    t.contextMenuDisabled ? t.eventDisposers.hasKey("contextMenuDisabled") || t.eventDisposers.setKey("contextMenuDisabled", Object(p.g)(t.element, "contextmenu", function(t) {
                        t.preventDefault()
                    })) : t.eventDisposers.hasKey("contextMenuDisabled") && t.eventDisposers.getKey("contextMenuDisabled").dispose()
                }, e.prototype.processHoverable = function(t) {
                    var e = this;
                    if (t.hoverable || t.trackable) this.addGlobalEvents(), this.applyCursorOverStyle(t), !t.eventDisposers.hasKey("hoverable") && this._addHoverEvents && t.eventDisposers.setKey("hoverable", new s.c([Object(p.g)(t.element, this._pointerEvents.pointerout, function(i) {
                        return e.handlePointerOut(t, i)
                    }), Object(p.g)(t.element, this._pointerEvents.pointerover, function(i) {
                        return e.handlePointerOver(t, i)
                    })])), t.trackable;
                    else {
                        var i = t.eventDisposers.getKey("hoverable");
                        null != i && (i.dispose(), t.eventDisposers.removeKey("hoverable"))
                    }
                    this.processTouchable(t)
                }, e.prototype.processMovable = function(t) {
                    (t.draggable || t.swipeable || t.trackable || t.resizable) && (this.isGlobalElement(t) || t.isTouchProtected || this.prepElement(t), this.applyCursorOverStyle(t)), this.processTouchable(t)
                }, e.prototype.processTrackable = function(t) {
                    this.processHoverable(t), this.processMovable(t), t.trackable ? this.trackedObjects.moveValue(t) : this.trackedObjects.removeValue(t)
                }, e.prototype.processDraggable = function(t) {
                    this.processMovable(t)
                }, e.prototype.processSwipeable = function(t) {
                    this.processMovable(t)
                }, e.prototype.processResizable = function(t) {
                    this.processMovable(t)
                }, e.prototype.processWheelable = function(t) {
                    var e = this;
                    if (t.wheelable) t.eventDisposers.hasKey("wheelable") || t.eventDisposers.setKey("wheelable", new s.c([Object(p.g)(t.element, this._pointerEvents.wheel, function(i) {
                        return e.handleMouseWheel(t, i)
                    }, !!this._passiveSupported && {
                        passive: !1
                    }), t.events.on("out", function(i) {
                        t.wheelable && e.unlockWheel()
                    }), t.events.on("over", function(i) {
                        t.wheelable && e.lockWheel()
                    })]));
                    else {
                        var i = t.eventDisposers.getKey("wheelable");
                        null != i && (i.dispose(), t.eventDisposers.removeKey("wheelable"))
                    }
                }, e.prototype.processFocusable = function(t) {
                    var e = this;
                    if (!0 === t.focusable && t.tabindex > -1 && !this._useTouchEventsOnly) t.eventDisposers.hasKey("focusable") || t.eventDisposers.setKey("focusable", new s.c([Object(p.g)(t.element, "focus", function(i) {
                        return e.handleFocus(t, i)
                    }), Object(p.g)(t.element, "blur", function(i) {
                        return e.handleBlur(t, i)
                    }), Object(p.g)(t.element, this._pointerEvents.pointerdown, function(i) {
                        return e.handleFocusBlur(t, i)
                    }), Object(p.g)(t.element, "touchstart", function(i) {
                        return e.handleFocusBlur(t, i)
                    }, !!this._passiveSupported && {
                        passive: !1
                    })]));
                    else {
                        var i = t.eventDisposers.getKey("focusable");
                        null != i && (i.dispose(), t.eventDisposers.removeKey("focusable"))
                    }
                }, e.prototype.processTouchable = function(t) {
                    var e = this;
                    if (t.clickable || t.hoverable || t.trackable || t.draggable || t.swipeable || t.resizable) this.addGlobalEvents(), t.eventDisposers.hasKey("touchable") || (this._useTouchEventsOnly || this._usePointerEventsOnly ? this._useTouchEventsOnly ? this._usePointerEventsOnly || t.eventDisposers.setKey("touchable", Object(p.g)(t.element, "touchstart", function(i) {
                        return e.handleTouchDown(t, i)
                    }, !!this._passiveSupported && {
                        passive: !1
                    })) : t.eventDisposers.setKey("touchable", Object(p.g)(t.element, this._pointerEvents.pointerdown, function(i) {
                        return e.handlePointerDown(t, i)
                    })) : t.eventDisposers.setKey("touchable", new s.c([Object(p.g)(t.element, this._pointerEvents.pointerdown, function(i) {
                        return e.handlePointerDown(t, i)
                    }), Object(p.g)(t.element, "touchstart", function(i) {
                        return e.handleTouchDown(t, i)
                    }, !!this._passiveSupported && {
                        passive: !1
                    })])));
                    else {
                        var i = t.eventDisposers.getKey("touchable");
                        null != i && (i.dispose(), t.eventDisposers.removeKey("touchable"))
                    }
                }, e.prototype.handleFocus = function(t, e) {
                    if (t.focusable) {
                        if (t.isFocused = !0, t.events.isEnabled("focus") && !f.b.isPaused) {
                            var i = {
                                type: "focus",
                                target: t,
                                event: e
                            };
                            t.events.dispatchImmediately("focus", i)
                        }
                    } else e.preventDefault()
                }, e.prototype.handleFocusBlur = function(t, e) {
                    !1 !== t.focusable && this.getHitOption(t, "noFocus") && t.events.once("focus", function() {
                        t.events.disableType("blur"), p.h(), t.sprite && t.sprite.handleBlur(), t.events.enableType("blur")
                    })
                }, e.prototype.handleBlur = function(t, e) {
                    if (t.focusable) {
                        if (t.isFocused = !1, t.events.isEnabled("blur") && !f.b.isPaused) {
                            var i = {
                                type: "blur",
                                target: t,
                                event: e
                            };
                            t.events.dispatchImmediately("blur", i)
                        }
                    } else e.preventDefault()
                }, e.prototype.handleGlobalKeyDown = function(t) {
                    if (this.focusedObject)
                        if (d.b.isKey(t, "esc")) p.h();
                        else if (this.focusedObject.draggable && d.b.isKey(t, ["up", "down", "left", "right"])) {
                        t.preventDefault();
                        var e = this.focusedObject;
                        if (e.eventDisposers.hasKey("interactionKeyboardObject")) return;
                        var i = new u.a(e, t);
                        switch (e.eventDisposers.setKey("interactionKeyboardObject", i), d.b.getEventKey(t)) {
                            case "up":
                                i.directionY = -1;
                                break;
                            case "down":
                                i.directionY = 1;
                                break;
                            case "left":
                                i.directionX = -1;
                                break;
                            case "right":
                                i.directionX = 1
                        }
                    }
                }, e.prototype.handleGlobalKeyUp = function(t) {
                    if (this.focusedObject) {
                        var e = this.focusedObject.eventDisposers.getKey("interactionKeyboardObject");
                        null != e && (t.preventDefault(), e.dispose(), this.focusedObject.eventDisposers.removeKey("interactionKeyboardObject"))
                    }
                }, e.prototype.handleGlobalPointerMove = function(t) {
                    var e = this.getPointer(t);
                    if (e.point = this.getPointerPoint(t), this.events.isEnabled("track") && !f.b.isPaused) {
                        var i = {
                            type: "track",
                            target: this,
                            event: t,
                            pointer: e,
                            touch: e.touch
                        };
                        this.events.dispatchImmediately("track", i)
                    }
                    this.addBreadCrumb(e, e.point), this.handleGlobalMove(e, t)
                }, e.prototype.handleGlobalPointerDown = function(t) {
                    this.processDelayed();
                    var e = this.getPointer(t);
                    if (this.events.isEnabled("down") && !f.b.isPaused) {
                        var i = {
                            type: "down",
                            target: this,
                            event: t,
                            pointer: e,
                            touch: e.touch
                        };
                        this.events.dispatchImmediately("down", i)
                    }
                }, e.prototype.preventTouchAction = function(t) {
                    t.defaultPrevented || t.preventDefault()
                }, e.prototype.handleGlobalPointerUp = function(t, e) {
                    void 0 === e && (e = !1);
                    var i = this.getPointer(t);
                    if (this.events.isEnabled("up") && !f.b.isPaused) {
                        var n = {
                            type: "up",
                            target: this,
                            event: t,
                            pointer: i,
                            touch: i.touch
                        };
                        this.events.dispatchImmediately("up", n)
                    }
                    this.handleGlobalUp(i, t, e)
                }, e.prototype.handleGlobalTouchMove = function(t) {
                    for (var e = 0; e < t.changedTouches.length; e++) {
                        var i = this.getPointer(t.changedTouches[e]);
                        if (i.point = this.getPointerPoint(t.changedTouches[e]), this.events.isEnabled("track") && !f.b.isPaused) {
                            var n = {
                                type: "track",
                                target: this,
                                event: t,
                                pointer: i,
                                touch: i.touch
                            };
                            this.events.dispatchImmediately("track", n)
                        }
                        this.addBreadCrumb(i, i.point), this.handleGlobalMove(i, t)
                    }
                }, e.prototype.handleGlobalTouchStart = function(t) {
                    this.processDelayed();
                    for (var e = 0; e < t.changedTouches.length; e++) {
                        var i = this.getPointer(t.changedTouches[e]);
                        if (!this._usePointerEventsOnly && this.events.isEnabled("down") && !f.b.isPaused) {
                            var n = {
                                type: "down",
                                target: this,
                                event: t,
                                pointer: i,
                                touch: i.touch
                            };
                            this.events.dispatchImmediately("down", n)
                        }
                    }
                }, e.prototype.handleGlobalTouchEnd = function(t) {
                    for (var e = 0; e < t.changedTouches.length; e++) {
                        var i = this.getPointer(t.changedTouches[e]);
                        if (this.events.isEnabled("up") && !f.b.isPaused) {
                            var n = {
                                type: "up",
                                target: this,
                                event: t,
                                pointer: i,
                                touch: i.touch
                            };
                            this.events.dispatchImmediately("up", n)
                        }
                        this.handleGlobalUp(i, t)
                    }
                }, e.prototype.handlePointerDown = function(t, e) {
                    var i = this.getPointer(e);
                    (i.touch || 1 == e.which || 3 == e.which) && (i.button = e.which, this.resetPointer(i, e), this.handleDown(t, i, e))
                }, e.prototype.handlePointerOver = function(t, e) {
                    var i = this.getPointer(e);
                    this.handleOver(t, i, e)
                }, e.prototype.handlePointerOut = function(t, e) {
                    var i = this.getPointer(e);
                    this.handleOut(t, i, e)
                }, e.prototype.handleMouseWheel = function(t, e) {
                    var i = this.getPointer(e);
                    i.point = this.getPointerPoint(e);
                    var n = 0,
                        r = 0,
                        a = 1;
                    if (1 == e.deltaMode && (a = 50), a *= this.getMouseOption(t, "sensitivity"), !(e instanceof WheelEvent)) throw new Error("Invalid event type");
                    n = Math.round(-1 * e.wheelDeltaX || e.deltaX) * a, r = Math.round(-1 * e.wheelDeltaY || e.deltaY) * a, this.handleWheel(t, i, n, r, e)
                }, e.prototype.handleTouchDown = function(t, e) {
                    for (var i = 0; i < e.changedTouches.length; i++) {
                        var n = this.getPointer(e.changedTouches[i]);
                        this.maybePreventDefault(t, e, n), this.resetPointer(n, e.changedTouches[i]), this.handleDown(t, n, e)
                    }
                }, e.prototype.handleHit = function(t, e, i) {
                    var n = b.getTime();
                    if (t.lastHit && t.lastHit >= n - this.getHitOption(t, "doubleHitTime")) {
                        if (n - t.lastHit < 100) return;
                        if (t.lastHit = void 0, t.lastHitPointer = void 0, t.events.isEnabled("doublehit") && !f.b.isPaused) {
                            var r = {
                                type: "doublehit",
                                target: t,
                                point: e.point,
                                event: i,
                                touch: e.touch
                            };
                            t.events.dispatchImmediately("doublehit", r)
                        }
                    } else if (t.lastHit = n, t.lastHitPointer = e, 3 === e.button) {
                        if (t.events.isEnabled("rightclick") && !f.b.isPaused) {
                            r = {
                                type: "rightclick",
                                target: t,
                                event: i
                            };
                            t.events.dispatchImmediately("rightclick", r)
                        }
                    } else if (t.events.isEnabled("hit") && !f.b.isPaused) {
                        r = {
                            type: "hit",
                            target: t,
                            event: i,
                            point: e.point,
                            touch: e.touch
                        };
                        t.events.dispatchImmediately("hit", r)
                    }
                }, e.prototype.handleOver = function(t, e, i, n) {
                    if (void 0 === n && (n = !1), t.hoverable && (this.processDelayed(), t.overPointers.moveValue(e), !t.isRealHover && (t.isHover = !0, t.isRealHover = !0, this.overObjects.moveValue(t), this.handleTrack(this.body, e, i, !0), t.events.isEnabled("over") && !f.b.isPaused))) {
                        var r = {
                            type: "over",
                            target: t,
                            event: i,
                            pointer: e,
                            touch: e.touch
                        };
                        t.events.dispatchImmediately("over", r)
                    }
                }, e.prototype.handleOut = function(t, e, i, n, r) {
                    var a = this;
                    if (void 0 === n && (n = !1), void 0 === r && (r = !1), t.hoverable && (t.overPointers.removeValue(e), t.isHover && (!t.hasDelayedOut || r))) {
                        if (n && t.overPointers.length) return;
                        if (e.touch && !r && !this.old(e)) {
                            var o = this.getHoverOption(t, "touchOutBehavior");
                            if ("leave" == o) return this._delayedEvents.out.push({
                                type: "out",
                                io: t,
                                pointer: e,
                                event: i,
                                keepUntil: b.getTime() + 500
                            }), void(t.hasDelayedOut = !0);
                            if ("delay" == o && this.getHoverOption(t, "touchOutDelay")) return void this._delayedEvents.out.push({
                                type: "out",
                                io: t,
                                pointer: e,
                                event: i,
                                keepUntil: b.getTime() + 500,
                                timeout: this.setTimeout(function() {
                                    a.handleOut(t, e, i, !0)
                                }, this.getHoverOption(t, "touchOutDelay"))
                            })
                        }
                        if (t.isHover = !1, this.overObjects.removeValue(t), t.events.isEnabled("out") && !f.b.isPaused) {
                            var s = {
                                type: "out",
                                target: t,
                                event: i,
                                pointer: e,
                                touch: e.touch
                            };
                            t.events.dispatchImmediately("out", s)
                        }
                        t.overPointers.clear(), t.hasDelayedOut = !1
                    }
                }, e.prototype.processDelayed = function() {
                    for (var t; t = this._delayedEvents.out.pop();) t.timeout && t.timeout.dispose(), this.handleOut(t.io, t.pointer, t.event, !1, !0)
                }, e.prototype.handleDown = function(t, e, i) {
                    if (this.maybePreventDefault(t, i, e), t.inert && this.stopInertia(t), this.handleOver(t, e, i, !0), t.downPointers.moveValue(e), this.applyCursorDownStyle(t, e), t.isDown || (!1 !== t.focusable && this.getHitOption(t, "noFocus") && this.focusedObject && p.h(), t.isDown = !0, this.downObjects.moveValue(t), t.draggable && this.processDragStart(t, e, i), t.resizable && this.processResizeStart(t, e, i)), t.events.isEnabled("down") && !f.b.isPaused) {
                        var n = {
                            type: "down",
                            target: t,
                            event: i,
                            pointer: e,
                            touch: e.touch
                        };
                        t.events.dispatchImmediately("down", n)
                    }
                }, e.prototype.handleGlobalUp = function(t, e, i) {
                    var n = this;
                    void 0 === i && (i = !1), m.each(this.downObjects.backwards().iterator(), function(r) {
                        r && r.downPointers.contains(t) && n.handleUp(r, t, e, i)
                    })
                }, e.prototype.handleUp = function(t, e, i, n) {
                    if (void 0 === n && (n = !1), this.restoreCursorDownStyle(t, e), t.downPointers.removeValue(e), (e.touch || this._useTouchEventsOnly) && this.handleOut(t, e, i, !0), t.isDown) {
                        if (0 == t.downPointers.length && (t.isDown = !1, this.downObjects.removeValue(t)), t.events.isEnabled("up") && !f.b.isPaused) {
                            var r = {
                                type: "up",
                                target: t,
                                event: i,
                                pointer: e,
                                touch: e.touch
                            };
                            t.events.dispatchImmediately("up", r)
                        }
                        n || (t.swipeable && this.swiped(t, e) ? this.handleSwipe(t, e, i) : (t.clickable && !this.moved(e, this.getHitOption(t, "hitTolerance")) && this.handleHit(t, e, i), t.inert && this.moved(e, this.getHitOption(t, "hitTolerance")) ? this.handleInertia(t, e) : t.draggable && this.processDragStop(t, e, i), t.resizable && this.processResizeStop(t, e, i)))
                    }
                }, e.prototype.maybePreventDefault = function(t, e, i) {
                    !v.hasValue(e) || !(t.draggable || t.swipeable || t.trackable || t.resizable) || this.isGlobalElement(t) || !1 === e.cancelable || t.isTouchProtected && i && i.touch || e.preventDefault()
                }, e.prototype.handleGlobalMove = function(t, e) {
                    var i = this;
                    if (!t.touch) {
                        var n = p.k(t.lastEvent);
                        m.each(this.overObjects.backwards().iterator(), function(r) {
                            if (r && r.overPointers.contains(t) && r.hoverable) {
                                var a = !1;
                                r.element && t.lastEvent && p.i(r.element, n) || (a = !0), a && i.handleOut(r, t, e, !0)
                            }
                        })
                    }
                    m.each(this.transformedObjects.backwards().iterator(), function(n) {
                        !n.downPointers.contains(t) || n.swipeable && i.swiping(n, t) || !n.draggable && !n.resizable || i.handleTransform(n, e)
                    }), m.each(this.trackedObjects.backwards().iterator(), function(n) {
                        n.overPointers.contains(t) || i.handleTrack(n, t, e)
                    })
                }, e.prototype.handleTrack = function(t, e, i, n) {
                    if (void 0 === n && (n = !1), (n || this.moved(e, 0)) && t.events.isEnabled("track") && !f.b.isPaused) {
                        var r = {
                            type: "track",
                            target: t,
                            event: i,
                            point: e.point,
                            pointer: e,
                            touch: e.touch
                        };
                        t.events.dispatchImmediately("track", r)
                    }
                }, e.prototype.handleSwipe = function(t, e, i) {
                    if (t.events.isEnabled("swipe") && !f.b.isPaused) {
                        var n = {
                            type: "swipe",
                            target: t,
                            event: i,
                            touch: e.touch
                        };
                        t.events.dispatchImmediately("swipe", n)
                    }
                    if (e.startPoint.x < e.point.x) {
                        if (t.events.isEnabled("swiperight") && !f.b.isPaused) {
                            n = {
                                type: "swiperight",
                                target: t,
                                event: i,
                                touch: e.touch
                            };
                            t.events.dispatchImmediately("swiperight", n)
                        }
                    } else if (t.events.isEnabled("swipeleft") && !f.b.isPaused) {
                        n = {
                            type: "swipeleft",
                            target: t,
                            event: i,
                            touch: e.touch
                        };
                        t.events.dispatchImmediately("swipeleft", n)
                    }
                }, e.prototype.handleWheel = function(t, e, i, n, r) {
                    var a = {
                        x: i,
                        y: n
                    };
                    t.events.isEnabled("wheel") && !f.b.isPaused && t.events.dispatchImmediately("wheel", {
                        type: "wheel",
                        target: t,
                        event: r,
                        point: e.point,
                        shift: a
                    }), i < 0 ? t.events.isEnabled("wheelleft") && !f.b.isPaused && t.events.dispatchImmediately("wheelleft", {
                        type: "wheelleft",
                        target: t,
                        event: r,
                        point: e.point,
                        shift: a
                    }) : i > 0 ? t.events.isEnabled("swiperight") && !f.b.isPaused && t.events.dispatchImmediately("wheelright", {
                        type: "wheelright",
                        target: t,
                        event: r,
                        point: e.point,
                        shift: a
                    }) : n < 0 ? t.events.isEnabled("wheelup") && !f.b.isPaused && t.events.dispatchImmediately("wheelup", {
                        type: "wheelup",
                        target: t,
                        event: r,
                        point: e.point,
                        shift: a
                    }) : n > 0 && t.events.isEnabled("wheeldown") && !f.b.isPaused && t.events.dispatchImmediately("wheeldown", {
                        type: "wheeldown",
                        target: t,
                        event: r,
                        point: e.point,
                        shift: a
                    })
                }, e.prototype.handleInertia = function(t, e) {
                    t.draggable && 0 === t.downPointers.length && this.handleMoveInertia(t, e), t.resizable && t.downPointers.length > 1 && this.handleResizeInertia(t, e)
                }, e.prototype.handleMoveInertia = function(t, e) {
                    var i = t,
                        n = {
                            x: e.point.x,
                            y: e.point.y
                        },
                        r = {
                            x: e.startPoint.x,
                            y: e.startPoint.y
                        },
                        a = new c.a(i, "move", n, r),
                        s = this.getTrailPoint(e, b.getTime() - this.getInertiaOption(t, "move", "time"));
                    if (void 0 !== s) {
                        var l = this.getInertiaOption(t, "move", "factor"),
                            u = [{
                                to: e.point.x + (e.point.x - s.point.x) * l,
                                property: "x"
                            }, {
                                to: e.point.y + (e.point.y - s.point.y) * l,
                                property: "y"
                            }],
                            h = new o.a(a, u, this.getInertiaOption(t, "move", "duration"), this.getInertiaOption(t, "move", "easing")).start();
                        this._disposers.push(h.events.on("animationended", function(t) {
                            a.done()
                        })), t.inertias.setKey("move", a)
                    } else this.processDragStop(t, e, e.lastUpEvent)
                }, e.prototype.handleResizeInertia = function(t, e) {}, e.prototype.handleTransform = function(t, e) {
                    var i, n, r, a = t.downPointers.getIndex(0),
                        o = null,
                        s = null;
                    a && (o = a.point, s = a.startPoint), r = n = {
                        x: t.originalPosition.x,
                        y: t.originalPosition.y
                    };
                    for (var l = !0, u = 1; u < t.downPointers.length; u++) {
                        var h = t.downPointers.getIndex(u);
                        if (s.x != h.startPoint.x && s.y != h.startPoint.y) {
                            l = !1, n = (i = h).point, r = i.startPoint;
                            break
                        }
                    }
                    var c = a && this.moved(a, 0);
                    if (t.draggable && a && a.dragStartEvents && a.dragStartEvents.length && c && t.events.isEnabled("dragstart") && !f.b.isPaused && t.events.dispatchImmediately("dragstart", a.dragStartEvents.shift()), l && t.draggable) this.handleTransformMove(t, o, s, e, c, a.touch);
                    else {
                        var p = i && this.moved(i, 0);
                        t.draggable && t.resizable ? (this.handleTransformMove(t, o, s, e, c && p, a.touch), this.handleTransformResize(t, o, s, n, r, e, c && p, a.touch)) : (t.draggable && this.handleTransformMove(t, o, s, e, c, a.touch), !t.resizable || l && !e.ctrlKey || this.handleTransformResize(t, o, s, n, r, e, c && p, a.touch))
                    }
                }, e.prototype.handleTransformMove = function(t, e, i, n, r, a) {
                    if (r && t.events.isEnabled("drag") && !f.b.isPaused && (!t.isTouchProtected || !a)) {
                        var o = {
                            type: "drag",
                            target: t,
                            event: n,
                            shift: {
                                x: e.x - i.x,
                                y: e.y - i.y
                            },
                            startPoint: i,
                            point: e,
                            touch: a
                        };
                        t.events.dispatchImmediately("drag", o)
                    }
                }, e.prototype.handleTransformResize = function(t, e, i, n, r, a, o, s) {
                    if (t.events.isEnabled("resize") && !f.b.isPaused && (!t.isTouchProtected || !s)) {
                        var l = {
                            type: "resize",
                            target: t,
                            event: a,
                            scale: y.getScale(e, i, n, r),
                            startPoint1: i,
                            point1: e,
                            startPoint2: r,
                            point2: n,
                            touch: s
                        };
                        t.events.dispatchImmediately("resize", l)
                    }
                }, e.prototype.processDragStart = function(t, e, i) {
                    this.transformedObjects.moveValue(t);
                    var n = {
                        type: "dragstart",
                        target: t,
                        event: i,
                        touch: !!e && e.touch
                    };
                    e && (e.dragTarget = t), e && e.dragStartEvents ? e.dragStartEvents.push(n) : f.b.isPaused || t.dispatchImmediately("dragstart", n)
                }, e.prototype.processDragStop = function(t, e, i) {
                    if (e || (e = this.getDragPointer(t)), e && (e.dragTarget = void 0), this.transformedObjects.removeValue(t), (!e || this.moved(e, 0)) && t.events.isEnabled("dragstop") && !f.b.isPaused) {
                        var n = {
                            type: "dragstop",
                            target: t,
                            touch: !!e && e.touch
                        };
                        t.events.dispatchImmediately("dragstop", n)
                    }
                }, e.prototype.processResizeStart = function(t, e, i) {
                    this.transformedObjects.moveValue(t)
                }, e.prototype.processResizeStop = function(t, e, i) {
                    this.transformedObjects.removeValue(t)
                }, e.prototype.dragStart = function(t, e) {
                    e || (e = this.getDragPointer(t)), e && this.handleDown(t, e, e.lastDownEvent)
                }, e.prototype.dragStop = function(t, e) {
                    e || (e = this.getDragPointer(t)), e && this.handleGlobalUp(e, e.lastUpEvent)
                }, e.prototype.getDragPointer = function(t) {
                    return t ? t.downPointers.getIndex(0) : this.transformedObjects.length ? this.getDragPointer(this.transformedObjects.getIndex(0)) : void 0
                }, e.prototype.getPointerId = function(t) {
                    return (v.hasValue(t.identifier) ? "" + t.identifier : v.hasValue(t.pointerId) ? "" + t.pointerId : "m").replace("-", "")
                }, e.prototype.getPointerPoint = function(t) {
                    return {
                        x: t.clientX,
                        y: t.clientY
                    }
                }, e.prototype.getPointer = function(t) {
                    var e, i = this.getPointerId(t),
                        n = this.getPointerPoint(t);
                    return this.pointers.hasKey(i) ? (e = this.pointers.getKey(i)).touch = this.isPointerTouch(t) : (e = {
                        id: i,
                        touch: this.isPointerTouch(t),
                        startPoint: n,
                        startTime: b.getTime(),
                        point: n,
                        track: [],
                        swipeCanceled: !1,
                        dragStartEvents: []
                    }, this.addBreadCrumb(e, n), this.pointers.setKey(i, e)), e.lastEvent = t, e
                }, e.prototype.isPointerTouch = function(t) {
                    if ("undefined" != typeof Touch && t instanceof Touch) return !0;
                    if ("undefined" != typeof PointerEvent && t instanceof PointerEvent && v.hasValue(t.pointerType)) switch (t.pointerType) {
                        case "touch":
                        case "pen":
                        case 2:
                            return !0;
                        case "mouse":
                        case 4:
                            return !1;
                        default:
                            return !(t instanceof MouseEvent)
                    } else if (v.hasValue(t.type) && t.type.match(/^mouse/)) return !1;
                    return !0
                }, e.prototype.resetPointer = function(t, e) {
                    var i = this.getPointerPoint(e);
                    t.startTime = b.getTime(), t.startPoint = {
                        x: i.x,
                        y: i.y
                    }, t.point = {
                        x: i.x,
                        y: i.y
                    }, t.track = [], t.swipeCanceled = !1
                }, e.prototype.addBreadCrumb = function(t, e) {
                    t.track.push({
                        timestamp: b.getTime(),
                        point: e
                    })
                }, e.prototype.lockDocument = function() {
                    this.prepElement(this.body)
                }, e.prototype.unlockDocument = function() {
                    0 == this.transformedObjects.length && this.restoreAllStyles(this.body)
                }, e.prototype.lockElement = function(t) {
                    this.prepElement(t)
                }, e.prototype.unlockElement = function(t) {
                    this.restoreAllStyles(t)
                }, e.prototype.lockWheel = function() {
                    window.addEventListener(this._pointerEvents.wheel, this.wheelLockEvent, !!this._passiveSupported && {
                        passive: !1
                    })
                }, e.prototype.unlockWheel = function() {
                    window.removeEventListener(this._pointerEvents.wheel, this.wheelLockEvent)
                }, e.prototype.isLocalElement = function(t, e, i) {
                    var n = this.getCache("local_pointer_" + t.id);
                    if (v.hasValue(n)) return n;
                    var r = (p.r(e) || document).elementFromPoint(t.point.x, t.point.y),
                        a = r && p.i(e, r);
                    return this.setCache("local_pointer_" + t.id + "_" + i, a, 100), a
                }, e.prototype.wheelLockEvent = function(t) {
                    return t.preventDefault(), !1
                }, e.prototype.prepElement = function(t) {
                    var e = t.element;
                    if (e) {
                        for (var i = ["touchAction", "webkitTouchAction", "MozTouchAction", "MSTouchAction", "msTouchAction", "oTouchAction", "userSelect", "webkitUserSelect", "MozUserSelect", "MSUserSelect", "msUserSelect", "oUserSelect", "touchSelect", "webkitTouchSelect", "MozTouchSelect", "MSTouchSelect", "msTouchSelect", "oTouchSelect", "touchCallout", "webkitTouchCallout", "MozTouchCallout", "MSTouchCallout", "msTouchCallout", "oTouchCallout", "contentZooming", "webkitContentZooming", "MozContentZooming", "MSContentZooming", "msContentZooming", "oContentZooming", "userDrag", "webkitUserDrag", "MozUserDrag", "MSUserDrag", "msUserDrag", "oUserDrag"], n = 0; n < i.length; n++) i[n] in e.style && this.setTemporaryStyle(t, i[n], "none");
                        this.setTemporaryStyle(t, "tapHighlightColor", "rgba(0, 0, 0, 0)")
                    }
                }, e.prototype.unprepElement = function(t) {
                    var e = t.element;
                    if (e) {
                        for (var i = ["touchAction", "webkitTouchAction", "MozTouchAction", "MSTouchAction", "msTouchAction", "oTouchAction", "userSelect", "webkitUserSelect", "MozUserSelect", "MSUserSelect", "msUserSelect", "oUserSelect", "touchSelect", "webkitTouchSelect", "MozTouchSelect", "MSTouchSelect", "msTouchSelect", "oTouchSelect", "touchCallout", "webkitTouchCallout", "MozTouchCallout", "MSTouchCallout", "msTouchCallout", "oTouchCallout", "contentZooming", "webkitContentZooming", "MozContentZooming", "MSContentZooming", "msContentZooming", "oContentZooming", "userDrag", "webkitUserDrag", "MozUserDrag", "MSUserDrag", "msUserDrag", "oUserDrag"], n = 0; n < i.length; n++) i[n] in e.style && this.restoreStyle(t, i[n]);
                        this.restoreStyle(t, "tapHighlightColor")
                    }
                }, e.prototype.getHitOption = function(t, e) {
                    var i = t.hitOptions[e];
                    return void 0 === i && (i = this.hitOptions[e]), i
                }, e.prototype.getHoverOption = function(t, e) {
                    var i = t.hoverOptions[e];
                    return void 0 === i && (i = this.hoverOptions[e]), i
                }, e.prototype.getSwipeOption = function(t, e) {
                    var i = t.swipeOptions[e];
                    return void 0 === i && (i = this.swipeOptions[e]), i
                }, e.prototype.getKeyboardOption = function(t, e) {
                    var i = t.keyboardOptions[e];
                    return void 0 === i && (i = this.keyboardOptions[e]), i
                }, e.prototype.getMouseOption = function(t, e) {
                    var i = t.mouseOptions[e];
                    return void 0 === i && (i = this.mouseOptions[e]), i
                }, e.prototype.getInertiaOption = function(t, e, i) {
                    var n = t.inertiaOptions.getKey(e);
                    return n && v.hasValue(n[i]) ? n[i] : this.inertiaOptions.getKey(e)[i]
                }, e.prototype.stopInertia = function(t) {
                    for (var e, i = ["move", "resize"], n = 0; n < i.length; n++)
                        if (e = i[n], t.inertias.hasKey(e)) {
                            var r = t.inertias.getKey(e);
                            if (r) {
                                r.dispose();
                                continue
                            }
                        }
                }, e.prototype.swiping = function(t, e) {
                    var i = b.getTime();
                    return !(e.swipeCanceled || !t.swipeable) && (Math.abs(e.startPoint.y - e.point.y) < this.getSwipeOption(t, "verticalThreshold") && e.startTime > i - this.getSwipeOption(t, "time"))
                }, e.prototype.swiped = function(t, e) {
                    var i = b.getTime();
                    return !e.swipeCanceled && (Math.abs(e.startPoint.x - e.point.x) > this.getSwipeOption(t, "horizontalThreshold") && Math.abs(e.startPoint.y - e.point.y) < this.getSwipeOption(t, "verticalThreshold") && e.startTime > i - this.getSwipeOption(t, "time"))
                }, e.prototype.applyCursorOverStyle = function(t) {
                    var e = t.cursorOptions;
                    if (v.hasValue(e.overStyle))
                        for (var i = 0; i < e.overStyle.length; i++) p.y(t.element, e.overStyle[i].property, e.overStyle[i].value)
                }, e.prototype.applyCursorDownStyle = function(t, e) {
                    if (!e.touch) {
                        var i = t.cursorOptions.downStyle;
                        if (t.downPointers.contains(e) && v.hasValue(i))
                            for (var n = 0; n < i.length; n++) this.setTemporaryStyle(this.body, i[n].property, i[n].value), this.setTemporaryStyle(t, i[n].property, i[n].value)
                    }
                }, e.prototype.restoreCursorDownStyle = function(t, e) {
                    if (!e.touch) {
                        var i = t.cursorOptions.downStyle;
                        if (t.downPointers.contains(e) && v.hasValue(i))
                            for (var n = 0; n < i.length; n++) this.restoreStyle(this.body, i[n].property), this.restoreStyle(t, i[n].property)
                    }
                }, e.prototype.setGlobalStyle = function(t) {
                    for (var e = P().body, i = v.isArray(t) ? t : [t], n = 0; n < i.length; n++) this.setTemporaryStyle(e, i[n].property, i[n].value)
                }, e.prototype.restoreGlobalStyle = function(t) {
                    for (var e = P().body, i = v.isArray(t) ? t : [t], n = 0; n < i.length; n++) this.restoreStyle(e, i[n].property)
                }, e.prototype.isGlobalElement = function(t) {
                    return document.body === t.element
                }, e.prototype.moved = function(t, e, i) {
                    void 0 === i && (i = 300);
                    var n = this.getShift(t);
                    return Math.abs(n.x) > e || Math.abs(n.y) > e
                }, e.prototype.old = function(t, e) {
                    return void 0 === e && (e = 300), b.getTime() - t.startTime > e
                }, e.prototype.getShift = function(t) {
                    return {
                        x: t.startPoint.x - t.point.x,
                        y: t.startPoint.y - t.point.y
                    }
                }, e.prototype.getTrailPoint = function(t, e) {
                    for (var i, n = 0; n < t.track.length; n++)
                        if (t.track[n].timestamp >= e) {
                            i = t.track[n];
                            break
                        } return i
                }, e.prototype.pointerExists = function(t, e) {
                    var i = !1;
                    return t.each(function(t) {
                        t != e && (i = t.point.x == e.point.x && t.point.y == e.point.y)
                    }), i
                }, e.prototype.getInteraction = function(t) {
                    return new l.a(t)
                }, e.prototype.setTemporaryStyle = function(t, e, i) {
                    var n = t.element;
                    v.hasValue(n.style[e]) && !t.replacedStyles.hasKey(e) && t.replacedStyles.setKey(e, n.style[e]), p.y(n, e, i)
                }, e.prototype.restoreStyle = function(t, e) {
                    t.replacedStyles.hasKey(e) ? (t.element.style[e] = t.replacedStyles.getKey(e), t.replacedStyles.removeKey(e)) : delete t.element.style[e]
                }, e.prototype.restoreAllStyles = function(t) {
                    m.each(t.replacedStyles.iterator(), function(e) {
                        var i = e[0],
                            n = e[1];
                        t.element.style[i] = n, t.replacedStyles.removeKey(i)
                    })
                }, e.prototype.dispose = function() {
                    this.isDisposed() || (t.prototype.dispose.call(this), this.restoreAllStyles(this.body), this.unlockWheel())
                }, e.prototype.log = function(t, e, i) {
                    if (e.changedTouches)
                        for (var n = 0; n < e.changedTouches.length; n++) this.logTouch(t, e.type, e.changedTouches[n]);
                    else {
                        var r = "";
                        if (e.pointerType) switch (e.pointerType) {
                            case 2:
                                r = "touch";
                                break;
                            case 4:
                                r = "mouse";
                                break;
                            default:
                                r = e.pointerType
                        } else r = "undefined" != typeof TouchEvent && e instanceof TouchEvent ? "touch" : e.type.match(/^mouse/) ? "mouse" : "???";
                        var a = "";
                        a = v.hasValue(e.identifier) ? e.identifier : v.hasValue(e.pointerId) ? e.pointerId : "???", i ? console.log(t + " (" + i.uid + ")  " + e.type + "  " + r + "  " + a) : console.log(t + "  " + e.type + "  " + r + "  " + a)
                    }
                }, e.prototype.logTouch = function(t, e, i) {
                    console.log(t + "  " + e + "  touch  " + i.identifier)
                }, Object.defineProperty(e, "passiveSupported", {
                    get: function() {
                        var t = this;
                        if (null == this._passiveSupported) try {
                            var e = Object.defineProperty({}, "passive", {
                                get: function() {
                                    t._passiveSupported = !0
                                }
                            });
                            window.addEventListener("test", e, e), window.removeEventListener("test", e, e)
                        } catch (t) {
                            this._passiveSupported = !1
                        }
                        return this._passiveSupported
                    },
                    enumerable: !0,
                    configurable: !0
                }), e
            }(r.b),
            _ = null;

        function P() {
            return null == _ && (_ = new x), _
        }
    }
});