%PDF- %PDF- ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC
Mini Shell

Mini Shell

Direktori : /var/www/html/ctctaxi/public/
Upload File :
Create Path :
Current File : /var/www/html/ctctaxi/public/fusioncharts.charts.js

/**!
 * @license FusionCharts JavaScript Library
 * Copyright FusionCharts, Inc.
 * License Information at <http://www.fusioncharts.com/license>
 *
 * @version 3.15.3
 *
 * @attributions (infers respective third-party copyrights)
 * Raphael 2.1.0 (modified as 'Red Raphael') <http://raphaeljs.com/license.html>
 * JSON v2 <http://www.JSON.org/js.html>
 * Firebug Lite 1.3.0 <http://getfirebug.com/firebuglite>
 */
"function" != typeof Object.assign && (Object.assign = function(e) { "use strict"; var t, r, n, a; if (null == e) throw new TypeError("Cannot convert undefined or null to object"); for (t = Object(e), r = 1; r < arguments.length; r++)
            if (null != (n = arguments[r]))
                for (a in n) Object.prototype.hasOwnProperty.call(n, a) && (t[a] = n[a]); return t }), Function.prototype.bind || (Function.prototype.bind = function(e) { "use strict"; var t, r, n, a; if ("function" != typeof this) throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); return t = Array.prototype.slice.call(arguments, 1), r = this, n = function() {}, a = function() { return r.apply(this instanceof n ? this : e, t.concat(Array.prototype.slice.call(arguments))) }, this.prototype && (n.prototype = this.prototype), a.prototype = new n, a }), !document.head && (document.head = document.getElementsByTagName("head")[0]),
    function(e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.FusionCharts = t() : e.FusionCharts = t() }(window, (function() { return function(e) {
            function t(t) { for (var r, a, i = t[0], o = t[1], s = 0, c = []; s < i.length; s++) a = i[s], Object.prototype.hasOwnProperty.call(n, a) && n[a] && c.push(n[a][0]), n[a] = 0; for (r in o) Object.prototype.hasOwnProperty.call(o, r) && (e[r] = o[r]); for (l && l(t); c.length;) c.shift()() } var r = {},
                n = { 0: 0 };

            function a(t) { if (r[t]) return r[t].exports; var n = r[t] = { i: t, l: !1, exports: {} }; return e[t].call(n.exports, n, n.exports, a), n.l = !0, n.exports } a.e = function(e) { var t = [],
                    r = n[e]; if (0 !== r)
                    if (r) t.push(r[2]);
                    else { var i = new Promise((function(t, a) { r = n[e] = [t, a] }));
                        t.push(r[2] = i); var o, s = document.createElement("script");
                        s.charset = "utf-8", s.timeout = 120, a.nc && s.setAttribute("nonce", a.nc), s.src = function(e) { return a.p + "" + ({ 1: "fusioncharts.charts", 2: "fusioncharts.common", 3: "fusioncharts.timeseries", 4: "fusioncharts.powercharts", 5: "fusioncharts.widgets", 6: "fusioncharts.zoomline", 7: "fusioncharts.gantt", 8: "fusioncharts.treemap", 9: "fusioncharts.zoomscatter", 10: "fusioncharts.msstackedcolumn2dsplinedy", 11: "fusioncharts.overlappedbar2d", 12: "fusioncharts.overlappedcolumn2d", 13: "fusioncharts.excelexport", 14: "fusioncharts.maps", 15: "fusioncharts.vml" } [e] || e) + ".js" }(e); var l = new Error;
                        o = function(t) { s.onerror = s.onload = null, clearTimeout(c); var r = n[e]; if (0 !== r) { if (r) { var a = t && ("load" === t.type ? "missing" : t.type),
                                        i = t && t.target && t.target.src;
                                    l.message = "Loading chunk " + e + " failed.\n(" + a + ": " + i + ")", l.name = "ChunkLoadError", l.type = a, l.request = i, r[1](l) } n[e] = undefined } }; var c = setTimeout((function() { o({ type: "timeout", target: s }) }), 12e4);
                        s.onerror = s.onload = o, document.head.appendChild(s) } return Promise.all(t) }, a.m = e, a.c = r, a.d = function(e, t, r) { a.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: r }) }, a.r = function(e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, a.t = function(e, t) { if (1 & t && (e = a(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var r = Object.create(null); if (a.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e)
                    for (var n in e) a.d(r, n, function(t) { return e[t] }.bind(null, n)); return r }, a.n = function(e) { var t = e && e.__esModule ? function() { return e["default"] } : function() { return e }; return a.d(t, "a", t), t }, a.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, a.p = "", a.oe = function(e) { throw console.error(e), e }; var i = window.webpackJsonpFusionCharts = window.webpackJsonpFusionCharts || [],
                o = i.push.bind(i);
            i.push = t, i = i.slice(); for (var s = 0; s < i.length; s++) t(i[s]); var l = o; return a(a.s = 0) }([function(e, t, r) { r(1), r(125), r(203), e.exports = r(207) }, function(e, t, r) { "use strict";
            r(2), r(49), r(51), r(53), r(59), r(62), r(69), r(78), r(83), r(85), r(88), r(90), r(92), r(97), r(124);
            window.getComputedStyle || (window.getComputedStyle = function(e) { return this.el = e, this.getPropertyValue = function(t) { var r = /(\-([a-z]){1})/g,
                        n = t; return "float" === n && (n = "styleFloat"), r.test(n) && (n = n.replace(r, (function() { return arguments[2].toUpperCase() }))), e.currentStyle[n] ? e.currentStyle[n] : null }, this }), Event.prototype.stopPropagation || (Event.prototype.stopPropagation = function() { this.cancelBubble = !0 }) }, function(e, t, r) { r(3); var n = r(38).Object;
            e.exports = function(e) { return n.getOwnPropertyNames(e) } }, function(e, t, r) { var n = r(4),
                a = r(9),
                i = r(48).f;
            n({ target: "Object", stat: !0, forced: a((function() { return !Object.getOwnPropertyNames(1) })) }, { getOwnPropertyNames: i }) }, function(e, t, r) { var n = r(5),
                a = r(7).f,
                i = r(21),
                o = r(24),
                s = r(25),
                l = r(35),
                c = r(47);
            e.exports = function(e, t) { var r, u, d, f, h, g = e.target,
                    p = e.global,
                    m = e.stat; if (r = p ? n : m ? n[g] || s(g, {}) : (n[g] || {}).prototype)
                    for (u in t) { if (f = t[u], d = e.noTargetGet ? (h = a(r, u)) && h.value : r[u], !c(p ? u : g + (m ? "." : "#") + u, e.forced) && d !== undefined) { if (typeof f == typeof d) continue;
                            l(f, d) }(e.sham || d && d.sham) && i(f, "sham", !0), o(r, u, f, e) } } }, function(e, t, r) {
            (function(t) { var r = function(e) { return e && e.Math == Math && e };
                e.exports = r("object" == typeof globalThis && globalThis) || r("object" == typeof window && window) || r("object" == typeof self && self) || r("object" == typeof t && t) || Function("return this")() }).call(this, r(6)) }, function(e, t) { var r;
            r = function() { return this }(); try { r = r || new Function("return this")() } catch (n) { "object" == typeof window && (r = window) } e.exports = r }, function(e, t, r) { var n = r(8),
                a = r(10),
                i = r(11),
                o = r(12),
                s = r(16),
                l = r(18),
                c = r(19),
                u = Object.getOwnPropertyDescriptor;
            t.f = n ? u : function(e, t) { if (e = o(e), t = s(t, !0), c) try { return u(e, t) } catch (r) {}
                if (l(e, t)) return i(!a.f.call(e, t), e[t]) } }, function(e, t, r) { var n = r(9);
            e.exports = !n((function() { return 7 != Object.defineProperty({}, 1, { get: function() { return 7 } })[1] })) }, function(e, t) { e.exports = function(e) { try { return !!e() } catch (t) { return !0 } } }, function(e, t, r) { "use strict"; var n = {}.propertyIsEnumerable,
                a = Object.getOwnPropertyDescriptor,
                i = a && !n.call({ 1: 2 }, 1);
            t.f = i ? function(e) { var t = a(this, e); return !!t && t.enumerable } : n }, function(e, t) { e.exports = function(e, t) { return { enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t } } }, function(e, t, r) { var n = r(13),
                a = r(15);
            e.exports = function(e) { return n(a(e)) } }, function(e, t, r) { var n = r(9),
                a = r(14),
                i = "".split;
            e.exports = n((function() { return !Object("z").propertyIsEnumerable(0) })) ? function(e) { return "String" == a(e) ? i.call(e, "") : Object(e) } : Object }, function(e, t) { var r = {}.toString;
            e.exports = function(e) { return r.call(e).slice(8, -1) } }, function(e, t) { e.exports = function(e) { if (e == undefined) throw TypeError("Can't call method on " + e); return e } }, function(e, t, r) { var n = r(17);
            e.exports = function(e, t) { if (!n(e)) return e; var r, a; if (t && "function" == typeof(r = e.toString) && !n(a = r.call(e))) return a; if ("function" == typeof(r = e.valueOf) && !n(a = r.call(e))) return a; if (!t && "function" == typeof(r = e.toString) && !n(a = r.call(e))) return a; throw TypeError("Can't convert object to primitive value") } }, function(e, t) { e.exports = function(e) { return "object" == typeof e ? null !== e : "function" == typeof e } }, function(e, t) { var r = {}.hasOwnProperty;
            e.exports = function(e, t) { return r.call(e, t) } }, function(e, t, r) { var n = r(8),
                a = r(9),
                i = r(20);
            e.exports = !n && !a((function() { return 7 != Object.defineProperty(i("div"), "a", { get: function() { return 7 } }).a })) }, function(e, t, r) { var n = r(5),
                a = r(17),
                i = n.document,
                o = a(i) && a(i.createElement);
            e.exports = function(e) { return o ? i.createElement(e) : {} } }, function(e, t, r) { var n = r(8),
                a = r(22),
                i = r(11);
            e.exports = n ? function(e, t, r) { return a.f(e, t, i(1, r)) } : function(e, t, r) { return e[t] = r, e } }, function(e, t, r) { var n = r(8),
                a = r(19),
                i = r(23),
                o = r(16),
                s = Object.defineProperty;
            t.f = n ? s : function(e, t, r) { if (i(e), t = o(t, !0), i(r), a) try { return s(e, t, r) } catch (n) {}
                if ("get" in r || "set" in r) throw TypeError("Accessors not supported"); return "value" in r && (e[t] = r.value), e } }, function(e, t, r) { var n = r(17);
            e.exports = function(e) { if (!n(e)) throw TypeError(String(e) + " is not an object"); return e } }, function(e, t, r) { var n = r(5),
                a = r(21),
                i = r(18),
                o = r(25),
                s = r(26),
                l = r(28),
                c = l.get,
                u = l.enforce,
                d = String(String).split("String");
            (e.exports = function(e, t, r, s) { var l = !!s && !!s.unsafe,
                    c = !!s && !!s.enumerable,
                    f = !!s && !!s.noTargetGet; "function" == typeof r && ("string" != typeof t || i(r, "name") || a(r, "name", t), u(r).source = d.join("string" == typeof t ? t : "")), e !== n ? (l ? !f && e[t] && (c = !0) : delete e[t], c ? e[t] = r : a(e, t, r)) : c ? e[t] = r : o(t, r) })(Function.prototype, "toString", (function() { return "function" == typeof this && c(this).source || s(this) })) }, function(e, t, r) { var n = r(5),
                a = r(21);
            e.exports = function(e, t) { try { a(n, e, t) } catch (r) { n[e] = t } return t } }, function(e, t, r) { var n = r(27),
                a = Function.toString; "function" != typeof n.inspectSource && (n.inspectSource = function(e) { return a.call(e) }), e.exports = n.inspectSource }, function(e, t, r) { var n = r(5),
                a = r(25),
                i = n["__core-js_shared__"] || a("__core-js_shared__", {});
            e.exports = i }, function(e, t, r) { var n, a, i, o = r(29),
                s = r(5),
                l = r(17),
                c = r(21),
                u = r(18),
                d = r(30),
                f = r(34),
                h = s.WeakMap; if (o) { var g = new h,
                    p = g.get,
                    m = g.has,
                    v = g.set;
                n = function(e, t) { return v.call(g, e, t), t }, a = function(e) { return p.call(g, e) || {} }, i = function(e) { return m.call(g, e) } } else { var b = d("state");
                f[b] = !0, n = function(e, t) { return c(e, b, t), t }, a = function(e) { return u(e, b) ? e[b] : {} }, i = function(e) { return u(e, b) } } e.exports = { set: n, get: a, has: i, enforce: function(e) { return i(e) ? a(e) : n(e, {}) }, getterFor: function(e) { return function(t) { var r; if (!l(t) || (r = a(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required"); return r } } } }, function(e, t, r) { var n = r(5),
                a = r(26),
                i = n.WeakMap;
            e.exports = "function" == typeof i && /native code/.test(a(i)) }, function(e, t, r) { var n = r(31),
                a = r(33),
                i = n("keys");
            e.exports = function(e) { return i[e] || (i[e] = a(e)) } }, function(e, t, r) { var n = r(32),
                a = r(27);
            (e.exports = function(e, t) { return a[e] || (a[e] = t !== undefined ? t : {}) })("versions", []).push({ version: "3.6.5", mode: n ? "pure" : "global", copyright: "© 2020 Denis Pushkarev (zloirock.ru)" }) }, function(e, t) { e.exports = !1 }, function(e, t) { var r = 0,
                n = Math.random();
            e.exports = function(e) { return "Symbol(" + String(e === undefined ? "" : e) + ")_" + (++r + n).toString(36) } }, function(e, t) { e.exports = {} }, function(e, t, r) { var n = r(18),
                a = r(36),
                i = r(7),
                o = r(22);
            e.exports = function(e, t) { for (var r = a(t), s = o.f, l = i.f, c = 0; c < r.length; c++) { var u = r[c];
                    n(e, u) || s(e, u, l(t, u)) } } }, function(e, t, r) { var n = r(37),
                a = r(39),
                i = r(46),
                o = r(23);
            e.exports = n("Reflect", "ownKeys") || function(e) { var t = a.f(o(e)),
                    r = i.f; return r ? t.concat(r(e)) : t } }, function(e, t, r) { var n = r(38),
                a = r(5),
                i = function(e) { return "function" == typeof e ? e : undefined };
            e.exports = function(e, t) { return arguments.length < 2 ? i(n[e]) || i(a[e]) : n[e] && n[e][t] || a[e] && a[e][t] } }, function(e, t, r) { var n = r(5);
            e.exports = n }, function(e, t, r) { var n = r(40),
                a = r(45).concat("length", "prototype");
            t.f = Object.getOwnPropertyNames || function(e) { return n(e, a) } }, function(e, t, r) { var n = r(18),
                a = r(12),
                i = r(41).indexOf,
                o = r(34);
            e.exports = function(e, t) { var r, s = a(e),
                    l = 0,
                    c = []; for (r in s) !n(o, r) && n(s, r) && c.push(r); for (; t.length > l;) n(s, r = t[l++]) && (~i(c, r) || c.push(r)); return c } }, function(e, t, r) { var n = r(12),
                a = r(42),
                i = r(44),
                o = function(e) { return function(t, r, o) { var s, l = n(t),
                            c = a(l.length),
                            u = i(o, c); if (e && r != r) { for (; c > u;)
                                if ((s = l[u++]) != s) return !0 } else
                            for (; c > u; u++)
                                if ((e || u in l) && l[u] === r) return e || u || 0; return !e && -1 } };
            e.exports = { includes: o(!0), indexOf: o(!1) } }, function(e, t, r) { var n = r(43),
                a = Math.min;
            e.exports = function(e) { return e > 0 ? a(n(e), 9007199254740991) : 0 } }, function(e, t) { var r = Math.ceil,
                n = Math.floor;
            e.exports = function(e) { return isNaN(e = +e) ? 0 : (e > 0 ? n : r)(e) } }, function(e, t, r) { var n = r(43),
                a = Math.max,
                i = Math.min;
            e.exports = function(e, t) { var r = n(e); return r < 0 ? a(r + t, 0) : i(r, t) } }, function(e, t) { e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] }, function(e, t) { t.f = Object.getOwnPropertySymbols }, function(e, t, r) { var n = r(9),
                a = /#|\.prototype\./,
                i = function(e, t) { var r = s[o(e)]; return r == c || r != l && ("function" == typeof t ? n(t) : !!t) },
                o = i.normalize = function(e) { return String(e).replace(a, ".").toLowerCase() },
                s = i.data = {},
                l = i.NATIVE = "N",
                c = i.POLYFILL = "P";
            e.exports = i }, function(e, t, r) { var n = r(12),
                a = r(39).f,
                i = {}.toString,
                o = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
            e.exports.f = function(e) { return o && "[object Window]" == i.call(e) ? function(e) { try { return a(e) } catch (t) { return o.slice() } }(e) : a(n(e)) } }, function(e, t, r) { r(50); var n = r(38).Object,
                a = e.exports = function(e, t) { return n.getOwnPropertyDescriptor(e, t) };
            n.getOwnPropertyDescriptor.sham && (a.sham = !0) }, function(e, t, r) { var n = r(4),
                a = r(9),
                i = r(12),
                o = r(7).f,
                s = r(8),
                l = a((function() { o(1) }));
            n({ target: "Object", stat: !0, forced: !s || l, sham: !s }, { getOwnPropertyDescriptor: function(e, t) { return o(i(e), t) } }) }, function(e, t, r) { r(52); var n = r(38).Object,
                a = e.exports = function(e, t, r) { return n.defineProperty(e, t, r) };
            n.defineProperty.sham && (a.sham = !0) }, function(e, t, r) { var n = r(4),
                a = r(8);
            n({ target: "Object", stat: !0, forced: !a, sham: !a }, { defineProperty: r(22).f }) }, function(e, t, r) { r(54); var n = r(38).Object;
            e.exports = function(e, t) { return n.create(e, t) } }, function(e, t, r) { r(4)({ target: "Object", stat: !0, sham: !r(8) }, { create: r(55) }) }, function(e, t, r) { var n, a = r(23),
                i = r(56),
                o = r(45),
                s = r(34),
                l = r(58),
                c = r(20),
                u = r(30),
                d = u("IE_PROTO"),
                f = function() {},
                h = function(e) { return "<script>" + e + "<\/script>" },
                g = function() { try { n = document.domain && new ActiveXObject("htmlfile") } catch (a) {} var e, t;
                    g = n ? function(e) { e.write(h("")), e.close(); var t = e.parentWindow.Object; return e = null, t }(n) : ((t = c("iframe")).style.display = "none", l.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(h("document.F=Object")), e.close(), e.F); for (var r = o.length; r--;) delete g.prototype[o[r]]; return g() };
            s[d] = !0, e.exports = Object.create || function(e, t) { var r; return null !== e ? (f.prototype = a(e), r = new f, f.prototype = null, r[d] = e) : r = g(), t === undefined ? r : i(r, t) } }, function(e, t, r) { var n = r(8),
                a = r(22),
                i = r(23),
                o = r(57);
            e.exports = n ? Object.defineProperties : function(e, t) { i(e); for (var r, n = o(t), s = n.length, l = 0; s > l;) a.f(e, r = n[l++], t[r]); return e } }, function(e, t, r) { var n = r(40),
                a = r(45);
            e.exports = Object.keys || function(e) { return n(e, a) } }, function(e, t, r) { var n = r(37);
            e.exports = n("document", "documentElement") }, function(e, t, r) { r(60); var n = r(38);
            e.exports = n.Object.keys }, function(e, t, r) { var n = r(4),
                a = r(61),
                i = r(57);
            n({ target: "Object", stat: !0, forced: r(9)((function() { i(1) })) }, { keys: function(e) { return i(a(e)) } }) }, function(e, t, r) { var n = r(15);
            e.exports = function(e) { return Object(n(e)) } }, function(e, t, r) { r(63); var n = r(66);
            e.exports = n("Array", "indexOf") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(41).indexOf,
                i = r(64),
                o = r(65),
                s = [].indexOf,
                l = !!s && 1 / [1].indexOf(1, -0) < 0,
                c = i("indexOf"),
                u = o("indexOf", { ACCESSORS: !0, 1: 0 });
            n({ target: "Array", proto: !0, forced: l || !c || !u }, { indexOf: function(e) { return l ? s.apply(this, arguments) || 0 : a(this, e, arguments.length > 1 ? arguments[1] : undefined) } }) }, function(e, t, r) { "use strict"; var n = r(9);
            e.exports = function(e, t) { var r = [][e]; return !!r && n((function() { r.call(null, t || function() { throw 1 }, 1) })) } }, function(e, t, r) { var n = r(8),
                a = r(9),
                i = r(18),
                o = Object.defineProperty,
                s = {},
                l = function(e) { throw e };
            e.exports = function(e, t) { if (i(s, e)) return s[e];
                t || (t = {}); var r = [][e],
                    c = !!i(t, "ACCESSORS") && t.ACCESSORS,
                    u = i(t, 0) ? t[0] : l,
                    d = i(t, 1) ? t[1] : undefined; return s[e] = !!r && !a((function() { if (c && !n) return !0; var e = { length: -1 };
                    c ? o(e, 1, { enumerable: !0, get: l }) : e[1] = 1, r.call(e, u, d) })) } }, function(e, t, r) { var n = r(5),
                a = r(67),
                i = Function.call;
            e.exports = function(e, t, r) { return a(i, n[e].prototype[t], r) } }, function(e, t, r) { var n = r(68);
            e.exports = function(e, t, r) { if (n(e), t === undefined) return e; switch (r) {
                    case 0:
                        return function() { return e.call(t) };
                    case 1:
                        return function(r) { return e.call(t, r) };
                    case 2:
                        return function(r, n) { return e.call(t, r, n) };
                    case 3:
                        return function(r, n, a) { return e.call(t, r, n, a) } } return function() { return e.apply(t, arguments) } } }, function(e, t) { e.exports = function(e) { if ("function" != typeof e) throw TypeError(String(e) + " is not a function"); return e } }, function(e, t, r) { r(70); var n = r(66);
            e.exports = n("Array", "forEach") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(71);
            n({ target: "Array", proto: !0, forced: [].forEach != a }, { forEach: a }) }, function(e, t, r) { "use strict"; var n = r(72).forEach,
                a = r(64),
                i = r(65),
                o = a("forEach"),
                s = i("forEach");
            e.exports = o && s ? [].forEach : function(e) { return n(this, e, arguments.length > 1 ? arguments[1] : undefined) } }, function(e, t, r) { var n = r(67),
                a = r(13),
                i = r(61),
                o = r(42),
                s = r(73),
                l = [].push,
                c = function(e) { var t = 1 == e,
                        r = 2 == e,
                        c = 3 == e,
                        u = 4 == e,
                        d = 6 == e,
                        f = 5 == e || d; return function(h, g, p, m) { for (var v, b, y = i(h), x = a(y), w = n(g, p, 3), C = o(x.length), _ = 0, k = m || s, S = t ? k(h, C) : r ? k(h, 0) : undefined; C > _; _++)
                            if ((f || _ in x) && (b = w(v = x[_], _, y), e))
                                if (t) S[_] = b;
                                else if (b) switch (e) {
                            case 3:
                                return !0;
                            case 5:
                                return v;
                            case 6:
                                return _;
                            case 2:
                                l.call(S, v) } else if (u) return !1; return d ? -1 : c || u ? u : S } };
            e.exports = { forEach: c(0), map: c(1), filter: c(2), some: c(3), every: c(4), find: c(5), findIndex: c(6) } }, function(e, t, r) { var n = r(17),
                a = r(74),
                i = r(75)("species");
            e.exports = function(e, t) { var r; return a(e) && ("function" != typeof(r = e.constructor) || r !== Array && !a(r.prototype) ? n(r) && null === (r = r[i]) && (r = undefined) : r = undefined), new(r === undefined ? Array : r)(0 === t ? 0 : t) } }, function(e, t, r) { var n = r(14);
            e.exports = Array.isArray || function(e) { return "Array" == n(e) } }, function(e, t, r) { var n = r(5),
                a = r(31),
                i = r(18),
                o = r(33),
                s = r(76),
                l = r(77),
                c = a("wks"),
                u = n.Symbol,
                d = l ? u : u && u.withoutSetter || o;
            e.exports = function(e) { return i(c, e) || (s && i(u, e) ? c[e] = u[e] : c[e] = d("Symbol." + e)), c[e] } }, function(e, t, r) { var n = r(9);
            e.exports = !!Object.getOwnPropertySymbols && !n((function() { return !String(Symbol()) })) }, function(e, t, r) { var n = r(76);
            e.exports = n && !Symbol.sham && "symbol" == typeof Symbol.iterator }, function(e, t, r) { r(79); var n = r(66);
            e.exports = n("Array", "map") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(72).map,
                i = r(80),
                o = r(65),
                s = i("map"),
                l = o("map");
            n({ target: "Array", proto: !0, forced: !s || !l }, { map: function(e) { return a(this, e, arguments.length > 1 ? arguments[1] : undefined) } }) }, function(e, t, r) { var n = r(9),
                a = r(75),
                i = r(81),
                o = a("species");
            e.exports = function(e) { return i >= 51 || !n((function() { var t = []; return (t.constructor = {})[o] = function() { return { foo: 1 } }, 1 !== t[e](Boolean).foo })) } }, function(e, t, r) { var n, a, i = r(5),
                o = r(82),
                s = i.process,
                l = s && s.versions,
                c = l && l.v8;
            c ? a = (n = c.split("."))[0] + n[1] : o && (!(n = o.match(/Edge\/(\d+)/)) || n[1] >= 74) && (n = o.match(/Chrome\/(\d+)/)) && (a = n[1]), e.exports = a && +a }, function(e, t, r) { var n = r(37);
            e.exports = n("navigator", "userAgent") || "" }, function(e, t, r) { r(84); var n = r(66);
            e.exports = n("Array", "filter") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(72).filter,
                i = r(80),
                o = r(65),
                s = i("filter"),
                l = o("filter");
            n({ target: "Array", proto: !0, forced: !s || !l }, { filter: function(e) { return a(this, e, arguments.length > 1 ? arguments[1] : undefined) } }) }, function(e, t, r) { r(86); var n = r(66);
            e.exports = n("Array", "reduce") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(87).left,
                i = r(64),
                o = r(65),
                s = i("reduce"),
                l = o("reduce", { 1: 0 });
            n({ target: "Array", proto: !0, forced: !s || !l }, { reduce: function(e) { return a(this, e, arguments.length, arguments.length > 1 ? arguments[1] : undefined) } }) }, function(e, t, r) { var n = r(68),
                a = r(61),
                i = r(13),
                o = r(42),
                s = function(e) { return function(t, r, s, l) { n(r); var c = a(t),
                            u = i(c),
                            d = o(c.length),
                            f = e ? d - 1 : 0,
                            h = e ? -1 : 1; if (s < 2)
                            for (;;) { if (f in u) { l = u[f], f += h; break } if (f += h, e ? f < 0 : d <= f) throw TypeError("Reduce of empty array with no initial value") }
                        for (; e ? f >= 0 : d > f; f += h) f in u && (l = r(l, u[f], f, c)); return l } };
            e.exports = { left: s(!1), right: s(!0) } }, function(e, t, r) { r(89); var n = r(38);
            e.exports = n.Array.isArray }, function(e, t, r) { r(4)({ target: "Array", stat: !0 }, { isArray: r(74) }) }, function(e, t, r) { r(91); var n = r(66);
            e.exports = n("Array", "some") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(72).some,
                i = r(64),
                o = r(65),
                s = i("some"),
                l = o("some");
            n({ target: "Array", proto: !0, forced: !s || !l }, { some: function(e) { return a(this, e, arguments.length > 1 ? arguments[1] : undefined) } }) }, function(e, t, r) { r(93); var n = r(66);
            e.exports = n("String", "trim") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(94).trim;
            n({ target: "String", proto: !0, forced: r(96)("trim") }, { trim: function() { return a(this) } }) }, function(e, t, r) { var n = r(15),
                a = "[" + r(95) + "]",
                i = RegExp("^" + a + a + "*"),
                o = RegExp(a + a + "*$"),
                s = function(e) { return function(t) { var r = String(n(t)); return 1 & e && (r = r.replace(i, "")), 2 & e && (r = r.replace(o, "")), r } };
            e.exports = { start: s(1), end: s(2), trim: s(3) } }, function(e, t) { e.exports = "\t\n\x0B\f\r                 \u2028\u2029\ufeff" }, function(e, t, r) { var n = r(9),
                a = r(95);
            e.exports = function(e) { return n((function() { return !!a[e]() || "â€‹Â…á Ž" != "â€‹Â…á Ž" [e]() || a[e].name !== e })) } }, function(e, t, r) { r(98), r(100), r(104), r(108), r(109), r(110), r(111), r(112), r(113), r(114), r(115), r(116), r(117), r(118), r(119), r(120), r(121), r(122), r(123); var n = r(38);
            e.exports = n.Symbol }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(9),
                i = r(74),
                o = r(17),
                s = r(61),
                l = r(42),
                c = r(99),
                u = r(73),
                d = r(80),
                f = r(75),
                h = r(81),
                g = f("isConcatSpreadable"),
                p = h >= 51 || !a((function() { var e = []; return e[g] = !1, e.concat()[0] !== e })),
                m = d("concat"),
                v = function(e) { if (!o(e)) return !1; var t = e[g]; return t !== undefined ? !!t : i(e) };
            n({ target: "Array", proto: !0, forced: !p || !m }, { concat: function(e) { var t, r, n, a, i, o = s(this),
                        d = u(o, 0),
                        f = 0; for (t = -1, n = arguments.length; t < n; t++)
                        if (v(i = -1 === t ? o : arguments[t])) { if (f + (a = l(i.length)) > 9007199254740991) throw TypeError("Maximum allowed index exceeded"); for (r = 0; r < a; r++, f++) r in i && c(d, f, i[r]) } else { if (f >= 9007199254740991) throw TypeError("Maximum allowed index exceeded");
                            c(d, f++, i) } return d.length = f, d } }) }, function(e, t, r) { "use strict"; var n = r(16),
                a = r(22),
                i = r(11);
            e.exports = function(e, t, r) { var o = n(t);
                o in e ? a.f(e, o, i(0, r)) : e[o] = r } }, function(e, t, r) { var n = r(101),
                a = r(24),
                i = r(102);
            n || a(Object.prototype, "toString", i, { unsafe: !0 }) }, function(e, t, r) { var n = {};
            n[r(75)("toStringTag")] = "z", e.exports = "[object z]" === String(n) }, function(e, t, r) { "use strict"; var n = r(101),
                a = r(103);
            e.exports = n ? {}.toString : function() { return "[object " + a(this) + "]" } }, function(e, t, r) { var n = r(101),
                a = r(14),
                i = r(75)("toStringTag"),
                o = "Arguments" == a(function() { return arguments }());
            e.exports = n ? a : function(e) { var t, r, n; return e === undefined ? "Undefined" : null === e ? "Null" : "string" == typeof(r = function(e, t) { try { return e[t] } catch (r) {} }(t = Object(e), i)) ? r : o ? a(t) : "Object" == (n = a(t)) && "function" == typeof t.callee ? "Arguments" : n } }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(5),
                i = r(37),
                o = r(32),
                s = r(8),
                l = r(76),
                c = r(77),
                u = r(9),
                d = r(18),
                f = r(74),
                h = r(17),
                g = r(23),
                p = r(61),
                m = r(12),
                v = r(16),
                b = r(11),
                y = r(55),
                x = r(57),
                w = r(39),
                C = r(48),
                _ = r(46),
                k = r(7),
                S = r(22),
                E = r(10),
                A = r(21),
                T = r(24),
                M = r(31),
                N = r(30),
                D = r(34),
                F = r(33),
                I = r(75),
                L = r(105),
                O = r(106),
                R = r(107),
                P = r(28),
                V = r(72).forEach,
                j = N("hidden"),
                B = I("toPrimitive"),
                H = P.set,
                G = P.getterFor("Symbol"),
                z = Object.prototype,
                U = a.Symbol,
                W = i("JSON", "stringify"),
                X = k.f,
                $ = S.f,
                Y = C.f,
                q = E.f,
                K = M("symbols"),
                J = M("op-symbols"),
                Z = M("string-to-symbol-registry"),
                Q = M("symbol-to-string-registry"),
                ee = M("wks"),
                te = a.QObject,
                re = !te || !te.prototype || !te.prototype.findChild,
                ne = s && u((function() { return 7 != y($({}, "a", { get: function() { return $(this, "a", { value: 7 }).a } })).a })) ? function(e, t, r) { var n = X(z, t);
                    n && delete z[t], $(e, t, r), n && e !== z && $(z, t, n) } : $,
                ae = function(e, t) { var r = K[e] = y(U.prototype); return H(r, { type: "Symbol", tag: e, description: t }), s || (r.description = t), r },
                ie = c ? function(e) { return "symbol" == typeof e } : function(e) { return Object(e) instanceof U },
                oe = function(e, t, r) { e === z && oe(J, t, r), g(e); var n = v(t, !0); return g(r), d(K, n) ? (r.enumerable ? (d(e, j) && e[j][n] && (e[j][n] = !1), r = y(r, { enumerable: b(0, !1) })) : (d(e, j) || $(e, j, b(1, {})), e[j][n] = !0), ne(e, n, r)) : $(e, n, r) },
                se = function(e, t) { g(e); var r = m(t),
                        n = x(r).concat(de(r)); return V(n, (function(t) { s && !le.call(r, t) || oe(e, t, r[t]) })), e },
                le = function(e) { var t = v(e, !0),
                        r = q.call(this, t); return !(this === z && d(K, t) && !d(J, t)) && (!(r || !d(this, t) || !d(K, t) || d(this, j) && this[j][t]) || r) },
                ce = function(e, t) { var r = m(e),
                        n = v(t, !0); if (r !== z || !d(K, n) || d(J, n)) { var a = X(r, n); return !a || !d(K, n) || d(r, j) && r[j][n] || (a.enumerable = !0), a } },
                ue = function(e) { var t = Y(m(e)),
                        r = []; return V(t, (function(e) { d(K, e) || d(D, e) || r.push(e) })), r },
                de = function(e) { var t = e === z,
                        r = Y(t ? J : m(e)),
                        n = []; return V(r, (function(e) {!d(K, e) || t && !d(z, e) || n.push(K[e]) })), n };
            (l || (T((U = function() { if (this instanceof U) throw TypeError("Symbol is not a constructor"); var e = arguments.length && arguments[0] !== undefined ? String(arguments[0]) : undefined,
                    t = F(e),
                    r = function n(e) { this === z && n.call(J, e), d(this, j) && d(this[j], t) && (this[j][t] = !1), ne(this, t, b(1, e)) }; return s && re && ne(z, t, { configurable: !0, set: r }), ae(t, e) }).prototype, "toString", (function() { return G(this).tag })), T(U, "withoutSetter", (function(e) { return ae(F(e), e) })), E.f = le, S.f = oe, k.f = ce, w.f = C.f = ue, _.f = de, L.f = function(e) { return ae(I(e), e) }, s && ($(U.prototype, "description", { configurable: !0, get: function() { return G(this).description } }), o || T(z, "propertyIsEnumerable", le, { unsafe: !0 }))), n({ global: !0, wrap: !0, forced: !l, sham: !l }, { Symbol: U }), V(x(ee), (function(e) { O(e) })), n({ target: "Symbol", stat: !0, forced: !l }, { "for": function(e) { var t = String(e); if (d(Z, t)) return Z[t]; var r = U(t); return Z[t] = r, Q[r] = t, r }, keyFor: function(e) { if (!ie(e)) throw TypeError(e + " is not a symbol"); if (d(Q, e)) return Q[e] }, useSetter: function() { re = !0 }, useSimple: function() { re = !1 } }), n({ target: "Object", stat: !0, forced: !l, sham: !s }, { create: function(e, t) { return t === undefined ? y(e) : se(y(e), t) }, defineProperty: oe, defineProperties: se, getOwnPropertyDescriptor: ce }), n({ target: "Object", stat: !0, forced: !l }, { getOwnPropertyNames: ue, getOwnPropertySymbols: de }), n({ target: "Object", stat: !0, forced: u((function() { _.f(1) })) }, { getOwnPropertySymbols: function(e) { return _.f(p(e)) } }), W) && n({ target: "JSON", stat: !0, forced: !l || u((function() { var e = U(); return "[null]" != W([e]) || "{}" != W({ a: e }) || "{}" != W(Object(e)) })) }, { stringify: function(e, t, r) { for (var n, a = [e], i = 1; arguments.length > i;) a.push(arguments[i++]); if (n = t, (h(t) || e !== undefined) && !ie(e)) return f(t) || (t = function(e, t) { if ("function" == typeof n && (t = n.call(this, e, t)), !ie(t)) return t }), a[1] = t, W.apply(null, a) } });
            U.prototype[B] || A(U.prototype, B, U.prototype.valueOf), R(U, "Symbol"), D[j] = !0 }, function(e, t, r) { var n = r(75);
            t.f = n }, function(e, t, r) { var n = r(38),
                a = r(18),
                i = r(105),
                o = r(22).f;
            e.exports = function(e) { var t = n.Symbol || (n.Symbol = {});
                a(t, e) || o(t, e, { value: i.f(e) }) } }, function(e, t, r) { var n = r(22).f,
                a = r(18),
                i = r(75)("toStringTag");
            e.exports = function(e, t, r) { e && !a(e = r ? e : e.prototype, i) && n(e, i, { configurable: !0, value: t }) } }, function(e, t, r) { r(106)("asyncIterator") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(8),
                i = r(5),
                o = r(18),
                s = r(17),
                l = r(22).f,
                c = r(35),
                u = i.Symbol; if (a && "function" == typeof u && (!("description" in u.prototype) || u().description !== undefined)) { var d = {},
                    f = function() { var e = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]),
                            t = this instanceof f ? new u(e) : e === undefined ? u() : u(e); return "" === e && (d[t] = !0), t };
                c(f, u); var h = f.prototype = u.prototype;
                h.constructor = f; var g = h.toString,
                    p = "Symbol(test)" == String(u("test")),
                    m = /^Symbol\((.*)\)[^)]+$/;
                l(h, "description", { configurable: !0, get: function() { var e = s(this) ? this.valueOf() : this,
                            t = g.call(e); if (o(d, e)) return ""; var r = p ? t.slice(7, -1) : t.replace(m, "$1"); return "" === r ? undefined : r } }), n({ global: !0, forced: !0 }, { Symbol: f }) } }, function(e, t, r) { r(106)("hasInstance") }, function(e, t, r) { r(106)("isConcatSpreadable") }, function(e, t, r) { r(106)("iterator") }, function(e, t, r) { r(106)("match") }, function(e, t, r) { r(106)("matchAll") }, function(e, t, r) { r(106)("replace") }, function(e, t, r) { r(106)("search") }, function(e, t, r) { r(106)("species") }, function(e, t, r) { r(106)("split") }, function(e, t, r) { r(106)("toPrimitive") }, function(e, t, r) { r(106)("toStringTag") }, function(e, t, r) { r(106)("unscopables") }, function(e, t, r) { r(107)(Math, "Math", !0) }, function(e, t, r) { var n = r(5);
            r(107)(n.JSON, "JSON", !0) }, function(e, t) { window.MutationObserver || (window.MutationObserver = function(e) {
                function t(e) { this.i = [], this.m = e }

                function r(t) { var r, n = { type: null, target: null, addedNodes: [], removedNodes: [], previousSibling: null, nextSibling: null, attributeName: null, attributeNamespace: null, oldValue: null }; for (r in t) n[r] !== e && t[r] !== e && (n[r] = t[r]); return n }

                function n(t, n) { var s = i(t, n); return function(c) { var u = c.length; if (n.a && 3 === t.nodeType && t.nodeValue !== s.a && c.push(new r({ type: "characterData", target: t, oldValue: s.a })), n.b && s.b && a(c, t, s.b, n.f), n.c || n.g) var d = function(t, n, i, s) {
                            function c(e, n, i, o, l) { var c, d, f, h = e.length - 1; for (l = -~((h - l) / 2); f = e.pop();) c = i[f.j], d = o[f.l], s.c && l && Math.abs(f.j - f.l) >= h && (t.push(r({ type: "childList", target: n, addedNodes: [c], removedNodes: [c], nextSibling: c.nextSibling, previousSibling: c.previousSibling })), l--), s.b && d.b && a(t, c, d.b, s.f), s.a && 3 === c.nodeType && c.nodeValue !== d.a && t.push(r({ type: "characterData", target: c, oldValue: d.a })), s.g && u(c, d) }

                            function u(n, i) { for (var f, h, g, p, m, v = n.childNodes, b = i.c, y = v.length, x = b ? b.length : 0, w = 0, C = 0, _ = 0; C < y || _ < x;)(p = v[C]) === (m = (g = b[_]) && g.node) ? (s.b && g.b && a(t, p, g.b, s.f), s.a && g.a !== e && p.nodeValue !== g.a && t.push(r({ type: "characterData", target: p, oldValue: g.a })), h && c(h, n, v, b, w), s.g && (p.childNodes.length || g.c && g.c.length) && u(p, g), C++, _++) : (d = !0, f || (f = {}, h = []), p && (f[g = o(p)] || (f[g] = !0, -1 === (g = l(b, p, _, "node")) ? s.c && (t.push(r({ type: "childList", target: n, addedNodes: [p], nextSibling: p.nextSibling, previousSibling: p.previousSibling })), w++) : h.push({ j: C, l: g })), C++), m && m !== v[C] && (f[g = o(m)] || (f[g] = !0, -1 === (g = l(v, m, C)) ? s.c && (t.push(r({ type: "childList", target: i.node, removedNodes: [m], nextSibling: b[_ + 1], previousSibling: b[_ - 1] })), w--) : h.push({ j: g, l: _ })), _++));
                                h && c(h, n, v, b, w) } var d; return u(n, i), d }(c, t, s, n);
                        (d || c.length !== u) && (s = i(t, n)) } }

                function a(t, n, a, i) { for (var o, s, l = {}, c = n.attributes, d = c.length; d--;) s = (o = c[d]).name, i && i[s] === e || (u(n, o) !== a[s] && t.push(r({ type: "attributes", target: n, attributeName: s, oldValue: a[s], attributeNamespace: o.namespaceURI })), l[s] = !0); for (s in a) l[s] || t.push(r({ target: n, type: "attributes", attributeName: s, oldValue: a[s] })) }

                function i(e, t) { var r = !0; return function n(e) { var a = { node: e }; return !t.a || 3 !== e.nodeType && 8 !== e.nodeType ? (t.b && r && 1 === e.nodeType && (a.b = s(e.attributes, (function(r, n) { return t.f && !t.f[n.name] || (r[n.name] = u(e, n)), r }), {})), r && (t.c || t.a || t.b && t.g) && (a.c = function(e, t) { for (var r = [], n = 0; n < e.length; n++) r[n] = t(e[n], n, e); return r }(e.childNodes, n)), r = t.g) : a.a = e.nodeValue, a }(e) }

                function o(e) { try { return e.id || (e.mo_id = e.mo_id || d++) } catch (t) { try { return e.nodeValue } catch (r) { return d++ } } }

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

                function l(e, t, r, n) { for (; r < e.length; r++)
                        if ((n ? e[r][n] : e[r]) === t) return r; return -1 } t._period = 30, t.prototype = { observe: function(e, r) { for (var a = { b: !!(r.attributes || r.attributeFilter || r.attributeOldValue), c: !!r.childList, g: !!r.subtree, a: !(!r.characterData && !r.characterDataOldValue) }, i = this.i, o = 0; o < i.length; o++) i[o].s === e && i.splice(o, 1);
                        r.attributeFilter && (a.f = s(r.attributeFilter, (function(e, t) { return e[t] = !0, e }), {})), i.push({ s: e, o: n(e, a) }), this.h || function(e) {! function r() { var n = e.takeRecords();
                                n.length && e.m(n, e), e.h = setTimeout(r, t._period) }() }(this) }, takeRecords: function() { for (var e = [], t = this.i, r = 0; r < t.length; r++) t[r].o(e); return e }, disconnect: function() { this.i = [], clearTimeout(this.h), this.h = null } }; var c = document.createElement("i");
                c.style.top = 0; var u = (c = "null" != c.attributes.style.value) ? function(e, t) { return t.value } : function(e, t) { return "style" !== t.name ? t.value : e.style.cssText },
                    d = 1; return t }(void 0)) }, function(e, t, r) { "use strict";
            r(126), r(129), r(145), r(147), r(150), r(152), r(154), r(160), r(163), r(165), r(167), r(170), r(173), r(175), r(177), r(180), r(182), r(194), r(196), r(200), Element.prototype.remove || (Element.prototype.remove = function() { this.parentNode && this.parentNode.removeChild(this) }) }, function(e, t, r) { r(127); var n = r(38);
            e.exports = n.Object.entries }, function(e, t, r) { var n = r(4),
                a = r(128).entries;
            n({ target: "Object", stat: !0 }, { entries: function(e) { return a(e) } }) }, function(e, t, r) { var n = r(8),
                a = r(57),
                i = r(12),
                o = r(10).f,
                s = function(e) { return function(t) { for (var r, s = i(t), l = a(s), c = l.length, u = 0, d = []; c > u;) r = l[u++], n && !o.call(s, r) || d.push(e ? [r, s[r]] : s[r]); return d } };
            e.exports = { entries: s(!0), values: s(!1) } }, function(e, t, r) { r(130), r(140); var n = r(38);
            e.exports = n.Object.fromEntries }, function(e, t, r) { "use strict"; var n = r(12),
                a = r(131),
                i = r(132),
                o = r(28),
                s = r(133),
                l = o.set,
                c = o.getterFor("Array Iterator");
            e.exports = s(Array, "Array", (function(e, t) { l(this, { type: "Array Iterator", target: n(e), index: 0, kind: t }) }), (function() { var e = c(this),
                    t = e.target,
                    r = e.kind,
                    n = e.index++; return !t || n >= t.length ? (e.target = undefined, { value: undefined, done: !0 }) : "keys" == r ? { value: n, done: !1 } : "values" == r ? { value: t[n], done: !1 } : { value: [n, t[n]], done: !1 } }), "values"), i.Arguments = i.Array, a("keys"), a("values"), a("entries") }, function(e, t, r) { var n = r(75),
                a = r(55),
                i = r(22),
                o = n("unscopables"),
                s = Array.prototype;
            s[o] == undefined && i.f(s, o, { configurable: !0, value: a(null) }), e.exports = function(e) { s[o][e] = !0 } }, function(e, t) { e.exports = {} }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(134),
                i = r(136),
                o = r(138),
                s = r(107),
                l = r(21),
                c = r(24),
                u = r(75),
                d = r(32),
                f = r(132),
                h = r(135),
                g = h.IteratorPrototype,
                p = h.BUGGY_SAFARI_ITERATORS,
                m = u("iterator"),
                v = function() { return this };
            e.exports = function(e, t, r, u, h, b, y) { a(r, t, u); var x, w, C, _ = function(e) { if (e === h && T) return T; if (!p && e in E) return E[e]; switch (e) {
                            case "keys":
                            case "values":
                            case "entries":
                                return function() { return new r(this, e) } } return function() { return new r(this) } },
                    k = t + " Iterator",
                    S = !1,
                    E = e.prototype,
                    A = E[m] || E["@@iterator"] || h && E[h],
                    T = !p && A || _(h),
                    M = "Array" == t && E.entries || A; if (M && (x = i(M.call(new e)), g !== Object.prototype && x.next && (d || i(x) === g || (o ? o(x, g) : "function" != typeof x[m] && l(x, m, v)), s(x, k, !0, !0), d && (f[k] = v))), "values" == h && A && "values" !== A.name && (S = !0, T = function() { return A.call(this) }), d && !y || E[m] === T || l(E, m, T), f[t] = T, h)
                    if (w = { values: _("values"), keys: b ? T : _("keys"), entries: _("entries") }, y)
                        for (C in w)(p || S || !(C in E)) && c(E, C, w[C]);
                    else n({ target: t, proto: !0, forced: p || S }, w); return w } }, function(e, t, r) { "use strict"; var n = r(135).IteratorPrototype,
                a = r(55),
                i = r(11),
                o = r(107),
                s = r(132),
                l = function() { return this };
            e.exports = function(e, t, r) { var c = t + " Iterator"; return e.prototype = a(n, { next: i(1, r) }), o(e, c, !1, !0), s[c] = l, e } }, function(e, t, r) { "use strict"; var n, a, i, o = r(136),
                s = r(21),
                l = r(18),
                c = r(75),
                u = r(32),
                d = c("iterator"),
                f = !1;
            [].keys && ("next" in (i = [].keys()) ? (a = o(o(i))) !== Object.prototype && (n = a) : f = !0), n == undefined && (n = {}), u || l(n, d) || s(n, d, (function() { return this })), e.exports = { IteratorPrototype: n, BUGGY_SAFARI_ITERATORS: f } }, function(e, t, r) { var n = r(18),
                a = r(61),
                i = r(30),
                o = r(137),
                s = i("IE_PROTO"),
                l = Object.prototype;
            e.exports = o ? Object.getPrototypeOf : function(e) { return e = a(e), n(e, s) ? e[s] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? l : null } }, function(e, t, r) { var n = r(9);
            e.exports = !n((function() {
                function e() {} return e.prototype.constructor = null, Object.getPrototypeOf(new e) !== e.prototype })) }, function(e, t, r) { var n = r(23),
                a = r(139);
            e.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() { var e, t = !1,
                    r = {}; try {
                    (e = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(r, []), t = r instanceof Array } catch (i) {} return function(r, i) { return n(r), a(i), t ? e.call(r, i) : r.__proto__ = i, r } }() : undefined) }, function(e, t, r) { var n = r(17);
            e.exports = function(e) { if (!n(e) && null !== e) throw TypeError("Can't set " + String(e) + " as a prototype"); return e } }, function(e, t, r) { var n = r(4),
                a = r(141),
                i = r(99);
            n({ target: "Object", stat: !0 }, { fromEntries: function(e) { var t = {}; return a(e, (function(e, r) { i(t, e, r) }), undefined, !0), t } }) }, function(e, t, r) { var n = r(23),
                a = r(142),
                i = r(42),
                o = r(67),
                s = r(143),
                l = r(144),
                c = function(e, t) { this.stopped = e, this.result = t };
            (e.exports = function(e, t, r, u, d) { var f, h, g, p, m, v, b, y = o(t, r, u ? 2 : 1); if (d) f = e;
                else { if ("function" != typeof(h = s(e))) throw TypeError("Target is not iterable"); if (a(h)) { for (g = 0, p = i(e.length); p > g; g++)
                            if ((m = u ? y(n(b = e[g])[0], b[1]) : y(e[g])) && m instanceof c) return m; return new c(!1) } f = h.call(e) } for (v = f.next; !(b = v.call(f)).done;)
                    if ("object" == typeof(m = l(f, y, b.value, u)) && m && m instanceof c) return m; return new c(!1) }).stop = function(e) { return new c(!0, e) } }, function(e, t, r) { var n = r(75),
                a = r(132),
                i = n("iterator"),
                o = Array.prototype;
            e.exports = function(e) { return e !== undefined && (a.Array === e || o[i] === e) } }, function(e, t, r) { var n = r(103),
                a = r(132),
                i = r(75)("iterator");
            e.exports = function(e) { if (e != undefined) return e[i] || e["@@iterator"] || a[n(e)] } }, function(e, t, r) { var n = r(23);
            e.exports = function(e, t, r, a) { try { return a ? t(n(r)[0], r[1]) : t(r) } catch (o) { var i = e["return"]; throw i !== undefined && n(i.call(e)), o } } }, function(e, t, r) { r(146); var n = r(38);
            e.exports = n.Object.values }, function(e, t, r) { var n = r(4),
                a = r(128).values;
            n({ target: "Object", stat: !0 }, { values: function(e) { return a(e) } }) }, function(e, t, r) { r(148); var n = r(38);
            e.exports = n.Math.sign }, function(e, t, r) { r(4)({ target: "Math", stat: !0 }, { sign: r(149) }) }, function(e, t) { e.exports = Math.sign || function(e) { return 0 == (e = +e) || e != e ? e : e < 0 ? -1 : 1 } }, function(e, t, r) { r(151); var n = r(66);
            e.exports = n("Array", "findIndex") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(72).findIndex,
                i = r(131),
                o = r(65),
                s = !0,
                l = o("findIndex"); "findIndex" in [] && Array(1).findIndex((function() { s = !1 })), n({ target: "Array", proto: !0, forced: s || !l }, { findIndex: function(e) { return a(this, e, arguments.length > 1 ? arguments[1] : undefined) } }), i("findIndex") }, function(e, t, r) { r(153); var n = r(66);
            e.exports = n("Array", "find") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(72).find,
                i = r(131),
                o = r(65),
                s = !0,
                l = o("find"); "find" in [] && Array(1).find((function() { s = !1 })), n({ target: "Array", proto: !0, forced: s || !l }, { find: function(e) { return a(this, e, arguments.length > 1 ? arguments[1] : undefined) } }), i("find") }, function(e, t, r) { r(155), r(157); var n = r(38);
            e.exports = n.Array.from }, function(e, t, r) { "use strict"; var n = r(156).charAt,
                a = r(28),
                i = r(133),
                o = a.set,
                s = a.getterFor("String Iterator");
            i(String, "String", (function(e) { o(this, { type: "String Iterator", string: String(e), index: 0 }) }), (function() { var e, t = s(this),
                    r = t.string,
                    a = t.index; return a >= r.length ? { value: undefined, done: !0 } : (e = n(r, a), t.index += e.length, { value: e, done: !1 }) })) }, function(e, t, r) { var n = r(43),
                a = r(15),
                i = function(e) { return function(t, r) { var i, o, s = String(a(t)),
                            l = n(r),
                            c = s.length; return l < 0 || l >= c ? e ? "" : undefined : (i = s.charCodeAt(l)) < 55296 || i > 56319 || l + 1 === c || (o = s.charCodeAt(l + 1)) < 56320 || o > 57343 ? e ? s.charAt(l) : i : e ? s.slice(l, l + 2) : o - 56320 + (i - 55296 << 10) + 65536 } };
            e.exports = { codeAt: i(!1), charAt: i(!0) } }, function(e, t, r) { var n = r(4),
                a = r(158);
            n({ target: "Array", stat: !0, forced: !r(159)((function(e) { Array.from(e) })) }, { from: a }) }, function(e, t, r) { "use strict"; var n = r(67),
                a = r(61),
                i = r(144),
                o = r(142),
                s = r(42),
                l = r(99),
                c = r(143);
            e.exports = function(e) { var t, r, u, d, f, h, g = a(e),
                    p = "function" == typeof this ? this : Array,
                    m = arguments.length,
                    v = m > 1 ? arguments[1] : undefined,
                    b = v !== undefined,
                    y = c(g),
                    x = 0; if (b && (v = n(v, m > 2 ? arguments[2] : undefined, 2)), y == undefined || p == Array && o(y))
                    for (r = new p(t = s(g.length)); t > x; x++) h = b ? v(g[x], x) : g[x], l(r, x, h);
                else
                    for (f = (d = y.call(g)).next, r = new p; !(u = f.call(d)).done; x++) h = b ? i(d, v, [u.value, x], !0) : u.value, l(r, x, h); return r.length = x, r } }, function(e, t, r) { var n = r(75)("iterator"),
                a = !1; try { var i = 0,
                    o = { next: function() { return { done: !!i++ } }, "return": function() { a = !0 } };
                o[n] = function() { return this }, Array.from(o, (function() { throw 2 })) } catch (s) {} e.exports = function(e, t) { if (!t && !a) return !1; var r = !1; try { var i = {};
                    i[n] = function() { return { next: function() { return { done: r = !0 } } } }, e(i) } catch (s) {} return r } }, function(e, t, r) { r(161); var n = r(66);
            e.exports = n("Array", "fill") }, function(e, t, r) { var n = r(4),
                a = r(162),
                i = r(131);
            n({ target: "Array", proto: !0 }, { fill: a }), i("fill") }, function(e, t, r) { "use strict"; var n = r(61),
                a = r(44),
                i = r(42);
            e.exports = function(e) { for (var t = n(this), r = i(t.length), o = arguments.length, s = a(o > 1 ? arguments[1] : undefined, r), l = o > 2 ? arguments[2] : undefined, c = l === undefined ? r : a(l, r); c > s;) t[s++] = e; return t } }, function(e, t, r) { r(164); var n = r(66);
            e.exports = n("Array", "includes") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(41).includes,
                i = r(131);
            n({ target: "Array", proto: !0, forced: !r(65)("indexOf", { ACCESSORS: !0, 1: 0 }) }, { includes: function(e) { return a(this, e, arguments.length > 1 ? arguments[1] : undefined) } }), i("includes") }, function(e, t, r) { r(166), e.exports = Math.pow(2, -52) }, function(e, t, r) { r(4)({ target: "Number", stat: !0 }, { EPSILON: Math.pow(2, -52) }) }, function(e, t, r) { r(168); var n = r(38);
            e.exports = n.Number.parseFloat }, function(e, t, r) { var n = r(4),
                a = r(169);
            n({ target: "Number", stat: !0, forced: Number.parseFloat != a }, { parseFloat: a }) }, function(e, t, r) { var n = r(5),
                a = r(94).trim,
                i = r(95),
                o = n.parseFloat,
                s = 1 / o(i + "-0") != -Infinity;
            e.exports = s ? function(e) { var t = a(String(e)),
                    r = o(t); return 0 === r && "-" == t.charAt(0) ? -0 : r } : o }, function(e, t, r) { r(171); var n = r(38);
            e.exports = n.Number.parseInt }, function(e, t, r) { var n = r(4),
                a = r(172);
            n({ target: "Number", stat: !0, forced: Number.parseInt != a }, { parseInt: a }) }, function(e, t, r) { var n = r(5),
                a = r(94).trim,
                i = r(95),
                o = n.parseInt,
                s = /^[+-]?0[Xx]/,
                l = 8 !== o(i + "08") || 22 !== o(i + "0x16");
            e.exports = l ? function(e, t) { var r = a(String(e)); return o(r, t >>> 0 || (s.test(r) ? 16 : 10)) } : o }, function(e, t, r) { r(174), e.exports = -9007199254740991 }, function(e, t, r) { r(4)({ target: "Number", stat: !0 }, { MIN_SAFE_INTEGER: -9007199254740991 }) }, function(e, t, r) { r(176), e.exports = 9007199254740991 }, function(e, t, r) { r(4)({ target: "Number", stat: !0 }, { MAX_SAFE_INTEGER: 9007199254740991 }) }, function(e, t, r) { r(178); var n = r(38);
            e.exports = n.Number.isFinite }, function(e, t, r) { r(4)({ target: "Number", stat: !0 }, { isFinite: r(179) }) }, function(e, t, r) { var n = r(5).isFinite;
            e.exports = Number.isFinite || function(e) { return "number" == typeof e && n(e) } }, function(e, t, r) { r(181); var n = r(38);
            e.exports = n.Number.isNaN }, function(e, t, r) { r(4)({ target: "Number", stat: !0 }, { isNaN: function(e) { return e != e } }) }, function(e, t, r) { r(183), r(100), r(155), r(192); var n = r(38);
            e.exports = n.Set }, function(e, t, r) { "use strict"; var n = r(184),
                a = r(189);
            e.exports = n("Set", (function(e) { return function() { return e(this, arguments.length ? arguments[0] : undefined) } }), a) }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(5),
                i = r(47),
                o = r(24),
                s = r(185),
                l = r(141),
                c = r(187),
                u = r(17),
                d = r(9),
                f = r(159),
                h = r(107),
                g = r(188);
            e.exports = function(e, t, r) { var p = -1 !== e.indexOf("Map"),
                    m = -1 !== e.indexOf("Weak"),
                    v = p ? "set" : "add",
                    b = a[e],
                    y = b && b.prototype,
                    x = b,
                    w = {},
                    C = function(e) { var t = y[e];
                        o(y, e, "add" == e ? function(e) { return t.call(this, 0 === e ? 0 : e), this } : "delete" == e ? function(e) { return !(m && !u(e)) && t.call(this, 0 === e ? 0 : e) } : "get" == e ? function(e) { return m && !u(e) ? undefined : t.call(this, 0 === e ? 0 : e) } : "has" == e ? function(e) { return !(m && !u(e)) && t.call(this, 0 === e ? 0 : e) } : function(e, r) { return t.call(this, 0 === e ? 0 : e, r), this }) }; if (i(e, "function" != typeof b || !(m || y.forEach && !d((function() {
                        (new b).entries().next() }))))) x = r.getConstructor(t, e, p, v), s.REQUIRED = !0;
                else if (i(e, !0)) { var _ = new x,
                        k = _[v](m ? {} : -0, 1) != _,
                        S = d((function() { _.has(1) })),
                        E = f((function(e) { new b(e) })),
                        A = !m && d((function() { for (var e = new b, t = 5; t--;) e[v](t, t); return !e.has(-0) }));
                    E || ((x = t((function(t, r) { c(t, x, e); var n = g(new b, t, x); return r != undefined && l(r, n[v], n, p), n }))).prototype = y, y.constructor = x), (S || A) && (C("delete"), C("has"), p && C("get")), (A || k) && C(v), m && y.clear && delete y.clear } return w[e] = x, n({ global: !0, forced: x != b }, w), h(x, e), m || r.setStrong(x, e, p), x } }, function(e, t, r) { var n = r(34),
                a = r(17),
                i = r(18),
                o = r(22).f,
                s = r(33),
                l = r(186),
                c = s("meta"),
                u = 0,
                d = Object.isExtensible || function() { return !0 },
                f = function(e) { o(e, c, { value: { objectID: "O" + ++u, weakData: {} } }) },
                h = e.exports = { REQUIRED: !1, fastKey: function(e, t) { if (!a(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e; if (!i(e, c)) { if (!d(e)) return "F"; if (!t) return "E";
                            f(e) } return e[c].objectID }, getWeakData: function(e, t) { if (!i(e, c)) { if (!d(e)) return !0; if (!t) return !1;
                            f(e) } return e[c].weakData }, onFreeze: function(e) { return l && h.REQUIRED && d(e) && !i(e, c) && f(e), e } };
            n[c] = !0 }, function(e, t, r) { var n = r(9);
            e.exports = !n((function() { return Object.isExtensible(Object.preventExtensions({})) })) }, function(e, t) { e.exports = function(e, t, r) { if (!(e instanceof t)) throw TypeError("Incorrect " + (r ? r + " " : "") + "invocation"); return e } }, function(e, t, r) { var n = r(17),
                a = r(138);
            e.exports = function(e, t, r) { var i, o; return a && "function" == typeof(i = t.constructor) && i !== r && n(o = i.prototype) && o !== r.prototype && a(e, o), e } }, function(e, t, r) { "use strict"; var n = r(22).f,
                a = r(55),
                i = r(190),
                o = r(67),
                s = r(187),
                l = r(141),
                c = r(133),
                u = r(191),
                d = r(8),
                f = r(185).fastKey,
                h = r(28),
                g = h.set,
                p = h.getterFor;
            e.exports = { getConstructor: function(e, t, r, c) { var u = e((function(e, n) { s(e, u, t), g(e, { type: t, index: a(null), first: undefined, last: undefined, size: 0 }), d || (e.size = 0), n != undefined && l(n, e[c], e, r) })),
                        h = p(t),
                        m = function(e, t, r) { var n, a, i = h(e),
                                o = v(e, t); return o ? o.value = r : (i.last = o = { index: a = f(t, !0), key: t, value: r, previous: n = i.last, next: undefined, removed: !1 }, i.first || (i.first = o), n && (n.next = o), d ? i.size++ : e.size++, "F" !== a && (i.index[a] = o)), e },
                        v = function(e, t) { var r, n = h(e),
                                a = f(t); if ("F" !== a) return n.index[a]; for (r = n.first; r; r = r.next)
                                if (r.key == t) return r }; return i(u.prototype, { clear: function() { for (var e = h(this), t = e.index, r = e.first; r;) r.removed = !0, r.previous && (r.previous = r.previous.next = undefined), delete t[r.index], r = r.next;
                            e.first = e.last = undefined, d ? e.size = 0 : this.size = 0 }, "delete": function(e) { var t = h(this),
                                r = v(this, e); if (r) { var n = r.next,
                                    a = r.previous;
                                delete t.index[r.index], r.removed = !0, a && (a.next = n), n && (n.previous = a), t.first == r && (t.first = n), t.last == r && (t.last = a), d ? t.size-- : this.size-- } return !!r }, forEach: function(e) { for (var t, r = h(this), n = o(e, arguments.length > 1 ? arguments[1] : undefined, 3); t = t ? t.next : r.first;)
                                for (n(t.value, t.key, this); t && t.removed;) t = t.previous }, has: function(e) { return !!v(this, e) } }), i(u.prototype, r ? { get: function(e) { var t = v(this, e); return t && t.value }, set: function(e, t) { return m(this, 0 === e ? 0 : e, t) } } : { add: function(e) { return m(this, e = 0 === e ? 0 : e, e) } }), d && n(u.prototype, "size", { get: function() { return h(this).size } }), u }, setStrong: function(e, t, r) { var n = t + " Iterator",
                        a = p(t),
                        i = p(n);
                    c(e, t, (function(e, t) { g(this, { type: n, target: e, state: a(e), kind: t, last: undefined }) }), (function() { for (var e = i(this), t = e.kind, r = e.last; r && r.removed;) r = r.previous; return e.target && (e.last = r = r ? r.next : e.state.first) ? "keys" == t ? { value: r.key, done: !1 } : "values" == t ? { value: r.value, done: !1 } : { value: [r.key, r.value], done: !1 } : (e.target = undefined, { value: undefined, done: !0 }) }), r ? "entries" : "values", !r, !0), u(t) } } }, function(e, t, r) { var n = r(24);
            e.exports = function(e, t, r) { for (var a in t) n(e, a, t[a], r); return e } }, function(e, t, r) { "use strict"; var n = r(37),
                a = r(22),
                i = r(75),
                o = r(8),
                s = i("species");
            e.exports = function(e) { var t = n(e),
                    r = a.f;
                o && t && !t[s] && r(t, s, { configurable: !0, get: function() { return this } }) } }, function(e, t, r) { var n = r(5),
                a = r(193),
                i = r(130),
                o = r(21),
                s = r(75),
                l = s("iterator"),
                c = s("toStringTag"),
                u = i.values; for (var d in a) { var f = n[d],
                    h = f && f.prototype; if (h) { if (h[l] !== u) try { o(h, l, u) } catch (p) { h[l] = u }
                    if (h[c] || o(h, c, d), a[d])
                        for (var g in i)
                            if (h[g] !== i[g]) try { o(h, g, i[g]) } catch (p) { h[g] = i[g] } } } }, function(e, t) { e.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 } }, function(e, t, r) { r(195), r(100), r(155), r(192); var n = r(38);
            e.exports = n.Map }, function(e, t, r) { "use strict"; var n = r(184),
                a = r(189);
            e.exports = n("Map", (function(e) { return function() { return e(this, arguments.length ? arguments[0] : undefined) } }), a) }, function(e, t, r) { r(197), r(199); var n = r(66);
            e.exports = n("Array", "flat") }, function(e, t, r) { "use strict"; var n = r(4),
                a = r(198),
                i = r(61),
                o = r(42),
                s = r(43),
                l = r(73);
            n({ target: "Array", proto: !0 }, { flat: function() { var e = arguments.length ? arguments[0] : undefined,
                        t = i(this),
                        r = o(t.length),
                        n = l(t, 0); return n.length = a(n, t, t, r, 0, e === undefined ? 1 : s(e)), n } }) }, function(e, t, r) { "use strict"; var n = r(74),
                a = r(42),
                i = r(67);
            e.exports = function o(e, t, r, s, l, c, u, d) { for (var f, h = l, g = 0, p = !!u && i(u, d, 3); g < s;) { if (g in r) { if (f = p ? p(r[g], g, t) : r[g], c > 0 && n(f)) h = o(e, t, f, a(f.length), h, c - 1) - 1;
                        else { if (h >= 9007199254740991) throw TypeError("Exceed the acceptable array length");
                            e[h] = f } h++ } g++ } return h } }, function(e, t, r) { r(131)("flat") }, function(e, t, r) { r(201); var n = r(66);
            e.exports = n("String", "repeat") }, function(e, t, r) { r(4)({ target: "String", proto: !0 }, { repeat: r(202) }) }, function(e, t, r) { "use strict"; var n = r(43),
                a = r(15);
            e.exports = "".repeat || function(e) { var t = String(a(this)),
                    r = "",
                    i = n(e); if (i < 0 || i == Infinity) throw RangeError("Wrong number of repetitions"); for (; i > 0;
                    (i >>>= 1) && (t += t)) 1 & i && (r += t); return r } }, function(e, t, r) {
            (function(e, t) {! function() { "use strict";

                    function r(e) { var t = this.constructor; return this.then((function(r) { return t.resolve(e()).then((function() { return r })) }), (function(r) { return t.resolve(e()).then((function() { return t.reject(r) })) })) }

                    function n(e) { return !(!e || "undefined" == typeof e.length) }

                    function a() {}

                    function i(e) { if (!(this instanceof i)) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof e) throw new TypeError("not a function");
                        this._state = 0, this._handled = !1, this._value = undefined, this._deferreds = [], u(e, this) }

                    function o(e, t) { for (; 3 === e._state;) e = e._value;
                        0 !== e._state ? (e._handled = !0, i._immediateFn((function() { var r = 1 === e._state ? t.onFulfilled : t.onRejected; if (null !== r) { var n; try { n = r(e._value) } catch (o) { return void l(t.promise, o) } s(t.promise, n) } else(1 === e._state ? s : l)(t.promise, e._value) }))) : e._deferreds.push(t) }

                    function s(e, t) { try { if (t === e) throw new TypeError("A promise cannot be resolved with itself."); if (t && ("object" == typeof t || "function" == typeof t)) { var r = t.then; if (t instanceof i) return e._state = 3, e._value = t, void c(e); if ("function" == typeof r) return void u(function(e, t) { return function() { e.apply(t, arguments) } }(r, t), e) } e._state = 1, e._value = t, c(e) } catch (o) { l(e, o) } }

                    function l(e, t) { e._state = 2, e._value = t, c(e) }

                    function c(e) { 2 === e._state && 0 === e._deferreds.length && i._immediateFn((function() { e._handled || i._unhandledRejectionFn(e._value) })); for (var t = 0, r = e._deferreds.length; r > t; t++) o(e, e._deferreds[t]);
                        e._deferreds = null }

                    function u(e, t) { var r = !1; try { e((function(e) { r || (r = !0, s(t, e)) }), (function(e) { r || (r = !0, l(t, e)) })) } catch (i) { if (r) return;
                            r = !0, l(t, i) } } var d = setTimeout;
                    i.prototype["catch"] = function(e) { return this.then(null, e) }, i.prototype.then = function(e, t) { var r = new this.constructor(a); return o(this, new function(e, t, r) { this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.promise = r }(e, t, r)), r }, i.prototype["finally"] = r, i.all = function(e) { return new i((function(t, r) {
                            function a(e, n) { try { if (n && ("object" == typeof n || "function" == typeof n)) { var s = n.then; if ("function" == typeof s) return void s.call(n, (function(t) { a(e, t) }), r) } i[e] = n, 0 == --o && t(i) } catch (u) { r(u) } } if (!n(e)) return r(new TypeError("Promise.all accepts an array")); var i = Array.prototype.slice.call(e); if (0 === i.length) return t([]); for (var o = i.length, s = 0; i.length > s; s++) a(s, i[s]) })) }, i.resolve = function(e) { return e && "object" == typeof e && e.constructor === i ? e : new i((function(t) { t(e) })) }, i.reject = function(e) { return new i((function(t, r) { r(e) })) }, i.race = function(e) { return new i((function(t, r) { if (!n(e)) return r(new TypeError("Promise.race accepts an array")); for (var a = 0, o = e.length; o > a; a++) i.resolve(e[a]).then(t, r) })) }, i._immediateFn = "function" == typeof e && function(t) { e(t) } || function(e) { d(e, 0) }, i._unhandledRejectionFn = function(e) { void 0 !== console && console && console.warn("Possible Unhandled Promise Rejection:", e) }; var f = function() { if ("undefined" != typeof self) return self; if ("undefined" != typeof window) return window; if (void 0 !== t) return t; throw Error("unable to locate global object") }(); "Promise" in f ? f.Promise.prototype["finally"] || (f.Promise.prototype["finally"] = r) : f.Promise = i }() }).call(this, r(204).setImmediate, r(6)) }, function(e, t, r) {
            (function(e) { var n = void 0 !== e && e || "undefined" != typeof self && self || window,
                    a = Function.prototype.apply;

                function i(e, t) { this._id = e, this._clearFn = t } t.setTimeout = function() { return new i(a.call(setTimeout, n, arguments), clearTimeout) }, t.setInterval = function() { return new i(a.call(setInterval, n, arguments), clearInterval) }, t.clearTimeout = t.clearInterval = function(e) { e && e.close() }, i.prototype.unref = i.prototype.ref = function() {}, i.prototype.close = function() { this._clearFn.call(n, this._id) }, t.enroll = function(e, t) { clearTimeout(e._idleTimeoutId), e._idleTimeout = t }, t.unenroll = function(e) { clearTimeout(e._idleTimeoutId), e._idleTimeout = -1 }, t._unrefActive = t.active = function(e) { clearTimeout(e._idleTimeoutId); var t = e._idleTimeout;
                    t >= 0 && (e._idleTimeoutId = setTimeout((function() { e._onTimeout && e._onTimeout() }), t)) }, r(205), t.setImmediate = "undefined" != typeof self && self.setImmediate || void 0 !== e && e.setImmediate || this && this.setImmediate, t.clearImmediate = "undefined" != typeof self && self.clearImmediate || void 0 !== e && e.clearImmediate || this && this.clearImmediate }).call(this, r(6)) }, function(e, t, r) {
            (function(e, t) {! function(e, r) { "use strict"; if (!e.setImmediate) { var n, a, i, o, s, l = 1,
                            c = {},
                            u = !1,
                            d = e.document,
                            f = Object.getPrototypeOf && Object.getPrototypeOf(e);
                        f = f && f.setTimeout ? f : e, "[object process]" === {}.toString.call(e.process) ? n = function(e) { t.nextTick((function() { g(e) })) } : ! function() { if (e.postMessage && !e.importScripts) { var t = !0,
                                    r = e.onmessage; return e.onmessage = function() { t = !1 }, e.postMessage("", "*"), e.onmessage = r, t } }() ? e.MessageChannel ? ((i = new MessageChannel).port1.onmessage = function(e) { g(e.data) }, n = function(e) { i.port2.postMessage(e) }) : d && "onreadystatechange" in d.createElement("script") ? (a = d.documentElement, n = function(e) { var t = d.createElement("script");
                            t.onreadystatechange = function() { g(e), t.onreadystatechange = null, a.removeChild(t), t = null }, a.appendChild(t) }) : n = function(e) { setTimeout(g, 0, e) } : (o = "setImmediate$" + Math.random() + "$", s = function(t) { t.source === e && "string" == typeof t.data && 0 === t.data.indexOf(o) && g(+t.data.slice(o.length)) }, e.addEventListener ? e.addEventListener("message", s, !1) : e.attachEvent("onmessage", s), n = function(t) { e.postMessage(o + t, "*") }), f.setImmediate = function(e) { "function" != typeof e && (e = new Function("" + e)); for (var t = new Array(arguments.length - 1), r = 0; r < t.length; r++) t[r] = arguments[r + 1]; var a = { callback: e, args: t }; return c[l] = a, n(l), l++ }, f.clearImmediate = h }

                    function h(e) { delete c[e] }

                    function g(e) { if (u) setTimeout(g, 0, e);
                        else { var t = c[e]; if (t) { u = !0; try {! function(e) { var t = e.callback,
                                            r = e.args; switch (r.length) {
                                            case 0:
                                                t(); break;
                                            case 1:
                                                t(r[0]); break;
                                            case 2:
                                                t(r[0], r[1]); break;
                                            case 3:
                                                t(r[0], r[1], r[2]); break;
                                            default:
                                                t.apply(void 0, r) } }(t) } finally { h(e), u = !1 } } } } }("undefined" == typeof self ? void 0 === e ? this : e : self) }).call(this, r(6), r(206)) }, function(e, t) { var r, n, a = e.exports = {};

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

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

            function s(e) { if (r === setTimeout) return setTimeout(e, 0); if ((r === i || !r) && setTimeout) return r = setTimeout, setTimeout(e, 0); try { return r(e, 0) } catch (t) { try { return r.call(null, e, 0) } catch (t) { return r.call(this, e, 0) } } }! function() { try { r = "function" == typeof setTimeout ? setTimeout : i } catch (e) { r = i } try { n = "function" == typeof clearTimeout ? clearTimeout : o } catch (e) { n = o } }(); var l, c = [],
                u = !1,
                d = -1;

            function f() { u && l && (u = !1, l.length ? c = l.concat(c) : d = -1, c.length && h()) }

            function h() { if (!u) { var e = s(f);
                    u = !0; for (var t = c.length; t;) { for (l = c, c = []; ++d < t;) l && l[d].run();
                        d = -1, t = c.length } l = null, u = !1,
                        function(e) { if (n === clearTimeout) return clearTimeout(e); if ((n === o || !n) && clearTimeout) return n = clearTimeout, clearTimeout(e); try { n(e) } catch (t) { try { return n.call(null, e) } catch (t) { return n.call(this, e) } } }(e) } }

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

            function p() {} a.nextTick = function(e) { var t = new Array(arguments.length - 1); if (arguments.length > 1)
                    for (var r = 1; r < arguments.length; r++) t[r - 1] = arguments[r];
                c.push(new g(e, t)), 1 !== c.length || u || s(h) }, g.prototype.run = function() { this.fun.apply(null, this.array) }, a.title = "browser", a.browser = !0, a.env = {}, a.argv = [], a.version = "", a.versions = {}, a.on = p, a.addListener = p, a.once = p, a.off = p, a.removeListener = p, a.removeAllListeners = p, a.emit = p, a.prependListener = p, a.prependOnceListener = p, a.listeners = function(e) { return [] }, a.binding = function(e) { throw new Error("process.binding is not supported") }, a.cwd = function() { return "/" }, a.chdir = function(e) { throw new Error("process.chdir is not supported") }, a.umask = function() { return 0 } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(209)),
                i = n(r(438)),
                o = n(r(439)),
                s = n(r(269)),
                l = r(215);
            a["default"].addDep(s["default"]); var c, u = (c = {}, function(e) { var t = e; return t = t && t.replace(/(^\s*)|(\s*$)/g, "") || "", c[t] || (c[t] = { key: t, subject: t.replace(/[^\/]*?$/gi, ""), predicate: t.replace(/^.*\//gi, "") }) });

            function d(e) { switch (i["default"][e]) {
                    case "charts":
                        return Promise.all([r.e(2), r.e(1)]).then(r.t.bind(null, 441, 7));
                    case "timeseries":
                        return Promise.all([r.e(2), r.e(3)]).then(r.t.bind(null, 718, 7));
                    case "powercharts":
                        return Promise.all([r.e(2), r.e(4)]).then(r.t.bind(null, 901, 7));
                    case "widgets":
                        return Promise.all([r.e(2), r.e(5)]).then(r.t.bind(null, 1066, 7));
                    case "zoomline":
                        return Promise.all([r.e(2), r.e(6)]).then(r.t.bind(null, 1160, 7));
                    case "gantt":
                        return Promise.all([r.e(2), r.e(7)]).then(r.t.bind(null, 1171, 7));
                    case "treemap":
                        return Promise.all([r.e(2), r.e(8)]).then(r.t.bind(null, 1189, 7));
                    case "zoomscatter":
                        return Promise.all([r.e(2), r.e(9)]).then(r.t.bind(null, 1195, 7));
                    case "msstackedcolumn2dsplinedy":
                        return Promise.all([r.e(2), r.e(10)]).then(r.t.bind(null, 1199, 7));
                    case "overlappedbar2d":
                        return Promise.all([r.e(2), r.e(11)]).then(r.t.bind(null, 1203, 7));
                    case "overlappedcolumn2d":
                        return Promise.all([r.e(2), r.e(12)]).then(r.t.bind(null, 1208, 7));
                    default:
                        return (0, o["default"])("" + a["default"].getScriptBaseURI() + function(e) { var t, r = a["default"].options,
                                n = e; return n = function(e) { return void 0 === e && (e = ""), "" === e ? e : e.replace(/^[\s\S]*\//gi, "").replace(/\?/g, "%3F").replace(/\#/g, "%23").replace(/\:/g, "%3A") }((t = u(n)).predicate), t.subject + r.html5ScriptNamePrefix + n + r.html5ScriptNameSuffix }(e)) } } a["default"].addEventListener("resourceRequested", (function(e) { var t = e.sender,
                    r = t.chartType(),
                    n = t.options.chartTypeSourcePath || "";
                a["default"].getDep(r, "chartapi") || a["default"].getDep(r, "maps") || a["default"].addDep({ name: r, type: "dependency", extension: d(n + r) }) })), a["default"].addEventListener("preconfigure", (function(e) { var t = e.sender; if ("chartAPI" === t.getType()) { var n = t.getFromEnv("dataSource");
                    n && n.chart && (0, l.pluck)(n.chart.exportenabled, 0) && !a["default"].getDep("ExcelExport") && a["default"].addDep({ name: "ExcelExport", extension: Promise.all([r.e(2), r.e(13)]).then(r.t.bind(null, 1212, 7)).then((function(e) { var t = e["default"];
                            a["default"].addDep(t) })) }) } })), window && r(440) && (window.FusionCharts = a["default"]); var f = a["default"];
            t["default"] = f }, function(e, t) { e.exports = function(e) { return e && e.__esModule ? e : { "default": e } } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(210)),
                i = r(222),
                o = n(r(377)),
                s = r(406),
                l = r(434),
                c = r(435);
            a["default"].DataStore = o["default"], a["default"].DataStore.Operators = { between: s.between, equals: s.equals, less: s.less, lessEquals: s.lessEquals, greater: s.greater, greaterEquals: s.greaterEquals, filter: s.filter, select: s.select, groupBy: s.groupBy, pipe: s.pipe, sort: s.sort, pivot: s.pivot }, a["default"].Utils = { duration: c.duration, before: c.before, after: c.after, parseDate: c.parseDate, formatDate: c.formatDate, DatetimeUnits: c.DatetimeUnits, Weekdays: c.Weekdays }, a["default"].DataStore.Aggregators = { aggregatorStore: l.aggregatorStore }; var u = ["type", "id", "width", "height", "debugMode", "registerWithJS", "backgroundColor", "scaleMode", "lang", "detectFlashVersion", "autoInstallRedirect"],
                d = function(e, t) { var r, n; for (r = 0, n = u.length; r < n; r++) "object" == typeof t[r] ? Object.assign(e, t[r]) : e[u[r]] = t[r]; return e };

            function f(e) { var t = e; return this instanceof f ? (1 === arguments.length && "object" == typeof t || (t = d({}, arguments)), new(Function.prototype.bind.apply(a["default"], [null].concat(t)))) : 1 === arguments.length && t instanceof Array && "private" === t[0] ? a["default"].register("module", t) : 1 === arguments.length && "string" == typeof t ? a["default"].getChartFromId(t) : void(0, i.raiseError)(f, "25081840", "run", "", new SyntaxError('Use the "new" keyword while creating a new FusionCharts object')) } Object.getOwnPropertyNames(a["default"]).filter((function(e) { return !0 === Object.getOwnPropertyDescriptor(a["default"], e).writable })).forEach((function(e) { f[e] = a["default"][e] })); var h = f;
            t["default"] = h }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(211));
            r(267); var i = n(r(269));
            a["default"].addDep(i["default"]); var o = a["default"];
            t["default"] = o }, function(e, t, r) { "use strict"; var n = r(212),
                a = r(208);
            t.__esModule = !0, t["default"] = void 0; var i = a(r(214)),
                o = r(215),
                s = r(222),
                l = r(223),
                c = r(224),
                u = a(r(225)),
                d = n(r(226)),
                f = a(r(239)),
                h = r(227),
                g = a(r(242)),
                p = a(r(243)),
                m = a(r(244)),
                v = a(r(245)),
                b = a(r(248)),
                y = a(r(250)),
                x = a(r(251)),
                w = a(r(262)),
                C = a(r(266)),
                _ = a(r(235));

            function k(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r }

            function S(e) { for (var t = 1; t < arguments.length; t++) { var r = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? k(Object(r), !0).forEach((function(t) {
                        (0, i["default"])(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : k(Object(r)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e } var E, A, T, M, N, D, F = "3.15.3",
                I = new Date("2020-08-20").getTime(),
                L = new Date("2020-08-20").getTime(),
                O = new Date("2020-08-20").getTime(),
                R = void 0 === R ? "" : new Date("2020-08-20").getTime(),
                P = new Date("2020-08-20").getTime(),
                V = new Date("2020-08-20").getTime(),
                j = /(^|[\/\\])(fusioncharts\.js)([\?#].*)?$/gi,
                B = /^(FusionCharts|FusionWidgets|FusionMaps)/,
                H = /[^\%\d]*$/gi,
                G = /url$/i,
                z = "relative",
                U = "left",
                W = "normal",
                X = "inline-block",
                $ = "1",
                Y = "middle",
                q = "normal",
                K = "normal",
                J = "normal",
                Z = "none",
                Q = "inline",
                ee = "0",
                te = "0",
                re = "none",
                ne = "ltr",
                ae = "none",
                ie = function(e) { return e.toString().toLowerCase() },
                oe = function() { return { state: 2 } },
                se = (A = {}, T = function Le() { var e, t, r, n, a, i = 0,
                        o = parseInt(Fe.options.visibilityTrackingInterval, 10) || 300; for (e in A)
                        if (i += 1, t = A[e].chart, r = A[e].container, n = A[e].insertMode, a = A[e].callback, t.disposed || !le(r)) { if (delete A[e], i -= 1, delete t.containerHidden, t.disposed) return;
                            t.renderOpts = { containerElement: r, insertMode: n, callback: a }, t._addChartDependency("chartContainer", { scopeOf: t, opts: { containerElement: r, insertMode: n, callback: a }, resolve: Ne }), t._setState() } else A[e] && A[e].chart && (A[e].chart.containerHidden = !0, A[e].chart._addChartDependency("chartContainer", { resolve: oe }), A[e].chart._setState());
                    E = i ? setTimeout(Le, o) : clearTimeout(E) }, function(e, t, r, n) { A[e.id] = { chart: e, container: t, insertMode: r, callback: n }, E || (E = setTimeout(T, parseInt(Fe.options.visibilityTrackingInterval, 10) || 300)) }),
                le = function Oe(e) { var t = e.parentNode; return !!t && 9 !== t.nodeType && ("none" === function(e, t) { var r = t; return window.getComputedStyle ? r = window.getComputedStyle(e).getPropertyValue(r) : e.currentStyle && (r = e.currentStyle[r]), r }(e, "display") || !!t && Oe(t)) },
                ce = 0,
                ue = !1,
                de = ["disposed", "error", "waiting", "ready", "initialized"],
                fe = {},
                he = "https://www.fusioncharts.com/dev/migration/deprecated-functionalities?version=3.13.0",
                ge = 'You are using incompatible files or deprecated "register" API of FusionCharts, please go through the docs to know more at ' + he;

            function pe() { return this.state }

            function me() { return this.msg }

            function ve() { return this.msgStyle }

            function be() { return "chartobject-" + (be.lastId += 1) }

            function ye(e) { var t, r = {}; for (t in e) r[t.toLowerCase()] = e[t]; return r }

            function xe(e) { var t, r = []; for (t in e) r.push(t + "_" + e[t]); return r.sort(), r.join(",") }

            function we(e) { var t, r, n = e.options,
                    a = e.args; return t = { imageHAlign: a.loadMessageImageHAlign || n.baseChartMessageImageHAlign, imageVAlign: a.loadMessageImageVAlign || n.baseChartMessageImageVAlign, imageAlpha: a.loadMessageImageAlpha || n.baseChartMessageImageAlpha, imageScale: a.loadMessageImageScale || n.baseChartMessageImageScale }, r = { color: a.loadMessageColor || n.baseChartMessageColor, fontFamily: a.loadMessageFont || n.baseChartMessageFont, fontSize: a.loadMessageFontSize || n.baseChartMessageFontSize }, { msg: e.options.showChartLoadingMessage ? n.PBarLoadingText || n.loadMessage : "", msgStyle: { message: r, image: t } } }

            function Ce(e) { var t, r, n = e.args,
                    a = e.options; return t = { imageHAlign: n.typeNotSupportedMessageImageHAlign || a.baseChartMessageImageHAlign, imageVAlign: n.typeNotSupportedMessageImageVAlign || a.baseChartMessageImageVAlign, imageAlpha: n.typeNotSupportedMessageImageAlpha || a.baseChartMessageImageAlpha, imageScale: n.typeNotSupportedMessageImageScale || a.baseChartMessageImageScale }, r = { color: n.typeNotSupportedMessageColor || a.baseChartMessageColor, fontFamily: n.typeNotSupportedMessageFont || a.baseChartMessageFont, fontSize: n.typeNotSupportedMessageFontSize || a.baseChartMessageFontSize }, ue && (a.messageURL = he), { msg: ue ? ge : a.typeNotSupportedMessage, msgStyle: { image: t, message: r } } }

            function _e(e) { var t, r, n = e.args,
                    a = e.options; return t = { imageHAlign: n.browserNotSupportedMessageImageHAlign || a.baseChartMessageImageHAlign, imageVAlign: n.browserNotSupportedMessageImageVAlign || a.baseChartMessageImageVAlign, imageAlpha: n.browserNotSupportedMessageImageAlpha || a.baseChartMessageImageAlpha, imageScale: n.browserNotSupportedMessageImageScale || a.baseChartMessageImageScale }, r = { color: n.browserNotSupportedMessageColor || a.baseChartMessageColor, fontFamily: n.browserNotSupportedMessageFont || a.baseChartMessageFont, fontSize: n.browserNotSupportedMessageFontSize || a.baseChartMessageFontSize }, { msg: a.browserNotSupportedMessage, msgStyle: { image: t, message: r } } }

            function ke() { ue = !0 }

            function Se(e) { var t, r, n, a = this.opts,
                    i = a.data,
                    u = a.sanitisedFormat,
                    d = a.silent,
                    f = (0, l.getDepsByType)("transcoder"),
                    h = f[u] && f[u](),
                    g = e.options,
                    p = function(e) { var t, r, n = e.options,
                            a = e.args; return t = { imageHAlign: (0, o.pluck)(a.dataInvalidMessageImageHAlign, n.baseChartMessageImageHAlign).toLowerCase(), imageVAlign: (0, o.pluck)(a.dataInvalidMessageImageVAlign, n.baseChartMessageImageVAlign).toLowerCase(), imageAlpha: (0, o.pluckNumber)(a.dataInvalidMessageImageAlpha, n.baseChartMessageImageAlpha), imageScale: (0, o.pluckNumber)(a.dataInvalidMessageImageScale, n.baseChartMessageImageScale) }, r = { fontFamily: a.dataInvalidMessageFont || n.baseChartMessageFont, fontSize: a.dataInvalidMessageFontSize || n.baseChartMessageFontSize, color: a.dataInvalidMessageColor || n.baseChartMessageColor }, { msg: n.dataInvalidMessage, msgStyle: { image: t, message: r } } }(e),
                    m = p.msg,
                    v = p.msgStyle; return e.__state.newDataArrived = !0, h && h.toJSON ? n = (r = h.toJSON(i, e)).error ? { state: 1, msg: m, msgStyle: v } : { state: 3 } : (r = { error: new Error("Unable to convert data.") }, n = { state: 1, msg: m, msgStyle: v }), t = r.error ? r : r.data, g.dataErroneous = g.error = r.error, g.dataSource = t, g.dataFormat = u, g.dataErroneous || (0, s.triggerEvent)("beforeDataUpdate", e, function(e, t, r, n) { var a = {}; return a.native = "json" === r, a.dataFormat = r, a.format = "json", a.data = t, a.dataSource = e, a.silent = !!n, a }(i, t, u, d), N, c.onDataUpdateSuccess, c.onDataUpdateCancel), n }

            function Ee(e) { var t, r, n, a, i, c, u, d = this.opts,
                    f = d.url,
                    h = void 0 === f ? "" : f,
                    g = d.format,
                    p = d.config,
                    m = d.callback,
                    v = d.silent,
                    b = (0, l.getDepsByType)("transcoder"),
                    y = (c = (n = e).options, u = n.args, a = { imageHAlign: (0, o.pluck)(u.dataLoadStartMessageImageHAlign, c.baseChartMessageImageHAlign).toLowerCase(), imageVAlign: (0, o.pluck)(u.dataLoadStartMessageImageVAlign, c.baseChartMessageImageVAlign).toLowerCase(), imageAlpha: (0, o.pluckNumber)(u.dataLoadStartMessageImageAlpha, c.baseChartMessageImageAlpha), imageScale: (0, o.pluckNumber)(u.dataLoadStartMessageImageScale, c.baseChartMessageImageScale) }, i = { fontFamily: u.dataLoadStartMessageFont || c.baseChartMessageFont, fontSize: u.dataLoadStartMessageFontSize || c.baseChartMessageFontSize, color: u.dataLoadStartMessageColor || c.baseChartMessageColor }, { msg: c.dataLoadStartMessage, msgStyle: { image: a, message: i } }),
                    x = y.msg,
                    w = y.msgStyle; return null != g && "function" == typeof g.toString || (g = e.options.dataFormat, (0, s.raiseWarning)(e, "03091609", "param", "FusionCharts#setChartDataUrl", "Invalid Data Format. Reverting to current data format - " + g)), t = ie(g), G.test(t) || (t += "url"), r = b[t] && b[t](), e.jsVars.stallLoad = !0, r && r.toJSON ? (r.toJSON(h, p, m, v, e), { state: 2, msg: x, msgStyle: w }) : { state: 1, error: new Error("Unable to fetch data.") } }

            function Ae(e) { var t, r, n = e.__state,
                    a = e.chartType(),
                    i = e.apiInstance && e.apiInstance.getFromEnv("toolTipController") && e.apiInstance.getFromEnv("toolTipController").toolTips,
                    c = (0, l.getDep)(n.lastRenderedType, "chartapi") || (0, l.getDep)(n.lastRenderedType, "maps"); if (i && (0, o.removeAllTooltipOnChart)(i, n.lastRenderedType === a), c && n.lastRenderedType !== a && ((0, s.triggerEvent)("chartTypeChanged", e, { previousType: n.lastRenderedType, newType: a }), t = c))
                    for (r in t) delete e[r];
                n.lastRenderedType = a }

            function Te(e) { var t = we(e),
                    n = t.msgStyle,
                    a = t.msg; return Promise.all([r.e(2), r.e(14)]).then(r.t.bind(null, 1221, 7)).then((function(t) { Fe.addDep(t["default"]), Ae(e), e._addChartDependency("mapModuleLoad", { resolve: function() { return { state: 3 } } }), (0, s.triggerEvent)("loaded", e, { type: e.chartType(), renderer: "javascript" }, [e.id]), e._setState() }))["catch"]((function() { var t = Ce(e),
                        r = t.msgStyle,
                        n = t.msg;
                    e._addChartDependency("mapModuleLoad", { resolve: function() { return { state: 1, msgStyle: r, msg: n } } }), (0, s.raiseError)(Fe, "12052314141", "run", "JavaScriptRenderer~Maps", new Error("FusionCharts' maps file is required to render the visualization.")), e._setState(), (0, s.triggerEvent)("charttypeinvalid", e, {}, [e.id]) })), { state: 2, msgStyle: n, msg: a } }

            function Me(e) { var t = this.opts.value,
                    r = Fe.getDep(t, "dependency") || Fe.getDep(t, "chartapi") || Fe.getDep(t, "maps"),
                    n = Ce(e),
                    a = n.msgStyle,
                    i = n.msg; return ue = !1, r ? r.then ? (Fe.addEventListener("register", ke), r.then((function(r) { if (!e.disposed) { if (r.__esModule) { var n = (0, l.getDep)(t, "maps");
                            Fe.addDep(r["default"]), !n && Ae(e), e._addChartDependency("chartModuleLoad", { resolve: function() { return n ? e._addChartDependency("mapModuleLoad", { scopeOf: e, resolve: Te }) : (0, s.triggerEvent)("loaded", e, { type: t, renderer: "javascript" }, [e.id]), { state: 3 } } }) } else e._addChartDependency("chartModuleLoad", { resolve: function() { return (0, l.getDep)(t, "maps") ? e._addChartDependency("mapModuleLoad", { scopeOf: e, resolve: Te }) : (Ae(e), (0, s.triggerEvent)("loaded", e, { type: t, renderer: "javascript" }, [e.id])), { state: 3 } } });
                        e._setState() } }))["catch"]((function(t) { if (!e.disposed) { if (!(t instanceof Event)) throw new Error(t.stack);
                        e._addChartDependency("chartModuleLoad", { resolve: function() { return S({ state: 1 }, Ce(e)) } }), e._setState(), (0, s.triggerEvent)("charttypeinvalid", e, {}, [e.id]) } })), S({ state: 2 }, we(e))) : ((0, l.getDep)(t, "maps") ? (e._addChartDependency("mapModuleLoad", { scopeOf: e, resolve: Te }), e._setState()) : (Ae(e), (0, s.triggerEvent)("loaded", e, { type: t, renderer: "javascript" }, [e.id])), { state: 3 }) : ((0, s.triggerEvent)("charttypeinvalid", this, {}, [this.id]), { state: 1, msgStyle: a, msg: i }) }

            function Ne(e) { var t, r, n, a, i = this.opts,
                    l = i.containerElement,
                    c = i.insertMode,
                    u = i.callback; if (u ? "function" != typeof u && (u = N) : "function" == typeof c ? (u = c, c = N) : c || "function" != typeof l || (u = l, l = N), c = (c || e.options.insertMode).toLowerCase() || o.domInsertModes.REPLACE, void 0 === l && (l = e.options.containerElementId || e.options.containerElement), "string" == typeof l && (l = document.getElementById(l)), null == l) return (0, s.raiseError)(e, "03091456", "run", ".render()", new Error("Unable to find the container DOM element.")), (0, s.triggerEvent)("containernotfound", e, {}, [e.id]), { state: 1 }; if (function(e, t) { var r, n, a, i = document.getElementById(e),
                            o = t.id || t.getAttribute("id"); if (null === i) return !1; if (e === o) return !0; for (n = 0, a = (r = t.getElementsByTagName("*")).length; n < a; n++)
                            if (r[n] === i) return !1; return !0 }(e.id, l)) return (0, s.raiseError)(e, "05102109", "run", ".render()", new Error("A duplicate object already exists with the specific Id: " + e.id)), { state: 1 }; if (le(l)) return e.containerHidden = !0, se(e, l, c, u), { state: 2 }; if (delete e.containerHidden, ((r = window[e.id]) && r.FusionCharts && r.FusionCharts === e || (r = e.ref) && r.FusionCharts && r.FusionCharts === e) && (e._dispose(), r === window[e.id] && (window[e.id] = N)), "undefined" != typeof window[e.id]) return (0, s.raiseError)(e, "25081843", "comp", ".render", new Error("#25081843:IECompatibility() Chart Id is same as a JavaScript variable name. Variable naming error. Please use unique name for chart JS variable, chart-id and container id.")), { state: 1 }; if ((t = document.createElement(e.options.containerElementType || "span")).setAttribute("id", e.id), "append" !== c && "prepend" !== c)
                    for (; l.hasChildNodes();) l.removeChild(l.firstChild); return "prepend" === c && l.firstChild ? l.insertBefore(t, l.firstChild) : l.appendChild(t), e.options.containerElement = l, e.options.containerElementId = l.id, (a = t.style) && (a.position = z, a.textAlign = U, a.lineHeight = W, a.display = X, a.zoom = $, a["vertical-align"] = Y, a.fontWeight = q, a.fontVariant = K, a.fontStyle = J, a.textDecoration = Z, a["*DISPLAY"] = Q, a.padding = ee, a.margin = te, a.border = re, a.direction = ne, a.transform = ae), e.options.containerClassName && (t.className = e.options.containerClassName), n = (0, o.normalizeCSSDimension)(e.width, e.height, t), e.__state.renderedWidth = n.pixelWidth, e.__state.renderedHeight = n.pixelHeight, e.__state.rendering = !0, e.renderOpts = { containerElement: t, insertMode: c, callback: u }, { state: 3 } } be.lastId = 0; var De, Fe = function() {
                function e() { var t, n, a = this,
                        i = {},
                        l = e.getDep("vml", "dependency");
                    (this.__state = {}, this.id = o.BLANKSTRING, this._deps = {}, this.__state._unresolvedDeps = {}, this.__state.state = 4, 1 === arguments.length && "object" == typeof(arguments.length <= 0 ? undefined : arguments[0]) && (i = arguments.length <= 0 ? undefined : arguments[0]), arguments.length > 1 && "object" == typeof((t = arguments.length - 1) < 0 || arguments.length <= t ? undefined : arguments[t])) && (0, o.extend2)(i, (n = arguments.length - 1) < 0 || arguments.length <= n ? undefined : arguments[n], !1, !0);
                    this.id = "undefined" == typeof i.id ? be() : i.id, this.args = i, this._parsePolicies(p["default"]), this._attachDefaultEventListeners(), this.jsVars.fcObj = this, (0, s.triggerEvent)("beforeInitialize", this, i), e.items[this.id] instanceof e && (0, s.raiseWarning)(this, "06091847", "param", "", new Error('A FusionCharts object with the specified id "' + this.id + '" already exists.Renaming it to ' + (this.id = be()))), this.attributes.id = this.id, r.p = e.getScriptBaseURI(), l && (this._addChartDependency("chartVmlRendererLoad", { resolve: function() { return l.then((function(t) { var r = t["default"];
                                e.addDep(r), a._addChartDependency("chartVmlRendererLoad", { resolve: function() { return { state: 3 } } }), a._setState() }))["catch"]((function() {
                                (0, s.raiseError)(e, "162162788", "run", ">RendererError~VMLRendererLoad", "Unable to load FusionCharts VML renderer."), a._addChartDependency("chartVmlRendererLoad", { resolve: function() { return { state: 1 } } }), a._setState() })), { state: 2 } } }), this._setState()), this.chartType && this.chartType(i.type || i.swfUrl || ""), this.setChartData(this.args.dataSource, this.args.dataFormat, N, N, !0), e.items[this.id] = this, e.defaultOptions = e.options, (0, s.triggerEvent)("initialized", this, i), this._setState() } e.getObjectReference = function(t) { return void 0 === t && (t = ""), e.items[t] && e.items[t].ref }, e.register = function() {
                    (0, s.triggerEvent)("register", e, arguments, N, (function() {
                        (0, s.raiseError)(this, "0604111219", "run", ".register()", new Error(ge)) })) }, e.render = function(t, r) { return t instanceof e ? (t.render(r), t) : new e(t).render(r) }, e.addDep = function() { for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r]; return l.addDep.call.apply(l.addDep, [this].concat(t)) }, e.getDep = function(e, t) { return l.getDep.call(this, e, t) }, e.addEventListener = function(e, t) { return (0, s.addListener)(e, t) }, e.on = function(t, r) { return e.addEventListener(t, r) }, e.removeEventListener = function(e, t) { return (0, s.removeListener)(e, t) }, e.ready = function(t, r, n) { void 0 === r && (r = e), void 0 === n && (n = e); var a = function() { t.call(n, r) }; "function" == typeof t && (M ? setTimeout(a, 0) : e.addEventListener("ready", a)) }, e.formatNumber = function(e, t, r) { void 0 === t && (t = {}); var n, a = ye(t),
                        i = xe(a); return fe[i] ? n = fe[i] : fe[i] = n = new m["default"](a, { useScaleRecursively: !0 }), n.configure(a), n.dataLabels(e, r) }, e._getCleanValue = function(e, t) { void 0 === t && (t = {}); var r, n = ye(t),
                        a = xe(n); return fe[a] ? r = fe[a] : (fe[a] = r = new m["default"](n, { useScaleRecursively: !0 }), r.configure(n)), r.getCleanValue(e) }, e.transcodeData = function(e, t, r, n) { var a, i, o, c = (0, l.getDepsByType)("transcoder"),
                        u = ie(r),
                        d = ie(t); if (d && "function" == typeof d.toString && u && "function" == typeof u.toString && "undefined" != typeof c[u] && "undefined" != typeof c[d]) return (o = c[d]()).toJSON && (a = o.toJSON(e, this), i = c[u]().fromJSON(a.data, this)), a.error instanceof Error || (i.error = a.error), n ? i : i.data;
                    (0, s.raiseError)(this, "14090217", "param", ".transcodeData()", "Unrecognized data-format specified during transcoding.") }, e.setAnimation = function(t) {!e.options._globalAnimationRule && (e.options._globalAnimationRule = []), e.options._globalAnimationRule.push(t) }, e.setEasingEffect = function(t, r) { e.getDep("redraphael", "plugin").easing_formulas[t] = r }, e.getScriptBaseURI = function() { return e.options.scriptBaseUri }, e.setScriptBaseURI = function(t) { e.options.scriptBaseUri = t, r.p = t }, e.getChartFromId = function(t) { return e.items[t] }, e.getVersion = function(e) { var t = { fcs: F, "fcs-xt": { fc: "3.15.3", fw: "3.15.3", pc: "3.15.3", fm: "3.15.3" }, ft: "2.3.0" }; return t[e] || t["fcs-xt"][e] || t }, e.getReleaseDate = function(e) { var t = { fcs: I, "fcs-xt": { fc: R, fw: L, pc: O, fm: P }, ft: V }; return t[e] || t["fcs-xt"][e] || t }; var t = e.prototype; return t._attachDefaultEventListeners = function() { var e, t, r = this.options.events; if (r)
                        for (e in r) "function" == typeof r[e] && this.addEventListener(e, r[e]); for (t in this.options.renderer = "javascript", u["default"]) this.addEventListener(t, u["default"][t]) }, t._setState = function() { var e, t, r = this._deps,
                        n = this.__state.state,
                        a = 4; for (var i in r) r.hasOwnProperty(i) && (a > (t = (e = r[i]).getState()) && (a = t, this.__state.currChartMsg = e.getMsg(), this.__state.currChartMsgStyle = e.getMsgStyle()), 3 === t && this._removeChartDependency(i)); if (this.__state.prevState = n, this.__state.state = a, n !== a && (0, s.triggerEvent)("stateChanged", this, { prevState: de[n], state: de[a] }, [this.id]), !this.containerHidden)
                        if (3 === a && this.__state.renderInvoked && this.__state.isDrawInvoked) { var o = this.renderOpts,
                                l = o.containerElement,
                                c = o.callback;
                            this._renderChart(l, N, c), this._clearPrevContext(), delete this.renderOpts.callback } else if ((2 === a || 1 === a) && this.__state.renderInvoked && this.__state.isDrawInvoked && this._contextChanged() && (!this.__state.renderComplete || 2 !== a)) { var u = this.renderOpts,
                            d = u.containerElement,
                            f = u.callback;
                        this._renderChart(d, "base", 1 === a && f, this.__state.currChartMsg, this.__state.currChartMsgStyle), this._clearPrevContext(), 1 === a && delete this.renderOpts.callback } }, t._clearPrevContext = function() { this.__state.prevChartMsg = o.BLANKSTRING, this.__state.prevChartMsgStyle = {} }, t._contextChanged = function() { if (this.__state.currChartMsg !== this.__state.prevChartMsg) return this.__state.prevChartMsg = this.__state.currChartMsg, this.__state.prevChartMsgStyle = this.__state.currChartMsgStyle, !0; var e = this.__state.prevChartMsgStyle && this.__state.prevChartMsgStyle.image,
                        t = this.__state.currChartMsgStyle && this.__state.currChartMsgStyle.image,
                        r = this.__state.prevChartMsgStyle && this.__state.prevChartMsgStyle.message,
                        n = this.__state.currChartMsgStyle && this.__state.currChartMsgStyle.message; return !(!e || e.imageHAlign === t.imageHAlign && e.imageVAlign === t.imageVAlign && e.imageAlpha === t.imageAlpha && e.imageScale === t.imageScale && r.color === n.color && r.fontFamily === n.fontFamily && r.fontSize === n.fontSize) && (this.__state.prevChartMsg = this.__state.currChartMsg, this.__state.prevChartMsgStyle = this.__state.currChartMsgStyle, !0) }, t._sudoSetState = function(e) { this.__state.prevState = this.__state.state, this.__state.state = e, (0, s.triggerEvent)("stateChanged", this, { prevState: de[this.__state.prevState], state: de[this.__state.state] }, [this.id]) }, t._getState = function() { return de[this.__state.state] }, t._addChartDependency = function(e, t) { this._deps && this._deps[e] && this._removeChartDependency(e), this._deps[e] = t, t.getState = pe, t.getMsg = me, t.getMsgStyle = ve, Object.assign(t, t.resolve(t.scopeOf)) }, t._removeChartDependency = function(e) { this._deps[e] && (this._deps[e].removed = !0, delete this._deps[e]) }, t._parsePolicies = function(e) { var t, r, n, a = this.args; for (t in e)
                        if (p["default"][t] instanceof Array) r = a[e[t][0]], this[t] = void 0 === r ? e[t][1] : r;
                        else
                            for (n in "object" != typeof this[t] && (this[t] = {}), e[t]) r = a[e[t][n][0]], this[t][n] = void 0 === r ? e[t][n][1] : r }, t.hasRendered = function() { return !(!this.jsVars.hcObj || !this.jsVars.hcObj.hasRendered) }, t.setTransparent = function(e) { var t, r = e;
                    (t = this.jsVars) && ("boolean" != typeof r && null !== r && (r = !0), t.transparent = null !== r && !0 === r) }, t.addEventListener = function(e, t) { return (0, s.addListener)(e, t, this) }, t.on = function(e, t) { return this.addEventListener(e, t) }, t.removeEventListener = function(e, t) { return (0, s.removeListener)(e, t, this) }, t.formatNumber = function(e, t, r, n) { var a, i, s, l, c, u = this.apiInstance || {},
                        d = u.numberFormatter,
                        f = r; switch (i = xe(f), f = f && ye(f) || {}, "" === i ? d ? l = d : (s = xe(a = this.options.dataSource.chart || {}), fe[s] ? l = fe[s] : fe[s] = l = new m["default"](u, a)) : (a = this.options.dataSource.chart || {}, s = xe(a = (0, o.extend2)((0, o.extend2)({}, a), f)), fe[s] ? l = fe[s] : fe[s] = l = new m["default"](u, a)), (t && t.toLowerCase ? t : "").toLowerCase()) {
                        case "yaxisvalues":
                            c = l.yAxis(e, n); break;
                        case "xaxisvalues":
                            c = l.xAxis(e); break;
                        case "scale":
                            c = l.scale(e); break;
                        default:
                            c = l.dataLabels(e, n) } return c }, t.clone = function(t, r) { var n = typeof t,
                        a = {},
                        i = r,
                        s = (0, o.extend2)({}, this.args, !1, !0); switch (function(e, t, r) { var n, a; for (n in e)
                            if (e[n] instanceof Array) t[e[n][0]] = r[n];
                            else
                                for (a in e[n]) t[e[n][a][0]] = r[n][a] }(p["default"], s, this), delete s.id, delete s.animate, delete s.stallLoad, a.link = s.link, (s = (0, o.extend2)({}, s, !1, !0)).link = a.link, n) {
                        case "object":
                            (0, o.extend2)(s, t, !1, !0); break;
                        case "boolean":
                            i = t } return i ? s : new e(s) }, t.isActive = function() { if (!this.ref || window.document.getElementById(this.id) !== this.ref) return !1; try { return B.test("FusionCharts") } catch (e) { return !1 } }, t.chartType = function(t, r) { var n, a = r,
                        i = this.options; if ("string" == typeof t && "" !== t) { if (a = "object" == typeof a ? a : {}, n = t.replace(/[\?\#][\s\S]*$/g, ""), i.chartType = n.replace(/^[\s\S]*\//gi, ""), i.chartTypeSourcePath = -1 === n.indexOf("/") ? a.chartTypeSourcePath || e.options.chartTypeSourcePath || "" : n.replace(/[^\/]*?$/gi, ""), "zoomscatter" === i.chartType && !document.createElement("canvas").getContext) { var l = _e(this),
                                c = l.msgStyle,
                                u = l.msg; return this._addChartDependency("chartModuleLoad", { scopeOf: this, opts: { value: i.chartType }, resolve: function() { return { state: 1, msgStyle: c, msg: u } } }), void this._setState() } if (("timeseries" === i.chartType || "chord" === i.chartType || "sankey" === i.chartType) && o.isIE) { var d = _e(this),
                                f = d.msgStyle,
                                h = d.msg; return this._addChartDependency("chartModuleLoad", { scopeOf: this, opts: { value: i.chartType }, resolve: function() { return { state: 1, msgStyle: f, msg: h } } }), void this._setState() }(0, s.triggerEvent)("resourceRequested", this), this._addChartDependency("chartModuleLoad", { scopeOf: this, opts: { value: i.chartType }, resolve: Me }), "undefined" != typeof a.dataSource && null !== a.dataSource && this.setChartData(a.dataSource, a.dataFormat, a.dataConfiguration), this._setState() } else if (t !== N) { var g = Ce(this),
                            p = g.msgStyle,
                            m = g.msg; return this._addChartDependency("chartModuleLoad", { resolve: function() { return { state: 1, msgStyle: p, msg: m } } }), this._setState(), void(0, s.triggerEvent)("charttypeinvalid", this, {}, [this.id]) } return (i.chartType || "").toLowerCase() }, t.setChartDataUrl = function(e, t, r, n, a) { var i = e || "";
                    this._addChartDependency("data", { scopeOf: this, opts: { url: i, format: t, config: r, callback: n, silent: a }, resolve: Ee }), this._setState() }, t.setChartData = function(e, t, r, n, a) { void 0 === a && (a = !0); var i, o = e,
                        s = t; if (this.originalDataSource = e, null != o) { if ("string" != typeof s) switch (typeof o) {
                            case "function":
                                o = o.call(this, this.options.dataConfiguration), s = this.args.dataFormat = "JSON"; break;
                            case "string":
                                s = this.args.dataFormat = /^\s*?\{[\s\S]*\}\s*?$/g.test(s) ? "JSON" : "XML"; break;
                            case "object":
                                s = this.args.dataFormat = "JSON" } } else s = "json"; "xml" === (i = ie(s)) && this.apiInstance && this.apiInstance.config && this.apiInstance.config.isXMLUnsupported || (G.test(i) ? this.setChartDataUrl(o, i, r, n, a) : (this._addChartDependency("data", { opts: { data: o, sanitisedFormat: i, config: r, callback: n, silent: a }, scopeOf: this, resolve: Se }), !this.disposed && this._setState())) }, t.getChartData = function(e, t, r) { var n = e || "json"; "object" == typeof e && e.format && (n = e.format); var a, i, s = ie(null === n ? "json" : n),
                        c = (0, l.getDepsByType)("transcoder")[s](),
                        u = this.options,
                        d = this.apiInstance,
                        f = !r && (a = d && d.getCollatedData && d.getCollatedData(u.dataSource)) ? a : u.dataSource; return "object" == typeof e && 1 === e.isRaw ? i = this.originalDataSource : "xml" === s && d && d.config && d.config.isXMLUnsupported ? o.BLANKSTRING : (!(i = c ? c.fromJSON ? c.fromJSON(f, this) : { error: new Error("Unable to convert data.") } : { error: new Error("Data format not recognized.") }).error && u.error && (i.error = u.error), t ? i : i.data) }, t.dataReady = function(e) { return e ? this.__state.dataAvailable : this.__state.dataReady }, t.setChartAttribute = function(e, t) { var r, n, a, i, s = e; if ("string" == typeof s)(s = {})[arguments[0]] = t;
                    else if (null === s || "object" != typeof s) return; for (n in i = 0, (a = (r = this.getChartData("json")).chart || r.graph || r.map) || (a = {}, r = Object.assign({ chart: a }, r)), s) i += 1, null !== s[n] ? a[n.toLowerCase()] = s[n] : delete a[n.toLowerCase()];
                    i > 0 && ("undefined" == typeof a.animation && (a.animation = o.ZEROSTRING), this.setChartData(r, "json")) }, t.getChartAttribute = function(e) { var t, r, n = this.getChartData("json"),
                        a = n && (n.chart || n.graph || n.map); if (0 === arguments.length || void 0 === e || void 0 === a || null === e) return a; if ("string" == typeof e) t = a[e.toString().toLowerCase()];
                    else if (e instanceof Array)
                        for (t = {}, r = 0; r < e.length; r += 1) t[e[r]] = a[e[r].toString().toLowerCase()];
                    else(0, s.raiseError)(this, "25081429", "param", "~getChartAttribute()", 'Unexpected value of "attribute"'); return t }, t.render = function(e, t, r) { var n = e || N,
                        a = t || N,
                        i = r || N; return this.disposed || (this.__state.beforeRenderFired = !1, this._addChartDependency("chartContainer", { scopeOf: this, opts: { containerElement: n, insertMode: a, callback: i }, resolve: Ne }), this.__state.renderInvoked = !0, this.__state.isDrawInvoked = !0), this._setState(), this }, t._renderChart = function(e, t, r, n, a, i) { if (void 0 === i && (i = !1), !this.disposed) { var o, l = this,
                            c = function() {!0 !== l.disposed && l._render(e, t, r && function() { if (r) try { r.call(l, l.options.containerElement) } catch (e) { setTimeout((function() { throw e })) } }, n, a) }; return i || this.__state.beforeRenderFired ? c() : (this.__state.beforeRenderFired = !0, (0, s.triggerEvent)("beforeRender", this, o = { container: l.options.containerElement, width: this.width, height: this.height, renderer: this.options.renderer }, N, c, (function() {
                            (0, s.triggerEvent)("renderCancelled", l, o), this.__state.renderInvoked = !1 }))), this } }, t._render = function(t, r, n, a, i) { var o = this;
                    o.apiInstance && o.apiInstance.removeJob("resizeScheduled"), o.__state.beforedrawFired ? ((0, d["default"])(e, o, t, r, n, a, i), o.__state.beforedrawFired = !0) : (0, s.triggerEvent)("beforedraw", o, {}, N, (function() {
                        (0, d["default"])(e, o, t, r, n, a, i) }), (function() {
                        (0, s.triggerEvent)("drawCancelled", o), this.__state.isDrawInvoked = !1 })) }, t.resizeTo = function(e, t, r) { var n = this,
                        a = n.width,
                        i = n.height,
                        o = n.__state,
                        l = r,
                        c = t,
                        u = e; return (n.apiInstance && n.apiInstance.config || {}).resize = !0, null !== u && "object" == typeof u && (l = c, c = u.h, u = u.w), u = null == u ? a : u.toString().replace(H, ""), c = null == c ? i : c.toString().replace(H, ""), !0 !== l && (0, s.triggerEvent)("beforeresize", n, { currentWidth: a, currentHeight: i, newWidth: u, newHeight: c }, N, (function() { n.width = u, n.height = c, n.scheduleResize({ width: u, height: c }), n.apiInstance && n.apiInstance.addJob("resized" + ce++, (function() {
                            (0, s.triggerEvent)("resized", n, { id: n.id, width: n.width, height: n.height, prevWidth: a, prevHeight: i, pixelWidth: n.ref && n.ref.offsetWidth || 0, pixelHeight: n.ref && n.ref.offsetHeight || 0, originalWidth: o.renderedWidth, originalHeight: o.renderedHeight }) }), h.priorityList.postRender) }), (function() {
                        (0, s.triggerEvent)("resizecancelled", n, { currentWidth: a, currentHeight: i, cancelledTargetWidth: u, cancelledTargetHeight: c }) })), this }, t.dispose = function() { var t = this,
                        r = {},
                        n = function(t) { for (var n in t._dispose(), t._addChartDependency("dispose", { resolve: function() { return { state: 0 } } }), t._setState(), (0, s.triggerEvent)("disposed", t, r), (0, s.disposeEvents)(t), delete e.items[t.id], t) t.hasOwnProperty(n) && delete t[n]; return t.disposed = !0, { state: 0 } };
                    (0, s.triggerEvent)("beforeDispose", t, r, N, (function() { t._addChartDependency("dispose", { scopeOf: t, resolve: n }) }), (function() {
                        (0, s.triggerEvent)("disposeCancelled", t, r) })) }, t._dispose = function() { var e, t = this.jsVars;
                    this.apiInstance && (this.apiInstance.removeJob("resizeScheduled"), this.apiInstance.remove({ instant: !0 }), delete this.apiInstance, delete t.instanceAPI), (e = window[this.id]) && (! function r(e) { var t, n, a, i = e.attributes; if (i)
                            for (t = i.length - 1; t >= 0; t -= 1) "function" == typeof e[a = i[t].name] && (e[a] = null); if (i = e.childNodes)
                            for (n = i.length, t = 0; t < n; t += 1) r(e.childNodes[t]) }(e), e.parentNode && e.parentNode.removeChild(e)), t.container = null }, t._config = function(e, t) { var r, n, a = e,
                        i = this,
                        o = i.jsVars,
                        s = o.msgStore,
                        l = o.cfgStore,
                        c = i.options; for (r in n = { LoadingText: "loadMessage", ChartNotSupported: "typeNotSupportedMessage", RenderChartErrorText: "renderErrorMessage", XMLLoadingText: "dataLoadStartMessage", ChartNoDataText: "dataEmptyMessage", LoadDataErrorText: "dataLoadErrorMessage", InvalidXMLText: "dataInvalidMessage" }, "string" == typeof a && arguments.length > 1 && (r = a, (a = {})[r] = t), a) "undefined" != typeof s[r] ? s[r] = a[r] : l[r.toLowerCase()] = a[r], n[r] ? c[n[r]] = a[r] : c[r] = a[r] }, t.configure = function(e, t) { var r;
                    e && ("string" == typeof e ? (r = {})[e] = t : r = e, this._config(r)) }, t.print = function(e) { var t = this.apiInstance,
                        r = (0, o.extend2)({}, e); if (t.config.isPrinting || !t.config.hasRendered) return !1;
                    (0, s.triggerEvent)("BeforePrint", this, r, N, (function() { var e, n, a, i, l = t.getFromEnv("chart-container"),
                            c = [],
                            u = l.parentNode,
                            d = document.body || document.getElementsByTagName("body")[0],
                            f = d.childNodes; if (t.config.isPrinting = !0, (0, o.fcEach)(f, (function(e, t) { 1 === e.nodeType && (c[t] = e.style.display, e.style.display = "none") })), !1 !== r.hideButtons && (i = t.getChildren("chartMenuBar")))
                            for (a = 0, e = (n = i[0].getChildren("tool")).length; a < e; a++) n[0].getChildren("listContainer")[0].hide();
                        d.appendChild(l), window.print(), setTimeout((function() { u.appendChild(l), (0, o.fcEach)(f, (function(e, t) { 1 === e.nodeType && (e.style.display = c[t]) })), r.hideButtons, t.config.isPrinting = !1, (0, s.triggerEvent)("PrintComplete", t.getFromEnv("chartInstance"), r) }), 1e3) }), (function() {
                        (0, s.triggerEvent)("PrintCancelled", t.getFromEnv("chartInstance"), r) })) }, t.getSVGString = function(e, t) { var r, n = this.apiInstance,
                        a = n && n.getFromEnv("paper"); if (t && t.keepImages && (r = !0), "function" != typeof e) return a && a.toSVG ? a.toSVG(r) : "<svg></svg>";
                    n.addJob("getSVG", (function() { e(a && a.toSVG && a.toSVG(r)) }), h.priorityList.postRender) }, t.lockResize = function(e) { return "boolean" != typeof e ? !!this.jsVars.resizeLocked : this.jsVars.resizeLocked = e }, t.showChartMessage = function(e, t, r, n) { var a = e || N,
                        i = t || N,
                        o = r || N,
                        s = n || {},
                        l = this,
                        c = l.apiInstance,
                        u = function() { l._showChartMessage(a, i, o, s) }; return c && ("base" === c.getName() ? l.addEventListener("renderComplete", u) : u()), a }, t._showChartMessage = function(e, t, r, n) { void 0 === n && (n = {}); var a, i = this,
                        s = e,
                        l = i.jsVars,
                        c = i.apiInstance,
                        u = i.options;
                    c._hideChartMessage(), void 0 !== s ? (a = { fontFamily: (0, o.pluck)(n.font, u.baseChartMessageFont, "Verdana,sans"), fontSize: (0, o.pluck)(n.fontSize, u.baseChartMessageFontSize, 10), color: (0, o.pluck)(n.color && (0, o.convertColor)(n.color, n.alpha), u.baseChartMessageColor) }, l.msgStore[s] && (s = l.msgStore[s]), c.addJob("showMsg", (function() { t && c && c.config.hasRendered ? (c._show && c._show(), i.showMessage(s, a, r)) : (c._hide && c._hide(), c.setChartMessage(s, { _chartMessageStyle: a }), c.drawChartMessage()) }), h.priorityList.postRender)) : i.hideChartMessage() }, t._resize = function() { var e = this.apiInstance,
                        t = this.jsVars.container;
                    this.__state.resize = !0, e ? (e.config.elScroll = !1, e.getFromEnv("animationManager").setAnimationState("resize"), e.addToEnv("chartWidth", t.offsetWidth), e.addToEnv("chartHeight", t.offsetHeight), this._addChartDependency("resize", { resolve: function() { return { state: 3 } } })) : this._addChartDependency("resize", { resolve: function() { return { state: 1 } } }), this._setState(), this.__state.resize = !1 }, t.hideChartMessage = function() { var e = this.apiInstance;
                    e._hideChartMessage(), e._show && e._show() }, t.showMessage = function(e, t, r) { void 0 === e && (e = ""); var n, a, i, s = this.apiInstance,
                        l = s.config,
                        c = s.getFromEnv("paper"),
                        u = s.getFromEnv("smartLabel"),
                        d = s.getFromEnv("animationManager"),
                        f = s.getGraphicalElement("messageText"),
                        h = s.getGraphicalElement("messageVeil"),
                        g = c.width,
                        p = c.height;
                    a = s.getChildContainer("messageGroup"), d.setAnimationState("showmessage"), (n = d.setAnimation({ el: a || "group", attr: { name: "messageGroup" }, component: s, label: "group" })).show().toFront(), a || s.addChildContainer("messageGroup", n), (h = d.setAnimation({ el: h || "rect", attr: { x: 0, y: 0, width: g, height: p, fill: "rgba(0,0,0,0.2)", stroke: "none" }, container: n, component: s, label: "rect" })).off("fc-click", n.hide), h.show().toFront().attr("cursor", r ? o.POINTER : "default"), r && h.on("fc-click", s._hideChartMessage, s), s.addGraphicalElement("messageVeil", h), u.setStyle(t), i = u.getSmartText(e, g - (l.marginRight || 0) - (l.marginLeft || 0), p - (l.marginTop || 0) - (l.marginBotton || 0)), (f = d.setAnimation({ el: f || "text", attr: { "font-size": t.fontSize, "font-family": t.fontFamily, fill: t.color, text: i.text, "line-height": 14, x: g / 2, y: p / 2 }, container: n, component: s, label: "text" })).attr("cursor", r ? o.POINTER : "default")[r ? "click" : "unclick"](s._hideChartMessage, s).show().toFront(), s.addGraphicalElement("messageText", f) }, t.scheduleResize = function(e) { var t, r = this,
                        n = r.ref;
                    n && (r._addChartDependency("resize", { resolve: function() { return { state: 2 } } }), r.apiInstance.addJob("resizeScheduled", (function() { t = (0, o.normalizeCSSDimension)(e.width, e.height, n), "undefined" != typeof e.width && (n.style.width = t.width), "undefined" !== e.height && (n.style.height = t.height), r._resize() }), h.priorityList.instant)) }, e }();
            Fe.id = "FusionCharts", Fe.options = { html5ScriptNameSuffix: ".js", html5ScriptNamePrefix: "fusioncharts.", "export": { useCanvas: !1 }, scriptBaseUri: (De = function(e) { var t, r, n = window.document.getElementsByTagName("script"),
                        a = n.length; for (r = 0; r < a; r += 1)
                        if (null != (t = n[r].getAttribute("src")) && null !== t.match(e)) return t.replace(e, "$1") }(j), void 0 === De ? ((0, s.raiseError)(Fe, "1603111624", "run", ">GenericRuntime~scriptBaseUri", "Unable to locate FusionCharts script source location (URL)."), "") : De), set creditLabel(e) { console.warn("FusionCharts.options.creditLabel property is deprecated. Please use FusionCharts.options.license with a valid license key to remove the watermark.") }, license: function(e) { e && _["default"].storeObj(Fe, e) } }, r.p = Fe.getScriptBaseURI(), Fe.version = F.split(/[\.\-]/g), Fe.versionDetails = [Fe.version, I], Fe.items = {}, (0, s.setRootSender)(Fe), M = !1, o.hasSVG || Fe.addDep({ name: "vml", type: "dependency", extension: r.e(15).then(r.t.bind(null, 1228, 7)) }), setTimeout((function() { M = !0, (0, s.triggerEvent)("ready", Fe, { version: Fe.version, now: !0 }) }), 1), Fe.addEventListener("dependencyAdded", (function(e, t) { if ("maps" === t.type) { var r = {};
                    r[t.name] = ["fusioncharts.maps.js"], Fe.getDep("dependency") || Fe.addDep({ name: "dependency", extension: r }) } })), Fe.addEventListener("initialized", (function Re() { Fe.removeEventListener("initialized", Re), D = new f["default"](document.body || document.getElementsByTagName("body")[0]), d.globalStore.addToEnv("smartLabel", D) })), Fe.addDep(g["default"]), Fe.addDep(v["default"]), Fe.addDep(C["default"]), Fe.addDep(b["default"]), Fe.addDep(y["default"]), Fe.addDep(x["default"]), Fe.addDep(w["default"]); var Ie = Fe;
            t["default"] = Ie }, function(e, t, r) { var n = r(213);

            function a() { if ("function" != typeof WeakMap) return null; var e = new WeakMap; return a = function() { return e }, e } e.exports = function(e) { if (e && e.__esModule) return e; if (null === e || "object" !== n(e) && "function" != typeof e) return { "default": e }; var t = a(); if (t && t.has(e)) return t.get(e); var r = {},
                    i = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var o in e)
                    if (Object.prototype.hasOwnProperty.call(e, o)) { var s = i ? Object.getOwnPropertyDescriptor(e, o) : null;
                        s && (s.get || s.set) ? Object.defineProperty(r, o, s) : r[o] = e[o] } return r["default"] = e, t && t.set(e, r), r } }, function(e, t) {
            function r(t) { return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? e.exports = r = function(e) { return typeof e } : e.exports = r = function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, r(t) } e.exports = r }, function(e, t) { e.exports = function(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.isInterActiveEvt = function(e) { return !!be[e] }, t.addInterActiveEvtName = function(e) { e && e.toLowerCase && (be[e.toLowerCase()] = !0) }, t.getMouseCoordinate = function(e, t, r) { var n, a, i, o = T.webkitIsFullScreen || T.mozFullScreen || T.msFullscreenElement || T.fullscreenElement,
                    s = de(_e(t)),
                    l = o ? s.clientX : s.pageX,
                    u = o ? s.clientY : s.pageY,
                    h = r && r.config || {},
                    g = t.type,
                    p = h && h.itemFixed,
                    m = (0, c["default"])(h.applycsstransform, 0),
                    v = p ? k.pageYOffset || k.scrollY || T.documentElement.scrollTop : 0,
                    b = p ? k.pageXOffset || k.scrollX || T.documentElement.scrollLeft : 0;
                h.elScroll && h.posOb && !m ? i = h.posOb : (h.elScroll = !0, i = Ce(e), h.posOb = i); "touchend" === g ? (isNaN(l) && (l = d), isNaN(u) && (u = f)) : "touchmove" !== g && "touchstart" !== g || (d = l, f = u); if (n = l - i.left - b, a = u - i.top - v, m) { var y = function(e, t) { var r, n, a, i, o, s, l = t.x,
                            c = t.y,
                            u = e,
                            d = [],
                            f = 0,
                            h = 0,
                            g = !1,
                            p = 0,
                            m = 0;
                        do { if (r = window.getComputedStyle(u), "BODY" === u.tagName || "auto" !== r.getPropertyValue("overflow") && "scroll" !== r.getPropertyValue("overflow") || (u.scrollHeight > u.offsetHeight && (p += u.scrollTop), u.scrollWidth > u.offsetWidth && (m += u.scrollLeft)), r.getPropertyValue("transform") && "none" !== r.getPropertyValue("transform")) { var v = r.getPropertyValue("transform-origin").split(" ").map((function(e) { return +e.replace(/px/gi, "") })); if (n = v[0], a = v[1], 6 === (i = r.getPropertyValue("transform").split("(")[1].split(")")[0].split(",").map((function(e) { return parseFloat(e.trim()) }))).length) { var b = i,
                                        y = b[0],
                                        x = b[1],
                                        w = b[2],
                                        C = b[3],
                                        _ = b[4],
                                        k = b[5];
                                    f = 0, h = 0, s = u;
                                    do { f += s.offsetLeft, h += s.offsetTop, s = s.offsetParent } while (s);
                                    d.push({ elem: u, oriX: n, oriY: a, invM: Ne([y, w, _, x, C, k]), matrix: [y, w, _, x, C, k], offsetLeft: f, offsetTop: h }), g = !0 } } u = u.parentElement } while (u);
                        l += m, c += p, f = 0, h = 0, s = e;
                        do { f += s.offsetLeft, h += s.offsetTop, s = s.offsetParent } while (s); if (g)
                            for (; u = d.pop();) l -= u.offsetLeft, c -= u.offsetTop, o = De({ x: l, y: c }, { oriX: u.oriX, oriY: u.oriY }, u.invM), l = o.x + u.offsetLeft, c = o.y + u.offsetTop; return { x: l -= f, y: c -= h } }(e, { x: l, y: u });
                    n = y.x, a = y.y } return { chartX: n, chartY: a, pageX: l, pageY: u, clientX: s.clientX, clientY: s.clientY } }, t.getTouchEvent = _e, t.imprint = function(e, t, r) { var n, a = e; if ("object" != typeof a || null === a) return a = t, t; if ("object" != typeof t || null === t) return a; for (n in t)(a[n] === u || !r && null === a[n]) && (a[n] = t[n]); return a }, t.pluck = Me, t.getFirstDefinedValue = function() { var e, t, r; for (t = 0, r = arguments.length; t < r; t += 1)
                    if ((e = arguments[t]) || !1 === e || 0 === e || "" === e) return e; return u }, t.hashify = function(e) { return e && e.replace(/^#?([a-f0-9]+)/gi, "#$1") || "none" }, t.dehashify = function(e) { return e && e.replace(/^#?([a-f0-9]+)/gi, "$1") || "none" }, t.getComparatorFN = function(e, t) { if (e) return t ? function(e, r) { return e[t] - r[t] } : Pe; return t ? function(e, r) { return r[t] - e[t] } : Ve }, t.pluckFontSize = function() { var e, t, r; for (t = 0, r = arguments.length; t < r; t += 1)
                    if (((e = arguments[t]) || !1 === e || 0 === e) && !isNaN(e = Number(e))) return e < 1 ? 1 : e; return 1 }, t.getValidValue = Te, t.getPosition = Ce, t.bindSelectionEvent = function(e, t) { var r = t || {},
                    n = e.config,
                    a = e.getFromEnv("chart-container"),
                    s = n.zoomType,
                    l = (0, o["default"])({}, r.attr || {}),
                    u = l["stroke-width"] = (0, c["default"])(l.strokeWidth, l["stroke-width"], 1),
                    d = e.eventListeners || (e.eventListeners = []),
                    f = Ce(a);
                r = (0, o["default"])({ chart: e, zoomX: /x/.test(s), zoomY: /y/.test(s), canvasY: n.canvasTop, canvasX: n.canvasLeft, canvasW: n.canvasWidth, canvasH: n.canvasHeight, canvasX2: n.canvasLeft + n.canvasWidth, canvasY2: n.canvasTop + n.canvasHeight, strokeWidth: u, chartPosLeft: f.left, chartPosTop: f.top, attr: l }, r), l.stroke = Ee(l.stroke, "rgba(51,153,255,0.8)"), l.fill = Ee(l.fill, "rgba(185,213,241,0.3)"), a && (i["default"].unlisten(a, "pointerdrag", ke), d.push(i["default"].listen(a, "pointerdrag", ke, r)));
                n.link && (i["default"].unlisten(e.getFromEnv("chart-container"), "mouseup mousedown", Se), d.push(i["default"].listen(e.getFromEnv("chart-container"), "mouseup mousedown", Se, r))) }, t.fcEach = function(e, t, r, n) { var a, i = r,
                    o = n;
                i || (i = e);
                o || (o = {}); if (ue(e)) { for (a = 0; a < e.length; a += 1)
                        if (!1 === t.call(i, e[a], a, e, o)) return a } else if (null !== e && e !== u)
                    for (a in e)
                        if (!1 === t.call(i, e[a], a, e, o)) return a }, t.getDefinedColor = function(e, t) { return e || 0 === e || "" === e ? e : t }, t.getFirstValue = Ee, t.getColorCodeString = function(e, t) { var r, n, a = "",
                    i = 0,
                    o = t.split(","); for (n = o.length; i < n; i += 1) 2 === (r = o[i].split("-")).length ? "-1" !== r[0].indexOf("dark") ? a += (0, s.getLightColor)(e, 100 - parseInt(r[1], 10)) + "," : a += (0, s.getDarkColor)(e, 100 - parseInt(r[1], 10)) + "," : a += o[i] + ","; return a.substring(0, a.length - 1) }, t.clampNumber = function(e, t, r) { void 0 === t && (t = -Infinity);
                void 0 === r && (r = Infinity); if (e <= t) return t; if (e >= r) return r; return e }, t.fastTrim = function(e) { var t = e.replace(/^\s\s*/, ""),
                    r = t.length; for (;
                    /\s/.test(t.charAt(r -= 1));); return t.slice(0, r + 1) }, t.parseUnsafeString = function(e, t) { void 0 === t && (t = !0); var r = -1; if ("string" == typeof e) return t ? e.replace(/<|>|\'|\"/g, (function(e, t, n) { switch (e) {
                        case "<":
                            return /^<br\s*[\/]?>/gi.test(n.slice(t, n.length)) ? (r = t, e) : "&lt;";
                        case ">":
                            return r >= 0 && /<br\s*[\/]?>$/gi.test(n.slice(r, t + 1)) ? (r = -1, e) : "&gt;";
                        case '"':
                            return "&#034;";
                        case "'":
                            return "&#039;" } })).replace(G, "<br />") : e.replace(G, "<br />"); return "" }, t.toPrecision = Le, t.regescape = function(e) { return e && e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") }, t.regReplaceEscape = Ae, t.getImageURL = function(e) { var t = { image: !1 },
                    r = e;
                r !== u && (r = r.replace(/^\s+/, "").replace(/\s+$/, ""), /^i\s*[\-]\s*/i.test(r) ? (t.image = !0, t.string = r.replace(/^i\s*[\-]\s*/i, "")) : t.string = r.replace(/^\\/, "")); return t }, t.getCripValues = t.getCrispValue = function(e, t, r) { var n = r % 2 / 2,
                    a = Y(e + n) - n,
                    i = Y(e + t + n) - n - a; return { position: a, distance: i } }, t.stableSort = function(e, t) { var r, n = e.length; for (r = 0; r < n; r++) e[r].ssI = r; for (e.sort((function(e, r) { var n = t(e, r); return 0 === n ? e.ssI - r.ssI : n })), r = 0; r < n; r++) delete e[r].ssI }, t.getLinkAction = function(e, t) { return function(r) { if (!r || !t.config.clickURLOverridesPlotLinks) { var n, a, i, o, s, l, d, f, h, g, p = e.chart || e.map || {},
                            m = (0, c["default"])(p.unescapelinks, 1),
                            v = this.entity || u,
                            b = this.entityBox || u,
                            y = this.link,
                            x = y; if (y !== u) { switch (m && (y = k.decodeURIComponent ? k.decodeURIComponent(y) : k.unescape(y)), -1 !== (y = y.replace(/^\s+/, "").replace(/\s+$/, "")).search(/^[a-z]*\s*[\-\:]\s*/i) && (g = (s = y.split(/\s*[\-\:]\s*/)[0].toLowerCase()).length), r && (t.config.hotElemClicked = !0), s) {
                                case "j":
                                case "javascript":
                                    Ie(y); break;
                                case "n":
                                    y.replace(/^n\s*\-/i, "n-"), k.open(y.slice(2)); break;
                                case "f":
                                    -1 !== (n = (y = y.replace(/^f\s*\-/i, "f-")).indexOf("-", 2)) ? (a = y.substr(2, n - 2)) && k.frames[a] ? k.frames[a].location = y.slice(n + 1) : k.open(y.slice(n + 1), a) : k.open(y.slice(2)); break;
                                case "p":
                                    n = (y = y.replace(/p\s*\-/i, "p-")).indexOf("-", 2), i = y.indexOf(",", 2), -1 === n && (n = 1), o = y.slice(n + 1), (h = k.open(o, y.substr(2, i - 2), y.substr(i + 1, n - i - 1))) && h.focus(); break;
                                case "newchart":
                                case "newmap":
                                    switch (":" === y.charAt(g) && (n = y.indexOf("-", g + 1), f = y.substring(g + 1, n), g = n), n = y.indexOf("-", g + 1), l = y.substring(g + 1, n).toLowerCase()) {
                                        case "xmlurl":
                                        case "jsonurl":
                                            d = y.substring(n + 1, y.length); break;
                                        case "xml":
                                        case "json":
                                            d = function(e, t) { var r, n = { chart: {} },
                                                    a = t,
                                                    i = e.toLowerCase(); if (a.linkeddata)
                                                    for (r = 0; r < a.linkeddata.length; r += 1) a.linkeddata[r].id.toLowerCase() === i && (n = a.linkeddata[r].linkedchart || a.linkeddata[r].linkedmap); return n }(y.substring(n + 1, y.length), e), l = "json" } t.fireChartInstanceEvent("linkedChartInvoked", { alias: f, linkType: l.toUpperCase(), data: d, clickedEntity: v, clickedEntityBox: b }); break;
                                default:
                                    k.location.href = y } t.fireChartInstanceEvent("linkClicked", { linkProvided: x, linkInvoked: y, linkAction: s && s.toLowerCase() }) } } } }, t.setImageDisplayMode = function(e, t, r, n, a, i, o, s) { var c = s.width * (n / 100),
                    u = s.height * (n / 100),
                    d = i - 2 * a,
                    f = o - 2 * a; return (0, l.getAlignImage)(t, r, e, c, u, i, o, a, d, f) }, t.setLineHeight = Re, t.parsexAxisStyles = function(e, t, r, n, a) { var i, o = Ee(e.labelbordercolor, t.bordercolor, r.labelbordercolor, ""),
                    l = Me(e.labelbgcolor, t.bgcolor, r.labelbgcolor),
                    u = (0, c["default"])(e.labelborderthickness, t.borderthickness, r.labelborderthickness, 1),
                    d = (0, c["default"])(r.usedataplotcolorforlabels, 0) && a || n.color; return o = o ? (0, s.convertColor)(o, (0, c["default"])(e.labelborderalpha, t.borderalpha, r.labelborderalpha, e.labelalpha, t.alpha, r.labelalpha, 100)) : "", (i = { fontFamily: Me(e.labelfont, t.font, r.labelfont, n.fontFamily), fontSize: Me(e.labelfontsize, t.fontsize, r.labelfontsize, parseInt(n.fontSize, 10)) + "px", color: (0, s.convertColor)(Me(e.labelfontcolor, t.fontcolor, r.labelfontcolor, d), (0, c["default"])(e.labelfontalpha, t.fontalpha, r.labelfontalpha, e.labelalpha, t.alpha, r.labelalpha, 100)), fontWeight: (0, c["default"])(e.labelfontbold, t.fontbold, r.labelfontbold) ? "bold" : "normal", fontStyle: (0, c["default"])(e.labelfontitalic, t.fontitalic, r.labelfontitalic) ? "italic" : "normal", border: o || l ? u + "px solid" : "", borderColor: o, borderThickness: u, borderPadding: (0, c["default"])(e.labelborderpadding, t.borderpadding, r.labelborderpadding, 2), borderRadius: (0, c["default"])(e.labelborderradius, t.borderradius, r.labelborderradius, 0), backgroundColor: l ? (0, s.convertColor)(l, (0, c["default"])(e.labelbgalpha, t.bgalpha, r.labelbgalpha, e.labelalpha, t.alpha, r.labelalpha, 100)) : "", borderDash: (0, c["default"])(e.labelborderdashed, t.borderdashed, r.labelborderdashed, 0) ? Oe((0, c["default"])(e.labelborderdashlen, t.borderdashlen, r.labelborderdashlen, 4), (0, c["default"])(e.labelborderdashgap, t.borderdashgap, r.labelborderdashgap, 2)) : "none" }).lineHeight = Re(i), i }, t.getDashStyle = Oe, t.componentDispose = function je() { var e, t, r, n, a, i, o, s, l, c, u, d; if (this && this !== k) { if (this.disposing = !0, e = this.components)
                        for (r in e)
                            if ((t = e[r]) instanceof Array)
                                for (n = t.length, a = 0; a < n; a++)(d = t[a]) && !this.disposing && (d.dispose ? d.dispose() : je.call(d));
                            else t && !t.disposing && (t.dispose ? t.dispose() : je.call(t)); for (s in i = this.graphics)
                        if (o = i[s])
                            if (o.hide) o.hide(), o.followers && o.followers[0] && (u = o.followers[0].el) && u.hide && u.hide();
                            else
                                for (l in o)(c = o[l]).hide && c.hide(); for (r in this) delete this[r] } }, t.executeJS = Fe, t.pseudoEval = Ie, t.getContainerBackgroundColor = function(e) { var t = e.options,
                    r = t.containerBackgroundColor,
                    n = t.containerBackgroundOpacity;
                we(e.jsVars.transparent) ? n = e.jsVars.transparent ? 0 : 1 : (n = parseFloat(n)) < 0 ? n = 0 : n > 1 && (n = 1);
                r || (r = "#FFFFFF"); if (F && !N) return n ? r : "transparent"; return r = r.replace(/^#?([a-f0-9]+)/gi, "$1"), (r = (0, s.HEXtoRGB)(r))[3] = n.toString(), "rgba(" + r.join(",") + ")" }, t.capitalizeString = function(e, t) { return e ? e.replace(t ? /(^|\s)([a-z])/g : /(^|\s)([a-z])/, (function(e, t, r) { return t + r.toUpperCase() })) : e }, t.pInt = function(e, t) { return parseInt(e, t || 10) }, t.defined = we, t.trimString = function(e) { var t = e.replace(/^\s\s*/, ""),
                    r = t.length; for (;
                    /\s/.test(t.charAt(r -= 1));); return t.slice(0, r + 1) }, t.getSuggestiveRotation = function() { var e, t, r, n;
                e = arguments[0], 1 === arguments.length ? (t = e.angle, r = e.x, n = e.y) : (t = e, r = arguments[1], n = arguments[2]); return "r" + (t = t || 0) + "," + r + "," + n }, t.normalizeCSSDimension = function(e, t, r) { var n, a = void 0 === e ? r.offsetWidth || parseFloat(r.style.width) : e,
                    i = void 0 === t ? r.offsetHeight || parseFloat(r.style.height) : t,
                    o = {},
                    s = r.style; if (s.width = a = a.toString ? a.toString() : "0", s.height = i = i.toString ? i.toString() : "0", (o.widthIsRelative = a.match(/^\s*\d*\.?\d*\%\s*$/) && !a.match(/^\s*0\%\s*$/)) && 0 === r.offsetWidth)
                    for (n = r; n = n.offsetParent;)
                        if (n.offsetWidth > 0) { a = (n.offsetWidth * parseFloat(a.match(/\d*/)[0]) / 100).toString(); break } if ((o.heightIsRelative = i.match(/^\s*\d*\.?\d*\%\s*$/) && !i.match(/^\s*0\%\s*$/)) && r.offsetHeight <= 20)
                    for (n = r; n = n.offsetParent;)
                        if (n.offsetHeight > 0) { i = (n.offsetHeight * parseFloat(i.match(/\d*/)[0]) / 100).toString(); break } return o.width = a.replace ? a.replace(/^\s*(\d*\.?\d*)\s*$/gi, "$1px") : a, o.height = i.replace ? i.replace(/^\s*(\d*\.?\d*)\s*$/gi, "$1px") : i, s.width = o.width, s.height = o.height, o.pixelWidth = o.widthIsRelative ? r.offsetWidth : parseInt(o.width, 10) || 0, o.pixelHeight = o.heightIsRelative ? r.offsetHeight : parseInt(o.height, 10) || 0, o }, t._manageInteractiveSpace = function() { var e, t, r, n, a, i, o = this.config,
                    s = this.getChildren(),
                    l = s.xAxis[0],
                    c = s.yAxis[0],
                    u = s.canvas && s.canvas[0],
                    d = u.config,
                    f = d.canvasBorderWidth,
                    h = d.canvasPaddingTop,
                    g = d.canvasPadding || 0,
                    p = d.canvasPaddingLeft,
                    m = o.xAxisSpaceAllocation,
                    v = o.yAxisSpaceAllocation[0].spaceTaken;
                t = o.xAxisSpaceAllocation = l.placeAxis(o.availableHeight + m.bottom), r = o.yAxisSpaceAllocation[0].spaceTaken = c.placeAxis(o.availableWidth + v.left), e = t.bottom - m.bottom, a = t.top - m.top, n = r.left - v.left, i = r.right - v.right, e && this._allocateSpace({ top: a, bottom: e }), (n || i) && this._allocateSpace({ left: n, right: i }), l && l.setAxisDimention({ x: o.canvasLeft + Math.max(p, g), y: l.config.isOpposit ? o.canvasTop - f : o.canvasBottom + f, opposite: l.config.isOpposit ? o.canvasBottom + f : o.canvasTop - f, axisLength: o.canvasWidth - Math.max(p, g) - Math.max(d.canvasPaddingRight, g) }), c && c.setAxisDimention({ x: c.config.isOpposit ? o.canvasRight + f : o.canvasLeft - f, y: o.canvasTop + h, opposite: c.config.isOpposit ? o.canvasLeft - f : o.canvasRight + f, axisLength: o.canvasHeight - h - d.canvasPaddingBottom }), (a || e || n || i) && u.asyncDraw() }, t.removeAllTooltipOnChart = function(e, t) { for (var r = e.implicit, n = e.explicit, a = 0; a < r.length; a++) { var i = r[a];
                    t ? i.hide() : i.element && i.element.remove() } for (var o = 0; o < n.length; o++) { var s = n[o];
                    t ? s.hide() : s.element && s.element.remove() } }, t.configureDataLabelStyle = function(e, t) { void 0 === e && (e = {}); var r, n, a = t || this.config.JSONData,
                    i = this.getFromEnv("chartConfig"); return r = Me(e.valuebordercolor, a.valuebordercolor, i.valueBorderColor), n = Me(e.valuebgcolor, a.valuebgcolor, i.valueBgColor), { color: (0, s.convertColor)(Me(e.valuefontcolor, a.valuefontcolor, i.valueFontColor), i.valueFontAlpha), borderColor: r ? (0, s.convertColor)(r, i.valueBorderAlpha) : "", backgroundColor: n ? (0, s.convertColor)(n, i.valueBgAlpha) : "" } }, t.MOUSEOUT = t.FIT = t.FILL = t.TILE = t.COMMA = t.animationObjStr = t.configStr = t.ROUND = t.BLANK = t.POINTER = t.HAND = t.BOLD = t.NORMAL = t.mathRound = t.mathAbs = t.animHelperFN = t.xssEncode = t.MathExt = t.defaultGaugePaletteOptions = t.crispBound = t.canvasBorderColorStr = t.attrTypeBool = t.canvasBGAlphaStr = t.attrTypeNum = t.DASH_DEF = t.chartPaletteStr = t.TRACKER_FILL = t.appliedCSS = t.validhexcolor = t.chartAPI = t.getAxisLimits = t.supportedStyle = t.lineHeightFactor = t.isEdge = t.isIE9 = t.isIE11 = t.isIE = t.TXT_REGEX = t.hasSVG = t.stubFN = t.preDefStr = t.isArray = t.TXT_STRING = t.TXT_HREF = t.txtLabel = t.hasTouch = t.parseTooltext = t.gradientify = t.rgbaToHex = t.toRaphaelColor = t.getViewPortDimension = t.polyPathToPath = t.createElement = t.getEventCoordinate = t.regex = t.CLICK_THRESHOLD_PIXELS = t.TOUCH_THRESHOLD_PIXELS = t.cleanColorCode = t.startsRGBA = t.visibleStr = t.hiddenStr = t.TEXTANCHOR = t.COMMASPACE = t.PXSTRING = t.HUNDREDSTRING = t.SHAPE_RECT = t.FC_CONFIG_STRING = t.INITIALSTR = t.FINALSTR = t.POSITION_END = t.POSITION_START = t.MIDDLESTR = t.POSITION_MIDDLE = t.POSITION_CENTER = t.POSITION_LEFT = t.POSITION_BOTTOM = t.POSITION_RIGHT = t.POSITION_TOP = t.POSITION_ABSOLUTE = t.STRINGUNDEFINED = t.DECIMALSTRING = t.ONESTRING = t.TESTSTR = t.SAMPLESTRING = t.ZEROSTRING = t.COMMASTRING = t.OBJECTSTRING = t.STRINGSTRING = t.BREAKSTRING = t.HASHSTRING = t.COLOR_TRANSPARENT = t.COLOR_WHITE = t.COLOR_GLASS = t.COLOR_BLACK = t.BLANKSTRING = t.UNDERSCORE = t.UNDEF = t.isFirefox = t.BLANKSTRINGPLACEHOLDER = t.getEmptyConstractor = void 0, t.removeHtmlAttrs = t.isSimilarObject = t.snapPoint = t.DEFAULT_FT_FONT = t.isIpad = t.domInsertModes = t.isXSSSafe = t.normalizeAngle = t.LINE_HEIGHT_FACTOR = t.PROJECT_VERSION = t.datasetFactory = t.componentFactory = t.dropHash = t.BGRATIOSTRING = t.VISIBLE = t.touchEnabled = t.MOUSEMOVE = void 0; var a = r(216);
            t.attribDefs = a.attribDefs, t.parseConfiguration = a.parseConfiguration, t.setAttribDefs = a.setAttribDefs, t.hasAttribDefs = a.hasAttribDefs; var i = n(r(217)),
                o = n(r(218));
            t.extend2 = o["default"]; var s = r(219);
            t.convertColor = s.convertColor, t.getDarkColor = s.getDarkColor, t.getLightColor = s.getLightColor, t.mapSymbolName = s.mapSymbolName, t.getColumnColor = s.getColumnColor, t.getPointColor = s.getPointColor, t.getAngle = s.getAngle, t.parseColor = s.parseColor, t.getValidColor = s.getValidColor, t.RGBtoHex = s.RGBtoHex, t.rawRGBtoHEX = s.rawRGBtoHEX, t.HEXtoRGB = s.HEXtoRGB, t.parsePointValue = s.parsePointValue, t.getFirstColor = s.getFirstColor, t.getFirstAlpha = s.getFirstAlpha; var l = r(220),
                c = n(r(221));
            t.pluckNumber = c["default"];
            t.LINE_HEIGHT_FACTOR = 1.2, t.PROJECT_VERSION = "3.15.3"; var u, d, f, h, g, p, m, v, b, y, x, w, C, _, k = window,
                S = function() {},
                E = (_ = k.navigator.userAgent.toLowerCase(), !(!(C = -1 !== _.indexOf("msie") && k.parseInt(_.split("msie")[1])) || 9 !== C)),
                A = /Firefox/i.test(k.navigator.userAgent),
                T = k.document,
                M = k.navigator,
                N = Boolean(k.SVGAngle || T.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")),
                D = /trident/i.test(M.userAgent) && /rv:11/i.test(M.userAgent) && !window.opera,
                F = /msie/i.test(M.userAgent) && !k.opera,
                I = /Edge/.test(M.userAgent),
                L = !!M.platform && /iPad|iPhone|iPod/.test(M.platform),
                O = /[\\\"<>;&]/,
                R = /^[^\S]*?(sf|f|ht)(tp|tps):\/\//i,
                P = "rgba(192,192,192," + (F ? .002 : 1e-6) + ")",
                V = "http://www.fusioncharts.com?BS=FCHSEvalMark&utm_source=FCS_trial&pver=" + escape("3.15.3"),
                j = "70|117|115|105|111|110|67|104|97|114|116|115|32|84|114|105|97|108".split("|").map((function(e) { return String.fromCharCode(+e) })).join(""),
                B = parseFloat,
                H = /fusioncharts\.com|fusioncharts\.github\.io$/i,
                G = /\{br\}\s*/gi,
                z = /^#?/,
                U = /^rgba/i,
                W = /[#\s]/gi,
                X = Math.abs,
                $ = Math.pow,
                Y = Math.round,
                q = $(2, -24),
                K = "ontouchstart" in T,
                J = K && !(M.maxTouchPoints || M.msMaxTouchPoints),
                Z = !H.test(k.location.hostname),
                Q = Math,
                ee = Q.max,
                te = Q.min,
                re = { pageX: 0, pageY: 0 },
                ne = ["8BBA00", "F6BD0F", "FF654F", "AFD8F8", "FDB398", "CDC309", "B1D0D2", "FAD1B9", "B8A79E", "D7CEA5", "C4B3CE", "E9D3BE", "EFE9AD", "CEA7A2", "B2D9BA"],
                ae = { paletteColors: [ne, ne, ne, ne, ne], bgColor: ["CBCBCB,E9E9E9", "CFD4BE,F3F5DD", "C5DADD,EDFBFE", "A86402,FDC16D", "FF7CA0,FFD1DD"], bgAngle: [270, 270, 270, 270, 270], bgRatio: ["0,100", "0,100", "0,100", "0,100", "0,100"], bgAlpha: ["50,50", "60,50", "40,20", "20,10", "30,30"], toolTipBgColor: ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"], toolTipBorderColor: ["545454", "545454", "415D6F", "845001", "68001B"], baseFontColor: ["555555", "60634E", "025B6A", "A15E01", "68001B"], tickColor: ["333333", "60634E", "025B6A", "A15E01", "68001B"], trendDarkColor: ["333333", "60634E", "025B6A", "A15E01", "68001B"], trendLightColor: ["f1f1f1", "F3F5DD", "EDFBFE", "FFF5E8", "FFD1DD"], pointerBorderColor: ["545454", "60634E", "415D6F", "845001", "68001B"], pointerBgColor: ["545454", "60634E", "415D6F", "845001", "68001B"], canvasBgColor: ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"], canvasBgAngle: [0, 0, 0, 0, 0], canvasBgAlpha: ["100", "100", "100", "100", "100"], canvasBgRatio: ["", "", "", "", ""], canvasBorderColor: ["545454", "545454", "415D6F", "845001", "68001B"], canvasBorderAlpha: [100, 100, 100, 90, 100], altHGridColor: ["EEEEEE", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], altHGridAlpha: [50, 35, 10, 20, 15], altVGridColor: ["767575", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], altVGridAlpha: [10, 20, 10, 15, 10], borderColor: ["767575", "545454", "415D6F", "845001", "68001B"], borderAlpha: [50, 50, 50, 50, 50], legendBgColor: ["ffffff", "ffffff", "ffffff", "ffffff", "ffffff"], legendBorderColor: ["545454", "545454", "415D6F", "845001", "D55979"], plotFillColor: ["767575", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], plotBorderColor: ["999999", "8A8A8A", "6BA9B6", "C1934D", "FC819F"], msgLogColor: ["717170", "7B7D6D", "92CDD6", "965B01", "68001B"], TrendLightShadeOffset: 30 },
                ie = { numDecimals: function(e) { var t = e;
                        t = Le(t, 10); var r = Le((t = Math.abs(t)) - Math.floor(t), 10),
                            n = String(r).length - 2; return n = n < 0 ? 0 : n, n }, toRadians: function(e) { return e / 180 * Math.PI }, toDegrees: function(e) { return e / Math.PI * 180 }, flashToStandardAngle: function(e) { return -1 * e }, standardToFlashAngle: function(e) { return -1 * e }, flash180ToStandardAngle: function(e) { var t = e,
                            r = 360 - ((t %= 360) < 0 ? t + 360 : t); return 360 === r ? 0 : r }, getAngularPoint: function(e, t, r, n) { var a = n * (Math.PI / 180); return { x: e + r * Math.cos(a), y: t - r * Math.sin(a) } }, remainderOf: function(e, t) { return Math.ceil(e % t) }, boundAngle: function(e) { return e >= 0 ? ie.prototype.remainderOf(e, 360) : 360 - ie.prototype.remainderOf(Math.abs(e), 360) }, toNearestTwip: function(e) { var t = e,
                            r = t < 0 ? -1 : 1,
                            n = Math.abs(t),
                            a = Math.round(100 * n),
                            i = Math.floor(a / 5); return r * ((Number(String(a - 5 * i)) > 2 ? 5 * i + 5 : 5 * i) / 100) }, roundUp: function(e, t) { var r = e,
                            n = t;
                        n = n || 2; var a = Math.pow(10, n); return r *= a, r = Math.round(Number(String(r))), r /= a } },
                oe = 2 * Q.PI,
                se = { chart2D: { bgColor: "bgColor", bgAlpha: "bgAlpha", bgAngle: "bgAngle", bgRatio: "bgRatio", canvasBgColor: "canvasBgColor", canvasBaseColor: "canvasBaseColor", divLineColor: "divLineColor", legendBgColor: "legendBgColor", legendBorderColor: "legendBorderColor", toolTipbgColor: "toolTipbgColor", toolTipBorderColor: "toolTipBorderColor", baseFontColor: "baseFontColor", anchorBgColor: "anchorBgColor" }, chart3D: { bgColor: "bgColor3D", bgAlpha: "bgAlpha3D", bgAngle: "bgAngle3D", bgRatio: "bgRatio3D", canvasBgColor: "canvasBgColor3D", canvasBaseColor: "canvasBaseColor3D", divLineColor: "divLineColor3D", divLineAlpha: "divLineAlpha3D", legendBgColor: "legendBgColor3D", legendBorderColor: "legendBorderColor3D", toolTipbgColor: "toolTipbgColor3D", toolTipBorderColor: "toolTipBorderColor3D", baseFontColor: "baseFontColor3D", anchorBgColor: "anchorBgColor3D" } },
                le = N ? 0 : .5,
                ce = ["color"],
                ue = function() { if (Array.isArray) return Array.isArray; var e = Object.prototype.toString; return function(t) { return e.call(t) === e.call([]) } }(),
                de = function(e) { return e.pageX === u && (e.pageX = e.clientX + T.body.scrollLeft + T.documentElement.scrollLeft, e.pageY = e.clientY + T.body.scrollTop + T.documentElement.scrollTop), e },
                fe = (b = "innerWidth", y = "innerHeight", x = T.documentElement || T.body, w = x, "innerWidth" in k ? w = k : (b = "clientWidth", y = "clientHeight"), function() { return { width: w[b], height: w[y], scrollTop: x.scrollTop, scrollLeft: x.scrollLeft } }),
                he = (v = /^@window_/g, function(e, t, r) { var n, a, i, o, s = e.replace(/\[[\'\"]/g, ".").replace(/[\'\"]\]/g, "").replace(/\[/g, ".@window_").replace(/\]/g, "").split("."),
                        l = k,
                        c = ""; for (i = s.length, o = 0; o < i; o += 1) { if (n = l, (a = s[o]).match(v)) l = l[k[a.replace(v, "")]];
                        else { if (l === u || null === l) throw (c || a).replace(v, "") + " is not defined";
                            l = l[a] } c = a } if (!l || "function" != typeof l.call && l !== k.alert) { if ("void" === c) return;
                        setTimeout((function() { throw a.replace(v, "") + "() is not a function" }), 0) } else l === k.alert ? l(t) : r ? l.apply(n, t.split("__FC_ARG_SEP__")) : l.call(n, t) }),
                ge = (m = {}, function(e) { var t, r, n, a, i, o = e || this,
                        l = o && o.FCcolor || o,
                        c = l.color,
                        d = l.ratio,
                        f = l.angle,
                        h = l.alpha,
                        g = l.r,
                        p = l.cx,
                        v = l.cy,
                        b = l.fx,
                        y = l.fy,
                        x = l.gradientUnits,
                        w = l.x1,
                        C = l.y1,
                        _ = l.x2,
                        k = l.y2,
                        S = 1; if ("string" == typeof o) return m[i = "~" + o] || (m[i] = o.replace(/^#?([a-f0-9]{3,6})/gi, "#$1")); if (!(c = c || "")) return t; if (i = [c, h, d, f, g, p, v, x, b, y, w, _, C, k, l.radialGradient].join("_").replace(/[\(\)\s,\xb0#]/g, "_"), m[i]) return m[i]; if (d = d && (d + "").split(",") || [], h = (h || 0 === h) && (h + "").split(",") || [], c = c.split(","))
                        if (t = "", 1 === c.length) a = c[0].replace(/^#?([a-f0-9]{3,6})/gi, "$1"), t = h.length ? "rgba(" + (0, s.HEXtoRGB)(a).join(",") + "," + .01 * B(h[0]) + ")" : a.replace(/^#?([a-f0-9]{3,6})/gi, "#$1");
                        else { for (r = 0, n = c.length; r < n; r++) a = c[r].replace(/^#?([a-f0-9]{3,6})/gi, "$1"), isNaN(d[r]) || (d[r] = B(d[r]), a += ":" + d[r], isNaN(d[r + 1]) || (d[r + 1] = B(d[r + 1]) + d[r])), isNaN(h[r]) || "" === h[r] || (S = .01 * h[r]), c[r] = "rgba(" + (0, s.HEXtoRGB)(a).join(",") + "," + S + ")", isNaN(d[r]) || (d[r] === d[r - 1] && (d[r] += .001), c[r] = c[r] + ":" + d[r]);
                            t += c.join("-"), g !== u || b !== u || p !== u || l.radialGradient ? t = "xr(" + [b, y, g, p, v, x].join(",") + ")" + t : (t = "-" + t, w === u && C === u && _ === u && k === u || (t = "(" + [w, C, _, k, x].join(",") + ")" + t), f === u && (f = 0), t = 360 - B(f) % 360 + t) } return m[i] = t, t }),
                pe = function() { return "" },
                me = function() { var e, t = [{ regex: /((^|[^\\])((\\)\\)*\$cleanvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cleanvalue))/gi, argIndex: 2, argKey: "cleanvalue" }, { regex: /((^|[^\\])((\\)\\)*\$datavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$datavalue))/gi, argIndex: 2, argKey: "formattedValue" }, { regex: /((^|[^\\])((\\)\\)*\$value)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$value))/gi, argIndex: 3, argKey: "value" }, { regex: /((^|[^\\])((\\)\\)*\$label)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$label))/gi, argIndex: 2, argKey: "label" }, { regex: /((^|[^\\])((\\)\\)*\$seriesname)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$seriesname))/gi, argIndex: 5, argKey: "seriesname" }, { regex: /((^|[^\\])((\\)\\)*\$yaxisname)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$yaxisname))/gi, argIndex: 2, argKey: "yaxisName" }, { regex: /((^|[^\\])((\\)\\)*\$xaxisname)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$xaxisname))/gi, argIndex: 2, argKey: "xaxisName" }, { regex: /((^|[^\\])((\\)\\)*\$displayvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$displayvalue))/gi, argIndex: 3, argKey: "displayvalue" }, { regex: /((^|[^\\])((\\)\\)*\$xdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$xdatavalue))/gi, argIndex: 2, argKey: "xDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$ydatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$ydatavalue))/gi, argIndex: 2, argKey: "yDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$xvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$xvalue))/gi, argIndex: 3, argKey: "x" }, { regex: /((^|[^\\])((\\)\\)*\$yvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$yvalue))/gi, argIndex: 3, argKey: "y" }, { regex: /((^|[^\\])((\\)\\)*\$zvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$zvalue))/gi, argIndex: 3, argKey: "z" }, { regex: /((^|[^\\])((\\)\\)*\$name)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$name))/gi, argIndex: 3, argKey: "name" }, { regex: /((^|[^\\])((\\)\\)*\$percentValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$percentValue))/gi, argIndex: 2, argKey: "percentValue" }, { regex: /((^|[^\\])((\\)\\)*\$startValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$startValue))/gi, argIndex: 2, argKey: "startValue" }, { regex: /((^|[^\\])((\\)\\)*\$startDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$startDataValue))/gi, argIndex: 2, argKey: "startDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$endValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$endValue))/gi, argIndex: 2, argKey: "endValue" }, { regex: /((^|[^\\])((\\)\\)*\$endDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$endDataValue))/gi, argIndex: 2, argKey: "endDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$axisName)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$axisName))/gi, argIndex: 2, argKey: "axisName" }, { regex: /((^|[^\\])((\\)\\)*\$cumulativevalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cumulativevalue))/gi, argIndex: 2, argKey: "cumulativeValue" }, { regex: /((^|[^\\])((\\)\\)*\$cumulativedatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cumulativedatavalue))/gi, argIndex: 2, argKey: "cumulativeDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$cumulativePercentValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cumulativePercentValue))/gi, argIndex: 2, argKey: "cumulativePercentValue" }, { regex: /((^|[^\\])((\\)\\)*\$cumulativepercentdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$cumulativepercentdatavalue))/gi, argIndex: 2, argKey: "cumulativePercentDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$sum)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$sum))/gi, argIndex: 2, argKey: "sum" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedsum)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedsum))/gi, argIndex: 2, argKey: "unformattedSum" }, { regex: /((^|[^\\])((\\)\\)*\$targetvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$targetvalue))/gi, argIndex: 2, argKey: "targetValue" }, { regex: /((^|[^\\])((\\)\\)*\$targetdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$targetdatavalue))/gi, argIndex: 2, argKey: "targetDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$processname)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$processname))/gi, argIndex: 2, argKey: "processName" }, { regex: /((^|[^\\])((\\)\\)*\$start)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$start))/gi, argIndex: 2, argKey: "start" }, { regex: /((^|[^\\])((\\)\\)*\$end)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$end))/gi, argIndex: 2, argKey: "end" }, { regex: /((^|[^\\])((\\)\\)*\$percentcomplete)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$percentcomplete))/gi, argIndex: 2, argKey: "percentComplete" }, { regex: /((^|[^\\])((\\)\\)*\$taskpercentcomplete)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$taskpercentcomplete))/gi, argIndex: 2, argKey: "taskPercentComplete" }, { regex: /((^|[^\\])((\\)\\)*\$taskstartdate)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$taskstartdate))/gi, argIndex: 2, argKey: "taskStartDate" }, { regex: /((^|[^\\])((\\)\\)*\$taskenddate)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$taskenddate))/gi, argIndex: 2, argKey: "taskEndDate" }, { regex: /((^|[^\\])((\\)\\)*\$tasklabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tasklabel))/gi, argIndex: 2, argKey: "taskLabel" }, { regex: /((^|[^\\])((\\)\\)*\$date)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$date))/gi, argIndex: 2, argKey: "date" }, { regex: /((^|[^\\])((\\)\\)*\$percentofprevvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$percentofprevvalue))/gi, argIndex: 2, argKey: "percentOfPrevValue" }, { regex: /((^|[^\\])((\\)\\)*\$sname)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$sname))/gi, argIndex: 2, argKey: "sName" }, { regex: /((^|[^\\])((\\)\\)*\$lname)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$lname))/gi, argIndex: 2, argKey: "lName" }, { regex: /((^|[^\\])((\\)\\)*\$fromid)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromid))/gi, argIndex: 2, argKey: "fromId" }, { regex: /((^|[^\\])((\\)\\)*\$fromlabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromlabel))/gi, argIndex: 2, argKey: "fromLabel" }, { regex: /((^|[^\\])((\\)\\)*\$toid)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toid))/gi, argIndex: 2, argKey: "toId" }, { regex: /((^|[^\\])((\\)\\)*\$tolabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tolabel))/gi, argIndex: 2, argKey: "toLabel" }, { regex: /((^|[^\\])((\\)\\)*\$fromxvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromxvalue))/gi, argIndex: 2, argKey: "fromXValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromyvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromyvalue))/gi, argIndex: 2, argKey: "fromYValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromxdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromxdatavalue))/gi, argIndex: 2, argKey: "fromXDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromydatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromydatavalue))/gi, argIndex: 2, argKey: "fromYDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromlabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromlabel))/gi, argIndex: 2, argKey: "fromLabel" }, { regex: /((^|[^\\])((\\)\\)*\$toxvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toxvalue))/gi, argIndex: 2, argKey: "toXValue" }, { regex: /((^|[^\\])((\\)\\)*\$toyvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toyvalue))/gi, argIndex: 2, argKey: "toYValue" }, { regex: /((^|[^\\])((\\)\\)*\$toxdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toxdatavalue))/gi, argIndex: 2, argKey: "toXDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$toydatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toydatavalue))/gi, argIndex: 2, argKey: "toYDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$tolabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tolabel))/gi, argIndex: 2, argKey: "toLabel" }, { regex: /((^|[^\\])((\\)\\)*\$openvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$openvalue))/gi, argIndex: 2, argKey: "openValue" }, { regex: /((^|[^\\])((\\)\\)*\$closevalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$closevalue))/gi, argIndex: 2, argKey: "closeValue" }, { regex: /((^|[^\\])((\\)\\)*\$highvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$highvalue))/gi, argIndex: 2, argKey: "highValue" }, { regex: /((^|[^\\])((\\)\\)*\$lowvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$lowvalue))/gi, argIndex: 2, argKey: "lowValue" }, { regex: /((^|[^\\])((\\)\\)*\$opendatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$opendatavalue))/gi, argIndex: 2, argKey: "openDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$closedatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$closedatavalue))/gi, argIndex: 2, argKey: "closeDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$highdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$highdatavalue))/gi, argIndex: 2, argKey: "highDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$lowdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$lowdatavalue))/gi, argIndex: 2, argKey: "lowDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$maxvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$maxvalue))/gi, argIndex: 2, argKey: "maxValue" }, { regex: /((^|[^\\])((\\)\\)*\$maxdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$maxdatavalue))/gi, argIndex: 2, argKey: "maxDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$minvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$minvalue))/gi, argIndex: 2, argKey: "minValue" }, { regex: /((^|[^\\])((\\)\\)*\$mindatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$mindatavalue))/gi, argIndex: 2, argKey: "minDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$q1)/gi, argIndex: 2, argKey: "Q1" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedQ1)/gi, argIndex: 2, argKey: "unformattedQ1" }, { regex: /((^|[^\\])((\\)\\)*\$q3)/gi, argIndex: 2, argKey: "Q3" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedQ3)/gi, argIndex: 2, argKey: "unformattedQ3" }, { regex: /((^|[^\\])((\\)\\)*\$median)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$median))/gi, argIndex: 2, argKey: "median" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedMedian)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedMedian))/gi, argIndex: 2, argKey: "unformattedMedian" }, { regex: /((^|[^\\])((\\)\\)*\$SD)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$SD))/gi, argIndex: 2, argKey: "SD" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedsd)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedsd))/gi, argIndex: 2, argKey: "unformattedsd" }, { regex: /((^|[^\\])((\\)\\)*\$QD)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$QD))/gi, argIndex: 2, argKey: "QD" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedQD)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedQD))/gi, argIndex: 2, argKey: "unformattedQD" }, { regex: /((^|[^\\])((\\)\\)*\$MD)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$MD))/gi, argIndex: 2, argKey: "MD" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedMD)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedMD))/gi, argIndex: 2, argKey: "unformattedMD" }, { regex: /((^|[^\\])((\\)\\)*\$mean)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$mean))/gi, argIndex: 2, argKey: "mean" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedMean)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedMean))/gi, argIndex: 2, argKey: "unformattedMean" }, { regex: /((^|[^\\])((\\)\\)*\$unformattedMean)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$unformattedMean))/gi, argIndex: 2, argKey: "unformattedMean" }, { regex: /((^|[^\\])((\\)\\)*\$volumeValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$volumeValue))/gi, argIndex: 2, argKey: "volumeValue" }, { regex: /((^|[^\\])((\\)\\)*\$volumeDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$volumeDataValue))/gi, argIndex: 2, argKey: "volumeDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromXValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromXValue))/gi, argIndex: 2, argKey: "fromXValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromYValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromYValue))/gi, argIndex: 2, argKey: "fromYValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromXDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromXDataValue))/gi, argIndex: 2, argKey: "fromXDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromYDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromYDataValue))/gi, argIndex: 2, argKey: "fromYDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$fromLabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$fromLabel))/gi, argIndex: 2, argKey: "fromLabel" }, { regex: /((^|[^\\])((\\)\\)*\$toXValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toXValue))/gi, argIndex: 2, argKey: "toXValue" }, { regex: /((^|[^\\])((\\)\\)*\$toYValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toYValue))/gi, argIndex: 2, argKey: "toYValue" }, { regex: /((^|[^\\])((\\)\\)*\$toXDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toXDataValue))/gi, argIndex: 2, argKey: "toXDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$toYDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$toYDataValue))/gi, argIndex: 2, argKey: "toYDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$tolabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tolabel))/gi, argIndex: 2, argKey: "toLabel" }, { regex: /((^|[^\\])((\\)\\)*\$tlLabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tlLabel))/gi, argIndex: 5, argKey: "tlLabel" }, { regex: /((^|[^\\])((\\)\\)*\$trlabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$trlabel))/gi, argIndex: 5, argKey: "trLabel" }, { regex: /((^|[^\\])((\\)\\)*\$bllabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$bllabel))/gi, argIndex: 5, argKey: "blLabel" }, { regex: /((^|[^\\])((\\)\\)*\$brlabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$brlabel))/gi, argIndex: 5, argKey: "brLabel" }, { regex: /((^|[^\\])((\\)\\)*\$rowlabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$rowlabel))/gi, argIndex: 5, argKey: "rowLabel" }, { regex: /((^|[^\\])((\\)\\)*\$columnlabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$columnlabel))/gi, argIndex: 5, argKey: "columnLabel" }, { regex: /((^|[^\\])((\\)\\)*\$errorvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$errorvalue))/gi, argIndex: 2, argKey: "errorValue" }, { regex: /((^|[^\\])((\\)\\)*\$errordatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$errordatavalue))/gi, argIndex: 2, argKey: "errorDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$errorpercentvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$errorpercentvalue))/gi, argIndex: 2, argKey: "errorPercentValue" }, { regex: /((^|[^\\])((\\)\\)*\$errorpercentdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$errorpercentdatavalue))/gi, argIndex: 2, argKey: "errorPercentDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$horizontalErrorValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalErrorValue))/gi, argIndex: 2, argKey: "horizontalErrorValue" }, { regex: /((^|[^\\])((\\)\\)*\$horizontalErrorDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalErrorDataValue))/gi, argIndex: 2, argKey: "horizontalErrorDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$verticalErrorValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalErrorValue))/gi, argIndex: 2, argKey: "verticalErrorValue" }, { regex: /((^|[^\\])((\\)\\)*\$verticalErrorDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalErrorDataValue))/gi, argIndex: 2, argKey: "verticalErrorDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$horizontalErrorPercent)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalErrorPercentValue))/gi, argIndex: 2, argKey: "horizontalErrorPercentValue" }, { regex: /((^|[^\\])((\\)\\)*\$horizontalErrorPercentDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalErrorPercentDataValue))/gi, argIndex: 2, argKey: "horizontalErrorPercentDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$verticalErrorPercent)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalErrorPercentValue))/gi, argIndex: 2, argKey: "verticalErrorPercentValue" }, { regex: /((^|[^\\])((\\)\\)*\$verticalErrorPercentDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalErrorPercentDataValue))/gi, argIndex: 2, argKey: "verticalErrorPercentDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$xaxispercentvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$xaxispercentvalue))/gi, argIndex: 2, argKey: "xAxisPercentValue" }, { regex: /((^|[^\\])((\\)\\)*\$percentdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$percentdatavalue))/gi, argIndex: 2, argKey: "percentDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$trType)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$trType))/gi, argIndex: 4, argKey: "trtype" }, { regex: /((^|[^\\])((\\)\\)*\$tlType)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$tlType))/gi, argIndex: 4, argKey: "tltype" }, { regex: /((^|[^\\])((\\)\\)*\$brType)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$brType))/gi, argIndex: 4, argKey: "brtype" }, { regex: /((^|[^\\])((\\)\\)*\$blType)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$blType))/gi, argIndex: 4, argKey: "bltype" }, { regex: /((^|[^\\])((\\)\\)*\$colorRangeLabel)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$colorRangeLabel))/gi, argIndex: 5, argKey: "colorRangeLabel" }, { regex: /((^|[^\\])((\\)\\)*\$zdatavalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$zdatavalue))/gi, argIndex: 2, argKey: "zDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$svalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$svalue))/gi, argIndex: 3, argKey: "svalue" }, { regex: /((^|[^\\])((\\)\\)*\$positiveErrorValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$positiveErrorValue))/gi, argIndex: 2, argKey: "positiveErrorValue" }, { regex: /((^|[^\\])((\\)\\)*\$negativeErrorValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$negativeErrorValue))/gi, argIndex: 2, argKey: "negativeErrorValue" }, { regex: /((^|[^\\])((\\)\\)*\$datasvalue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$datasvalue))/gi, argIndex: 2, argKey: "formattedsValue" }, { regex: /((^|[^\\])((\\)\\)*\$horizontalNegativeErrorValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalNegativeErrorValue))/gi, argIndex: 2, argKey: "horizontalNegativeErrorValue" }, { regex: /((^|[^\\])((\\)\\)*\$horizontalPositiveErrorValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalPositiveErrorValue))/gi, argIndex: 2, argKey: "horizontalPositiveErrorValue" }, { regex: /((^|[^\\])((\\)\\)*\$verticalNegativeErrorValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalNegativeErrorValue))/gi, argIndex: 2, argKey: "verticalNegativeErrorValue" }, { regex: /((^|[^\\])((\\)\\)*\$verticalPositiveErrorValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalPositiveErrorValue))/gi, argIndex: 2, argKey: "verticalPositiveErrorValue" }, { regex: /((^|[^\\])((\\)\\)*\$horizontalNegativeErrorDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalNegativeErrorDataValue))/gi, argIndex: 2, argKey: "horizontalNegativeErrorDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$horizontalPositiveErrorDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$horizontalPositiveErrorDataValue))/gi, argIndex: 2, argKey: "horizontalPositiveErrorDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$verticalPositiveErrorDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalPositiveErrorDataValue))/gi, argIndex: 2, argKey: "verticalPositiveErrorDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$verticalNegativeErrorDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$verticalNegativeErrorDataValue))/gi, argIndex: 2, argKey: "verticalNegativeErrorDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$positiveErrorDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$positiveErrorDataValue))/gi, argIndex: 2, argKey: "positiveErrorDataValue" }, { regex: /((^|[^\\])((\\)\\)*\$negativeErrorDataValue)/gi, escapeRegex: /((^|[^\\])((\\)\\)*\\(\$negativeErrorDataValue))/gi, argIndex: 2, argKey: "negativeErrorDataValue" }],
                        r = [],
                        n = t.length; for (e = 0; e < n; e += 1) r.push(e); return function() { var e, n, a, i, o, s = arguments[0],
                            l = arguments[1]; if (ue(l) || (l = r), s)
                            for (o = l.length, i = 0; i < o; i += 1)(a = t[l[i]]) && (e = Ae(Te((n = arguments[a.argIndex]) && n[a.argKey], "") + ""), s = (s = s.replace(a.regex, "$2$4" + (a.parsingMethod ? a.parsingMethod(e) : e))).replace(a.escapeRegex, "$2$4$5")); return s } }(),
                ve = (h = function(e, t, r, n, a) { var i, o = Math.abs(t - e),
                        s = o / (r + 1),
                        l = n; return p(o, r, l) || (a && (i = l > 1 ? 2 : .5, Number(s) / Number(l) < i && (l /= 10)), o = (s = (Math.floor(s / l) + 1) * l) * (r + 1)), o }, g = function(e) { var t = Math.abs(e),
                        r = String(t),
                        n = 0,
                        a = r.indexOf("."); return -1 !== a && (n = r.length - a - 1), n }, p = function(e, t, r) { return !(g(e / (t + 1)) > g(r)) }, function(e, t, r, n, a, i, o, s) { var l, c, d, f, g, m, v, b, y, x, w, C, _, k, S, E, A, T, M, N, D, F, I, L, O, R, P, V = 0,
                        j = e,
                        B = t,
                        H = a,
                        G = i,
                        z = o; if ((j = !0 === isNaN(j) || j === u ? .1 : j) === (B = !0 === isNaN(B) || B === u ? 0 : B) && 0 === j && (j = .1), H = void 0 === H || H, G = void 0 === G || G, v = Math.floor(Math.log(Math.abs(j)) / Math.LN10), b = Math.floor(Math.log(Math.abs(B)) / Math.LN10), y = Math.max(b, v), x = Math.pow(10, y), Math.abs(j) / x < 2 && Math.abs(B) / x < 2 && (y--, x = Math.pow(10, y)), w = Math.floor(Math.log(j - B) / Math.LN10), C = Math.pow(10, w), j - B > 0 && x / C >= 10 && (x = C, y = w), _ = (Math.floor(j / x) + 1) * x, k = B < 0 ? (Math.floor(Math.abs(B / x)) + 1) * x * -1 : G || (k = Math.floor(Math.abs(B / x) - 1) * x) < 0 ? 0 : k, H && j <= 0 && (_ = 0), c = !(!n && 0 !== n), d = !1 == (l = !(!r && 0 !== r)) || !0 === l && Number(r) < j && j - Number(r) > q ? _ : Number(r), f = !1 === c || !0 === c && Number(n) > B && Number(n) - B > q ? k : Number(n), g = Math.abs(d - f), m = x, !1 === c && !1 === l && s)
                        if (d > 0 && f < 0) { for (E = !1, T = h(f, d, z, A = m > 10 ? m / 10 : m, !1) - (z + 1) * A; !1 === E;)
                                if (p(T += (z + 1) * A, z, A))
                                    if (S = T - g, M = T / (z + 1), N = (D = Math.min(Math.abs(f), d)) === Math.abs(f) ? -1 : 1, 0 === z) E = !0;
                                    else
                                        for (I = 1; I <= Math.floor((z + 1) / 2); I++)(F = M * I) - D > S || F > D && (R = T - F) / M === Math.floor(R / M) && F / M === Math.floor(F / M) && (g = T, d = -1 === N ? R : F, f = -1 === N ? -F : -R, E = !0) } else S = (L = h(f, d, z, m, !0)) - g, g = L, d > 0 ? d += S : f -= S;
                    else s && (P = function(e, t, r) { for (var n, a = 0, i = 1; !p(t, n = 0 === (n = e + a * i) ? 1 : n, r);) { if ((a = -1 === i || a > e ? ++a : a) > 25) { n = 0; break } i = a <= e ? -1 * i : 1 } return n }, z > 0 && (0 === (O = P(z, g, m)) && (O = P(z, g + 1, m), V = 1), z = O)); return { Max: d, Min: f, Range: g, interval: m, divGap: (d - f + V) / (z + 1) } }),
                be = { keyup: !0, blur: !0, click: !0, load: !0, dragstart: !0, dragmove: !0, dragend: !0, dblclick: !0, mousedown: !0, mousemove: !0, mouseout: !0, mouseover: !0, mouseup: !0, "fc-wheel": !0, "fc-click": !0, "fc-dragstart": !0, "fc-dragmove": !0, "fc-dragend": !0, "fc-dbclick": !0, "fc-mousedown": !0, "fc-mousemove": !0, "fc-mouseout": !0, "fc-mouseover": !0, "fc-mouseup": !0, "fc-pinchstart": K || J, "fc-pinchmove": K || J, "fc-pinchend": K || J, touchstart: K || J, touchmove: K || J, touchend: K || J, touchcancel: K || J },
                ye = { stripWhitespace: /\s+/g, dropHash: z, startsRGBA: U, cleanColorCode: W, breakPlaceholder: G, hexcode: /^#?[0-9a-f]{6}/i },
                xe = { colors: { B90000: "B90000", FFFFFF: "FFFFFF", AAAAAA: "AAAAAA", c000000: "000000" }, BLANK: "", DATASET: "dataset", NORMALSTRING: "normal", PX: "px", INPUT: "input", LABEL: "label", BLANKSPACE: " ", COMMA: ",", OBJECTBOUNDINGBOX: "objectBoundingBox", GROUPID: "groupId", EVENTARGS: "eventArgs", CIRCLE: "circle", POLYGON: "polygon", SPOKE: "spoke", RECTANGLE: "rectangle", ROLLOUT: "rollout", ROLLOVER: "rollover", DATAPLOTCLICK: "dataplotclick", defaultFontStr: "Verdana,sans", line: "line", bar: "bar", column: "column", volume: "volume", HUNDREDSTRING: "100", SEVENTYSTRING: "70", NINETYSTRING: "90", AUTOSTRING: "auto", configStr: "config", animationObjStr: "animationObj", showHoverEffectStr: "showHoverEffect", hiddenStr: "hidden", visibleStr: "visible", columnStr: "columns", barStr: "bars", barHotStr: "bar-hot", colHotStr: "col-hot", shadowStr: "shadow", dataLabelStr: "datalabel", errorBarStr: "errorBar", errorHotStr: "error-hot", errorShadowStr: "error-shadow", negativeValueStr: "negative-values", positiveValueStr: "positive-values", zeroPlaneStr: "zero-plane", categoryPlotsStr: "categoryplots", noneStr: "none", setRolloverAttrStr: "setRolloverAttr", setRolloutAttrStr: "setRolloutAttr", elementStr: "element", hotElementStr: "hotElement", strokeWidthStr: "stroke-width", strokeDashStr: "stroke-dasharray", strokeLineJoinStr: "stroke-linejoin", miterStr: "miter", visiblilityStr: "visibility", ROUND: "round", PERCENTAGESTRING: "%", pStr: "p", sStr: "s", divLineAlpha3DStr: "divLineAlpha3D", divLineAlphaStr: "divLineAlpha", altVGridColorStr: "altVGridColor", altVGridAlphaStr: "altVGridAlpha", altHGridColorStr: "altHGridColor", altHGridAlphaStr: "altHGridAlpha", PLOTFILLCOLOR_STR: "plotFillColor", UNDERSCORE: "_", gaugeFillColorStr: "gaugeFillColor", gaugeBorderColorStr: "gaugeBorderColor", NORMAL: "normal", BOLD: "bold", POINTER: "pointer", DEFAULT: "default", POSITION_MIDDLE: "middle", POSITION_START: "start", POSITION_TOP: "top", POSITION_BOTTOM: "bottom", POSITION_END: "end" };

            function we(e) { return null != e }

            function Ce(e) { var t = {},
                    r = e.getBoundingClientRect(); return t.left = r.left + (window.pageXOffset || document.documentElement.scrollLeft), t.top = r.top + (window.pageYOffset || document.documentElement.scrollTop), t }

            function _e(e) { var t = e && (e.sourceEvent || e.originalEvent || e); return K && t && (t.touches && t.touches[0] || t.changedTouches && t.changedTouches[0]) || t || re }

            function ke(e) { var t, r, n, a = e.data,
                    i = a.chart,
                    o = i.getFromEnv("animationManager"),
                    s = de(_e(e.originalEvent)),
                    l = i.getChildren("canvas")[0],
                    c = t = l.getGraphicalElement("resizeBox"),
                    u = a.layerX = s.pageX - a.chartPosLeft,
                    d = a.layerY = s.pageY - a.chartPosTop,
                    f = u - a.ox,
                    h = d - a.oy,
                    g = a.bBox,
                    p = a.ox,
                    m = a.oy,
                    v = a.zoomX,
                    b = a.zoomY,
                    y = a.canvasY,
                    x = a.canvasX,
                    w = a.canvasX2,
                    C = a.canvasY2,
                    _ = a.strokeWidth,
                    k = a.attr; switch (e.state) {
                    case "start":
                        r = Ce(this), a.chartPosLeft = r.left, a.chartPosTop = r.top, u = s.pageX - a.chartPosLeft, d = s.pageY - a.chartPosTop, a.oy = d, a.ox = u, a.allowMove = !1, k.x = 0, k.y = 0, k.height = 0, k.width = 0, c = l.addGraphicalElement("resizeBox", o.setAnimation({ el: t || "rect", attr: k, container: i.getChildContainer("trackerGroup") })).show(), t || l.addGraphicalElement("resizeBox", c), u > x && u < w && d > y && d < C && (a.allowMove = !0), e.target._isTrackerElem && (a.allowMove = !1); break;
                    case "end":
                        n = { chart: i, selectionLeft: (g = c.getBBox()).x, selectionTop: g.y, selectionHeight: g.height, selectionWidth: g.width, originalEvent: e.originalEvent }, a.isDragged && (a.selectionEnd && a.selectionEnd(n), a.isDragged = 0), c.hide(), delete a.oy, delete a.ox; break;
                    default:
                        if (!a.allowMove) return;
                        f = u - a.ox, h = d - a.oy, g = a.bBox, p = a.ox, m = a.oy, a.isDragged || (n = { chart: i, selectionLeft: (v ? te(p, p + f) : x) + .5 * _, selectionTop: (b ? te(m, m + h) : y) + .5 * _, selectionHeight: 0, selectionWidth: 0, originalEvent: e.originalEvent }, a.selectionStart && a.selectionStart(n), a.isDragged = 1), f = -(p - te(p - (p - ee(p + f, x)), w)), h = -(m - te(m - (m - ee(m + h, y)), C)), o.setAnimation({ el: c, attr: { x: (v ? te(p, p + f) : x) + .5 * _, y: (b ? te(m, m + h) : y) + .5 * _, width: v ? X(f) : a.canvasW, height: b ? X(h) : a.canvasH } }) } }

            function Se(e) { var t = e.data,
                    r = e.originalEvent,
                    n = r.target || r.originalTarget || r.srcElement || r.relatedTarget || r.fromElement,
                    a = r.type,
                    i = r.layerX,
                    o = r.layerY;
                i === u && (i = r.pageX - t.chartPosLeft, o = r.pageY - t.chartPosTop), "mousedown" === a && (n.ishot = i > t.canvasX && i < t.canvasX2 && o > t.canvasY && o < t.canvasY2), "mouseup" === a && setTimeout((function() { n.ishot = !1 }), 1) }

            function Ee() { var e, t, r; for (t = 0, r = arguments.length; t < r; t += 1)
                    if ((e = arguments[t]) || !1 === e || 0 === e) return e; return "" }

            function Ae(e) { return e && e.replace(/\$/g, "$$$$") }

            function Te(e, t) { return e || !1 === e || 0 === e ? e : t }

            function Me() { var e, t, r; for (t = 0, r = arguments.length; t < r; t += 1)
                    if ((e = arguments[t]) || !1 === e || 0 === e) return e; return u }

            function Ne(e) { var t; if (6 === e.length) { var r = e[0],
                        n = e[1],
                        a = e[2],
                        i = e[3],
                        o = e[4],
                        s = e[5]; return [o / (t = r * o - i * n), -n / t, (n * s - a * o) / t, -i / t, r / t, -(r * s - a * i) / t] } return [] }

            function De(e, t, r) { var n = e.x,
                    a = e.y,
                    i = t.oriX,
                    o = t.oriY; return n -= i, a -= o, 6 === r.length ? { x: r[0] * n + r[1] * a + r[2] + i, y: r[3] * n + r[4] * a + r[5] + o } : { x: n, y: a } }

            function Fe(e, t) { he(e.substr(0, e.indexOf("__FC_ARG_SEP__")).replace(/\s/g, ""), e.substr(e.indexOf("__FC_ARG_SEP__")).replace(/__FC_ARG_SEP__/, ""), t) }

            function Ie(e) { /^j\s*\-/.test(e) ? Fe(e.replace(/^j\s*\-/, "").replace(/\-/, "__FC_ARG_SEP__")) : Fe(e.replace(/^javascript\s*\:/i, "").replace(/[\'\"]?\s*\,\s*[\'\"]?/g, "__FC_ARG_SEP__").replace(/\(\s*[\'\"]?(.*)\)\;?/, "__FC_ARG_SEP__$1").replace(/[\'\"]?$/, ""), !0) }

            function Le(e, t) { var r = $(10, t); return Y(e * r) / r }

            function Oe(e, t, r) { return r || r === u ? [e, t] : "none" }

            function Re(e, t) { return "object" != typeof e ? "" : ((e.fontSize || e["font-size"]) && (!e.fontSize && e["font-size"] && (e.fontSize = e["font-size"], delete e["font-size"]), e.lineHeight = 1.2 * (parseFloat(e.fontSize) || t || 10) + "px", delete e["line-height"]), !e.lineHeight && e["line-height"] && (e.lineHeight = e["line-height"], delete e["line-height"]), e.lineHeight) }

            function Pe(e, t) { return e - t }

            function Ve(e, t) { return t - e } t.appliedCSS = ["fontFamily", "fontSize", "fontWeight", "fontStyle"], t.preDefStr = xe, t.regex = ye, t.chartAPI = void 0, t.getAxisLimits = ve, t.parseTooltext = me, t.gradientify = pe, t.toRaphaelColor = ge, t.getViewPortDimension = fe, t.getEventCoordinate = de, t.isArray = ue, t.createElement = function(e, t, r) { var n, a = T.createElement(e); for (n in t) a.setAttribute(n, t[n]); return r && r.appendChild && r.appendChild(a), a }, t.animHelperFN = { getTimeByValue: function(e, t, r) { var n = (e.end - e.start) / (t.endPx - t.startPx); return { start: e.start + n * (r.startPx - t.startPx), end: e.start + n * (r.endPx - t.startPx) } }, animByWeight: function(e, t, r, n, a) { var i = n || 1,
                        o = t,
                        s = a || 0; return { start: e / --o * r * i + s, end: e / o * r * i + r + s } } }, t.rgbaToHex = function(e) { var t = e.replace("rgba(", "").split(","); return "#" + ("000000" + (t[0] << 16 | t[1] << 8 | t[2]).toString(16)).slice(-6) }, t.polyPathToPath = function(e) { var t, r, n, a, i, o = e[0],
                    s = e[1],
                    l = e[2],
                    c = e[3],
                    u = e[4],
                    d = e[5]; if (t = [], o = k.parseInt(o, 10) || 0, s = B(s) || 0, l = B(l) || 0, c = B(c) || 0, u = null === u || isNaN(u) ? .5 * Math.PI : u % 360 * (Math.PI / 180), d = null === d || isNaN(d) ? 0 : B(d), a = u, o > 2) switch (r = 2 * Math.PI / o, d) {
                    case 0:
                        for (n = 0; n < o; n++) t.push("L", s + c * Math.cos(-a), l + c * Math.sin(-a)), a += r;
                        t[0] = "M", t.push("Z"); break;
                    case 1:
                        for (n = 0; n < o; n++) t.push("M", s, l, "L", s + c * Math.cos(-a), l + c * Math.sin(-a)), a += r; break;
                    default:
                        for (r *= .5, i = c * Math.cos(r) * (1 - d), n = 0; n < o; n++) t.push("L", s + c * Math.cos(-a), l + c * Math.sin(-a)), a += r, t.push("L", s + i * Math.cos(-a), l + i * Math.sin(-a)), a += r;
                        t[0] = "M", t.push("Z") } else 0 === c ? t.push("M", s, l, "L", s, l, "Z") : t.push("M", s - c, l, "A", c, c, 0, 0, 0, s + c, l, "A", c, c, 0, 0, 0, s - c, l, "Z"); return t }, t.removeHtmlAttrs = function(e) { return void 0 === e && (e = {}), ce.forEach((function(t) { return delete e[t] })), e }, t.crispBound = function(e, t, r, n, a, i, o) { void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === r && (r = 0), void 0 === n && (n = 0), void 0 === a && (a = 0), void 0 === i && (i = {}); var s = a; if (n < 1 || r < 1) return { x: e, y: t, width: r, height: n, "stroke-width": s };
                (s >= r || s >= n) && (s = Math.floor(Math.min(r, n) / 2) || s); var l = e,
                    c = t,
                    u = e + r,
                    d = s / 2,
                    f = s % 2,
                    h = t + n; return c = i.top ? Math.round(c) + d - le : f ? Math.floor(c) + .5 - le : Math.round(c) - le, h = i.bottom ? Math.round(h) - d - le : o && i.top ? Math.round(h) + d - le : f ? Math.floor(h) + .5 - le : Math.round(h) - le, l = i.left ? Math.round(l) + d - le : o && i.right ? Math.round(l) - d - le : f ? Math.floor(l) + .5 - le : Math.round(l) - le, u = i.right ? Math.round(u) - d - le : f ? Math.floor(u) + .5 - le : Math.round(u) - le, { x: l, y: c, width: Math.abs(u - l), height: Math.abs(h - c), "stroke-width": s } }, t.supportedStyle = { font: "font", fontFamily: "font-family", "font-family": "font-family", fontWeight: "font-weight", "font-weight": "font-weight", fontSize: "font-size", "font-size": "font-size", lineHeight: "line-height", "line-height": "line-height", textDecoration: "text-decoration", "text-decoration": "text-decoration", color: "color", whiteSpace: "white-space", "white-space": "white-space", padding: "padding", margin: "margin", background: "background", backgroundColor: "background-color", "background-color": "background-color", backgroundImage: "background-image", "background-image": "background-image", backgroundPosition: "background-position", "background-position": "background-position", backgroundPositionLeft: "background-position-left", "background-position-left": "background-position-left", backgroundPositionTop: "background-position-top", "background-position-top": "background-position-top", backgroundRepeat: "background-repeat", "background-repeat": "background-repeat", border: "border", borderColor: "border-color", "border-color": "border-color", borderStyle: "border-style", "border-style": "border-style", borderThickness: "border-thickness", "border-thickness": "border-thickness", borderTop: "border-top", "border-top": "border-top", borderTopColor: "border-top-color", "border-top-color": "border-top-color", borderTopStyle: "border-top-style", "border-top-style": "border-top-style", borderTopThickness: "border-top-thickness", "border-top-thickness": "border-top-thickness", borderRight: "border-right", "border-right": "border-right", borderRightColor: "border-right-color", "border-right-color": "border-right-color", borderRightStyle: "border-right-style", "border-right-style": "border-right-style", borderRightThickness: "border-right-thickness", "border-right-thickness": "border-right-thickness", borderBottom: "border-bottom", "border-bottom": "border-bottom", borderBottomColor: "border-bottom-color", "border-bottom-color": "border-bottom-color", borderBottomStyle: "border-bottom-style", "border-bottom-style": "border-bottom-style", borderBottomThickness: "border-bottom-thickness", "border-bottom-thickness": "border-bottom-thickness", borderLeft: "border-left", "border-left": "border-left", borderLeftColor: "border-left-color", "border-left-color": "border-left-color", borderLeftStyle: "border-left-style", "border-left-Style": "border-left-style", borderLeftThickness: "border-left-thickness", "border-left-thickness": "border-left-thickness" }, t.chartPaletteStr = se, t.normalizeAngle = function(e, t) { var r = t ? 360 : oe,
                    n = (e || 0) % r; return n < 0 ? r + n : n }, t.MathExt = ie, t.xssEncode = function(e) { var t = e; return null == t || "function" != typeof t.toString ? "" : t = t.toString().replace(/&/g, "&amp;").replace(/\'/g, "&#39;").replace(/\"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;") }, t.isXSSSafe = function(e, t) { return (!t || null === R.exec(e)) && null === O.exec(e) }, t.domInsertModes = { REPLACE: "replace", APPEND: "append", PREPEND: "prepend" }, t.defaultGaugePaletteOptions = ae, t.txtLabel = Z, t.hasTouch = J, t.touchEnabled = K, t.mathRound = Y, t.mathAbs = X, t.validhexcolor = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i, t.cleanColorCode = W, t.startsRGBA = U, t.dropHash = z, t.TXT_REGEX = H, t.visibleStr = "visible", t.hiddenStr = "hidden", t.animationObjStr = "animationObj", t.configStr = "config", t.lineHeightFactor = 1.2, t.CLICK_THRESHOLD_PIXELS = 5, t.TOUCH_THRESHOLD_PIXELS = 15, t.canvasBorderColorStr = "canvasBorderColor", t.TXT_STRING = j, t.TXT_HREF = V, t.FIT = "fit", t.FILL = "fill", t.TILE = "tile", t.HAND = "pointer", t.POINTER = "pointer", t.BOLD = "bold", t.NORMAL = "normal", t.UNDERSCORE = "_", t.ROUND = "round", t.canvasBGAlphaStr = "canvasBgAlpha", t.TEXTANCHOR = "text-anchor", t.COMMASPACE = ", ", t.PXSTRING = "px", t.VISIBLE = "visible", t.INITIALSTR = "initial", t.FINALSTR = "final", t.HUNDREDSTRING = "100", t.SHAPE_RECT = "rect", t.FC_CONFIG_STRING = "_FCconf", t.POSITION_END = "end", t.POSITION_START = "start", t.MIDDLESTR = t.POSITION_MIDDLE = "middle", t.POSITION_BOTTOM = "bottom", t.POSITION_TOP = "top", t.STRINGUNDEFINED = "undefined", t.DECIMALSTRING = ".", t.ONESTRING = "1", t.TESTSTR = "Ag", t.MOUSEMOVE = "fc-mousemove", t.MOUSEOUT = "fc-mouseout", t.ZEROSTRING = "0", t.COMMA = ",", t.COMMASTRING = ",", t.BLANKSTRING = "", t.BLANK = "", t.OBJECTSTRING = "object", t.STRINGSTRING = "string", t.BREAKSTRING = "<br />", t.HASHSTRING = "#", t.COLOR_TRANSPARENT = "rgba(0,0,0,0)", t.COLOR_WHITE = "FFFFFF", t.COLOR_GLASS = "rgba(255, 255, 255, 0.3)", t.COLOR_BLACK = "000000", t.SAMPLESTRING = "Ay0", t.BLANKSTRINGPLACEHOLDER = "#BLANK#", t.UNDEF = u, t.POSITION_CENTER = "center", t.POSITION_LEFT = "left", t.POSITION_RIGHT = "right", t.POSITION_ABSOLUTE = "absolute", t.TRACKER_FILL = P, t.attrTypeBool = 2, t.attrTypeNum = 1, t.DEFAULT_FT_FONT = "Helvetica, Arial, sans-serif", t.isIpad = L, t.isEdge = I, t.isIE = F, t.isIE11 = D, t.hasSVG = N, t.isFirefox = A, t.isIE9 = E, t.getEmptyConstractor = function() { return S }, t.stubFN = S, t.DASH_DEF = "none", t.BGRATIOSTRING = void 0;
            t.isSimilarObject = function(e, t) { if (Object.keys(e).length !== Object.keys(t).length) return !1; var r; for (r in e)
                    if (e[r] !== t[r]) return !1; return !0 }, t.snapPoint = function(e, t, r) { for (var n = t.length, a = r.lastSnap, i = 1, o = n, s = r.config.setValue; o--;)
                    if (X(t[o] - s) < e.snapPixel) { a !== o && (r.lastSnap = e.datasetConf.snapToDivOnly ? u : o, s = t[o]), i = 0; break } return i && (r.lastSnap = u), s }, t.datasetFactory = function(e, t, r, n, a, i) { if (void 0 === n && (n = 1), void 0 === i && (i = []), e && t && r) { var o, s, l, c = e.getChildren(r) || []; for (o = 0; o < n; o += 1) c && c[o] && !c[o].getState("removed") ? l = c[o] : (l = new t, e.attachChild(l, r)), l.config._childIndex = o, l.setState("_total", n), l.setJSONIndex && l.setJSONIndex(i[o] || o), a && a.length > o && l.configure && l.configure(a[o]); if (o < (s = c && c.length))
                        for (; o < s; o += 1) c[o] && c[o].remove && c[o].remove() } }, t.componentFactory = function(e, t, r, n, a) { if (void 0 === n && (n = 1), e && t && r) { var i, o, s, l = e.getChildren(r) || []; for (i = 0; i < n; i += 1) l && l[i] && !l[i].getState("removed") ? s = l[i] : (s = new t, e.attachChild(s, r)), a && a.length > i && s.configure && s.configure(a[i]); if (i < (o = l && l.length))
                        for (; i < o; i += 1) l[i] && l[i].remove && l[i].remove() } } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.parseConfiguration = function(e, r, i, o, s, l) { var c, u, d, f = 1,
                    h = o,
                    g = l,
                    p = s; for (c in t.attribDefs = n = n || a, h = h || a, g = g || a, p = p || {}, e)
                    if (!h[c] && ((u = e[c]) || !1 === u || 0 === u)) switch ((d = g[c] || n[c]) && d.type) {
                        case 1:
                            u = Number(u), isNaN(u) || (r[c] = u); break;
                        case 2:
                            u = Number(u), isNaN(u) || (r[c] = !!u); break;
                        default:
                            r[c] = u }
                if (i)
                    for (c in r) void 0 === r[c] && (d = g[c] || n[c]) && d.pAttr && (r[c] = i[d.pAttr]); for (; f;)
                    for (c in f = 0, r) void 0 === r[c] && (d = g[c] || n[c]) && (d.attr ? void 0 !== (u = r[d.attr]) && (r[c] = u, f += 1) : d.parser && void 0 !== (u = d.parser(r, i, p)) && (r[c] = u, f += 1)) }, t.setAttribDefs = function(e, r) { var a, i;
                t.attribDefs = n = n || {}, "string" == typeof e ? (a = {})[e] = r : a = e; for (i in a) n[i] || (n[i] = a[i]) }, t.hasAttribDefs = function(e) { return !!n[e] }, t.attribDefs = void 0; var n, a = {},
                i = Math.max;
            t.attribDefs = n, t.attribDefs = n = { setBorderWidth: { type: 1, pAttr: "plotborderthickness" }, plotborderthickness: { type: 1, pAttr: "plotborderthickness" }, showBorderEffect: { parser: function() { var e = arguments[1],
                            t = .1; return 1 == +e.showplotborder && e.plotborderthickness === t ? 1 : 0 } }, alphaanimation: { type: 1 }, showplotborder: { type: 1, pAttr: "showplotborder" }, zeroplanethickness: { type: 1 }, showzeroplaneontop: { type: 1 }, stickytracking: { type: 1 }, usemessagelog: { type: 1 }, showtooltip: { type: 1, pAttr: "showtooltip" }, seriesnameintooltip: { type: 1 }, plothovereffect: { type: 1, attr: "anchorhovereffect" }, anchorhovereffect: { type: 1, attr: "showhovereffect" }, showhovereffect: { type: 1 }, linethickness: { type: 1, pAttr: "linethickness" }, dashed: { type: 1, pAttr: "linedashed" }, linedashed: { type: 1, attr: "plotborderdashed" }, plotborderdashed: { type: 1, pAttr: "plotborderdashed" }, linedashlen: { type: 1, pAttr: "linedashlen" }, linedashgap: { type: 1, pAttr: "linedashgap" }, anchoralpha: { pAttr: "anchoralpha" }, anchorsides: { type: 1, pAttr: "anchorsides" }, anchorradius: { type: 1, pAttr: "anchorradius" }, anchorbgalpha: { pAttr: "anchorbgalpha" }, anchorbgcolor: { pAttr: "anchorbgcolor" }, anchorbordercolor: { pAttr: "anchorbordercolor" }, anchorstartangle: { type: 1, pAttr: "anchorstartangle" }, anchorimageurl: { pAttr: "anchorimageurl" }, anchorimagescale: { type: 1, pAttr: "anchorimagescale" }, anchorimagealpha: { pAttr: "anchorimagealpha" }, anchorimagepadding: { type: 1, pAttr: "anchorimagepadding" }, anchorborderthickness: { type: 1, pAttr: "anchorborderthickness" }, anchorshadow: { type: 1, pAttr: "anchorshadow" }, valuepadding: { type: 1, pAttr: "valuepadding" }, valueposition: { pAttr: "valueposition" }, plotfillangle: { type: 1, pAttr: "plotfillangle" }, useplotgradientcolor: { type: 1 }, rotatevalues: { type: 1, pAttr: "rotatevalues" }, includeinlegend: { type: 1 }, connectnulldata: { type: 1 }, plotfillalpha: { pAttr: "plotfillalpha" }, alpha: { pAttr: "linealpha" }, linealpha: { pAttr: "plotfillalpha" }, showvalues: { type: 1, pAttr: "showvalues" }, showpercentvalues: { type: 1, parser: function(e) { return e.isstacked && e.stack100percent ? 1 : 0 } }, showpercentintooltip: { type: 1, parser: function(e) { return e.isstacked && e.stack100percent ? 1 : 0 } }, stack100percent: { type: 1, attr: "usepercentdistribution" }, drawfullareaborder: { type: 1 }, use3dlineshift: { type: 1 }, parentyaxis: { type: 1 }, radarborderthickness: { type: 1 }, radarborderradius: { type: 1 }, gaugeoriginx: { type: 1 }, hasgaugeoriginx: { attr: "gaugeoriginx" }, gaugeoriginy: { type: 1 }, hasgaugeoriginy: { attr: "gaugeoriginy" }, gaugeradius: { type: 1 }, hasgaugeradius: { attr: "gaugeradius" }, showgaugeborder: { type: 1 }, setAdaptiveMin: { type: 1 }, adjustDiv: { type: 1 }, axisNameWidth: { type: 1 }, rotateAxisName: { type: 1 }, useEllipsesWhenOverflow: { type: 1 }, showZeroPlane: { type: 1 }, zeroPlaneAlpha: { type: 1 }, showZeroPlaneValue: { type: 1 }, zeroPlaneOnTop: { type: 1 }, trendlineThickness: { type: 1 }, showTrendlinesOnTop: { type: 1 }, trendlinesAreDashed: { type: 1 }, trendlinesDashLen: { type: 1 }, trendlinesDashGap: { type: 1 }, showTrendlines: { type: 1 }, showTrendlineLabels: { type: 1 }, showLabels: { type: 1 }, rotateLabels: { type: 1 }, slantLabel: { type: 1 }, showAxisValues: { type: 1 }, showTooltip: { type: 1 }, maxLabelHeight: { type: 1 }, useroundedges: { type: 1, pAttr: "useroundedges" }, placevaluesinside: { type: 1 }, plotpaddingpercent: { type: 1 }, use3dlighting: { type: 1, pAttr: "use3dlighting" }, usedataplotcolorforlabels: { type: 1 }, plotspacepercent: { type: 1, parser: function(e) { return i(e.plotspacepercent % 100, 0) } }, ratio: { pAttr: "plotfillratio" }, base: { type: 1 }, showMinorDivLineValues: { type: 1 }, numMinorDivLines: { type: 1 }, majorTMNumber: { type: 1 }, majorTMHeight: { type: 1 }, showTickMarks: { type: 1 }, majorTMThickness: { type: 1 }, adjustTM: { type: 2 }, minorTMNumber: { type: 1 }, minorTMThickness: { type: 1 }, tickMarkDistance: { type: 1 }, placeTicksInside: { type: 1 }, placeValuesInside: { type: 1 }, axisValuePadding: { type: 1 }, gridLineWidth: { type: 1 }, showRadarBorder: { type: 1 }, radarBorderThickness: { type: 1 }, maxcolwidth: { type: 1, parser: function(e) { return Math.abs(e.maxcolwidth) } }, maxbarheight: { type: 1, parser: function(e) { return Math.abs(e.maxbarheight) } }, plotborderalpha: { parser: function(e, t) { return t.plotborderalpha || e.plotfillalpha } }, autoscale: { type: 1 }, plotborderdashlen: { type: 1, pAttr: "plotborderdashlen" }, plotborderdashgap: { type: 1, pAttr: "plotborderdashgap" }, plotfillratio: { pAttr: "plotfillratio" }, drawverticaljoins: { type: 1, pAttr: "drawverticaljoins" }, useforwardsteps: { type: 1, pAttr: "useforwardsteps" }, minimizetendency: { type: 1 }, usepercentdistribution: { type: 1 }, stepatmiddle: { type: 1 } } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a, i, o, s = n(r(218)),
                l = window,
                c = l.document,
                u = "ontouchstart" in l,
                d = "click",
                f = "touchstart",
                h = "touchend",
                g = "touchmove",
                p = "mouseout",
                m = "mouseover",
                v = "keydown",
                b = ((o = {}).pointerdrag = { start: ["mousedown"], end: ["mouseup"], onStart: ["mousemove"], postHandlers: {}, preHandlers: {} }, o.pointerhover = { start: [m], end: [p] }, o.click = { start: [d] }, o.escape = { start: [v], preHandlers: { start: function(e) { var t = e || l.event; return !(!t.keyCode || 27 !== t.keyCode) } } }, u && ((i = o.pointerdrag).start.push(f), i.end.push(h), i.onStart.push(g), i.postHandlers.onStart = function(e) { e.preventDefault ? e.preventDefault() : e.returnValue = !1 }), o);
            a = (0, s["default"])({}, b); var y = new function() { var e = {},
                    t = {},
                    r = c.addEventListener ? function(e, t, r) { e.addEventListener(t, r, !1) } : function(e, t, r) { e.attachEvent("on" + t, r) },
                    n = c.removeEventListener ? function(e, t, r) { e.removeEventListener(t, r, !1) } : function(e, t, r) { e.detachEvent("on" + t, r) },
                    i = function(e, t, a, i) { var o = i || "closure"; return r(e, t, a[o]),
                            function() { n(e, t, a[o]) } },
                    o = function(e, t, r) { var n, o, s, c, u = []; if (c = a[t], r.start = function(t) { for (var n = c.onStart, a = c.end, o = [], s = [], u = n && n.length || 0, d = t || l.event; u--;) o.push(i(e, n[u], r, "onStart")); for (u = a && a.length || 0; u--;) s.push(i(e, a[u], r, "end"));
                                r.startUn = r.startUn ? r.startUn.concat(o) : o, r.endUn = r.endUn ? r.endUn.concat(s) : s, r.state = "start", r.closure(d) }, r.onStart = function(e) { var t = e || l.event;
                                r.state = "on", r.gDef && r.gDef.preHandlers && "function" == typeof r.gDef.preHandlers.onStart && r.gDef.preHandlers.onStart(t), r.closure(t), r.gDef && r.gDef.postHandlers && "function" == typeof r.gDef.postHandlers.onStart && r.gDef.postHandlers.onStart(t) }, r.end = function(e) { for (var t = r.startUn, n = r.endUn, a = t && t.length || 0, i = e || l.event; a--;) t[a](); for (delete r.startUn, r.startUn = [], a = n && n.length || 0; a--;) n[a]();
                                delete r.endUn, r.endUn = [], r.state = "end", r.closure(i) }, c)
                            for (s = (n = c.start).length; s--;)(o = n[s]) && u.push(i(e, o, r, "start")); return u },
                    u = function(e, t, r) { var i, o, s, l; if (l = a[t])
                            for (s = (i = l.start).length; s--;)(o = i[s]) && n(e, o, r.start) },
                    d = function(e) { return function(t) { var r = e.context || e.elem,
                                n = t.originalEvent || t;
                            n = n || l.event, e.handler.call(r, { data: e.data, type: e.type, state: e.state, isGesture: e.isGesture, target: n.target || n.srcElement, originalEvent: n }) } }; return { listen: function(r, n, s, l, u) { var f, h, g, p, m, v = this,
                            b = "string" == typeof n ? n.split(" ") : n,
                            y = b.length,
                            x = [],
                            w = function(e, t, r) { x.push((function() { v.unlisten(e, t, r) })) }; if (r.ownerDocument && r.ownerDocument === c)
                            for (; y--;) h = b[y], p = Boolean(a[h]), (g = { handler: m = "function" == typeof s ? s : s[y], elem: r, type: h, isGesture: p, gDef: p ? a[h] : null, data: l, context: u, start: [], end: [], links: { prev: null, next: null } }).closure = d(g), p ? ((f = t[h]) || (f = t[h] = []), f.push(g), o(r, h, g)) : ((f = e[h]) || (f = e[h] = []), f.push(g), i(r, h, g)), w(r, h, m);
                        else
                            for (; y--;) h = b[y], (g = { handler: m = "function" == typeof s ? s : s[y], elem: r, type: h, isGesture: p, data: l, context: u, start: [], end: [], links: { prev: null, next: null } }).closure = d(g), (f = e[h]) || (f = e[h] = []), f.push(g), i(r, h, g), w(r, h, m); return { unlisten: function() { for (var e = x.length; e--;) x[e]();
                                x.length = 0, x = null } } }, unlisten: function(r, i, o) { var s, l, c, d = !1; if (Boolean(a[i]))
                            for (l = (s = t[i]) && s.length || 0; l--;)(c = s[l]).handler === o && c.elem === r && (u(r, i, c), s.splice(l, 1), d = !0);
                        else
                            for (l = (s = e[i]) && s.length || 0; l--;)(c = s[l]).handler === o && c.elem === r && (n(r, i, c.closure), s.splice(l, 1), d = !0); return d }, fire: function(t, r, n, a) { var i, o, l, u; if (t.ownerDocument && t.ownerDocument === c) c.createEvent ? ((u = c.createEvent("HTMLEvents")).initEvent(r, !0, !0), n && n.originalEvent && (n.originalEvent = u), "function" == typeof t[r] && t[r](), t.dispatchEvent(u), a && !u.returnValue && a(u)) : ((u = c.createEventObject()).eventType = r, n && (n.originalEvent ? n.originalEvent = u : (0, s["default"])(u, n)), "function" == typeof t[r] && t[r](), t.fireEvent("on" + r, u), a && !u.returnValue && a(u));
                        else
                            for (o = (i = e[r]) && i.length || 0; o--;)(l = i[o]).elem === t && l.closure(n) } } };
            t["default"] = y }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e, t, r, n) { var a; if ("object" != typeof e && "object" != typeof t) return null; if ("object" != typeof t || null === t) return e;
                void 0 === e && (e = t instanceof Array ? [] : {}); if (n)
                    for (a in t) e[a] = t[a];
                else i(e, t, r); return e }, t.cacher = t.showRecursively = t.loadRefImage = t.dashedAttr2CSSMap = t.getArrayCopy = t.merge = void 0; var n = function(e, t) { for (var r = t.length, n = -1; r--;)
                        if (e === t[r]) return n = r; return n },
                a = function(e) { var t, r, n; for (t = 0, r = e.length, n = new Array(r); t < r; t++) n[t] = e[t]; return n },
                i = function o(e, t, r, a, i) { var s, l, c, u, d; if (i ? (a.push(e), i.push(t)) : (a = [e], i = [t]), t instanceof Array)
                        for (s = 0; s < t.length; s += 1) { try { l = e[s], c = t[s] } catch (f) { continue } "object" != typeof c ? r && void 0 === c || (e[s] = c) : (null !== l && "object" == typeof l || (l = e[s] = c instanceof Array ? [] : {}), -1 !== (d = n(c, i)) ? l = e[s] = a[d] : o(l, c, r, a, i)) } else
                            for (s in t) { try { l = e[s], c = t[s] } catch (f) { continue } null !== c && "object" == typeof c ? "[object Object]" === (u = Object.prototype.toString.call(c)) ? (null !== l && "object" == typeof l || (l = e[s] = {}), -1 !== (d = n(c, i)) ? l = e[s] = a[d] : o(l, c, r, a, i)) : "[object Array]" === u ? (null !== l && l instanceof Array || (l = e[s] = []), -1 !== (d = n(c, i)) ? l = e[s] = a[d] : o(l, c, r, a, i)) : e[s] = c : e[s] = c }
                    return e };
            t.merge = i, t.getArrayCopy = a, t.showRecursively = function(e) { for (var t = {}, r = e, n = t; r;) r.node && r.node.style && "none" === r.node.style.display && (r.show(), n._doHide = !0), r = r.parent, n.parent = {}, n = n.parent; return function() { for (var r = e, n = t; r;) n._doHide && r.hide(), r = r.parent, n = n.parent } }, t.loadRefImage = function(e, t) { var r = t.src,
                    n = e._.RefImg;
                n || (n = e._.RefImg = new Image), t.src !== undefined && (n.src = r, e._.RefImg = n) }, t.dashedAttr2CSSMap = { "font-family": "fontFamily", "font-size": "fontSize", "text-anchor": "textAnchor", "font-weight": "fontWeight", "letter-spacing": "letterSpacing", "font-style": "fontStyle" };
            t.cacher = function(e, t, r, n, i, o, s) { var l = o || {},
                    c = 0; return l.__start === undefined && (l.__start = null), l.__end === undefined && (l.__end = null), i = i || 1e3, n = n || "item",
                    function(o) { var u, d, f, h = s ? o : a(arguments).join("␀"); return (u = l[h = "" === h ? "__blank" : h]) ? u.__prev && (l[u.__prev].__next = u.__next, u.__next ? u.__next.__prev = u.__prev : l.__end = u.__prev) : (u = l[h] = {}, e && (l[h][n] = r ? r(e.apply(t, arguments)) : e.apply(t, arguments)), null === l.__end && (l.__end = h), ++c > i && l.__end && (d = l[l.__end], l[d.__prev].__next = null, delete l[l.__end], l.__end = d.__prev, c--)), (f = l.__start) !== u && (u.__prev = null, u.__next = f, f && (f.__prev = h), l.__start = u), l[h][n] } } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.convertColor = function(e, t, r) { var n, a, i = 0,
                    o = 0,
                    s = 0,
                    l = t;
                r && r.match(u) && (a = r.split(","), i = a[0].slice(a[0].indexOf("(") + 1), o = a[1], s = a[2], l || 0 === l || (l = parseInt(100 * a[3].slice(0, a[3].indexOf(")")), 10))); if (e)
                    if (e.match(u)) a = e.split(","), i = a[0].slice(a[0].indexOf("(") + 1), o = a[1], s = a[2];
                    else { switch ((n = e.replace(d, "").split(",")[0]).length) {
                            case 3:
                                n = n.charAt(0) + n.charAt(0) + n.charAt(1) + n.charAt(1) + n.charAt(2) + n.charAt(2); break;
                            case 6:
                                break;
                            default:
                                n = (n + "FFFFFF").slice(0, 6) } i = parseInt(n.slice(0, 2), 16) || 0, o = parseInt(n.slice(2, 4), 16) || 0, s = parseInt(n.slice(4, 6), 16) || 0 } l || 0 === l || (l = 100); "string" == typeof l && (l = l.split(",")[0]); return l = parseInt(l, 10) / 100, "rgba(" + i + "," + o + "," + s + "," + l + ")" }, t.getDarkColor = m, t.getLightColor = v, t.mapSymbolName = function(e, t) { var r = n,
                    o = e;
                (o = f(o)) >= 3 && (r = (t ? i : a) + o); return r }, t.getColumnColor = function(e, t, r, n, a, i, o, s, l) { var c, u, d, f, h, g, b, y = e,
                    x = t;
                u = y.split(","), d = x.split(","), f = i.split(","), b = o.split(","), y = y.replace(/\s/g, "").replace(/\,$/, ""), l ? c = { FCcolor: { color: u[0], alpha: d[0] } } : a ? (h = u[0], g = d[0], c = { FCcolor: { color: m(h, 75) + "," + v(h, 10) + "," + m(h, 90) + "," + v(h, 55) + "," + m(h, 80), alpha: g + "," + g + "," + g + "," + g + "," + g, ratio: "0,11,14,57,18", angle: s ? "90" : "0" } }, f = [m(h, 70)]) : (x = function(e, t, r) { var n, a = e.split(","),
                        i = r;
                    void 0 !== i && (i = Number(i.split(",")[0])); for (i = isNaN(i) ? void 0 : i, a[0] = p(a[0], i), n = 1; n < t; n += 1) a[n] = a[0] * p(a[n], i) / 100; return a.join(",") }(x, u.length), c = { FCcolor: { color: y, alpha: x, ratio: r, angle: s ? -n : n } }); return [c, { FCcolor: { color: f[0], alpha: b[0] } }] }, t.getPointColor = function(e, t) { var r = h(e),
                    n = g(t); return { FCcolor: { gradientUnits: "objectBoundingBox", cx: .4, cy: .4, r: "100%", color: v(r, 70) + "," + m(r, 50), alpha: n + "," + n, ratio: void 0, radialGradient: !0 } } }, t.getAngle = function(e, t, r) { var n = 180 * Math.atan(t / e) / Math.PI;
                2 === r ? n = 180 - n : 3 === r ? n += 180 : 4 === r && (n = 360 - n); return n }, t.parseColor = b, t.getValidColor = function(e) { return c.test(b(e)) && e }, t.RGBtoHex = function(e) { return ("000000" + (e[0] << 16 | e[1] << 8 | e[2]).toString(16)).slice(-6) }, t.rawRGBtoHEX = function(e) { var t; return ("000000" + ((t = e.match(/[\d+]+/g).splice(0, 3))[0] << 16 | t[1] << 8 | t[2]).toString(16)).slice(-6) }, t.HEXtoRGB = function(e) { var t = parseInt(e, 16),
                    r = Math.floor(t / 65536),
                    n = Math.floor((t - 65536 * r) / 256),
                    a = Math.floor(t - 65536 * r - 256 * n); return [r, n, a] }, t.parsePointValue = f, t.getFirstColor = h, t.getFirstAlpha = g; var n = "circle",
                a = "poly_",
                i = "spoke_",
                o = Math.abs,
                s = /\s+/g,
                l = /^#?/,
                c = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,
                u = /^rgba/i,
                d = /[#\s]/gi;

            function f(e, t) { var r = e; return r = r || !1 === r || 0 === r ? Number(r) : NaN, isNaN(r) ? null : t ? o(r) : r }

            function h(e, t) { var r = e; return "" === (r = (r = r.split(",")[t || 0]).replace(s, "")) && (r = "000000"), r.replace(l, "#") }

            function g(e) { var t = e; return t = parseInt(t, 10), (isNaN(t) || t > 100 || t < 0) && (t = 100), t }

            function p(e, t) { var r = e; return r = Number(r), r = isNaN(r) ? 100 : r, void 0 !== t && (r = r * t / 100), r % 101 }

            function m(e, t) { var r = e,
                    n = t;
                n = n < 0 || n > 100 ? 100 : n, n /= 100, r = r.replace(d, ""); var a = parseInt(r, 16),
                    i = Math.floor(a / 65536),
                    o = Math.floor((a - 65536 * i) / 256); return ("000000" + (i * n << 16 | o * n << 8 | (a - 65536 * i - 256 * o) * n).toString(16)).slice(-6) }

            function v(e, t) { var r = e,
                    n = t;
                n = n < 0 || n > 100 ? 100 : n, n /= 100, r = r.replace(d, ""); var a = parseInt(r, 16),
                    i = Math.floor(a / 65536),
                    o = Math.floor((a - 65536 * i) / 256); return ("000000" + (256 - (256 - i) * n << 16 | 256 - (256 - o) * n << 8 | 256 - (256 - (a - 65536 * i - 256 * o)) * n).toString(16)).slice(-6) }

            function b(e) { return e.replace(d, "").replace(l, "#") } }, function(e, t, r) { "use strict";

            function n(e, t, r, n, a, i, o) { var s = {}; switch (t) {
                    case "top":
                        s.y = e; break;
                    case "bottom":
                        s.y = o - a - e; break;
                    case "middle":
                        s.y = (o - a) / 2 } switch (r) {
                    case "left":
                        s.x = e; break;
                    case "right":
                        s.x = i - n - e; break;
                    case "middle":
                        s.x = (i - n) / 2 } return s } t.__esModule = !0, t.getAlignImage = function(e, t, r, a, i, o, s, l, c, u) { var d, f, h, g, p = {}; switch (r) {
                    case "center":
                        p.width = a, p.height = i, p.y = s / 2 - i / 2, p.x = o / 2 - a / 2; break;
                    case "stretch":
                        p.width = o - 2 * l, p.height = s - 2 * l, p.y = l, p.x = l; break;
                    case "tile":
                        p.width = a, p.height = i, p.tileInfo = {}, p.tileInfo.xCount = f = Math.ceil(c / a), p.tileInfo.yCount = h = Math.ceil(u / i), g = n(l, e, t, a * f, i * h, o, s), p.y = g.y, p.x = g.x; break;
                    case "fit":
                        d = a / i > c / u ? c / a : u / i, p.width = a * d, p.height = i * d, g = n(l, e, t, p.width, p.height, o, s), p.y = g.y, p.x = g.x; break;
                    case "fill":
                        d = a / i > c / u ? u / i : c / a, p.width = a * d, p.height = i * d, g = n(l, e, t, p.width, p.height, o, s), p.y = g.y, p.x = g.x; break;
                    default:
                        g = n(l, e, t, a, i, o, s), p.width = a, p.height = i, p.y = g.y, p.x = g.x } return p } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function() { var e, t, r; for (t = 0, r = arguments.length; t < r; t += 1)
                    if (((e = arguments[t]) || !1 === e || 0 === e) && !isNaN(e = Number(e))) return e; return } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.setRootSender = t.raiseEventGroup = t.raiseError = t.raiseWarning = t.disposeEvents = t.getListeners = t.triggerEvent = t.removeListener = t.addListener = void 0; var n = {},
                a = {},
                i = function(e, t, r, n) { try { e[0].call(t, r, n || {}) } catch (a) { setTimeout((function() { throw a }), 0) } },
                o = function(e, t, r) { var n, o = 0; if (e instanceof Array && !t.cancelled)
                        for (; o < e.length; o += 1)
                            if (!0 !== e[o].removed) { if (e[o][1] !== t.sender && void 0 !== e[o][1] || (n = e[o][1] === t.sender ? t.sender : a, i(e[o], n, t, r), !0 === t.detached && (e.splice(o, 1), o -= 1, t.detached = !1)), !0 === t.cancelled) break } else e.splice(o, 1), o -= 1 },
                s = function() { this.originalEvent && this.originalEvent.stopPropagation && this.originalEvent.stopPropagation.call && this.originalEvent.stopPropagation() },
                l = function() { this.cancelled = !0, this.originalEvent && this.originalEvent.stopImmediatePropagation && this.originalEvent.stopImmediatePropagation.call ? this.originalEvent.stopImmediatePropagation() : this.originalEvent && this.originalEvent.stopPropagation && this.originalEvent.stopPropagation.call && this.originalEvent.stopPropagation() },
                c = function() { return !1 == (this.detached = !0) },
                u = function() { this.defaultPrevented = !0, this.originalEvent && this.originalEvent.preventDefault && this.originalEvent.preventDefault.call && this.originalEvent.preventDefault() },
                d = {},
                f = 0,
                h = function(e, t, r, n, a, i) { if (!t || !t.disposed) { var h, p, m, v, b, y = e; return y = y.toLowerCase(), p = g(y, t), m = g("*", t), v = d[y], b = d["*"], (p && p.length || m && m.length || v && v.length || b && b.length) && (h = { type: y, eventType: y, eventId: f += 1, sender: t || new Error("Orphan Event"), stopPropagation: s, stopImmediatePropagation: l, cancelled: !1, preventDefault: u, defaultPrevented: !1, originalEvent: n, detached: !1, data: r, detachHandler: c }, o(b, h, r), o(v, h, r), t && (o(g("*", t), h, r), o(g(y, t), h, r))), h && h.defaultPrevented ? i && "function" == typeof i && i.call(t, h, r || {}) : a && "function" == typeof a && a.call(t, h, r || {}), !0 } },
                g = function(e, t) { var r = e; if ("string" == typeof r) return r = r.toLowerCase(), t ? t._evtListeners && t._evtListeners[r] : d[r];
                    v(t, "03091559", "param", "::removeListener", new Error("Unspecified Event Type")) },
                p = { type: "TypeException", range: "ValueRangeException", impl: "NotImplementedException", param: "ParameterException", run: "RuntimeException", comp: "DesignTimeError", undefined: "UnspecifiedException" },
                m = function(e, t, r, n, a, i) { var o = "#" + t + " " + (e ? e.id : "unknown-source") + n + " " + i + " >> ";
                    a instanceof Error ? (a.name = p[r], a.module = "FusionCharts" + n, a.level = i, a.message = o + a.message, o = a.message, setTimeout((function() { throw a }), 0)) : o += a, h(i, e, { id: t, nature: p[r], source: "FusionCharts" + n, message: o }) },
                v = function(e, t, r, n, a) { m(e, t, r, n, a, "Error") };
            t.setRootSender = function(e) { void 0 === e && (e = {}), a = e }, t.raiseEventGroup = function(e, t, r, a, i, o, s) { var l = a.id,
                    c = e + l;
                n[c] ? (clearTimeout(n[c]), delete n[c]) : l && c ? n[c] = setTimeout((function() { h(t, a, r, i, o, s), delete n[c] }), 0) : h(t, a, r, i, o, s) }, t.raiseWarning = function(e, t, r, n, a) { m(e, t, r, n, a, "Warning") }, t.raiseError = v, t.disposeEvents = function(e) { var t, r = e ? e._evtListeners : d; for (t in r) r[t].length && (r[t].length = 0) }, t.getListeners = g, t.triggerEvent = h, t.removeListener = function b(e, t, r) { var n, a; if ("function" == typeof t) { if (e instanceof Array)
                        for (a = 0; a < e.length; a += 1) b(e[a], t, r);
                    else if ((n = g(e, r)) instanceof Array && n.length)
                        for (a = n.length - 1; a >= 0; a -= 1) n[a][0] === t && n[a][1] === r && (n[a].removed = !0) } else v(r, "03091560", "param", "::removeListener", new Error("Invalid Event Listener")) }, t.addListener = function y(e, t, r, n) { var a, i, o, s = e; if (s instanceof Array) { for (a = [], i = 0; i < s.length; i += 1) a.push(y(s[i], t, r)); return a } if ("string" == typeof s) { if ("function" == typeof t) return s = s.toLowerCase(), r ? (r._evtListeners || (r._evtListeners = {}), r._evtListeners[s] instanceof Array || (r._evtListeners[s] = []), o = r._evtListeners[s]) : (d[s] instanceof Array || (d[s] = []), o = d[s]), ! function(e, t, r) { var n, a = e.length; for (n = 0; n < a; n += 1)
                            if (e[n][0] === t && e[n][1] === r && !e[n].removed) return !0 }(o, t, r) && (n && n.priority ? o.unshift([t, r]) : o.push([t, r]), t);
                    v(r, "03091550", "param", "::addListener", new Error("Invalid Event Listener")) } else v(r, "03091549", "param", "::addListener", new Error("Unspecified Event Type")) } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.addDep = function() { for (var e = this, t = arguments.length, r = new Array(t), c = 0; c < t; c++) r[c] = arguments[c]; if (!r.length) return void(0, n.raiseError)({ id: "Extension" }, "90211", "dependency", "Extension", new Error("A FusionCharts extension must have a valid extension property."));
                r.forEach((function(t) { var r, c, u, d, f;
                    t ? (c = t.extension ? t.extension : t, r = o(t), u = s(t), f = t.requiresFusionCharts, u ? (!a[u] && l(u), (d = a[u][r] !== c) && (a[u][r] = c)) : r && (d = i[r] !== c) && (i[r] = c), d && (0, n.triggerEvent)("dependencyadded", e, { name: r, type: u }), d && f && c(e)) : (0, n.raiseError)({ id: "Extension" }, "90211", "dependency", "Extension", new Error("A FusionCharts extension must have a valid extension property.")) })) }, t.getDep = function(e, t) { var r, n = e && e.toLowerCase(); if (t && a[t]) return a[t][n]; if (!t)
                    for (var o in a)
                        if (a.hasOwnProperty(o) && (r = a[o][n])) return r; return i[n] }, t.getDepsByType = function(e) { void 0 === e && (e = ""); return "" === e ? a : a[e.toLowerCase()] }; var n = r(222),
                a = {},
                i = {};

            function o(e) { void 0 === e && (e = {}); var t = e.getName && e.getName() || e.name; return void 0 === t && (0, n.raiseError)({ id: "Extension" }, "90211", "extension", "Name", new Error("A FusionCharts extension must have a getName API or a name property.")), t && t.toLowerCase() }

            function s(e) { void 0 === e && (e = {}); var t = e.getType && e.getType() || e.type; return t && t.toLowerCase() }

            function l(e) { "string" == typeof e && (a[e] = {}) } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.onDataUpdateSuccess = function(e, t) { var r = e.sender,
                    a = r.__state;
                a.dataReady = void 0, a.dataAvailable = !0, !0 !== t.silent ? !0 !== r.options.safeMode || !0 !== a.rendering || r.isActive() ? delete a.args : (a.updatePending = t, (0, n.raiseWarning)(r, "23091255", "run", "::DataHandler~update", "Renderer update was postponed due to async loading.")) : r.options.dataSource = t.data;
                (0, n.triggerEvent)("dataUpdated", r, t, void 0, t.successcallback) }, t.onDataUpdateCancel = function(e, t) {
                (0, n.triggerEvent)("dataUpdateCancelled", e.sender, t, void 0, t.failurecallback) }; var n = r(222) }, function(e, t, r) { "use strict";

            function n(e) { delete e.sender.jsVars._reflowData, e.sender.jsVars._reflowData = {}, delete e.sender.jsVars._reflowClean } t.__esModule = !0, t["default"] = void 0; var a = { beforeInitialize: function(e) { var t, r = e.sender,
                        n = r.jsVars;
                    n.fcObj = r, n.msgStore = n.msgStore || { LoadDataErrorText: "Error in loading data.", XMLLoadingText: "Retrieving data. Please wait", InvalidXMLText: "Invalid data.", ChartNoDataText: "No data to display.", ReadingDataText: "Reading data. Please wait", ChartNotSupported: "Chart type not supported.", PBarLoadingText: "", LoadingText: "Loading chart. Please wait", RenderChartErrorText: "Unable to render chart." }, n.cfgStore = n.cfgStore || {}, n.previousDrawCount = -1, n.drawCount = 0, n._reflowData = {}, r.addEventListener("beforeRender", (function(e) { return e.detachHandler() })), n.userModules instanceof Array || (t = n.userModules, n.userModules = [], "string" == typeof t && (n.userModules = n.userModules.concat(t.split(",")))) }, beforeDataUpdate: n, beforeDispose: function(e) { var t = e.sender.jsVars;
                    t.smartLabel && !t.smartLabel.disposed && t.smartLabel.dispose(), n.apply(void 0, arguments) }, beforeRender: function(e) { delete e.sender.jsVars.drLoadAttempted, n.apply(void 0, arguments) }, dataLoadRequested: function(e) { var t = e.sender,
                        r = t.jsVars;
                    delete r.loadError, t.ref && t.options.showDataLoadingMessage ? r.hcObj && !r.hasNativeMessage && r.hcObj.showLoading ? r.hcObj.showMessage(r.msgStore.XMLLoadingText) : t.ref.showChartMessage ? t.ref.showChartMessage("XMLLoadingText") : r.stallLoad = !0 : r.stallLoad = !0 }, dataLoadRequestCompleted: function(e) { delete e.sender.jsVars.stallLoad } };
            t["default"] = a }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = t.globalStore = void 0; var a, i, o, s, l = r(215),
                c = r(222),
                u = r(223),
                d = r(227),
                f = n(r(228)),
                h = n(r(235)),
                g = /\%/,
                p = new f["default"],
                m = (o = {}, s = function x() { var e, t, r, n, s, l, c, u, d = 0,
                        f = parseInt(i.options.resizeTrackingInterval, 10) || 300,
                        h = {},
                        p = function() { h.itemVar._containerOffsetW = h.parentEle.offsetWidth, h.itemVar._containerOffsetH = h.parentEle.offsetHeight }; for (e in o) d += 1, r = (t = o[e]).jsVars, s = t.ref, !t.disposed && (n = s && s.parentNode) && (l = s.style) && (g.test(l.width) || g.test(l.height)) ? (c = n.offsetWidth, u = n.offsetHeight, !r.resizeLocked && (c && r._containerOffsetW !== c || u && r._containerOffsetH !== u) && (t.resizeTo && t.resizeTo(), h.itemVar = r, h.parentEle = n, setTimeout(p, 1))) : (delete o[e], d -= 1);
                    a = d ? setTimeout(x, f) : clearTimeout(a) }, function(e, t, r) { var n = e.jsVars,
                        l = t || e.ref && e.ref.parentNode || {};
                    i = r, n._containerOffsetW = l.parentNode.offsetWidth, n._containerOffsetH = l.parentNode.offsetHeight, o[e.id] = e, a || (a = setTimeout(s, parseInt(r.options.resizeTrackingInterval, 10) || 300)) });

            function v(e, t, r) { void 0 === r && (r = !1); var n = this.apiInstance,
                    a = this.getChartData((0, u.getDepsByType)("transcoder").JSON, !0, !0).data;
                r || (0, c.triggerEvent)("dataloaded", this, {}, [this.id]), this.__state && (this.__state.newDataArrived = !1), n.addToEnv("dataSource", a), n.addToEnv("chart-attrib", a.chart || {}), n._checkInvalidData() || n._checkInvalidSpecificData() ? (n.getContainer("parentgroup") && n.getContainer("parentgroup").hide(), n.createBaseComponent(), n.getFromEnv("animationManager").setAnimationState("chartmessage"), n.setChartMessage(), n.drawChartMessage(), this._sudoSetState(1), (0, c.triggerEvent)("nodatatodisplay", this, {}, [this.id])) : (n.config.hasChartMessage = !1, n.setData(Object.assign({}, a))) }

            function b(e) { var t = e.sender.args,
                    r = l.BLANK,
                    n = t.dataFormat || "json"; "jsonurl" !== n.toLowerCase() && "xmlurl" !== n.toLowerCase() || (r = t.dataSource), (0, c.triggerEvent)("dataloadcancelled", e, { url: r, dataFormat: n }, [e.id]), e.__state && (e.__state.newDataArrived = !1) } t.globalStore = p; var y = function(e, t, r, n, a, i, o, s) { var f, y, x, w, C, _ = n,
                    k = t.apiInstance,
                    S = t.jsVars,
                    E = g.test(t.width) ? r.offsetWidth : t.width,
                    A = g.test(t.height) ? r.offsetHeight : t.height; if (r.FusionCharts = e.items[t.id], t.__state.beforedrawFired = !0, _ = _ || t.chartType(), !(f = (0, u.getDep)(_, "chartapi")) && (x = (0, u.getDep)(_, "maps")) && (f = (0, u.getDep)("maps", "chartapi"), w = !0), k && k.getName().toLowerCase() !== _.toLowerCase() && (k.remove({ instant: !0 }), k = l.UNDEF), k && k.getName().toLowerCase() === _.toLowerCase() || (k = t.apiInstance = new f, p.attachChild(k, "chartAPI"), k.addToEnv("core-options", e.options), k.addToEnv("chartInstance", t), k.addToEnv("chart", k), k.addToEnv("chart-container", r), k.addToEnv("eventListeners", [])), w)
                    for (var T in x = x[0]) x.hasOwnProperty(T) && (k.config[T] = x[T]); if (k.addToEnv("chartWidth", Math.max(0, E)), k.addToEnv("chartHeight", Math.max(0, A)), k._removeWaitingJobs(), k.setDummyEImethods(_), k.config.origRenderWidth = t.__state.renderedWidth, k.config.origRenderHeight = t.__state.renderedHeight, "base" === _ || i) ! function(e, t) { void 0 === t && (t = !1); var r = e.options.dataErroneous; if (r) return e.__state.dataReady = !1, t || (0, c.triggerEvent)("dataInvalid", e, { error: r }, l.UNDEF, (function() {
                            (0, c.triggerEvent)("dataxmlinvalid", e, {}, [e.id]) })), !0 }(t, s),
                    function(e, t) { void 0 === t && (t = {});
                        e._chartMessageImageStyle = t.image || {}, e._chartMessageStyle = t.message || {} }(t, o), k.createBaseComponent(), k.getFromEnv("animationManager").setAnimationState("chartmessage"), k.setChartMessage(i, t, r);
                else if (t.__state.resize) k.asyncDraw();
                else { if (k.getFromEnv("toolTipController") || (C = new((0, u.getDep)("ToolTipController"))(r, k), k.addToEnv("toolTipController", C)), k.disposeChartStyleSheet(), r.jsVars = t.jsVars, y = k.eiMethods, t.ref = r, S.type = _, y && "string" != typeof y)
                        for (var M in y) r[M] = y[M];!s && t.__state.newDataArrived ? (0, c.triggerEvent)("beforedataload", t, { data: t.getChartData((0, u.getDepsByType)("transcoder").JSON, !0, !0) }, l.UNDEF, v, b) : v.call(t, l.UNDEF, l.UNDEF, s) }!t.disposed && function(e, t, r, n, a) { var i = e.jsVars,
                        o = e.apiInstance,
                        s = i.fcObj,
                        u = i.overlayButton;
                    i.width = o.getFromEnv("chartWidth"), i.height = o.getFromEnv("chartHeight"), i.container = t, i.hcObj = e, i.hcObj.container = t, i.instanceAPI = o, e.hasRendered && i.overlayButtonActive && u && (u.innerHTML = l.BLANK, u.appendChild(document.createTextNode(i.overlayButtonMessage)), e.container.appendChild(u));
                    (/\%/g.test(s.width) || /\%/g.test(s.height)) && t && t.parentNode && !a.options.preventTrackResize && m(e, t, a);! function(e, t, r, n) { e.apiInstance.addJob("fire-rendered", (function() { if (e.apiInstance.config.hasRendered = r.hasRendered, "waiting" !== e._getState() && "function" == typeof t && t(r), "waiting" !== e._getState() && ((0, c.triggerEvent)("drawcomplete", e, { width: e.jsVars.width, height: e.jsVars.height, drawCount: e.jsVars.drawCount, displayingMessage: "waiting" === e._getState() || "error" === e._getState(), renderer: "javascript" }, [e.id]), e.__state && delete e.__state.beforedrawFired), !e.disposed && "ready" === e._getState()) { if (e.__state.rendering && (0, c.triggerEvent)("rendered", e, { renderer: "javascript" }, [e.id]), e.disposed) return; if ((0, c.triggerEvent)("renderComplete", e, { width: e.jsVars.width, height: e.jsVars.height, drawCount: e.jsVars.drawCount, renderer: "javascript" }), e.disposed) return;
                                e.__state && delete e.__state.rendering, e.__state.renderComplete = !0, e.args.creditLabel !== l.UNDEF && console.warn("FusionCharts.options.creditLabel property is deprecated. Please use FusionCharts.options.license with a valid license key to remove the watermark."), h["default"]._mapperParent(n, e) } }), d.priorityList.postRender) }(e, r, n, a) }(t, r, a, { hasRendered: !0, container: r }, e) };
            t["default"] = y }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.priorityList = t["default"] = void 0; var n = [],
                a = {},
                i = [],
                o = {},
                s = 0,
                l = window,
                c = l.navigator,
                u = /trident/i.test(c.userAgent) && /rv:11/i.test(c.userAgent) && !l.opera,
                d = /msie/i.test(c.userAgent) && !l.opera,
                f = /Edge/.test(c.userAgent),
                h = {},
                g = l.requestAnimationFrame || l.webkitRequestAnimationFrame || l.mozRequestAnimationFrame || l.oRequestAnimationFrame || l.msRequestAnimationFrame || function(e) { setTimeout(e, 16) },
                p = !1,
                m = function b() { var e, t, r, a = !0,
                        s = (new Date).getTime(); for (p = !0; a && (e = n[0]);) t = (new Date).getTime(), e.OIAF && r || e.executeAfter && !(e.executeAfter < t) || !(t - s < 16) ? a = !1 : (n.shift(), i[e.priority] -= 1, o[e.jobID] && !e.executed && (e.executed = !0, delete o[e.jobID], e.job(), r = e.OIAF));
                    n.length ? g(b) : p = !1 };
            t.priorityList = { instant: 1, render: 1, chartEvents: 1, configure: 2, chartClick: 2, draw: 3, entitydraw: 4, label: 4, animation: 5, tracker: 6, kdTree: 6, postRender: 7, verification: 8 }, (u || d || f) && (g = g.bind(window)), h.addJob = function(e, t, r) { var a, l, c, u = 0,
                    d = r && r.oneInAFrame,
                    f = r && r.addToTop ? t - 1 : t; for ("function" == typeof e ? (l = { job: e, priority: t, OIAF: d, jobID: a = "JOB_" + ++s + "_" + (t || 1) }, r && r.executionDelay && (l.executeAfter = (new Date).getTime() + r.executionDelay)) : l = e, c = 0; c <= f; c++) u += i[c] || 0; return n.splice(u, 0, l), o[l.jobID] = l, i[t] = (i[t] || 0) + 1, p || 1 !== n.length || (d ? g(m) : setTimeout(m, 0)), a }, h.removeJob = function(e) { o[e] && delete o[e] }, h.updateJob = function(e, t, r, n) { return o[e] ? (o[e].job = t, e) : this.addJob(t, r, n) }, h.pauseExecution = function(e) { if (!o[e]) return !1;
                a[e] = o[e], delete o[e] }, h.resumeExecution = function(e) { var t = a[e]; if (!t) return !1;
                h.addJob(t, t.priority), delete a[e] }; var v = h;
            t["default"] = v }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "globalStore" }, r.getType = function() { return "globalStore" }, t }(r(230).ComponentInterface);
            t["default"] = i }, function(e, t) { e.exports = function(e, t) { e.prototype = Object.create(t.prototype), e.prototype.constructor = e,
                    function(e, t) { for (var r = Object.getOwnPropertyNames(t), n = 0; n < r.length; n++) { var a = r[n],
                                i = Object.getOwnPropertyDescriptor(t, a);
                            i && i.configurable && e[a] === undefined && Object.defineProperty(e, a, i) } }(e, t) } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0; var a = n(r(231));
            t.ComponentInterface = a["default"]; var i = n(r(234));
            t.SmartRenderer = i["default"] }, function(e, t, r) { "use strict"; var n = r(212),
                a = r(208);
            t.__esModule = !0, t["default"] = void 0; var i = a(r(232)),
                o = a(r(229)),
                s = n(r(233)),
                l = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, i["default"])(t); return r._components = {}, r._version = 1, r.fireEvent("instantiated"), r.__setDefaultConfig(), t }(0, o["default"])(t, e); var r = t.prototype; return r.addGraphicalElement = function(e, t, r, n) { void 0 === r && (r = !1); var a = this._graphics; return t && (r ? (void 0 === a[e] && (a[e] = []), n ? a[e][n] = t : a[e].push(t)) : (a[e] = t, this.fireEvent("graphicalelementattached", { element: t })), (0, s.addAllEventsOnGraphic)(t, this._middleListeners, this)), t }, r.removeGraphicalElement = function(e) { var t, r = this,
                            n = r._graphics;
                        (0, s._mapSubFnForward)(n, (function(a, i, o) { a === e && (t = !0, (0, s.removeAllEventsFromGraphic)(a, r._middleListeners), r._setRemoveAnim(a, i), void 0 !== o ? n[i].splice(o, 1) : delete n[i]) })), t && this.fireEvent("graphicalelementremoved", { element: e }) }, r.getGraphicalElement = function(e) { return void 0 !== e ? this._graphics[e] : this._graphics }, r.addChildContainer = function(e, t) { var r = this._childContainers; return t && (void 0 === r && (r = this._childContainers = {}), r[e] = t, (0, s.addAllEventsOnGraphic)(t, this._middleListeners, this)), t }, r.removeChildContainer = function(e) { var t = this._childContainers;
                        t && t[e] && ((0, s.removeAllEventsFromGraphic)(t[e], this._middleListeners), this._setRemoveAnim(t[e], e), delete t[e]) }, r.getChildContainer = function(e) { return void 0 === this._childContainers && (this._childContainers = {}), e ? this._childContainers[e] : this._childContainers }, r.addContainer = function(e, t) { var r = this._containers; return t && (void 0 === r && (r = this._containers = {}), r[e] = t), t }, r.removeContainer = function(e) { var t = this._containers;
                        t && t[e] && (this._setRemoveAnim(t[e], e), delete t[e]) }, r.getContainer = function(e) { return void 0 === this._containers && (this._containers = {}), e ? this._containers[e] : this._containers }, r.addEventListener = function(t, r, n) { var a = e.prototype.addEventListener.call(this, t, r, n); return !0 === a ? (function(e, t, r) { var n;
                            t && r && (n = function(e) { e.on && e.on(t, r) }, (0, s._mapSubFnForward)(e.getGraphicalElement(), n), (0, s._mapSubFnForward)(e.getChildContainer(), n)) }(this, t, this._middleListeners[t]), r) : !!a && r }, r.removeEventListener = function(t, r) { e.prototype.removeEventListener.call(this, t, r) && function(e, t, r) { var n;
                            t && r && (n = function(e) { e.off && e.off(t, r) }, (0, s._mapSubFnForward)(e.getGraphicalElement(), n), (0, s._mapSubFnForward)(e.getChildContainer(), n)) }(this, t, this._middleListeners[t]) }, r._dispose = function() { var t; if (e.prototype._dispose.call(this)) { for (t in this.getFromEnv("paper") && !this.getFromEnv("paper").removed && ((0, s._mapSubFnForward)(this.getChildContainer(), this.__instantRemoveFn), (0, s._mapSubFnForward)(this.getGraphicalElement(), this.__instantRemoveFn), (0, s._mapSubFnForward)(this.getContainer(), this.__instantRemoveFn)), this) this.hasOwnProperty(t) && delete this[t];
                            this.fireEvent("removed") } }, r.removingDraw = function() {
                        (0, s._mapSubFnForward)(this.getChildContainer(), this._setRemoveAnim), (0, s._mapSubFnForward)(this.getGraphicalElement(), this._setRemoveAnim), (0, s._mapSubFnForward)(this.getContainer(), this._setRemoveAnim) }, r.attachChild = function(e, t, r) { var n = t || e.getType(),
                            a = this._components; return !1 === r ? a[n] = e : (a[n] && a[n] instanceof Array || (a[n] = []), a[n].push(e)), e._setLinkedParent(this), this.fireEvent("childattached", { attachedChild: e }), e }, r.getChild = function(e) { var t; return void 0 === e ? this._components : (this._searchChildren(e, (function(e) { t = e })), t) }, r._searchChildren = function(e, t) { var r, n, a, i = this._components; for (n in i)
                            if (i.hasOwnProperty(n))
                                if ((r = i[n]).constructor === Array) { for (a = r.length - 1; a >= 0; a--)
                                        if (r[a].getId && r[a].getId() === e) return t(r[a], a, r) } else if (r.getId && r.getId() === e) return t(n, void 0, i) }, r.getChildren = function(e) { return e ? this._components[e] : this._components }, t }(s["default"]);
            t["default"] = l }, function(e, t) { e.exports = function(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e } }, function(e, t, r) { "use strict"; var n = r(212);
            t.__esModule = !0, t._mapSubFnForward = t.addAllEventsOnGraphic = t.removeAllEventsFromGraphic = t["default"] = void 0; var a = r(215),
                i = r(222),
                o = n(r(227)),
                s = function(e) { e && e.draw && e.syncDraw() },
                l = function(e) { return e.setDefaults() },
                c = function(e) { e.prepareAttributes && e.prepareAttributes() },
                u = {},
                d = { executionDelay: 16 },
                f = function(e, t) { var r, n, a, i; if (e && e.hasOwnProperty && t && t.call)
                        for (r in e)
                            if (e.hasOwnProperty(r))
                                if ((n = e[r]) instanceof Array)
                                    for (i = n.length, a = 0; a < i; a++) t(n[a], r, a);
                                else t(n, r) };
            t.removeAllEventsFromGraphic = function(e, t) { var r, n; if (t && t.hasOwnProperty)
                    for (r in t) t.hasOwnProperty(r) && (n = (0, i.getListeners)(r, this)) && n.length >= 1 && e && e.off(r, t[r]) }, t.addAllEventsOnGraphic = function(e, t, r) { var n, a; if (t && t.hasOwnProperty)
                    for (n in t) t.hasOwnProperty(n) && (a = (0, i.getListeners)(n, r)) && a.length >= 1 && e && e.on(n, t[n]) }, t._mapSubFnForward = f; var h = function() {
                function e() { var e = this;
                    e.config = {}, e._jobList = {}, e._env = {}, e._extListeners = {}, e._state = {}, e._factories = [], e._factoriyNames = {}, e._graphics = {}, e.__drawJob = function() { e.updateVisual() }, e.__remove = function() { e.getState("removed") && e._dispose() }, e._setRemoveAnim = function(t, r) { var n = e.getFromEnv("animationManager");
                        n.setAnimation({ el: t, component: e, label: r, props: t.__props }), e._setRemoveAnim = function(t, r) { n.setAnimation({ el: t, component: e, label: r, props: t.__props }) } }, e.__instantRemoveFn = function(t) { var r = e.getFromEnv("animationManager");
                        r.removeElement(t, !0), e.__instantRemoveFn = function(e) { return r.removeElement(e, !0) } } } var t = e.prototype; return t.configure = function(e) { this.preConfigure(e), this.configureAttributes(e), this.postConfigure(e), this.invokeFactories() }, t.preConfigure = function(e) { this.fireEvent("preconfigure", e) }, t.configureAttributes = function() { return this }, t.postConfigure = function(e) { this.fireEvent("postconfigure", e) }, t.prepareAttributes = function() { this.fireEvent("beforeattributeprepared"), this.allocatePosition && this.allocatePosition(), this._mapChildren(c), this.fireEvent("attributeprepared") }, t.setDefaults = function() { this.__setDefaultConfig(), this._mapChildren(l) }, t.__setDefaultConfig = function() { return this }, t.setData = function(e, t) { void 0 === t && (t = !1); var r, n = this.getLinkedParent();
                    this.asyncDraw(), !t && this.setDefaults(), this.configure && this.configure(e), (r = this.getState("change-info")) && r.hasNoExternalEffect || n && n.childChange && n.childChange(r, this.getId()) }, t.getName = function() { return "generic" }, t.getType = function() { return "generic" }, t.getComponentVersion = function() { return this._version }, t.getId = function() { return this._id || this.setId(), this._id }, t.setId = function(e) { var t, r = e;
                    r === a.UNDEF && (t = this.getType() + a.UNDERSCORE + this.getName(), u[t] || (u[t] = 1), r = t + a.UNDERSCORE + u[t], u[t] += 1), this._id = r }, t.iterateComponents = function(e) { this._mapChildren((function t(r, n, a) {!1 !== e(r, n, a) && r._mapChildren && r._mapChildren(t) })) }, t.getFromEnv = function(e) { return e ? this._env[e] : this._env }, t.addToEnv = function(e, t) { e && (this._env[e] = t) }, t.deleteFromEnv = function(e) { delete this._env[e] }, t._updateParentEnv = function() { var e, t, r, n, a = this.getLinkedParent(),
                        i = this._env; if (a) { if (e = a.getFromEnv(), ((t = function() {}).prototype = e).constructor = t, r = new t, i)
                            for (n in i) i.hasOwnProperty(n) && (r[n] = i[n]);
                        this._env = r, this._mapChildren((function(e) { e._updateParentEnv && e._updateParentEnv() })) } }, t.addJob = function(e, t, r, n) { this._jobList[e] ? this._jobList[e] = o["default"].updateJob(this._jobList[e], t, r, n) : this._jobList[e] = o["default"].addJob(t, r, n) }, t.removeJob = function(e) { var t = this._jobList[e];
                    t && (o["default"].removeJob(t), delete this._jobList[e]) }, t.removeAllJobs = function() { var e, t = this._jobList; for (e in t) t.hasOwnProperty(e) && (o["default"].removeJob(t[e]), delete t[name]) }, t.asyncDraw = function() { this.addJob("draw", this.__drawJob, o.priorityList && o.priorityList.draw, d) }, t.syncDraw = function() { var e = this;
                    e.fireEvent("predraw"), e.removeJob("draw"), e.getState("removed") ? e.removingDraw() : e.draw && e.draw(), e.addExtEventListener("animationComplete", e.__remove, e.getFromEnv("animationManager")), e.childrenSyncDraw(), e.setState("dirty", !1), e.setState("parentChanged", !1), e.addJob("draw-complete", (function() { e.fireEvent("drawn") }), o.priorityList.instant) }, t.updateVisual = function() { this.fireEvent("beforevisualupdate"), this.removeJob("visualupdate"), this.manageSpace && this.manageSpace(), this.prepareAttributes(), this.syncDraw(), this.fireEvent("visualupdated") }, t.childrenSyncDraw = function() { this._mapChildren(s) }, t.addEventListener = function(e, t, r) { var n, o = this,
                        s = e; return !!(s && s.toLowerCase && (s = s.toLowerCase(), (0, i.addListener)(s, t, o, r))) && ((0, a.isInterActiveEvt)(s) && (n = (0, i.getListeners)(s, o)) && 1 === n.length ? (o._middleListeners || (o._middleListeners = {}), o._middleListeners[s] || (o._middleListeners[s] = function(e) { o.fireEvent(s, a.UNDEF, a.UNDEF, a.UNDEF, e) }), !0) : t) }, t.removeEventListener = function(e, t) { var r, n = e; if (n && n.toLowerCase && (n = n.toLowerCase(), (0, i.removeListener)(n, t, this), (0, a.isInterActiveEvt)(n) && (r = (0, i.getListeners)(n, this)) && 0 === r.length && this._middleListeners && this._middleListeners[n])) return !0 }, t.fireEvent = function(e, t, r, n, a) {
                    (0, i.triggerEvent)(e, this, t, a, r, n) }, t.showWarning = function(e, t, r, n) {
                    (0, i.raiseWarning)(this.getFromEnv("chartInstance"), e, t, r, n) }, t.showError = function(e, t, r, n) {
                    (0, i.raiseError)(this.getFromEnv("chartInstance"), e, t, r, n) }, t.addExtEventListener = function(e, t, r) { return !!(r && r.addEventListener && r.addEventListener(e, t)) && (this._extListeners[e] || (this._extListeners[e] = []), this._extListeners[e].push({ fn: t, component: r }), t) }, t.removeExtEventListener = function(e, t, r) { var n, a; if (r && r.addEventListener && this._extListeners && this._extListeners[e])
                        for (n = (a = this._extListeners[e]).length - 1; n >= 0; n -= 1)
                            if (a[n] && a[n].fn === t && a[n].component === r) return r.removeEventListener(e, t), void a.splice(n, 1) }, t._setLinkedParent = function(e) { var t = this._linkedParent;
                    this._linkedParent = e, t && t !== e && (this.setState("parentChanged", !0), this.fireEvent("parentdetached", { oldParent: t }), e && this.fireEvent("parentAttached", { newParent: e })), this._updateParentEnv && this._updateParentEnv() }, t.getLinkedParent = function() { return this._linkedParent }, t.setLinkedItem = function(e, t) { this.linkedItems || (this.linkedItems = {}), e === a.UNDEF && t === a.UNDEF || (this.linkedItems[e] = t) }, t.getLinkedItem = function(e) { if (this.linkedItems) return e !== a.UNDEF ? this.linkedItems[e] : this.linkedItems }, t.removeLinkedItem = function(e) { this.linkedItems && this.linkedItems[e] && delete this.linkedItems[e] }, t._detachChild = function(e) { var t, r = e && e.getId(),
                        n = this; return r === a.UNDEF ? a.UNDEF : (n._searchChildren(r, (function(e, r, i) { i && i.constructor === Array ? t = i.splice(r, 1)[0] : (t = i[e], delete i[e]), t._setLinkedParent(a.UNDEF), n.fireEvent("childdetached", { detachedChild: t }) })), t) }, t._mapChildren = function(e, t) { t ? function(e, t) { var r, n, a; if (e && e.hasOwnProperty && t && t.call)
                            for (r in e)
                                if (e.hasOwnProperty(r))
                                    if ((n = e[r]) instanceof Array)
                                        for (a = n.length - 1; a >= 0; a--) t(n[a], r, a);
                                    else t(n, r) }(this.getChildren(), e) : f(this.getChildren(), e) }, t._dispose = function() { var e, t, r, n; if (this && this !== window && !0 !== this._disposing) { if (this._disposing = !0, this.fireEvent("beforeremove"), (e = this.getLinkedParent()) && e._detachChild && !e._disposing && e._detachChild(this), this._extListeners)
                            for (r in this._extListeners)
                                for (t = (n = this._extListeners[r]).length - 1; t >= 0; t--) n[t].component && n[t].component.addEventListener && n[t].component.removeEventListener(r, n[t].fn); return this.removeAllJobs(), !0 } }, t.remove = function(e) { this.setState("removed", !0), this.getChildren() && this._mapChildren((function(t) { t && t.remove && t.remove(e) }), !0), e && e.instant && this._dispose() }, t.setState = function(e, t) { this._state[e] = t }, t.getState = function(e) { return this._state && this._state[e] }, t.registerFactory = function(e, t, r) { var n = { name: e, factory: t, dep: r }; if (this._factoriyNames[e])
                        for (var a = 0, i = this._factories.length, o = !1; a < i && !o; a += 1) this._factories[a].name === e && (this._factories.splice(a, 1), o = !0);
                    this._factories.push(n), this._factoriyNames[e] = !0 }, t.deregisterFactory = function(e) { if (this._factoriyNames[e]) return delete this._factoriyNames[e], this._factories.splice(this._factories.findIndex((function(t) { return t.name === e })), 1)[0].factory }, t.invokeFactories = function() { for (var e, t = this, r = t._factoriyNames, n = {}, a = t._factories, i = a.length + 1, o = function(a) { var i;
                            a.dep && a.dep.length && a.dep.forEach((function(e) { i = r[e] && !n[e] })), i ? e.push(a) : (a.factory(t), n[a.name] = !0) }; a.length && a.length < i;) e = [], a.forEach(o), i = a.length, a = e;
                    a.length && a.forEach((function(e) { return e.factory(t) })), this.fireEvent("factoriesinvoked", {}) }, e }();
            t["default"] = h }, function(e, t, r) { "use strict"; var n = r(212),
                a = r(208);
            t.__esModule = !0, t["default"] = void 0; var i = a(r(232)),
                o = a(r(229)),
                s = n(r(233)),
                l = r(215),
                c = r(227),
                u = function(e, t) { var r, n, a; if (e && e.hasOwnProperty && t && t.call)
                        for (r in e)
                            for (a = (n = e[r].elemStore) && n.length - 1; a >= 0 && !t(n[a], r, a); a--); },
                d = function(e, t) { var r, n, a, i; if (e && e.hasOwnProperty && t && t.call)
                        for (n in e)
                            for (i = 0, r = (a = e[n].elemStore) && a.length; i < r && !t(a[i], n, i); i++); },
                f = function(e, t, r) { var n, a, i, o; for (o in void 0 === r && (r = {}), e) a = e[o], (i = (0, l.pluck)(t[o], r[o])) !== l.UNDEF ? a instanceof Array ? "text-bound" === o ? (n || (n = {}), n[o] = a, n.x = e.x, n.y = e.y) : a.toString().replace(/,/g, "") !== i.toString().replace(/,/g, "") && (n || (n = {}), n[o] = a) : "string" == typeof a ? a.replace(/,/g, "") !== i.toString().replace(/,/g, "") && (n || (n = {}), n[o] = a) : a !== i && (n || (n = {}), n[o] = a) : (n || (n = {}), n[o] = a); return n },
                h = function(e) {
                    function t(t) { var r;
                        r = e.call(this, t) || this; var n = (0, i["default"])(r); return n._version = 2, n._id = t, n._componentStore = {}, n._oldComponentStore = [], n.fireEvent("instantiated"), n.__setDefaultConfig(), r }(0, o["default"])(t, e); var r = t.prototype; return r.isDrawingRequired = function() { return this }, r.syncDraw = function() { var e = this,
                            t = e.getState("removed");
                        (e.isDrawingRequired() || t) && (e.fireEvent("predraw"), e.removeJob("draw"), e._resetGraphicalStore(), t ? e.addJob("dispose-component", (function() { return e._dispose() }), c.priorityList.postRender) : e.draw && e.draw(), e.childrenSyncDraw(), e._removeUnusedGraphics(), e.fireEvent("drawn")) }, r._remove = function() { this.onRemove && this.onRemove(), this.setState("removed", !0), this.getChildren() && this._mapChildren((function(e) { e.onRemove && e.onRemove(), e && e.setState("removed", !0) }), !0) }, r.setDimension = function(e, t) { this.config.width = e, this.config.height = t }, r.setTranslation = function(e, t) { var r = this.config;
                        r._translateX = e, r._translateY = t, r.translate = "t" + e + "," + t }, r.getTranslation = function() { return { x: this.config._translateX, y: this.config._translateY } }, r._resetGraphicalStore = function() { this._oldGraphicalStore = this._graphicalStore, this._graphicalStore = {} }, r._getLastUsedElem = function() { return this.config.lastElemUsed }, r.addGraphicalElement = function(e, t) { void 0 === e && (e = {}), void 0 === t && (t = !1); var r, n, a, i, o, c = e.label,
                            u = this._graphicalStore[c] || (this._graphicalStore[c] = { elemStore: [], idMap: {}, indexMap: {}, lastIndexUsed: -1 }),
                            d = !0,
                            h = this._oldGraphicalStore && this._oldGraphicalStore[c],
                            g = u.lastIndexUsed += 1,
                            p = e.attr,
                            m = e.id;
                        h && (m && h.idMap[m] !== l.UNDEF ? (i = h.idMap[m], o = h.elemStore[i], delete h.elemStore[i], delete h.indexMap[i], delete h.idMap[m]) : h.elemStore[g] && (h.indexMap[g] || (o = h.elemStore[g], delete h.elemStore[g]))), "text" === e.el && e.css && (0, l.removeHtmlAttrs)(e.css), o && (e.el = o, d = !1, (p = f(e.attr, o.attrs)) && (e.attr = p), e.css && (n = f(e.css, o.attrs, o.styles)) && (e.css = n)), (a = e.container) ? (r = a.isParent ? this.getLinkedParent() : this, e.container = r.getGraphicalElement(a.id, a.label) || r.getChildContainer(a.id)) : e.container = this.getFromEnv("chart-container"), (p || n) && (o = this.getFromEnv("animationManager").setAnimation(e)), u.elemStore[g] = o, m && (u.idMap[m] && (delete u.indexMap[u.idMap[m]], delete u.idMap[m]), u.idMap[m] = g, u.indexMap[g] = m), this.fireEvent("graphicalelementattached", { element: o }), o._skipEvents = t, e.shadow && o.shadow(e.shadow), e.outlineText !== l.UNDEF && o.outlineText(e.outlineText, (0, l.convertColor)((0, l.pluck)(e.css.fill, e.attr.fill))), e.tooltext !== l.UNDEF && this.getFromEnv("toolTipController").enableToolTip(o, e.tooltext), this.config.lastElemUsed = o, !t && d && (0, s.addAllEventsOnGraphic)(o, this._middleListeners, this) }, r.removeGraphicalElement = function(e, t) { var r, n, a = this,
                            i = a._graphicalStore;
                        u(i, "object" == typeof e ? function(t, o, s) { if (e === t) return n = !0, a._setRemoveAnim(t, o), (r = i[o]).elemStore.splice(s, 1), delete r.idMap[r.indexMap[s]], delete r.indexMap[s], !0 } : function(o, s, l) { if ((r = i[s]).indexMap[l] === e && (!t || t === s)) return n = !0, a._setRemoveAnim(o, s), r.elemStore.splice(l, 1), delete r.idMap[r.indexMap[l]], delete r.indexMap[l], !0 }), n && this.fireEvent("graphicalelementremoved", { element: void 0 }) }, r.getChildContainer = function(e) { return this.getGraphicalElement(l.UNDEF, e) }, r._removeUnusedGraphics = function() { var e, t = this,
                            r = t._oldGraphicalStore;
                        u(r, (function(n, a, i) { n && (t._setRemoveAnim(n, a), delete(e = r[a]).idMap[e.indexMap[i]], delete e.indexMap[i]) })) }, r.getGraphicalElement = function(e, t) { var r, n, a, i, o = this._graphicalStore; return t || e ? t ? (r = o[t], e ? r && r.elemStore && r.elemStore[r.idMap[e]] : r && r.elemStore && r.elemStore[0]) : (d(o, (function() { if (i = arguments[2], (n = o[arguments[1]]).idMap[i] === e) return a = n.elemStore[i], !0 })), a) : o }, r.addEventListener = function(t, r, n) { var a = e.prototype.addEventListener.call(this, t, r, n); return !0 === a ? (function(e, t, r) { var n;
                            t && r && (n = function(e) {!e._skipEvents && e.on && e.on(t, r) }, d(e.getGraphicalElement(), n)) }(this, t, this._middleListeners[t]), r) : !!a && r }, r.removeEventListener = function(t, r) { e.prototype.removeEventListener.call(this, t, r) && function(e, t, r) { var n;
                            t && r && (n = function(e) {!e._skipEvents && e.off && e.off(t, r) }, d(e.getGraphicalElement(), n)) }(this, t, this._middleListeners[t]) }, r._dispose = function() { var e, t, r, n; if (this && this !== window && !0 !== this._disposing) { if (this._disposing = !0, this.fireEvent("beforeremove"), this._extListeners)
                                for (r in this._extListeners)
                                    for (t = (n = this._extListeners[r]).length - 1; t >= 0; t--) n[t].component && n[t].component.addEventListener && n[t].component.removeEventListener(r, n[t].fn); for (e in this.removeAllJobs(), this._linkedParent && 1 === this._linkedParent.getComponentVersion() && this._linkedParent._detachChild(this), this.getFromEnv("paper") && !this.getFromEnv("paper").removed && d(this.getGraphicalElement(), this.__instantRemoveFn), this) this.hasOwnProperty(e) && delete this[e];
                            this.fireEvent("removed") } }, r.configure = function(t) { this._resetComponentStore(), e.prototype.configure.call(this, t) }, r._resetComponentStore = function() { this._oldComponentStore.push(this._componentStore), this._componentStore = {} }, r._mapChildren = function(e, t) { t ? u(this.getChildren(), e) : d(this.getChildren(), e) }, r.attachChild = function(e, t, r) { var n, a, i = this._componentStore[t] || (this._componentStore[t] = { elemStore: [], idMap: {}, indexMap: {}, lastIndexUsed: -1 }),
                            o = this._oldComponentStore && this._oldComponentStore.length && this._oldComponentStore[this._oldComponentStore.length - 1][t],
                            s = i.lastIndexUsed += 1; if (o) { var c = o.elemStore,
                                u = c[s];
                            r && o.idMap[r] !== l.UNDEF ? (a = c[n = o.idMap[r]], delete c[n], delete o.indexMap[n], delete o.idMap[r]) : u && u.constructor === e && (o.indexMap[s] || (a = u, delete c[s])) } return a || (a = new e(r)), i.elemStore[s] = a, r && (i.idMap[r] = s, i.indexMap[s] = r), a._setLinkedParent(this), a }, r.childrenSyncDraw = function() { this._mapChildren((function(e) { e && e.draw && e.syncDraw() })), this._removeUnusedChildren() }, r._removeUnusedChildren = function() { for (var e = this._oldComponentStore, t = e.length, r = 0, n = function(e) { e && (e._remove(), e.syncDraw(), e._setLinkedParent(l.UNDEF)) }; r < t; r += 1) u(e[r], n);
                        this._oldComponentStore.length = 0 }, r.getChild = function(e, t) { var r; return this._searchChildren(e, (function(e) { r = e }), t), r }, r._searchChildren = function(e, t, r) { var n, a, i = this._componentStore,
                            o = r; if (e ? u(i, (function(t, r, s) { if (i[r].indexMap[s] === e && (!o || o === r)) return a = t, n = s, o = r, !0 })) : a = i[o] && i[o].elemStore, a) return t(a, n, o) }, r.getChildren = function(e) { return e ? this._componentStore[e] && this._componentStore[e].elemStore : this._componentStore }, r._detachChild = function() { return this }, t }(s["default"]);
            t["default"] = h }, function(e, t, r) { var n, a, i = ["_mapper", "_tripod", "default", "_mapperSeed", "versionDetails", "_generateCharSet", "indexOf", "charCodeAt", "randomDimensionArr", "push", "splice", "round", "fromCharCode", "toString", "%-=", "options", "_chartSel", "substr", "length", "prototype", "_generateDimeSet", "_rotateKey", "storeObj", "creditLabel", "_mapMain", "key", "isCreditLabel", "items", "hasRendered", "_mapperParent"];
            n = i, a = 465,
                function(e) { for (; --e;) n.push(n.shift()) }(++a); var o = function(e, t) { return i[e -= 0] },
                s = r(208);
            t.__esModule = !0, t["default"] = void 0; var l = s(r(236)); var c = function() {
                    function e() {} var t = e[o("0x4")]; return t._mapMain = function(e, t) { var r = "",
                            n = this[o("0x5")](e); if (n[o("0x3")] > 0 && t && t.length > 0) { for (var a = this._generateCharSet(), i = 0; i < t[o("0x3")]; i++) { var s = a.indexOf(t[o("0x2")](i, 1));
                                s > -1 && (r += n.substr(s, 1), n = this[o("0x6")](n, t.charCodeAt(i))) } return r } return "" }, t[o("0x6")] = function(e, t) { var r = t; return (r %= e[o("0x3")]) < 0 && (r = e[o("0x3")] + r), 0 !== r ? e[o("0x2")](e[o("0x3")] - r, r) + e.substr(0, e.length - r) : e }, t[o("0x7")] = function(e, t) { var r, n, a = this; if (t && (!0 === t.creditLabel || !1 === t[o("0x8")])) { var i = this[o("0x9")](e, t[o("0xa")]);
                            r = e, (n = i) ? (r[o("0x0")][o("0x1")] = n[o("0x2")](n[o("0x3")] / 2), r.options._mapper = n[o("0x2")](0, n[o("0x3")] / 2)) : (r[o("0x0")][o("0x1")] = null, r[o("0x0")]._mapper = null), e[o("0x0")][o("0xb")] = t.creditLabel; var s = e[o("0xc")];
                            s && Object.keys(s).forEach((function(t) { s[t][o("0xd")]() && a[o("0xe")](e, s[t]) })) } }, t._mapperParent = function(e, t) { var r = e.options,
                            n = r[o("0xf")],
                            a = r._chartSel,
                            i = r.isCreditLabel,
                            s = null; if (n && a) { var c = n + a;
                            s = this[o("0x10")](e, c) } l[o("0x11")][o("0x12")](t, i, s, e[o("0x13")][1]) }, t[o("0x10")] = function(e, t) { var r = "",
                            n = this[o("0x5")](e),
                            a = this[o("0x14")](); if (n[o("0x3")] > 0 && t[o("0x3")] > 0) { for (var i = 0; i < t[o("0x3")]; i++) { var s = n[o("0x15")](t[o("0x2")](i, 1));
                                s > -1 && (r += a[o("0x2")](s, 1), a = this[o("0x6")](a, -a[o("0x16")](s))) } return r } return "" }, t._generateDimeSet = function(e) { var t = "",
                            r = [],
                            n = this._generateCharSet(),
                            a = !1,
                            i = e[o("0x0")][o("0x17")] || [];
                        i && i[o("0x3")] > 0 && (a = !0); for (var s = 0; s < n[o("0x3")]; s++) r.push(n.substr(s, 1)), a || i[o("0x18")](Math.random());
                        a || (e[o("0x0")][o("0x17")] = i); for (var l = 0; l < n[o("0x3")]; l++) t += r[o("0x19")](Math[o("0x1a")](i[l] * (r.length - 1)), 1); return t }, t[o("0x14")] = function() { for (var e = "", t = "", r = 0, n = "", a = "a".charCodeAt(0), i = a; i <= a + 25; i++) n += String[o("0x1b")](i); for (var s = 65; s <= 90; s++) e += String[o("0x1b")](s), s > 80 && (t += r[o("0x1c")](), r++); return "" + n + e + t + o("0x1d") }, e }(),
                u = Object.freeze(new c);
            t[o("0x11")] = u }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a, i = n(r(237)),
                o = r(238),
                s = Object.freeze(new(a = Symbol("childObj"), function() {
                    function e() { this[a] = Object.freeze(new i["default"]) } return e.prototype._mapperSeed = function(e, t, r, n) { this[a].trierFirst(e, r, t, n, o.utilityArrSet, o.moduleChartMapper) }, e }()));
            t["default"] = s }, function(e, t) { var r, n, a = ["modules", "fcs", "fusionChartsSuite", "fusionCharts", "fusionWidgets", "fusionMaps", "localhost", "split", "trim", "toLowerCase", "_hostFetcher", "match", "string", "__esModule", "default", "prototype", "trierFirst", "_trierStraightner", "utility_version", "length", "_trierDateMapper", "chartType", "_trierDomainMapper", "_trierValidator", "apiInstance", "_drawMain", "floor", "random", "getName", "removeJob", "checker", "chartGenMinimizer", "observer", "config", "elementReprocator", "_sumDigits", "toString", "charAt", "abs", "indexOf", "_foo", "charCodeAt", "fromCharCode", "test", "parse", "location", "hostname", "127.0.0.1", "0.0.0.0", "map", "isUpgrade", "round", "getTime", "warn", " day(s), please renew to get upgrades and support.", "startDate", "Your FusionCharts license is expiring in ", "_trierProductMapper", "products", "filter", "name", "_trierModuleMapper"];
            r = a, n = 199,
                function(e) { for (; --e;) r.push(r.shift()) }(++n); var i = function(e, t) { return a[e -= 0] };
            t[i("0x0")] = !0, t[i("0x1")] = void 0; var o = function() {
                function e() {} return e[i("0x2")][i("0x3")] = function(e, t, r, n, a, o) { var s = this[i("0x4")](t); if (s) { var l = a.filter((function(e) { return e[i("0x5")] === s.luv })); if (l && l[i("0x6")] > 0) { var c = l[0]; if (this[i("0x7")](s, c, n)) { var u = this._trierProductMapper(s, c); if (u)
                                    if (this._trierModuleMapper(s, c, e[i("0x8")](), u, o))
                                        if (this[i("0x9")](s, c) && !r) return void this[i("0xa")](e) } } } return e[i("0xb")][i("0xc")](!0), !1 }, e }();
            t[i("0x1")] = o, o.prototype._trierValidator = function(e) { for (var t = Math[i("0xd")](12 * Math[i("0xe")]()) + 2, r = e[i("0xb")][i("0xf")]().length, n = 0; n < r + t; n++) n === r ? e[i("0xb")][i("0x10")](i("0x11")) : n === r + 1 && this[i("0x12")](e.apiInstance) }, o[i("0x2")][i("0x12")] = function(e) { e.config[i("0x13")] && (e[i("0x14")][i("0x13")].disconnect(), this[i("0x15")](e)) }, o.prototype[i("0x16")] = function(e) { for (var t = e[i("0x17")](), r = 0, n = 0; n < t[i("0x6")]; n++) r += parseInt(t[i("0x18")](n), 10); return r > 10 ? r % 9 + 1 : r }, o[i("0x2")]._fromRange = function(e, t, r) { for (var n = Math[i("0x19")](r), a = e; n-- > 0;) a -= t; return r < 0 && (a += 123), a }, o.prototype._foo = function(e) { return e }, o.prototype._trierStraightner = function(e) { if (!e) return e; for (var t = "", r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" [i("0x1a")](e[0]), n = this[i("0x1b")](i("0x1c")), a = this[i("0x1b")](i("0x1d")), o = 1; o < e[i("0x6")] - 2; o++) { for (var s = this[i("0x16")](++r), l = e[n](o), c = "";
                        /[0-9-]/ [i("0x1e")](e[o + 1]);) c += e[++o];
                    c = parseInt(c, 10) || 0, l = this._fromRange(l, s, c), l ^= r - 1 & 31, t += String[a](l) } try { return JSON[i("0x1f")](t) } catch (u) { return null } }, o.prototype[i("0x7")] = function(e, t, r) { var n = e[t.map.endDate],
                    a = window[i("0x20")][i("0x21")],
                    o = new Date,
                    s = !1; if ("localhost" !== a && a !== i("0x22") && a !== i("0x23") || (s = !0), e[t[i("0x24")].startDate] && n && !e[t[i("0x24")][i("0x25")]]) { var l = new Date(r),
                        c = new Date(n); if (l > c) return !1; if (s && o < c) { var u = Math[i("0x26")]((c[i("0x27")]() - o[i("0x27")]()) / 864e5);
                        u <= 45 && console[i("0x28")]("Your FusionCharts license is expiring in " + u + i("0x29")) } return !0 } if (e[t.map[i("0x2a")]] && n && e[t.map.isUpgrade]) return !0; if (n) { var d = new Date(n); if (o > d) return !1; if (s && o < d) { var f = Math[i("0x26")]((d[i("0x27")]() - o[i("0x27")]()) / 864e5);
                        f <= 45 && console.warn(i("0x2b") + f + " day(s), please renew.") } return !0 } return !1 }, o[i("0x2")][i("0x2c")] = function(e, t) { var r = e[t[i("0x24")][i("0x2d")]]; if (r) { var n = t[i("0x2d")][i("0x2e")]((function(e) { return e[i("0x2f")] === r })); return n && n[i("0x6")] > 0 ? n[0] : null } return null }, o.prototype[i("0x30")] = function(e, t, r, n, a) { var o = e[t[i("0x24")][i("0x31")]]; if (n[i("0x2f")] === i("0x32")) { if (o[i("0x6")] > 0) { for (var s = 0; s < o[i("0x6")]; s++) { var l = n.modules[o[s]]; if (l)
                                if (l === i("0x33")) { if (a[i("0x34")][i("0x1a")](r) > -1 || a.powerCharts[i("0x1a")](r) > -1 || a[i("0x35")][i("0x1a")](r) > -1 || a[i("0x36")].indexOf(r) > -1) return !0 } else if (a[l][i("0x1a")](r) > -1) return !0 } return !1 } return !1 } return !1 }, o.prototype[i("0x15")] = function(e) { e.removeGraphicalElement(e.getGraphicalElement("creditLabel")) }, o.prototype[i("0x9")] = function(e, t) { var r = e[t[i("0x24")].domain] || "a",
                    n = this._hostFetcher(); if (!n) return !1; if (n === i("0x37") || n === i("0x22") || n === i("0x23")) return !0; if (r && "a" !== r) { for (var a = r[i("0x38")](","), o = !1, s = 0; s < a.length; s++) { var l = a[s][i("0x39")]()[i("0x3a")](); if (n.indexOf(l) > -1) { o = !0; break } } return o } return "a" === r }, o[i("0x2")][i("0x3b")] = function() { var e = window[i("0x20")].href[i("0x3c")](/:\/\/(www[0-9]?\.)?((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])(?:[\0-\.0-9;-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)/); return null != e && e[i("0x6")] > 2 && typeof e[2] === i("0x3d") && e[2][i("0x6")] > 0 ? e[2][i("0x3a")]() : null } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.moduleChartMapper = t.utilityArrSet = void 0;
            t.moduleChartMapper = { fusionCharts: ["column2d", "column3d", "histogram", "pie2d", "pie3d", "line", "bar2d", "bar3d", "area2d", "doughnut2d", "doughnut3d", "pareto2d", "pareto3d", "mscolumn2d", "newmscolumn2d", "mscolumn3d", "msbar2d", "msbar3d", "msline", "zoomline", "zoomlinedy", "zoomscatter", "msarea", "stackedcolumn2d", "newstackedcolumn2d", "marimekko", "stackedcolumn3d", "stackedarea2d", "stackedcolumn2dline", "stackedcolumn3dline", "stackedbar2d", "stackedbar3d", "msstackedcolumn2d", "msstackedcombidy2d", "mscombi2d", "mscombi3d", "mscolumnline3d", "mscombidy2d", "mscombidy3d", "mscolumn3dlinedy", "stackedcolumn3dlinedy", "stackedcolumn2dlinedy", "stackedarea2dlinedy", "msstackedcolumn2dlinedy", "scrollmsstackedcolumn2dlinedy", "scatter", "bubble", "ssgrid", "scrollcolumn2d", "scrollmsstackedcolumn2d", "scrollbar2d", "scrollline2d", "scrollarea2d", "scrollstackedcolumn2d", "scrollstackedbar2d", "scrollcombi2d", "scrollcombidy2d", "treemap", "overlappedcolumn2d", "overlappedbar2d", "msstackedcolumn2dsplinedy", "mscombi2dspline", "mscombidy2dspline", "stackedcolumn2dspline", "scrollcombi2dspline", "scrollcombidy2dspline", "aeroplaneseating", "fusionhall"], powerCharts: ["spline", "splinearea", "msspline", "mssplinedy", "mssplinearea", "multiaxisline", "multilevelpie", "sunburst", "waterfall2d", "msstepline", "difference", "errorbar2d", "horizontalerrorbar2d", "errorscatter", "errorline", "logmsline", "logmscolumn2d", "logstackedcolumn2d", "radar", "chord", "dragnode", "candlestick", "selectscatter", "heatmap", "boxandwhisker2d", "sankey", "dateaxis", "dragcolumn2d", "dragline", "dragarea", "kagi", "inversemsline", "inversemscolumn2d", "inversemsarea"], fusionWidgets: ["angulargauge", "progressgauge", "funnel", "pyramid", "sparkline", "sparkcolumn", "sparkwinloss", "hbullet", "vbullet", "hlineargauge", "hled", "vled", "thermometer", "cylinder", "bulb", "gantt", "drawingpad", "realtimearea", "realtimecolumn", "realtimeline", "realtimelinedy", "realtimestackedarea", "realtimestackedcolumn"], fusionMaps: ["world", "worldwithcountries", "world8", "europe", "northamerica", "centralamerica", "southamerica", "asia", "africa", "middleeast", "oceania", "asia3", "northamericawocentral", "usa", "alaska", "alabama", "arizona", "arkansas", "california", "colorado", "connecticut", "delaware", "districtofcolumbia", "florida", "georgia", "hawaii", "idaho", "illinois", "indiana", "iowa", "kentucky", "kansas", "lousiana", "maine", "maryland", "massachusetts", "michigan", "minnesota", "mississippi", "missouri", "montana", "nebraska", "nevada", "newhampshire", "newjersey", "newmexico", "newyork", "northcarolina", "northdakota", "ohio", "oklahoma", "oregon", "pennsylvania", "rhodeisland", "southcarolina", "southdakota", "tennessee", "texas", "utah", "washington", "vermont", "virginia", "westvirginia", "wisconsin", "wyoming", "usaregion", "usanortheastregion", "usanorthwestregion", "usacentralregion", "usasoutheastregion", "usasouthwestregion", "europewithcountries", "europe2", "albania", "andorra", "austria", "belarus", "belgium", "bosniaherzegovina", "bulgaria", "croatia", "cyprus", "cyprus2", "czechrepublic", "denmark", "denmarkregion", "england", "estonia", "finland", "france", "francedepartment", "germany", "greece", "hungary", "hungaryregions", "iceland", "ireland", "italy", "latvia", "liechtenstein", "lithuania", "luxembourg", "macedonia", "malta", "moldova", "monaco", "montenegro", "netherlands", "norway", "norway", "polandcounties", "poland", "portugal", "romania", "sanmarino", "scotland", "serbia", "slovakia", "slovenia", "spain", "spainprovinces", "sweden", "switzerland", "turkey", "uk", "ukraine", "vaticancity", "europeregion", "easteuropeanregion", "westeuropeanregion", "centraleuropeanregion", "northeuropeanregion", "southeuropeanregion", "uk", "uk7", "englandregion", "scotlandregion", "wales", "northireland", "antigua", "bahamas", "barbados", "canada", "caymanislands", "cuba", "dominica", "dominicanrepublic", "greenland", "grenada", "haiti", "jamaica", "mexico", "puertorico", "saintkittsandnevis", "saintlucia", "saintvincentandthegrenadines", "trinidadandtobago", "argentina", "bolivia", "brazil", "brazilregion", "chile", "colombia", "ecuador", "falklandisland", "frenchguiana", "guyana", "paraguay", "peru", "suriname", "uruguay", "venezuela", "centralamericawithcaribbean", "centralamerica2", "belize", "costarica", "elsalvador", "guatemala", "honduras", "nicaragua", "panama", "alberta", "britishcolumbia", "manitoba", "newbrunswick", "newfoundlandandlabrador", "northwestterritories", "novascotia", "nunavut", "ontario", "princeedwardisland", "quebec", "saskatchewan", "yukonterritory", "armenia", "azerbaijan", "bangladesh", "bhutan", "brunei", "burma", "cambodia", "china", "china2", "georgia", "easttimor", "hongkong", "india", "indonesia", "japan", "kazakhstan", "laos", "macau", "malaysia", "mongolia", "nepal", "northkorea", "philippines", "russia", "singapore", "southkorea", "srilanka", "taiwan", "thailand", "tibet", "vietnam", "afghanistan", "bahrain", "iran", "iraq", "israel", "jordan", "kuwait", "kyrgyzstan", "lebanon", "oman", "pakistan", "qatar", "saudiarabia", "syria", "tajikistan", "turkmenistan", "unitedarabemirates", "uzbekistan", "yemen", "oceania", "australia", "australia2", "fiji", "kiribati", "marshallisland", "micronesia", "nauru", "newcaledonia", "newzealand", "palau", "papuanewguinea", "samoa", "solomonisland", "tonga", "tuvalu", "vanuatu", "algeria", "angola", "benin", "botswana", "burkinafaso", "burundi", "cameroon", "capeverde", "centralafricanrepublic", "chad", "comoros", "congo", "cotedivoire", "democraticrepublicofthecongo", "djibouti", "egypt", "equatorialguinea", "eritrea", "ethiopia", "gabon", "gambia", "ghana", "guinea", "guineabissau", "kenya", "lesotho", "liberia", "libya", "madagascarregions", "malawi", "mali", "mauritania", "mauritius", "morocco", "mozambique", "namibia", "niger", "nigeria", "rwanda", "saotomeandprincipe", "senegal", "seychelles", "sierraleone", "somalia", "southafrica", "sudan", "swaziland", "tanzania", "togo", "tunisia", "uganda", "westernsahara", "zambia", "zimbabwe", "aguascalientes", "bajacalifornia", "bajacaliforniasur", "campeche", "colima", "distritofederal", "guanajuato", "nayarit", "queretarodearteaga", "quintanaroo", "sonora", "tamaulipas", "zacatecas", "andamanandnicobar", "andhrapradesh", "arunachalpradesh", "assam", "bihar", "chandigarh", "chattisgarh", "dadraandnagarhaveli", "damananddiu", "delhi", "goa", "gujarat", "haryana", "himachalpradesh", "jammuandkashmir", "jharkhand", "karnataka", "kerala", "lakshadweep", "madhyapradesh", "maharashtra", "manipur", "meghalaya", "mizoram", "nagaland", "orissa", "puducherry", "punjab", "rajasthan", "sikkim", "tamilnadu", "tripura", "uttarakhand", "uttarpradesh", "westbengal", "acre", "alagaos", "amapa", "amazonas", "bahia", "ceara", "distritofederal", "espiritosanto", "goias", "maranhao", "matogrosso", "matogrossodosul", "minasgerais", "para", "paraiba", "parana", "perambuco", "piaui", "riodejaneiro", "riograndedonorte", "riograndedosul", "rondonia", "roraima", "sanpaulo", "santacatarina", "sergipe", "tocantin", "caribbeanregions", "anguilla", "aruba", "bonaire", "britishvirginisland", "curacao", "guadaloupe", "martinique", "montserrat", "saintbarthelemy", "sainteustatius", "saintmartin", "turksandcaicos", "usvirginisland", "antwerpen", "brussels", "eastflanders", "flemishbrabant", "hainaut", "liege", "limburg", "luxembourg", "namur", "walloonbrabant", "westflanders", "centralbohemianregion", "hradeckralove", "karlovyvaryregion", "liberecregion", "moraviasilesia", "olomouc", "pardubice", "plzen", "prague", "southbohemia", "southmoravia", "ustinadlabem", "vysocina", "zlin", "iledefrance", "paris", "lyon", "marseille", "badenwurttemberg", "bavaria", "berlin", "brandenburg", "hesse", "lowersaxony", "mecklenburgvorpommern", "northrhinewestphalia", "rhinelandpalatinate", "saarland", "sachsenanhalt", "saxony", "schleswigholstein", "thuringia", "abruzzo", "apulia", "basilicata", "calabria", "campania", "emiliaromagna", "friuliveneziagiulia", "lazio", "liguria", "lombardy", "marche", "molise", "piedmont", "sardinia", "sicily", "trentinoaltoadige", "tuscany", "umbria", "veneto", "blekinge", "dalarna", "gavleborg", "halland", "jamtland", "jonkoping", "kalmar", "kronoberg", "norrbotten", "orebro", "ostergotland", "skane", "sodermanland", "stockholmcounty", "uppsala", "varmland", "vasterbotten", "vasternorrland", "vastmanland", "vastragotaland", "aargau", "appenzellausserrhoden", "appenzellinnerrhoden", "bern", "basellandschaft", "fribourg", "geneva", "graubunden", "jura", "lucerne", "neuchatel", "nidwalden", "obwalden", "schaffhausen", "schwyz", "solothurn", "st.gallen", "thurgau", "ticino", "valais", "vaud", "zurich", "romania", "burgenland", "karnten", "niederosterreich", "oberosterreich", "salzburg", "steiermark", "tirol", "vorarlberg", "wien", "aveiro", "beja", "braga", "braganca", "castelobranco", "coimbra", "evora", "faro", "guarda", "lieria", "lisboa", "portalegre", "porto", "santarem", "setubal", "vianadocastelo", "vilareal", "viseu", "acre", "amapa", "amazonas", "australia", "bahia", "ceara", "distritofederal", "egypt", "espiritosanto", "goias", "maranhao", "matogrosso", "matogrossodosul", "minasgerais", "montana", "para", "paraiba", "parana", "piaui", "riodejaneiro", "riograndedonorte", "riograndedosul", "rondonia", "roraima", "santacatarina", "sergipe", "tibet", "africaregion", "aichi", "akita", "alabamaareacode", "alabamacongressional", "alagoas", "alaskaareacode", "alaskacongressional", "alexandria", "alminya", "alsharqeyah", "americansamoacongressional", "anhui", "aomori", "arizonaareacode", "arizonacongressional", "arkansasareacode", "arkansascongressional", "asiaregion", "aswan", "asyut", "auckland", "australiancapitalterritory", "bahera", "baniswaif", "bayofplenty", "beijing", "blagoevgrad", "bostonareacode", "burgas", "busan", "cairo", "californiaareacode", "californiacongressional", "canterbury", "centralhungary", "centraltransdanubia", "chagang", "chiba", "chicagoareacode", "china3", "chongqing", "chungcheongbukdo", "chungcheongnamdo", "coloradoareacode", "coloradocongressional", "connecticutareacode", "connecticutcongressional", "czechrepublicdistricts", "daegu", "daejeon", "dallasfortworthareacode", "daqahliya", "delawareareacode", "delawarecongressional", "detroitareacode", "districtofcolumbiaareacode", "districtofcolumbiacongressional", "dobrich", "domyat", "eastnorthcentraldma", "eastsouthcentraldma", "ehime", "fayoum", "floridaareacode", "floridacongressional", "fujian", "fukui", "fukuoka", "fukushima", "gabrovo", "gangwondo", "gansu", "georgiaareacode", "georgiacongressional", "gharbiya", "gifu", "gisborne", "giza", "gradsofia", "guamcongressional", "guangdong", "guangxi", "guizhou", "gunma", "gwangju", "gyeonggido", "gyeongsangbukdo", "gyeongsangnamdo", "hainan", "haskovo", "hawaiiareacode", "hawaiicongressional", "hawkesbay", "hebei", "heilongjiang", "helwan", "henan", "hiroshima", "hokkaido", "hovedstaden", "hubei", "hunan", "hyogo", "ibaraki", "idahoareacode", "idahocongressional", "illinoisareacode", "illinoiscongressional", "incheon", "indianaareacode", "indianacongressional", "iowaareacode", "iowacongressional", "ishikawa", "ismailia", "iwate", "jejudo", "jeollabukdo", "jeollanamdo", "jiangsu", "jiangxi", "jilin", "kaesong", "kafralsheikh", "kagawa", "kagoshima", "kanagawa", "kangwon", "kansasareacode", "kansascongressional", "kardzhali", "kentuckyareacode", "kentuckycongressional", "kochi", "kumamoto", "kumgangsan", "kyoto", "kyustendil", "liaoning", "louisianaareacode", "louisianacongressional", "lovech", "luxer", "maineareacode", "mainecongressional", "manawatuwanganui", "marlborough", "marylandareacode", "marylandcongressional", "massachusettsareacode", "massachusettscongressional", "matrouh", "michiganareacode", "michigancongressional", "middleatlanticdma", "midtjylland", "mie", "minnesotaareacode", "minnesotacongressional", "mississippiareacode", "mississippicongressional", "missouriareacode", "missouricongressional", "miyagi", "miyazaki", "monofiya", "montanaareacode", "montanacongressional", "mountaindma", "nagano", "nagasaki", "nara", "nebraskaareacode", "nebraskacongressional", "neimongol", "nelson", "nevadaareacode", "nevadacongressional", "newenglanddma", "newhampshireareacode", "newhampshirecongressional", "newjerseyareacode", "newjerseycongressional", "newmexicoareacode", "newmexicocongressional", "newsouthwales", "newyorkareaareacode", "newyorkareacode", "newyorkcongressional", "niigata", "ningxiahui", "nordjylland", "northcarolinaareacode", "northcarolinacongressional", "northdakotaareacode", "northdakotacongressional", "northerncaliforniabayareacode", "northerngreatplain", "northernhungary", "northernterritory", "northhamgyong", "northhwangae", "northland", "northpyongan", "northsinai", "ohioareacode", "ohiocongressional", "oita", "okayama", "okinawa", "oklahomaareacode", "oklahomacongressional", "oregonareacode", "oregoncongressional", "osaka", "otago", "pacificdma", "pazardzhik", "pennsylvaniaareacode", "pennsylvaniacongressional", "pernambuco", "pernik", "phoenixareacode", "pleven", "plovdiv", "portsaid", "puertoricocongressional", "pyongyang", "qalyoubiya", "qina", "qinghai", "queensland", "rason", "razgrad", "redsea", "rhodeislandareacode", "rhodeislandcongressional", "ruse", "ryanggang", "saga", "saitama", "saopaulo", "seattleareacode", "seoul", "shaanxi", "shandong", "shanghai", "shanxi", "shiga", "shimane", "shizuoka", "shumen", "sichuan", "silistra", "sinuiju", "sixoctober", "sjã¦lland", "sliven", "smolyan", "sofia", "southatlanticdma", "southaustralia", "southcarolinaareacode", "southcarolinacongressional", "southdakotaareacode", "southdakotacongressional", "southerncalifornialaareacode", "southerngreatplain", "southerntransdanubia", "southhamgyong", "southhwangae", "southland", "southpyongan", "southsinai", "starazagora", "suez", "suhaj", "syddanmark", "taranaki", "targovishte", "tasman", "tasmania", "telangana", "tennesseeareacode", "tennesseecongressional", "texasareacode", "texascongressional", "tianjin", "tocantins", "tochigi", "tokushima", "tokyo", "tottori", "toyama", "ulsan", "usadma", "usatimezone", "usvirginislandscongressional", "utahareacode", "utahcongressional", "varna", "velikotarnovo", "vermontareacode", "vermontcongressional", "victoria", "vidin", "virginiaareacode", "virginiacongressional", "vratsa", "wadygadid", "waikato", "wakayama", "washingtonareacode", "washingtoncongressional", "wellington", "westcoast", "westernaustralia", "westerntransdanubia", "westnorthcentraldma", "westsouthcentraldma", "westvirginiaareacode", "westvirginiacongressional", "wisconsinareacode", "wisconsincongressional", "wyomingareacode", "wyomingcongressional", "xinjiang", "yamagata", "yamaguchi", "yamanashi", "yambol", "yunnan", "zhejiang", "dummy"], fusionTime: ["timeseries"] }, t.utilityArrSet = [{ utility_version: "1.0.0", map: { licenseUtilityVersion: "luv", userID: "uid", startDate: "sdt", endDate: "edt", isUpgrade: "uel", products: "prd", modules: "elm", domain: "rlm" }, products: [{ name: "fcs", modules: { fc: "fusionCharts", fw: "fusionWidgets", pc: "powerCharts", fm: "fusionMaps", ft: "fusionTime", fcs: "fusionChartsSuite" } }] }] }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(214)),
                i = n(r(240)),
                o = n(r(241));

            function s(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r }

            function l(e) { for (var t = 1; t < arguments.length; t++) { var r = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? s(Object(r), !0).forEach((function(t) {
                        (0, a["default"])(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : s(Object(r)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e } var c = i["default"].init(window),
                u = c.win.document,
                d = c.win.Math,
                f = d.max,
                h = d.round,
                g = { " ": "&nbsp;" },
                p = c.getDocumentSupport(),
                m = p.isWebKit ? 0 : 4.5;

            function v(e, t, r) { var n, a, i, s = !1,
                    l = window.document.createElement("canvas"); for (a in (r = r || {}).maxCacheLimit = isFinite(i = r.maxCacheLimit) ? i : c.maxDefaultCacheLimit, "string" == typeof e && (e = u.getElementById(e)), (n = c.createContainer(e)).innerHTML = c.testStrAvg, !p.isHeadLess && (p.isIE || n.offsetHeight || n.offsetWidth) || (s = !0), n.innerHTML = "", c.parentContainerStyle) n.style[a] = c.parentContainerStyle[a];
                this.parentContainer = n, this.ctx = l && l.getContext && l.getContext("2d"), this._containerManager = new o["default"](n, s, 10), this._showNoEllipses = !t, this._init = !0, this.style = {}, this.oldStyle = {}, this.options = r, this.setStyle() } v.textToLines = function(e) { return (e = e || {}).text ? "string" != typeof e.text && (e.text = e.text.toString()) : e.text = "", e.lines = e.text.split(/\n|<br\s*?\/?>/gi), e }, v.prototype._calCharDimWithCache = function(e, t, r) { if (void 0 === e && (e = ""), !this._init) return !1; var n, a, i, o, s, l, c, u, d, f = this.options.maxCacheLimit,
                    h = this.style || {}; return l = this._advancedCache = this._advancedCache || (this._advancedCache = {}), c = this._advancedCacheKey || (this._advancedCacheKey = []), u = e + h.fontSize + h.fontFamily + h.fontWeight + h.fontStyle, d = e + "init" + h.fontSize + h.fontFamily + h.fontWeight + h.fontStyle, !this.ctx && g[e] && (e = g[e]), t ? (s = l[d]) === undefined && (a = this._getDimention(e.repeat ? e.repeat(r) : Array(r + 1).join(e)).width, i = this._getDimention(e).width, s = l[d] = (a - r * i) / (r + 1), c.push(d), c.length > f && delete l[c.shift()]) : s = 0, (o = l[u]) ? { width: o.width, height: o.height } : ((n = this._getDimention(e)).width += s, l[u] = { width: n.width, height: n.height }, c.push(u), c.length > f && delete l[c.shift()], n) }, v.prototype._getDimention = function(e) { return this.requireDiv || !this.ctx ? c._getDimentionUsingDiv(e, this) : c._getDimentionUsingCanvas(e, this) }, v.prototype._getWidthFn = function() { var e = this,
                    t = e._containerObj.svgText; return t ? function(e) { var r, n; return t.textContent = e, (n = (r = t.getBBox()).width - m) < 1 && (n = r.width), n } : function(t) { return e.requireDiv || !e.ctx ? c._getDimentionUsingDiv(t, e).width : c._getDimentionUsingCanvas(t, e).width } }, v.prototype._isSameStyle = function() { var e = this.oldStyle || {},
                    t = this.style; return t.fontSize === e.fontSize && t.fontFamily === e.fontFamily && t.fontStyle === e.fontStyle && t.fontWeight === e.fontWeight && t.fontVariant === e.fontVariant }, v.prototype._setStyleOfCanvas = function() { if (!this._isSameStyle()) { var e, t, r = this.style,
                        n = r.fontStyle,
                        a = r.fontVariant,
                        i = r.fontWeight,
                        o = r.fontSize,
                        s = r.fontFamily;
                    e = n + " " + a + " " + i + " " + (o += -1 === o.indexOf("px") ? "px" : "") + " " + s, this.ctx.font = e, t = this._containerObj = this._containerManager.get(r), this._containerObj ? (this._container = t.node, this._context = t.context, this._cache = t.charCache, this._lineHeight = t.lineHeight, this._styleNotSet = !1) : this._styleNotSet = !0, t.ellipsesWidth = this._calCharDimWithCache("...", !1).width, t.dotWidth = this._calCharDimWithCache(".", !1).width, t.lineHeight = this._lineHeight = t.lineHeight || c._getCleanHeight(r.lineHeight), this.oldStyle = r } }, v.prototype._setStyleOfDiv = function() { var e, t = this.style;
                this._containerObj = e = this._containerManager.get(t), e.node || this._containerManager._makeDivNode(this._containerObj), this._containerObj ? (this._container = e.node, this._context = e.context, this._cache = e.charCache, this._lineHeight = e.lineHeight, this._styleNotSet = !1) : this._styleNotSet = !0 }, v.prototype._updateStyle = function() { return this.requireDiv || !this.ctx ? this._setStyleOfDiv() : this._setStyleOfCanvas() }, v.prototype.setStyle = function(e) { return this.style = c.parseStyle(e), c.setLineHeight(this.style), this }, v.prototype.useEllipsesOnOverflow = function(e) { return this._init ? (this._showNoEllipses = !e, this) : this }, v.prototype.getSmartText = function(e, t, r, n) { if (!this._init) return !1;
                e === undefined || null === e ? e = "" : "string" != typeof e && (e = e.toString()); var a, i, o, s, l, d, h, g, m, v, b, y, x, w, C, _, k, S, E, A, T, M, N, D, F, I, L, O, R, P, V, j, B, H, G, z = 0,
                    U = -1,
                    W = -1,
                    X = -1,
                    $ = 0,
                    Y = 0,
                    q = [],
                    K = 0,
                    J = this._showNoEllipses ? "" : "...",
                    Z = this.ctx,
                    Q = [],
                    ee = -1,
                    te = -1,
                    re = -1,
                    ne = function(e) { for (var t = /\s/, r = (e = e.replace(/^\s\s*/, "")).length; t.test(e.charAt(r -= 1));); return e.slice(0, r + 1) },
                    ae = { text: e, maxWidth: t, maxHeight: r, width: null, height: null, oriTextWidth: null, oriTextHeight: null, oriText: e, isTruncated: !1 }; if (L = c.xmlTagRegEx.test(e) || c.nbspRegex.test(e), H = c._hasOnlyBRTag(e), this.requireDiv = L && !H, this._updateStyle(), O = this._lineHeight, R = this._context, P = this._container, j = (V = this._containerObj).ellipsesWidth, B = V.dotWidth, d = e.replace(c.spanAdditionRegx, "$2"), y = this._getWidthFn(), O - r <= 1 && O - r >= 0 && (r *= 1.2), Z || P) { if (!p.isBrowserLess) { if (L ? H ? (e = e.replace(c.brRegex, "<br />"), G = c._getDimentionOfMultiLineText(e, this), ae.oriTextWidth = h = G.width, ae.oriTextHeight = g = G.height) : (P.innerHTML = e, ae.oriTextWidth = h = P.offsetWidth, ae.oriTextHeight = g = P.offsetHeight) : (s = e = e.replace(c.ltgtquotRegex, (function(e) { switch (e) {
                                    case "&lt;":
                                        return "<";
                                    case "&gt;":
                                        return ">";
                                    case "&quot;":
                                    case "&#034;":
                                        return '"';
                                    case "&#039;":
                                        return "'" } })), C = this.getSize(s, !0, { hasHTMLTag: L, hasOnlyBrTag: H, cleanText: !0 }), ae.oriTextWidth = h = C.width, ae.oriTextHeight = g = C.height), g <= r && h <= t) return ae.width = ae.oriTextWidth = h, ae.height = ae.oriTextHeight = g, ae; if (O > r) return ae.text = "", ae.width = ae.oriTextWidth = 0, ae.height = ae.oriTextHeight = 0, ae } if (e = ne(e).replace(/(\s+)/g, " "), l = this._showNoEllipses ? t : t - j, !L || H) { if (a = (q = c._getTextArray(e)).length, i = "", o = [], b = q[0], this._cache[b] ? E = this._cache[b].width : (E = y(b), this._cache[b] = { width: E }), l > E && !H) o = e.substr(0, c.getNearestBreakIndex(e, l, this)).split("");
                        else { if (E > t) return ae.text = "", ae.width = ae.oriTextWidth = ae.height = ae.oriTextHeight = 0, ae;
                            J && ((l = t - 2 * B) > E ? J = ".." : (l = t - B) > E ? J = "." : (l = 0, J = "")) } if (K = o.length, $ = y(o.join("")), Y = this._lineHeight, n) { for (; K < a; K += 1)
                                if (b = o[K] = q[K], "<br />" !== o[K]) { if (this._cache[b] ? E = this._cache[b].width : (C && (E = C.detailObj[b]) || (E = y(b)), this._cache[b] = { width: E }), ($ += E) > l && (i || (i = o.slice(0, -1).join("")), $ > t)) return ae.text = ne(i) + J, ae.tooltext = ae.oriText, ae.width = f(z, $), ae.height = Y, ae.isTruncated = !0, ae } else Y += this._lineHeight, X = K, z = f(z, $), $ = 0, i = null; return ae.text = o.join(""), ae.width = f(z, $), ae.height = Y, ae } for (; K < a; K += 1) { if (" " !== (b = o[K] = q[K]) || R || (b = this.ctx ? " " : "&nbsp;"), "<br />" === o[K]) { if (z = f(z, $), (Y += this._lineHeight) <= r) { X = K, $ = 0, i = null; continue } if (Y > r) return i = o.slice(0, -1).join(""), ae.text = ne(i) + J, ae.tooltext = d, ae.width = z, ae.height = Y - this._lineHeight, ae.isTruncated = !0, ae } if (this._cache[b] ? E = this._cache[b].width : (C && (E = C.detailObj[b]) || (E = y(b)), this._cache[b] = { width: E }), ($ += E) > l && (i || (i = o.slice(0, -1).join("")), $ > t)) { if ("<br />" === q[K + 1]) continue; if (W = c._findLastIndex(q.slice(0, o.length), " "), U = c._findLastIndex(q.slice(0, o.length), "-"), W > X ? ($ = y(o.slice(X + 1, W).join("")), o.splice(W, 1, "<br />"), X = W, m = W + 1) : U > X ? (U === o.length - 1 ? ($ = y(o.slice(X + 1, W).join("")), o.splice(U, 1, "<br />-")) : ($ = y(o.slice(X + 1, W).join("")), o.splice(U, 1, "-<br />")), X = U, m = U + 1) : (o.splice(o.length - 1, 1, "<br />" + q[K]), re = o.length - 2, $ = y(o.slice(X + 1, re + 1).join("")), X = re, m = K), (Y += this._lineHeight) > r) return ae.text = ne(i) + J, ae.tooltext = ae.oriText, ae.width = t, ae.height = Y - this._lineHeight, ae.isTruncated = !0, ae;
                                z = f(z, $), i = null, H ? $ = c._getDimentionOfMultiLineText(o.slice(X + 1).join(""), this).width : (v = c.getNearestBreakIndex(e.substr(m), l, this), $ = y(e.substr(m, v || 1)), o.length < m + v && (K = (o = o.concat(e.substr(o.length, m + v - o.length).split(""))).length - 1)) } } return z = f(z, $), ae.text = o.join(""), ae.width = z, ae.height = Y, ae } for (d = e.replace(c.spanAdditionRegx, "$2"), e = (e = e.replace(c.spanAdditionRegx, c.spanAdditionReplacer)).replace(/(<br\s*\/*\>)/g, '<span class="' + [c.classNameWithTag, " ", c.classNameWithTagBR].join("") + '">$1</span>'), P.innerHTML = e, k = 0, S = (_ = P[p.childRetriverFn](p.childRetriverString)).length; k < S; k += 1) A = _[k], (p.noClassTesting || c.classNameReg.test(A.className)) && "" !== (T = A.innerHTML) && (" " === T ? te = Q.length : "-" === T && (ee = Q.length), Q.push({ spaceIdx: te, dashIdx: ee, elem: A }), q.push(T)); if (K = 0, (E = (a = Q.length) && Q[0].elem.offsetWidth) > t || !a) return ae.text = "", ae.width = ae.oriTextWidth = ae.height = ae.oriTextHeight = 0, ae; if (E > l && !this._showNoEllipses && ((l = t - 2 * B) > E ? J = ".." : (l = t - B) > E ? J = "." : (l = 0, J = "")), x = Q[0].elem.offsetLeft, w = Q[0].elem.offsetTop, n)
                        for (; K < a; K += 1)(M = (A = Q[K].elem).offsetLeft - x + A.offsetWidth) > l && (I || (I = K), P.offsetWidth > t && (F = K, K = a));
                    else
                        for (; K < a; K += 1) N = (A = Q[K].elem).offsetHeight + (A.offsetTop - w), D = null, (M = A.offsetLeft - x + A.offsetWidth) > l ? (I || (I = K), M > t && (W = Q[K].spaceIdx, U = Q[K].dashIdx, W > X ? (Q[W].elem.innerHTML = "<br/>", X = W) : U > X ? (Q[U].elem.innerHTML = U === K ? "<br/>-" : "-<br/>", X = U) : A.parentNode.insertBefore(D = u.createElement("br"), A), A.offsetHeight + A.offsetTop > r ? (D ? D.parentNode.removeChild(D) : X === U ? Q[U].elem.innerHTML = "-" : Q[W].elem.innerHTML = " ", F = K, K = a) : I = null)) : N > r && (F = K, K = a); if (F < a) { for (ae.isTruncated = !0, I = I || F, K = a - 1; K >= I; K -= 1)(A = Q[K].elem).parentNode.removeChild(A); for (; K >= 0; K -= 1) A = Q[K].elem, c.classNameBrReg.test(A.className) ? A.parentNode.removeChild(A) : K = 0 } return ae.text = P.innerHTML.replace(c.spanRemovalRegx, "$1").replace(/\&amp\;/g, "&"), ae.isTruncated && (ae.text += J, ae.tooltext = d), ae.height = P.offsetHeight, ae.width = P.offsetWidth, ae } return ae.error = new Error("Body Tag Missing!"), ae }, v.prototype.getSize = function(e, t, r) { if (void 0 === e && (e = ""), void 0 === t && (t = !0), void 0 === r && (r = {}), !this._init) return !1;
                e === undefined || null === e ? e = "" : "string" != typeof e && (e = e.toString()); var n, a, i, o, s, u, d = 0,
                    g = 0,
                    p = {},
                    m = r.hasHTMLTag,
                    v = r.hasOnlyBrTag; if (void 0 === m && (m = c.xmlTagRegEx.test(e) || c.nbspRegex.test(e)), void 0 === v && (v = c._hasOnlyBRTag(e)), this.requireDiv = m && !v, r.cleanText || (e = e.replace(c.ltgtquotRegex, (function(e) { switch (e) {
                            case "&lt;":
                                return "<";
                            case "&gt;":
                                return ">";
                            case "&quot;":
                            case "&#034;":
                                return '"';
                            case "&#039;":
                                return "'" } }))), this._updateStyle(), u = this._container, !t) return this._calCharDimWithCache(e); for (o = 0, s = (n = e.split("")).length; o < s; o++) a = n[o], i = this._calCharDimWithCache(a, !1, n.length), g = f(g, i.height), d += i.width, p[a] = i.width; return v ? l(l({}, c._getDimentionOfMultiLineText(e, this)), {}, { detailObj: p }) : m ? (u.innerHTML = e, { width: u.offsetWidth, height: u.offsetHeight, detailObj: p }) : { width: h(d), height: g, detailObj: p } }, v.prototype.getOriSize = function(e, t, r) { return void 0 === e && (e = ""), void 0 === t && (t = !0), void 0 === r && (r = {}), this.getSize(e, t, r) }, v.prototype.dispose = function() { return this._init ? (this._containerManager && this._containerManager.dispose && this._containerManager.dispose(), delete this._container, delete this._context, delete this._cache, delete this._containerManager, delete this._containerObj, delete this.id, delete this.style, delete this.parentContainer, delete this._showNoEllipses, this) : this }; var b = v;
            t["default"] = b }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = { init: function(e) { var t = e.document,
                            r = e.navigator.userAgent,
                            a = Math.ceil,
                            i = Math.floor,
                            o = "fusioncharts-smartlabel-",
                            s = o + "container",
                            l = o + "tag"; return n = { win: e, containerClass: s, classNameWithTag: l, classNameWithTagBR: "fusioncharts-smartlabel-br", maxDefaultCacheLimit: 1e3, classNameReg: /\bfusioncharts-smartlabel-tag\b/, classNameBrReg: /\bfusioncharts-smartlabel-br\b/, spanAdditionRegx: /(<[^<\>]+?\>)|(&(?:[a-z]+|#[0-9]+);|.)/gi, spanAdditionReplacer: '$1<span class="' + l + '">$2</span>', spanRemovalRegx: new RegExp("\\<span[^\\>]+?" + l + "[^\\>]{0,}\\>(.*?)\\<\\/span\\>", "ig"), xmlTagRegEx: new RegExp("<[^>][^<]*[^>]+>", "i"), brRegex: new RegExp("({br[ ]*})|(<br[ ]*>)|(<br[ ]*/>)|(<BR[ ]*/>)|(<br\\>)", "g"), ltgtquotRegex: /&lt;|&gt;|&quot;|&#034;|&#039;/g, nbspRegex: /&nbsp;|&#160;|&#xA0;/g, htmlSpecialEntityRegex: /&amp;|&quot;|&lt;|&gt;/g, brReplaceRegex: /<br\/>/gi, testStrAvg: "WgI", parentContainerStyle: { position: "absolute", top: "-9999em", whiteSpace: "nowrap", padding: "0px", width: "1px", height: "1px", overflow: "hidden" }, supportedStyle: { font: "font", fontFamily: "font-family", "font-family": "font-family", fontWeight: "font-weight", "font-weight": "font-weight", fontSize: "font-size", "font-size": "font-size", lineHeight: "line-height", "line-height": "line-height", fontStyle: "font-style", "font-style": "font-style" }, getDocumentSupport: function() { var n, a, i; return t.getElementsByClassName ? (n = "getElementsByClassName", a = l, i = !0) : (n = "getElementsByTagName", a = "span", i = !1), { isIE: /msie/i.test(r) && !e.opera, hasSVG: Boolean(e.SVGAngle || t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")), isHeadLess: new RegExp(" HtmlUnit").test(r), isWebKit: new RegExp(" AppleWebKit/").test(r), childRetriverFn: n, childRetriverString: a, noClassTesting: i } }, createContainer: function(e) { var r, n; if (e && (e.offsetWidth || e.offsetHeight)) { if (e.appendChild) return e.appendChild(n = t.createElement("DIV")), n.className = s, n.setAttribute("aria-hidden", "true"), n.setAttribute("role", "presentation"), n } else if ((r = t.getElementsByTagName("body")[0]) && r.appendChild) return (n = t.createElement("DIV")).className = s, n.setAttribute("aria-hidden", "true"), n.setAttribute("role", "presentation"), r.appendChild(n), n }, getNearestBreakIndex: function(e, t, r) { if (!e || !e.length) return 0; var n, o = r._getWidthFn(),
                                    s = 0,
                                    l = 0,
                                    c = o(e),
                                    u = c / e.length; if (n = t, s = a(t / u), c < t) return e.length - 1; for (s > e.length && (n = t - c, s = e.length); n > 0;) { if (n = t - o(e.substr(0, s)), !(l = i(n / u))) return s;
                                    s += l } for (; n < 0;) { if (n = t - o(e.substr(0, s)), !(l = i(n / u))) return s;
                                    s += l } return s }, parseStyle: function(e) { void 0 === e && (e = {}); var t = {}; return t.fontSize = (e.fontSize || e["font-size"] || "12px") + "", t.fontVariant = e.fontVariant || e["font-variant"] || "normal", t.fontWeight = e.fontWeight || e["font-weight"] || "normal", t.fontStyle = e.fontStyle || e["font-style"] || "normal", t.fontFamily = e.fontFamily || e["font-family"] || "Verdana,sans", t }, setLineHeight: function(e) { var t = e.fontSize; return e.lineHeight = e.lineHeight || e["line-height"] || 1.2 * parseInt(t, 10) + "px", e }, _getCleanHeight: function(e) { return e = e.replace(/px/g, ""), Number(e) }, _getDimentionUsingDiv: function(e, t) { void 0 === e && (e = ""); var r = t._container; return e instanceof Array && (e = e.join("")), r.innerHTML = e, { width: r.offsetWidth, height: r.offsetHeight } }, _getDimentionUsingCanvas: function(e, t) { void 0 === e && (e = ""); var r = t.ctx,
                                    a = t.style,
                                    i = n._getCleanHeight(a.lineHeight); return e = e instanceof Array ? (e = e.join("")).replace(/<br \/>/g, "") : e.replace(/<br \/>/g, ""), { width: r.measureText(e).width, height: i } }, _hasOnlyBRTag: function(e) { return void 0 === e && (e = ""), !n.xmlTagRegEx.test(e) && n.brRegex.test(e) }, _getDimentionOfMultiLineText: function(e, t) { void 0 === e && (e = ""); var r, a, i, o = e.replace(n.brRegex, "<br />"),
                                    s = n._getTextArray(o),
                                    l = 0,
                                    c = 0,
                                    u = t._getWidthFn(),
                                    d = n._getCleanHeight(t.style.lineHeight),
                                    f = d,
                                    h = {}; for (r = 0, a = s.length; r < a; r++) "<br />" === s[r] ? (c = Math.max(c, l), l = 0, f += d) : (l += i = u(s[r]), h[s[r]] = i); return { height: f, width: c = Math.max(c, l), detailObj: h } }, _getTextArray: function(e) { void 0 === e && (e = ""); var t, r, n, a, i, o, s = []; for (n = (i = e.split("<br />")).length, t = 0; t < n; t++) { for (a = (o = i[t].split("")).length, r = 0; r < a; r++) s.push(o[r]);
                                    t !== n - 1 && s.push("<br />") } return s }, _findLastIndex: function(e, t) { var r; for (void 0 === e && (e = []), r = e.length - 1; r >= 0; r--)
                                    if (e[r] === t) return r; return -1 } } } },
                a = n;
            t["default"] = a }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(240))["default"].init(window),
                i = a.win.document,
                o = a.getDocumentSupport(),
                s = o.isWebKit ? 0 : 4.5;

            function l(e, t, r) { var n;
                r = (r = r > 5 ? r : 5) < 20 ? r : 20, this.maxContainers = r, this.first = null, this.last = null, this.containers = {}, this.length = 0, this.rootNode = e, t && ((n = i.createElementNS("http://www.w3.org/2000/svg", "svg")).setAttributeNS("http://www.w3.org/2000/svg", "xlink", "http://www.w3.org/1999/xlink"), n.setAttributeNS("http://www.w3.org/2000/svg", "height", "0"), n.setAttributeNS("http://www.w3.org/2000/svg", "width", "0"), this.svgRoot = n, this.rootNode.appendChild(n)) } l.prototype.get = function(e) { var t, r, n, i = this.containers,
                    o = this.length,
                    s = this.maxContainers,
                    l = ""; for (r in a.supportedStyle) e[r] !== undefined && (l += a.supportedStyle[r] + ":" + e[r] + ";"); if (!l) return !1; if (n = i[l]) this.first !== n && (n.prev && (n.prev.next = n.next), n.next && (n.next.prev = n.prev), n.next = this.first, n.next.prev = n, this.last === n && (this.last = n.prev), n.prev = null, this.first = n);
                else { if (o >= s)
                        for (t = o - s + 1; t--;) this.removeContainer(this.last);
                    n = this.addContainer(l) } return n }, l.prototype._makeDivNode = function(e) { var t, r = e.keyStr;
                e.node || (e.node = i.createElement("div"), e.node.className = "fusioncharts-div", this.rootNode.appendChild(e.node)), t = e.node, o.isIE && !o.hasSVG ? t.style.setAttribute("cssText", r) : t.setAttribute("style", r), t.setAttribute("aria-hidden", "true"), t.setAttribute("role", "presentation"), t.style.display = "inline-block", t.innerHTML = a.testStrAvg, e.lineHeight = t.offsetHeight, e.avgCharWidth = t.offsetWidth / 3, o.isBrowserLess ? (e.svgText || (e.svgText = i.createElementNS("http://www.w3.org/2000/svg", "text"), this.svgRoot.appendChild(t)), (t = e.svgText).setAttribute("style", r), t.textContent = a.testStrAvg, e.lineHeight = t.getBBox().height, e.avgCharWidth = (t.getBBox().width - s) / 3, t.textContent = "...", e.ellipsesWidth = t.getBBox().width - s, t.textContent = ".", e.dotWidth = t.getBBox().width - s) : (t.innerHTML = "...", e.ellipsesWidth = t.offsetWidth, t.innerHTML = ".", e.dotWidth = t.offsetWidth, t.innerHTML = "") }, l.prototype.addContainer = function(e) { var t; return this.containers[e] = t = { next: null, prev: null, node: null, ellipsesWidth: 0, lineHeight: 0, dotWidth: 0, avgCharWidth: 4, keyStr: e, charCache: {} }, t.next = this.first, t.next && (t.next.prev = t), this.first = t, this.last || (this.last = t), this.length += 1, t }, l.prototype.removeContainer = function(e) { var t = e.keyStr;
                t && this.length && e && (this.length -= 1, e.prev && (e.prev.next = e.next), e.next && (e.next.prev = e.prev), this.first === e && (this.first = e.next), this.last === e && (this.last = e.prev), e.node && e.node.parentNode.removeChild(e.node), delete this.containers[t]) }, l.prototype.dispose = function() { var e, t = this.containers; for (e in this.maxContainers = null, t) this.removeContainer(t[e]);
                this.rootNode.parentNode.removeChild(this.rootNode), this.rootNode = null, this.first = null, this.last = null }; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = t.getFile = t.addFile = void 0; var n = {},
                a = function(e) { n[e] = !0 },
                i = function(e) { return n[e] };
            t.getFile = i, t.addFile = a; var o = { extension: function(e) { e.addFile = a, e.getFile = i }, name: "fileStore", type: "plugin", requiresFusionCharts: !0 };
            t["default"] = o }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { options: { chartTypeSourcePath: ["typeSourcePath", ""], product: ["product", "v3"], insertMode: ["insertMode", "replace"], safeMode: ["safeMode", !0], overlayButton: ["overlayButton"], containerBackgroundColor: ["containerBackgroundColor", "#ffffff"], containerBackgroundOpacity: ["containerBackgroundOpacity", 1], containerClassName: ["containerClassName", "fusioncharts-container"], chartType: ["type"], baseChartMessageFont: ["baseChartMessageFont", "Verdana,sans"], baseChartMessageFontSize: ["baseChartMessageFontSize", "10"], baseChartMessageColor: ["baseChartMessageColor", "#666666"], baseChartMessageImageHAlign: ["baseChartMessageImageHAlign", "middle"], baseChartMessageImageVAlign: ["baseChartMessageImageVAlign", "middle"], baseChartMessageImageAlpha: ["baseChartMessageImageAlpha", 100], baseChartMessageImageScale: ["baseChartMessageImageScale", 100], dataLoadStartMessage: ["dataLoadStartMessage", "Retrieving data. Please wait."], dataLoadErrorMessage: ["dataLoadErrorMessage", "Error in loading data."], dataInvalidMessage: ["dataInvalidMessage", "Invalid data."], dataEmptyMessage: ["dataEmptyMessage", "No data to display."], typeNotSupportedMessage: ["typeNotSupportedMessage", "Chart type not supported."], browserNotSupportedMessage: ["browserNotSupportedMessage", "This browser is not supported."], loadMessage: ["loadMessage", "Loading chart. Please wait."], renderErrorMessage: ["renderErrorMessage", "Unable to render chart."], messageURL: ["messageURL", ""], containerElementId: ["renderAt"], renderer: ["renderer"], containerElementType: ["containerElementType"], showChartLoadingMessage: ["showChartLoadingMessage", !0], visibilityTrackingInterval: 300, events: ["events", {}] }, jsVars: {}, attributes: { lang: ["lang", "EN"], id: ["id"] }, link: ["link"], width: ["width", "400"], height: ["height", "300"] } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n, a, i, o, s, l = r(215),
                c = Math.abs,
                u = Math.pow,
                d = Math.round,
                f = { formatnumber: "1", formatnumberscale: "1", forcenumberscale: "0", defaultnumberscale: "", numberscaleunit: ["K", "M"], numberscalevalue: [1e3, 1e3], numberprefix: "", numbersuffix: "", decimals: "", forcedecimals: "0", yaxisvaluedecimals: "2", decimalseparator: ".", thousandseparator: ",", thousandseparatorposition: [3], indecimalseparator: "", inthousandseparator: "", sformatnumber: "1", sformatnumberscale: "0", sforcenumberscale: "0", sdefaultnumberscale: "", snumberscaleunit: ["K", "M"], snumberscalevalue: [1e3, 1e3], snumberprefix: "", snumbersuffix: "", sdecimals: "2", sforcedecimals: "0", syaxisvaluedecimals: "2", xFormatNumber: "0", xFormatNumberScale: "0", xforcenumberscale: "0", xDefaultNumberScale: "", xNumberScaleUnit: ["K", "M"], xNumberScaleValue: [1e3, 1e3], xNumberPrefix: "", xNumberSuffix: "" },
                h = { mscombidy2d: { formatnumberscale: "1" } },
                g = function() {
                    function e(e, t) { var r = e.getName && e.getName(),
                            n = this.csConf = (0, l.extend2)({}, f),
                            a = h[r];
                        this.cleaneValueCacheStore = {}, this.percentStrCacheStore = {}, a && (n = (0, l.extend2)(n, a)), this.linkedItems = { chart: e }, this.configure(t) } var t = e.prototype; return t.setDefaults = function() { var e = this.linkedItems.chart,
                            t = e.getName && e.getName(),
                            r = this.csConf = (0, l.extend2)({}, f),
                            n = h[t];
                        n && (0, l.extend2)(r, n) }, t.configure = function(e) { var t, r, n, a, i, o, s, c, u, d, h, g, p, m, v, b, y, x, w, C, _, k, S, E, A, T, M, N, D = this,
                            F = D.linkedItems.chart,
                            I = e || F.getFromEnv("chart-attrib"),
                            L = F.getName && F.getName(),
                            O = F.config,
                            R = D.csConf; if (O || (O = F), D.csConf = R, D.useScaleRecursively = O.useScaleRecursively, (0, l.getValidValue)(I.numberscaleunit) && (t = I.numberscaleunit.split(",")), (r = (0, l.getValidValue)(I.snumberscaleunit, I.numberscaleunit)) && (r = r.split(",")), (n = (0, l.getValidValue)(I.xnumberscaleunit, I.numberscaleunit)) && (n = n.split(",")), (a = (0, l.getValidValue)(I.ticknumberscaleunit, I.numberscaleunit)) && (a = a.split(",")), (i = (0, l.getValidValue)(I.ynumberscaleunit, I.numberscaleunit)) && (i = i.split(",")), (0, l.getValidValue)(I.numberscalevalue) && (o = I.numberscalevalue.split(",")), (h = (0, l.getValidValue)(I.snumberscalevalue, I.numberscalevalue)) && (h = h.split(",")), (s = (0, l.getValidValue)(I.xnumberscalevalue, I.numberscalevalue)) && (s = s.split(",")), (c = (0, l.getValidValue)(I.ticknumberscalevalue, I.numberscalevalue)) && (c = c.split(",")), (u = (0, l.getValidValue)(I.ynumberscalevalue, I.numberscalevalue)) && (u = u.split(",")), (0, l.getValidValue)(I.thousandseparatorposition))
                            for (y = (d = I.thousandseparatorposition.split(",")).length, w = f.thousandseparatorposition[0]; y--;)(x = parseInt(d[y], 10)) <= 0 && (x = w), w = d[y] = x;
                        C = (0, l.pluckNumber)(I.scalerecursively, 0), _ = (0, l.pluckNumber)(I.sscalerecursively, C), k = (0, l.pluckNumber)(I.xscalerecursively, C), S = (0, l.pluckNumber)(I.maxscalerecursion, -1), E = (0, l.pluckNumber)(I.smaxscalerecursion, S), A = (0, l.pluckNumber)(I.xmaxscalerecursion, S), T = (0, l.getValidValue)(I.scaleseparator, " "), M = (0, l.getValidValue)(I.sscaleseparator, T), N = (0, l.getValidValue)(I.xscaleseparator, T), S || (S = -1), D.baseConf = b = { cacheStore: [], formatnumber: (0, l.pluck)(I.formatnumber, R.formatnumber), formatnumberscale: (0, l.pluck)(I.formatnumberscale, O.formatnumberscale, R.formatnumberscale), forcenumberscale: (0, l.pluck)(I.forcenumberscale, R.forcenumberscale), defaultnumberscale: (0, l.getFirstValue)(I.defaultnumberscale, R.defaultnumberscale), numberscaleunit: (0, l.pluck)(t, R.numberscaleunit).concat(), numberscalevalue: (0, l.pluck)(o, R.numberscalevalue).concat(), numberprefix: (0, l.parseUnsafeString)((0, l.getFirstValue)(I.numberprefix, R.numberprefix)), numbersuffix: (0, l.parseUnsafeString)((0, l.getFirstValue)(I.numbersuffix, R.numbersuffix)), decimalprecision: parseInt("auto" === I.decimals ? R.decimalprecision : (0, l.pluck)(I.decimals, I.decimalprecision, O.decimals, R.decimals, O.decimalprecision, R.decimalprecision), 10), forcedecimals: (0, l.pluck)(I.forcedecimals, R.forcedecimals), decimalseparator: (0, l.pluck)(I.decimalseparator, R.decimalseparator), thousandseparator: (0, l.pluck)(I.thousandseparator, R.thousandseparator), thousandseparatorposition: (0, l.pluck)(d, R.thousandseparatorposition), indecimalseparator: (0, l.getFirstValue)(I.indecimalseparator, R.indecimalseparator), inthousandseparator: (0, l.getFirstValue)(I.inthousandseparator, R.inthousandseparator), scalerecursively: C, maxscalerecursion: S, scaleseparator: T }, (0, l.getValidValue)(b.inthousandseparator) && (D.baseConf._REGinthousandseparator = new RegExp((0, l.regescape)(b.inthousandseparator), "g")), (0, l.getValidValue)(b.indecimalseparator) && (D.baseConf._REGindecimalseparator = new RegExp((0, l.regescape)(b.indecimalseparator))), D.Y = [], g = { cacheStore: [], formatnumber: b.formatnumber, formatnumberscale: b.formatnumberscale, forcenumberscale: b.forcenumberscale, defaultnumberscale: b.defaultnumberscale, numberscaleunit: b.numberscaleunit.concat(), numberscalevalue: b.numberscalevalue.concat(), numberprefix: b.numberprefix, numbersuffix: b.numbersuffix, decimalprecision: b.decimalprecision, forcedecimals: b.forcedecimals, decimalseparator: b.decimalseparator, thousandseparator: b.thousandseparator, thousandseparatorposition: b.thousandseparatorposition, indecimalseparator: b.indecimalseparator, inthousandseparator: b.inthousandseparator, scalerecursively: C, maxscalerecursion: S, scaleseparator: T }, O.useScaleRecursively && (g.numberscalevalue && g.numberscalevalue.length) === (g.numberscaleunit && g.numberscaleunit.length) || (g.scalerecursively = C = 0), m = { cacheStore: [], formatnumber: g.formatnumber, formatnumberscale: g.formatnumberscale, forcenumberscale: g.forcenumberscale, defaultnumberscale: g.defaultnumberscale, numberscaleunit: g.numberscaleunit.concat(), numberscalevalue: g.numberscalevalue.concat(), numberprefix: g.numberprefix, numbersuffix: g.numbersuffix, decimalprecision: parseInt((0, l.pluck)(I.yaxisvaluedecimals, g.decimalprecision, 2), 10), forcedecimals: (0, l.pluck)(I.forceyaxisvaluedecimals, g.forcedecimals), decimalseparator: g.decimalseparator, thousandseparator: g.thousandseparator, thousandseparatorposition: g.thousandseparatorposition.concat(), indecimalseparator: g.indecimalseparator, inthousandseparator: g.inthousandseparator, scalerecursively: C, maxscalerecursion: S, scaleseparator: T }, v = { cacheStore: [], formatnumber: (0, l.pluck)(I.sformatnumber, f.sformatnumber), formatnumberscale: (0, l.pluck)(I.sformatnumberscale, f.sformatnumberscale), forcenumberscale: (0, l.pluck)(I.sforcenumberscale, f.sforcenumberscale), defaultnumberscale: (0, l.getFirstValue)(I.sdefaultnumberscale, g.defaultnumberscale), numberscaleunit: (0, l.pluck)(r, f.snumberscaleunit).concat(), numberscalevalue: (0, l.pluck)(h, f.snumberscalevalue).concat(), numberprefix: (0, l.parseUnsafeString)((0, l.getFirstValue)(I.snumberprefix, f.snumberprefix)), numbersuffix: (0, l.parseUnsafeString)((0, l.getFirstValue)(I.snumbersuffix, f.snumbersuffix)), decimalprecision: parseInt((0, l.pluck)(I.syaxisvaluedecimals, I.sdecimals, I.decimals, f.sdecimals), 10), forcedecimals: (0, l.pluck)(I.forcesyaxisvaluedecimals, I.sforcedecimals, I.forcedecimals, f.sforcedecimals), decimalseparator: (0, l.pluck)(I.decimalseparator, f.decimalseparator), thousandseparator: (0, l.pluck)(I.thousandseparator, f.thousandseparator), thousandseparatorposition: g.thousandseparatorposition.concat(), indecimalseparator: (0, l.parseUnsafeString)((0, l.pluck)(I.indecimalseparator, f.indecimalseparator)), inthousandseparator: (0, l.parseUnsafeString)((0, l.pluck)(I.inthousandseparator, f.inthousandseparator)), scalerecursively: _, maxscalerecursion: E, scaleseparator: M }, (p = (0, l.extend2)({}, v)).decimalprecision = parseInt((0, l.pluck)(I.sdecimals, I.decimals, I.syaxisvaluedecimals, f.sdecimals), 10), p.forcedecimals = (0, l.pluck)(I.sforcedecimals, I.forcedecimals, I.forcesyaxisvaluedecimals, f.sforcedecimals), p.cacheStore = [], O.useScaleRecursively && (v.numberscalevalue && v.numberscalevalue.length) === (v.numberscaleunit && v.numberscaleunit.length) || (v.scalerecursively = _ = 0), /^(bubble|scatter|selectscatter|zoomscatter)$/gi.test(L) && (m.formatnumber = (0, l.pluck)(I.yformatnumber, m.formatnumber), m.formatnumberscale = (0, l.pluck)(I.yformatnumberscale, m.formatnumberscale), m.forcenumberscale = (0, l.pluck)(I.yforcenumberscale, m.forcenumberscale), m.defaultnumberscale = (0, l.getFirstValue)(I.ydefaultnumberscale, m.defaultnumberscale), m.numberscaleunit = (0, l.pluck)(i, m.numberscaleunit), m.numberscalevalue = (0, l.pluck)(u, m.numberscalevalue), m.numberprefix = (0, l.parseUnsafeString)((0, l.pluck)(I.ynumberprefix, m.numberprefix)), m.numbersuffix = (0, l.parseUnsafeString)((0, l.pluck)(I.ynumbersuffix, m.numbersuffix)), g.formatnumber = (0, l.pluck)(I.yformatnumber, g.formatnumber), g.formatnumberscale = (0, l.pluck)(I.yformatnumberscale, g.formatnumberscale), g.forcenumberscale = (0, l.pluck)(I.yforcenumberscale, g.forcenumberscale), g.defaultnumberscale = (0, l.getFirstValue)(I.ydefaultnumberscale, g.defaultnumberscale), g.numberscaleunit = (0, l.pluck)(I.ynumberscaleunit, g.numberscaleunit.concat()), g.numberscalevalue = (0, l.pluck)(I.ynumberscalevalue, g.numberscalevalue.concat()), g.numberprefix = (0, l.parseUnsafeString)((0, l.pluck)(I.ynumberprefix, g.numberprefix)), g.numbersuffix = (0, l.parseUnsafeString)((0, l.pluck)(I.ynumbersuffix, g.numbersuffix))), /^(pie2d|pie3d|doughnut2d|doughnut3d|marimekko|pareto2d|pareto3d)$/.test(L) && (g.decimalprecision = (0, l.pluck)(I.decimals, "2")), C && (g.numberscalevalue.push(1), g.numberscaleunit.unshift(g.defaultnumberscale), m.numberscalevalue.push(1), m.numberscaleunit.unshift(m.defaultnumberscale)), _ && (v.numberscalevalue.push(1), v.numberscaleunit.unshift(v.defaultnumberscale), p.numberscalevalue.push(1), p.numberscaleunit.unshift(p.defaultnumberscale)), D.Y[0] = { yAxisLabelConf: m, dataLabelConf: g }, D.Y[1] = { yAxisLabelConf: v, dataLabelConf: p }, D.paramLabels = g, D.param1 = m, D.param2 = v, D.paramLabels2 = p, D.paramX = { cacheStore: [], formatnumber: (0, l.pluck)(I.xformatnumber, b.formatnumber), formatnumberscale: (0, l.pluck)(I.xformatnumberscale, b.formatnumberscale), forcenumberscale: (0, l.pluck)(I.xforcenumberscale, b.forcenumberscale), defaultnumberscale: (0, l.getFirstValue)(I.xdefaultnumberscale, b.defaultnumberscale), numberscaleunit: (0, l.pluck)(n, b.numberscaleunit.concat()), numberscalevalue: (0, l.pluck)(s, b.numberscalevalue.concat()), numberprefix: (0, l.parseUnsafeString)((0, l.pluck)(I.xnumberprefix, b.numberprefix)), numbersuffix: (0, l.parseUnsafeString)((0, l.pluck)(I.xnumbersuffix, b.numbersuffix)), decimalprecision: parseInt((0, l.pluck)(I.xaxisvaluedecimals, I.xaxisvaluesdecimals, b.decimalprecision, 2), 10), forcedecimals: (0, l.pluck)(I.forcexaxisvaluedecimals, 0), decimalseparator: b.decimalseparator, thousandseparator: b.thousandseparator, thousandseparatorposition: b.thousandseparatorposition.concat(), indecimalseparator: b.indecimalseparator, inthousandseparator: b.inthousandseparator, scalerecursively: k, maxscalerecursion: A, scaleseparator: N }, D.paramLegend = (0, l.extend2)((0, l.extend2)({}, b), { cacheStore: [], decimalprecision: parseInt((0, l.pluckNumber)(I.legendvaluedecimals, b.decimalprecision, 2), 10), forcedecimals: (0, l.pluckNumber)(I.legendvalueforcedecimals, b.forcedecimals, 0), formatnumberscale: (0, l.pluck)(I.legendvalueformatnumberscale, b.formatnumberscale), forcenumberscale: (0, l.pluck)(I.legendvalueforcenumberscale, b.forcenumberscale), formatnumber: (0, l.pluck)(I.legendvalueformatnumber, b.formatnumber) }), C && (D.paramLegend.numberscalevalue.push(1), D.paramLegend.numberscaleunit.unshift(D.paramLegend.defaultnumberscale)), O.useScaleRecursively && (D.paramX.numberscalevalue && D.paramX.numberscalevalue.length) === (D.paramX.numberscaleunit && D.paramX.numberscaleunit.length) || (D.paramX.scalerecursively = k = 0), k && (D.paramX.numberscalevalue.push(1), D.paramX.numberscaleunit.unshift(D.paramX.defaultnumberscale)), D.paramScale = { cacheStore: [], formatnumber: (0, l.pluck)(I.tickformatnumber, b.formatnumber), formatnumberscale: (0, l.pluck)(I.tickformatnumberscale, b.formatnumberscale), forcenumberscale: (0, l.pluck)(I.tickforcenumberscale, b.forcenumberscale), defaultnumberscale: (0, l.getFirstValue)(I.tickdefaultnumberscale, b.defaultnumberscale), numberscaleunit: (0, l.pluck)(a, b.numberscaleunit.concat()), numberscalevalue: (0, l.pluck)(c, b.numberscalevalue.concat()), numberprefix: (0, l.parseUnsafeString)((0, l.pluck)(I.ticknumberprefix, b.numberprefix)), numbersuffix: (0, l.parseUnsafeString)((0, l.pluck)(I.ticknumbersuffix, b.numbersuffix)), decimalprecision: parseInt((0, l.pluck)(I.tickvaluedecimals, b.decimalprecision, "2"), 10), forcedecimals: (0, l.pluck)(I.forcetickvaluedecimals, b.forcedecimals, 0), decimalseparator: b.decimalseparator, thousandseparator: b.thousandseparator, thousandseparatorposition: b.thousandseparatorposition.concat(), indecimalseparator: b.indecimalseparator, inthousandseparator: b.inthousandseparator, scalerecursively: C, maxscalerecursion: S, scaleseparator: T }, C && (D.paramScale.numberscalevalue.push(1), D.paramScale.numberscaleunit.unshift(D.paramScale.defaultnumberscale)), D.timeConf = { inputDateFormat: (0, l.pluck)(I.inputdateformat, I.dateformat, "mm/dd/yyyy"), outputDateFormat: (0, l.pluck)(I.outputdateformat, I.inputdateformat, I.dateformat, "mm/dd/yyyy"), days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], daySuffix: ["", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "st"] }, D.cleaneValueCacheStore = {}, D.percentStrCacheStore = {} }, t.dispose = function() { var e = this;
                        e.Y && delete e.Y, e.cleaneValueCacheStore && delete e.cleaneValueCacheStore, e.percentStrCacheStore && delete e.percentStrCacheStore, e.paramLabels && delete e.paramLabels, e.param1 && delete e.param1, e.param2 && delete e.param2, e.paramLabels2 && delete e.paramLabels2, e.csConf && delete e.csConf, e.chart && delete e.chart, e.baseConf && delete e.baseConf, e.timeConf && delete e.timeConf, e.paramX && delete e.paramX, e.paramScale && delete e.paramScale }, t.parseMLAxisConf = function(e, t) { var r, n, a, i, o, s, u, d, h = this.baseConf,
                            g = this.csConf,
                            p = (0, l.pluckNumber)(e.scalerecursively, h.scalerecursively),
                            m = (0, l.pluckNumber)(e.maxscalerecursion, h.maxscalerecursion),
                            v = (0, l.getValidValue)(e.scaleseparator, h.scaleseparator),
                            b = (0, l.pluckNumber)(t, this.Y.length); if ((0, l.getValidValue)(e.numberscaleunit) && (n = e.numberscaleunit.split(",")), (0, l.getValidValue)(e.numberscalevalue) && (a = e.numberscalevalue.split(",")), m || (m = -1), (0, l.getValidValue)(e.thousandseparatorposition))
                            for (s = (o = e.thousandseparatorposition.split(",")).length, d = f.thousandseparatorposition[0]; s--;)(u = (0, l.pluckNumber)(c(o[s]))) ? d = u : u = d, o[s] = u;
                        r = { cacheStore: [], formatnumber: (0, l.pluck)(e.formatnumber, h.formatnumber), formatnumberscale: (0, l.pluck)(e.formatnumberscale, h.formatnumberscale), forcenumberscale: (0, l.pluck)(e.forcenumberscale, h.forcenumberscale), defaultnumberscale: (0, l.getFirstValue)(e.defaultnumberscale, h.defaultnumberscale), numberscaleunit: (0, l.pluck)(n, h.numberscaleunit).concat(), numberscalevalue: (0, l.pluck)(a, h.numberscalevalue).concat(), numberprefix: (0, l.parseUnsafeString)((0, l.getFirstValue)(e.numberprefix, h.numberprefix)), numbersuffix: (0, l.parseUnsafeString)((0, l.getFirstValue)(e.numbersuffix, h.numbersuffix)), forcedecimals: (0, l.pluck)(e.forcedecimals, h.forcedecimals), decimalprecision: parseInt("auto" === e.decimals ? g.decimalprecision : (0, l.pluck)(e.decimals, h.decimalprecision), 10), decimalseparator: (0, l.pluck)(e.decimalseparator, h.decimalseparator), thousandseparator: (0, l.pluck)(e.thousandseparator, h.thousandseparator), thousandseparatorposition: (0, l.pluck)(o, h.thousandseparatorposition), indecimalseparator: (0, l.parseUnsafeString)((0, l.getFirstValue)(e.indecimalseparator, h.indecimalseparator)), inthousandseparator: (0, l.parseUnsafeString)((0, l.getFirstValue)(e.inthousandseparator, h.inthousandseparator)), scalerecursively: p, maxscalerecursion: m, scaleseparator: v }, this.useScaleRecursively && (r.numberscalevalue && r.numberscalevalue.length) === (r.numberscaleunit && r.numberscaleunit.length) || (r.scalerecursively = p = 0), i = { cacheStore: [], formatnumber: r.formatnumber, formatnumberscale: r.formatnumberscale, forcenumberscale: r.forcenumberscale, defaultnumberscale: r.defaultnumberscale, numberscaleunit: r.numberscaleunit.concat(), numberscalevalue: r.numberscalevalue.concat(), numberprefix: r.numberprefix, numbersuffix: r.numbersuffix, decimalprecision: parseInt((0, l.pluck)(e.yaxisvaluedecimals, r.decimalprecision, 2), 10), forcedecimals: (0, l.pluck)(e.forceyaxisvaluedecimals, r.forcedecimals), decimalseparator: r.decimalseparator, thousandseparator: r.thousandseparator, thousandseparatorposition: r.thousandseparatorposition.concat(), indecimalseparator: r.indecimalseparator, inthousandseparator: r.inthousandseparator, scalerecursively: p, maxscalerecursion: m, scaleseparator: v }, p && (r.numberscalevalue.push(1), r.numberscaleunit.unshift(r.defaultnumberscale), i.numberscalevalue.push(1), i.numberscaleunit.unshift(i.defaultnumberscale)), this.Y[b] = { dataLabelConf: r, yAxisLabelConf: i } }, t.percentValue = function(e) { var t, r = this.percentStrCacheStore[e]; return void 0 === r && (t = isNaN(this.paramLabels.decimalprecision) ? "2" : this.paramLabels.decimalprecision, r = this.percentStrCacheStore[e] = s(o(e, t, this.paramLabels.forcedecimals), this.paramLabels.decimalseparator, this.paramLabels.thousandseparator, this.paramLabels.thousandseparatorposition) + "%"), r }, t.yAxisPercentValue = function(e, t) { window.th = this; var r, n, a = this.Y[t] || (t ? this.Y[1] : this.Y[0]); return void 0 === (r = (a = a && a.yAxisLabelConf || this.baseConf).cacheStore[e]) && (n = isNaN(a.decimalprecision) ? "2" : a.decimalprecision, r = a.cacheStore[e] = s(o(e, n, a.forcedecimals), a.decimalseparator, a.thousandseparator, a.thousandseparatorposition) + "%"), r }, t.getCleanValue = function(e, t) { var r, n = this.cleaneValueCacheStore[e]; return (void 0 === n || t) && (r = i(e, this.baseConf), this.cleaneValueCacheStore[e] = n = isNaN(r) ? null : t ? c(r) : r), n }, t.dataLabels = function(e, t) { var r, a = this.Y[t] || (t ? this.Y[1] : this.Y[0]); return void 0 === (r = (a = a && a.dataLabelConf || this.baseConf).cacheStore[e]) && (r = a.cacheStore[e] = n(e, a)), r }, t.formatValue = function(e) { var t, r = this.baseConf; return void 0 === (t = r.cacheStore[e]) && (t = r.cacheStore[e] = n(e, r)), t }, t.yAxis = function(e, t) { var r, a = this.Y[t] || (t ? this.Y[1] : this.Y[0]); return void 0 === (r = (a = a && a.yAxisLabelConf || this.baseConf).cacheStore[e]) && (r = a.cacheStore[e] = n(e, a, !0)), r }, t.xAxis = function(e) { var t = this.paramX.cacheStore[e]; return void 0 === t && (t = this.paramX.cacheStore[e] = n(e, this.paramX, !0)), t }, t.sYAxis = function(e) { var t, r = this.Y[1]; return void 0 === (t = (r = r && r.yAxisLabelConf || this.baseConf).cacheStore[e]) && (t = r.cacheStore[e] = n(e, r)), t }, t.scale = function(e) { var t = this.paramScale.cacheStore[e]; return void 0 === t && (t = this.paramScale.cacheStore[e] = n(e, this.paramScale)), t }, t.legendValue = function(e) { var t = this.paramLegend.cacheStore[e]; return void 0 === t && (t = this.paramLegend.cacheStore[e] = n(e, this.paramLegend)), t }, t.legendPercentValue = function(e) { var t, r = this.percentStrCacheStore[e],
                            n = this.paramLegend; return void 0 === r && (t = isNaN(n.decimalprecision) ? "2" : n.decimalprecision, r = this.percentStrCacheStore[e] = s(o(e, t, n.forcedecimals), n.decimalseparator, n.thousandseparator, n.thousandseparatorposition) + "%"), r }, t.getDateValue = function(e) { var t, r, n, a, i, o = e; return o && !/\//.test(this.timeConf.inputDateFormat) && (o = o.replace(new RegExp(this.timeConf.inputDateFormat.replace(/[a-z]/gi, "").slice(0, 1), "g"), "/")), o = /^dd/.test(this.timeConf.inputDateFormat) && o && o.replace(/(\d{1,2})\/(\d{1,2})\/(\d{2,4})/, "$2/$1/$3") || o, /\s24:/.test(o) ? (o = o.replace(/\s24:/, " 00:"), (t = new Date(o)).setDate(t.getDate() + 1)) : t = new Date(o), !(i = t.getTime()) && o && /\:/.test(o) && (o = o.split(":"), r = (0, l.pluckNumber)(o[0], 0), n = (0, l.pluckNumber)(o[1], 0), a = (0, l.pluckNumber)(o[2], 0), r = r > 23 ? 24 === r && 0 === n && 0 === a ? r : 23 : r, n = n > 59 ? 59 : n, a = a > 59 ? 59 : a, (t = new Date).setHours(r), t.setMinutes(n), t.setSeconds(a), i = t.getTime()), { ms: i, date: t } }, t.getFormattedDate = function(e, t) { var r = "object" == typeof e && e || new Date(e),
                            n = this.timeConf,
                            a = (0, l.pluck)(t, n.outputDateFormat),
                            i = r.getFullYear(),
                            o = r.getMonth(),
                            s = r.getDate(),
                            c = r.getDay(),
                            u = r.getMinutes(),
                            d = r.getSeconds(),
                            f = r.getHours(); return u = u > 9 ? "" + u : "0" + u, d = d > 9 ? "" + d : "0" + d, f = f > 9 ? "" + f : "0" + f, a.match(/dnl/) && (a = a.replace(/dnl/gi, n.days[c])), a.match(/dns/) && (a = a.replace(/dns/gi, n.days[c] && n.days[c].substr(0, 3))), a.match(/dd/) && (a = a.replace(/dd/gi, s)), a.match(/mnl/) && (a = a.replace(/mnl/gi, n.months[o])), a.match(/mns/) && (a = a.replace(/mns/gi, n.months[o] && n.months[o].substr(0, 3))), a.match(/mm/) && (a = a.replace(/mm/gi, o + 1)), a.match(/yyyy/) && (a = a.replace(/yyyy/gi, i)), a.match(/yy/) && (a = a.replace(/yy/gi, (i % 1e3 % 100 + "").replace(/^(\d)$/, "0$1"))), a.match(/hh12/) && (a = a.replace(/hh12/gi, f % 12 || 12)), a.match(/hh/) && (a = a.replace(/hh/gi, f)), a.match(/mn/) && (a = a.replace(/mn/gi, u)), a.match(/ss/) && (a = a.replace(/ss/gi, d)), a.match(/ampm/) && (a = a.replace(/ampm/gi, f < 12 ? "AM" : "PM")), a.match(/ds/) && (a = a.replace(/ds/gi, n.daySuffix[s])), a }, e }();
            n = function(e, t, r) { var n, i, c, u, d, f, h, g, p, m, v, b = e; if (null !== b) { if (n = (b = Number(b)) + "", i = 1 === Number(t.formatnumberscale) ? t.defaultnumberscale : "", m = (p = n.split(".")[1]) ? p.length : t.forcedecimals ? "2" : "", 1 === Number(t.formatnumberscale) && (n = (v = a(b, t.defaultnumberscale, t.numberscalevalue, t.numberscaleunit, t.scalerecursively, t.forcenumberscale)).value, b = v.value, i = v.scale), t.scalerecursively && 0 !== t.formatnumberscale && "0" !== t.formatnumberscale) { if (c = v.value, u = v.scale, d = -1 === Number(t.maxscalerecursion) ? c.length : Math.min(c.length, t.maxscalerecursion), 1 === Number(t.formatnumber))
                            for (n = l.BLANKSTRING, g = 0; g < d; g++) h = (f = 0 === g ? c[g] : Math.abs(c[g])) + "", g === d - 1 && (h = o(f, (0, l.pluck)(t.decimalprecision, m), t.forcedecimals)), n = n + s(h, t.decimalseparator, t.thousandseparator, t.thousandseparatorposition) + u[g] + (g < d - 1 ? t.scaleseparator : l.BLANKSTRING);
                        else
                            for (n = l.BLANKSTRING, g = 0; g < d; g++) n = n + (0 === g ? c[g] : Math.abs(c[g]) + "") + u[g] + (g < d - 1 ? t.scaleseparator : "");
                        n = (t.numberprefix || "") + n + (t.numbersuffix || "") } else 1 === Number(t.formatnumber) && (n = o(b, (0, l.pluck)(t.decimalprecision, m), t.forcedecimals), n = s(n, t.decimalseparator, t.thousandseparator, t.thousandseparatorposition, r)), n = (t.numberprefix || "") + n + i + (t.numbersuffix || ""); return n } }, a = function(e, t, r, n, a, i) { var o, s, c, u, d = {},
                    f = t,
                    h = 0,
                    g = [],
                    p = [],
                    m = e,
                    v = (0, l.pluckNumber)(i) || 0; if (a) { for (o = (0, l.pluckNumber)(r[0]) || 1e3, h = 0; h < r.length; h++) { if (c = (0, l.pluckNumber)(r[h]) || 1e3, !(Math.abs(Number(m)) >= c && h < r.length - 1)) { 0 === h && "" === t && v ? (m = Number(m) / o, g.push(m), p.push(n[1] || "")) : (1 === h && "" === t && v ? (s = m + (g.length ? g.pop() : 0), p.pop(), g.push(s)) : g.push(m), p.push(n[h])); break } m = (m - (u = m % c)) / c, 0 === h && 0 !== u && "" === n[h] && v ? (g.push(u / o), p.push(n[1] || "")) : 0 !== u && (1 === h && "" === t && v ? (s = u + (g.length ? g.pop() : 0), p.pop(), g.push(s)) : g.push(u), p.push(n[h])) } g.reverse(), p.reverse(), d.value = g, d.scale = p } else { if (r.length === n.length)
                        for (h = 0; h < r.length; h++) { if (!((c = (0, l.pluckNumber)(r[h]) || 1e3) && Math.abs(Number(m)) >= c)) { 0 === h && "" === t && v && (f = n[0] || "", m = Number(m) / c); break } f = n[h] || "", m = Number(m) / c } d.value = m, d.scale = f } return d }, o = function(e, t, r) { var n, a, i, o, s = e,
                    l = t; if (l <= 0) return d(s) + ""; if (isNaN(l)) return (s += "").length > 12 && -1 !== s.indexOf(".") && (l = 12 - s.split(".")[0].length, n = u(10, l), s = a = d(s * n) / n + ""), s; if (n = u(10, l), a = d(s * n) / n + "", 1 === Number(r))
                    for (-1 === a.indexOf(".") && (a += ".0"), i = l - a.split(".")[1].length, o = 1; o <= i; o++) a += "0"; return a }, s = function(e, t, r, n, a) { var i, o, s, l, c = Number(e),
                    u = "",
                    d = !1,
                    f = "",
                    h = "",
                    g = 0,
                    p = 0; if (isNaN(c)) return ""; if (c > 1e15) return i = a ? 1 : 14, c.toExponential(i); if (g = 0, p = e.length, -1 !== e.indexOf(".") && (u = e.substring(e.indexOf(".") + 1, e.length), p = e.indexOf(".")), c < 0 && (d = !0, g = 1), (o = (f = e.substring(g, p)).length) < (l = n[s = n.length - 1])) h = f;
                else
                    for (; o >= l;) h = (o - l ? r : "") + f.substr(o - l, l) + h, (o -= l) < (l = (s -= 1) <= 0 ? n[0] : n[s]) && (h = f.substring(o, 0) + h); return "" !== u && (h = h + t + u), !0 === d && (h = "-" + h), h }, i = function(e, t) { var r = e; return r += "", t._REGinthousandseparator && (r = r.replace(t._REGinthousandseparator, "")), t._REGindecimalseparator && (r = r.replace(t._REGindecimalseparator, ".")), r = parseFloat(r), isFinite(r) ? r : NaN }; var p = g;
            t["default"] = p }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(246));
            a["default"].stopPartialEventPropagation = !0, a["default"]._stopabsolutePath = !0; var i = { extension: a["default"], name: "redraphael", type: "plugin" };
            t["default"] = i }, function(e, t, r) { "use strict";
            (function(e) { var n = r(208),
                    a = r(212);
                t.__esModule = !0, t["default"] = void 0; var i, o = n(r(247)),
                    s = a(r(218)),
                    l = "undefined" != typeof window ? window : void 0 !== e ? e : null;

                function c(e) { var t, r, n; return c._url === undefined && (c._url = g), c.is(e, S) ? u ? e() : o["default"].on("raphael.DOMload", e) : c.is(e, w) ? c._engine.create[v](c, e.splice(0, 3 + c.is(e[0], y))).add(e) : (r = (0, s.getArrayCopy)(arguments), t = Array.prototype.slice.call(r, 0), c.is(t[t.length - 1], S) ? (n = t.pop(), u ? n.call(c._engine.create[v](c, t)) : o["default"].on("raphael.DOMload", (function() { n.call(c._engine.create[v](c, t)) }))) : c._engine.create[v](c, arguments)) } c.upgrade = "1.0.0", c.version = "2.1.0", c.eve = o["default"]; var u, d, f, h, g = "",
                    p = " ",
                    m = "hasOwnProperty",
                    v = "apply",
                    b = "concat",
                    y = "number",
                    x = "string",
                    w = "array",
                    C = "object",
                    _ = "split",
                    k = "none",
                    S = "function",
                    E = /R/i,
                    A = /trident/i.test(l.navigator.userAgent),
                    T = { a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0 },
                    M = Array.prototype.splice,
                    N = function() {}.hasOwnProperty("prototype"),
                    D = { doc: l.document, win: l },
                    F = D.doc,
                    I = D.win,
                    L = c.safePointerEventMapping = { mouseover: "pointerover", mousedown: "pointerdown", mousemove: "pointermove", mouseup: "pointerup", mouseout: "pointerout" },
                    O = I.navigator,
                    R = c.supportsTouch = "ontouchstart" in F || O.maxTouchPoints || O.msMaxTouchPoints,
                    P = c.supportsPointer = "onpointerover" in F,
                    V = c.isEdge = /Edge/.test(O.userAgent),
                    j = c.isIE11 = /trident/i.test(O.userAgent) && /rv:11/i.test(O.userAgent) && !I.opera,
                    B = (c.isIE10 = -1 !== O.appVersion.indexOf("MSIE 10"), c.isFirefox = /Firefox/.test(O.userAgent)),
                    H = c.isWindows = /Windows/.test(O.userAgent),
                    G = "L",
                    z = [],
                    U = /[a-z]/i,
                    W = function(e, t, r) { var n = t.toLowerCase(),
                            a = [],
                            i = 0; if (z.length = 0, r.replace(_e, (function(e, t) { t && z.push(+t) })), "r" === n) d.push([t][b](z));
                        else if ("z" === n) d.push([t]);
                        else if (z.length >= T[n]) { for (; i < z.length;) i % T[n] ? a.push(z[i]) : (a.length && d.push(a) && (a = []), a.push(t, z[i])), i++;
                            d.push(a) } },
                    X = function() {},
                    $ = (c.ca = c.customAttributes = X.prototype, function() { this.ca = this.customAttributes = new X, this._CustomAttributes = function() {}, this._CustomAttributes.prototype = this.ca, this._elementsById = {}, this.id = c._oid++, (0, o["default"])("raphael.new", this) }),
                    Y = c.fn = $.prototype = c.prototype,
                    q = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel dragstart dragmove dragend" [_](p),
                    K = { dragstart: "touchstart", dragmove: "touchmove", dragend: "touchend" },
                    J = String,
                    Z = I.parseFloat,
                    Q = I.parseInt,
                    ee = Math,
                    te = ee.max,
                    re = ee.min,
                    ne = ee.abs,
                    ae = ee.pow,
                    ie = ee.cos,
                    oe = ee.sin,
                    se = ee.sqrt,
                    le = ee.round,
                    ce = ee.PI,
                    ue = ce / 180,
                    de = 180 / ce,
                    fe = J.prototype.toLowerCase,
                    he = J.prototype.toUpperCase,
                    ge = Object.prototype.toString,
                    pe = /[, ]+/,
                    me = /\{(\d+)\}/g,
                    ve = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,
                    be = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,
                    ye = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,
                    xe = /,?([achlmqrstvxz]),?/gi,
                    we = /([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,
                    Ce = /([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/gi,
                    _e = /(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/gi,
                    ke = { NaN: 1, Infinity: 1, "-Infinity": 1 },
                    Se = { hs: 1, rg: 1 },
                    Ee = c._availableAttrs = ((i = { "arrow-end": k, "arrow-start": k, blur: 0, "clip-rect": "0 0 1e9 1e9", "clip-path": g, cursor: "default", cx: 0, cy: 0, fill: "#fff", "fill-opacity": 1, font: '10px "Arial"', "font-family": '"Arial"', "font-size": "10", "font-style": "normal", "font-weight": 400, gradient: 0, height: 0, href: "about:blank", "letter-spacing": 0, "line-height": 12, "vertical-align": "middle", opacity: 1, path: "M0,0", r: 0, rx: 0, ry: 0, src: g, stroke: "#000", "stroke-dasharray": g, "stroke-linecap": "butt", "stroke-linejoin": "butt", "stroke-miterlimit": 0, "stroke-opacity": 1, "stroke-width": 1, target: "_blank", "text-anchor": "middle", visibility: g, title: g, transform: g, rotation: 0, width: 0, x: 0, y: 0, "shape-rendering": "auto", alpha: y, "font-stretch": "normal", "alignment-baseline": "auto", "baseline-shift": "auto", "clip-rule": "nonzero", "dominant-baseline": "auto", "fill-rule": "nonzero", filter: k, "flood-color": "#000", "flood-opacity": 1, "font-size-adjust": k })["font-stretch"] = "normal", i["font-variant"] = "normal", i.kerning = "auto", i["lighting-color"] = "white", i["marker-end"] = k, i["marker-mid"] = k, i["marker-start"] = k, i.mask = k, i["pointer-events"] = "visiblePainted", i["stop-color"] = "#000", i["stop-opacity"] = 1, i["stroke-dashoffset"] = 0, i["text-decoration"] = k, i["vector-effect"] = g, i.visibility = "visible", i["word-spacing"] = "normal", i["writing-mode"] = "lr-tb", i),
                    Ae = c._availableAnimAttrs = { blur: y, "clip-rect": "csv", "clip-path": "path", cx: y, cy: y, fill: "colour", "fill-opacity": y, "font-size": y, height: y, opacity: y, path: "path", r: y, rx: y, ry: y, stroke: "colour", "stroke-opacity": y, "stroke-width": y, transform: "transform", width: y, x: y, y: y, color: "colour", borderColor: "colour", borderWidth: y, alpha: y, "text-bound": "text-bound" },
                    Te = {},
                    Me = function(e, t) { return Z(e) - Z(t) },
                    Ne = function(e) { return e },
                    De = c._rectPath = function(e, t, r, n, a) { return a ? [
                            ["M", e + a, t],
                            ["l", r - 2 * a, 0],
                            ["a", a, a, 0, 0, 1, a, a],
                            ["l", 0, n - 2 * a],
                            ["a", a, a, 0, 0, 1, -a, a],
                            ["l", 2 * a - r, 0],
                            ["a", a, a, 0, 0, 1, -a, -a],
                            ["l", 0, 2 * a - n],
                            ["a", a, a, 0, 0, 1, a, -a],
                            ["z"]
                        ] : [
                            ["M", e, t],
                            ["l", r, 0],
                            ["l", 0, n],
                            ["l", -r, 0],
                            ["z"]
                        ] },
                    Fe = function(e, t, r, n) { return null == n && (n = r), [
                            ["M", e, t],
                            ["m", 0, -n],
                            ["a", r, n, 0, 1, 1, 0, 2 * n],
                            ["a", r, n, 0, 1, 1, 0, -2 * n],
                            ["z"]
                        ] },
                    Ie = c._getPath = { group: function() { return !1 }, path: function(e) { return e.attr("path") }, circle: function(e) { var t = e.attrs; return Fe(t.cx, t.cy, t.r) }, ellipse: function(e) { var t = e.attrs; return Fe(t.cx, t.cy, t.rx, t.ry) }, rect: function(e) { var t = e.attrs; return De(t.x, t.y, t.width, t.height, t.r) }, image: function(e) { var t = e.attrs; return De(t.x, t.y, t.width, t.height) }, text: function(e) { var t = e._getBBox(); return De(t.x, t.y, t.width, t.height) } },
                    Le = c.mapPath = function(e, t) { if (!t) return e; var r, n, a, i, o, s, l; for (a = 0, o = (e = ot(e).slice(0)).length; a < o; a++)
                            for (i = 1, s = (l = e[a] = e[a].slice(0)).length; i < s; i += 2) r = t.x(l[i], l[i + 1]), n = t.y(l[i], l[i + 1]), l[i] = r, l[i + 1] = n; return e },
                    Oe = c._lastArgIfGroup = function(e, t) { var r = e.length - 1,
                            n = e[r]; if (n && n.constructor === c.el.constructor && "group" === n.type) return t && (e[r] = undefined, delete e[r], M.call(e, r, 1)), n },
                    Re = c._serializeArgs = function(e) { var t, r, n, a, i = e[0]; if (c.is(i, C) && !c.is(i, w) && "group" !== i.type)
                            for (r = i, i.path && (t = i.path) && !c.is(t, x) && !c.is(t[0], w) && (t += g), n = 1, a = arguments.length; n < a; n += 2) r[arguments[n]] || (r[arguments[n]] = arguments[n + 1]);
                        else
                            for (r = {}, n = 1, a = arguments.length; n < a; n += 2) r[arguments[n]] = e[(n - 1) / 2] || arguments[n + 1]; return r },
                    Pe = c.is = function(e, t) { return "finite" === t ? !ke[m](+e) : t === w ? e instanceof Array : (t !== C || null != e) && ("null" === t && null === e || t === typeof e && null !== e || t === C && e === Object(e) || t === w && Array.isArray && Array.isArray(e) || ge.call(e).slice(8, -1).toLowerCase() === t) },
                    Ve = c.clone = N ? function(e) { if (Object(e) !== e) return e; if (e instanceof Function) return e; var t = new e.constructor; for (var r in e) "prototype" !== r && e[m](r) && (t[r] = Ve(e[r])); return t } : function(e) { if (Object(e) !== e) return e; if (e instanceof Function) return e; var t = new e.constructor; for (var r in e) e[m](r) && (t[r] = Ve(e[r])); return t },
                    je = l.Node;

                function Be(e) { this._comparator = e, this._elements = [] } je && !je.prototype.contains && (je.prototype.contains = function(e) { for (; e = e.parentNode;)
                        if (e === this) return !0; return !1 }), c._g = D, c.merge = s.merge, c.extend = s["default"], c.createUUID = (f = /[xy]/g, h = function(e) { var t = 16 * ee.random() | 0; return ("x" === e ? t : 3 & t | 8).toString(16) }, function() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(f, h).toUpperCase() }), c._radial_gradient = /^x?r(?:\(([^\)]*?)\))?/, c._ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i, c.getElementID = function(e) { return "rr-" + e }, Be.prototype.isEmpty = function() { return 0 === this.size() }, Be.prototype.peek = function() { return this.isEmpty() ? null : this._elements[0] }, Be.prototype.deq = function() { var e = this.peek(),
                        t = this._elements.pop(),
                        r = this.size(); if (0 === r) return e;
                    this._elements[0] = t; for (var n = 0; n < r;) { var a = n,
                            i = 2 * n + 1,
                            o = 2 * n + 2; if (i < r && this._compare(i, a) >= 0 && (a = i), o < r && this._compare(o, a) >= 0 && (a = o), a === n) break;
                        this._swap(a, n), n = a } return e }, Be.prototype.enq = function(e) { for (var t = this._elements.push(e), r = t - 1; r > 0;) { var n = Math.floor((r - 1) / 2); if (this._compare(r, n) <= 0) break;
                        this._swap(n, r), r = n } return t }, Be.prototype.size = function() { return this._elements.length }, Be.prototype._compare = function(e, t) { return this._comparator(this._elements[e], this._elements[t]) }, Be.prototype._swap = function(e, t) { var r = this._elements[e];
                    this._elements[e] = this._elements[t], this._elements[t] = r }, c.type = I.ENABLE_RED_CANVAS && (I.CanvasRenderingContext2D || F.createElement("canvas").getContext) ? "CANVAS" : I.SVGAngle || F.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML", c.svg = !((c.vml = "VML" === c.type) || (c.canvas = "CANVAS" === c.type)), c._Paper = $, c._id = 0, c._oid = 0, c.rad = function(e) { return e % 360 * ue }, c.deg = function(e) { return e * de % 360 }; var He = function(e) { if (c.vml) { var t, r = /^\s+|\s+$/g; try { var n = new ActiveXObject("htmlfile");
                                n.write("<body>"), n.close(), t = n.body } catch (o) { t = createPopup().document.body } var a = t.createTextRange();
                            He = (0, s.cacher)((function(e) { try { t.style.color = J(e).replace(r, g); var n = a.queryCommandValue("ForeColor"); return "#" + ("000000" + (n = (255 & n) << 16 | 65280 & n | (16711680 & n) >>> 16).toString(16)).slice(-6) } catch (o) { return k } })) } else { var i = D.doc.createElement("i");
                            i.title = "Raphaël Colour Picker", i.style.display = k, D.doc.body.appendChild(i), He = (0, s.cacher)((function(e) { return i.style.color = e, D.doc.defaultView.getComputedStyle(i, g).getPropertyValue("color") })) } return He(e) },
                    Ge = function() { return "hsb(" + [this.h, this.s, this.b] + ")" },
                    ze = function() { return "hsl(" + [this.h, this.s, this.l] + ")" },
                    Ue = function() { return this.hex },
                    We = function(e, t, r) { if (null == t && Pe(e, C) && "r" in e && "g" in e && "b" in e && (r = e.b, t = e.g, e = e.r), null == t && Pe(e, x)) { var n = c.getRGB(e);
                            e = n.r, t = n.g, r = n.b } return (e > 1 || t > 1 || r > 1) && (e /= 255, t /= 255, r /= 255), [e, t, r] },
                    Xe = function(e, t, r, n) { var a = { r: e *= 255, g: t *= 255, b: r *= 255, hex: c.rgb(e, t, r), toString: Ue }; return Pe(n, "finite") && (a.opacity = n), a };

                function $e() { return this.hex }

                function Ye(e, t) { for (var r = [], n = 0, a = e.length; a - 2 * !t > n; n += 2) { var i = [{ x: +e[n - 2], y: +e[n - 1] }, { x: +e[n], y: +e[n + 1] }, { x: +e[n + 2], y: +e[n + 3] }, { x: +e[n + 4], y: +e[n + 5] }];
                        t ? n ? a - 4 === n ? i[3] = { x: +e[0], y: +e[1] } : a - 2 === n && (i[2] = { x: +e[0], y: +e[1] }, i[3] = { x: +e[2], y: +e[3] }) : i[0] = { x: +e[a - 2], y: +e[a - 1] } : a - 4 === n ? i[3] = i[2] : n || (i[0] = { x: +e[n], y: +e[n + 1] }), r.push(["C", (-i[0].x + 6 * i[1].x + i[2].x) / 6, (-i[0].y + 6 * i[1].y + i[2].y) / 6, (i[1].x + 6 * i[2].x - i[3].x) / 6, (i[1].y + 6 * i[2].y - i[3].y) / 6, i[2].x, i[2].y]) } return r } c.color = function(e) { var t; return c.is(e, C) && "h" in e && "s" in e && "b" in e ? (t = c.hsb2rgb(e), e.r = t.r, e.g = t.g, e.b = t.b, e.hex = t.hex) : c.is(e, C) && "h" in e && "s" in e && "l" in e ? (t = c.hsl2rgb(e), e.r = t.r, e.g = t.g, e.b = t.b, e.hex = t.hex) : (c.is(e, x) && (e = c.getRGB(e)), c.is(e, C) && "r" in e && "g" in e && "b" in e ? (t = c.rgb2hsl(e), e.h = t.h, e.s = t.s, e.l = t.l, t = c.rgb2hsb(e), e.v = t.b) : (e = { hex: k }).r = e.g = e.b = e.h = e.s = e.v = e.l = -1), e.toString = Ue, e }, c.hsb2rgb = function(e, t, r, n) { var a, i, o, s, l; return this.is(e, C) && "h" in e && "s" in e && "b" in e && (r = e.b, t = e.s, n = (e = e.h).o), s = (l = r * t) * (1 - ne((e = (e *= 360) % 360 / 60) % 2 - 1)), a = i = o = r - l, Xe(a += [l, s, 0, 0, s, l][e = ~~e], i += [s, l, l, s, 0, 0][e], o += [0, 0, s, l, l, s][e], n) }, c.hsl2rgb = function(e, t, r, n) { var a, i, o, s, l; return this.is(e, C) && "h" in e && "s" in e && "l" in e && (r = e.l, t = e.s, e = e.h), (e > 1 || t > 1 || r > 1) && (e /= 360, t /= 100, r /= 100), s = (l = 2 * t * (r < .5 ? r : 1 - r)) * (1 - ne((e = (e *= 360) % 360 / 60) % 2 - 1)), a = i = o = r - l / 2, Xe(a += [l, s, 0, 0, s, l][e = ~~e], i += [s, l, l, s, 0, 0][e], o += [0, 0, s, l, l, s][e], n) }, c.rgb2hsb = function(e, t, r) { var n, a; return e = (r = We(e, t, r))[0], t = r[1], r = r[2], { h: ((0 === (a = (n = te(e, t, r)) - re(e, t, r)) ? null : n === e ? (t - r) / a : n === t ? (r - e) / a + 2 : (e - t) / a + 4) + 360) % 6 * 60 / 360, s: 0 === a ? 0 : a / n, b: n, toString: Ge } }, c.rgb2hsl = function(e, t, r) { var n, a, i, o; return e = (r = We(e, t, r))[0], t = r[1], r = r[2], n = ((a = te(e, t, r)) + (i = re(e, t, r))) / 2, { h: ((0 === (o = a - i) ? null : a === e ? (t - r) / o : a === t ? (r - e) / o + 2 : (e - t) / o + 4) + 360) % 6 * 60 / 360, s: 0 === o ? 0 : n < .5 ? o / (2 * n) : o / (2 - 2 * n), l: n, toString: ze } }, c._path2string = function() { return this.join(",").replace(xe, "$1") }, c._cacher = s.cacher, c.getRGB = (0, s.cacher)((function(e) { var t, r, n, a, i, o, s; return e && Pe(e, C) && "opacity" in e && (t = e.opacity), !e || (e = J(e)).indexOf("-") + 1 ? { r: -1, g: -1, b: -1, hex: k, error: 1, toString: $e } : e === k ? { r: -1, g: -1, b: -1, hex: k, toString: $e } : (!Se[m](e.toLowerCase().substring(0, 2)) && "#" !== e.charAt() && (e = He(e)), (s = e.match(ve)) ? (s[2] && (a = Q(s[2].substring(5), 16), n = Q(s[2].substring(3, 5), 16), r = Q(s[2].substring(1, 3), 16)), s[3] && (a = Q((i = s[3].charAt(3)) + i, 16), n = Q((i = s[3].charAt(2)) + i, 16), r = Q((i = s[3].charAt(1)) + i, 16)), s[4] && (o = s[4][_](ye), r = Z(o[0]), "%" === o[0].slice(-1) && (r *= 2.55), n = Z(o[1]), "%" === o[1].slice(-1) && (n *= 2.55), a = Z(o[2]), "%" === o[2].slice(-1) && (a *= 2.55), "rgba" === s[1].toLowerCase().slice(0, 4) && (t = Z(o[3])), o[3] && "%" === o[3].slice(-1) && (t /= 100)), s[5] ? (o = s[5][_](ye), r = Z(o[0]), "%" === o[0].slice(-1) && (r *= 2.55), n = Z(o[1]), "%" === o[1].slice(-1) && (n *= 2.55), a = Z(o[2]), "%" === o[2].slice(-1) && (a *= 2.55), ("deg" === o[0].slice(-3) || "°" === o[0].slice(-1)) && (r /= 360), "hsba" === s[1].toLowerCase().slice(0, 4) && (t = Z(o[3])), o[3] && "%" === o[3].slice(-1) && (t /= 100), c.hsb2rgb(r, n, a, t)) : s[6] ? (o = s[6][_](ye), r = Z(o[0]), "%" === o[0].slice(-1) && (r *= 2.55), n = Z(o[1]), "%" === o[1].slice(-1) && (n *= 2.55), a = Z(o[2]), "%" === o[2].slice(-1) && (a *= 2.55), ("deg" === o[0].slice(-3) || "°" === o[0].slice(-1)) && (r /= 360), "hsla" === s[1].toLowerCase().slice(0, 4) && (t = Z(o[3])), o[3] && "%" === o[3].slice(-1) && (t /= 100), c.hsl2rgb(r, n, a, t)) : ((s = { r: r, g: n, b: a, toString: $e }).hex = "#" + (16777216 | a | n << 8 | r << 16).toString(16).slice(1), c.is(t, "finite") && (s.opacity = t), s)) : { r: -1, g: -1, b: -1, hex: k, error: 1, toString: $e }) }), c), c.tintshade = (0, s.cacher)((function(e, t) { var r, n = c.getRGB(e),
                        a = 255; return t < 0 && (t *= -1, a = 0), t > 1 && (t = 1), (r = 0 === t ? n : { r: a - (a - n.r) * t, g: a - (a - n.g) * t, b: a - (a - n.b) * t, toString: $e }).hex = c.rgb(r.r, r.g, r.b), n.error && (r.error = n.error), "opacity" in n ? (r.rgba = "rgba(" + [r.r, r.g, r.b, n.opacity].join(",") + ")", r.opacity = n.opacity) : r.rgba = "rgb(" + [r.r, r.g, r.b].join(",") + ")", r }), c), c.rgb = (0, s.cacher)((function(e, t, r) { return "#" + (16777216 | r | t << 8 | e << 16).toString(16).slice(1) })), c.sanitizePath = function(e) { var t; return t = e.join ? e.join(",") : e, t = E.test(t) ? c._pathToAbsolute(t) : t.replace(xe, "$1") }, c.parsePathString = function(e) { if (!e || !e.length) return null; var t = qe(e); if (t.arr) return Qe(t.arr); if (d = void 0, c.is(e, w))
                        if (e = J(e).replace(/,?([A-Z]),?/g, ",$1,").replace(/(^,?)|(,?$)/g, "").replace(/,,?/g, ",").split(","), c.is(e[0], w)) d = Qe(e);
                        else { var r, n, a, i = [],
                                o = e.length; for (d = [], r = 0; r < o; r += 1) U.test(e[r]) ? (i.length && d.push(i), i = [n = e[r]], a = T[n.toLowerCase()]) : a ? (i.push(+e[r]), a--) : e[r].length && (d.push(i), i = [n].concat(+e[r]), a = T[n.toLowerCase()] - 1);
                            d.push(i) } return d && d.length || (d = [], J(e).replace(we, W)), d.toString = c._path2string, t.arr = d, t.arr }, c.parseTransformString = (0, s.cacher)((function(e) { if (!e) return null; var t = []; return c.is(e, w) && c.is(e[0], w) && (t = Qe(e)), t.length || J(e).replace(Ce, (function(e, r, n) { var a = [];
                        fe.call(r);
                        n.replace(_e, (function(e, t) { t && a.push(+t) })), t.push([r][b](a)) })), t.toString = c._path2string, t })); var qe = (0, s.cacher)((function() { return {} }), void 0, void 0, void 0, 500, {}, !0);

                function Ke(e, t, r, n, a) { return e * (e * (-3 * t + 9 * r - 9 * n + 3 * a) + 6 * t - 12 * r + 6 * n) - 3 * t + 3 * r }

                function Je(e, t, r, n, a, i, o, s, l) { null == l && (l = 1); for (var c = (l = l > 1 ? 1 : l < 0 ? 0 : l) / 2, u = [-.1252, .1252, -.3678, .3678, -.5873, .5873, -.7699, .7699, -.9041, .9041, -.9816, .9816], d = [.2491, .2491, .2335, .2335, .2032, .2032, .1601, .1601, .1069, .1069, .0472, .0472], f = 0, h = 0; h < 12; h++) { var g = c * u[h] + c,
                            p = Ke(g, e, r, a, o),
                            m = Ke(g, t, n, i, s);
                        f += d[h] * se(p * p + m * m) } return c * f } c.findDotsAtSegment = function(e, t, r, n, a, i, o, s, l) { var c = 1 - l,
                        u = ae(c, 3),
                        d = ae(c, 2),
                        f = l * l,
                        h = f * l,
                        g = u * e + 3 * d * l * r + 3 * c * l * l * a + h * o,
                        p = u * t + 3 * d * l * n + 3 * c * l * l * i + h * s,
                        m = e + 2 * l * (r - e) + f * (a - 2 * r + e),
                        v = t + 2 * l * (n - t) + f * (i - 2 * n + t),
                        b = r + 2 * l * (a - r) + f * (o - 2 * a + r),
                        y = n + 2 * l * (i - n) + f * (s - 2 * i + n),
                        x = c * e + l * r,
                        w = c * t + l * n,
                        C = c * a + l * o,
                        _ = c * i + l * s,
                        k = 90 - 180 * ee.atan2(m - b, v - y) / ce; return (m > b || v < y) && (k += 180), { x: g, y: p, m: { x: m, y: v }, n: { x: b, y: y }, start: { x: x, y: w }, end: { x: C, y: _ }, alpha: k } }, c._removedFactory = function(e) { return function() {
                        (0, o["default"])("raphael.log", null, "Raphaël: you are calling to method “" + e + "” of removed object", e) } }; var Ze = c.pathBBox = function(e) { var t = qe(e); if (!e) return { x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0 }; for (var r, n = 0, a = 0, i = [], o = [], s = 0, l = (e = ot(e)).length; s < l; s++)
                            if ("M" === (r = e[s])[0]) n = r[1], a = r[2], i.push(n), o.push(a);
                            else { var c = it(n, a, r[1], r[2], r[3], r[4], r[5], r[6]);
                                i = i[b](c.min.x, c.max.x), o = o[b](c.min.y, c.max.y), n = r[5], a = r[6] } var u = re[v](0, i),
                            d = re[v](0, o),
                            f = te[v](0, i),
                            h = te[v](0, o),
                            g = { x: u, y: d, x2: f, y2: h, width: f - u, height: h - d }; return t.bbox = Ve(g), g },
                    Qe = function(e) { var t = Ve(e); return t.toString = c._path2string, t },
                    et = c._pathToAbsolute = function(e) { var t, r = qe(e); if (!r.abs) { if (c.is(e, w) && c.is(e && e[0], w) || (e = c.parsePathString(e)), !e || !e.length) return (t = [
                                ["M", 0, 0]
                            ]).toString = c._path2string, t; var n = 0,
                                a = 0,
                                i = 0,
                                o = 0,
                                s = 0;
                            t = [], "M" === e[0][0] && (i = n = +e[0][1], o = a = +e[0][2], s++, t[0] = ["M", n, a]); for (var l, u, d = 3 === e.length && "M" === e[0][0] && "R" === e[1][0].toUpperCase() && "Z" === e[2][0].toUpperCase(), f = s, h = e.length; f < h; f++) { if (t.push(l = []), (u = e[f])[0] != he.call(u[0])) switch (l[0] = he.call(u[0]), l[0]) {
                                        case "A":
                                            l[1] = u[1], l[2] = u[2], l[3] = u[3], l[4] = u[4], l[5] = u[5], l[6] = +(u[6] + n), l[7] = +(u[7] + a); break;
                                        case "V":
                                            l[1] = +u[1] + a; break;
                                        case "H":
                                            l[1] = +u[1] + n; break;
                                        case "R":
                                            for (var g = [n, a][b](u.slice(1)), p = 2, m = g.length; p < m; p++) g[p] = +g[p] + n, g[++p] = +g[p] + a;
                                            t.pop(), t = t[b](Ye(g, d)); break;
                                        case "M":
                                            i = +u[1] + n, o = +u[2] + a;
                                        default:
                                            for (p = 1, m = u.length; p < m; p++) l[p] = +u[p] + (p % 2 ? n : a), p % 2 ? n = l[p] : a = l[p] } else if ("R" === u[0]) g = [n, a][b](u.slice(1)), t.pop(), t = t[b](Ye(g, d)), l = ["R"][b](u.slice(-2));
                                    else
                                        for (var v = 0, y = u.length; v < y; v++) l[v] = u[v]; switch (l[0]) {
                                    case "Z":
                                        n = i, a = o; break;
                                    case "H":
                                        n = l[1]; break;
                                    case "V":
                                        a = l[1]; break;
                                    case "M":
                                        i = l[l.length - 2], o = l[l.length - 1];
                                    default:
                                        n = l[l.length - 2], a = l[l.length - 1] } } t.toString = c._path2string, r.abs = t } return Qe(r.abs) },
                    tt = function(e, t, r, n) { return [e, t, r, n, r, n] },
                    rt = function(e, t, r, n, a, i) { return [1 / 3 * e + 2 / 3 * r, 1 / 3 * t + 2 / 3 * n, 1 / 3 * a + 2 / 3 * r, 1 / 3 * i + 2 / 3 * n, a, i] },
                    nt = function Yt(e, t, r, n, a, i, o, l, c, u) { if (o = o && +o, i = i && +i, 0 === r || 0 === n) return tt(e, t, l, c); var d, f = 120 * ce / 180,
                            h = ue * (+a || 0),
                            g = [],
                            p = (0, s.cacher)((function(e, t, r) { return { x: e * ie(r) - t * oe(r), y: e * oe(r) + t * ie(r) } })); if (u) E = u[0], A = u[1], k = u[2], S = u[3];
                        else { e = (d = p(e, t, -h)).x, t = d.y, l = (d = p(l, c, -h)).x, c = d.y;
                            ie(ue * a), oe(ue * a); var m = (e - l) / 2,
                                v = (t - c) / 2,
                                y = m * m / (r * r) + v * v / (n * n);
                            y > 1 && (r *= y = se(y), n *= y); var x = r * r,
                                w = n * n,
                                C = (i === o ? -1 : 1) * se(ne((x * w - x * v * v - w * m * m) / (x * v * v + w * m * m))),
                                k = C * r * v / n + (e + l) / 2,
                                S = C * -n * m / r + (t + c) / 2,
                                E = ee.asin(((t - S) / n).toFixed(9)),
                                A = ee.asin(((c - S) / n).toFixed(9));
                            (E = e < k ? ce - E : E) < 0 && (E = 2 * ce + E), (A = l < k ? ce - A : A) < 0 && (A = 2 * ce + A), o && E > A && (E -= 2 * ce), !o && A > E && (A -= 2 * ce) } var T = A - E; if (ne(T) > f) { var M = A,
                                N = l,
                                D = c;
                            g = Yt(l = k + r * ie(A = E + f * (o && A > E ? 1 : -1)), c = S + n * oe(A), r, n, a, 0, o, N, D, [A, M, k, S]) } T = A - E; var F = ie(E),
                            I = oe(E),
                            L = ie(A),
                            O = oe(A),
                            R = ee.tan(T / 4),
                            P = 4 / 3 * r * R,
                            V = 4 / 3 * n * R,
                            j = [e, t],
                            B = [e + P * I, t - V * F],
                            H = [l + P * O, c - V * L],
                            G = [l, c]; if (B[0] = 2 * j[0] - B[0], B[1] = 2 * j[1] - B[1], u) return [B, H, G][b](g); for (var z = [], U = 0, W = (g = [B, H, G][b](g).join()[_](",")).length; U < W; U++) z[U] = U % 2 ? p(g[U - 1], g[U], h).y : p(g[U], g[U + 1], h).x; return z },
                    at = function(e, t, r, n, a, i, o, s, l) { var c = 1 - l; return { x: ae(c, 3) * e + 3 * ae(c, 2) * l * r + 3 * c * l * l * a + ae(l, 3) * o, y: ae(c, 3) * t + 3 * ae(c, 2) * l * n + 3 * c * l * l * i + ae(l, 3) * s } },
                    it = (0, s.cacher)((function(e, t, r, n, a, i, o, s) { var l, c = a - 2 * r + e - (o - 2 * a + r),
                            u = 2 * (r - e) - 2 * (a - r),
                            d = e - r,
                            f = (-u + se(u * u - 4 * c * d)) / 2 / c,
                            h = (-u - se(u * u - 4 * c * d)) / 2 / c,
                            g = [t, s],
                            p = [e, o]; return ne(f) > "1e12" && (f = .5), ne(h) > "1e12" && (h = .5), f > 0 && f < 1 && (l = at(e, t, r, n, a, i, o, s, f), p.push(l.x), g.push(l.y)), h > 0 && h < 1 && (l = at(e, t, r, n, a, i, o, s, h), p.push(l.x), g.push(l.y)), f = (-(u = 2 * (n - t) - 2 * (i - n)) + se(u * u - 4 * (c = i - 2 * n + t - (s - 2 * i + n)) * (d = t - n))) / 2 / c, h = (-u - se(u * u - 4 * c * d)) / 2 / c, ne(f) > "1e12" && (f = .5), ne(h) > "1e12" && (h = .5), f > 0 && f < 1 && (l = at(e, t, r, n, a, i, o, s, f), p.push(l.x), g.push(l.y)), h > 0 && h < 1 && (l = at(e, t, r, n, a, i, o, s, h), p.push(l.x), g.push(l.y)), { min: { x: re[v](0, p), y: re[v](0, g) }, max: { x: te[v](0, p), y: te[v](0, g) } } })),
                    ot = c._path2curve = (0, s.cacher)((function(e, t) { var r = !t && qe(e); if (!t && r.curve) return Qe(r.curve); for (var n = et(e), a = t && et(t), i = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null }, o = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null }, s = function(e, t) { if (!e) return ["C", t.x, t.y, t.x, t.y, t.x, t.y]; switch (!(e[0] in { T: 1, Q: 1 }) && (t.qx = t.qy = null), e[0]) {
                                    case "M":
                                        t.X = e[1], t.Y = e[2]; break;
                                    case "A":
                                        e = ["C"][b](nt[v](0, [t.x, t.y][b](e.slice(1)))); break;
                                    case "S":
                                        e = ["C", t.x + (t.x - (t.bx || t.x)), t.y + (t.y - (t.by || t.y))][b](e.slice(1)); break;
                                    case "T":
                                        t.qx = t.x + (t.x - (t.qx || t.x)), t.qy = t.y + (t.y - (t.qy || t.y)), e = ["C"][b](rt(t.x, t.y, t.qx, t.qy, e[1], e[2])); break;
                                    case "Q":
                                        t.qx = e[1], t.qy = e[2], e = ["C"][b](rt(t.x, t.y, e[1], e[2], e[3], e[4])); break;
                                    case "L":
                                        e = ["C"][b](tt(t.x, t.y, e[1], e[2])); break;
                                    case "H":
                                        e = ["C"][b](tt(t.x, t.y, e[1], t.y)); break;
                                    case "V":
                                        e = ["C"][b](tt(t.x, t.y, t.x, e[1])); break;
                                    case "Z":
                                        e = ["C"][b](tt(t.x, t.y, t.X, t.Y)) } return e }, l = function(e, t) { if (e[t].length > 7) { e[t].shift(); for (var r = e[t]; r.length;) e.splice(t++, 0, ["C"][b](r.splice(0, 6)));
                                    e.splice(t, 1), d = te(n.length, a && a.length || 0) } }, c = function(e, t, r, i, o) { e && t && "M" === e[o][0] && "M" != t[o][0] && !o && (t.splice(o, 0, ["M", i.x, i.y]), r.bx = 0, r.by = 0, r.x = e[o][1], r.y = e[o][2], d = te(n.length, a && a.length || 0)) }, u = 0, d = te(n.length, a && a.length || 0); u < d; u++) { n[u] = s(n[u], i), l(n, u), a && (a[u] = s(a[u], o)), a && l(a, u), c(n, a, i, o, u), c(a, n, o, i, u); var f = n[u],
                                h = a && a[u],
                                g = f.length,
                                p = a && h.length;
                            i.x = f[g - 2], i.y = f[g - 1], i.bx = Z(f[g - 4]) || i.x, i.by = Z(f[g - 3]) || i.y, o.bx = a && (Z(h[p - 4]) || o.x), o.by = a && (Z(h[p - 3]) || o.y), o.x = a && h[p - 2], o.y = a && h[p - 1] } return a || (r.curve = Qe(n)), a ? [n, a] : n }), null, Qe),
                    st = (c._parseDots = (0, s.cacher)((function(e) { for (var t = [], r = 0, n = e.length; r < n; r++) { var a = {},
                                i = e[r].match(/^([^:]*):?([\d\.]*)/); if (a.color = c.getRGB(i[1]), a.color.error) return null;
                            a.opacity = a.color.opacity, a.color = a.color.hex, i[2] && (a.offset = i[2] + "%"), t.push(a) } for (r = 1, n = t.length - 1; r < n; r++)
                            if (!t[r].offset) { for (var o = Z(t[r - 1].offset || 0), s = 0, l = r + 1; l < n; l++)
                                    if (t[l].offset) { s = t[l].offset; break } s || (s = 100, l = n); for (var u = ((s = Z(s)) - o) / (l - r + 1); r < l; r++) o += u, t[r].offset = o + "%" } return t })), c._tear = function(e, t) { e === t.top && (t.top = e.prev), e === t.bottom && (t.bottom = e.next), e.next && (e.next.prev = e.prev), e.prev && (e.prev.next = e.next) }),
                    lt = (c._tofront = function(e, t) { return t.top !== e && (st(e, t), e.next = null, e.prev = t.top, t.top.next = e, t.top = e, !0) }, c._toback = function(e, t) { return t.bottom !== e && (st(e, t), e.next = t.bottom, e.prev = null, t.bottom.prev = e, t.bottom = e, !0) }, c._insertafter = function(e, t, r, n) { st(e, r), e.parent = n, t === n.top && (n.top = e), t.next && (t.next.prev = e), e.next = t.next, e.prev = t, t.next = e }, c._insertbefore = function(e, t, r, n) { st(e, r), e.parent = n, t === n.bottom && (n.bottom = e), t.prev && (t.prev.next = e), e.prev = t.prev, t.prev = e, e.next = t }, c._extractTransform = function(e, t) { if (null == t) return e._.transform;
                        t = J(t).replace(/\.{3}|\u2026/g, e._.transform || g); var r, n, a = c.parseTransformString(t),
                            i = 0,
                            o = 1,
                            s = 1,
                            l = e._,
                            u = new dt; if (l.transform = a || [], a)
                            for (var d = 0, f = a.length; d < f; d++) { var h, p, m, v, b, y = a[d],
                                    x = y.length,
                                    w = J(y[0]).toLowerCase(),
                                    C = y[0] != w,
                                    _ = C ? u.invert() : 0; "t" === w && 3 === x ? C ? (h = _.x(0, 0), p = _.y(0, 0), m = _.x(y[1], y[2]), v = _.y(y[1], y[2]), u.translate(m - h, v - p)) : u.translate(y[1], y[2]) : "r" === w ? 2 === x ? (b = l.bb || (l.bb = e.getBBox(1)), u.rotate(y[1], b.x + b.width / 2, b.y + b.height / 2), i += y[1]) : 4 === x && (C ? (m = _.x(y[2], y[3]), v = _.y(y[2], y[3]), u.rotate(y[1], m, v)) : u.rotate(y[1], y[2], y[3]), i += y[1]) : "s" === w ? 2 === x || 3 === x ? (b = l.bb || (l.bb = e.getBBox(1)), u.scale(y[1], y[x - 1], b.x + b.width / 2, b.y + b.height / 2), o *= y[1], s *= y[x - 1]) : 5 === x && (C ? (m = _.x(y[3], y[4]), v = _.y(y[3], y[4]), u.scale(y[1], y[2], m, v)) : u.scale(y[1], y[2], y[3], y[4]), o *= y[1], s *= y[2]) : "m" === w && 7 === x && u.add(y[1], y[2], y[3], y[4], y[5], y[6]), l.dirtyT = 1, e.matrix = u } e.matrix = u, l.sx = o, l.sy = s, l.deg = i, l.dx = r = u.e, l.dy = n = u.f, 1 === o && 1 === s && !i && l.bbox ? (l.bbox.x += +r, l.bbox.y += +n) : l.dirtyT = 1 }),
                    ct = function(e) { var t = e[0]; switch (t.toLowerCase()) {
                            case "t":
                                return [t, 0, 0];
                            case "m":
                                return [t, 1, 0, 0, 1, 0, 0];
                            case "r":
                                return 4 === e.length ? [t, 0, e[2], e[3]] : [t, 0];
                            case "s":
                                return 5 === e.length ? [t, 1, 1, e[3], e[4]] : 3 === e.length ? [t, 1, 1] : [t, 1] } },
                    ut = c._equaliseTransform = function(e, t) { t = J(t).replace(/\.{3}|\u2026/g, e), e = c.parseTransformString(e) || [], t = c.parseTransformString(t) || []; for (var r, n, a, i, o = te(e.length, t.length), s = [], l = [], u = 0; u < o; u++) { if (a = e[u] || ct(t[u]), i = t[u] || ct(a), a[0] != i[0] || "r" === a[0].toLowerCase() && (a[2] != i[2] || a[3] != i[3]) || "s" === a[0].toLowerCase() && (a[3] != i[3] || a[4] != i[4])) return; for (s[u] = [], l[u] = [], r = 0, n = te(a.length, i.length); r < n; r++) r in a && (s[u][r] = a[r]), r in i && (l[u][r] = i[r]) } return { from: s, to: l } };

                function dt(e, t, r, n, a, i) { null != e ? (this.a = +e, this.b = +t, this.c = +r, this.d = +n, this.e = +a, this.f = +i) : (this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.e = 0, this.f = 0) } c._getContainer = function(e, t, r, n) { var a; if (null != (a = null != n || c.is(e, C) ? e : D.doc.getElementById(e))) return a.tagName ? null == t ? { container: a, width: a.style.pixelWidth || a.offsetWidth, height: a.style.pixelHeight || a.offsetHeight } : { container: a, width: t, height: r } : { container: 1, x: e, y: t, width: r, height: n } }, c._engine = {}, c.path2curve = ot, c.matrix = function(e, t, r, n, a, i) { return new dt(e, t, r, n, a, i) },
                    function(e) {
                        function t(e) { return e[0] * e[0] + e[1] * e[1] }

                        function r(e) { var r = se(t(e));
                            e[0] && (e[0] /= r), e[1] && (e[1] /= r) } e.add = function(e, t, r, n, a, i) { var o, s, l, c, u = [
                                    [],
                                    [],
                                    []
                                ],
                                d = [
                                    [this.a, this.c, this.e],
                                    [this.b, this.d, this.f],
                                    [0, 0, 1]
                                ],
                                f = [
                                    [e, r, a],
                                    [t, n, i],
                                    [0, 0, 1]
                                ]; for (e && e instanceof dt && (f = [
                                    [e.a, e.c, e.e],
                                    [e.b, e.d, e.f],
                                    [0, 0, 1]
                                ]), o = 0; o < 3; o++)
                                for (s = 0; s < 3; s++) { for (c = 0, l = 0; l < 3; l++) c += d[o][l] * f[l][s];
                                    u[o][s] = c } this.a = u[0][0], this.b = u[1][0], this.c = u[0][1], this.d = u[1][1], this.e = u[0][2], this.f = u[1][2] }, e.invert = function() { var e = this,
                                t = e.a * e.d - e.b * e.c; return new dt(e.d / t, -e.b / t, -e.c / t, e.a / t, (e.c * e.f - e.d * e.e) / t, (e.b * e.e - e.a * e.f) / t) }, e.clone = function() { return new dt(this.a, this.b, this.c, this.d, this.e, this.f) }, e.translate = function(e, t) { this.add(1, 0, 0, 1, e, t) }, e.scale = function(e, t, r, n) { null == t && (t = e), (r || n) && this.add(1, 0, 0, 1, r, n), this.add(e, 0, 0, t, 0, 0), (r || n) && this.add(1, 0, 0, 1, -r, -n) }, e.rotate = function(e, t, r) { e = c.rad(e), t = t || 0, r = r || 0; var n = +ie(e).toFixed(9),
                                a = +oe(e).toFixed(9);
                            this.add(n, a, -a, n, t, r), this.add(1, 0, 0, 1, -t, -r) }, e.x = function(e, t) { return e * this.a + t * this.c + this.e }, e.y = function(e, t) { return e * this.b + t * this.d + this.f }, e.get = function(e) { return +this[J.fromCharCode(97 + e)].toFixed(4) }, e.toString = function() { return c.svg ? "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" : [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join() }, e.toMatrixString = function() { return "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" }, e.toFilter = function() { return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) + ", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) + ", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod='auto expand')" }, e.offset = function() { return [this.e.toFixed(4), this.f.toFixed(4)] }, e.split = function() { var e = {};
                            e.dx = this.e, e.dy = this.f; var n = [
                                [this.a, this.c],
                                [this.b, this.d]
                            ];
                            e.scalex = se(t(n[0])), r(n[0]), e.shear = n[0][0] * n[1][0] + n[0][1] * n[1][1], n[1] = [n[1][0] - n[0][0] * e.shear, n[1][1] - n[0][1] * e.shear], e.scaley = se(t(n[1])), r(n[1]), e.shear /= e.scaley; var a = -n[0][1],
                                i = n[1][1]; return i < 0 ? (e.rotate = c.deg(ee.acos(i)), a < 0 && (e.rotate = 360 - e.rotate)) : e.rotate = c.deg(ee.asin(a)), e.isSimple = !(+e.shear.toFixed(9) || e.scalex.toFixed(9) !== e.scaley.toFixed(9) && e.rotate), e.isSuperSimple = !+e.shear.toFixed(9) && e.scalex.toFixed(9) === e.scaley.toFixed(9) && !e.rotate, e.noRotation = !+e.shear.toFixed(9) && !e.rotate, e }, e.toTransformString = function(e) { var t = e || this[_](); return t.isSimple ? (t.scalex = +t.scalex.toFixed(4), t.scaley = +t.scaley.toFixed(4), t.rotate = +t.rotate.toFixed(4), (t.dx || t.dy ? "t" + [t.dx, t.dy] : g) + (1 != t.scalex || 1 != t.scaley ? "s" + [t.scalex, t.scaley, 0, 0] : g) + (t.rotate ? "r" + [t.rotate, 0, 0] : g)) : "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)] } }(dt.prototype); var ft = (O = I.navigator).userAgent.match(/Version\/(.*?)\s/) || O.userAgent.match(/Chrome\/(\d+)/); "Apple Computer, Inc." === O.vendor && (ft && ft[1] < 4 || "iP" === O.platform.slice(0, 2)) || "Google Inc." === O.vendor && ft && ft[1] < 8 ? Y.safari = function() { var e = this.rect(-99, -99, this.width + 99, this.height + 99).attr({ stroke: k }); return setTimeout((function() { e.remove() })), !0 } : Y.safari = function() {}; for (var ht = function() { this.returnValue = !1 }, gt = function() { return this.originalEvent.preventDefault() }, pt = function() { this.cancelBubble = !0 }, mt = function() { return this.originalEvent.stopPropagation() }, vt = { stopPropagation: "fn", stopImmediatePropagation: "fn", preventDefault: "fn", type: !0, clientX: !0, clientY: !0, pageX: !0, pageY: !0, bubbles: !0, cancelable: !0, touches: !0, target: !0, originalTarget: !0, srcElement: !0, relatedTarget: !0, fromElement: !0, changedTouches: !0, layerX: !0, layerY: !0, deltaX: !0, deltaY: !0 }, bt = c.makeSelectiveCopy = function(e, t) { var r = function(r) { e[r] = "fn" === vt[r] ? function() { t[r]() } : t[r] }; for (var n in vt) r(n);
                        e.originalEvent = t, e.type || (e.type = t.originalEvent && t.originalEvent.type) }, yt = c.addEvent = D.doc.addEventListener ? function(e, t, r, n) { var a, i, o = P ? L[t] : R ? K[t] : t; return A || (i = { capture: !1 }), n.dragFn && ("pointerup" === o ? o = "mouseup" : void 0 === o && (o = "touchend")), a = function(a) { var i, o = D.doc.documentElement.scrollTop || D.doc.body.scrollTop,
                                    s = D.doc.documentElement.scrollLeft || D.doc.body.scrollLeft; if (R && K[t])
                                    for (var l = 0, c = a.targetTouches && a.targetTouches.length; l < c; l++)
                                        if ((i = a.targetTouches[l].target) === e || "tspan" === i.nodeName && i.parentNode === e) { var u = a;
                                            (a = a.targetTouches[l]).originalEvent = u, a.preventDefault = gt, a.stopPropagation = mt; break } return r.call(n, a, a.clientX + s, a.clientY + o) }, e.addEventListener(o, a, i),
                            function() { return e.removeEventListener(o, a, i), !0 } } : D.doc.attachEvent ? function(e, t, r, n) { var a = function(e) { e = e || D.win.event; var t = D.doc.documentElement.scrollTop || D.doc.body.scrollTop,
                                a = D.doc.documentElement.scrollLeft || D.doc.body.scrollLeft,
                                i = e.clientX + a,
                                o = e.clientY + t; return e.preventDefault = e.preventDefault || ht, e.stopPropagation = e.stopPropagation || pt, r.call(n, e, i, o) }; return e.attachEvent("on" + t, a),
                            function() { return e.detachEvent("on" + t, a), !0 } } : void 0, xt = function(e) { var t, r = D.doc.documentElement.scrollTop || D.doc.body.scrollTop,
                            n = D.doc.documentElement.scrollLeft || D.doc.body.scrollLeft,
                            a = (void 0 !== e.clientX ? e.clientX : e.changedTouches && e.changedTouches[0].clientX) + n,
                            i = (void 0 !== e.clientY ? e.clientY : e.changedTouches && e.changedTouches[0].clientY) + r,
                            s = {},
                            l = this,
                            u = l.dragInfo.onmove.length; if (!(l.dragStartFn && !(Math.abs(a - l._drag.x) >= 2.5 || Math.abs(i - l._drag.y) >= 2.5) || l._blockDrag || P && R && !e.isPrimary))
                            for (; u--;) { if (R && "touchmove" === e.type)
                                    for (var d, f = e.touches.length; f--;)
                                        if ((d = e.touches[f]).identifier === l._drag.id) { a = d.clientX + n, i = d.clientY + r; break } if (!l.removed) { if (l.dragStartFn && (l.dragStartFn(u), l.dragStartFn = undefined, l.dragInfo._dragmove = !0), D.win.opera) { var h = c._engine.getNode(l),
                                            g = h.nextSibling,
                                            p = h.parentNode,
                                            m = h.style.display;
                                        p.removeChild(h), h.style.display = k, h.style.display = m, g ? p.insertBefore(h, g) : p.appendChild(h) } bt(s, e), t = s.data = [a - l._drag.x, i - l._drag.y, a, i], (0, o["default"])("raphael.drag.move." + l.id, l.dragInfo.move_scope[u] || l, s, t) } } }, wt = function e(t) { var r = this,
                            n = r.dragInfo,
                            a = n.onend.length; if (r.dragInfo._dragmove)
                            for (; a--;) r._drag = {}, (0, o["default"])("raphael.drag.end." + r.id, n.end_scope[a] || n.start_scope[a] || n.move_scope[a] || r, t);
                        r.dragInfo._dragmove = undefined, R && !j && !V && (!H || !B) && (r.paper.canvas.style["touch-action"] = "auto"), c.undragmove.call(r, xt), c.undragend.call(r, e), c.unmousemove.call(r, xt).unmouseup.call(r, e) }, Ct = c.el = {}, _t = q.length; _t--;) ! function(e) { c[e] = Ct[e] = function(t, r, n) { return c.is(t, S) && (this.events = this.events || [], this.events.push({ name: e, f: t, unbind: yt(n || this.shape || this.node || D.doc, e, t, r || this) })), this }, c["un" + e] = Ct["un" + e] = function(t) { for (var r = this.events || [], n = r.length; n--;)
                            if (r[n].name === e && r[n].f === t) return r[n].unbind(), r.splice(n, 1), !r.length && delete this.events, this; return this } }(q[_t]);
                Ct.data = function(e, t) { var r = Te[this.id] = Te[this.id] || {}; if (1 === arguments.length) { if (c.is(e, C)) { for (var n in e) e[m](n) && this.data(n, e[n]); return this } return c.stopPartialEventPropagation || (0, o["default"])("raphael.data.get." + this.id, this, r[e], e), r[e] } return r[e] = t, c.stopPartialEventPropagation || (0, o["default"])("raphael.data.set." + this.id, this, t, e), this }, Ct.removeData = function(e) { return null == e ? delete Te[this.id] : Te[this.id] && delete Te[this.id][e], this }, Ct.dbclick = function(e, t) { var r, n = this,
                        a = function(r) { var a;
                            P && !r.isPrimary || (r && r.preventDefault(), (!(a = r).touches || a.touches && 1 === a.touches.length) && (n._tappedOnce ? (e.call(t || n, r), n._tappedOnce = !1) : (n._tappedOnce = !0, setTimeout((function() { n._tappedOnce = !1 }), 500)))) };
                    r = P ? "pointerup" : c.supportsTouch ? "touchstart" : "mouseup", n.node.addEventListener(r, a), c.storeHandlers(n, e, a) }, Ct.undbclick = function(e) { var t = removeHandlers(this, e);
                    t && this.node.removeEventListener(P ? "pointerup" : c.supportsTouch ? "touchstart" : "mouseup", t) }, Ct.getData = function() { return Ve(Te[this.id] || {}) }; var kt = [],
                    St = function() { this.untrack = yt(D.doc, "mouseup", Et, this) },
                    Et = function() { return this.untrack(), this.untrack = null, this.fn && this.fn.apply(this.scope || this.el, arguments) };
                Ct.mouseup = function(e, t, r, n) { return r ? (kt.push(r = { el: this, fn: e, scope: t }), r.unbind = yt(this.shape || this.node || D.doc, "mousedown", St, r), this) : c.mouseup.apply(this, [e, t, n]) }, Ct.unmouseup = function(e) { for (var t, r = kt.length; r--;) kt[r].el === this && kt[r].fn === e && ((t = kt[r]).unbind(), t.untrack && t.untrack(), kt.splice(r, 1)); return t ? this : c.unmouseup.apply(this, arguments) }, Ct.hover = function(e, t, r, n) { return this.on("fc-mouseover", e, r).on("fc-mouseout", t, n) }, Ct.unhover = function(e, t) { return this.off("fc-mouseover", e).off("fc-mouseout", t) }, Ct.fcclick = function(e, t) { var r, n, a, i, o, s = this,
                        l = s.node,
                        u = function(e) { s._lastEventTriggered = "mousedown", a = void 0 !== e.clientX ? e.clientX : e.changedTouches && e.changedTouches[0].clientX, i = void 0 !== e.clientY ? e.clientY : e.changedTouches && e.changedTouches[0].clientY },
                        d = function(e) { var t = void 0 !== e.clientX ? e.clientX : e.changedTouches && e.changedTouches[0].clientX,
                                r = void 0 !== e.clientY ? e.clientY : e.changedTouches && e.changedTouches[0].clientY;
                            (Math.abs(a - t) >= 2.5 || Math.abs(i - r) >= 2.5) && (s._lastEventTriggered = undefined) }; if (s._clickStoreActual || (s._clickStoreActual = []), s._clickStoreDerived || (s._clickStoreDerived = []), !s._clickHandlerHelper) { for (r in o = !P && c.supportsTouch ? { touchstart: function() { s._lastEventTriggered = "touchstart", s._lastEventTriggeredAt = (new Date).getTime() }, touchmove: d } : P && c.supportsTouch ? { pointerdown: u, pointermove: d } : { mousedown: u, mousemove: d }) l.addEventListener ? l.addEventListener(r, o[r]) : l.attachEvent("on" + r, o[r]);
                        s._clickHandlerHelper = o } return !P && c.supportsTouch ? (r = "touchend", n = function(r) { "touchstart" === s._lastEventTriggered && (new Date).getTime() - s._lastEventTriggeredAt <= 500 && setTimeout((function() { e.call(t || s, r) }), 0) }) : (r = "click", n = function(r) { "mousedown" === s._lastEventTriggered && e.call(t || s, r) }), l.addEventListener ? l.addEventListener(r, n) : l.attachEvent("on" + r, n), s._clickStoreDerived.push(n), s._clickStoreActual.push(e), s }, Ct.fcunclick = function(e) { var t, r, n = this.node,
                        a = this._clickHandlerHelper,
                        i = this._clickStoreActual,
                        o = this._clickStoreDerived; if (i) { for (t = i.length - 1; t >= 0; t--) i[t] === e && (n.removeEventListener ? n.removeEventListener(!P && c.supportsTouch ? "touchend" : "click", o[t]) : n.detachEvent("onclick", o[t]), i.splice(t, 1), o.splice(t, 1)); if (!i.length) { for (r in a) n.removeEventListener ? n.removeEventListener(r, a[r]) : n.detachEvent("on" + r, a[r]);
                            this._clickHandlerHelper = undefined } } return this }; var At = [];

                function Tt() { return this.x + p + this.y + p + this.width + " × " + this.height } Ct.drag = function(e, t, r, n, a, i) { var s = this,
                        l = s.dragInfo || (s.dragInfo = { onmove: [], onstart: [], onend: [], move_scope: [], start_scope: [], end_scope: [] }); return e && l.onmove.push(e) && l.move_scope.push(n), t && l.onstart.push(t) && l.start_scope.push(a), r && l.onend.push(r) && l.end_scope.push(i), s.dragFn = s.dragFn || function(e) { var t, r, n, a, i, l, u, d, f, h, g = D.doc.documentElement.scrollTop || D.doc.body.scrollTop,
                            p = D.doc.documentElement.scrollLeft || D.doc.body.scrollLeft,
                            m = {},
                            v = s.dragInfo,
                            b = [xt, void 0, D.doc]; if (!P || e.isPrimary) { for (R && (P ? j || V || H && B || (s.paper.canvas.style["touch-action"] = "none") : e.preventDefault()), s._drag.x = f = (void 0 !== e.clientX ? e.clientX : e.changedTouches && e.changedTouches[0].clientX) + p, s._drag.y = h = (void 0 !== e.clientY ? e.clientY : e.changedTouches && e.changedTouches[0].clientY) + g, s._drag.id = e.identifier, R && !P ? c.dragmove.apply(s, b) : c.mousemove.apply(s, b).mouseup.call(s, wt, void 0, void 0, D.doc), R && c.dragend.call(s, wt, void 0, D.doc), bt(m, e), t = m.data = [f, h], r = 0, i = v.onstart.length; r < i; r++) o["default"].on("raphael.drag.start." + s.id, v.onstart[r]); for (n = 0, l = v.onmove.length; n < l; n++) o["default"].on("raphael.drag.move." + s.id, v.onmove[n]); for (a = 0, u = v.onend.length; a < u; a++) o["default"].on("raphael.drag.end." + s.id, v.onend[a]);
                            i && !l && (d = function() { s.undragmove(), v.onmove = [] }, v.onmove.push(d), o["default"].on("raphael.drag.end." + s.id, d)), s.dragStartFn = function(e) {
                                (0, o["default"])("raphael.drag.start." + s.id, s.dragInfo.start_scope[e] || s.dragInfo.move_scope[e] || s, m, t) } } }, s._drag = {}, At.push({ el: s, start: s.dragFn, onstart: t, onmove: e, onend: r }), t && !s.startHandlerAttached && (R && !P ? s.dragstart(s.dragFn) : s.mousedown(s.dragFn), s.startHandlerAttached = !0), s }, Ct.onDragOver = function(e) { e ? o["default"].on("raphael.drag.over." + this.id, e) : o["default"].unbind("raphael.drag.over." + this.id) }, Ct.undrag = function() { for (var e = At.length; e--;) At[e].el === this && (this.unmousedown(this.dragFn), At.splice(e, 1), o["default"].unbind("raphael.drag.*." + this.id), this.dragInfo = undefined, this.dragFn = undefined, this.startHandlerAttached = undefined);
                    c.unmousemove.call(this, xt).unmouseup.call(this, wt), c.undragmove.call(this, xt), c.undragend.call(this, wt), delete this._drag }, Ct.undragstart = function(e) { var t, r, n = this.dragInfo,
                        a = n && n.onstart,
                        i = n && n.start_scope; if (e)
                        for (t = 0, r = a && a.length; t < r; t++)
                            if (a[t] === e) { a.splice(t, 1), i.splice(t, 1), o["default"].unbind("raphael.drag.start." + this.id, e); break } a && a.length && e || (c.undragstart.call(this, this.dragFn), c.unmousedown.call(this, this.dragFn), o["default"].unbind("raphael.drag.start." + this.id), this.startHandlerAttached = !1, n && (n.onstart = [], n.start_scope = [])) }, Ct.undragmove = function(e) { var t, r, n = this.dragInfo,
                        a = n && n.onmove,
                        i = n && n.move_scope; if (e)
                        for (t = 0, r = a && a.length; t < r; t++)
                            if (a[t] === e) { a.splice(t, 1), i.splice(t, 1), o["default"].unbind("raphael.drag.move." + this.id, e); break } a && a.length && e || (c.undragmove.call(this, xt), c.unmousemove.call(this, xt), n && (n.onmove = [], n.move_scope = []), o["default"].unbind("raphael.drag.move." + this.id)) }, Ct.undragend = function(e) { var t, r, n = this.dragInfo,
                        a = n && n.onend,
                        i = n && n.end_scope; if (e)
                        for (t = 0, r = a && a.length; t < r; t++)
                            if (a[t] === e) { a.splice(t, 1), i.splice(t, 1), o["default"].unbind("raphael.drag.end." + this.id, e); break } a && a.length && e || (c.undragend.call(this, wt), c.unmouseup.call(this, wt), n && (n.onend = [], n.end_scope = []), o["default"].unbind("raphael.drag.end." + this.id)) }, Ct.follow = function(e, t, r) { return e.removed || e.constructor !== c.el.constructor || (e.followers.push({ el: this, stalk: r = { before: "insertBefore", after: "insertAfter" } [r], cb: t }), r && this[r](e)), this }, Ct.unfollow = function(e) { if (e.removed || e.constructor !== c.el.constructor) return this; for (var t = 0, r = e.followers.length; t < r; t++)
                        if (e.followers[t].el === this) { e.followers.splice(t, 1); break } return this }, Y.hide = function() { return this.canvas.style.visibility = "hidden", this }, Y.show = function() { return this.canvas.style.visibility = g, this }, Y.group = function() { var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Oe(t, !0),
                        n = c._engine.group(e, t[0], r, !!t[1]); return e.__set__ && e.__set__.push(n), e._elementsById[n.id] = n }, Y.circle = function() { var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Oe(t, !0),
                        n = e._addDefAttribs() ? Re(t, "cx", 0, "cy", 0, "r", 0, "fill", k, "stroke", "#000") : Re(t),
                        a = c._engine.circle(e, n, r); return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a }, Y.rect = function() { var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Oe(t, !0),
                        n = e._addDefAttribs() ? Re(t, "x", 0, "y", 0, "width", 0, "height", 0, "r", 0, "fill", k, "stroke", "#000") : Re(t),
                        a = c._engine.rect(e, n, r); return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a }, Y.ellipse = function() { var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Oe(t, !0),
                        n = e._addDefAttribs() ? Re(t, "x", 0, "y", 0, "rx", 0, "ry", 0, "fill", k, "stroke", "#000") : Re(t),
                        a = c._engine.ellipse(this, n, r); return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a }, Y.path = function() { var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Oe(t, !0),
                        n = e.config,
                        a = n && n["stroke-linecap"] || "butt",
                        i = e._addDefAttribs() ? Re(t, "path", g, "fill", k, "stroke", "#000", "stroke-linecap", a) : Re(t),
                        o = c._engine.path(e, i, r); return e.__set__ && e.__set__.push(o), e._elementsById[o.id] = o }, Y.image = function() { var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Oe(t, !0),
                        n = e._addDefAttribs() ? Re(t, "x", 0, "y", 0, "width", 0, "height", 0) : Re(t),
                        a = c._engine.image(e, n, r); return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a }, Y.text = function() { var e = this,
                        t = (0, s.getArrayCopy)(arguments),
                        r = Oe(t, !0),
                        n = e._addDefAttribs() ? Re(t, "x", 0, "y", 0, "text", g, "stroke", k, "fill", "#000", "text-anchor", "middle", "vertical-align", "middle") : Re(t),
                        a = c._engine.text(e, n, r, t[1]); return e.__set__ && e.__set__.push(a), e._elementsById[a.id] = a }, Y._addDefAttribs = function() { return !(c.svg && this.config && this.config.noDefaultAttribs) }, Y.setConfig = function(e, t) { return e !== undefined && t !== undefined && (this.config = this.config || {}, this.config[e] = t), this.config }, Y._createDOMNodes = function(e, t, r) { var n, a, i, o, s = {},
                        l = c._createNode,
                        u = t.tagName,
                        d = t.children || []; for (o in !r && (r = {}), t) "tagName" !== o && "children" !== o && (s[o] = t[o]); if (!s.id && (s.id = c.getElementID(c.createUUID())), !this.canvas.getElementById(s.id) && u)
                        for (n = e.appendChild(l(u, s)), r.element = n, r.id = s.id, (i = d.length) > 0 && (r.children = []), a = 0; a < i; a++) r.children[a] = {}, this._createDOMNodes(n, d[a], r.children[a]); return r }, Y.addDefs = function(e) { if (c.svg) { var t, r = {},
                            n = this.defs; for (t in e) r[t] = {}, this._createDOMNodes(n, e[t], r[t]); return r } }, Y.setSize = function(e, t) { return c._engine.setSize.call(this, e, t) }, Y.setDimension = function(e, t) { var r;
                    typeof e === C ? (r = e.width, t = e.height, this.setSize(e.width, e.height)) : (r = e, this.setSize(r, t)) }, Y.attr = function(e) { return null == e ? { width: this.width, height: this.height } : c.is(e, x) ? this[e] : (this.setDimension(e), this) }, Y.status = function(e, t) { return Ct.status.call(this, e, t) }, Y.animateWith = function(e, t, r, n, a, i, o) { return Ct.animateWith.call(this, e, t, r, n, a, i, o) }, Y.animate = function(e, t, r, n) { return Ct.animate.call(this, e, t, r, n) }, Y.setViewBox = function(e, t, r, n, a) { return c._engine.setViewBox.call(this, e, t, r, n, a) }, Y.getById = function(e) { return this._elementsById[e] || null }, Y.top = Y.bottom = null, Y.raphael = c, Ct.getBBox = function(e) { if (this.removed) return {}; var t = this._; return e ? (!t.dirty && t.bboxwt || (this.realPath = Ie[this.type](this), t.bboxwt = Ze(this.realPath), t.bboxwt.toString = Tt, t.dirty = 0), t.bboxwt) : ((t.dirty || t.dirtyT || !t.bbox) && (!t.dirty && this.realPath || (t.bboxwt = 0, this.realPath = Ie[this.type](this)), t.bbox = Ze(Le(this.realPath, this.matrix)), t.bbox.toString = Tt, t.dirty = t.dirtyT = 0), t.bbox) }, Ct.clone = function(e, t) { if (this.removed) return null; var r, n, a = this,
                        i = a.attr(); if (e) { for (r in e) i[r] = e[r];
                        n = a.paper[a.type](i, t) } else n = a.paper[a.type]().attr(i); return a.__set__ && a.__set__.push(n), n }; var Mt = function(e, t, r, n, a, i, o, s, l) { return null == l ? Je(e, t, r, n, a, i, o, s) : c.findDotsAtSegment(e, t, r, n, a, i, o, s, function(e, t, r, n, a, i, o, s, l) { if (!(l < 0 || Je(e, t, r, n, a, i, o, s) < l)) { var c, u = .5,
                                    d = 1 - u; for (c = Je(e, t, r, n, a, i, o, s, d); ne(c - l) > .01;) c = Je(e, t, r, n, a, i, o, s, d += (c < l ? 1 : -1) * (u /= 2)); return d } }(e, t, r, n, a, i, o, s, l)) },
                    Nt = function(e, t) { return function(r, n, a) { r = ot(r); for (var i, o, s, l, u, d = g, f = {}, h = 0, p = 0, m = r.length; p < m; p++) { if ("M" === (s = r[p])[0]) i = +s[1], o = +s[2];
                                else { if (h + (l = Mt(i, o, s[1], s[2], s[3], s[4], s[5], s[6])) > n) { if (t && !f.start) { if (d += ["C" + (u = Mt(i, o, s[1], s[2], s[3], s[4], s[5], s[6], n - h)).start.x, u.start.y, u.m.x, u.m.y, u.x, u.y], a) return d;
                                            f.start = d, d = ["M" + u.x, u.y + "C" + u.n.x, u.n.y, u.end.x, u.end.y, s[5], s[6]].join(), h += l, i = +s[5], o = +s[6]; continue } if (!e && !t) return { x: (u = Mt(i, o, s[1], s[2], s[3], s[4], s[5], s[6], n - h)).x, y: u.y, alpha: u.alpha } } h += l, i = +s[5], o = +s[6] } d += s.shift() + s } return f.end = d, (u = e ? h : t ? f : c.findDotsAtSegment(i, o, s[0], s[1], s[2], s[3], s[4], s[5], 1)).alpha && (u = { x: u.x, y: u.y, alpha: u.alpha }), u } },
                    Dt = Nt(1),
                    Ft = Nt();
                Nt(0, 1);
                c.getTotalLength = Dt, c.getPointAtLength = Ft, Ct.getTotalLength = function() { if ("path" == this.type) return this.node.getTotalLength ? this.node.getTotalLength() : Dt(this.attrs.path) }, Ct.getPointAtLength = function(e) { if ("path" == this.type) return Ft(this.attrs.path, e) }; var It = c.easing_formulas = { linear: function(e) { return e }, "<": function(e) { return ae(e, 1.7) }, ">": function(e) { return ae(e, .48) }, "<>": function(e) { var t = .48 - e / 1.04,
                            r = se(.1734 + t * t),
                            n = r - t,
                            a = -r - t,
                            i = ae(ne(n), 1 / 3) * (n < 0 ? -1 : 1) + ae(ne(a), 1 / 3) * (a < 0 ? -1 : 1) + .5; return 3 * (1 - i) * i * i + i * i * i }, backIn: function(e) { var t = 1.70158; return e * e * ((t + 1) * e - t) }, backOut: function(e) { var t = 1.70158; return (e -= 1) * e * ((t + 1) * e + t) + 1 }, elastic: function(e) { return e === !!e ? e : ae(2, -10 * e) * oe(2 * ce * (e - .075) / .3) + 1 }, bounce: function(e) { var t = 7.5625,
                            r = 2.75; return e < 1 / r ? t * e * e : e < 2 / r ? t * (e -= 1.5 / r) * e + .75 : e < 2.5 / r ? t * (e -= 2.25 / r) * e + .9375 : t * (e -= 2.625 / r) * e + .984375 }, oneBounceOut: function(e) { return e <= .9 ? 1.33 * It.easeIn(e) : 1.2 - e / 5 }, elasticOnce: function(e) { return e === !!e ? e : Math.pow(2, -10 * e) * Math.sin((e - .225) * (2 * Math.PI) / .9) + 1 }, easeInQuad: function(e) { return e * e }, easeOutQuad: function(e) { return e * (2 - e) }, easeInOutQuad: function(e) { return e < .5 ? 2 * e * e : (4 - 2 * e) * e - 1 }, easeInCubic: function(e) { return e * e * e }, easeOutCubic: function(e) { return --e * e * e + 1 }, easeInOutCubic: function(e) { return e < .5 ? 4 * e * e * e : (e - 1) * (2 * e - 2) * (2 * e - 2) + 1 }, easeInQuart: function(e) { return e * e * e * e }, easeOutQuart: function(e) { return 1 - --e * e * e * e }, easeInOutQuart: function(e) { return e < .5 ? 8 * e * e * e * e : 1 - 8 * --e * e * e * e }, easeInQuint: function(e) { return e * e * e * e * e }, easeOutQuint: function(e) { return 1 + --e * e * e * e * e }, easeInOutQuint: function(e) { return e < .5 ? 16 * e * e * e * e * e : 1 + 16 * --e * e * e * e * e } };
                It.easeIn = It["ease-in"] = It["<"], It.easeOut = It["ease-out"] = It[">"], It.easeInOut = It["ease-in-out"] = It["<>"], It["back-in"] = It.backIn, It["back-out"] = It.backOut; var Lt, Ot = [],
                    Rt = function qt() { for (var e, t, r, n = +new Date, a = 0, i = [], s = 0; a < Ot.length; a++) { var l = Ot[a]; if (!(l.el.removed || l.paused || l.parentEl && l.parentEl.e && l.parentEl.e.paused)) { for (var u, d, f, h = n - l.start, v = l.ms, y = l.easing, x = l.from, w = l.diff, C = l.to, _ = (l.t, l.el), k = {}, E = {}, A = !c.stopPartialEventPropagation, T = (s = 0, l.el && l.el.animElements && l.el.animElements.peek()); T && T.pos <= h / v;) i.push(l.el.animElements.deq()), T = l.el.animElements.peek(); if (l.initstatus ? (h = (l.initstatus * l.anim.top - l.prev) / (l.percent - l.prev) * v, l.status = l.initstatus, delete l.initstatus, l.stop && (delete l.el, Ot.splice(a--, 1))) : l.status = (l.prev + (l.percent - l.prev) * (h / v)) / l.anim.top, d = v, l.parentEl && l.parentEl.animElements ? (v = l.delayend - l.delaystart, h = l.parentEl.cPos - l.delaystart) : l.el.animElements && (l.el.cPos = h / v), !(h < 0))
                                    if (h < v) { var M = y(h / v); for (var N in v = d, x)
                                            if (x[m](N)) { switch (Ae[N]) {
                                                    case "number":
                                                        u = +x[N] + M * v * w[N]; break;
                                                    case "colour":
                                                        if (w[N].length) { for (u = [], s = 0, D = x[N].length; s < D; ++s) 0 === s ? x[N].isRadial || w[N].isRadial ? (r = "xr(", r += x[N][0].f1 * (1 - M) + w[N][0].f1 * M || g, r += ",", r += x[N][0].f2 * (1 - M) + w[N][0].f2 * M || g, r += ",", r += 100 * (x[N][0].f3 * (1 - M) + w[N][0].f3 * M) || g, r += "%,", r += x[N][0].f4 * (1 - M) + w[N][0].f4 * M || g, r += ",", r += x[N][0].f5 * (1 - M) + w[N][0].f5 * M, r += ",", r += x[N][0].f6, r += ")", u.push(r)) : (u.push(x[N][s] * (1 - M) + M * w[N][s]), u[0] <= 0 && (u[0] += 360)) : u.push("rgba(" + [Pt(le(x[N][s].r + M * v * w[N][s].r)), Pt(le(x[N][s].g + M * v * w[N][s].g)), Pt(le(x[N][s].b + M * v * w[N][s].b)), x[N][s].opacity + M * v * w[N][s].opacity].join(",") + "):" + x[N][s].position);
                                                            u = u.join("-"), (x[N].isRadial || w[N].isRadial) && (u = u.replace("-", g)) } else t = x[N].opacity + M * v * w[N].opacity, isNaN(t) && (t = 1), u = "rgba(" + [Pt(le(x[N].r + M * v * w[N].r)), Pt(le(x[N].g + M * v * w[N].g)), Pt(le(x[N].b + M * v * w[N].b)), t].join(",") + ")"; break;
                                                    case "path":
                                                        u = [];
                                                        s = 0; for (var D = x[N].length; s < D; s++) { var F;
                                                            u[s] = [x[N][s][0]], F = x[N][s] ? x[N][s].length : 0; for (var I = 1; I < F; I++) u[s][I] = (+x[N][s][I] + M * v * w[N][s][I]).toFixed(4);
                                                            u[s] = u[s].join(p) } u = u.join(p); break;
                                                    case "transform":
                                                        if (w[N].real)
                                                            for (u = [], s = 0, D = x[N].length; s < D; s++)
                                                                for (u[s] = [x[N][s][0]], I = 1, F = x[N][s].length; I < F; I++) u[s][I] = x[N][s][I] + M * v * w[N][s][I];
                                                        else { var L = function(e) { return +x[N][e] + M * v * w[N][e] };
                                                            u = [
                                                                ["m", L(0), L(1), L(2), L(3), L(4), L(5)]
                                                            ] } break;
                                                    case "csv":
                                                        if ("clip-rect" === N)
                                                            for (u = [], s = 4; s--;) u[s] = +x[N][s] + M * v * w[N][s]; break;
                                                    case "text-bound":
                                                        u = [][b](x[N]); break;
                                                    default:
                                                        var O = [][b](x[N]); for (u = [], s = _.ca[N].length; s--;) u[s] = +O[s] + M * v * w[N][s] } k[N] = u } _.attr(k), A && function(e, t, r) { setTimeout((function() {
                                                (0, o["default"])("raphael.anim.frame." + e, t, r) })) }(_.id, _, l.anim) } else { if (function(e, t, r) { setTimeout((function() { A && (0, o["default"])("raphael.anim.frame." + t.id, t, r), A && (0, o["default"])("raphael.anim.finish." + t.id, t, r), c.is(e, S) && e.call(t) })) }(l.callback, _, l.anim), _.attr(C), delete l.el, Ot.splice(a--, 1), l.repeat > 1 && !l.next) { for (f in C) C[m](f) && (E[f] = l.totalOrigin[f]);
                                            l.el.attr(E), Ut(l.anim, l.el, l.anim.percents[0], null, l.totalOrigin, l.repeat - 1) } l.next && !l.stop && Ut(l.anim, l.el, l.next, null, l.totalOrigin, l.repeat) } } } for (c.svg && _ && _.paper && _.paper.safari(), a = 0, e = i.length; a < e; ++a) c.getInstantAnimFrameFn()(function(e) { return function() { Ut.apply(null, i[e].params) } }(a));
                        Ot.length && (Lt || c.getAnimFrameFn())(qt) },
                    Pt = function(e) { return e > 255 ? 255 : e < 0 ? 0 : e },
                    Vt = function(e) { return e > 1 && (e = 1), e < 0 && (e = 0), e };

                function jt(e, t, r, n, a, i) { var o = 3 * t,
                        s = 3 * (n - t) - o,
                        l = 1 - o - s,
                        c = 3 * r,
                        u = 3 * (a - r) - c,
                        d = 1 - c - u;

                    function f(e) { return ((l * e + s) * e + o) * e } return function(e, t) { var r = function(e, t) { var r, n, a, i, c, u; for (a = e, u = 0; u < 8; u++) { if (i = f(a) - e, ne(i) < t) return a; if (ne(c = (3 * l * a + 2 * s) * a + o) < 1e-6) break;
                                a -= i / c } if (n = 1, (a = e) < (r = 0)) return r; if (a > n) return n; for (; r < n;) { if (i = f(a), ne(i - e) < t) return a;
                                e > i ? r = a : n = a, a = (n - r) / 2 + r } return a }(e, t); return ((d * r + u) * r + c) * r }(e, 1 / (200 * i)) }

                function Bt(e, t) { var r = [],
                        n = {}; if (this.ms = t, this.times = 1, e) { for (var a in e) e[m](a) && (n[Z(a)] = e[a], r.push(Z(a)));
                        r.sort(Me) } this.anim = n, this.top = r[r.length - 1], this.percents = r } c.getAnimFrameFn = function() { return Lt = c.requestAnimFrame || l.webkitRequestAnimationFrame || l.mozRequestAnimationFrame || l.oRequestAnimationFrame || l.msRequestAnimationFrame || function(e) { setTimeout(e, 16) } }, c.getInstantAnimFrameFn = function() { return c.instantRequestAnimFrame || l.webkitRequestAnimationFrame || l.mozRequestAnimationFrame || l.oRequestAnimationFrame || l.msRequestAnimationFrame || function(e) { setTimeout(e, 16) } }, Ct.animateWith = function(e, t, r, n, a, i, o) { var s, l = this,
                        u = {}; for (s in o = o || {}) o.hasOwnProperty(s) && (u[s] = o[s]); if (o = u, l.removed) return i && i.call(l), l; if (0 === n) return c.is(i, S) && setTimeout((function() { i.call(l) }), 0), l.attr(r); var d = r instanceof Bt ? r : c.animation(r, n, a, i);
                    o.start = Vt(o.start || 0), o.end = Vt(o.end || 1), o.start >= o.end && (o.start = o.end), !o.from && o.start > .01 ? (e.animElements = e.animElements || new Be((function(e, t) { return t.pos - e.pos })), e.animElements.enq({ pos: o.start, attr: o.start === o.end, params: [d, l, d.percents[0], null, l.attr(), undefined, e, { start: o.start, end: o.end, smartMorph: o.smartMorph, hookFn: o.hookFn }, r], executeOb: { el: this, attrs: r, callback: i, hookFn: o.hookFn } })) : Ut(d, l, d.percents[0], null, l.attr(), undefined, e, o); for (var f = 0, h = Ot.length; f < h; f++)
                        if (Ot[f].anim === t && Ot[f].el === e) { Ot[h - 1].start = Ot[f].start; break } return l }, Ct.onAnimation = function(e) { return e ? o["default"].on("raphael.anim.frame." + this.id, e) : o["default"].unbind("raphael.anim.frame." + this.id), this }, Bt.prototype.delay = function(e) { var t = new Bt(this.anim, this.ms); return t.times = this.times, t.del = +e || 0, t }, Bt.prototype.repeat = function(e) { var t = new Bt(this.anim, this.ms); return t.del = this.del, t.times = ee.floor(te(e, 0)) || 1, t };

                function Ht(e, t, r) { var n, a, i = 0,
                        o = 0,
                        s = [],
                        l = [],
                        c = {},
                        u = 0,
                        d = []; if (e = e.constructor === Array ? e[0] : e, t = t.constructor === Array ? t[0] : t, n = e.split("-"), a = t.split("-"), 1 === n.length && 1 === a.length) return [e, t]; for (n = f(n), a = f(a), !n.defaultAngleSet && a.defaultAngleSet && (a[0] = n[0]), !a.defaultAngleSet && n.defaultAngleSet && (n[0] = a[0]), function e(t, r, n) { t.isRadial && !r.isRadial && (+r[0], r[0] = { f1: 0, f2: 0, f3: 0, f4: 0, f5: 0, f6: g }, r.isRadial = !0), n || e(r, t, !0) }(n, a), i = 1, o = n.length; i < o; ++i) u = n[i].position, d.push(u); for (i = 1, o = a.length; i < o; ++i) u = a[i].position, -1 === d.indexOf(u) && d.push(u); for (d.push(0), d.sort((function(e, t) { return e - t })), s = [n[0]], i = 1, o = d.length; i < o; ++i) u = d[i], c = n.getColorAtPosition(u), s.push(c); for (l = [a[0]], i = 1, o = d.length; i < o; ++i) u = d[i], c = a.getColorAtPosition(u), l.push(c); return s.isRadial = n.isRadial, l.isRadial = a.isRadial, [s, l];

                    function f(e) { var t, n = 0,
                            a = 0,
                            i = 0,
                            o = [],
                            s = {},
                            l = 0,
                            c = 0,
                            u = 0,
                            d = 0,
                            f = 0,
                            h = 0,
                            p = { f1: .5, f2: .5 }; for (1 === e.length && (e[0] === k && (e[0] = "rgba(0,0,0,0)"), e.unshift(0), e.defaultAngleSet = !0), isNaN(e[0]) ? ~"rx".indexOf(e[0].charAt(0)) ? (e.isRadial = !0, d = 1, -1 !== e[0].indexOf(")") && (d = e[0].indexOf(")"), f = e[0].indexOf("(") + 1, h = d, o = e[0].substr(f, h - f).split(","), p.f1 = parseFloat(o[0]) || 0, p.f2 = parseFloat(o[1]) || 0, ~o[2].indexOf("%") && (o[2] = parseFloat(o[2]) / 100), p.f3 = parseFloat(o[2]) || 0, p.f4 = parseFloat(o[3]) || 0, p.f5 = parseFloat(o[4]) || 0, p.f6 = o[5]), e[0] = e[0].substr(h + 1), e.unshift(p)) : e[0] = 0 : e[0] = +e[0], n = 1, a = e.length; n < a; ++n) o = e[n].split(":"), s = r(o[0]), e[n] = {}, e[n].r = s.r, e[n].g = s.g, e[n].b = s.b, e[n].opacity = s.opacity, e[n].opacity = +e[n].opacity, isNaN(e[n].opacity) && (e[n].opacity = 1), e[n].position = +o[1]; if (e.sort((function(e, t) { return "number" == typeof e || e.f1 ? -1 : "number" == typeof t || e.f2 ? 1 : isNaN(e.position) && isNaN(t.position) ? 0 : isNaN(e.position) ? -1 : isNaN(t.position) ? 1 : e.position - t.position })), 0 != +e[1].position)
                            if (isNaN(e[1].position)) e[1].position = 0;
                            else { for (t in s = {}, e[1]) s[t] = e[1][t]; for (s.position = 0, e.push({}), n = e.length - 1; 1 !== n; --n) e[n] = e[n - 1];
                                e[1] = s } if (100 !== e[a = e.length - 1].position)
                            if (isNaN(e[a].position)) e[a].position = 100;
                            else { for (t in s = {}, e[a]) s[t] = e[a][t];
                                s.position = 100, e.push(s) } for (n = 2, a = e.length; n < a; ++n)
                            if (!e[n].position) { for (l = e[n - 1].position, u = 1, i = n + 1; i < a; ++i)
                                    if (++u, !isNaN(e[i].position)) { c = +e[i].position; break } e[n].position = l + (c - l) / u } return e.getColorAtPosition = function(e) { for (var t = -1, r = this.length, n = 1, a = this.length, i = 0, o = g, s = { r: 0, g: 0, b: 0 }; n < a - 1; ++n)
                                if (this[n].position <= e && (t = n, r = n + 1), !(this[n].position < e) && this[n].position >= e) { r = n; break } for (o in i = (e - this[t].position) / (this[r].position - this[t].position), isNaN(i) && (i = 0), s) s[o] = Pt((1 - i) * this[t][o] + i * this[r][o]); return s.position = e, s.opacity = (1 - i) * this[t].opacity + i * this[r].opacity, s }, e } }

                function Gt(e, t) { var r, n = [],
                        a = [],
                        i = d(e),
                        o = d(t),
                        s = 0,
                        l = 0,
                        c = document.createElementNS && document.createElementNS.bind(document),
                        u = c && c("http://www.w3.org/2000/svg", "path"); if (!i || !o || !u) return [e, t]; if (function(e, t) { var r, n, a = g,
                                i = g; if (u.setAttribute("d", "M300 10 L300 300 C50 310,50 640,350 650C600 640,600 310,400 300 L400 10 L295 10"), r = u.getTotalLength(), n = u.getPointAtLength(10), r < 1829.1 || r > 1829.2) return !0; if (300 !== Math.round(n.x) || 20 !== Math.round(n.y)) return !0;

                            function o(e) { for (var t = e.length; t-- - 1 && e[t].join(g) === e[t - 1].join(g);) e.pop() }

                            function s(e) { for (var t = g, r = 0, n = e.length; r < n; ++r) t += e[r].join(p); return t } if (o(e), o(t), a = s(e), i = s(t), a.split(/[Mm]/).length > 2 || i.split(/[Mm]/).length > 2) return !1; if (e.length === t.length) return !0; return !1 }(e, t)) return [e, t]; if (!e || !t) return [e, t]; if (!document.createElementNS) return [e, t]; if (i = d(e), o = d(t), -1 !== i.join().indexOf("undefined")) return [e, t]; if (-1 !== o.join().indexOf("undefined")) return [e, t]; if (!u.getTotalLength || !u.getPointAtLength) return [e, t];

                    function d(e) { var t = [],
                            r = 0,
                            n = e.length; if (typeof e === x) return e; for (r = 0; r < n; ++r) { if (!e[r].join) return;
                            r && e[r + 1] && "M" === e[r + 1][0] && "M" === e[r][0] || t.push(e[r].join(p)) } for (r = 0, n = (t = (t = t.join(g)).split(/[Mm]/).slice(1)).length; r < n; ++r) t[r] = "M" + t[r]; return t } for (l = Math.max(i.length, o.length), s = 0; s < l; ++s) r = zt(i[s], o[s]), i[s] = r[0], o[s] = r[1];

                    function f(e) { var t, r = 0,
                            n = []; for (t = (e = e || []).length, r = 0; r < t; ++r) e[r].length - 1 && n.push(e[r].join(p)); return n.join(g) }

                    function h(e, t) { for (var r = e.length; r-- - 1 && e[r].slice(1).toString() === e[r - 1].slice(1).toString();) e.pop();
                        1 === e.length && t && (e.length = 0) }

                    function m(e, t) { for (var r, n = [], a = [], i = e.length, o = 0, s = 0, l = 0, c = 0, u = t - i; u >= 0;) o = e.length - 1, e.push(e.slice(o)[0]), --u; for (i = e.length, o = 0; o <= t; ++o) a.push(Math.round(o / t * i)); for (o = 0, r = a.length - 1; o < r; ++o) n.push(e.slice(a[o], a[o + 1])), "M" !== n[o][0][0] && "m" !== n[o][0][0] && (l = n[o - 1].length - 1, s = n[o - 1][l][1], c = n[o - 1][l][2], n[o].unshift(["M", s, c])); return n } for (s = i.length; s--;) h(i[s], s), i[s].length || i.pop(); for (s = o.length; s--;) h(o[s], s), o[s].length || o.pop(); for (function(e) { var t, r = [],
                                n = [],
                                a = [],
                                s = 0,
                                l = !0; if (0 !== e) { for (e > 0 ? (r = o, l = !1) : (e = -e, r = i), s = 0, t = r.length; s < t; ++s) n.push(1); for (; e--;) --s < 0 && (s = t - 1), n[s]++; for (s = 0; s < t; ++s) 1 === n[s] ? a.push(r[s]) : a.push.apply(a, m(r[s], n[s]));
                                l ? i = a : o = a } }(i.length - o.length), l = Math.max(i.length, o.length), s = 0; s < l; ++s) r = zt(f(i[s]), f(o[s])), i[s] = r[0], o[s] = r[1]; for (s = 0, l = i.length; s < l; ++s) n = n.concat(i[s]); for (s = 0, l = o.length; s < l; ++s) a = a.concat(o[s]); return [n, a] }

                function zt(e, t) { var r, n, a, i = 0,
                        o = [],
                        s = [];

                    function l(e, t) { var r, n, a, i, o = 0,
                            s = {},
                            l = [],
                            c = [],
                            u = 0,
                            d = Math.round; for ((r = document.createElementNS("http://www.w3.org/2000/svg", "path")).setAttribute("d", e), (n = document.createElementNS("http://www.w3.org/2000/svg", "path")).setAttribute("d", t), a = r.getTotalLength(), i = n.getTotalLength(), u = .15 * Math.max(a, i), (!(u = Math.ceil(u)) || !isFinite(u) || u < 10) && (u = 10), o = 0; o <= u; ++o) s = r.getPointAtLength(o / u * a), l.push([o ? G : "M", d(s.x), d(s.y)]), s = n.getPointAtLength(o / u * i), c.push([o ? G : "M", d(s.x), d(s.y)]); return [l, c] } for (e && "M  " !== e || (e = t.split(p).slice(0, 3).join(p).replace(/[LC]/, g)), t && "M  " !== t || (t = e.split(p).slice(0, 3).join(p).replace(/[LC]/, g)), n = function(e, t) { var r, n, a, i, o = 0,
                                s = 0,
                                l = 0,
                                c = 0,
                                u = {},
                                d = {},
                                f = [],
                                h = [],
                                m = -1,
                                v = -1,
                                b = !0;

                            function y(e) { var t, r = 0; for (r = 0, t = (e = e.split(/[MCLmcl]/).slice(1)).length; r < t; ++r) e[r] = e[r].split(p).slice(1), r || e[r].unshift("M"), r && (2 === e[r].length && e[r].unshift(G) || e[r].unshift("C")); return e }

                            function x(e, t) { var r, n, a = 0,
                                    i = e.length; for (a = 0, i = e.length; a < i; ++a) r = e[a].join(p), "C" === (n = e[a])[0] && n[3] === n[5] && n[4] === n[6] ? e[a].stringValue = [G, n[3], n[4]].join(p) : n.stringValue = r, t[n.stringValue] && t[n.stringValue].push(a), t[n.stringValue] || (t[n.stringValue] = [a]) }

                            function w(e, t, r, n, a) { for (var i, o = r, s = 0, l = 0; o < n; ++o)
                                    if (i = t[e[o].stringValue])
                                        for (s = 0, l = i.length; s < l; ++s)
                                            if (i[s] >= a) return { index: o, mapValue: i[s], diff: o - r }; return -1 }

                            function C(e) { var t = e.length - 1; return ["M", e[t - 1], e[t]].join(p) }

                            function _(e) { return e.join(g) } for (e = y(e), t = y(t), x(e, u), x(t, d), r = e.length, n = t.length, o = 0, s = 0; o < r && s < n;) { if (++v, f[++m] = [], h[v] = [], b = e[o].stringValue === t[s].stringValue, o && (f[m].push(C(e[o - 1])), h[v].push(C(t[s - 1]))), b)
                                    for (; o < r && s < n && e[o].stringValue === t[s].stringValue;) f[m].push(e[o].stringValue), h[v].push(t[s].stringValue), ++o, ++s;
                                else { for (a = w(e, d, o, r, s), i = w(t, u, s, n, o), l = a.index, c = a.mapValue, (!~a || a.diff > i.diff) && (l = i.mapValue, c = i.index), ~a || ~i || (l = r - 1, c = n - 1); o <= l;) f[m].push(e[o].stringValue), ++o; for (; s <= c;) h[v].push(t[s].stringValue), ++s } f[m] = _(f[m]), h[v] = _(h[v]) } if (o < r) { for (f[++m] = [], f[m].push(C(e[o - 1])), h[++v] = [], h[v].push(C(t[s - 1])); o < r;) f[m].push(e[o].stringValue), ++o;
                                f[m] = _(f[m]) } if (s < n) { for (f[++m] = [], f[m].push(C(e[o - 1])), h[++v] = [], h[v].push(C(t[s - 1])); s < n;) h[v].push(t[s].stringValue), ++s;
                                h[v] = _(h[v]) } return [f, h] }(e, t), i = 0, r = n[0].length; i < r; ++i) a = l(n[0][i], n[1][i]), i ? (o = o.concat(a[0].slice(1)), s = s.concat(a[1].slice(1))) : (o = o.concat(a[0]), s = s.concat(a[1])); return [o, s] }

                function Ut(e, t, r, n, a, i, s, l) { r = Z(r); var u, d, f, h, g, p, v, y, w = e.ms,
                        C = {},
                        S = {},
                        E = {}; if (null !== t.type) { if ((l = l || {}).hookFn && l.hookFn.call(t), l.from = l.from || {}, n)
                            for (T = 0, M = Ot.length; T < M; T++) { var A = Ot[T]; if (A.el.id === t.id && A.anim === e) { A.percent != r ? (delete A.el.e, delete A.el, Ot.splice(T, 1), f = 1) : d = A, t.attr(A.totalOrigin); break } } else n = +S; for (var T = 0, M = e.percents.length; T < M; T++) { if (e.percents[T] === r || e.percents[T] > n * e.top) { r = e.percents[T], g = e.percents[T - 1] || 0, w = w / e.top * (r - g), h = e.percents[T + 1], u = e.anim[r]; break } n && t.attr(e.anim[e.percents[T]]) } if (u) { if (d) d.initstatus = n, d.start = new Date - d.ms * n;
                            else { for (var N in u)
                                    if (u[m](N))
                                        if (Ae[m](N) || t.ca[N]) { switch (C[N] = l.from[N] || t.attr(N), null == C[N] && (C[N] = Ee[N]), S[N] = u[N], y = !1, Ae[N]) {
                                                case "number":
                                                    ((v = S[N] - C[N]) || isNaN(v)) && (y = !0), E[N] = v / w; break;
                                                case "colour":
                                                    if (C[N] === S[N]) break;
                                                    y = !0; var D = Ht(C[N], S[N], c.getRGB);
                                                    C[N] = D[0]; var F = D[1]; if (typeof F === x) C[N].toLowerCase() !== k ? (C[N] = c.getRGB(C[N]), C[N].opacity || (C[N].opacity = 1)) : C[N] = { r: 0, g: 0, b: 0, opacity: 0 }, S[N].toLowerCase() !== k ? (F = c.getRGB(S[N])).opacity || (F.opacity = 1) : F = { r: 0, g: 0, b: 0, opacity: 0 }, E[N] = { r: (F.r - C[N].r) / w, g: (F.g - C[N].g) / w, b: (F.b - C[N].b) / w, opacity: (F.opacity - C[N].opacity) / w };
                                                    else
                                                        for (E[N] = [], T = 0, M = C[N].length; T < M; ++T) 0 === T ? E[N].push(F[0]) : E[N].push({ r: (F[T].r - C[N][T].r) / w, g: (F[T].g - C[N][T].g) / w, b: (F[T].b - C[N][T].b) / w, opacity: (F[T].opacity - C[N][T].opacity) / w }); break;
                                                case "path":
                                                    var I, L = ot(C[N], S[N]); for (l.smartMorph && (L = Gt(L[0], L[1])), I = L[1], C[N] = L[0], E[N] = [], T = 0, M = C[N].length; T < M; T++) { var O;
                                                        E[N][T] = [0], O = C[N][T] ? C[N][T].length : 0; for (var R = 1; R < O; R++) E[N][T][R] = (I[T][R] - C[N][T][R]) / w, !y && E[N][T][R] && (y = !0) } break;
                                                case "transform":
                                                    var P = t._,
                                                        V = ut(P[N], S[N]); if (y = !0, V)
                                                        for (C[N] = V.from, S[N] = V.to, E[N] = [], E[N].real = !0, T = 0, M = C[N].length; T < M; T++)
                                                            for (E[N][T] = [C[N][T][0]], R = 1, O = C[N][T].length; R < O; R++) E[N][T][R] = (S[N][T][R] - C[N][T][R]) / w;
                                                    else { var j = t.matrix || new dt,
                                                            B = { _: { transform: P.transform }, getBBox: function() { return t.getBBox(1) } };
                                                        C[N] = [j.a, j.b, j.c, j.d, j.e, j.f], lt(B, S[N]), S[N] = B._.transform, E[N] = [(B.matrix.a - j.a) / w, (B.matrix.b - j.b) / w, (B.matrix.c - j.c) / w, (B.matrix.d - j.d) / w, (B.matrix.e - j.e) / w, (B.matrix.f - j.f) / w] } break;
                                                case "csv":
                                                    var H = J(u[N])[_](pe),
                                                        G = J(C[N])[_](pe); if ("clip-rect" === N)
                                                        for (C[N] = G, E[N] = [], T = G.length; T--;)((v = H[T] - C[N][T]) || isNaN(v)) && (y = !0), E[N][T] = v / w;
                                                    S[N] = H; break;
                                                default:
                                                    for (H = [][b](u[N]), G = [][b](C[N]), E[N] = [], T = t.ca[N].length; T--;)((v = (H[T] || 0) - (G[T] || 0)) || isNaN(v)) && (y = !0), E[N][T] = v / w } y || (delete C[N], delete S[N], delete u[N], delete E[N]) } else(c._availableAttrs[m](N) || "text" === N || t.ca[N]) && (t.attr(N, u[N]), delete u[N]); var z = u.easing,
                                    U = c.easing_formulas[z]; if (!U)
                                    if ((U = J(z).match(be)) && 5 === U.length) { var W = U;
                                        U = function(e) { return jt(e, +W[1], +W[2], +W[3], +W[4], w) } } else U = Ne; if (p = u.start || e.start || +new Date, t.e = A = { anim: e, percent: r, timestamp: p, start: p + (e.del || 0), status: 0, initstatus: n || 0, stop: !1, ms: w, easing: U, from: C, diff: E, to: S, el: t, callback: u.callback, prev: g, next: h, repeat: i || e.times, origin: t.attr(), totalOrigin: a, parentEl: s, delayend: l && l.end, delaystart: l && l.start }, Ot.push(A), n && !d && !f && (A.stop = !0, A.start = new Date - w * n, 1 === Ot.length)) return Rt();
                                f && (A.start = new Date - A.ms * n), 1 === Ot.length && (Lt || c.getAnimFrameFn())(Rt) }(0, o["default"])("raphael.anim.start." + t.id, t, e) } } }

                function Wt(e) { var t;
                    void 0 === e && (e = this); for (var r = 0; r < Ot.length; r++)(t = Ot[r].el.paper) && t !== e || Ot.splice(r--, 1) } c.animation = function(e, t, r, n, a) { if (e instanceof Bt) return e;!c.is(r, S) && r || (n = n || r || null, r = null), !c.stopPartialEventPropagation && (c.stopPartialEventPropagation = a), e = Object(e), t = +t || 0; var i, o, s = {}; for (o in e) e[m](o) && Z(o) != o && Z(o) + "%" != o && (i = !0, s[o] = e[o]); return n && (i = !0), i ? (r && (s.easing = r), n && (s.callback = n), new Bt({ 100: s }, t)) : new Bt(e, t) }, Ct.animate = function(e, t, r, n) { if (this.removed) return n && n.call(this), this; var a = e instanceof Bt ? e : c.animation(e, t, r, n); return Ut(a, this, a.percents[0], null, this.attr()), this }, Ct.status = function(e, t) { var r, n, a = [],
                        i = 0; if (null != t) return Ut(e, this, -1, re(t, 1)), this; for (r = Ot.length; i < r; i++)
                        if ((n = Ot[i]).el.id === this.id && (!e || n.anim === e)) { if (e) return n.status;
                            a.push({ anim: n.anim, status: n.status }) } return e ? 0 : a }, Ct.pause = function(e, t) { var r, n, a = +new Date; for (n = 0; n < Ot.length; n++) !((r = Ot[n]).el.id === this.id || t && r.parentEl && r.parentEl.e.el && r.parentEl.e.el.id === this.id) || e && r.anim !== e || !1 !== (0, o["default"])("raphael.anim.pause." + this.id, this, r.anim) && (r.paused = !0, r.pauseStart = a); return this }, Ct.resume = function(e, t) { var r, n, a = +new Date; for (n = 0; n < Ot.length; n++) !((r = Ot[n]).el.id === this.id || t && r.parentEl && r.parentEl.e.el && r.parentEl.e.el.id === this.id) || e && r.anim !== e || !1 !== (0, o["default"])("raphael.anim.resume." + this.id, this, r.anim) && (delete r.paused, r.el.status(r.anim, r.status), r.pauseEnd = a, r.start += (r.parentEl && r.parentEl.e.pauseEnd || r.pauseEnd) - (r.parentEl && r.parentEl.e.pauseStart || r.pauseStart) || 0); return this }, Ct.stop = function(e, t, r) { var n, a; if (t)
                        for (i = Ot.length - 1; i >= 0; i--) !((n = Ot[i]).el.id === this.id || n.parentEl && n.parentEl.id === this.id) || e && Ot[i].anim !== e || (a = n.el, r && a.attr(n.to), n.callback && n.callback.call(a), delete a.e, delete n.el, Ot.splice(i, 1));
                    else
                        for (var i = 0; i < Ot.length; i++)(n = Ot[i]).el.id !== this.id || e && n.anim !== e || !1 !== (0, o["default"])("raphael.anim.stop." + this.id, this, n.anim) && Ot.splice(i--, 1); return this.animElements && function(e) { var t; for (; t = e.deq();)(t = t.executeOb).hookFn && t.hookFn.call(t.el), t.el.attr(t.attrs), t.callback && t.callback.call(t.el) }(this.animElements), this }, o["default"].on("raphael.remove", Wt), o["default"].on("raphael.clear", Wt), Ct.toString = function() { return "Raphaël’s object" }, Ct.toFront = function() { if (this.removed) return this; var e, t, r, n = this,
                        a = c._engine.getNode(n),
                        i = n.parent,
                        o = n.followers; for (c._tofront(n, i) && i.canvas.appendChild(a), t = 0, r = o.length; t < r; t++)(e = o[t]).stalk && e.el[e.stalk](n); return n }, Ct.toBack = function() { if (this.removed) return this; var e, t, r, n = this,
                        a = c._engine.getNode(n),
                        i = n.parent,
                        o = n.followers; for (c._toback(n, i) && i.canvas.insertBefore(a, i.canvas.firstChild), t = 0, r = o.length; t < r; t++)(e = o[t]).stalk && e.el[e.stalk](n); return n }, Ct.insertAfter = function(e) { if (this.removed) return this; var t, r, n, a = this,
                        i = c._engine.getNode(a),
                        o = c._engine.getLastNode(e),
                        s = e.parent.canvas,
                        l = a.followers; for (o.nextSibling ? s.insertBefore(i, o.nextSibling) : s.appendChild(i), c._insertafter(a, e, a.parent, e.parent), r = 0, n = l.length; r < n; r++)(t = l[r]).stalk && t.el[t.stalk](e); return a }, Ct.insertBefore = function(e) { if (this.removed) return this; var t, r, n, a = this,
                        i = c._engine.getNode(a),
                        o = c._engine.getNode(e),
                        s = a.followers; for (e.parent.canvas.insertBefore(i, o), c._insertbefore(a, e, a.parent, e.parent), a.parent = e.parent, r = 0, n = s.length; r < n; r++)(t = s[r]).stalk && t.el[t.stalk](e); return this }, Ct.appendChild = function(e) { if (this.removed || "group" !== this.type) return this; var t, r, n, a, i = this.followers; if (e.parent === this) return e.toFront(), this; for (r = c._engine.getNode(e), c._tear(e, e.parent), this.canvas.appendChild(r), e.parent = this, !this.bottom && (this.bottom = e), e.prev = this.top, e.next = null, this.top && (this.top.next = e), this.top = e, n = 0, a = i.length; n < a; n++)(t = i[n]).stalk && t.el[t.stalk](e); return this }, Ct.appendTo = function(e) { return e.appendChild(this) }, Ct.removeChild = function(e) { if (this.removed || "group" !== this.type || e.parent !== this) return this; var t = this,
                        r = c._engine.getNode(e),
                        n = t.paper; return c._tear(e, t), n.canvas.appendChild(r), t.parent = n, !n.bottom && (n.bottom = t), t.prev = n.top, n.top && (n.top.next = t), n.top = t, t.next = null, t }, c.format = function(e, t) { var r = (0, s.getArrayCopy)(arguments),
                        n = c.is(t, w) ? [0][b](t) : r; return e && c.is(e, x) && n.length - 1 && (e = e.replace(me, (function(e, t) { return null == n[++t] ? g : n[t] }))), e || g }; var Xt = c.vml ? .5 : 0;
                c.crispBound = (0, s.cacher)((function(e, t, r, n, a) { var i, o = {}; return e = e || 0, t = t || 0, r = r || 0, n = n || 0, i = (a = a || 0) % 2 / 2 + Xt, o.x = le(e + i) - i, o.y = le(t + i) - i, o.width = le(e + r + i) - i - o.x, o.height = le(t + n + i) - i - o.y, o["stroke-width"] = a, 0 === o.width && 0 !== r && (o.width = 1), 0 === o.height && 0 !== n && (o.height = 1), o }), c), Ct.crisp = function() { var e, t = this,
                            r = t.attrs,
                            n = t.attr(); for (e in n = c.crispBound(n.x, n.y, n.width, n.height, n["stroke-width"])) r[e] === n[e] && delete n[e]; return t.attr(n) }, c.define = function(e, t, r, n, a, i) { var o, l; if (c.is(e, w))
                            for (o = 0, l = e.length; o < l; o++) c.define(e[o]);
                        else if (c.is(e, C)) c.define(e.name, e[e.name], e.ca, e.fn, e.e, e.data);
                        else if (e && !c.fn[e]) return c.fn[e] = function() { var i, o = (0, s.getArrayCopy)(arguments),
                                l = t.apply(this, o); if (n && c.is(n, C))
                                for (i in n) l[i] = n[i]; if (a && c.is(a, C))
                                for (i in a) l[i] && l[i](a[i]); if (r) { if (c.is(r, S)) l.ca[e] = r;
                                else
                                    for (i in r) l.ca[i] = r[i];
                                l.ca[e] && (c._lastArgIfGroup(o, !0), o.length && (o[0][e] ? l.attr.apply(l, o) : l.attr(e, o[0]))) } return l }, r && (c.fn[e].ca = r), n && (c.fn[e].fn = n), a && (c.fn[e].e = a), i && (c.fn[e].data = i), c.fn[e] },
                    function(e, t, r) { null == e.readyState && e.addEventListener && (e.addEventListener("DOMContentLoaded", r = function() { e.removeEventListener("DOMContentLoaded", r, !1), e.readyState = "complete" }, !1), e.readyState = "loading"),
                            function n() { /in/.test(e.readyState) ? setTimeout(n, 9) : c.eve("raphael.DOMload") }() }(F), o["default"].on("raphael.DOMload", (function() { u = !0 })), c._preload = function(e, t) { var r = D.doc,
                            n = r.createElement("img");
                        n.style.cssText = "position:absolute;left:-9999em;top:-9999em", n.onload = function() { t.call(this), this.onload = null, r.body.removeChild(this) }, n.onerror = function() { r.body.removeChild(this) }, r.body.appendChild(n), n.src = e }; var $t = c;
                t["default"] = $t }).call(this, r(6)) }, function(e, t, r) { "use strict";
            (function(e) { t.__esModule = !0, t["default"] = void 0; var n = r(218),
                    a = function(e) { var t, r, a = "hasOwnProperty",
                            i = /[\.\/]/,
                            o = /\s*,\s*/,
                            s = function(e, t) { return e - t },
                            l = { n: {} },
                            c = function() { for (var e = 0, t = this.length; e < t; e++)
                                    if ("undefined" != typeof this[e]) return this[e] },
                            u = function() { for (var e = this.length; --e;)
                                    if ("undefined" != typeof this[e]) return this[e] },
                            d = Object.prototype.toString,
                            f = String,
                            h = Array.isArray || function(e) { return e instanceof Array || "[object Array]" == d.call(e) };

                        function g(e, a) { var i, o = r,
                                l = (0, n.getArrayCopy)(arguments),
                                d = Array.prototype.slice.call(l, 2),
                                f = g.listeners(e),
                                h = 0,
                                p = [],
                                m = {},
                                v = [],
                                b = t;
                            v.firstDefined = c, v.lastDefined = u, t = e, r = 0; for (var y = 0, x = f.length; y < x; y++) "zIndex" in f[y] && (p.push(f[y].zIndex), f[y].zIndex < 0 && (m[f[y].zIndex] = f[y])); for (p.sort(s); p[h] < 0;)
                                if (i = m[p[h++]], v.push(i.apply(a, d)), r) return r = o, v; for (y = 0; y < x; y++)
                                if ("zIndex" in (i = f[y]))
                                    if (i.zIndex == p[h]) { if (v.push(i.apply(a, d)), r) break;
                                        do { if ((i = m[p[++h]]) && v.push(i.apply(a, d)), r) break } while (i) } else m[i.zIndex] = i;
                            else if (v.push(i.apply(a, d)), r) break; return r = o, t = b, v } return g._events = l, g.listeners = function(e) { var t, r, n, a, o, s, c, u, d = h(e) ? e : e.split(i),
                                f = l,
                                g = [f],
                                p = []; for (a = 0, o = d.length; a < o; a++) { for (u = [], s = 0, c = g.length; s < c; s++)
                                    for (r = [(f = g[s].n)[d[a]], f["*"]], n = 2; n--;)(t = r[n]) && (u.push(t), p = p.concat(t.f || []));
                                g = u } return p }, g.separator = function(e) { e ? (e = "[" + (e = f(e).replace(/(?=[\.\^\]\[\-])/g, "\\")) + "]", i = new RegExp(e)) : i = /[\.\/]/ }, g.on = function(e, t) { if ("function" != typeof t) return function() {}; for (var r = h(e) ? h(e[0]) ? e : [e] : f(e).split(o), n = 0, a = r.length; n < a; n++) ! function(e) { for (var r, n = h(e) ? e : f(e).split(i), a = l, o = 0, s = n.length; o < s; o++) a = (a = a.n).hasOwnProperty(n[o]) && a[n[o]] || (a[n[o]] = { n: {} }); for (a.f = a.f || [], o = 0, s = a.f.length; o < s; o++)
                                    if (a.f[o] == t) { r = !0; break }! r && a.f.push(t) }(r[n]); return function(e) {+e == +e && (t.zIndex = +e) } }, g.f = function(e) { var t = (0, n.getArrayCopy)(arguments),
                                r = [].slice.call(t, 1); return function() { g.apply(null, [e, null].concat(r).concat([].slice.call(t, 0))) } }, g.stop = function() { r = 1 }, g.nt = function(e) { var r = h(t) ? t.join(".") : t; return e ? new RegExp("(?:\\.|\\/|^)" + e + "(?:\\.|\\/|$)").test(r) : r }, g.nts = function() { return h(t) ? t : t.split(i) }, g.off = g.unbind = function(e, t) { if (e) { var r = h(e) ? h(e[0]) ? e : [e] : f(e).split(o); if (r.length > 1)
                                    for (var n = 0, s = r.length; n < s; n++) g.off(r[n], t);
                                else { r = h(e) ? e : f(e).split(i); var c, u, d, p, m, v = [l],
                                        b = []; for (n = 0, s = r.length; n < s; n++)
                                        for (p = 0; p < v.length; p += d.length - 2) { if (d = [p, 1], c = v[p].n, "*" != r[n]) c[r[n]] && (d.push(c[r[n]]), b.unshift({ n: c, name: r[n] }));
                                            else
                                                for (u in c) c[a](u) && (d.push(c[u]), b.unshift({ n: c, name: u }));
                                            v.splice.apply(v, d) }
                                    for (n = 0, s = v.length; n < s; n++)
                                        for (c = v[n]; c.n;) { if (t) { if (c.f) { for (p = 0, m = c.f.length; p < m; p++)
                                                        if (c.f[p] == t) { c.f.splice(p, 1); break }! c.f.length && delete c.f } for (u in c.n)
                                                    if (c.n[a](u) && c.n[u].f) { var y = c.n[u].f; for (p = 0, m = y.length; p < m; p++)
                                                            if (y[p] == t) { y.splice(p, 1); break }! y.length && delete c.n[u].f } } else
                                                for (u in delete c.f, c.n) c.n[a](u) && c.n[u].f && delete c.n[u].f;
                                            c = c.n } e: for (n = 0, s = b.length; n < s; n++) { for (u in (c = b[n]).n[c.name].f) continue e; for (u in c.n[c.name].n) continue e;
                                            delete c.n[c.name] } } } else g._events = l = { n: {} } }, g.once = function(e, t) { return g.on(e, (function r() { return g.off(e, r), t.apply(this, arguments) })) }, g.version = "0.5.3", g.toString = function() { return "You are running Eve 0.5.3" }, e.eve = g, g }("undefined" != typeof window ? window : void 0 !== e ? e : null);
                t["default"] = a }).call(this, r(6)) }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(249)),
                i = { extension: function(e) {
                        (0, a["default"])(e.getDep("redraphael", "plugin")) }, name: "redraphaelSvg", type: "plugin", requiresFusionCharts: !0 };
            t["default"] = i }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { if (e.svg) { var t = "hasOwnProperty",
                        r = "vertical-align",
                        a = "function",
                        i = { visibility: "hidden", "font-size": "0px" },
                        o = String,
                        s = parseFloat,
                        l = parseInt,
                        c = { top: 0, bottom: -1, middle: -.5 },
                        u = e._g.win.navigator,
                        d = !!document.documentMode,
                        f = Math,
                        h = f.max,
                        g = f.abs,
                        p = f.pow,
                        m = f.sqrt,
                        v = /^xlink:/,
                        b = /[, ]+/,
                        y = /\n|<br\s*?\/?>/i,
                        x = /&lt|&gt|&quot|&#039|&#034|<br/i,
                        w = /&nbsp;|&#160;|&#xA0;/g,
                        C = Array.prototype.shift,
                        _ = !(!/AppleWebKit/.test(u.userAgent) || /Chrome/.test(u.userAgent) && !(u.appVersion.match(/Chrome\/(\d+)\./)[1] < 29)),
                        k = e.eve,
                        S = "",
                        E = " ",
                        A = "http://www.w3.org/1999/xlink",
                        T = "http://www.w3.org/2000/svg",
                        M = (!!u.platform && /iPad|iPhone|iPod/.test(u.platform), { block: "M5,0 0,2.5 5,5z", classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z", diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z", open: "M6,1 1,3.5 6,6", oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z" }),
                        N = { speed: "optimizeSpeed", crisp: "crispEdges", precision: "geometricPrecision" },
                        D = u.userAgent.toLowerCase(),
                        F = !(!(ie = -1 != D.indexOf("msie") && parseInt(D.split("msie")[1])) || 9 !== ie),
                        I = e.supportsPointer,
                        L = e.supportsTouch,
                        O = {},
                        R = function(t, r, n, a) { e._preload(n[1], (function() { var e = this.offsetWidth,
                                    n = this.offsetHeight;
                                z(t, { width: e, height: n }), z(r, { width: e, height: n }), a.safari() })) },
                        P = function(e, t) { if (t)
                                for (var r in t) e[r] = t[r] },
                        V = { elementInfo: [] },
                        j = e._g.doc,
                        B = (e._g.win, { mouseover: "touchstart", mousedown: "touchstart", mouseup: "touchend", mousemove: "touchmove", mouseout: "touchend" }),
                        H = { "accent-height": !0, accumulate: !0, additive: !0, "alignment-baseline": !0, alphabetic: !0, amplitude: !0, "arabic-form": !0, ascent: !0, azimuth: !0, "baseline-shift": !0, bbox: !0, begin: !0, bias: !0, by: !0, "cap-height": !0, "class": !0, clip: !0, "clip-path": !0, "clip-rule": !0, color: !0, "color-interpolation": !0, "color-interpolation-filters": !0, "color-profile": !0, "color-rendering": !0, cursor: !0, cx: !0, cy: !0, d: !0, decelerate: !0, descent: !0, direction: !0, display: !0, divisor: !0, "dominant-baseline": !0, dur: !0, dx: !0, dy: !0, elevation: !0, "enable-background": !0, end: !0, exponent: !0, fill: !0, "fill-opacity": !0, "fill-rule": !0, filter: !0, "flood-color": !0, "flood-opacity": !0, "font-family": !0, "font-size": !0, "font-size-adjust": !0, "font-stretch": !0, "font-style": !0, "font-variant": !0, "font-weight": !0, format: !0, fr: !0, from: !0, fx: !0, fy: !0, g1: !0, g2: !0, "glyph-name": !0, "glyph-orientation-horizontal": !0, "glyph-orientation-vertical": !0, hanging: !0, height: !0, "horiz-adv-x": !0, "horiz-origin-x": !0, href: !0, hreflang: !0, id: !0, ideographic: !0, "image-rendering": !0, in2: !0, "in": !0, intercept: !0, k1: !0, k2: !0, k3: !0, k4: !0, k: !0, kerning: !0, lang: !0, "letter-spacing": !0, "lighting-color": !0, local: !0, "marker-end": !0, "marker-mid": !0, "marker-start": !0, mask: !0, mathematical: !0, max: !0, media: !0, method: !0, min: !0, mode: !0, name: !0, offset: !0, opacity: !0, operator: !0, order: !0, orient: !0, orientation: !0, origin: !0, overflow: !0, "overline-position": !0, "overline-thickness": !0, "paint-order": !0, "panose-1": !0, path: !0, ping: !0, "pointer-events": !0, points: !0, r: !0, radius: !0, rel: !0, "rendering-intent": !0, restart: !0, result: !0, rotate: !0, rx: !0, ry: !0, scale: !0, seed: !0, "shape-rendering": !0, slope: !0, spacing: !0, speed: !0, stemh: !0, stemv: !0, "stop-color": !0, "stop-opacity": !0, "strikethrough-position": !0, "strikethrough-thickness": !0, string: !0, stroke: !0, "stroke-dasharray": !0, "stroke-dashoffset": !0, "stroke-linecap": !0, "stroke-linejoin": !0, "stroke-miterlimit": !0, "stroke-opacity": !0, "stroke-width": !0, style: !0, tabindex: !0, target: !0, "text-anchor": !0, "text-decoration": !0, "text-rendering": !0, to: !0, transform: !0, type: !0, u1: !0, u2: !0, "underline-position": !0, "underline-thickness": !0, unicode: !0, "unicode-bidi": !0, "unicode-range": !0, "units-per-em": !0, "v-alphabetic": !0, "v-hanging": !0, "v-ideographic": !0, "v-mathematical": !0, values: !0, "vector-effect": !0, version: !0, "vert-adv-y": !0, "vert-origin-x": !0, "vert-origin-y": !0, visibility: !0, width: !0, widths: !0, "word-spacing": !0, "writing-mode": !0, x1: !0, x2: !0, x: !0, "x-height": !0, "xlink:actuate": !0, "xlink:arcrole": !0, "xlink:href": !0, "xlink:role": !0, "xlink:show": !0, "xlink:title": !0, "xlink:type": !0, "xml:base": !0, "xml:lang": !0, "xml:space": !0, y1: !0, y2: !0, y: !0, z: !0 };
                    L && j.addEventListener(I ? "pointerover" : "touchstart", (function(e) { if (V.srcElement && V.srcElement !== (e.srcElement || e.target)) { var t, r, n, a = (t = V.elementInfo).length; for (n = 0; n < a; n++)(r = t[n]).callback.call(r.el, e) } V = { elementInfo: [] } }), !0), e.toString = function() { return "Your browser supports SVG.\nYou are running Raphaël " + this.version }, e._url = S; var G = function(e, t, r) { void 0 === r && (r = "fill"); var n = "fill" === r ? e.gradient : e["stroke-gradient"]; if (n) { if (n === t) return;
                                n.refCount--, n.refCount || n.parentNode.removeChild(n), "fill" === r ? delete e.gradient : delete e["stroke-gradient"] } t && ("fill" === r ? e.gradient = t : e["stroke-gradient"] = t, t.refCount++) },
                        z = e._createNode = function(t, r) { var n, a; if ("string" == typeof t && (t = e._g.doc.createElementNS(T, t)), r)
                                for (n in r) a = F ? o(r[n]) : r[n], v.test(n) ? t.setAttributeNS(A, n.replace(v, S), a) : t.setAttribute(n, a); return t },
                        U = { userSpaceOnUse: "userSpaceOnUse", objectBoundingBox: "objectBoundingBox" },
                        W = { pad: "pad", redlect: "reflect", repeat: "repeat" },
                        X = function(t, r, n) { var a; if (void 0 === n && (n = "fill"), !t.paper || !t.paper.defs) return 0; var i, l, c, u, d, v, b = "linear",
                                y = t.paper,
                                x = e.getElementID((y.id + "-" + r).replace(/[()\s%:,\xb0#]/g, "_")),
                                w = .5,
                                C = .5,
                                _ = t.node,
                                k = _.style,
                                E = e._g.doc.getElementById(x); if (!E) { if (r = (r = o(r).replace(e._radial_gradient, (function(e, t) { b = "radial", t = t ? t.split(",") : [], u = t[5], d = t[6]; var r, n, a = t[0],
                                            o = t[1],
                                            f = t[2],
                                            h = t[3],
                                            g = t[4],
                                            v = a && o; return f && (i = /%/.test(f) ? f : s(f)), u === U.userSpaceOnUse ? (v && (w = a, C = o), h && g && (l = h, c = g, v || (w = l, C = c)), S) : (v && (w = s(a), r = 2 * ((C = s(o)) > .5) - 1, (n = p(w - .5, 2)) + p(C - .5, 2) > .25 && n < .25 && (C = m(.25 - n) * r + .5) && .5 !== C && (C = C.toFixed(5) - 1e-5 * r)), h && g && (l = s(h), r = 2 * ((c = s(g)) > .5) - 1, (n = p(l - .5, 2)) + p(c - .5, 2) > .25 && n < .25 && (c = m(.25 - n) * r + .5) && .5 !== c && (c = c.toFixed(5) - 1e-5 * r), v || (w = l, C = c)), S) }))).split(/\s*-\s*/), "linear" === b) { var A, T = r.shift(),
                                        M = T.match(/\((.*)\)/); if (M = M && M[1] && M[1].split(/\s*,\s*/), T = -s(T), isNaN(T)) return null;
                                    M && M.length ? (M[0] in U ? (u = M.shift(), M[0] in W && (d = M.shift())) : (M[4] && (u = M[4]), M[5] && (d = M[5])), v = [M[0] || "0%", M[1] || "0%", M[2] || "100%", M[3] || "0%"]) : (v = [0, 0, f.cos(e.rad(T)), f.sin(e.rad(T))], A = 1 / (h(g(v[2]), g(v[3])) || 1), v[2] *= A, v[3] *= A, v[2] < 0 && (v[0] = -v[2], v[2] = 0), v[3] < 0 && (v[1] = -v[3], v[3] = 0)) } var N = e._parseDots(r); if (!N) return null;
                                (E = z(b + "Gradient", { id: x })).refCount = 0, u in U && E.setAttribute("gradientUnits", o(u)), d in W && E.setAttribute("spreadMethod", o(d)), "radial" === b ? (i !== undefined && E.setAttribute("r", o(i)), l !== undefined && c !== undefined && (E.setAttribute("cx", o(l)), E.setAttribute("cy", o(c))), E.setAttribute("fx", o(w)), E.setAttribute("fy", o(C))) : z(E, { x1: v[0], y1: v[1], x2: v[2], y2: v[3] }); for (var D = 0, F = N.length; D < F; D++) E.appendChild(z("stop", { offset: N[D].offset ? N[D].offset : D ? "100%" : "0%", "stop-color": N[D].color || "#fff", "stop-opacity": N[D].opacity === undefined ? 1 : N[D].opacity }));
                                y.defs.appendChild(E) } return G(t, E, n), z(_, ((a = {})[n] = "url('" + e._url + "#" + x + "')", a[n + "-opacity"] = 1, a)), k.fill = S, 1 },
                        $ = function(e) { var t = e.getBBox(1);
                            z(e.pattern, { patternTransform: e.matrix.invert() + " translate(" + t.x + "," + t.y + ")" }) },
                        Y = function(r, n, a) { if ("path" == r.type) { for (var i, s, l, c, u, d = o(n).toLowerCase().split("-"), f = r.paper, h = a ? "end" : "start", g = r.node, p = r.attrs, m = p["stroke-width"], v = d.length, b = "classic", y = 3, x = 3, w = 5; v--;) switch (d[v]) {
                                    case "block":
                                    case "classic":
                                    case "oval":
                                    case "diamond":
                                    case "open":
                                    case "none":
                                        b = d[v]; break;
                                    case "wide":
                                        x = 5; break;
                                    case "narrow":
                                        x = 2; break;
                                    case "long":
                                        y = 5; break;
                                    case "short":
                                        y = 2 }
                                if ("open" == b ? (y += 2, x += 2, w += 2, l = 1, c = a ? 4 : 1, u = { fill: "none", stroke: p.stroke }) : (c = l = y / 2, u = { fill: p.stroke, stroke: "none" }), r._.arrows ? a ? (r._.arrows.endPath && O[r._.arrows.endPath]--, r._.arrows.endMarker && O[r._.arrows.endMarker]--) : (r._.arrows.startPath && O[r._.arrows.startPath]--, r._.arrows.startMarker && O[r._.arrows.startMarker]--) : r._.arrows = {}, "none" != b) { var C = "raphael-marker-" + b,
                                        _ = "raphael-marker-" + h + b + y + x + "-obj" + r.id;
                                    e._g.doc.getElementById(C) ? O[C]++ : (f.defs.appendChild(z(z("path"), { "stroke-linecap": "round", d: M[b], id: C })), O[C] = 1); var k, E = e._g.doc.getElementById(_);
                                    E ? (O[_]++, k = E.getElementsByTagName("use")[0]) : (E = z(z("marker"), { id: _, markerHeight: x, markerWidth: y, orient: "auto", refX: c, refY: x / 2 }), k = z(z("use"), { "xlink:href": "#" + C, transform: (a ? "rotate(180 " + y / 2 + " " + x / 2 + ") " : S) + "scale(" + y / w + "," + x / w + ")", "stroke-width": (1 / ((y / w + x / w) / 2)).toFixed(4) }), E.appendChild(k), f.defs.appendChild(E), O[_] = 1), z(k, u); var A = l * ("diamond" != b && "oval" != b);
                                    a ? (i = r._.arrows.startdx * m || 0, s = e.getTotalLength(p.path) - A * m) : (i = A * m, s = e.getTotalLength(p.path) - (r._.arrows.enddx * m || 0)), (u = {})["marker-" + h] = "url('" + e._url + "#" + _ + "')", (s || i) && (u.d = e.getSubpath(p.path, i, s)), z(g, u), r._.arrows[h + "Path"] = C, r._.arrows[h + "Marker"] = _, r._.arrows[h + "dx"] = A, r._.arrows[h + "Type"] = b, r._.arrows[h + "String"] = n } else a ? (i = r._.arrows.startdx * m || 0, s = e.getTotalLength(p.path) - i) : (i = 0, s = e.getTotalLength(p.path) - (r._.arrows.enddx * m || 0)), r._.arrows[h + "Path"] && z(g, { d: e.getSubpath(p.path, i, s) }), delete r._.arrows[h + "Path"], delete r._.arrows[h + "Marker"], delete r._.arrows[h + "dx"], delete r._.arrows[h + "Type"], delete r._.arrows[h + "String"]; for (u in O)
                                    if (O[t](u) && !O[u]) { var T = e._g.doc.getElementById(u);
                                        T && T.parentNode.removeChild(T) } } },
                        q = { "": ["none"], none: ["none"], "-": [3, 1], ".": [1, 1], "-.": [3, 1, 1, 1], "-..": [3, 1, 1, 1, 1, 1], ". ": [1, 3], "- ": [4, 3], "--": [8, 3], "- .": [4, 3, 1, 3], "--.": [8, 3, 1, 3], "--..": [8, 3, 1, 3, 1, 3] },
                        K = function(t, r, n) { if (r !== undefined) { var a, i, o, s, l, c = q[r.toLowerCase && r.toLowerCase()]; if (r = c || [].concat(r), e.is(r, "array")) { if (o = { round: i = n["stroke-width"] || t.attrs["stroke-width"] || 1, square: i, butt: 0 } [n["stroke-linecap"] || t.attrs["stroke-linecap"]] || 0, s = r.length, l = c ? i : 1, "none" === r[0]) a = r;
                                    else
                                        for (a = []; s--;) a[s] = r[s] * l + (s % 2 ? 1 : -1) * o, a[s] <= 0 && (a[s] = .01 + (i <= 1 ? o : 0)), isNaN(a[s]) && (a[s] = 0); return { "stroke-dasharray": a.join(",") } } } },
                        J = e._setFillAndStroke = function(r, a) { if (r.paper.canvas) { var i, s, c, u, d, f, p = r.node,
                                    m = r.attrs,
                                    v = r.paper,
                                    y = {},
                                    x = {},
                                    w = { "clip-rect": !0 }; for (s in "image" === r.type && (0, n.loadRefImage)(r, a), a)
                                    if (s in e._availableAttrs)
                                        if ((c = a[s]) === S && s in m) delete m[s], p.removeAttribute("src" === s ? "href" : s);
                                        else if (null !== c || w[s]) switch (m[s] = c, s) {
                                    case "blur":
                                        r.blur(c); break;
                                    case "href":
                                    case "title":
                                    case "target":
                                        var C = p.parentNode; if ("a" !== C.tagName.toLowerCase()) { if (c === S) break; var k = z("a");
                                            k.raphael = !0, k.raphaelid = p.raphaelid, C.insertBefore(k, p), k.appendChild(p), C = k } "target" === s ? C.setAttributeNS(A, "show", "blank" === c ? "new" : c) : C.setAttributeNS(A, s, c), p.titleNode = C; break;
                                    case "cursor":
                                        x.cursor = c; break;
                                    case "transform":
                                        r.transform(c); break;
                                    case "rotation":
                                        e.is(c, "array") ? r.rotate.apply(r, c) : r.rotate(c); break;
                                    case "arrow-start":
                                        Y(r, c); break;
                                    case "arrow-end":
                                        Y(r, c, 1); break;
                                    case "clip-path":
                                        u = !0;
                                    case "clip-rect":
                                        if (f = !u && o(c).split(b), r._.clipispath = !!u, u || 4 === f.length) { r.clip && r.clip.parentNode.parentNode.removeChild(r.clip.parentNode); var E = z(u ? "path" : "rect");
                                            (i = z("clipPath")).id = e.getElementID(e.createUUID()), z(E, u ? { d: c ? m["clip-path"] = e._pathToAbsolute(c) : e._availableAttrs.path, fill: "none" } : { x: f[0], y: f[1], width: f[2], height: f[3], transform: r.matrix.invert() }), i.appendChild(E), v.defs.appendChild(i), y["clip-path"] = "url('" + e._url + "#" + i.id + "')", r.clip = E } if (!c) { var T = p.getAttribute("clip-path"); if (T) { var M = e._g.doc.getElementById(T.replace(/(^url\(#|\)$)/g, S));
                                                M && M.parentNode.removeChild(M), y["clip-path"] = S, 11 === document.documentMode && p.removeAttribute("clip-path"), delete r.clip } } break;
                                    case "path":
                                        "path" === r.type && (y.d = c ? m.path = e._stopabsolutePath ? e.sanitizePath(c) : e._pathToAbsolute(c) : e._availableAttrs.path, r._.dirty = 1, r._.arrows && ("startString" in r._.arrows && Y(r, r._.arrows.startString), "endString" in r._.arrows && Y(r, r._.arrows.endString, 1))); break;
                                    case "width":
                                        if (y[s] = c, r._.dirty = 1, !m.fx) break;
                                        s = "x", c = m.x;
                                    case "x":
                                        m.fx && (c = -m.x - (m.width || 0));
                                    case "rx":
                                        if ("rx" === s && "rect" === r.type) break;
                                    case "cx":
                                        y[s] = c, r.pattern && $(r), r._.dirty = 1; break;
                                    case "height":
                                        if (y[s] = c, r._.dirty = 1, !m.fy) break;
                                        s = "y", c = m.y;
                                    case "y":
                                        if ("text" === r.type) break;
                                        m.fy && (c = -m.y - (m.height || 0));
                                    case "ry":
                                        if ("ry" === s && "rect" === r.type) break;
                                    case "cy":
                                        y[s] = c, r.pattern && $(r), r._.dirty = 1; break;
                                    case "r":
                                        "rect" === r.type ? y.rx = y.ry = c : y[s] = c, r._.dirty = 1; break;
                                    case "src":
                                        "image" === r.type && p.setAttributeNS(A, "href", c); break;
                                    case "stroke-width":
                                        1 === r._.sx && 1 === r._.sy || (c /= h(g(r._.sx), g(r._.sy)) || 1), v._vbSize && (c *= v._vbSize), _ && 0 === c && (c = 1e-6), y[s] = c, !a["stroke-dasharray"] && m["stroke-dasharray"] && "" !== a["stroke-dasharray"] && P(y, K(r, m["stroke-dasharray"], a)), r._.arrows && ("startString" in r._.arrows && e.addArrow && e.addArrow(r, r._.arrows.startString), "endString" in r._.arrows && e.addArrow && e.addArrow(r, r._.arrows.endString, 1)); break;
                                    case "stroke-dasharray":
                                        P(y, K(r, c, a)); break;
                                    case "fill":
                                        if (e._ISURL.test(c)) { d = c.split(e._ISURL), i = z("pattern"); var D = z("image");
                                            i.id = e.getElementID(e.createUUID()), z(i, { x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1 }), z(D, { x: 0, y: 0, "xlink:href": d[1] }), i.appendChild(D), R(i, D, d, v), v.defs.appendChild(i), y.fill = "url('" + e._url + d[1] + "')", r.pattern = i, r.pattern && $(r); break } var F = e.getRGB(c); if (F.error) { if (("circle" === r.type || "ellipse" === r.type || "r" !== o(c).charAt()) && X(r, c)) { m.gradient = c; break } } else delete a.gradient, delete m.gradient, !e.is(m["fill-opacity"], "undefined") && e.is(a["fill-opacity"], "undefined") && (y["fill-opacity"] = m["fill-opacity"]), r.gradient && G(r);
                                        F[t]("opacity") ? (y["fill-opacity"] = F.opacity > 1 ? F.opacity / 100 : F.opacity, r._.fillOpacityDirty = !0) : r._.fillOpacityDirty && e.is(m["fill-opacity"], "undefined") && e.is(a["fill-opacity"], "undefined") && (p.removeAttribute("fill-opacity"), delete r._.fillOpacityDirty);
                                    case "stroke":
                                        (F = e.getRGB(c)).error ? "circle" !== r.type && "ellipse" !== r.type && "r" === o(c).charAt() || X(r, c, "stroke") : (y[s] = F.hex, G(r, void 0, s)), "stroke" === s && (F[t]("opacity") ? (y["stroke-opacity"] = F.opacity > 1 ? F.opacity / 100 : F.opacity, r._.strokeOpacityDirty = !0) : r._.strokeOpacityDirty && e.is(m["stroke-opacity"], "undefined") && e.is(a["stroke-opacity"], "undefined") && (p.removeAttribute("stroke-opacity"), delete r._.strokeOpacityDirty), r._.arrows && ("startString" in r._.arrows && Y(r, r._.arrows.startString), "endString" in r._.arrows && Y(r, r._.arrows.endString, 1))); break;
                                    case "gradient":
                                        ("circle" === r.type || "ellipse" === r.type || "r" !== o(c).charAt()) && X(r, c); break;
                                    case "visibility":
                                        "hidden" === c ? r.hide() : r.show(); break;
                                    case "opacity":
                                        c = c > 1 ? c / 100 : c, y.opacity = c; break;
                                    case "fill-opacity":
                                        c = c > 1 ? c / 100 : c, y["fill-opacity"] = c; break;
                                    case "shape-rendering":
                                        r.attrs[s] = c = N[c] || c || "auto", y[s] = c, p.style.shapeRendering = c; break;
                                    case "line-height":
                                    case "vertical-align":
                                        break;
                                    default:
                                        "font-size" === s && (c = l(c, 10) + "px"), r._.dirty = 1, y[s] = c, n.dashedAttr2CSSMap[s] && (x[n.dashedAttr2CSSMap[s]] = c) } else s in m && (delete m[s], p.removeAttribute("src" === s ? "href" : s));
                                else s in H && (c === S && s in m ? (delete m[s], p.removeAttribute(s)) : (m[s] = c, x[s] = c)); for (s in x) p.style[s] = x[s]; for (s in y) p.setAttribute(s, y[s]); "text" === r.type && !a["_do-not-tune"] && Q(r, a) } },
                        Z = e._updateFollowers = function() { var e, t, r, a = (0, n.getArrayCopy)(arguments),
                                i = C.call(a),
                                o = C.call(a); for (e = 0, t = i.followers.length; e < t; e++)(r = i.followers[e].el)[o].apply(r, a) },
                        Q = function(n, a) { if ("text" === n.type && (a[t]("text") || a[t]("font") || a[t]("font-size") || a[t]("x") || a[t]("y") || a[t]("line-height") || a[t](r) || a[t]("textpath"))) { var l, u, f, h, g, p, m, v, b, C, _, k, A = n.attrs,
                                    T = n.paper.defs,
                                    M = n.parent,
                                    N = n.node,
                                    D = n._oldAttr = n._oldAttr || { baseLineDiff: 8, valign: -.5 },
                                    F = s(a["line-height"] || A["line-height"]),
                                    I = a.direction || A.direction || M && M.attrs && M.attrs.direction || D.direction || "initial",
                                    L = !1,
                                    O = !1,
                                    R = d || "rtl" !== I ? 1 : 2,
                                    P = !1,
                                    V = !1,
                                    j = function(e) { return e && w.test(e) },
                                    B = function(e) { return e.replace(/\s+/g, " ").trim().replace(w, " ") }; if (a[t]("textpath")) { var H, G, U, W = e.getElementID(e.createUUID()),
                                        X = a.textpath,
                                        $ = 0,
                                        Y = {}; for (var q in X) X.hasOwnProperty(q) && ("path" !== q || "href" in X ? Y[q] = X[q] : D.textPathStr !== X[q] ? (n.textPathDef ? (n.textPathDef.setAttribute("d", X[q] || S), Y.href = "#" + n.textPathDef.getAttribute("id"), Y["xlink:href"] = "#" + n.textPathDef.getAttribute("id")) : (n.textPathDef = T.appendChild(z("path", { id: W, d: X[q] || S })), Y.href = "#" + W, Y["xlink:href"] = "#" + W), D.textPathStr = X[q]) : (Y.href = "#" + n.textPathDef.getAttribute("id"), Y["xlink:href"] = "#" + n.textPathDef.getAttribute("id"))); for (a[t]("text") ? (U = e._g.doc.createTextNode(a.text || S), D.pathText = A.text = a.text || S) : (U = e._g.doc.createTextNode(D.pathText || D.text || S), D.pathText = D.pathText || D.text || S, delete D.text), a[t](r) ? ("middle" === a[r] ? ($ = .3, D.valign = -.5) : "bottom" === a[r] ? ($ = .7, D.valign = -1) : "top" === a[r] && (D.valign = 0), (G = z("tspan", { dy: $ + "em" })).appendChild(U), D.tSpan = G) : !D.tSpan || D.tSpan.textContent !== a.text && "string" == typeof a.text ? ($ = -.5 === D.valign ? .3 : -1 === D.valign ? .7 : 0, (G = z("tspan", { dy: $ + "em" })).appendChild(U), D.tSpan = G) : G = D.tSpan, delete D.x, delete D.y, N.removeAttribute("x"), N.removeAttribute("y"), (H = z("textPath", Y)).appendChild(G || U); N.firstChild;) N.removeChild(N.firstChild);
                                    N.appendChild(H) } else { if (D.direction = I, n.textPathDef && T && (n.textPathDef.parentNode.removeChild(n.textPathDef), delete n.textPathDef), delete D.txtNode, delete D.tSpan, delete D.textPathStr, F || (F = 1.2 * (l = (l = a.fontSize || a["font-size"] || A["font-size"] || M && M.attrs && M.attrs.fontSize) ? l.toString().replace("px", S) : 10)), (a[t]("text") || D.pathText) && (_ = e.is(a.text, "array") ? a.text.join("<br>") : null == a.text ? D.pathText : a.text, delete D.pathText, _ !== D.text && (V = !0, _ && x.test(_) && (_ = _.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;|&#034;/g, '"').replace(/&#039;/g, "'").replace(/&<br\/>lt;|&l<br\/>t;|&lt<br\/>;/g, "<<br/>").replace(/&<br\/>gt;|&g<br\/>t;|&gt<br\/>;/g, "><br/>")), D.text = A.text = _, y.test(_) ? (D.noTSpan && (D.noTSpan = !(k = !0)), g = (m = o(_).split(y)).length) : (k = !0, D.noTSpan = !0, g = 1), D.lineCount !== g && (D.lineCount = g, P = !0))), F !== D.lineHeight && (D.lineHeight = F, D.baseLineDiff = .75 * F, P = !0), k)
                                        for (; N.firstChild;) N.removeChild(N.firstChild); if (D.lineCount > 1) { if ("pre" === N.style.whiteSpace && (N.style.whiteSpace = ""), f = {}, D.tspanAttr || (D.tspanAttr = {}, D.tspan0Attr = {}), D.tspanAttr.dy !== D.lineHeight && (D.tspanAttr.dy = f.dy = D.lineHeight, O = !0), a[t]("x") && D.tspanAttr.x !== a.x && (D.tspan0Attr.x = D.tspanAttr.x = f.x = A.x, O = !0), V) { for (C = N.getElementsByTagName("tspan"), h = 0; h < g; h++) { if (b = C[h * R]) { if (b.innerHTML = S, d)
                                                        for (; b.firstChild;) b.removeChild(b.firstChild);
                                                    O && z(b, h ? f : D.tspan0Attr) } else b = z("tspan", h ? D.tspanAttr : D.tspan0Attr), N.appendChild(b), d || "rtl" !== I || ((v = z("tspan", i)).appendChild(e._g.doc.createTextNode("i")), N.appendChild(v));
                                                m[h] || (b.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), m[h] = E), j(m[h]) ? (m[h] = B(m[h]), b.style.whiteSpace = "pre") : "pre" === b.style.whiteSpace && (b.style.whiteSpace = ""), b.appendChild(e._g.doc.createTextNode(m[h])) } if (p = g * R, C.length > p)
                                                for (h = C.length - 1; h >= p; h -= 1) N.removeChild(C[h]) } else if (O)
                                            for (p = (C = N.getElementsByTagName("tspan")).length, h = 0; h < p; h += R) z(C[h], h ? f : D.tspan0Attr) } else V && (j(_) ? (_ = B(_), N.style.whiteSpace = "pre") : "pre" === N.style.whiteSpace && (N.style.whiteSpace = ""), N.appendChild(e._g.doc.createTextNode(_)));
                                    a[r] && (u = c[A[r]] || 0) !== D.valign && (D.valign = u, P = !0), P && (D.shift = D.baseLineDiff + D.lineCount * D.lineHeight * D.valign, L = !0), !a.y && 0 !== a.y || D.y === a.y || (D.y = A.y, L = !0), !L || !D.y && 0 !== D.y || !D.shift && 0 !== D.shift || z(N, { y: Math.round(D.y + D.shift) }) } } },
                        ee = function(t, r, n) { var a = this,
                                i = n || r;
                            /*! dontAppend && */
                            i.canvas && i.canvas.appendChild(t), a.node = a[0] = t, t.raphael = !0, t.raphaelid = a.id = e._oid++, a.matrix = e.matrix(), a.realPath = null, a.attrs = a.attrs || {}, a.followers = a.followers || [], a.paper = r, a.ca = a.customAttributes = a.customAttributes || new r._CustomAttributes, a._ = { transform: [], sx: 1, sy: 1, deg: 0, dx: 0, dy: 0, dirty: 1 }, a.parent = i, !i.bottom && (i.bottom = a), a.prev = i.top, i.top && (i.top.next = a), i.top = a, a.next = null },
                        te = function(e, t, r) { var n = r ? "pageY" : "pageX"; return Math.abs(t[n] - e[n]) },
                        re = e.storeHandlers = function(e, t, r) { e._actualListners || (e._actualListners = []), e._derivedListeners || (e._derivedListeners = []), e._actualListners.push(t), e._derivedListeners.push(r) },
                        ne = function(e, t) { var r, n = e._actualListners.indexOf(t); return -1 !== n && (r = e._derivedListeners[n], e._actualListners.splice(n, 1), e._derivedListeners.splice(n, 1)), r },
                        ae = e.el;
                    ee.prototype = ae, ae.constructor = ee, e._engine.getNode = function(e) { var t = e.node || e[0].node; return t.titleNode || t }, e._engine.getLastNode = function(e) { var t = e.node || e[e.length - 1].node; return t.titleNode || t }, ae.rotate = function(e, t, r) { var n, a = this; return a.removed || (Z(a, "rotate", e, t, r), (e = o(e).split(b)).length - 1 && (t = s(e[1]), r = s(e[2])), e = s(e[0]), null == r && (t = r), null != t && null != r || (t = (n = a.getBBox(1)).x + n.width / 2, r = n.y + n.height / 2), a.transform(a._.transform.concat([
                            ["r", e, t, r]
                        ]))), a }, ae.scale = function(e, t, r, n) { var a, i = this; return i.removed || (Z(i, "scale", e, t, r, n), (e = o(e).split(b)).length - 1 && (t = s(e[1]), r = s(e[2]), n = s(e[3])), e = s(e[0]), null == t && (t = e), null == n && (r = n), null != r && null != n || (a = i.getBBox(1)), r = null == r ? a.x + a.width / 2 : r, n = null == n ? a.y + a.height / 2 : n, i.transform(i._.transform.concat([
                            ["s", e, t, r, n]
                        ]))), i }, ae.translate = function(e, t) { var r = this; return r.removed || (Z(r, "translate", e, t), (e = o(e).split(b)).length - 1 && (t = s(e[1])), e = s(e[0]) || 0, t = +t || 0, r.transform(r._.transform.concat([
                            ["t", e, t]
                        ]))), r }, ae.transform = function(t) { var r, n = this,
                            a = n._; return null == t ? a.transform : (e._extractTransform(n, t), n.clip && !a.clipispath && z(n.clip, { transform: n.matrix.invert() }), n.pattern && $(n), n.node && z(n.node, { transform: n.matrix }), 1 === a.sx && 1 === a.sy || (r = n.attrs["stroke-width"]) && n.attr({ "stroke-width": r }), n) }, ae.hide = function() { var e = this; return Z(e, "hide"), !e.removed && e.paper.safari(e.node.style.display = "none"), e }, ae.show = function() { var e = this; return Z(e, "show"), !e.removed && e.paper.safari(e.node.style.display = S), e }, ae.remove = function() { if (!this.removed && this.parent.canvas) { var t, r = this,
                                n = e._engine.getNode(r),
                                i = r.paper,
                                o = i.defs; for (i.__set__ && i.__set__.exclude(r), k.unbind("raphael.*.*." + r.id), r.gradient && o && G(r), r["stroke-gradient"] && o && G(r, void 0, "stroke"), r.textPathDef && o && (r.textPathDef.parentNode.removeChild(r.textPathDef), delete r.textPathDef); t = r.followers.pop();) t.el.remove(); for (; t = r.bottom;) t.remove(); if (r._drag && r.undrag(), r.events)
                                for (; t = r.events.pop();) t.unbind(); for (t in r.parent.canvas.contains(n) && r.parent.canvas.removeChild(n), r.removeData(), delete i._elementsById[r.id], e._tear(r, r.parent), r) r[t] = typeof r[t] === a ? e._removedFactory(t) : null;
                            r.removed = !0 } }, ae._getBBox = function() { var e, t, a, i = this,
                            o = i.node,
                            s = {},
                            l = i.attrs,
                            c = "text" === i.type;
                        d && c ? e = (0, n.showRecursively)(i) : "none" === o.style.display && (i.show(), a = !0); try { s = o.getBBox(), c && (s.x === undefined && (s.isCalculated = !0, t = l["text-anchor"], s.x = (l.x || 0) - s.width * ("start" === t ? 0 : "middle" === t ? .5 : 1)), s.y === undefined && (s.isCalculated = !0, t = l[r], s.y = (l.y || 0) - s.height * ("bottom" === t ? 1 : "middle" === t ? .5 : 0))) } catch (u) {} finally { s = s || {} } return d && c ? e && e() : a && i.hide(), s }, ae.attr = function(r, n) { if (this.removed) return this; var i, o, s, l, c, u, d, f, h = this.attrs,
                            g = {},
                            p = this._invokedCa || (this._invokedCa = {}),
                            m = this.ca; if (null == r) { var v = {}; for (i in h) h[t](i) && (v[i] = h[i]); return v.gradient && "none" === v.fill && (v.fill = v.gradient) && delete v.gradient, v.transform = this._.transform, v.visibility = "none" === this.node.style.display ? "hidden" : "visible", v } if (null == n) { if (e.is(r, "object")) l = r;
                            else if (e.is(r, "string")) return "fill" === r && "none" === h.fill && h.gradient ? h.gradient : "transform" === r ? this._.transform : "visibility" === r ? "none" === this.node.style.display ? "hidden" : "visible" : r in h ? h[r] : e.is(m[r], a) ? m[r].def : e._availableAttrs[r] } else(l = {})[r] = n; if (!e.stopPartialEventPropagation)
                            for (i in l) k("raphael.attr." + i + "." + this.id, this, l[i], i); for (i in l)
                            if ((f = m[i]) && !p[i] && e.is(f, a)) { for (c in p[i] = !0, u = f.apply(this, [].concat(l[i])), p[i] = !1, u) g[c] = u[c];
                                h[i] = l[i] } else g[i] = l[i]; for (J(this, g), o = 0, s = this.followers.length; o < s; o++)(d = this.followers[o]).cb && !d.cb.call(d.el, g, this) || d.el.attr(g); return this }, ae.pinchstart = function(t, r) { var n = this,
                            a = {},
                            i = function(i) { if (i.touches && 2 === i.touches.length) { var o = i.touches[0],
                                        s = i.touches[1];
                                    n._blockDrag = !0, i && i.preventDefault(), e.makeSelectiveCopy(a, i), a.data = { finger0: o, finger1: s, distanceX: te(o, s), distanceY: te(o, s, !0) }, t.call(r || n, a) } else n._blockDrag = !1 };
                        re(n, t, i), n.node.addEventListener("touchstart", i) }, ae.unpinchstart = function(e) { var t = ne(this, e);
                        this.__blockDrag = !1, this._pinchDragStarted = !1, t && this.node.removeEventListener("touchstart", t) }, ae.pinchmove = function(t, r) { var n = this,
                            a = {},
                            i = function(i) { if (i.touches && 2 === i.touches.length) { var o = i.touches[0],
                                        s = i.touches[1];
                                    i && i.preventDefault(), n._pinchDragStarted = !0, e.makeSelectiveCopy(a, i), a.data = { finger0: o, finger1: s, distanceX: te(o, s), distanceY: te(o, s, !0) }, t.call(r || n, a) } };
                        re(n, t, i), n.node.addEventListener("touchmove", i) }, ae.unpinchmove = function(e) { var t = ne(this, e);
                        t && this.node.removeEventListener("touchmove", t) }, ae.pinchend = function(e, t) { var r = this,
                            n = function(n) { r._pinchDragStarted && (r._pinchDragStarted = !1, e.call(t || r, n)) };
                        re(r, e, n), r.node.addEventListener("touchend", n) }, ae.unpinchend = function(e) { var t = ne(this, e);
                        this._pinchDragStarted = !1, t && this.node.removeEventListener("touchend", t) }, ae.pinch = function(e, t, r) { ae.pinchstart.call(this, e), ae.pinchin.call(this, t), ae.pinchend.call(this, r) }, ae.unpinch = function(e, t, r) { ae.unpinchstart.call(this, e), ae.unpinchin.call(this, t), ae.unpinchend.call(this, r) }, ae.fcwheel = function(t, r) { var n = this,
                            a = {},
                            i = function(i) { i && i.preventDefault(), e.makeSelectiveCopy(a, i), t.call(r || n, a) };
                        re(n, t, i), n.node.addEventListener("wheel", i) }, ae.fcunwheel = function(e) { var t = ne(this, e);
                        t && this.node.removeEventListener("wheel", t) }, ae.on = function(t, r, n) { if (r && t) { var a, i, o = this,
                                s = t.match(/fc-/),
                                l = r; if (this.removed) return this; switch (o._actualListners || (o._actualListners = []), o._derivedListeners || (o._derivedListeners = []), t) {
                                case "fc-dragstart":
                                    return o.drag(null, r), o;
                                case "fc-dragmove":
                                    return o.drag(r), o;
                                case "fc-dragend":
                                    return o.drag(null, null, r), o;
                                case "fc-dbclick":
                                    return o.dbclick(r, n), o;
                                case "fc-pinchstart":
                                    return o.pinchstart(r, n), o;
                                case "fc-pinchmove":
                                    return o.pinchmove(r, n), o;
                                case "fc-pinchend":
                                    return o.pinchend(r, n), o;
                                case "fc-click":
                                    return o.fcclick(r, n), o;
                                case "fc-wheel":
                                    return o.fcwheel(r, n), o } return s && (t = t.replace(/fc-/, "")), s && L && (i = t, t = (I ? e.safePointerEventMapping[t] : B[t]) || t, "mouseout" === i && (l = function(e) { I && L && !e.isPrimary || (V.elementInfo.push({ el: n || o, callback: r }), V.srcElement = e.srcElement || e.target) }, t = I ? "pointerover" : "touchstart")), this._ && this._.RefImg && ("load" === t || "error" === t) ? (a = this._.RefImg, l = function(e) {!o.removed && r.call(o, e) }) : a = this.node, l === r && (l = function(e) {
                                (!I || !L || e.isPrimary) && r.call(n || o, e) }), o._actualListners.push(r), o._derivedListeners.push(l), a.addEventListener ? a.addEventListener(t, l) : a["on" + t] = l, this } }, ae.off = function(t, r) { var n, a, i, o = r,
                            s = t.match(/fc-/); if (this.removed || !this._actualListners || !t || !r) return this; switch (t) {
                            case "fc-dragstart":
                                return this.undragstart(r), this;
                            case "fc-dragmove":
                                return this.undragmove(r), this;
                            case "fc-dragend":
                                return this.undragend(r), this;
                            case "fc-dbclick":
                                return this.undbclick(r), this;
                            case "fc-pinchstart":
                                return this.unpinchstart(r), this;
                            case "fc-pinchmove":
                                return this.unpinchmove(r), this;
                            case "fc-pinchend":
                                return this.unpinchend(r), this;
                            case "fc-click":
                                return this.fcunclick(r), this;
                            case "fc-wheel":
                                return this.fcunwheel(r), this } return s && (t = t.replace(/fc-/, "")), o = r, s && L && (n = t, t = (I ? e.safePointerEventMapping[t] : B[t]) || t, "mouseout" === n && (t = I ? "pointerover" : "touchstart")), i = this._ && this._.RefImg ? this._.RefImg : this.node, -1 !== (a = this._actualListners.indexOf(o)) && (o = this._derivedListeners[a], this._actualListners.splice(a, 1), this._derivedListeners.splice(a, 1)), i.removeEventListener ? i.removeEventListener(t, o) : i["on" + t] = null, this }, e._engine.path = function(e, t, r) { var n = z("path"),
                            a = new ee(n, e, r); return a.type = "path", t && a.attr(t), a }, e._engine.group = function(e, t, r, n) { var a = z("g"),
                            i = new ee(a, e, r); return i.type = "group", i.canvas = i.node, i.top = i.bottom = null, i._id = t || S, t && (n ? a.setAttribute("class", "raphael-group-" + t) : a.setAttribute("class", "raphael-group-" + i.id + "-" + t)), i }, e._engine.circle = function(e, t, r) { var n = z("circle"),
                            a = new ee(n, e, r); return a.type = "circle", t && a.attr(t), a }, e._engine.rect = function(e, t, r) { var n = z("rect"),
                            a = new ee(n, e, r); return a.type = "rect", t.rx = t.ry = t.r, t && a.attr(t), a }, e._engine.ellipse = function(e, t, r) { var n = z("ellipse"),
                            a = new ee(n, e, r); return a.type = "ellipse", t && a.attr(t), a }, e._engine.image = function(e, t, r) { var n = z("image"),
                            a = new ee(n, e, r, !0); return a._.group = r || e, a.type = "image", n.setAttribute("preserveAspectRatio", "none"), t && a.attr(t), a }, e._engine.text = function(e, t, r, n) { var a = z("text"),
                            i = new ee(a, e, r); return i.type = "text", n && i.css && i.css(n, undefined, !0), t && i.attr(t), i }, e._engine.setSize = function(e, t) { return this.width = e || this.width, this.height = t || this.height, this.canvas.setAttribute("width", this.width), this.canvas.setAttribute("height", this.height), this._viewBox && this.setViewBox.apply(this, this._viewBox), this }, e._engine.create = function() { var t, r = e._getContainer.apply(0, arguments),
                            n = r && r.container,
                            a = r.x,
                            i = r.y,
                            o = r.width,
                            s = r.height; if (!n) throw new Error("SVG container not found."); var l, c = z("svg"),
                            u = "overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:-moz-none;-khtml-user-select:none;-ms-user-select:none;user-select:none;-o-user-select:none;cursor:default;vertical-align:middle;"; return L && (e.isIE10 ? u += "-ms-touch-action:none;" : u += "touch-action:none;"), a = a || 0, i = i || 0, z(c, { height: s = s || 342, version: 1.1, width: o = o || 512, xmlns: T }), 1 === n ? (c.style.cssText = u + "position:absolute;left:" + a + "px;top:" + i + "px", (n = e._g.doc.body).appendChild(c), l = 1) : (c.style.cssText = u + "position:relative", n.firstChild ? n.insertBefore(c, n.firstChild) : n.appendChild(c)), (t = new e._Paper).width = o, t.height = s, t.canvas = c, t.container = n, z(c, { id: "raphael-paper-" + t.id }), t.clear(), t._left = t._top = 0, l && (t.renderfix = function() {}), t.renderfix(), t }, e._engine.setViewBox = function(e, t, r, n, a) { k("raphael.setViewBox", this, this._viewBox, [e, t, r, n, a]); var i, o, s = h(r / this.width, n / this.height),
                            l = this.top,
                            c = a ? "meet" : "xMinYMin"; if (null == e ? (this._vbSize && (s = 1), delete this._vbSize, i = "0 0 " + this.width + E + this.height) : (this._vbSize = s, i = e + E + t + E + r + E + n), z(this.canvas, { viewBox: i, preserveAspectRatio: c }), s)
                            for (; l;) o = "stroke-width" in l.attrs ? l.attrs["stroke-width"] : 1, l.attr({ "stroke-width": o }), l._.dirty = 1, l._.dirtyT = 1, l = l.prev; return this._viewBox = [e, t, r, n, !!a], this }, e.prototype.detachPaper = function() {!1 !== this._detached && (this.container.removeChild(this.canvas), this._detached = !0) }, e.prototype.attachPaper = function() { this._detached && (this.container.appendChild(this.canvas), this._detached = !1) }, e.prototype.renderfix = function() { var e, t = this.canvas,
                            r = t.style; try { e = t.getScreenCTM() || t.createSVGMatrix() } catch (i) { e = t.createSVGMatrix() } var n = -e.e % 1,
                            a = -e.f % 1;
                        (n || a) && (n && (this._left = (this._left + n) % 1, r.left = this._left + "px"), a && (this._top = (this._top + a) % 1, r.top = this._top + "px")) }, e.prototype._desc = function(t) { var r = this.desc; if (r)
                            for (; r.firstChild;) r.removeChild(r.firstChild);
                        else this.desc = r = z("desc"), this.canvas.appendChild(r);
                        r.appendChild(e._g.doc.createTextNode(e.is(t, "string") ? t : "Created with Red Raphaël " + e.version)) }, e.prototype.clear = function() { var e; for (k("raphael.clear", this); e = this.bottom;) e.remove(); for (e = this.canvas; e.firstChild;) e.removeChild(e.firstChild);
                        this.bottom = this.top = null, e.appendChild(this.desc = z("desc")), e.appendChild(this.defs = z("defs")) }, e.prototype.remove = function() { var t; for (k("raphael.remove", this); t = this.bottom;) t.remove(); for (t in this.defs && this.defs.parentNode.removeChild(this.defs), this.desc && this.desc.parentNode.removeChild(this.desc), this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas), this) this[t] = typeof this[t] === a ? e._removedFactory(t) : null;
                        this.removed = !0 }, e.prototype.setHTMLClassName = function() {} } var ie }; var n = r(218) }, function(e, t, r) { "use strict";

            function n(e) { var t = { data: {} }; if (!e) return t; if ("string" == typeof e) try { t.data = JSON.parse(e) } catch (r) { t.error = r } else t.data = e; return t }

            function a(e) { if (!e || !e.isRaw) return this.getChartData({ format: "json", isRaw: 0 }); if (e.isRaw && parseInt(e.isRaw, 10)) { var t = parseInt(e.isRaw, 10); return this.getChartData({ format: "json", isRaw: t }) } return this.getChartData("json") }

            function i(e) { this.setChartData(e, "json") } t.__esModule = !0, t["default"] = void 0; var o = { extension: function(e) { return e && (e.prototype.setJSONData = i), e && (e.prototype.getJSONData = a), { format: "json", toJSON: n, fromJSON: n } }, name: "JSON", type: "transcoder", requiresFusionCharts: !0 };
            t["default"] = o }, function(e, t, r) { "use strict"; var n = r(208),
                a = r(212);
            t.__esModule = !0, t["default"] = void 0; var i = a(r(227)),
                o = n(r(252)),
                s = n(r(253)),
                l = n(r(254)),
                c = n(r(255)),
                u = n(r(256)),
                d = n(r(257)),
                f = n(r(261)),
                h = { oneInAFrame: !0 },
                g = { extension: function(e) { var t = e.getDep("redraphael", "plugin"),
                            r = {};
                        t.fn._elementFromEvent = function(e) { if (!e || this.removed) return null; var t = e,
                                n = t.srcElement || t.target || (t = t.originalEvent) && (t.srcElement || t.target) || r; return "tspan" === n.nodeName && (n = n.parentNode), this.getById(n.raphaelid) }, t.requestAnimFrame = i["default"].addJob && function(e) { i["default"].addJob(e, i.priorityList.animation, h) }, t.instantRequestAnimFrame = i["default"].addJob && function(e) { i["default"].addJob(e, i.priorityList.instant) }, (0, f["default"])(t), (0, o["default"])(t), (0, s["default"])(t), (0, l["default"])(t), (0, c["default"])(t), (0, u["default"])(t), (0, d["default"])(t) }, name: "redraphaelExt", type: "plugin", requiresFusionCharts: !0 };
            t["default"] = g }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t, r, a = e.eve,
                    i = e._g,
                    o = e.fn,
                    s = e.el,
                    l = /[, ]+/,
                    c = "",
                    u = " ",
                    d = /\B([A-Z]{1})/g,
                    f = "fusioncharts-raphael-stylesheet";
                (r = (t = function(e) { this.styleSheet = c, this.rules = {}, this.ns = e || c }).prototype).getSheet = function() { var t = this.node; return this.styleSheet = r.getStyleSheet(f), this.styleSheet || ((t = this.node = i.doc.createElement("style")).setAttribute("id", e.format("raphael-stylesheet-{0}", e._oid++)), t.setAttribute("type", "text/css"), t.setAttribute("title", f), (i.doc.head || i.doc.getElementsByTagName("head")[0]).appendChild(this.node), this.styleSheet = r.getStyleSheet(f)), this.styleSheet }, r.getStyleSheet = function(e) { for (var t, r = i.doc.styleSheets, n = r.length; n--;)
                        if ((t = r[n]).title === e) return t }, r.applyCSSRule = function(e, t) { var r, n = this.styleSheet; if (!n) { if (!e || !t) return;
                        n = this.getSheet() } r = (n.rules || n.cssRules || {}).length || 0, n.insertRule ? n.insertRule(e + "{" + t + "}", r) : n.addRule && n.addRule(e, t, r) }, r.removeCSS = function(e) { var t, r = this.styleSheet,
                        n = r.rules || r.cssRules || {},
                        a = n.length || 0,
                        i = e; for (i = i || this.ns; a--;) t = n[a], new RegExp(i).test(t.selectorText) && (r.removeRule ? r.removeRule(a) : r.deleteRule(a)) }, r.destroy = function() { this.removeCSS(), delete this.node, delete this.styleSheet, delete this.ns, delete this.rules }, r.clear = function() { this.removeCSS(), this.rules = {} }, r.add = function(e, t, r) { var n, a = c,
                        i = this.rules[e] || (this.rules[e] = {}),
                        o = r ? c : "\t",
                        s = r ? ":" : ": "; for (n in t)(i[n] = t[n]) && (a += o + n.replace(d, "-$1").toLowerCase() + s + i[n] + ";");
                    this.applyCSSRule(e, a) }, r.render = function() { this.setCssText() }, r.setCssText = function(e) { var t, r, n = e ? c : "\t",
                        a = e ? ":" : ": ",
                        i = c,
                        o = c; for (t in this.rules) { for (r in i = c, o = t.replace(/(^|\,)/g, "$1" + this.ns + u), t = this.rules[t]) t[r] && (i += n + r.replace(d, "-$1").toLowerCase() + a + t[r] + ";");
                        this.applyCSSRule(o, i) } }, a.on("raphael.new", (function() { this._stylesheet = this._stylesheet || new t, this.cssNamespace(c) })), a.on("raphael.remove", (function() { this._stylesheet && this._stylesheet.destroy(), delete this._stylesheet })), o.cssNamespace = function(t) { return arguments.length && (this._stylesheet.ns = e.format("{0}#raphael-paper-{1}", t && t + u || c, this.id)), this._stylesheet.ns }, o.cssAddRule = function(e, t) { if (1 === arguments.length && "object" == typeof e) { for (var r in e) this.cssAddRule(r, e[r]); return this } return this._stylesheet.add(e, t), this }, o.cssRender = function() { return e.svg && this._stylesheet.render(), this }, o.cssClear = function() { return this._stylesheet.clear(), this }, e.ca["class"] = function(t) { var r, n, a, i, o = this,
                        s = t,
                        l = o.node,
                        d = o.paper,
                        f = "." + s,
                        h = d._stylesheet && d._stylesheet.rules,
                        g = o.parent,
                        p = o.attrs,
                        m = {}; if (e.svg) s = s || c, l.setAttribute("class", "group" === o.type && o._id ? "raphael-group-" + o.id + "-" + o._id + u + s : s);
                    else if (e.vml && (r = l.className = "group" === o.type ? s && o._id + u + s || o._id : "rvml " + s, l.className = r ? r + " fusioncharts-div" : "fusioncharts-div", f && h)) { for (i in n = h[f]) "color" === i && "text" === o.type && (i = "fill"), !p[i] && (m[i] = n[i]); for (; g && g.attr;) { if (a = g.attr("class"))
                                for (i in n = h[f = "." + a + u + f]) "color" === i && "text" === o.type && (i = "fill"), !p[i] && !m[i] && (m[i] = n[i]);
                            g = g.parent } o.css(m) } }, s.css = function(t, r, n) { var i, o, s, c, u, d, f, h = t; if (this.removed) return this; if (this.styles || (this.styles = {}), void 0 === r && e.is(h, "string")) { for (s = {}, d = 0, f = (i = h.split(l)).length; d < f; d++)(h = i[d]) in this.styles && (s[h] = this.styles[h]); return f - 1 ? s : s[i[0]] } if (void 0 === r && e.is(h, "array")) { for (s = {}, d = 0, f = h.length; d < f; d++) s[h[d]] = this.styles(h[d]); return s } for (d in void 0 !== r ? (o = {})[h] = r : h && e.is(h, "object") && (o = h), u = {}, o) c = d.replace(/\B([A-Z]{1})/g, "-$1").toLowerCase(), e._availableAttrs.hasOwnProperty(c) || "color" === c ? ("color" === c && "text" === this.type && (c = "fill"), u[c] = o[d], u.dirty = !0) : (a("raphael.css." + c + "." + this.id, this, o[d], c), this.node.style[c] = o[d], this.styles[c] = o[d]); for (d = 0, f = this.followers.length; d < f; d++) this.followers[d].el.attr(o); return u.hasOwnProperty("dirty") && (delete u.dirty, n && (u["_do-not-tune"] = !0), this.attr(u)), this }, s.removeCSS = function(t) { var r, a, i, o = t; if (!o && (o = n.appliedCSS), this.removed) return this; if (e.is(o, "string") && (o = o.split(",")), e.is(o, "array"))
                        for (i = o.length, a = 0; a < i; a++) r = o[a].replace(/\B([A-Z]{1})/g, "-$1").toLowerCase(), this.node.removeAttribute(r), this.node.style[r] = ""; return this } }; var n = r(215) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t, r = window,
                    a = Math.sqrt,
                    i = r.parseFloat,
                    o = r.parseInt,
                    s = "none",
                    l = "rgba(0,0,0,1)",
                    c = r.SVGFilterElement || r.SVGFEColorMatrixElement && 2 === r.SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE,
                    u = { "drop-shadow": "drop-shadow", stroke: "stroke", fill: "fill", "stroke-width": "stroke-width", "stroke-opacity": "stroke-opacity", "stroke-linecap": "stroke-linecap", "stroke-linejoin": "stroke-linejoin", "shape-rendering": "shape-rendering", opacity: "opacity", "fill-opacity": "fill-opacity" };
                e.svg ? (c && (e.filterShadow = function(t, r) { var o, s, c, u, d = t.dx || 1,
                        f = t.dy || 1,
                        h = t.spread || 3,
                        g = t.color || "rgb(64,64,64)",
                        p = t.paper,
                        m = p.cacheShadows || (p.cacheShadows = {}),
                        v = t.id || "drop-shadow-" + (r ? "layered" : "non-layered") + "-" + [d, f, h, g].join(" ") + p.container.id,
                        b = t.id || e.getElementID(v.replace(/[\(\)\s%:,\xb0#]/g, "_")),
                        y = !!(t.id ? e._g.doc.getElementById(b) : m[v]); return p && !y ? ((g = e.color(g)).error && (g = e.color(l)), c = (0, n.pluck)(g.opacity, 1), c = t.opacity || c, s = (o = p.addDefs({ filter: { tagName: "filter", id: b, y: "-1000%", x: "-1000%", width: "2000%", height: "2000%", children: [{ tagName: "feOffset", result: "offOut", "in": "SourceGraphic", dx: i(d), dy: i(f) }, { tagName: "feColorMatrix", result: "matrixOut", "in": "offOut", type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " + c + " 0" }, { tagName: "feGaussianBlur", result: "blurOut", "in": "matrixOut", stdDeviation: r ? 1 : a(i(h)) }, { tagName: "feComposite", "in": "SourceGraphic", in2: "blurOut", operator: "over" }] } })).filter.children, u = m[v] = { use: 1, hash: v, id: b, filter: o.filter.element, offset: s[0].element, matrix: s[1].element, blur: s[2].element, blend: s[3].element }) : (u = m[v]).use += 1, u }, e.el.dropshadow = function(r, n, a, i, o, l) { var c, u, d, f, h, g, p, m, v = this,
                        b = v._.shadowFilter,
                        y = v.paper,
                        x = y.cacheShadows || (y.cacheShadows = {}),
                        w = "drop-shadow" + [r, n, a, i].join(" "); for (h = f = .05 * o, p = 1; p <= 3; p++) h += f * p * (o - h); if (u = (c = l ? v.shadowElem || v.clone({ fill: s, stroke: "rgb(51, 51, 51)", "stroke-width": v.attr("stroke-width") || 1, opacity: h }, l).translate(r, n).follow(v, t, !l && "before") : v).shadowElem && c.shadowElem.node || c.node, r === s) { if (b) { if (b.use -= 1, u.removeAttribute("filter"), v.shadowElem && v.shadowElem.attr("opacity", 0), !b.use) { for (d in w = b.hash, b)(m = b[d]).parentNode && m.parentNode.removeChild(m), delete b[d];
                                m = null, delete x[w] } b = null, delete v._.shadowFilter } } else l && !v.shadowElem && (g = !0), l && (v.shadowElem = c), b = b && x[w] ? x[w] : v._.shadowFilter = e.filterShadow({ paper: y, dx: r, dy: n, spread: a, color: i, opacity: !l && h }, !!l), !g && v.shadowElem && v.shadowElem.attr("opacity", h), u.setAttribute("filter", 'url("' + e._url + "#" + b.id + '")'); return this }), t = function(e, t) { var r, n, a = this,
                        i = {}; for (n in e) switch (u[n] && (i[n] = e[n], delete e[n]), n) {
                        case "transform":
                            (r = t.matrix.clone()).translate(a.__shadowx, a.__shadowy), a.transform(r.toTransformString()); break;
                        case "stroke-width":
                            e[n] = i[n] || 1 }
                    for (n in a.attr(e), i) e[n] = i[n] }, e.ca["drop-shadow"] = function(r, a, i, c, u, d) { var f, h, g, p, m, v, b, y = this,
                        x = y._.shadows || (y._.shadows = []),
                        w = r,
                        C = a,
                        _ = c; if (y.__shadowblocked) return !1; if (w === s)
                        for (; h = x.pop();) h.remove();
                    else
                        for ((_ = e.color(_)).error && (_ = e.color(l)), u instanceof Array ? (m = u[0], v = u[1]) : m = v = u, m = 1 / (0, n.pluck)(m, 1), v = 1 / (0, n.pluck)(v, 1), w = (0, n.pluck)(w, 1) * m, C = (0, n.pluck)(C, 1) * m, f = .05 * (0, n.pluck)(_.opacity, 1), g = o(y.attr("stroke-width") || 1, 10) + 6, (p = y.matrix.clone()).translate(w, C), b = 1; b <= 3; b++)(h = (x[b - 1] || y.clone().follow(y, t, !d && "before")).attr({ stroke: _.hex, "stroke-opacity": f * b, opacity: "1", "stroke-width": (g - 2 * b) * v, transform: p.toTransformString(), "stroke-linecap": "round", "stroke-linejoin": "round", fill: s })).__shadowlevel = b, h.__shadowscale = v, h.__shadowx = w, h.__shadowy = C, d && d.appendChild(h), x.push(h); return !1 }, e.el.shadow = function(t, r, a, i) { var o, l = t,
                        c = r,
                        u = a,
                        d = i; if (u && u.constructor === e.el.constructor && (d = u, u = void 0), "object" == typeof l && (c && c.constructor === e.el.constructor && (d = c), c = l.opacity, u = l.scalefactor, o = void 0 !== l.useFilter ? !!l.useFilter : !n.isIE9, l = void 0 === l.apply ? !!c : l.apply), void 0 === c && (c = 1), this.dropshadow) { if (o && !this.ca.hasOwnProperty("drop-shadow")) return l && this.dropshadow(1, 1, 3, "rgb(64,64,64)", c, d) || this.dropshadow(s), this;
                        this._.shadowFilter && this.dropshadow(s) } return this.attr("drop-shadow", l ? [1, 1, 3, "rgba(64,64,64," + c + ")", u, d] : s) }) : e.vml ? (e.ca["drop-shadow"] = function(t, r, a, o, c, u) { var d, f, h, g, p = this,
                        m = p._.shadow,
                        v = t,
                        b = r,
                        y = o; return p.isShadow || (v === s ? m && (m = p._.shadow = m.remove()) : (m || (m = p._.shadow = p.clone(), u && u.appendChild(m.follow(p)) || m.follow(p, void 0, "before"), m.attr({ fill: "none", "fill-opacity": .5, "stroke-opacity": 1 }).isShadow = !0, m.attr("stroke-width") <= 0 && m.attr("stroke-width", 1)), f = (d = m.node.runtimeStyle).filter.replace(/ progid:\S+Blur\([^\)]+\)/g, ""), (y = e.color(y)).error && (y = e.color(l)), g = (0, n.pluck)(y.opacity, 1) / 5, h = c instanceof Array ? c[0] : c, h = 1 / (0, n.pluck)(c, 1), v = (0, n.pluck)(v, 1) * h, b = (0, n.pluck)(b, 1) * h, m.translate(v, b), d.filter = f + " progid:DXImageTransform.Microsoft.Blur(pixelRadius=" + i(.4 * a) + " makeShadow=True Color=" + y.hex + ' shadowOpacity="' + g + '");')), !1 }, e.el.shadow = function(t, r, n, a) { var i = t,
                        o = r,
                        l = n,
                        c = a; return l && l.constructor === e.el.constructor && (c = l, l = void 0), "object" == typeof i && (o && "group" === o.type && (c = o), o = i.opacity, l = i.scalefactor, i = void 0 === i.apply ? !!o : i.apply), void 0 === o && (o = 1), this.attr("drop-shadow", i || !o ? [1, 1, 5, "rgba(64,64,64," + o + ")", l, c] : s) }) : e.canvas && (e.el.shadow = function() { return this }) }; var n = r(215) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { e.svg ? (e.createOutlineFilter = function(t) { var r, n, a, i, o, s = t.paper,
                        l = t.rgbObj,
                        c = t.colorMapText,
                        u = s.outlineFilterCaches; return r = "text-outline-" + [c, a = s.filterColorMap[c] = function(e) { var t = e.R,
                            r = e.G,
                            n = e.B; return (299 * t + 587 * r + 114 * n) / 1e3 > 123 ? "darkFilter" : "brightFilter" }(l)].join(" "), n = e.getElementID(r.replace(/[\(\)\s%:,\xb0#]/g, "_")), o = (i = e.isFirefox ? s.addDefs({ filter: { tagName: "filter", id: n, children: [{ tagName: "feMorphology", result: "DILATED", "in": "SourceAlpha", operator: "dilate", radius: e.isIE11 ? "1.5" : "1" }, { tagName: "feFlood", result: "FLOOD", "flood-color": "darkFilter" === a ? "#000000" : "#ffffff", "flood-opacity": "1" }, { tagName: "feComposite", result: "OUTLINE", "in": "FLOOD", in2: "DILATED", operator: "in" }, { tagName: "feMerge", children: [{ tagName: "feMergeNode", "in": "OUTLINE" }, { tagName: "feMergeNode", "in": "SourceGraphic" }] }] } }) : s.addDefs({ filter: { tagName: "filter", id: n, children: [{ tagName: "feColorMatrix", result: "COLORED", "in": "SourceGraphic", type: "matrix", values: "darkFilter" === a ? "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0" : "1 1 1 1 255 1 1 1 1 255 1 1 1 1 255 0 0 0 1 0" }, { tagName: "feOffset", dx: "1", dy: "1", result: "OFFSET11", "in": "COLORED" }, { tagName: "feOffset", dx: "-1", dy: "-1", result: "OFFSET-1-1", "in": "COLORED" }, { tagName: "feOffset", dx: "-1", dy: "1", result: "OFFSET-11", "in": "COLORED" }, { tagName: "feOffset", dx: "1", dy: "-1", result: "OFFSET1-1", "in": "COLORED" }, { tagName: "feMerge", children: [{ tagName: "feMergeNode", "in": "OFFSET1-1" }, { tagName: "feMergeNode", "in": "OFFSET-1-1" }, { tagName: "feMergeNode", "in": "OFFSET11" }, { tagName: "feMergeNode", "in": "OFFSET-11" }, { tagName: "feMergeNode", "in": "SourceGraphic" }] }] } })).filter.children, u[a] = { hash: r, id: n, filter: i.filter.element, morph: o[0].element, flood: o[1].element, composite: o[2].element, merge: o[3].element } }, e.el.outlineText = function(t, r) { var a; if (r && "none" !== r) { a = /(^#[0-9A-Fa-f]{6}$)|(^#[0-9A-Fa-f]{3}$)/.test(r) ? (0, n.convertColor)(r) : r; var i, o, s = this.node,
                            l = this.paper,
                            c = l.outlineFilterCaches || (l.outlineFilterCaches = {}),
                            u = l.filterColorMap || (l.filterColorMap = {}),
                            d = function(e) { var t = e.split("(")[1].split(")")[0].split(","); return { R: +t[0], G: +t[1], B: +t[2] } }(a),
                            f = "rgb-" + d.R + "-" + d.G + "-" + d.B;
                        t ? (o = (i = u[f]) && c[i] ? c[i] : e.createOutlineFilter({ rgbObj: d, paper: l, colorMapText: f }), s.setAttribute("filter", 'url("' + e._url + "#" + o.id + '")')) : s.removeAttribute("filter") } }) : e.el.outlineText = function() { return this } }; var n = r(215) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t = /rgba\([\d]+\,[\d]+\,[\d]+\,0\)$/,
                    r = window,
                    a = Math,
                    i = a.cos,
                    o = a.sin,
                    s = a.PI,
                    l = r.parseInt,
                    c = r.parseFloat,
                    u = String,
                    d = Array.prototype.slice,
                    f = "hasOwnProperty",
                    h = "none",
                    g = "M",
                    p = "L",
                    m = "Z",
                    v = "text-bound",
                    b = /\s*\,\s*/g;
                e && e._availableAnimAttrs && e._availableAnimAttrs.cx && (e._availableAnimAttrs["scroll-position"] = e._availableAnimAttrs.cx);
                e.define && e.define([{ name: "polypath", polypath: function() { return this.path(void 0, e._lastArgIfGroup(arguments)) }, ca: { polypath: function(t, r, n, a, u, d) { var f, h, v, b, y, x = t,
                                w = r,
                                C = n,
                                _ = a,
                                k = u,
                                S = d; if (f = [], x = l(x, 10) || 0, w = c(w) || 0, C = c(C) || 0, _ = c(_) || 0, k = null === k || isNaN(k) ? .5 * s : e.rad(k), S = null === S || isNaN(S) ? 0 : c(S), b = k, x > 2) switch (h = 2 * s / x, S) {
                                case 0:
                                    for (v = 0; v < x; v++) f.push(p, w + _ * i(-b), C + _ * o(-b)), b += h;
                                    f[0] = g, f.push(m); break;
                                case 1:
                                    for (v = 0; v < x; v++) f.push(g, w, C, p, w + _ * i(-b), C + _ * o(-b)), b += h; break;
                                default:
                                    for (y = _ * i(h *= .5) * (1 - S), v = 0; v < x; v++) f.push(p, w + _ * i(-b), C + _ * o(-b)), b += h, f.push(p, w + y * i(-b), C + y * o(-b)), b += h;
                                    f[0] = g, f.push(m) } else 0 === _ ? f.push(g, w, C, p, w, C, m) : f.push(g, w - _, C, "A", _, _, 0, 0, 0, w + _, C, "A", _, _, 0, 0, 0, w - _, C, m); return { path: f } }, r: function(e) { var t = this.attrs.polypath; return t[3] = e, this.attr("polypath", t), !1 } } }]), e.ca[v] = function(r, n, a, i, o, s, l) { var c = this,
                        u = c.paper,
                        d = c._.textbound,
                        f = a,
                        g = o; if (this._origOpacity = void 0 !== l ? l : 1, "text" === this.type) return n && n !== h && !t.test(n) || r && r !== h && !t.test(r) ? (c.attrs[v] = arguments, (!f || !e.is(f, "finite")) && (f = 0), (!g || !e.is(g, "finite")) && (g = 0), !d && (d = c._.textbound = u.rect(0, 0, 0, 0, c.group).follow(c, e.ca[v].reposition, "before")), d.attr({ stroke: n || h, "stroke-width": f, fill: r || h, "shape-rendering": 1 === f ? "crisp" : "", r: g }), void 0 !== l && d.attr("opacity", l), s && d.attr("stroke-dasharray", s), e.ca[v].reposition.call(d, c.attr(), c), !1) : (c._.textbound = d && d.unfollow(c).remove(), !1) }, e.ca[v].reposition = function(e, t) { var r, a, i, o, s, l, d, h, g, p = this,
                        m = {};
                    e[f]("visibility") && p.attr("visibility", e.visibility), (e[f](v) || e[f]("x") || e[f]("y") || e[f]("text") || e[f]("text-anchor") || e[f]("text-align") || e[f]("font-size") || e[f]("line-height") || e[f]("vertical-align") || e[f]("transform") || e[f]("rotation") || e[f]("opacity")) && (a = (r = t.attrs)[v], i = u(a && a[3] || "0").split(b), o = c(i[0]) || 0, s = (0, n.pluck)(c(i[1]), o), h = (l = t.getBBox()).width, g = l.height, p._origOpacity = t._origOpacity || 1, d = c(e.opacity || r.opacity), m.opacity = isNaN(d) ? p._origOpacity : p._origOpacity * d, isNaN(h) || (m.x = l.x - o, m.y = l.y - s, m.width = Math.max(h + 2 * o, 0), m.height = Math.max(g + 2 * s, 0)), p.attr(m)) }, e.fn.symbol = function() { var t, r = this,
                        n = arguments,
                        a = n.length - 1,
                        i = n[a]; return i && i.constructor === e.el.constructor ? n[a] = void 0 : i = void 0, (t = r.path(void 0, i)).ca.symbol = e.fn.symbol.ca.symbol, n.length === !!i + 0 ? t : t.attr("symbol", n) }, e.fn.getSuggestiveRotation = function() { var e, t, r, n; return e = arguments[0], 1 === arguments.length ? (t = e.angle, r = e.x, n = e.y) : (t = e, r = arguments[1], n = arguments[2]), "r" + (t = t || 0) + "," + r + "," + n }, e.fn.symbol.cache = { "": e._cacher((function(e, t, r, n) { var a = r; return arguments.length > 3 ? ["M", e, t, "h", a, "v", n, "h", -a, "v", -n, "z"] : ["M", e - a, t - a, "h", a *= 2, "v", a, "h", -a, "v", -a, "z"] })) }, e.fn.symbol.ca = { symbol: function(t) { var r, n, a = this,
                            i = t,
                            o = e.is(i, "object") && 1 === arguments.length && !e.is(i, "function") ? i : arguments;
                        o === i && (i = o[0]), n = (r = e.is(i, "function") && i || e.fn.symbol.cache[i] || e.fn.symbol.cache[""]) && r.apply(e, d.call(o, 1)), e.is(n, "array") || e.is(n, "string") ? a.attr("path", n) : n && a.attr(n) } }, e.addSymbol = function(t, r) { var n, a, i = r,
                        o = e.fn.symbol.cache,
                        s = []; for (a in n = e.is(i, "function") && ((n = {})[t] = i, n) || t) i = n[a], o[a] = e.is(i, "function") && e._cacher(i, e) || (s.push(a), i); for (a = s.pop(); a;) o[a] = o[o[a]], a = s.pop() } }; var n = r(215) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t = function(e) { return function() { e.hide(); for (var t = 0, r = e._.gridElem && e._.gridElem.length; t < r; t++) e._.gridElem[t].remove();
                            e._.gridElem = [], e._attr({ src: e._._src }), setTimeout((function() { e.show() }), 100) } },
                    r = function(e, t, r) { return function() { var n, i, o, s = a(e._.imageGridAttr, t),
                                l = 1,
                                c = 1,
                                u = 1; if (s.tileInfo && (l = s.tileInfo.xCount, c = u = s.tileInfo.yCount, o = s.y, delete s.tileInfo), e._.gridElem) { for (i = 0; i < e._.gridElem.length; i++) e._.gridElem[i].remove();
                                e._.gridElem.length = 0 } for (i = 0; l && s.width && s.height;) u--, 0 === i ? e.attr(r ? Object.assign(s, { applysrc: e._._src }) : s) : (n = e.clone().attr({ x: s.x, y: s.y }), e._.gridElem.push(n.follow(e, void 0, "after"))), s.y += s.height, 0 === u && (u = c, l--, s.x += s.width, s.y = o), i++ } },
                    a = function(e, t) { var r; if (e) { var a = e.displayMode,
                                i = e.vAlign,
                                o = e.hAlign,
                                s = e.scale,
                                l = e.canvasBorderWidth,
                                c = e.canvasWidth,
                                u = e.canvasHeight,
                                d = t.width * (s / 100),
                                f = t.height * (s / 100),
                                h = c - 2 * l,
                                g = u - 2 * l;
                            r = (0, n.getAlignImage)(i, o, a, d, f, c, u, l, h, g) } return r || { x: 0, y: 0, width: t.width, height: t.height } };
                e.define && e.define([{ name: "imagegrid", imagegrid: function() { var n, a, i = this,
                            o = arguments,
                            s = o.length - 1,
                            l = o[s]; return l && l.constructor === e.el.constructor ? o[s] = void 0 : l = void 0, n = new Image, (a = i.image(l))._.gridElem = [], a._.refImage = n, a._attr = a.attr, a.attr = function(e, t) { var r = e,
                                n = Array.isArray(r),
                                i = !n && "object" == typeof r,
                                o = "string" == typeof r; if (n && (i = "object" == typeof(r = r[0])), i) { var s = Object.assign({}, r),
                                    l = s && s.src,
                                    c = s && s.applysrc;
                                delete s.src, delete s.applysrc, l && delete a._._src, a._attr(s), l && a._attr({ _src: l }), c && a._attr({ src: c }) } else { if (void 0 === r && void 0 === t) return this.attrs; if (void 0 === t) return this.attrs[r];
                                o && t && ("src" === r ? a._attr({ _src: t }) : "applysrc" === r ? a._attr({ src: t }) : a._attr({ name: t })) } return this }, n.onload = r(a, n, !0), n.onerror = t(a), a }, ca: { imagegrid: function(e, t, n, a, i, o, s) { void 0 === a && (a = 100), void 0 === i && (i = 0), void 0 === o && (o = 0), void 0 === s && (s = 0); var l = this,
                                c = t,
                                u = n; "tile" === e || "fill" === e || "fit" === e ? ("top" !== c && "middle" !== c && "bottom" !== c && (c = "middle"), "left" !== u && "middle" !== u && "right" !== u && (u = "middle")) : ("top" !== c && "middle" !== c && "bottom" !== c && (c = "top"), "left" !== u && "middle" !== u && "right" !== u && (u = "left")), l._.imageGridAttr = { displayMode: e, vAlign: c, hAlign: u, scale: a, canvasBorderWidth: i, canvasWidth: o, canvasHeight: s }, this._._src && r(l, l._.refImage)() }, _src: function(e) { return this._.refImage.src = e, this._._src = e, { _src: e } } } }]) }; var n = r(220) }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = function(e) { var t, r, n, s = window,
                    l = s.document,
                    c = /msie/i.test(s.navigator.userAgent) && !s.opera,
                    u = "VML" === e.type,
                    d = { cursor: "cursor" },
                    f = { x: "left", y: "top", strokeWidth: "borderThickness", "stroke-width": "borderThickness", width: "width", height: "height" },
                    h = { fill: "backgroundColor", stroke: "borderColor", color: "color" },
                    g = { left: 0, top: 0, padding: 0, border: "none", margin: 0, outline: "none", "-webkit-apperance": "none", position: "absolute", zIndex: 20 },
                    p = new o["default"],
                    m = function(e, t, r, n) { var a, i = l.createElement(e); for (a in t) f[a] ? i.style[a] = t[a] : i.setAttribute(a, t[a]); for (a in r) i.style[a] = r[a]; return n && n.appendChild && n.appendChild(i), i };
                (t = (n = function(e, t, r) { var a = t;
                    a && a instanceof n && (a = a.element), this.element = m(e, r, g, a), this.nodeName = e.toLowerCase(), this.added = Boolean(a), this.attrs = {} }).prototype = { attr: function(e) { var t, r, n, a, i, o, s, g, p, m, v, b = this.element,
                            y = {}; if ("object" != typeof e) return void 0 !== this[e] ? this[e] : function(e, t, r) { var n, a; if ("string" == typeof t) null != r ? e.setAttribute(t, r) : e && e.getAttribute && (a = e.getAttribute(t));
                            else if (null != t && "object" == typeof t)
                                for (n in t) e.setAttribute(n, t[n]); return a }(b, e); for (t in e) { if (n = e[t], d[t]) { switch (t) {
                                    case "cursor":
                                        "pointer" === n && u && (n = "hand") } b.style[d[t]] = n, a = !0 } else if (f[t]) b.style[f[t]] = n + "px", a = !0;
                            else if (h[t]) b.style[h[t]] = (v = n) && v.replace(/^#?([a-f0-9]+)/gi, "#$1") || "none", a = !0;
                            else if (/^visibility$/i.test(t)) i = "hidden" === n, b.style.display = i ? "none" : "", this.hidden = i, a = !0;
                            else if (/^opacity$/i.test(t)) b.style.opacity = n, c && (r = 100 * Number(n), b.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + r + ")"), a = !0;
                            else if (/^innerhtml$/i.test(t)) { if (u && "select" === b.nodeName.toLowerCase()) { for (o = n.match(/<option\s?[\s\S]*?(\/>|><\/option>|>[\s\S]*?<\/option>)/gi); b.firstChild;) b.removeChild(b.firstChild); for (g = 0, p = o.length; g < p; g += 1) s = o[g], m = l.createElement("option"), /<option\s([\s\S]*[\'\"])\s*?(\/>|>[\s\S]*<\/option>)/gi.test(s) && (m.value = s.replace(/<option\s([\s\S]*[\'\"])\s*?(\/>|>[\s\S]*<\/option>)/gi, "$1").replace(/[\s\S]*value\s*\=\s*[\'\"]([\s\S]*)[\'\"]/, "$1")), m.text = s.replace(/<option\s*[\s\S]*[\'\"]?\s*?[\/>|\>]([\s\S]*)<\/option>/gi, "$1 "), b.options.add(m) } else "input" !== b.nodeName.toLowerCase() && void 0 !== n && (b.innerHTML = n || "");
                                a = !0 } else /^text$/i.test(t) ? ("input" !== b.nodeName.toLowerCase() && (b.innerHTML = "", void 0 !== n && b.appendChild(l.createTextNode(n))), a = !0) : /^type$/i.test(t) && c && this.added && (a = !0);
                            a && (y[t] = n, delete e[t], a = !1) } for (t in e) b.setAttribute(t, e[t]); for (t in y) this[t] = this.attrs[t] = e[t] = y[t], delete y[t]; return this }, val: function(e) { var t = this.element,
                            r = void 0 === e; if ("input" === this.nodeName && "checkbox" === t.getAttribute("type")) return r ? this.checked() ? 1 : 0 : this.checked(e); if ("select" === this.nodeName) { var n = t.childNodes,
                                a = t.selectedIndex,
                                o = n.length; if ("" === e) return; if (!r)
                                for (var s = 0; s < o; s++)
                                    if (n[s].value === e) return t.selectedIndex = s, n[s].value; return i.isIE9 && (a = 0), r ? n[a].value : (n[o - 1].value = e, t.selectedIndex = o - 1, this) } return r ? t.value : (t.value = e, this) }, checked: function(e) { var t = this.element; return void 0 === e ? t.checked : (e ? t.setAttribute("checked", "checked") : t.removeAttribute("checked"), this) }, css: function(e, t) { var r, n = this.element.style; if ("object" == typeof e)
                            for (r in e) n[r] = e[r];
                        else r && void 0 !== t && (n[r] = t); return this }, translate: function(e, t) { var r = this.element; return void 0 !== e && (r.style.left = e + "px"), void 0 !== t && (r.style.top = t + "px"), this }, add: function(e, t) { var r = this.element,
                            n = e.element; return t ? n.insertBefore(r, n.firstChild) : n.appendChild(r), this.added = !0, this }, hide: function() { return this.element.style.display = "none", this }, show: function() { return this.element.style.display = "", this }, isVisible: function() { return "none" !== this.element.style.display }, focus: function() { "function" == typeof this.element.focus ? this.element.focus() : a["default"].fire(this.element, "focus") }, destroy: function() { var t, n = this.element || {}; for (t in n.onclick = n.onmouseout = n.onmouseover = n.onmousemove = n.onblur = n.onfocus = null, n = function(e) { r || (r = m("div")), e && r.appendChild(e), r.innerHTML = "" }(n), delete this.element, this) this[t] = "function" == typeof this[t] ? e._removedFactory(t) : null; return this.removed = !0, null }, on: function(e, t) { var r = t; return p.on(this.element, e, r), this }, off: function(e, t) { p.off(this.element, e, t) }, bind: function(e, t, r) { return a["default"].listen(this.element, e, t, r), this }, unbind: function(e, t) { return a["default"].unlisten(this.element, e, t), this }, trigger: function(e, t) { return a["default"].fire(this.element, e, t), this } }).remove = t.destroy, t.constructor = n, e.fn.html = function(t, r, a, i) { var o, s, l = {}; for (s in r && "type" in r && (l.type = r.type, delete r.type), o = new n(t, i, l).css(a).attr(r), l) r[s] = l[s]; return o.ca = function() { return !1 }, o.appendTo = function(e) { var t = e;
                        this.parent = t, t && t instanceof n && (t = t.element), t.appendChild(this.element) }, o.animateWith = e.el.animateWith, o } }; var a = n(r(217)),
                i = r(215),
                o = n(r(258)) }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(259)),
                i = n(r(260)),
                o = { elementInfo: [] },
                s = { mouseover: "pointerover", mousedown: "pointerdown", mousemove: "pointermove", mouseup: "pointerup", mouseout: "pointerout" },
                l = { mouseover: "touchstart", mousedown: "touchstart", mouseup: "touchend", mousemove: "touchmove", mouseout: "touchend" },
                c = { blur: !0 },
                u = window.navigator,
                d = "ontouchstart" in document || u.maxTouchPoints || u.msMaxTouchPoints,
                f = "onpointerover" in document,
                h = function(e, t, r, n) { var a; switch (void 0 === n && (n = e), t) {
                        case "fc-click":
                            return function(e, t, r) { var n, a, i, o, s, l; if (void 0 === r && (r = e), !e._clickHandlerHelper) { var c = function(t) { e._lastEventTriggered = "mousedown", o = void 0 !== t.clientX ? t.clientX : t.changedTouches && t.changedTouches[0].clientX, s = void 0 !== t.clientY ? t.clientY : t.changedTouches && t.changedTouches[0].clientY },
                                        u = function(t) { var r = void 0 !== t.clientX ? t.clientX : t.changedTouches && t.changedTouches[0].clientX,
                                                n = void 0 !== t.clientY ? t.clientY : t.changedTouches && t.changedTouches[0].clientY;
                                            (Math.abs(o - r) >= 2.5 || Math.abs(s - n) >= 2.5) && (e._lastEventTriggered = void 0) }; for (a in l = !f && d ? { touchstart: function() { e._lastEventTriggered = "touchstart", e._lastEventTriggeredAt = (new Date).getTime() }, touchmove: u } : f && d ? { pointerdown: c, pointermove: u } : { mousedown: c, mousemove: u }) e.addEventListener ? e.addEventListener(a, l[a]) : e.attachEvent("on" + a, l[a]);
                                    e._clickHandlerHelper = l, e._clickEventCount = 0 } return ++e._clickEventCount, !f && d ? (a = "touchend", i = function(n) { "touchstart" === e._lastEventTriggered && (new Date).getTime() - e._lastEventTriggeredAt <= 500 && setTimeout((function() { t.call(r, n) }), 0) }) : (a = "click", i = function(n) { "mousedown" === e._lastEventTriggered && t.call(r, n) }), (n = {})[a] = i, n }(e, r) } var i, u = t,
                        h = u.match(/fc-/),
                        g = r; return h && (u = u.replace(/fc-/, "")), h && d && (i = u, u = (f ? s[u] : l[u]) || u, "mouseout" === i && (g = function(e) { f && d && !e.isPrimary || (o.elementInfo.push({ el: n, callback: r }), o.srcElement = e.srcElement || e.target) }, u = f ? "pointerover" : "touchstart")), g === r && (g = function(e) {
                        (!f || !d || e.isPrimary || c[e.type]) && r.call(n, e) }), (a = {})[u] = g, a };
            d && document.addEventListener(f ? "pointerover" : "touchstart", (function(e) { if (o.srcElement && o.srcElement !== (e.srcElement || e.target)) { var t, r, n = o.elementInfo,
                        a = n.length; for (r = 0; r < a; r++)(t = n[r]).callback.call(t.el, e) } o = { elementInfo: [] } }), !0); var g = function() {
                function e() { this.mapper = new a["default"] } var t = e.prototype; return t.on = function(e, t, r, n) { void 0 === n && (n = {}); var a, o, s = this.mapper,
                        l = [e, t, r]; if ((0, i["default"])(l) && !(a = s.getValue(l))) { for (o in a = h(e, t, r), s.setValue(l, a), a) e.addEventListener ? e.addEventListener(o, a[o]) : e.attachEvent("on" + o, a[o]); return !0 } return !1 }, t.off = function(e, t, r) { var n, a, o = this.mapper,
                        s = [e, t, r]; if ((0, i["default"])(s) && (n = o.getValue(s))) { for (a in function(e, t) { switch (t) {
                                    case "fc-click":
                                        (function(e) { var t, r = e._clickHandlerHelper; if (!--e._clickEventCount) { for (t in r) e.removeEventListener ? e.removeEventListener(t, r[t]) : e.detachEvent("on" + t, r[t]);
                                                e._clickHandlerHelper = void 0 } })(e) } }(e, t), n) e.removeEventListener ? e.removeEventListener(a, n[a]) : e.detachEvent("on" + a, n[a]); return o.clear(s), !0 } return !1 }, e }();
            t["default"] = g }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = function() {
                function e() { this.map = new Map } var t = e.prototype; return t.clear = function(e) { var t = this;
                    void 0 === e && (e = []); var r = this.map,
                        n = e.length;
                    e.forEach((function(a, i) { r && (i === n - 1 && r["delete"] ? (r["delete"](a), r.size || (e.pop(), t.clear(e))) : r = r.has(a) && r.get(a)) })) }, t.setValue = function(e, t) { void 0 === e && (e = []); var r = this.map,
                        n = e.length;
                    e.forEach((function(e, a) { if (r.has(e)) r = r.get(e);
                        else if (a === n - 1) r.set(e, t);
                        else { var i = new Map;
                            r.set(e, i), r = i } })) }, t.getValue = function(e) { void 0 === e && (e = []); var t = this.map; return e.forEach((function(e) { t = t && t.get && t.get(e) })), e.length && t }, e }();
            t["default"] = n }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = function(e) { return e.filter((function(e) { return !!e })).length === e.length } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t = [{ reg: /xmlns\=\"http\:\/\/www.w3.org\/2000\/svg\"/gi, repStr: "" }, { reg: /\r?\n|\r/g, repStr: "" }, { reg: /^.*<svg /, repStr: '<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" ' }, { reg: /\/svg>.*$/, repStr: "/svg>" }, { reg: /<desc\>[^<]*<\/desc\>/, repStr: "" }, { reg: /zIndex="[^"]+"/g, repStr: "" }, { reg: /url\((\\?[\'\"])[^#]+#/g, repStr: "url($1#" }, { reg: / href=/g, repStr: " xlink:href=" }, { reg: /(id|class|width|height)=([^" >]+)/g, repStr: '$1="$2"' }, { reg: /:(path|rect)/g, repStr: "$1" }, { reg: /<ima?ge? ([^\>]+?[^\/])\>/gi, repStr: "<image $1 />" }, { reg: /<\/ima?ge?\>/g, repStr: "" }, { reg: /style="([^"]+)"/g, repStr: function(e) { return e.toLowerCase() } }, { reg: /NS\d+\:href=/g, repStr: "xlink:href=" }],
                    r = function(e) { var t = JSON.stringify(e); return t = t = (t = (t = (t = t.replace(/([a-z]+)([A-Z]+)([a-z]+)/g, (function(e, t, r, n) { return t + "-" + r.toLowerCase() + n }))).replace(/\"\,\"/g, '";"')).replace(/\"/g, " ")).replace(/\{|\}/g, "") };
                e.svg && (e.fn.toSVG = function(e) { var n, a = "",
                        i = 0,
                        o = t.length; if (this.canvas && this.canvas.parentNode) { for (a = this.canvas.parentNode.innerHTML; i < o; i += 1) n = t[i], a = a.replace(n.reg, n.repStr);
                        this._stylesheet && this._stylesheet.rules && (a = function(e, t) { var n, a, i, o, s, l, c, u = e,
                                d = function(e) { var t = e; return t = t.match(/style\s*=/) ? t.replace(/(style\s*=")([^"]+)/g, (function(e, t, r) { return t + o + r })) : t.replace(/class\s*="[^"]*"/i, (function(e) { return e + ' style="' + o + '" ' })) }; for (n in t)
                                if (t.hasOwnProperty(n))
                                    for (l in a = /\s+/, i = n.split(a), o = r(t[n]), i) i.hasOwnProperty(l) && (s = i[l].trim().replace(".", ""), c = new RegExp("<[^>]+(" + s + ")[^>]+", "g"), u = u.replace(c, d)); return u }(a, this._stylesheet.rules)) } return e || (a = a.replace(/<image[^\>]*\>/gi, (function(e) { return e.match(/href=\"data\:image/i) ? e : "" }))), a }) } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = t._mouseEvtHandler = void 0; var a = n(r(229)),
                i = r(215),
                o = r(222),
                s = n(r(263)),
                l = r(230),
                c = n(r(264)),
                u = r(223),
                d = n(r(265)),
                f = r(227),
                h = { attributes: !0, subtree: !0, characterData: !0, childList: !0 },
                g = function(e) { return String.fromCharCode(e) },
                p = function(e) { return e.map(g).join("") },
                m = p([99, 114, 101, 100, 105, 116, 76, 97, 98, 101, 108]),
                v = p([99, 114, 101, 100, 105, 116, 103, 114, 111, 117, 112]),
                b = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122].map(g),
                y = function() { return b[Math.floor((e = 0, t = b.length, Math.random() * (t - e) + e))]; var e, t },
                x = function(e, t, r) { var n, a, o, s, l, c, u, d, f = r.mouseTracker,
                        h = t.originalEvent,
                        g = e.config.datasetOrder || e.getDatasets(),
                        p = !1,
                        m = g.length,
                        v = f._lastDatasetIndex,
                        b = f._lastPointIndex; for (a = (n = (0, i.getMouseCoordinate)(e.getFromEnv("chart-container"), h, e)).chartX, o = n.chartY; m-- && !p;)(s = g[m]) && s.getState("visible") && (l = s._getHoveredPlot && s._getHoveredPlot(a, o)) && l.hovered && (p = !0, l.datasetIndex = m, d = f.getMouseEvents(t, l.datasetIndex, l.pointIndex)); if ((!p || d && d.fireOut) && void 0 !== v && g[v] && g[v]._firePlotEvent && (d && !d.events.length ? f.mouseoutTimer = setTimeout((function() { e.mouseoutHandler(t, v, b) }), 20) : (e.mouseoutHandler(t, v, b), clearTimeout(f.mouseoutTimer))), p)
                        for ((u = d.events && d.events.length) && (f._lastDatasetIndex = l.datasetIndex, b = f._lastPointIndex = l.pointIndex), c = 0; c < u; c += 1) s && s._firePlotEvent && s && s._firePlotEvent && s._firePlotEvent(d.events[c], b, t, l.datasetIndex) };
            t._mouseEvtHandler = x; var w = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e), t.getName = function() { return "base" }; var r = t.prototype; return r.setDummyEImethods = function(e) { var t = this.config,
                        r = t._eiStore || (t._eiStore = {}),
                        n = function(e) { return (d["default"][e] || []).concat(d["default"]["*"]) }(e),
                        a = this.getFromEnv("chartInstance");
                    n.forEach((function(e) { var t;!a[e] && (a[e] = (t = e, function() {!r[t] && (r[t] = []), r[t].push(arguments) })) })), a.addEventListener("renderComplete", (function() { var e = function(e) { r[e].forEach((function(t) { a[e].apply(a, t) })) }; for (var n in r) e(n);
                        t._eiStore = {} })) }, t.getType = function() { return "chartAPI" }, r.mouseoutHandler = function(e, t, r) { var n = this.config.datasetOrder || this.getDatasets(),
                        a = this.getChildren("mouseTracker")[0];
                    n[t] && n[t].components.data[r] ? n[t]._firePlotEvent("fc-mouseout", r, e) : this.getFromEnv("toolTipController").hideAll(), delete a._lastDatasetIndex, delete a._lastPointIndex }, r.getName = function() { return "base" }, r.getType = function() { return "chartAPI" }, r._mouseEvtHandler = function(e, t) { x(this, e, t) }, r.getComponents = function(e, t) { var r = []; return (e || this).iterateComponents((function(e) { e.getType() === t && r.push(e) })), r }, r.getDatasets = function(e) { var t = []; return (e || this).iterateComponents((function(e) { "dataset" === e.getType() && t.push(e) })), t }, r.preConfigure = function(t) { e.prototype.preConfigure.call(this, t),
                        function(e, t) { var r; for (r in t) t.hasOwnProperty(r) && (e[r] = t[r]) }(this.getFromEnv("chartInstance"), this.eiMethods) }, r.configureAttributes = function(t) { e.prototype.configureAttributes.call(this, t), this.createBaseComponent() }, r.createBaseComponent = function() { var e, t = this;
                    (e = t.getFromEnv("animationManager")) ? e.configure(): (e = new c["default"], t.addToEnv("animationManager", e), e.addToEnv("chart", t), e.addToEnv("animationManager", e), e.configure(), t.addExtEventListener("animationstart", (function(e) { var r = e.data.duration;
                        r && t.fireChartInstanceEvent("animationinvoked", { duration: r }) }), e)) }, r.setChartMessage = function(e, t, r) { var n, a, o = r;
                    (0, i.componentFactory)(this, s["default"], "chartMessage"), a = this.getChildren("chartMessage")[0], o ? this.addToEnv("chart-container", o) : o = this.getFromEnv("chart-container"), (n = this.getFromEnv("paper")) || ((n = new((0, u.getDep)("redraphael", "plugin"))(o, this.getFromEnv("chartWidth"), this.getFromEnv("chartHeight"))).setHTMLClassName("fusioncharts-div"), this.addToEnv("paper", n)), n.setConfig("stroke-linecap", i.ROUND), !this.getChildContainer("messageGroup") && this.addChildContainer("messageGroup", n.group("messageGroup")), this.config.hasChartMessage = !0, a.setData({ message: e, chartObj: t, visible: !0 }, !0) }, r.drawChartMessage = function() { this.config.hasChartMessage = !0, this._drawTexts() }, r._dispose = function() { this._clearTimers && this._clearTimers(); var t = this.getFromEnv("paper");
                    t && t.remove && t.remove(), e.prototype._dispose.call(this) }, r.fireChartInstanceEvent = function(e, t, r, n, a) { var i = this.getFromEnv("chartInstance");
                    (0, o.triggerEvent)(e, i, t, r, n, a) }, r._hideChartMessage = function() { var e = this.getChildren("chartMessage");
                    this.config.hasChartMessage = !1, e && e[0].setData({ visible: !1 }, !0), this.getGraphicalElement("messageText") && this.getGraphicalElement("messageText").hide(), this.getGraphicalElement("messageVeil") && this.getGraphicalElement("messageVeil").hide() }, r._removeWaitingJobs = function() { this.iterateComponents((function(e) { return e.removeAllJobs() })) }, r._drawTexts = function() { this._drawMain(!1) }, r._drawMain = function(e) { this._crCreate(e), e && this._scheduleLabelCheck(e) }, r._scheduleLabelCheck = function(e) { var t = this;
                    t.addJob("checker", (function() { var r, n = t.getContainer(v);!n || (r = n).node && r.node.parentNode && 11 !== r.node.parentNode.nodeType || t._crCreate(e), t._scheduleLabelCheck(e) }), f.priorityList.verification, { oneInAFrame: !0, addToTop: !1, executionDelay: 300 }) }, r._crCreate = function(e) { var t, r, n, a, o = this,
                        s = o.getFromEnv("paper"),
                        l = +o.getFromEnv("chartHeight"),
                        c = o.getGraphicalElement(m),
                        u = o.getContainer("parentgroup"),
                        d = { href: i.TXT_HREF, text: i.TXT_STRING }; if (e) { if (o.getContainer(v) && o.removeContainer(v), c && o.removeGraphicalElement(c), !s || !s.group) return;
                        r = o.addContainer(v, s.group(function(e) { void 0 === e && (e = 8); for (var t = i.BLANK, r = 0; r < e; r++) t += y(); return t }(), !0)), u && r.insertAfter(u), n = { text: d.text, x: 6, y: l - 4, "vertical-align": i.POSITION_BOTTOM, "text-anchor": i.POSITION_START, fill: "rgba(0,0,0,0.5)", title: d.title || i.BLANK }, a = { fontSize: 9, fontFamily: "Verdana,sans", cursor: i.POINTER, _cursor: i.HAND }, t = s.text(n, a, r), o.addGraphicalElement(m, t), o.config.observer ? o.config.observer.disconnect() : o.config.observer = new MutationObserver((function() { return o._crCreate(e) })), o.config.observer.observe(o.getContainer(v).node, h), t.on("fc-click", (function() { try { open(d.href) } catch (e) {
                                (top || window).location.href = d.href } })) } else t && t.remove && (o.config.observer && o.config.observer.disconnect(), o.removeGraphicalElement(m)) }, r._hideModal = function() { this.getChildContainer("messageGroup").hide() }, r.remove = function(t) { var r = this.getFromEnv("animationManager");
                    this.config.observer && this.config.observer.disconnect(), e.prototype.remove.call(this, t), r && r.remove(t) }, t }(l.ComponentInterface);
            w.stringConstants = { BACKGROUNDLOADED: "BackgroundLoaded", BACKGROUNDLOADERROR: "BackgroundLoadError", clipRectStr: "clip-rect" }; var C = w;
            t["default"] = C }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(215),
                s = o.preDefStr.noneStr,
                l = function(e, t) { e.on("fc-click", (function() { try { open(t) } catch (e) {
                            (top || window).location.href = t } })), e.css({ cursor: "pointer", _cursor: "pointer" }) },
                c = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "chartMessage" }, r.configureAttributes = function(t) { e.prototype.configureAttributes.call(this, t); var r = this.config; for (var n in t) t.hasOwnProperty(n) && (r[n] = t[n]) }, r._drawBackground = function(e, t) { void 0 === t && (t = {}); var r, n, a, i, c = this,
                            u = c.config,
                            d = c.getFromEnv("paper"),
                            f = c.getFromEnv("chart"),
                            h = u.visible,
                            g = c.getGraphicalElement("backgroundElement"),
                            p = c.getGraphicalElement("backgroundImage"),
                            m = c.getFromEnv("chartWidth"),
                            v = c.getFromEnv("chartHeight"),
                            b = c.getLinkedParent().getChildContainer("messageGroup").show(),
                            y = (0, o.pluckNumber)(t.imageAlpha, 100),
                            x = 0 + o.COMMA + 0 + o.COMMA + m + o.COMMA + v,
                            w = (0, o.getValidValue)(t.imageVAlign, o.BLANKSTRING).toLowerCase(),
                            C = (0, o.pluck)(t.imageHAlign, o.BLANKSTRING).toLowerCase(),
                            _ = (0, o.pluckNumber)(t.imageScale, 100),
                            k = c.getFromEnv("chartInstance"),
                            S = u.messageURL,
                            E = (0, o.getContainerBackgroundColor)(k);
                        d.canvas.style.backgroundColor = E, w !== o.POSITION_TOP && w !== o.POSITION_MIDDLE && w !== o.POSITION_BOTTOM && (w = o.POSITION_TOP), C !== o.POSITION_LEFT && C !== o.POSITION_MIDDLE && C !== o.POSITION_RIGHT && (C = o.POSITION_LEFT), n = { x: 0, y: 0, width: m, height: v, stroke: s }, g || (g = d.rect(b), c.addGraphicalElement("backgroundElement", g)), g.attr(n), g && S && l(g, S), u.bgImageVAlign = w, u.bgImageHAlign = C, u.bgImageScale = _, u.bgSWFAlpha = y, u.imgClipRect = x, e && ((r = p) ? r.attr({ src: e }) : (r = c.getFromEnv("paper").image(b), c.addGraphicalElement("backgroundImage", r), r.attr({ src: e }), r.on("load", (function() { if (!(!r || r && r.removed)) { var t = r._.RefImg;
                                a = c.getFromEnv("chartConfig"), u.isImage && (void 0 === a || a.hasChartMessage) && (i = (0, o.setImageDisplayMode)(s, u.bgImageVAlign, u.bgImageHAlign, u.bgImageScale, 0, c.getFromEnv("chartWidth"), c.getFromEnv("chartHeight"), t), (0, o.extend2)(i, { opacity: .01 * u.bgSWFAlpha, visibility: "visible", "clip-rect": u.imgClipRect }), r.attr(i), h ? r.show() : r.hide(), r && S && l(r, S), f.fireChartInstanceEvent("backgroundloaded", { url: e, bgImageAlpha: 100 * u.bgSWFAlpha, bgImageDisplayMode: s, bgImageVAlign: u.bgImageVAlign, bgImageHAlign: u.bgImageHAlign, bgImageScale: u.bgImageScale, imageWidth: t.width, imageHeight: t.height })) } })), r.on("error", (function(t) { r.removed || f.fireChartInstanceEvent("backgroundloaderror", { url: e, bgImageAlpha: 100 * u.bgSWFAlpha, error: t, bgImageDisplayMode: s, bgImageVAlign: u.bgImageVAlign, bgImageHAlign: u.bgImageHAlign, bgImageScale: u.bgImageScale }, k) })))) }, r.configure = function(t) { e.prototype.configure.call(this, t); var r, n = this.getFromEnv("chartInstance"),
                            a = n.options,
                            i = n.args,
                            s = this.config,
                            l = s.message,
                            c = s.chartObj;
                        (s.strObj = (0, o.getImageURL)(void 0 !== l ? l : a.dataEmptyMessage)).image ? (r = c ? { imageHAlign: (0, o.pluck)(c._chartMessageImageStyle.imageHAlign, a.baseChartMessageImageHAlign).toLowerCase(), imageVAlign: (0, o.pluck)(c._chartMessageImageStyle.imageVAlign, a.baseChartMessageImageVAlign).toLowerCase(), imageAlpha: (0, o.pluckNumber)(c._chartMessageImageStyle.imageAlpha, a.baseChartMessageImageAlpha), imageScale: (0, o.pluckNumber)(c._chartMessageImageStyle.imageScale, a.baseChartMessageImageScale) } : { imageHAlign: (0, o.pluck)(i.dataEmptyMessageImageHAlign, a.baseChartMessageImageHAlign).toLowerCase(), imageVAlign: (0, o.pluck)(i.dataEmptyMessageImageVAlign, a.baseChartMessageImageVAlign).toLowerCase(), imageAlpha: (0, o.pluckNumber)(i.dataEmptyMessageImageAlpha, a.baseChartMessageImageAlpha), imageScale: (0, o.pluckNumber)(i.dataEmptyMessageImageScale, a.baseChartMessageImageScale) }, s.chartMessageType = "image") : (r = c ? { "font-family": c._chartMessageStyle.fontFamily || a.baseChartMessageFont, "font-size": c._chartMessageStyle.fontSize || a.baseChartMessageFontSize, fill: c._chartMessageStyle.color || a.baseChartMessageColor } : { "font-family": i.dataEmptyMessageFont || a.baseChartMessageFont, "font-size": i.dataEmptyMessageFontSize || a.baseChartMessageFontSize, fill: i.dataEmptyMessageColor || a.baseChartMessageColor }, s.chartMessageType = "text"), s.messageURL = a.messageURL, s.chartMessageStyle = r }, r.manageSpace = function() { var e, t, r, n = this.config,
                            a = n.chartMessageStyle,
                            i = this.getFromEnv("smartLabel"),
                            s = n.strObj,
                            l = this.getFromEnv("chartWidth"),
                            c = this.getFromEnv("chartHeight");
                        t = n.width = Number(l), e = n.height = Number(c), s.image ? r = s.string : (i.setStyle(a), r = { text: i.getSmartText((0, o.parseUnsafeString)(s.string), t, e).text, x: t / 2, y: e / 2 }), n.chartMessageAttr = r }, r.draw = function() { var e, t, r, n = this.config,
                            a = this.getFromEnv("paper"),
                            i = n.visible,
                            s = n.isImage = "image" === n.chartMessageType,
                            c = n.messageURL,
                            u = s ? n.chartMessageAttr : (0, o.extend2)(n.chartMessageAttr, n.chartMessageStyle);
                        e = this.getGraphicalElement("messageText"), r = this._graphics, t = this.getLinkedParent().getChildContainer("messageGroup").show(), s ? this._drawBackground(n.chartMessageAttr, n.chartMessageStyle) : e || "text" !== n.chartMessageType ? (r.message = e.attr(u), i ? e.show() : e.hide()) : e = this.addGraphicalElement("messageText", a.text(u, t)), (e || r.message) && c && l(e || r.message, c), this._hideOtherMessage(s) }, r._hideOtherMessage = function(e) { var t, r, n;
                        e ? (r = this.getGraphicalElement("messageText")) && r.hide() : (t = this.getGraphicalElement("backgroundImage"), n = this.getGraphicalElement("backgroundElement"), t && t.hide(), n && n.hide()) }, r.getType = function() { return "chartMessage" }, t }(i.ComponentInterface);
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a, i = n(r(232)),
                o = n(r(229)),
                s = r(215),
                l = r(227),
                c = r(230),
                u = r(223),
                d = !s.hasSVG,
                f = { initial: 1, update: 0, realTimeUpdate: 0, resize: 0, dispose: 0, legendInteraction: 0, scroll: 0, mouseOut: 0, mouseOver: 0, "default": 0, slicing: .25, timenavSqueeze: 0, selectedRange: 0, timenavScroll: 0 },
                h = ["default", "global", "chartSpecific"],
                g = { fadeIn: { opacity: { start: 0, end: 1 } }, fadeOut: { opacity: { start: 1, end: 0 } } },
                p = { fadeIn: function() { this && this.show() }, fadeOut: function() { this && this.hide() } },
                m = function(e) { return null === e },
                v = function(e, t) { void 0 === t && (t = ""); var r = t.split(","),
                        n = []; return r.forEach((function(t) { e[t] && e[t].animation && n.push(e[t].animation) })), n },
                b = function(e, t, r) { var n, a = Object.assign({}, e),
                        i = r / t; return i > .2 && (i = .2), n = a.end - a.start, a.start *= 1 - i, a.start += i, a.end = a.start + (1 - i) * n, a.start = Math.round(100 * a.start) / 100, a.end = Math.round(100 * a.end) / 100, a },
                y = function(e, t, r) { var n, i = g[t],
                        o = s.BLANKSTRING,
                        l = {}; if (i && e && e.el && e.el[0]) { for (o in i) l[o] = e.el.attrs[o], l[o] === a && (l[o] = null), e.attrs[o] = i[o].end, e.el.attr(o, i[o].start);
                        n = e.callback, e.callback = function() { r && p[t] && p[t].call(this), n && n.call && n.call(this), this.attr(l) } } },
                x = function(e, t) { var r, n = t,
                        a = !0; if (n) { for (e.attrs = e.attrs || {}, ~(n = n.split("-")).indexOf("nc") && (a = !1), r = n.length; r--;) y(e, n[r], a); return e } },
                w = function(e, t, r, n, a, i, o, s) { e.animateWith(a, i, t, o, s, r, n) },
                C = function(e) { var t = {}; for (var r in e)
                        if (e.hasOwnProperty(r) && "__esModule" !== r) { var n = e[r];
                            _(t, n) } return t },
                _ = function(e, t) { for (var r in t) t.hasOwnProperty(r) && (!e[r] && (e[r] = []), e[r].push(t[r])) },
                k = function(e) { return "function" == typeof e };

            function S(e, t, r, n) { var a, i, o, s, l, c = e.length,
                    u = 0,
                    d = 0,
                    f = t; for (i = 0, o = 0, l = 0; l < c; l += 1)(a = e[l]).hasAnimation || !1 === a.collapsible ? o += 1 : i += a.duration, d += a.duration; for (i /= o, l = 0; l < c; l += 1)(a = e[l]).hasAnimation && (s = r - t, f = (u = f) + (a.duration / d + i) * s, n[a.name] = { start: u, end: f, effect: a.effect, transition: a.transition }, a.child && A(a.child, u, f, n)) }

            function E(e, t, r, n) { var a, i, o;
                i = t + (i = e.start) * (a = r - t), o = t + (o = e.end) * a, n[e.name] = { start: i, end: o, effect: e.effect, transition: e.transition }, e.child && A(e.child, i, o, n) }

            function A(e, t, r, n) { var a, i, o = e.length; for (a = 0; a < o; a++) i = e[a], Array.isArray(i) ? S(i, t, r, n) : E(i, t, r, n) } g.fadein = g.fadeIn, g.fadeout = g.fadeOut; var T = function(e) {
                (0, o["default"])(r, e); var t = r.prototype;

                function r() { var t;
                    t = e.call(this) || this; var r = (0, i["default"])(t); return r._removedGraphics = [], r._animCallBack = function() { if (!r.getState("removed") && !this.removed) { var e = r.getAnimationState();
                            r._removeElems(), r.reset(), r.fireEvent("animationComplete", { currAnimState: e }) } }, r.startAnimation = function() { r.kickStart(), r.animate() }, t } return t.getType = function() { return "animationManager" }, t.getName = function() { return "animationManager" }, t.stopAnimation = function() { if (this.getState("chartAnimating")) { var e, t = this.config.animationObj,
                            r = t && t.duration;
                        r ? (e = this.getGraphicalElement().dummyObj) && e.stop(a, !0, !0) : 0 === r && (this.removeJob("anim-callBack"), this._animCallBack()) } }, t.kickStart = function() { var e, t, r, n = this.config,
                        i = this.getGraphicalElement(),
                        o = this.getFromEnv("paper"),
                        s = n.animationObj,
                        l = n.animationeffect;
                    t = s.duration, s.animObj = r = (0, u.getDep)("redraphael", "plugin").animation({ x: 0 }, t, l, this._animCallBack, !0), s.animType = l, (e = i.dummyObj) ? e.attr({ x: 100 }) : (e = o.rect({ x: 100, y: 0, width: 10, height: 30 }), this.addGraphicalElement("dummyObj", e), e.hide()), s.dummyObj = i.dummyObj, e.stop(a, !0, !0), this.fireEvent("animationStart", { duration: t }), this.setState("chartAnimating", !0), e.animate(r) }, t.setAnimationState = function(e) { void 0 === e && (e = a), e && this.stopAnimation(), this.config.__state = e, this._setAnimDuration(e) }, t.getAnimationState = function() { return this.config && this.config.__state }, t._setAnimDuration = function(e) { void 0 === e && (e = "default"); var t = this.config,
                        n = t.animationObj || (t.animationObj = {}),
                        a = t.animationDuration || (t.animationDuration = {}),
                        i = this.getFromEnv("chart").getFromEnv("chart-attrib") || {},
                        o = e + "AnimDuration",
                        s = t.killSwitch ? 0 : 1e3 * (a[o] || i[o.toLowerCase()] || r.getFallbackAnimDuration(e));
                    n && (n[o] = s, n.duration = +s) }, t.configureAttributes = function() { var e = this.getFromEnv("chart"),
                        t = e.config,
                        r = this.config,
                        n = e.getFromEnv("chart-attrib") || {};
                    r.killSwitch = !(0, s.pluckNumber)(n.animation, t.animation, 1), r.animationeffect = t.animationeffect || "linear", this.invokeAnimationRules(), !r.workingRules && (r.workingRules = {}), !r.animateArr && (r.animateArr = []), !r.animationName && (r.animationName = []) }, t.invokeAnimationRules = function() { var e, t = this.getFromEnv("chart"),
                        n = t.getFromEnv("chart-attrib") || {},
                        a = t.config || {},
                        i = this.config,
                        o = t.getFromEnv("chartInstance").args.animation,
                        l = t.getFromEnv("core-options").defaultTheme,
                        c = function(e) { var t, r = {}; for (var n in e) e.hasOwnProperty(n) && (r[(t = e[n]).name] = t); return r }((0, u.getDepsByType)("theme")),
                        d = (t.getFromEnv("core-options")._globalAnimationRule || []).concat(v(c, l)),
                        f = (o && [o] || []).concat(v(c, a.theme));
                    i.animationRules = { global: C(d.map((function(e) { return e && e.rule })).filter((function(e) { return e }))), chartSpecific: C(f.map((function(e) { return e && e.rule })).filter((function(e) { return e }))), "default": C((0, u.getDepsByType)("animationRule")) }, i.animationDuration = e = {}, d.map((function(t) { return Object.assign(e, t.duration) })), f.map((function(t) { return Object.assign(e, t.duration) })), e.initialAnimDuration = (0, s.pluckNumber)(e.initialAnimDuration, n.initialanimduration, n.animationduration), this.config.slots = r.getFallbackAnimTimeSlots().concat([].concat.apply([], d.map((function(e) { return e.slots }))).filter((function(e) { return e }))).concat([].concat.apply([], f.map((function(e) { return e.slots }))).filter((function(e) { return e }))) }, t.reInitialize = function() { var e = this.config.animationObj.duration;
                    this.setState("initialized", !0), e ? this.addJob("start-animation", this.startAnimation, l.priorityList.animation) : (this.fireEvent("animationStart", { duration: e }), this.setState("chartAnimating", !0), this.addJob("anim-callBack", this._animCallBack, l.priorityList.animation)) }, t.reset = function() { this.setState("initialized", !1), this.config && this.config.animateArr && (this.config.animateArr.length = 0), this.setState("chartAnimating", !1), this.setAnimationState() }, t.registerAnimObj = function(e) { var t; for (t in e) this.registerAnimation(e[t], t) }, t.getFinalSlots = function() { var e = this.config,
                        t = e.slots,
                        r = e.workingRules = {}; return function n(e, t) { var r, a, i, o, s, l, c = !1; if (!e) return !1; for (i = 0, o = e.length; i < o; i += 1)
                            if (a = e[i], Array.isArray(a))
                                for (s = 0, l = e[i].length; s < l; s += 1) a = e[i][s], r = !1, -1 !== t.indexOf(a.name) ? r = !0 : a.child && (r = a.hasAnimation = n(a.child, t)), c = c || r, a.hasAnimation = r;
                            else r = !1, -1 !== t.indexOf(a.name) ? r = !0 : a.child && (r = a.hasAnimation = n(a.child, t)), c = c || r, a.hasAnimation = r; return c }(t, e.animationName), A(t, 0, 1, r), r["default"] = { start: 0, end: 1 }, r }, t.registerOne = function(e, t) { this.registerAnimation([{ data: [e] }], t) }, t.registerAnimation = function(e, t) { void 0 === e && (e = []); var r, n, a, i = !1; for (r = 0, a = e.length; r < a; r += 1)(n = e[r]).data && n.data.length && (this.config.animateArr.push((n.component = t, n)), i = !0);
                    i && this.config.animationName.push(t), !this.getState("initialized") && this.reInitialize() }, t.onAnimationComplete = function(e) { this.addEventListener("animationComplete", (function(t) { e(), t.detachHandler() })) }, r.removeOpacityFromGroup = function(e, t) { t && d && ("group" === e || "group" === e.type) && delete t.opacity }, t.setAnimation = function(e) { void 0 === e && (e = {}); var t, n, i, o, l, c, u, d, f, h, g, p, m, v, b = this.config,
                        y = b.animationObj,
                        x = e.el,
                        w = e.attr || {},
                        C = {},
                        _ = {},
                        k = function(t, r, n, a) { return function() { n.callback && n.callback.call(this), t && this.attr(t), r && e.callback && e.callback.call(this), a && this.appendTo(a) } },
                        S = function(e, t, r) { return function() { t.hookFn && t.hookFn.call(this), e && this.attr(e), r && this.appendTo(r) } },
                        E = [],
                        A = y.duration,
                        T = this.getState("chartAnimating"),
                        M = "object" == typeof x && e.container && x.parent !== e.container; if (this.getState("chartAnimating") && b.animationObj && b.animationObj.duration && this.setAnimationState("default"), !T && A && (f = this.getAnimAttributes(e))) { for (d = f.length, v = !1, g = !(h = "appearing" === e.state || "string" == typeof x) && x.attrs, u = {}, c = 0; c < d; c++) { for (o in p = c === d - 1, l = E[c] = {}, t = (m = f[c]).finalAttr, n = m.initialAttr, r.removeOpacityFromGroup(e.el, n), r.removeOpacityFromGroup(e.el, t), n) u[o] = n[o], _[o] === a && (_[o] = n[o]); for (o in t) u[o] = t[o], h && _[o] === a && (_[o] = t[o]); if (l.attrs = t, l.transition = m.transition, l.effect = m.effect, l.animConfig = [m.startEnd], m.callback && (l.callback = m.callback), (v = M && m.changeGroup) && (M = !1), p) { if (h)
                                    for (o in w) _[o] === a && (_[o] = w[o]); for (o in w) i = w[o], !u[o] && h || u[o] === i || (t && t[o] === a ? t[o] = i : C[o] = i); for (o in u) C[o] === a && (i = (0, s.getFirstValue)(w[o], g[o]), u[o] !== i && (t && t[o] === a && i !== a ? t[o] = i : C[o] = i));
                                t || (l.attrs = C), l.callback = k((t || n) && C, p, m, M && e.container), x = this.setAttributes(x, { attr: _, inputJSON: e }) }(n || m.hookFn || v) && (l.animConfig[0].hookFn = S((!h || c) && n, m, v && e.container)) } for (c = 0; c < d; c++) E[c].el = x.el, this.registerAnimation([{ data: [E[c]] }], f[c].slot) } else T || this.registerAnimation(), x = this.setAttributes(x, { attr: w, inputJSON: e, groupChangeReq: M, immediate: !0 }); return x.removed ? null : x.el }, t._removeElems = function() { if (this.getFromEnv("paper") && !this.getFromEnv("paper").removed) { this._removedGraphics.forEach((function(e) { return e.remove && e.remove() })), this._removedGraphics.length = 0 } }, t.removeElement = function(e, t) { return t ? e.remove() : this._removedGraphics.push(e), null }, r._ruleSelectorQueryBuilder = function(e, t) { void 0 === t && (t = !0); var r = e.label,
                        n = e.state,
                        a = e.component,
                        i = a.getType(),
                        o = a.getName(); if (t) { var s = ["*", "*.*", "*.*.*"],
                            l = ["*.*." + o, "*." + i + ".*", "*." + i + "." + o]; return "*" === n ? s.concat(l) : s.concat(l, [n + ".*", n + ".*.*", n + ".*." + o, n + "." + i + ".*", n + "." + i + "." + o]) } return [r + "." + n, r + ".*", "*." + n, "*.*", "*"] }, t._getRulesByState = function(e) { var t, n, i, o, s = e.component,
                        l = this.getAnimationState() || "*",
                        c = r._ruleSelectorQueryBuilder(Object.assign(e, { state: l })); return (t = (o = s.getState("animRules") || {})[l]) ? t : (n = o[l] = {}, i = this.config.animationRules, h.forEach((function(e) { var t = i[e];
                        t && c.forEach((function(e) { t[e] && (Array.isArray(t[e]) ? t[e].forEach((function(e) { n = o[l] = m(e) ? null : Object.assign(n || {}, k(e) ? e.call(s) : e) })) : n = o[l] = m(t[e]) ? null : Object.assign(n || {}, k(t[e]) ? t[e].call(s) : t[e])) })) })), s.setState("animRules", o), !s.getState("ruleFlushAttached") && s.addExtEventListener("predraw", (function() { s.setState("animRules", a), s.setState("ruleFlushAttached", !0) }), s.getFromEnv("chart")), n) }, r._getRulesByElement = function(e, t) { var n; return r._ruleSelectorQueryBuilder(t, !1).forEach((function(t) { n === a && (n = e[t]) })), n }, t.getAnimAttributes = function(e) { var t, n, a, i, o, s = e.component || this.getFromEnv("chart"),
                        l = e.label || ("object" == typeof e.el ? e.el.type : e.el),
                        c = e.state,
                        u = this._getRulesByState({ label: l, component: s }),
                        d = []; if (!m(u) && (!c && (c = "string" == typeof e.el ? "appearing" : e.attr ? "updating" : "disappearing"), t = r._getRulesByElement(u, { component: s, state: c, label: l }), !m(t))) { if (!t) return r.getFallbackAnimRule(e); if (!k(t) || (t = t.call(s, e), !m(t))) { for (o = t.length, i = 0; i < o; i++) a = {}, (n = t[i]).initialAttr && (a.initialAttr = k(n.initialAttr) ? n.initialAttr.call(s, e) : Object.assign({}, n.initialAttr)), n.finalAttr && (a.finalAttr = k(n.finalAttr) ? n.finalAttr.call(s, e) : Object.assign({}, n.finalAttr)), a.startEnd = k(n.startEnd) ? n.startEnd.call(s, e) : n.startEnd ? Object.assign({}, n.startEnd) : { start: 0, end: 1 }, a.slot = n.slot || "default", a.callback = n.callback, a.hookFn = n.hookFn, a.transition = n.transition, a.effect = n.effect || "linear", n.groupChange && (a.groupChange = !0), d.push(a); return d } } }, r.getFallbackAnimRule = function(e) { if ("appearing" === e.state || "string" == typeof e.el) { if ("group" !== e.el) return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: (0, s.pluckNumber)(e.attr && e.attr.opacity, 1) }, startEnd: { start: 0, end: 1 } }] } else { if ("updating" === e.state || e.attr) return [{ startEnd: { start: 0, end: 1 } }]; if ("group" !== e.el.type) return [{ initialAttr: { opacity: 1 }, finalAttr: { opacity: 0 }, startEnd: { start: 0, end: 1 } }] } }, r.getFallbackAnimDuration = function(e) { return f[e] || 0 }, r.getFallbackAnimTimeSlots = function() { return [{ name: "_default", start: 0, end: 1, child: [
                            [{ name: "initial", duration: .125 }, { name: "middle", duration: .75, child: [
                                    [{ name: "axis", duration: .25 }, { name: "plot", duration: .75 }]
                                ] }, { name: "final", duration: .125 }]
                        ] }] }, t.createElement = function(e, t, r) { void 0 === t && (t = {}); var n = e,
                        a = this.getFromEnv("paper"); if (a || (a = this.getFromEnv("chart").getFromEnv("paper"), this.addToEnv("paper", a)), "group" === n)(n = a.group(r.attr && r.attr.name || "", r.container)).attr(t);
                    else if ("html" === n) n = a.html(r.attr.type, t, r.css, r.container);
                    else { if ("text" === n && r.css) return a[r.el](t, r.css, r.container);
                        n = a[r.el](t, r.container) } return n }, t.setAttributes = function(e, t) { var r, n = e,
                        a = t.attr,
                        i = t.inputJSON || {}; return "string" == typeof n ? n = this.createElement(n, a, i) : 0 !== Object.keys(a).length ? n.attr(a) : i.attr && "disappearing" !== i.state || (r = !i.doNotRemove), r ? this.removeElement(n, t.immediate) : (i.css && n.css(i.css), t.groupChangeReq && n.appendTo(i.container), t.immediate && i.callback && i.callback.call(n)), { el: n, removed: r } }, t.prepareAnimateArr = function(e) { var t, r, n, i, o, s, l, c, u, d = this.config.preAnimArr = [];

                    function f(e, t) { var n, i, o, s = { start: 0, end: 1 }; for (o in e)
                            if (e.hasOwnProperty(o)) { if (e[o].syncWith && !r[e[o].syncWith]) continue;
                                n = e[o].syncWith, s.start = e[o].start === a ? 0 : e[o].start, s.end = e[o].end === a ? 1 : e[o].end, s.hookFn = e[o].hookFn || e.hookFn, s.smartMorph = e[o].smartMorph || e.smartMorph; break } return n = n && r[n] ? n : t && r[t] ? t : "default", i = r[n].end - r[n].start, s.start = r[n].start + s.start * i, s.end = r[n].start + s.end * i, s } for (r = this.getFinalSlots(), i = 0, o = e.length; i < o; i += 1) { for (n = (t = e[i]).component, s = 0, l = t.data.length; s < l; s += 1)(c = (u = t.data[s]).transition || r[n] && r[n].transition) && x(u, c), u.preAnimFn && d.push({ el: u.el, fn: u.preAnimFn }), u.animConfig && (u.animConfig = f(u.animConfig, n));
                        t.effect || r[n] && (t.effect = r[n].effect), t.animConfig || (t.animConfig = [{}]), t.animConfig = f(t.animConfig, n) } }, t.animate = function() { var e, t, r, n, a, i, o, s, l = this.config,
                        c = this.config.animateArr,
                        u = l.animationObj,
                        d = u.animObj,
                        f = u.dummyObj,
                        h = u.duration; for (this.prepareAnimateArr(c), function(e) { var t = 0,
                                r = e.length; for (t = 0; t < r; ++t) e[t].fn && e[t].fn.call(e[t].el) }(this.config.preAnimArr), a = 0, i = c.length; a < i; a += 1)
                        for (o = 0, s = (t = c[a]).data.length - 1; o <= s; o += 1) r = t.data[o].animConfig || t.animConfig, r = b(r, h, 180), e = t.data[o].effect || t.effect || "linear", n = a === i && t.callback || t.data[o].callback, t.data[o].preAttrs && t.data[o].el.attr(t.data[o].preAttrs), t.data[o].el && w(t.data[o].el, t.data[o].attrs, n || null, r, f, d, h, e) }, t.remove = function(t) { this.removeAllJobs(), t.instant && this.getGraphicalElement("dummyObj") && this.getGraphicalElement("dummyObj").remove(), e.prototype.remove.call(this, t) }, r }(c.ComponentInterface);
            t["default"] = T }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = { pie2d: ["isPlotItemSliced", "addData", "removeData", "updateData", "slicePlotItem", "startingAngle"], dragcolumn2d: ["getDataWithId", "getData", "setUpperLimit", "setLowerLimit", "getLowerLimit", "getUpperLimit"], realtimecolumn: ["feedData", "setData", "stopUpdate", "restartUpdate", "isUpdateActive", "clearChart", "getData", "getDataForId", "setDataForId", "getDataJSON", "showLog", "hideLog", "clearLog"], scrollcolumn2d: ["scrollTo"], scrollbar2d: ["scrollTo"], boxandwhisker2d: ["scrollTo"], doughnut: ["centerLabel"], zoomline: ["zoomOut", "zoomTo", "resetChart", "setZoomMode", "getViewStartIndex", "getViewEndIndex", "scrollTo"], maps: ["getMapName", "getEntityList", "getMapAttribute", "exportMap", "addMarker", "updateMarker", "removeMarker"], "*": ["exportChart", "getXML", "getChartAttribute", "getCSVData", "getChartData", "getDataAsCSV", "getJSONData", "getSVGString", "getXMLData"] };
            n.pie3d = n.pie2d, n.doughnut2d = n.doughnut3d = n.doughnut.concat(n.pie2d), n.dragarea = n.dragline = n.dragnode = n.dragcolumn2d, n.realtimearea = n.realtimeline = n.realtimelinedy = n.realtimestackedarea = n.realtimestackedcolumn = n.bulb = n.angulargauge = n.hlineargauge = n.hled = n.vled = n.vbullet = n.hbullet = n.thermometer = n.cylinder = n.realtimecolumn, n.scrollarea2d = n.scrollline2d = n.scrollcombidy2d = n.scrollcombi2d = n.scrollstackedcolumn2d = n.scrollmsstackedcolumn2d = n.scrollmsstackedcolumn2dlinedy = n.scrollcolumn2d, n.zoomlinedy = n.zoomline; var a = n;
            t["default"] = a }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = { extension: function() {
                    function e() {} var t = e.prototype; return t.draw = function() {}, t.drawAt = function() {}, t.hide = function() {}, t.hideAll = function() {}, t.enableToolTip = function() {}, t.disableToolTip = function() {}, t.setStyle = function() {}, e }(), name: "ToolTipController", type: "plugin" };
            t["default"] = n }, function(e, t, r) { "use strict";
            r(238), r(268) }, function(e, t, r) { "use strict";
            r(236), r(235), r(237) }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(270));
            t.MessageLogger = a["default"]; var i = n(r(273));
            t.linkedChartsExtension = i["default"]; var o = n(r(275));
            t.XMLTranscoder = o["default"]; var s = n(r(276));
            t.CSVTranscoder = s["default"]; var l = n(r(278));
            t.JSONUrlTranscoder = l["default"]; var c = n(r(281));
            t.XMLUrlTranscoder = c["default"]; var u = n(r(282));
            t.IgnoreCaseExt = u["default"]; var d = n(r(283));
            t.ThemeEngine = d["default"]; var f = n(r(284));
            t.DefaultTheme = f["default"]; var h = n(r(285));
            t.PlotHighlighter = h["default"]; var g = n(r(287));
            t.ToolTipController = g["default"]; var p = n(r(289));
            t.ConsolidatedToolTip = p["default"]; var m = n(r(290));
            t.AlertManager = m["default"]; var v = n(r(292));
            t.DataSkipping = v["default"]; var b = n(r(296));
            t.Annotation = b["default"]; var y = n(r(321));
            t.RegressionExtension = y["default"]; var x = n(r(327));
            t.inputAdapter = x["default"]; var w = n(r(356));
            t.LegendEventManagerLinker = w["default"]; var C = n(r(357));
            t.exportModule = C["default"]; var _ = n(r(364));
            t.BatchExportLinker = _["default"]; var k = n(r(365));
            t.LogoExtension = k["default"]; var S = n(r(367));
            t.supportOldThemes = S["default"]; var E = n(r(368));
            t.debug = E["default"]; var A = n(r(369));
            t.CenterLabel = A["default"]; var T = n(r(372));
            t.CrossLine = T["default"]; var M = n(r(376));
            t.MultiCanvasCrossLine = M["default"]; var N = { name: "features", type: "package", requiresFusionCharts: !0, extension: function(e) { e.addDep(i["default"]), e.addDep(o["default"]), e.addDep(s["default"]), e.addDep(l["default"]), e.addDep(c["default"]), e.addDep(u["default"]), e.addDep(d["default"]), e.addDep(h["default"]), e.addDep(f["default"]), e.addDep(g["default"]), e.addDep(p["default"]), e.addDep(m["default"]), e.addDep(a["default"]), e.addDep(v["default"]), e.addDep(b["default"]), e.addDep(C["default"]), e.addDep(y["default"]), e.addDep(x["default"]), e.addDep(w["default"]), e.addDep(_["default"]), e.addDep(k["default"]), e.addDep(S["default"]), e.addDep(E["default"]), e.addDep(A["default"]), e.addDep(T["default"]), e.addDep(M["default"]) } };
            t["default"] = N }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(271)),
                i = { timeseries: !0 },
                o = function(e) { var t = e.sender.getName().toLowerCase(); "chartAPI" !== e.sender.getType() || i[t] || e.sender.registerFactory("messageLogger", (function(t) { if (t.getChildren("messageLogger")) t.getChildren("messageLogger")[0].configure(t);
                        else { var r = new a["default"];
                            r.configure(t), r.addToEnv("chart-container", t.getFromEnv("chart-container")), t.attachChild(r, "messageLogger"), t.getFromEnv("chartInstance").showLog = function() { return r && r.show && r.show() }, t.getFromEnv("chartInstance").hideLog = function() { return r && r.hide && r.hide() }, t.getFromEnv("chartInstance").clearLog = function() { return r && r.clearLog && r.clearLog() }, e.sender.addEventListener("realtimeDataUpdate", (function(e) { e.sender.getChildren("messageLogger") && e.sender.getChildren("messageLogger")[0].addLog(e.data) })) } })) }; var s = { extension: function(e) { e.addEventListener("instantiated", o) }, name: "messageLoggerLinker", type: "extension", requiresFusionCharts: !0 };
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(272)),
                o = r(230),
                s = r(215),
                l = Math.min,
                c = function(e) {
                    function t() { var t; return (t = e.call(this) || this).pIndex = 1, t.linkedItems = t.linkedItems || (t.linkedItems = {}), t.components = t.components || {}, t.components.messages = t.components.messages || [], t.graphics = t.graphics || {}, t.config = t.config || (t.config = {}), t }(0, a["default"])(t, e); var r = t.prototype; return r.getType = function() { return "extension" }, r.getName = function() { return "MessageLogger" }, r.configure = function(e) { this.linkedItems.chart = e; var t = e.getFromEnv("chart-attrib") || {},
                            r = this.config.usemessagelog = e.getFromEnv("chartConfig").usemessagelog;
                        this.config.messageLogWPercent = l((0, s.pluckNumber)(t.messagelogwpercent, 80), 100), this.config.messageLogHPercent = l((0, s.pluckNumber)(t.messageloghpercent, 70), 100), this.config.messageLogShowTitle = (0, s.pluckNumber)(t.messagelogshowtitle, 1), this.config.messageLogTitle = (0, s.pluck)(t.messagelogtitle, "Message Log"), this.config.messageLogColor = (0, s.pluck)(t.messagelogcolor, "#fbfbfb").replace(/^#?([a-f0-9]+)/gi, "$1"), this.config.messageLogColorRgb = (0, s.HEXtoRGB)(this.config.messageLogColor), this.config.messageGoesToJS = (0, s.pluckNumber)(t.messagegoestojs, 0), this.config.messageGoesToLog = (0, s.pluckNumber)(t.messagegoestolog, 1), this.config.messageJSHandler = (0, s.pluck)(t.messagejshandler, ""), this.config.messagePassAllToJS = (0, s.pluckNumber)(t.messagepassalltojs, 0), this.config.messagePassAsObject = (0, s.pluckNumber)(t.messagepassasobject, 0), this.config.messageLogIsCancelable = (0, s.pluckNumber)(t.messagelogiscancelable, 1), this.config.alwaysShowMessageLogMenu = (0, s.pluckNumber)(t.alwaysshowmessagelogmenu, r), e.config.useShowLogMenu = r && this.config.messageGoesToLog, this.config.dynamicScrolling = !1, this.config.scrollToBottom = !0 }, r._createMessage = function(e) { var t = new i["default"](e, this); return this.graphics.container && t.draw(), t }, r.addLog = function(e) { var t, r = this.components.messages,
                            n = (0, s.pluckNumber)(e.msgGoesToLog, this.config.messageGoesToLog),
                            a = (0, s.pluckNumber)(e.msgGoesToJS, this.config.messageGoesToJS),
                            i = window[this.config.messageJSHandler],
                            o = (0, s.pluck)(e.msgId, ""),
                            l = (0, s.pluck)(e.msgTitle, ""),
                            c = (0, s.pluck)(e.msgText, ""),
                            u = (0, s.pluck)(e.msgType, "literal");
                        0 !== this.config.usemessagelog && (a && i && "function" == typeof i && (this.config.messagePassAllToJS ? this.config.messagePassAsObject ? i(e) : i(o, l, c, u) : i(c)), "1" === e.clearLog && this.clearLog(), n && (e.msgTitle || e.msgText) && (t = this._createMessage(e), r.push(t), 1 !== r.length || this.config.visible || this.show())) }, r.show = function() { this.config.visible || 1 !== this.config.usemessagelog || (this.config.visible = !0, this.draw(), this.graphics.container || this.draw(), this.graphics.container && this.graphics.container.show()) }, r.hide = function() { this.config.visible = !1, this.graphics.container && this.graphics.container.hide() }, r.clearLog = function() { var e, t = this.components.messages,
                            r = t.length; for (e = 0; e < r; e += 1) t[e] && t[e].dispose && t[e].dispose();
                        t.splice(0, r) }, r.isDrawn = function() { return !!this.graphics.container }, r.draw = function() { var e, t, r = this.components.messages; if (0 === this.config.usemessagelog) this.isDrawn() && (this.clearLog(), this.hide());
                        else
                            for (this._createHTMLDialogue(), this.config.visible || this.hide(), t = r.length, e = 0; e < t; e += 1) r[e] && r[e].draw && r[e].draw() }, r._createHTMLDialogue = function() { var e, t, r, n, a = this,
                            i = this.config,
                            o = this.graphics,
                            s = this.getFromEnv("paper"),
                            l = this.linkedItems.chart.config,
                            c = l.width,
                            u = l.height,
                            d = l.style,
                            f = d && d.inCanvasStyle,
                            h = this.config.messageLogWPercent,
                            g = this.config.messageLogHPercent,
                            p = this.config.messageLogShowTitle,
                            m = this.config.messageLogIsCancelable,
                            v = this.config.messageLogColor,
                            b = this.config.messageLogTitle,
                            y = c * (h / 100),
                            x = u * (g / 100),
                            w = (c - y) / 2,
                            C = (u - x) / 2,
                            _ = y - 18 - 22,
                            k = x - 18 - 22,
                            S = v,
                            E = v,
                            A = o.container,
                            T = this.isDrawn() && l.animation && l.animation.transposeAnimDuration;
                        A || (A = o.container = s.html("div", { fill: "transparent" }, { fontSize: "10px", lineHeight: "15px" }, this.getFromEnv("chart-container")), o.veil = s.html("div", { id: "veil", fill: "000000", opacity: .1 }, void 0, A).on("fc-click", (function() { m && a.hide() })), b && p && (o.title = s.html("p", { id: "Title", innerHTML: b, x: 5, y: 5 }, { "font-weight": "bold" }, A)), o.dialog = s.html("div", { id: "dialog", strokeWidth: 1 }, { borderRadius: "5px", boxShadow: "1px 1px 3px #000000", "-webkit-border-radius": "5px", "-webkit-box-shadow": "1px 1px 3px #000000", filter: 'progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color="#000000")' }, A), o.logBackground = s.html("div", { id: "dialogBackground", x: 0, y: 0 }, void 0, o.dialog), m && (o.closeButton = s.html("div", { id: "closeButton", x: y - 11 - 3, y: 2, innerHTML: "<b>x</b>" }, { cursor: "pointer", _cursor: "hand" }, o.dialog).on("fc-click", (function() { m && a.hide() }))), o.logWrapper = s.html("div", { id: "logWrapper" }, { overflow: "auto" }, o.dialog).on("scroll", (function() { var e = this && this.scrollTop,
                                t = this && this.scrollHeight,
                                r = this && this.offsetHeight;
                            i.dynamicScrolling ? i.dynamicScrolling = !1 : i.scrollToBottom = t - e === r })), o.log = s.html("div", { id: "log", x: 0, y: 0 }, {}, o.logWrapper)), A.css({ fontFamily: f.fontFamily }), o.dialog.attr({ fill: "ffffff", stroke: S }), o.logBackground.attr({ fill: E }), e = { width: c, height: u }, t = { x: w, y: C, width: y, height: x }, r = { width: y, height: x }, n = { x: (y - _) / 2, y: (x - k) / 2, width: _, height: k }, T ? (A.animate(e, T, "normal"), o.veil.animate(e, T, "normal"), o.dialog.animate(t, T, "normal"), o.logBackground.animate(r, T, "normal"), o.logWrapper.animate(n, T, "normal")) : (A.attr(e), o.veil.attr(e), o.dialog.attr(t), o.logBackground.attr(r), o.logWrapper.attr(n)) }, t }(o.ComponentInterface);
            t["default"] = c }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(215),
                a = 8 === window.document.documentMode,
                i = {},
                o = { display: "block", paddingLeft: "10px", paddingRight: "10px", "font-family": "Arial", "font-size": "11px" };
            i.literal = i.info = { title: '<span style="color: #005900">$titleVal$</span>', body: '<span">$msgVal$</span>' }, i.link = { title: i.info.title, body: '<a href="$msgLinkVal$">$msgVal$</a>' }, i.error = { title: '<span style="color: #CC0000">$titleVal$</span>', body: '<span style="color: #CC0000">$msgVal$</span>' }; var s = function() {
                function e(e, t) { this.config = {}, this.messageType = (e.msgType && e.msgType.replace(/^[\r\n]+|\.|[\r\n]+$/g, "") || "").toLowerCase(), this.msgTitle = e.msgTitle, this.msgText = e.msgText, this.msgLink = e.msgLink, this.graphics = {}, this.linkedItems = { msgLogger: t }, this.msgObj = i[this.messageType] || i.literal, this.configureMsgTextAndMsgTitle() } var t = e.prototype; return t.configureMsgTextAndMsgTitle = function() { this.config.totalHTML = n.BLANKSTRING, this.msgTitle && (this.config.titleHTML = this.msgObj.title.replace("$titleVal$", this.msgTitle), this.config.totalHTML += this.config.titleHTML), this.msgText && (this.config.msgHTML = this.msgObj.body.replace("$msgVal$", this.msgText), this.config.msgHTML = this.config.msgHTML.replace("$msgLinkVal$", this.msgText), this.config.totalHTML += this.config.msgHTML) }, t.draw = function() { var e, t, r, i = this.graphics.element,
                        s = this.linkedItems.msgLogger,
                        l = s.graphics,
                        c = l && l.log && l.log.element,
                        u = l.logWrapper && l.logWrapper.element,
                        d = s.config; if (!i) { for (e in i = this.graphics.element = window.document.createElement("span"), o) i.style[e] = o[e];
                        c.appendChild && c.appendChild(i) } this.graphics.element.innerHTML = this.config.totalHTML, n.isIE && a && (t = c.innerHTML, c.innerHTML = t), d.scrollToBottom && (d.dynamicScrolling = !0, r = u.scrollHeight, u.scrollTop = r) }, t.dispose = function() { var e = this.linkedItems.msgLogger;
                    e && e.graphics && e.graphics.log && e.graphics.log.element && e.graphics.log.element.removeChild && e.graphics.log.element.removeChild(this.graphics.element), delete this.graphics.element, n.componentDispose.call(this) }, e }();
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208),
                a = r(212);
            t.__esModule = !0, t["default"] = void 0; var i = a(r(274)),
                o = r(222),
                s = r(215),
                l = n(r(217)),
                c = s.regex.dropHash;

            function u(e, t) { return (e.options.containerElement === t.options.containerElement || e.options.containerElementId === t.options.containerElementId) && e.options.insertMode === s.domInsertModes.REPLACE }

            function d(e) { var t;
                e.sender.link instanceof i["default"] && !e.sender.link.root.disposed ? e.sender.link.parent instanceof this && !(t = e.sender.link.parent.link.items)[e.sender.id] && (t[e.sender.id] = e.sender) : e.sender.link = new i["default"](e.sender) }

            function f(e, t) { var r, n = t; if (e instanceof Array) { for (r = 0; r < e.length; r += 1) "object" != typeof i.store[this.link.root.id][r] && (i.store[this.link.root.id][r] = {}), (0, s.extend2)(i.store[this.link.root.id][r], e[r], !1, !0);
                    i.store[this.link.root.id].splice(e.length) } else "object" == typeof e ? ("number" != typeof n && (n = this.link.level), "undefined" == typeof i.store[this.link.root.id][n] && (i.store[this.link.root.id][n] = {}), (0, s.extend2)(i.store[this.link.root.id][n], e, !1, !0)) : (0, o.raiseError)(this, "25081731", "param", "~configureLink()", "Unable to update link configuration from set parameters") }

            function h(e) { var t, r, n, a = this.jsVars,
                    i = a.overlayButton; if (e && e.show) { for (i || (i = a.overlayButton = document.createElement("span"), l["default"].listen(i, "click", (function() {
                            (0, o.triggerEvent)("OverlayButtonClick", a.fcObj, e) }))), n = e.message ? e.message : "Back"; i.firstChild;) i.removeChild(i.firstChild); for (r in i.appendChild(document.createTextNode(n)), a.overlayButtonMessage = n, t = { border: "1px solid " + (e.borderColor ? e.borderColor.replace(c, s.HASHSTRING) : "#7f8975"), backgroundColor: e.bgColor ? e.bgColor.replace(c, s.HASHSTRING) : "#edefec", fontFamily: e.font ? e.font : "Verdana,sans", color: e.fontColor, fontSize: (e.fontSize ? e.fontSize : "10") + s.PXSTRING, padding: (e.padding ? e.padding : "3") + s.PXSTRING, fontWeight: 0 === parseInt(e.bold, 10) ? s.NORMAL : s.BOLD, position: "absolute", top: "0", right: "0", cursor: s.POINTER }) i.style[r] = t[r];
                    a.hcObj.container.appendChild(i), a.overlayButtonActive = !0 } else i && (a.overlayButton = i.parentNode.removeChild(i), a.overlayButtonActive = !1, delete a.overlayButtonMessage) } var g = { type: "extension", name: "LinkedChart", extension: function(e) { e.prototype.configureLink = f, e.prototype.drawOverlayButton = h, e.addEventListener("beforeRender", d), e.addEventListener("beforeInitialize", d), e.addEventListener("linkedChartInvoked", (function(t, r) { var n, a = t.sender,
                            l = a.clone({ dataSource: r.data, dataFormat: r.linkType, link: new i["default"](a.link.root, a, a instanceof e), clickedEntity: r.clickedEntity, clickedEntityBox: r.clickedEntityBox }, !0),
                            c = r.alias;
                        c && (!l.typeSource && l.swfUrl && (l.typeSource = l.swfUrl.replace(/(.*?)?[^\/]*\.swf.*?/gi, "$1")), l.type = c), a.args && 0 !== parseInt(a.args.animate, 10) && delete l.animate, (0, s.extend2)(l, a.link.configuration(), !1, !0), (0, o.triggerEvent)("beforeLinkedItemOpen", a.link.root, { level: a.link.level }, void 0, (function() { e.items[l.id] instanceof e && e.items[l.id].dispose(), u(n = new e(l), a) || a.options.overlayButton && a.options.overlayButton.message || ("object" != typeof a.options.overlayButton && (a.options.overlayButton = {}), a.options.overlayButton.message = "Close"), n.render(), (0, o.triggerEvent)("linkedItemOpened", a.link.root, { level: a.link.level, item: n }) })) })), e.addEventListener("overlayButtonClick", (function(t, r) { var n, a, i, s; "LinkManager" === r.id && (n = t.sender, a = n.link.level - 1, i = n.link.parent, s = n.link.root, (0, o.triggerEvent)("beforeLinkedItemClose", s, { level: a, item: n }, void 0, (function() { setTimeout((function() { e.items[n.id] && n.dispose(), (0, o.triggerEvent)("linkedItemClosed", s, { level: a }) }), 0), i.disposed || i.isActive() || !u(n, i) ? (i._addChartDependency("returnFromLinkedChart", { resolve: function() { return { state: 3 } } }), i._setState()) : i.render() }))) })), e.addEventListener("DrawComplete", (function(t) { var r, n = t.sender;
                        n && "undefined" != typeof n.link && n.link.root !== n && n.link.parent instanceof e && (n.ref && "function" == typeof n.drawOverlayButton ? (r = (0, s.extend2)({ show: !0, id: "LinkManager" }, n.link.parent.options.overlayButton, !1, !0), (0, s.extend2)(r, n.link.parent.link.configuration().overlayButton || {}, !1, !0), n.drawOverlayButton(r)) : (0, o.raiseWarning)(n, "04091602", "run", "::LinkManager^Loaded", "Unable to draw overlay button on object. -" + n.id)) })), e.addEventListener("beforeDispose", (function(t) { var r = t.sender;
                        r && r.link instanceof i["default"] && (r && r.link && r.link.parent instanceof e && r.link.parent.link && r.link.parent.link.items && delete r.link.parent.link.items[t.sender.id], delete i.store[r.id]) })) }, requiresFusionCharts: !0 };
            t["default"] = g }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = t.store = void 0; var n = {};
            t.store = n; var a = function() {
                function e(e, t, r) { this.items = {}, this.root = e, this.parent = t, r ? this.level = this.parent.link.level + 1 : (n[e.id] = [{}], this.level = 0) } return e.prototype.configuration = function() { return n[this.root.id][this.level] || (n[this.root.id][this.level] = {}) }, e }();
            t["default"] = a }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n, a = r(215),
                i = function(e, t, r) { return "object" == typeof this.items[e][r] ? this.items[e][r][t] : this.items[e][r] };

            function o(e) { return e.replace(/</g, "&lt;").replace(/>/g, "&gt;") } var s, l, c, u, d = (u = { arr: { set: !0, node: !0, nodes: !0, link: !0, links: !0, trendlines: !0, vtrendlines: !0, line: { trendlines: !0, vtrendlines: !0 }, data: !0, dataset: !0, lineset: !0, categories: !0, category: !0, tasks: !0, linkeddata: !0, application: !0, definition: !0, axis: !0, connectors: !0, connector: { connectors: !0 }, trendset: !0, row: { rows: !0 }, column: { columns: !0 }, label: { labels: !0 }, color: { colorrange: !0 }, dial: { dials: !0 }, pointer: { pointers: !0 }, point: { trendpoints: !0 }, process: { processes: !0 }, task: { tasks: !0 }, milestone: { milestones: !0 }, datacolumn: { datatable: !0 }, text: { datacolumn: !0 }, item: { legend: !0 }, alert: { alerts: !0 }, groups: { annotations: !0 }, items: { groups: !0, data: !0 }, shapes: !0, shape: { shapes: !0 }, entitydef: !0, entity: { entitydef: !0 } }, tag: { chart: "linkedchart", map: "linkedmap", set: "data", node: "nodes", link: "links", vline: { chart: "data", graph: "data", dataset: "data", categories: "category", linkedchart: "data" }, apply: { application: "application" }, style: { definition: "definition" }, marker: { application: "application", definition: "definition", data: "items" }, entity: { entitydef: "entitydef", data: "data" }, shape: { shapes: "shapes" }, connector: { connectors: { chart: "connector", linkedchart: "connector", map: "connectors", linkedmap: "connectors" } }, annotationgroup: { annotations: "groups" }, annotation: { groups: "items" } }, attr: { vline: { vline: "true" } }, ins: { chart: !0, map: !0, graph: !0 }, dsv: { dataset: "data", categories: "category" }, text: { target: "target", value: "value" }, group: { styles: { definition: !0, application: !0 }, chart: { value: !0, target: !0 }, graph: { value: !0, target: !0 }, linkedchart: { value: !0, target: !0 }, markers: { definition: !0, application: !0, shapes: !0, connectors: !0, data: !0 }, map: { entitydef: !0, data: !0 }, linkedmap: { entitydef: !0, data: !0 } } }, s = { append: function(e, t, r, n) {!u.arr[r] || !0 !== u.arr[r] && !0 !== u.arr[r][n] ? t[r] = e : (t[r] instanceof Array || (t[r] = []), t[r].push(e)) }, child: function(e, t, r, n) { var i, o, l, c, d, f; for (i = 0; i < t.length; i += 1) switch (o = (l = t[i]).nodeName.toLowerCase(), l.nodeType) {
                            case 1:
                                if (c = s.attr(l.attributes), !0 === (f = u.ins[o]) && (d = c, (c = {})[o] = d, d = void 0), "object" == typeof(f = u.attr[o]) && (0, a.extend2)(c, f, !1, !0), f = u.tag[o])
                                    if ("object" == typeof f && "object" == typeof f[r]) { for (d in d = void 0, f[r])
                                            if (n[d]) { o = f[r][d]; break } } else "object" == typeof f && "string" == typeof f[r] ? o = f[r] : "string" == typeof f && (o = f);
                                l.childNodes.length && ((f = u.group[r]) && f[o] ? s.child(e, l.childNodes, o, n) : s.child(c, l.childNodes, o, n)), (f = u.group[r]) && f[o] || s.append(c, e, o, r); break;
                            case 3:
                                (f = u.text[r]) && (o = f, c = l.data, s.append(c, e, o, r)), "string" == typeof(f = u.dsv[r]) && n.chart && parseInt(n.chart.compactdatamode, 10) && (o = f, c = l.data, e[o] = e[o] ? e[o] + c : c) } }, attr: function(e) { var t, r = {}; if (!e || !e.length) return r; for (t = 0; t < e.length; t += 1) "xml" === c && (e[t].value ? e[t].value = o(e[t].value) : e[t].nodeValue && (e[t].nodeValue = o(e[t].nodeValue))), r[e[t].nodeName.toLowerCase()] = e[t].value || e[t].nodeValue; return r } }, l = function(e) { var t, r, i, o, c, u, d, f, h, g = {},
                        p = e; if ("object" != typeof p && p && "function" != typeof p.toString) return l.errorObject = new TypeError("xml2json.parse()"), g; if (p = p.toString().replace(/<\!--[\s\S]*?-->/g, "").replace(/<\?xml[\s\S]*?\?>/gi, "").replace(/&(?!([^;\n\r]+?;))/g, "&amp;$1"), !(p = (0, a.fastTrim)(p))) return g; try { if (window.DOMParser ? t = (new window.DOMParser).parseFromString(p, "text/xml") : document.body && n.options.allowIESafeXMLParsing ? ((r = document.createElement("xml")).innerHTML = p, document.body.appendChild(r), t = r.XMLDocument, document.body.removeChild(r), r = null) : ((t = new window.ActiveXObject("Microsoft.XMLDOM")).async = "false", t.loadXML(p)), !(t && t.childNodes && 1 === t.childNodes.length && (i = t.childNodes[0]) && i.nodeName && (o = i.nodeName.toLowerCase())) || "chart" !== o && "map" !== o && "graph" !== o) return l.errorObject = new TypeError("xml2json.parse()"), g; if ("graph" === o) { for (c = t.createElement("chart"), h = (d = i.attributes) && d.length || 0; h--;) c.setAttribute(d[h].name, d[h].value), d.removeNamedItem(d[h].name); for ((h = (f = i.childNodes) && f.length || 0) && (h -= 1, u = i.removeChild(f[h]), c.appendChild(u)); h--;) u = i.removeChild(f[h]), c.insertBefore(u, c.firstChild);
                            t.replaceChild(c, i), i = c } } catch (m) { l.errorObject = m } return i ? (i.attributes && (g[o] = s.attr(i.attributes)), i.childNodes && s.child(g, i.childNodes, o, g), delete l.errorObject) : l.errorObject = new TypeError("xml2json.parse()"), g }, function(e) { return delete l.errorObject, c = arguments[arguments.length - 1], { data: l(e), error: l.errorObject } }),
                f = function() { var e, t; return e = { items: { explode: { data: "set", nodes: "node", links: "link", groups: { annotations: "annotationgroup" }, items: { groups: "annotation" } }, text: { chart: { target: "target", value: "value" }, graph: { target: "target", value: "value" } }, dsv: { dataset: { data: "dataset" }, categories: { category: "categories" } }, attr: { chart: { chart: "chart" }, graph: { graph: "graph" }, map: { map: "map" }, linkedmap: { map: "map" }, linkedchart: { chart: "chart" } }, group: { styles: { definition: "style", application: "apply" }, map: { data: "entity", entitydef: "entity" }, markers: { definition: "marker", application: "marker", shapes: "shape", connectors: "connector", items: "marker" } }, tag: { markers: { items: "data" } } }, qualify: i }, t = function(r, n, i, o) { var s, l, c, u, d = a.BLANKSTRING,
                                f = a.BLANKSTRING,
                                h = a.BLANKSTRING,
                                g = a.BLANKSTRING,
                                p = n; if (p && "function" == typeof p.toLowerCase && (p = p.toLowerCase()), void 0 === i && r[p])
                                for (l in r[p]) "compactdatamode" === (c = l.toLowerCase()) && (o.applyDSV = 1 === r[p][l]); if (r instanceof Array)
                                for (l = 0; l < r.length; l += 1) "string" == typeof r[l] ? h += (0, a.xssEncode)(r[l]) : h += t(r[l], p, i, o);
                            else { for (l in r) c = l.toLowerCase().replace(/[`~!@#$%^&*()|+\=?;:'", <>\{\}\[\]\\\/]/gi, ""), r[l] instanceof Array && (u = e.qualify("group", c, p)) ? f += "<" + (s = e.qualify("tag", c, p) || c) + ">" + t(r[l], u, p, o) + "</" + s + ">" : "object" == typeof r[l] ? (u = e.qualify("attr", c, p)) ? (g = t(r[l], u, p, o).replace(/\s*\/\>/gi, ""), p = c) : f += t(r[l], c, p, o) : o.applyDSV && (u = e.qualify("dsv", c, p)) ? f += r[l] : (u = e.qualify("text", c, p)) ? f += "<" + (s = e.qualify("tag", c, p) || u) + ">" + r[l] + "</" + s + ">" : "vline" === c && Boolean(r[l]) ? p = "vline" : d += " " + c + '="' + (0, a.xssEncode)(r[l]).toString().replace(/\"/gi, "&quot;") + '"';
                                (u = e.qualify("explode", i, p)) && (p = u), s = p, h = ("" !== g ? g : "<" + s) + d + ("" !== f ? ">" + f + "</" + s + ">" : " />") } return h },
                        function(e) { delete t.errorObject; var r = e; if (r && "string" == typeof r) try { r = JSON.parse(r) } catch (a) { t.errorObject = a }
                            var n = r && r.graph ? "graph" : r && r.map ? "map" : "chart"; return { data: t(r, n, void 0, {}), error: t.errorObject } } }(),
                h = function() { return this.getChartData("xml") },
                g = function(e) { this.setChartData(e, "xml") },
                p = { extension: function(e) { return e && (n = e, e.prototype.getXMLData = h, e.prototype.setXMLData = g), { format: "xml", toJSON: d, fromJSON: f } }, name: "XML", type: "transcoder", requiresFusionCharts: !0 };
            t["default"] = p }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(214)),
                i = r(222),
                o = r(215),
                s = n(r(277));

            function l(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r } var c, u, d, f, h, g, p, m, v, b, y, x, w = window,
                C = w.parseInt,
                _ = w.parseFloat,
                k = function(e) { return e },
                S = function() {
                    function e(e) { this.data = [], this.rowCount = 0, this.columnCount = 0, this.configure(e) } var t = e.prototype; return t.set = function(e, t, r) { var n; if (this.rowCount <= e) { for (n = this.rowCount; n <= e; n += 1) this.data[n] = [];
                            this.rowCount = e + 1 } this.columnCount <= t && (this.columnCount = t + 1), this.data[e][t] = r }, t.setRow = function(e, t) { var r; if (this.rowCount <= e) { for (r = this.rowCount; r <= e; r += 1) this.data[r] = [];
                            this.rowCount = e + 1 } this.columnCount < t.length && (this.columnCount = t.length), this.data[e] = t }, t.get = function(e, t) { var r = this.data; return r[e] && r[e][t] }, t.configure = function(t) { var r = e.decodeLiterals;
                        this.delimiter = r(t.delimiter, ","), this.qualifier = r(t.qualifier, '"'), this.eolCharacter = r(t.eolCharacter, "\r\n"), this.numberFormatted = !!C(t.numberFormatted, 0) }, t.clear = function() { this.data = [], this.rowCount = 0, this.columnCount = 0 }, t.toString = function() { var e, t, r = o.BLANKSTRING; for (e = 0; e < this.rowCount; e += 1) r += '""' === (t = this.qualifier + this.data[e].join(this.qualifier + this.delimiter + this.qualifier) + this.qualifier) ? this.eolCharacter : t + this.eolCharacter; return this.rowCount > 0 && (r = r.slice(0, r.length - 2)), r }, e }();

            function E() { return this.getChartData("csv") }

            function A() { return this.getCSVData() } S.decodeLiterals = function(e, t) { return e !== u && null !== e && e.toString ? e.replace("{tab}", "\t").replace("{quot}", '"').replace("{apos}", "'") : t }, h = function(e) { var t = {},
                    r = []; for (var n in (0, s["default"])(e) && e.forEach((function(e) { t[e.id] = function(e) { for (var t = 1; t < arguments.length; t++) { var r = null != arguments[t] ? arguments[t] : {};
                                t % 2 ? l(Object(r), !0).forEach((function(t) {
                                    (0, a["default"])(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : l(Object(r)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e }({}, e), !t[e.id].parent && (t[e.id].isRootNode = !0), !t[e.id].categories && (t[e.id].category = []) })), e.forEach((function(e) { var r = t[e.id],
                            n = !1;!r.id || r.value && isNaN(+r.value) || (!r.parent || r.parent && t[r.parent]) && (n = !0), n || delete t[r.id] })), t)
                    if (t.hasOwnProperty(n)) { var i = t[n];
                        i.parent && t[i.parent].category.push(i), i.isRootNode && r.push(i) } return { category: r } }, v = function(e, t, r) { var n; if (void 0 === r && (r = "category"), g.push(e.label || e.name || o.BLANKSTRING), p.push(isNaN(+e.value) ? "" : e.value), t.setRow(y++, g.slice()), m++, x = Math.max(x, m), e[r] !== u) { for (n = 0; n < e[r].length; ++n) v(e[r][n], t, r);
                    g.pop(), m-- } else g.pop(), m-- }, b = function(e) { var t, r, n, a = e,
                    i = a.chart,
                    o = a.data ? "data" : "category",
                    s = a && a[o] || [],
                    l = s.length,
                    c = []; for (y = 1, x = 0, m = 0, n = new S({ separator: i.exportdataseparator, qualifier: i.exportdataqualifier, numberFormatted: i.exportdataformattedval }), p = [], t = 0; t < l; ++t) r = s[t], g = [], v(r, n, o); for (t = 0; t < x; ++t) c.push("Label " + (t + 1)); for (c.push("Value"), n.setRow(0, c), t = p.length - 1; t >= 0; t--) n.set(t + 1, x, p[t]); return { data: n.toString(), error: u, predictedFormat: { multilevel: !0 } } }, d = function(e, t) { var r, n, a, i, o, s, l, d, f, g, p, m, v, y, x, w, C, E, A, T, M, N, D, F, I, L, O, R, P, V, j, B, H, G, z, U, W, X, $, Y = e,
                    q = t && t.jsVars,
                    K = q && q.instanceAPI,
                    J = Y.chart || Y.map || Y.graph || {},
                    Z = K && K.getFromEnv("number-formatter"),
                    Q = Z ? function(e) { return Z.getCleanValue(e) } : t && t._getCleanValue ? function(e) { return t._getCleanValue(e, J) } : k,
                    ee = Boolean(J.exporterrorcolumns || 0),
                    te = Y.categories && Y.categories[0] && Y.categories[0].category || [],
                    re = Y.map && !Y.chart || q && q.instanceAPI && "geo" === q.instanceAPI.defaultSeriesType,
                    ne = !1,
                    ae = !1,
                    ie = !1,
                    oe = !1,
                    se = !1,
                    le = !1,
                    ce = k,
                    ue = {},
                    de = Y.tasks ? Array.isArray(Y.tasks) ? Y.tasks[0].task : Y.tasks.task : u,
                    fe = Y.processes ? Y.processes.process : u,
                    he = Y.datatable ? Array.isArray(Y.datatable) ? Y.datatable[0] : Y.datatable : u,
                    ge = he ? he.datacolumn : u,
                    pe = de && fe,
                    me = 0,
                    ve = -1; if (e.category || e.data && e.data[0].data) return b(e); if (r = new S({ separator: J.exportdataseparator, qualifier: J.exportdataqualifier, numberFormatted: J.exportdataformattedval }), c.formatNumber && r.numberFormatted && (ce = function(e, t) { return c.formatNumber(e, J, t) }), re)
                    for (O in ue.geo = !0, L = (f = q.instanceAPI.getDatasets()) && f[0] && f[0].components.data || [], r.setRow(0, ["Id", " Short Name", "Long Name", "Value", "Formatted Value"]), o = 0, L) B = (P = (R = L[O]).config).cleanValue, !0 !== R.hidden && r.setRow(++o, [O, P.shortLabel, P.label, null === B ? "" : B, P.formattedValue]);
                else if ((f = Y.dials && Y.dials.dial || Y.pointers && Y.pointers.pointer || Y.value) !== u)
                    if (ue.gauge = !0, "string" == typeof f) r.set(0, 0, ce(f)), ue.singlevalue = !0, "string" == typeof Y.target && (r.set(0, 1, ce(Y.target)), ue.bullet = !0);
                    else
                        for (r.setRow(0, ["Id", "Value"]), ue.multivalue = !0, o = 0, l = 1, s = f.length; o < s; o += 1, l += 1) r.setRow(l, [l, ce(f[o].value)]);
                else if (!pe && (f = Y.dataset || !(Y.data instanceof Array) && [])) { if (ue.multiseries = !0, a = 1, (g = Y.lineset) && (f = f.concat(g), ue.lineset = !0), (p = Y.axis) && (f = f.concat(p), ue.multiaxis = !0), !f.length && Y.links && (f = f.concat({ data: Y.links })), y = f.length, v = te.length, !(y = f.length)) { for (o = 0; o < v; o += 1) x = te[o], r.set(o + 1, 0, x.label || x.name);
                        ue.multilevel = !0 } for (o = 0; o < y; o += 1)
                        for ((w = f)[o].dataset ? (i = 0, m = (w = w[o].dataset).length) : (w = f, m = (i = o) + 1); i < m && !ne && !oe && !ie; i += 1)
                            if (C = w[i], ve++, !(K && (D = K.getDatasets()) && D[ve] && !1 === D[ve].visible)) { for (z = (V = K && D && D[ve]) && V.config && V.config.parentYAxis, r.set(0, a, C.seriesname), "string" == typeof C.data && (ue.compactdata = !0, C.data = C.data.split(J.dataseparator || "|")), s = 0, l = 0, E = C.data && C.data.length || 0; s < E || s < v; s += 1) { if (x = te[s], n = l + 1, (A = C.data && C.data[l] || {}).x !== u && A.y !== u) { ne = ue.xy = !0; break } if (A.from !== u && A.to !== u) { ie = ue.diagram = !0; break } if (A.open !== u || A.high !== u || A.close !== u || A.low !== u) { se = ue.ohlc = !0; break } if (A.rowid !== u && A.columnid !== u) { oe = ue.heatmap = !0; break }(s < v && !x.vline || !x) && (x && r.set(n, 0, x.label || x.name), T = _(Q(A ? A.value : "")), T = isNaN(T) ? "" : ce(T, z), r.set(n, a, T), (ae || ee || A.errorvalue) && (ae || r.set(0, a + 1, "Error"), N = 1, r.set(n, a + 1, ce(A.errorvalue))), l += 1) } N && (a += N, N = 0), a += 1 } g && (f = f.slice(0, -g.length)), p && (f = f.slice(0, -p.length)) } else if (f = Y.data) { for (r.set(0, 1, J.yaxisname || "Value"), ue.singleseries = !0, le = "1" == J.showsumatend, o = 0, v = f.length; o < v && (!X || !W); o += 1)(A = f[o]).vline || (T = _(Q(A.value ? A.value : "")), U = [A.label || A.name, isNaN(T) ? "" : (me += T, ce(T))], A.id && A.parent ? (X = !0, W = !0) : A.parent ? X = !0 : A.id ? W = !0 : r.setRow(o + 1, U)); if (X && W) return b({ chart: Y.chart, category: h(Y.data).category }); for (X ? r.setRow(0, ["Parent Id", J.xaxisname || "Label", "Value"]) : W && r.setRow(0, ["Id", J.xaxisname || "Label", "Value"]), v = (W || X) && f.length, o = 0; o < v; o++) A = f[o], T = _(Q(A.value ? A.value : "")), U = [A.label || A.name, isNaN(T) ? "" : (me += T, ce(T))], W ? r.setRow(o + 1, [A.id].concat(U)) : X && r.setRow(o + 1, [A.parent].concat(U));
                    le && (ue.summation = !0, r.setRow(o + 1, [J.sumlabel || "Total", ce(me)])) } if (se)
                    for (r.clear(), r.setRow(0, ["Open", "Close", "High", "Low", "Volume"]), o = 0, n = 1, m = (f = Y.dataset).length; o < m; o += 1)
                        for (s = 0, y = (C = f[o] && f[o].data || []).length; s < y; s += 1, n += 1) A = C[s] || {}, r.setRow(s + 1, [ce(A.open), ce(A.close), ce(A.high), ce(A.low), ce(A.volume)]);
                else if (ne) { for (r.clear(), ae = !1, N = 0, H = !1, G = 0, r.setRow(0, ["Series", "x", "y"]), o = 0, n = 1, m = (f = Y.dataset).length; o < m; o += 1)
                        if (!(K && (D = K.getDatasets()) && D[o] && !1 === D[o].visible))
                            for (s = 0, y = (C = f[o] && f[o].data || []).length; s < y; s += 1, n += 1)(A = C[s] || {}).name && !H && (N ? r.setRow(0, ["Series", "Name", "x", "y", "z"]) : r.setRow(0, ["Series", "Name", "x", "y"]), H = !0, G = s), T = H ? [f[o].seriesname, ce(A.name), ce(A.x), ce(A.y)] : [f[o].seriesname, ce(A.x), ce(A.y)], A.z !== u && (T.push(ce(A.z)), N || (H ? r.setRow(0, ["Series", "Name", "x", "y", "z"]) : r.setRow(0, ["Series", "x", "y", "z"]), N = 1)), (ae || ee || A.errorvalue !== u || A.horizontalerrorvalue !== u || A.verticalerrorvalue !== u) && (M = ce(A.errorvalue), T.push(A.errorvalue, A.horizontalerrorvalue === u ? M : ce(A.horizontalerrorvalue), A.verticalerrorvalue === u ? M : ce(A.verticalerrorvalue)), ae || (r.set(0, N + 3, "Error"), r.set(0, N + 4, "Horizontal Error"), r.set(0, N + 5, "Vertical Error")), ae = ue.error = !0), r.setRow(n, T); if (H)
                        for (n = 1, s = 0; s < G; s++, n++) A = C[s] || {}, T = [f[o].seriesname, ce(A.name), ce(A.x), ce(A.y)], A.z !== u && T.push(ce(A.z)), r.setRow(n, T) } else if (ie)
                    for (r.clear(), ae = !1, N = 0, f = Y && Y.links, r.setRow(0, ["from", "to", "value"]), s = 0; s < f.length; s += 1, n += 1) T = [(A = f[s] || {}).from, A.to, ce(A.value)], A.z !== u && (T.push(ce(A.z)), N || (r.set(0, 3, "z"), N = 1)), (ae || ee || A.errorvalue !== u || A.horizontalerrorvalue !== u || A.verticalerrorvalue !== u) && (M = ce(A.errorvalue), T.push(A.errorvalue, A.horizontalerrorvalue === u ? M : ce(A.horizontalerrorvalue), A.verticalerrorvalue === u ? M : ce(A.verticalerrorvalue)), ae || (r.set(0, N + 3, "Error"), r.set(0, N + 4, "Horizontal Error"), r.set(0, N + 5, "Vertical Error")), ae = ue.error = !0), r.setRow(n, T);
                else if (oe) { for (r.clear(), F = {}, I = {}, o = 0, s = 1, d = (te = Y.rows && Y.rows.row || []).length; o < d; o += 1, s += 1)(x = te[o]).id && (F[x.id.toLowerCase()] = s, r.set(s, 0, x.label || x.id)); for (o = 0, s = 1, d = (te = Y.columns && Y.columns.column || []).length; o < d; o += 1, s += 1)(x = te[o]).id && (I[x.id.toLowerCase()] = s, r.set(0, s, x.label || x.id)); for (C = Y.dataset && Y.dataset[0] && Y.dataset[0].data || [], j = K && (D = K.getDatasets()) && D[0] && D[0].components && D[0].components.data || [], o = 0, d = C.length; o < d; o += 1) n = (A = C[o]).rowid.toLowerCase(), a = A.columnid.toLowerCase(), j[o] && !1 === j[o].visible || (F[n] || (F[n] = r.rowCount, r.set(r.rowCount, 0, A.rowid)), I[a] || (I[a] = r.columnCount, r.set(0, r.columnCount, A.columnid)), r.set(F[n], I[a], ce(A.value))) } else if (pe) { var be, ye, xe, we, Ce, _e, ke = ["Task name", "Start date", "End date", Y.processes.headertext || "Process name"],
                        Se = {};
                    ge && ge.forEach((function(e, t) { ke.push(e.headertext && e.headertext.replace(/{br}/g, " ") || "DataColumn " + t) })), r.setRow(0, ke), de.forEach((function(e, t) { e.processid ? (we = fe.filter((function(t, r) { return t.id === e.processid && (Ce = r), t.id === e.processid }))[0], be = we.label || we.name || "") : (Ce = t, be = fe[t] && (fe[t].label || fe[t].name) || ""), xe = e.start || "", _e = e.end || "", ye = e.label || e.name || "Task " + t, Se = { taskName: ye, taskStart: xe, taskEnd: _e, processName: be }, ge && ge.forEach((function(e, t) { Se["datacolumn" + t] = e.text[Ce].label || "" })), Object.keys(Se).forEach((function(e, n) { r.set(t + 1, n, Se[e]) })) })) } for (p = null, g = null, te = null, f = null, r.rowCount > 0 && r.get(0, 0) === u && r.set(0, 0, J.xaxisname || "Label"), o = 1; o < r.rowCount; o++)
                    if (r.data[o][0] !== u) { $ = 1; break } if (!$ && ue.multiseries) { var Ee = []; for (o = 0; o < r.rowCount; o++)
                        for (Ee.push([]), s = 1; s < r.data[o].length; s++) Ee[o][s - 1] = r.data[o][s]; for (o = 1; o < r.data[0].length; o++) Ee[0][o - 1] === u && (Ee[0][o - 1] = "Value");
                    r.data = Ee } return { data: r.toString(), error: u, predictedFormat: ue } }, f = function(e, t) { return (0, i.raiseError)(t, "0604111215", "run", "csvToJson()", "fusionCharts CSV data-handler only supports encoding of data."), e }; var T = { extension: function(e) { return e && (c = e, e.prototype.getDataAsCSV = A, e.prototype.getCSVData = E), { format: "csv", toJSON: f, fromJSON: d } }, name: "csv", type: "transcoder", requiresFusionCharts: !0 };
            t["default"] = T }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = function(e) { return Array.isArray(e) } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(222),
                a = r(279);

            function i(e, t, r, i, o) {
                (0, n.triggerEvent)("dataLoadRequested", o, { source: a.sourceName, url: e, dataFormat: "json", silent: !!i, config: t, successcallback: r }, void 0, a.onDataLoadRequest, a.onDataLoadRequestCancel) }

            function o(e) { this.setChartDataUrl(e, "jsonurl") } var s = { extension: function(e) { return e && (e.prototype.setJSONUrl = o), { format: "jsonurl", toJSON: i } }, name: "JSONUrl", type: "transcoder", requiresFusionCharts: !0 };
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.onDataLoadRequest = function(e, t) { var r = e.sender,
                    n = r.__state,
                    i = t.url;
                r.options.dataSource = t.url, n.dhmXhrObj || (n.dhmXhrObj = new a["default"](l, c));
                n.dhmXhrObj.get("function" == typeof window.decodeURIComponent ? window.decodeURIComponent(i) : window.unescape(i), { obj: r, args: t }) }, t.onDataLoadRequestCancel = function(e, t) { var r = e.sender,
                    n = r.__state;
                (0, i.triggerEvent)("dataLoadRequestCancelled", r, t), n && n.dhmXhrObj && n.dhmXhrObj.abort() }, t.sourceName = void 0; var a = n(r(280)),
                i = r(222);

            function o(e, t) { e.sender.jsVars.stallLoad = !1, e.sender.setChartData(t.dataSource, t.dataFormat, t.config, t.successcallback, t.silent) }

            function s(e, t) {
                (0, i.triggerEvent)("dataLoadCancelled", e.sender, t), t.xmlHttpRequestObject.abort() }

            function l(e, t, r, n) { var a = r.args;
                a.dataSource = e, a.xmlHttpRequestObject = t, a.source = "XmlHttpRequest", a.url = n, (0, i.triggerEvent)("dataLoadRequestCompleted", r.obj, a, void 0, o, s) }

            function c(e, t, r) { var n = r.obj,
                    a = r.args;
                a.error = e, a.httpStatus = t.xmlhttp && t.xmlhttp.status ? t.xmlhttp.status : -1, a.xmlHttpRequestObject = t, n._addChartDependency("data", { resolve: function() { return { state: 1, msg: n.options.dataLoadErrorMessage, msgStyle: { image: { imageHAlign: n.args.dataLoadErrorMessageImageHAlign || n.options.baseChartMessageImageHAlign, imageVAlign: n.args.dataLoadErrorMessageImageVAlign || n.options.baseChartMessageImageVAlign, imageAlpha: n.args.dataLoadErrorMessageImageAlpha || n.options.baseChartMessageImageAlpha, imageScale: n.args.dataLoadErrorMessageImageScale || n.options.baseChartMessageImageScale }, message: { color: n.args.dataLoadErrorMessageColor || n.options.baseChartMessageColor, fontFamily: n.args.dataLoadErrorMessageFont || n.options.baseChartMessageFont, fontSize: n.args.dataLoadErrorMessageFontSize || n.options.baseChartMessageFontSize } } } } }), n._setState(), (0, i.triggerEvent)("dataLoadError", n, a) } t.sourceName = "XmlHttpRequest" }, function(e, t, r) { "use strict";
            (function(e) { t.__esModule = !0, t["default"] = void 0; var n = r(222),
                    a = r(215),
                    i = window,
                    o = parseFloat(i.navigator.appVersion.split("MSIE")[1]),
                    s = !!(o >= 5.5 && o <= 7),
                    l = "file:" === i.location.protocol,
                    c = i.ActiveXObject,
                    u = (!c || !l) && i.XMLHttpRequest,
                    d = { objects: 0, xhr: 0, requests: 0, success: 0, failure: 0, idle: 0 },
                    f = function() { var e; if (u) return (f = function() { return d.xhr++, new u })(); try { e = new c("Msxml2.XMLHTTP"), f = function() { return d.xhr++, new c("Msxml2.XMLHTTP") } } catch (t) { try { e = new c("Microsoft.XMLHTTP"), f = function() { return d.xhr++, new c("Microsoft.XMLHTTP") } } catch (r) { e = !1 } } return e },
                    h = function() {
                        function t(e, t) { this.onSuccess = e, this.onError = t, this.open = !1, d.objects++, d.idle++ } t.stats = function(e) { return e ? d[e] : (0, a.extend2)({}, d) }; var r = t.prototype; return r.transact = function(r, o, c, u) { var h, g, p = this,
                                m = p.xmlhttp,
                                v = t.headers,
                                b = p.onError,
                                y = p.onSuccess,
                                x = "POST" === r,
                                w = Object.prototype.hasOwnProperty; - 1 !== o.search(/^(http:\/\/|https:\/\/)/) && i.location.hostname !== /(http:\/\/|https:\/\/)([^\/\:]*)/.exec(o)[2] ? delete v["X-Requested-By"] : !w.call(v, "X-Requested-By") && (v["X-Requested-By"] = "FusionCharts"), (!m || s || a.isFirefox) && (m = f(), p.xmlhttp = m), m.onreadystatechange = function() { try { 4 === m.readyState && (!m.status && l || m.status >= 200 && m.status < 300 || 304 === m.status || 1223 === m.status || 0 === m.status ? (y && y(m.responseText, p, u, o), d.success++) : b && (b(new Error("XmlHttprequest Error"), p, u, o), d.failure++), d.idle--, p.open = !1) } catch (e) { b && b(e, p, u, o), i.FC_DEV_ENVIRONMENT && setTimeout((function() { throw e }), 0), d.failure++ } }; try { if (m.open(x ? "POST" : "GET", o, !0), m.overrideMimeType && m.overrideMimeType("text/plain"), x)
                                    if ("string" == typeof c) h = c;
                                    else { for (g in h = [], c) h.push(g + "=" + (c[g] + "").replace(/\=/g, "%3D").replace(/\&/g, "%26"));
                                        h = h.join("&") } else h = null; for (g in v) m.setRequestHeader(g, v[g]);
                                m.send(h), d.requests++, d.idle++, p.open = !0 } catch (C) {
                                (0, n.raiseError)(e.core, "1110111515A", "run", "XmlHttprequest Error", C.message) } return m }, r.get = function(e, t) { return this.transact("GET", e, void 0, t) }, r.post = function(e, t, r) { return this.transact("POST", e, t, r) }, r.abort = function() { var e = this.xmlhttp; return this.open = !1, e && "function" == typeof e.abort && e.readyState && 0 !== e.readyState && e.abort() }, r.dispose = function() { var e = this; return e.open && e.abort(), delete e.onError, delete e.onSuccess, delete e.xmlhttp, delete e.open, d.objects--, null }, t }();
                h.headers = { "If-Modified-Since": "Sat, 29 Oct 1994 19:43:31 GMT", "X-Requested-With": "XMLHttpRequest", "X-Requested-By": "FusionCharts", Accept: "text/plain, */*", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }; var g = h;
                t["default"] = g }).call(this, r(6)) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(222),
                a = r(279);

            function i(e, t, r, i, o) { void 0 === e && (e = ""), void 0 === t && (t = {}), (0, n.triggerEvent)("dataLoadRequested", o, { source: a.sourceName, url: e, dataFormat: "xml", silent: !!i, config: t, successcallback: r }, void 0, a.onDataLoadRequest, a.onDataLoadRequestCancel) }

            function o(e) { this.setChartDataUrl(e, "xmlurl") }

            function s() {
                (0, n.raiseWarning)(this, "11171116293", "run", "JavaScriptRenderer~setDataURL()", 'Use of deprecated "setDataURL()". Replace with "setXMLUrl()".'), this.setXMLUrl.apply(this, arguments) } var l = { extension: function(e) { return e && (e.prototype.setXMLUrl = o), e && (e.prototype.setDataURL = s), { format: "xmlurl", toJSON: i } }, name: "XMLUrl", type: "transcoder", requiresFusionCharts: !0 };
            t["default"] = l }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(215),
                a = ["series", "styledefinition"]; var i = { extension: function(e) { e.addEventListener("beforedataupdate", (function(e, t) { t.data = function r(e, t) { void 0 === t && (t = !1); var i = typeof e; if ("string" === i || "number" === i || "function" === i || "boolean" === i) return e; if (null === e || e === n.UNDEF) return e; if (Array.isArray(e)) { for (var o = [], s = 0; s < e.length; s++) o.push(r(e[s])); return o } if ("object" == typeof e) { var l = {}; for (var c in e) { var u = t ? c : c.toLowerCase(); "data" !== u ? l[u] = r(e[c], a.includes(u)) : e[c] && e[c]._dataStore ? l[u] = e[c] : l[u] = r(e[c]) } return l } }(t.data) })) }, name: "IgnoreCaseExt", type: "extension", requiresFusionCharts: !0 };
            t["default"] = i }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(223),
                s = r(222);

            function l(e, t) { var r; if ("undefined" == typeof Symbol || null == e[Symbol.iterator]) { if (Array.isArray(e) || (r = function(e, t) { if (!e) return; if ("string" == typeof e) return c(e, t); var r = Object.prototype.toString.call(e).slice(8, -1); "Object" === r && e.constructor && (r = e.constructor.name); if ("Map" === r || "Set" === r) return Array.from(e); if ("Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return c(e, t) }(e)) || t && e && "number" == typeof e.length) { r && (e = r); var n = 0; return function() { return n >= e.length ? { done: !0 } : { done: !1, value: e[n++] } } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } return (r = e[Symbol.iterator]()).next.bind(r) }

            function c(e, t) {
                (null == t || t > e.length) && (t = e.length); for (var r = 0, n = new Array(t); r < t; r++) n[r] = e[r]; return n } var u, d = /\s+!important$/,
                f = /\\!important$/,
                h = function(e, t) { var r, n, a = t; for (n in a = (a + "").toLowerCase(), e)
                        if (e.hasOwnProperty(n) && a === (n + "").toLowerCase()) { r = e[n]; break } return r },
                g = function(e) { var t, r; for (t = 0, r = e.length; t < r; t++)
                        if ("function" == typeof e[t]) return !0; return !1 },
                p = function(e) { var t, r = []; for (t in e) r[t] = e[t]; return r },
                m = function(e) { return e.replace(/^\s\s*/, "").replace(/\s\s*$/, "") },
                v = function(e) { var t, r = {}; for (var n in e) e.hasOwnProperty(n) && (r[(t = e[n]).name] = t); return r },
                b = function(e, t) { for (var r = t.length, n = -1; r--;)
                        if (e === t[r]) return n = r; return n },
                y = function(e, t, r, n) { void 0 === n && (n = null); var a = e; return "object" != typeof a && "object" != typeof t ? null : ("object" != typeof t || null === t || ("object" != typeof a && (a = t instanceof Array ? [] : {}), function i(e, t, r, n, a, o) { var s, l, c, u, d, f = a,
                            h = o; if (h ? (f.push(e), h.push(t)) : (f = [e], h = [t]), t instanceof Array)
                            for (s = 0; s < t.length; s += 1) { try { l = e[s], c = t[s] } catch (g) { continue } "object" != typeof c ? r && void 0 === c || (e[s] = c) : (null !== l && "object" == typeof l || (l = e[s] = c instanceof Array ? [] : {}), -1 !== (d = b(c, h)) ? l = e[s] = f[d] : i(l, c, r, n, f, h)) } else
                                for (s in t) { try { l = e[s], c = t[s] } catch (g) { continue } null !== c && "object" == typeof c ? "[object Object]" === (u = Object.prototype.toString.call(c)) ? (null !== l && "object" == typeof l || (l = e[s] = {}), -1 !== (d = b(c, h)) ? l = e[s] = f[d] : "data" === s && c._dataStore ? e[s] = n ? n(l, c) : c : i(l, c, r, n, f, h)) : "[object Array]" === u ? (null !== l && l instanceof Array || (l = e[s] = []), -1 !== (d = b(c, h)) ? l = e[s] = f[d] : i(l, c, r, n, f, h)) : e[s] = n ? n(l, c) : c : e[s] = n ? n(l, c) : c }
                        return e }(a, t, r, n)), a) },
                x = function(e) { var t = e,
                        r = { important: !1, str: "" }; return t ? (t = t.toString(), d.test(t) ? (t = t.replace(d, ""), r.important = !0) : (t = t.replace(f, "!imporant"), r.important = !1), r.str = t, r) : r },
                w = function(e, t) { var r = x(e),
                        n = x(t); return r.important && !n.important ? r.str : n.str },
                C = function(e, t) { var r, n, a, i, o, s = t.getAll(); for (r in s) n = r.toLowerCase(), a = s[r].toString(), i = x(a), o = x(e[n]), i.important && !o.important ? e[n] = i.str : o.important ? e[n] = o.str : void 0 === e[n] && "object" != typeof s[r] ? e[n] = "object" != typeof s[r] ? i.str : s[r] : "object" == typeof s[r] && ("undefined" == typeof e[n] && (e[n] = s[r]), e[n] = y(s[r], e[n], !1, w)) },
                _ = function A(e, t) { for (var r, n, a, i, o, s, c, u, d, f, h = 0, m = 0, v = function(e, t) { for (var r, n, a = [].concat(Object.keys(e)), i = l(t.themeArray); !(n = i()).done;) r = n.value, a.push.apply(a, Object.keys(r)); return Array.from(new Set(a)) }(e, t), b = l(v); !(f = b()).done;)
                        if (void 0 === (n = e[r = f.value]) && (n = e[r] = {}), u = "timeseries" === t.type && t.themeComponents[r] && g(t.themeComponents[r]), n instanceof Array && !u)
                            for (s = n.length, o = 0; o < s; o += 1) "object" == typeof(i = n[o]) && ("category" === r ? "true" === i.vline ? (a = t.component("vline", h, i)) && (C(i, a), h += 1) : (a = t.component("category", m, i, s)) && (C(i, a), m += 1) : (a = t.component(r, o, i, s)) && (C(i, a), A(i, a)));
                        else if ("object" == typeof n)
                        if (u)
                            if (d = (a = t.component(r, null, n)).getAll(), e[r] = d, /^\d+$/.test(Object.keys(d).join("")))
                                for (d = p(d), e[r] = d, c = 0; c < e[r].length; c++) A(e[r][c], a);
                            else A(n, a);
                    else(a = t.component(r, null, n)) && (C(n, a), A(n, a)) },
                k = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.configure = function() {!this.config.themeStore && (this.config.themeStore = {}) }, r.add = function(e) { for (var t, r = 0, n = e.length; r < n; r += 1)(t = e[r].name) && (this.config.themeStore[t] = e[r]) }, r.themify = function(e, r, n, a, i) { var l, c, u = r.jsVars,
                            d = e.split(","),
                            f = [],
                            h = d.length; if (this.config.themeStore = v((0, o.getDepsByType)("theme")), h) { for (c = 0; c < h; c += 1)(l = this.config.themeStore[m(d[c])]) && f.push(t.evaluateThemeJSON(l.theme, r, n, i));
                            f.length ? (u.themeObject = new S(f, r, !1, a, n), t.applyTheme(r)) : (0, s.raiseWarning)(r, "14051100501", "run", "api.themes~themify()", 'The theme "' + e + '" requested has not been registered.') } }, t.evaluateThemeJSON = function(e, t, r, n) { var a, i, o = {},
                            s = t.jsVars,
                            l = r,
                            c = function(e) { var t, r; for (t in e) r = e[t], o[t] = r instanceof Array ? y(o[t] || [], r) : "object" == typeof r ? y(o[t] || {}, r) : r }; return l = l || t.chartType(), s.themeObject && e !== s.themeObject && (s.themeObject.dispose(), delete s.themeObject), c(h(e, "base")), n && (a = h(e, n)), a && c(a), l && (i = h(e, l)), i && c(i), o }, t.applyTheme = function(e) { var t = e.jsVars.themeObject,
                            r = t.getThemedJSONData().data;
                        r && _(r, t) }, t }(i.ComponentInterface),
                S = function(e) {
                    function t(t, r, n, a, i) { var o, s, l = 0; for ((o = e.call(this) || this).themeArray = t, o.themeComponents = {}, o.base = {}, o.type = i, o.chartInstance = r, o.isChildInstance = Boolean(n), o.themedData = n ? null : a, o.length = t.length, s = t.length; l < s; l += 1) o.parse(t[l]); return o }(0, a["default"])(t, e); var r = t.prototype; return r.pushTheme = function(e, t) { void 0 === t && (t = !1), e && (this.themeArray.push(e), this.parse(e, t), this.length += 1) }, r.parse = function(e, t) { var r, n; if (e instanceof Array)
                            for (r = e.length, n = 0; n < r; n++) this._parseSubBlock(e[n], t);
                        else this._parseSubBlock(e, t) }, r._parseSubBlock = function(e, r) { var n, a, i, o, s = this,
                            l = s.base,
                            c = s.type,
                            u = s.themeComponents,
                            d = s.chartInstance,
                            f = s.isChildInstance; for (n in e) "string" == typeof e[n] || "number" == typeof e[n] ? l[n] ? (a = x(e[n]), i = x(l[n]), !a.important && i.important || (l[n] = e[n])) : l[n] = e[n] : "timeseries" === c && f ? e[n] instanceof Array && "palettecolors" !== n && !r ? (u[n] || (u[n] = []), u[n].push(y([], e[n]))) : ("object" == typeof e[n] || r) && (l[n] = e[n]) : (u[n] || (u[n] = []), o = u[n], e[n] instanceof Array ? o.push(y([], e[n])) : "object" == typeof e[n] ? o.push(new t([e[n]], d, !0, {}, c)) : "function" == typeof e[n] && o.push(e[n])) }, r.mergeWithThemeInstance = function(e) { var t, r, n, a = this.base,
                            i = e.base,
                            o = this.themeComponents,
                            s = e.themeComponents; for (n in i) t = x(a[n]), r = x(i[n]), t.important && !r.important || (a[n] = i[n]); for (n in s) o[n] ? o[n] = o[n].concat(s[n]) : o[n] = [].concat(s[n]);
                        this.length += e.length }, r.get = function(e) { return this.base[e] }, r.getAll = function() { return y({}, this.base) }, r.component = function(e, r, n, a) { var i, o, s, l, c = this.chartInstance,
                            u = new t([], c, !0, {}, this.type); if (!(s = this.themeComponents[e])) return null; for (i = 0, o = s.length; i < o; i += 1) "function" == typeof(l = s[i]) ? "timeseries" !== this.type ? u.mergeWithThemeData(l.call(c, r, n, a), r || 0, n) : u.mergeWithThemeData(l.call(c, n), r, n, !0) : u.mergeWithThemeData(l, r, n); return u }, r.mergeWithThemeData = function(e, r, n, a) { void 0 === a && (a = !1); var i, o = this,
                            s = r;
                        e instanceof Array ? (s = s || 0, (i = e[s %= e.length]) instanceof t ? o.mergeWithThemeInstance(i) : "function" == typeof i ? o.pushTheme(i.call(parent, s, n, length), a) : o.pushTheme(i, a)) : e instanceof t ? o.mergeWithThemeInstance(e) : o.pushTheme(e, a) }, r.getThemedJSONData = function() { return { data: this.themedData } }, r.dispose = function() { var e, t, r = this,
                            n = r.themeComponents; for (e in n)
                            if (t = n[e].length) { for (; t--;) n[e][t].dispose && n[e][t].dispose();
                                delete n[e] } r.themeComponents = null, r.chartInstance = null, r.base = null, r.themeArray = null, r.isChildInstance = null, r.dataWithoutTheme = null }, t }(i.ComponentInterface);
            (u = new k).configure(); var E = { extension: function(e) { e.addEventListener("internal.dataSanitized", (function(t) { var r, n, a, i = t.sender,
                            s = i.getFromEnv("chartInstance"),
                            l = v((0, o.getDepsByType)("theme")),
                            c = i.getFromEnv("dataSource"),
                            d = e.options.defaultTheme,
                            f = c && (c.chart && c.chart.theme || c.map && c.map.theme),
                            h = (d || f) && (d || "") + "," + (f || ""),
                            g = h && h.split(","),
                            p = g && g.length,
                            b = !1; for (n = 0; n < p; n++) a = m(g[n]), l && "" !== a && l.hasOwnProperty(a) && (b = !0);
                        b ? (c = y({}, i.getFromEnv("dataSource")), r = s.chartType(), c.map && (c.chart = c.map, delete c.map), u.themify(h, s, r, c, "geo" === s.apiInstance.defaultSeriesType && "geo"), i.addToEnv("dataSource", c)) : s.jsVars && s.jsVars.themeObject && (s.jsVars && s.jsVars.themeObject.dispose(), s.jsVars && delete s.jsVars.themeObject) })) }, name: "ThemeEngine", type: "extension", requiresFusionCharts: !0 };
            t["default"] = E }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(215),
                a = { extension: { name: "default", theme: { base: { chart: { labelDisplay: "stagger !important", caption: "Theme Caption \\!important", canvasBgColor: "#56EF22", borderThickness: "5 !important", borderColor: "#E60539", baseFontColor: "#781129" }, categories: [{ fontColor: "#0F4F40", fontSize: 15, category: function(e) { return { showLabel: e % 2 ? 0 : 1 } }, vline: { color: "#000000", thickness: 2 } }], dataset: [{ color: "#8C3146", data: function(e, t) { return 8 === e && (t.value = n.BLANKSTRING), { color: Number(t.value) < 32e3 ? "#8C3146" : "#FF0000", alpha: "100" } } }], trendlines: [{ line: function(e) { return e ? { color: "#ff0000", thickness: 3 } : { color: "#ffff00", thickness: 3 } } }] }, pie2d: { chart: { bgColor: "#FF0000" } }, msline: { chart: { canvasBgColor: "#ff0000" } }, geo: { chart: { canvasBgColor: "#0000ff" } }, world: { chart: { canvasBgColor: "#00ff00" } } } }, name: "DefaultTheme", type: "theme" };
            /** !
             * @license FusionCharts JavaScript Library
             * Copyright FusionCharts, Inc.
             * License Information at <http://www.fusioncharts.com/license>
             */
            t["default"] = a }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a, i = r(215),
                o = n(r(286)),
                s = r(227),
                l = /^#?[0-9a-f]{6}/i,
                c = /FFFFFF/i,
                u = /255,255,255/,
                d = function(e) { var t = e.replace("rgba(", "").split(","); return "#" + ("000000" + (t[0] << 16 | t[1] << 8 | t[2]).toString(16)).slice(-6) },
                f = function(e, t) { var r, n, a = []; if ("number" == typeof e) return t; for (n = e.split && e.split(","), r = 0; r < n.length; r++) a.push(t); return a.join() },
                h = function(e) { var t; return /rgb/.test(e) ? (t = e.match(/[\d\.]+\)/g), parseFloat(t && t[0])) : e.FCcolor ? (0, i.getFirstAlpha)(e.FCcolor.alpha) : void 0 },
                g = function(e, t, r, n, a) { var o, s, l, c, u, f;
                    o = d(n.color), l = 100 * h(n.color), s = a ? (0, i.pluck)(r.valuefontcolor, o) : o, c = a ? (0, i.pluck)(r.valuefontalpha, r.alpha, l) : l, o = "" === n.backgroundColor ? "" : d(n.backgroundColor), l = "" === n.backgroundColor ? 0 : 100 * h(n.backgroundColor), isNaN(l) && (l = 0), u = (0, i.toRaphaelColor)({ color: a ? (0, i.pluck)(r.valuebgcolor, o) : o, alpha: a ? (0, i.pluck)(r.valuebgalpha, r.alpha, l) : l }), o = "" === n.borderColor ? "" : d(n.borderColor), l = "" === n.borderColor ? "" : 100 * h(n.borderColor), isNaN(l) && (l = 0), f = (0, i.toRaphaelColor)({ color: a ? (0, i.pluck)(r.valuebordercolor, o) : o, alpha: a ? (0, i.pluck)(r.valueborderalpha, r.alpha, l) : l }), t && e.setAnimation({ el: t, label: "highlightedDataLabel", attr: { fill: (0, i.toRaphaelColor)({ color: s, alpha: c }), "text-bound": [u, f, n.borderThickness, n.borderPadding, n.borderRadius, n.borderDash] } }) },
                p = function(e) { var t, r, n, a, i, o = e.split(","),
                        s = {}; for (t = 0, r = o.length; t < r; t++) a = (n = o[t].split("="))[0], i = n[1], s[a] = i; return s },
                m = function(e, t, r) { var n, a, o = t.color; return /rgb/.test(e) ? (n = (0, i.pluck)(t.alpha, 100 * h(e)), /rgb/.test(o) && (o = d(o)), a = r ? (0, i.toRaphaelColor)({ color: (0, i.pluck)(o, d(e)), alpha: n }) : e) : e.FCcolor ? a = r ? (0, i.toRaphaelColor)(function(e, t) { var r, n, a = {}; for (r in e) "alpha" === r ? a[r] = t.alpha ? f(e[r], t.alpha) : e[r] : "color" === r ? (-1 !== e[r].indexOf(",") && t.color && (n = t.color + "," + e[r].substring(e[r].indexOf(",") + 1)), a[r] = (0, i.pluck)(n || t.color, e[r])) : a[r] = e[r]; return a }(e.FCcolor, t)) : (0, i.toRaphaelColor)(e.FCcolor) : l.test(e.color || e) && (a = r ? (0, i.toRaphaelColor)({ color: (0, i.pluck)(t.color, e.color, e), alpha: (0, i.pluck)(t.alpha, e.alpha) }) : (0, i.toRaphaelColor)({ color: e.color || e, alpha: e.alpha })), a },
                v = function(e, t, r, n, a, o) { var s, l, c, u, f, g, p, v, b = {},
                        y = {};
                    a ? (s = (0, i.getColumnColor)(n.color || r.upperColorArr[0].FCcolor.color, n.alpha.toString(), r.upperColorArr[0].FCcolor.ratio, r.upperColorArr[0].FCcolor.angle, o, n.bordercolor || d(r.upperBoxBorder.color), n.borderalpha && n.borderalpha.toString() || (100 * h(r.lowerBoxBorder.color)).toString()), y = (0, i.toRaphaelColor)(s[0]), l = (0, i.getColumnColor)(n.color || r.lowerColorArr[0].FCcolor.color, n.alpha.toString(), r.lowerColorArr[0].FCcolor.ratio, r.lowerColorArr[0].FCcolor.angle, o, n.bordercolor || d(r.lowerBoxBorder.color), n.borderalpha && n.borderalpha.toString() || (100 * h(r.lowerBoxBorder.color)).toString()), b = (0, i.toRaphaelColor)(l[0]), c = m(r.median.color, n, a), g = m(r.lowerQuartile.color, n, a), p = m(r.upperQuartile.color, n, a)) : (y = (0, i.toRaphaelColor)(r.upperColorArr[0]), b = (0, i.toRaphaelColor)(r.lowerColorArr[0]), c = r.median.color, u = r.upperBoxBorder.color, f = r.lowerBoxBorder.color, p = r.upperQuartile.color, g = r.lowerQuartile.color), v = t.upperBoxElem, e.setAnimation({ el: v, label: "highlightedBoxAnsWhiskerPlot", attr: { fill: y, "drop-shadow": v.attrs["drop-shadow"] && "none" !== v.attrs["drop-shadow"] ? [1, 1, 3, "rgba(64,64,64," + h(y) + ")", v.attrs[4], v.attrs["drop-shadow"][5]] : "none" } }), v = t.lowerBoxElem, e.setAnimation({ el: v, label: "highlightedBoxAnsWhiskerPlot", attr: { fill: b, "drop-shadow": v.attrs["drop-shadow"] && "none" !== v.attrs["drop-shadow"] ? [1, 1, 3, "rgba(64,64,64," + h(b) + ")", v.attrs[4], v.attrs["drop-shadow"][5]] : "none" } }), v = t.lowerBoxBorderEle, e.setAnimation({ el: v, label: "highlightedBoxAnsWhiskerPlot", attr: { stroke: f } }), t.upperBoxBorderEle && e.setAnimation({ el: t.upperBoxBorderEle, label: "highlightedBoxAnsWhiskerPlot", attr: { stroke: u } }), t.lowerQuartileEle && e.setAnimation({ el: t.lowerQuartileEle, label: "highlightedBoxAnsWhiskerPlot", attr: { stroke: g } }), t.upperQuartileEl && e.setAnimation({ el: t.upperQuartileEl, label: "highlightedBoxAnsWhiskerPlot", attr: { stroke: p } }), t.midLineElem && e.setAnimation({ el: t.midLineElem, label: "highlightedBoxAnsWhiskerPlot", attr: { stroke: c } }) },
                b = function(e, t, r) { var n, a, o, s, l, c, u, d, f, h = e.getFromEnv("chart"),
                        p = e.getFromEnv("animationManager"),
                        m = (h.config, h.config.dataLabelStyle),
                        v = e.components.data; for (n = 0, a = v.length; n < a; n++)
                        if (u = v[n])
                            for (c in o = u.graphics, f = (s = u.config.anchorProps).enabled, l = { fillColor: { FCcolor: { alpha: r && f ? (0, i.pluck)(t.anchorbgalpha, t.alpha, s.bgAlpha) : s.bgAlpha, color: r && f ? (0, i.pluck)(t.anchorbgcolor, t.color, s.bgColor) : s.bgColor } }, borderColor: { FCcolor: { alpha: r && f ? (0, i.pluck)(t.borderalpha, t.alpha, s.borderAlpha) : s.borderAlpha, color: r && f ? (0, i.pluck)(t.anchorbordercolor, t.color, s.borderColor) : s.borderColor } }, imageAlpha: r ? t.alpha : s.imageAlpha, imageScale: s.imageScale }, o) switch ((d = !c.match(/error/gi) && o[c]) && d.type) {
                                case "path":
                                    p.setAnimation({ el: d, label: "highlightedAnchorPlot", attr: { fill: (0, i.toRaphaelColor)(l.fillColor), stroke: (0, i.toRaphaelColor)(l.borderColor) } }); break;
                                case "image":
                                    p.setAnimation({ el: d, label: "highlightedAnchorImagePlot", attr: { opacity: l.imageAlpha / 100 } }); break;
                                case "text":
                                    g(p, d, t, m, r) } },
                y = function(e, t, r, n, a) { var o, s = e.getStateCosmetics("default").symbol || {},
                        f = s.fill,
                        h = s.stroke,
                        g = a ? (0, i.pluck)(n.color, d(r.text.fill)) : d(r.text.fill),
                        p = t.legendItemLine,
                        v = r.symbol.stroke,
                        b = e.getFromEnv("animationManager");
                    p && v && (l.test(v) ? b.setAnimation({ el: p, label: "highlightedLegendItem", attr: { stroke: a ? (0, i.toRaphaelColor)({ color: (0, i.pluck)(n.color, v), alpha: n.alpha }) : v } }) : (o = m(v, n, a), b.setAnimation({ el: p, label: "highlightedLegendItem", attr: { stroke: o } }))), f && (f = f.match(l) ? a && !c.test(f) ? (0, i.toRaphaelColor)({ color: n.color || f, alpha: n.alpha }) : f : u.test(f) ? f : m(f, n, a)), h && (h = l.test(h) ? a && !c.test(h) ? (0, i.toRaphaelColor)({ color: n.color || h, alpha: n.alpha }) : h : a && !u.test(h) && n.color ? (0, i.toRaphaelColor)({ color: n.color, alpha: n.alpha }) : h), e.setStateCosmetics("highlight", { symbol: { fill: f || "none", stroke: h || "none", opacity: (a ? n.alpha : 100) / 100 }, text: { fill: (0, i.toRaphaelColor)({ color: g, alpha: a ? n.alpha : 100 }) } }), e.hasState("hidden") || e.setLegendState("highlight", !0) },
                x = function(e, t) { var r = e.getFromEnv("legend").getItem(t); return r && r.getGraphicalElement() },
                w = { area: function(e, t, r) { var n, a, o, s, l, c, u, d, f, g, m, v, w, C, _, k = this,
                            S = k.getFromEnv("chart"),
                            E = k.getFromEnv("animationManager"),
                            A = S.getFromEnv("legend").getChildren("legendItem") || [],
                            T = arguments[4],
                            M = A.length,
                            N = p(e),
                            D = x(S, T),
                            F = S.config.dataLabelStyle,
                            I = k.getContainer("labelGroup"),
                            L = k.config,
                            O = L.shadow || {},
                            R = O.opacity > 0; if (!r && k.getState("visible")) { for (N.alpha = N.alpha || 30, a = 0; a < M && (n = A[a] || {}).getId() !== T; a++);
                            I && E.setAnimation({ el: I, label: "highlightedGroup", attr: { opacity: t ? N.alpha / 100 : h(F.color) } }), s = L.plotbordercolor, f = L.plotborderalpha, C = L.plotfillalpha, o = L.plotgradientcolor, v = k.getGraphicalElement("lineElement") || k.getGraphicalElement("splineElement"), u = t ? (0, i.pluck)(N.bordercolor, N.color, s) : s, N.color && (g = N.color + (o ? "," + o : "")), m = L.fillColor.color, l = t ? (0, i.pluck)(g, m) : m, w = L.plotfillangle, c = t ? N.alpha : C, d = t ? (0, i.pluck)(N.borderalpha, N.alpha) : f, _ = !!R && (t ? N.alpha / 100 : c / 100), E.setAnimation({ el: v, label: "highlightedAreaPlot", attr: { fill: (0, i.toRaphaelColor)({ color: l, alpha: c, angle: w }), stroke: (0, i.toRaphaelColor)({ color: u, alpha: d }) } }), v.shadow(_), D && y(n, D, n.parseLegendCosmetics(), N, t), b(k, N, t) } }, bubble: function(e, t, r) { var n, a, o, s, l, c, u, d, f, m, v, b, w = this,
                            C = w.getFromEnv("chart"),
                            _ = w.getFromEnv("animationManager"),
                            k = C.getFromEnv("legend").getChildren("legendItem") || [],
                            S = k.length,
                            E = arguments[4],
                            A = C.config.dataLabelStyle,
                            T = w.getContainer("labelGroup"),
                            M = p(e); if (!1 === r && w.getState("visible")) { for (M.alpha || (M.alpha = 30), o = w.components.data || [], a = 0; a < S && (n = k[a] || {}).getId() !== E; a++); for (y(n, x(C, E), n.parseLegendCosmetics(), M, t), T && _.setAnimation({ el: T, label: "highlightedGroup", attr: { opacity: t ? M.alpha / 100 : h(A.color) } }), a = 0, S = o.length; a < S; a++)(s = o[a]) && (v = s.graphics, c = (l = s.config).colorObj, d = l.is3D, u = v.element, b = v.label, d ? (m = t ? (0, i.getPointColor)((0, i.pluck)(M.color, c.FCcolor.color), (0, i.pluck)(M.alpha, (0, i.getFirstAlpha)(c.alpha))) : c, m = (0, i.toRaphaelColor)(m)) : (m = t ? (0, i.pluck)(M.color, c.color) : c.color, f = t ? M.alpha : c.alpha, m = (0, i.toRaphaelColor)({ color: m, alpha: f })), u && _.setAnimation({ el: u, label: "highlightedBubblePlot", attr: { fill: m } }), b && g(_, b, M, A, t)) } }, pie: function(e, t, r, n) { var a, s, l, c, u, d, f, m, v, b, w, C, _, k, S = this,
                            E = n.getFromEnv("chart"),
                            A = n.getFromEnv("animationManager"),
                            T = this,
                            M = {},
                            N = arguments[4],
                            D = E.getFromEnv("legend").getChildren("legendItem") || [],
                            F = p(e); if (!1 === r) { for (F.alpha || (F.alpha = 30), s = S.graphics.element, l = S.config, w = 0, b = D.length; w < b && (_ = D[w]).getId() !== N; w++);
                            C = x(E, N), y(_, C, _.parseLegendCosmetics(), F, t), u = l.color.color, E = (T = s.data("plotItem")).chart, a = T.style, c = 90, f = E.config.is3D, (d = T.center) && (M = { cx: d[0], cy: d[1], r: T.radius }), u = t ? (0, o["default"])((0, i.pluck)(F.color, u), F.alpha, c) : l.color, k = t ? F.alpha : u.alpha, u = (0, i.extend2)(u, M), f ? s && A.setAnimation({ el: s, label: "highlightedPiePlot", attr: { color: u.color.split(",")[0], alpha: k } }) : s && A.setAnimation({ el: s, label: "highlightedPiePlot", attr: { fill: (0, i.toRaphaelColor)(u) } }), m = S.graphics.label, v = S.graphics.connector, m && g(A, m, F, a, t), v && A.setAnimation({ el: v, label: "highlightedPieConnectorPlot", attr: { opacity: t ? F.alpha / 100 : h(a.color) } }) } }, line: function(e, t, r) { var n, a, o, s, l, c, u, d = this,
                            f = d.getFromEnv("chart"),
                            g = d.getFromEnv("animationManager"),
                            m = f.getFromEnv("legend").getChildren("legendItem") || [],
                            v = m.length,
                            w = arguments[4],
                            C = f.config.dataLabelStyle,
                            _ = p(e),
                            k = x(f, w),
                            S = d.getContainer("labelGroup"),
                            E = d.getContainer("errorPlotGroup"),
                            A = d.config,
                            T = A.linecolor,
                            M = A.alpha || A.lineAlpha,
                            N = A.shadow || {},
                            D = N.opacity > 0,
                            F = d.config.lineOb,
                            I = ""; if (!r && d.getState("visible")) { for (_.alpha || (_.alpha = 30), l = 0; l < v && (n = m[l] || {}).getId() !== w; l++); if (E && (a = A.errorBarColor && h(A.errorBarColor), o = t ? (0, i.pluck)(_.alpha / 100, a) : a, g.setAnimation({ el: E, label: "highlightedGroup", attr: { opacity: o } })), S && g.setAnimation({ el: S, label: "highlightedGroup", attr: { opacity: t ? _.alpha / 100 : h(C.color) } }), s = d.getGraphicalElement("lineElement"), T = t ? (0, i.pluck)(_.color, T) : T, M = t ? (0, i.pluck)(_.alpha, M) : M, c = !!D && (t ? _.alpha / 100 : M / 100), s && g.setAnimation({ el: s, label: "highlightedLinePlot", attr: { stroke: (0, i.toRaphaelColor)({ color: T, alpha: M }) } }), s && s.shadow(c), "object" == typeof F && F)
                                for (I in F)(u = F[I] && F[I].el) && g.setAnimation({ el: u, label: "highlightedLinePlot", attr: { stroke: t ? T : F[I].attr.stroke, "stroke-opacity": M / 100 } }), u && u.shadow(c);
                            k && y(n, k, n.parseLegendCosmetics(), _, t), b(d, _, t) } }, boxandwhisker2d: function(e, t, r) { var n, a, i, o, s, l, c = this,
                            u = c.getFromEnv("chart"),
                            d = c.getFromEnv("animationManager"),
                            f = c.config.isRoundEdges,
                            h = arguments[4],
                            g = x(u, h),
                            m = c.getContainer("lowerWhiskerGroup"),
                            b = c.getContainer("upperWhiskerGroup"),
                            w = c.getContainer("labelGroup"),
                            C = u.getFromEnv("legend").getChildren("legendItem") || [],
                            _ = C.length,
                            k = p(e); if (!1 === r && c.getState("visible")) { for (k.alpha || (k.alpha = 30), n = 0; n < _ && (a = C[n] || {}).getId() !== h; n++); for (y(a, g, a.parseLegendCosmetics(), k, t), m && d.setAnimation({ el: m, label: "highlightedGroup", attr: { opacity: t ? k.alpha / 100 : 1 } }), b && d.setAnimation({ el: b, label: "highlightedGroup", attr: { opacity: t ? k.alpha / 100 : 1 } }), w && d.setAnimation({ el: w, label: "highlightedGroup", attr: { opacity: t ? k.alpha / 100 : 1 } }), n = 0, _ = (l = c.components.data).length; n < _; n++) s = (o = l[n]).config, i = o.graphics, v(d, i, s, k, t, f) } }, heatmap: function(e, t, r, n) { var a, o, s, l, c, u, f, m, v, b, w, C = this,
                            _ = n.getFromEnv("chart"),
                            k = n.getFromEnv("animationManager"),
                            S = _.config,
                            E = S.dataLabelStyle,
                            A = _.getFromEnv("legend"),
                            T = arguments[4],
                            M = p(e),
                            N = A.getChildren("legendItem") || []; if (!r && n.getState("visible") && !1 !== C.visible) { for (M.alpha || (M.alpha = t ? 30 : 100), S = C.config, v = 0, m = N.length; v < m && (w = N[v]).getId() !== T; v++); for (u in b = x(_, T), y(w, b, w.parseLegendCosmetics(), M, t), c = d(S.color), l = h(S.color), a = t ? (0, i.pluck)(M.color, c) : c, o = t ? M.alpha : 100 * l, (s = (f = C.graphics).element) && k.setAnimation({ el: s, label: "highlightedHeatmapPlot", attr: { fill: (0, i.toRaphaelColor)({ color: a, alpha: o }) } }), f) "text" === (s = f[u]).type && g(k, s, M, E, t) } }, funnelpyramid: function(e, t, r, n) { var a, o, s, l, c, u, f, m, v, b, w, C, _, k, S, E = this,
                            A = n.getFromEnv("chart"),
                            T = n.getFromEnv("animationManager"),
                            M = p(e),
                            N = A.getFromEnv("legend").getChildren("legendItem") || [],
                            D = arguments[4]; if (!1 === r) { for (M.alpha || (M.alpha = 30), l = E, _ = 0, C = N.length; _ < C && (S = N[_]).getId() !== D; _++);
                            k = x(A, D), y(S, k, S.parseLegendCosmetics(), M, t), o = l.style, w = l.color, c = d(w), b = h(w), u = t ? (0, i.pluck)(M.color, c) : c, f = t ? M.alpha : 100 * b, s = E.getGraphicalElement("graphic"), m = E.getGraphicalElement("dataLabel"), v = E.getGraphicalElement("connector"), a = E.style, s && T.setAnimation({ el: s, label: "highlightedFunnelPyramidPlot", attr: { fill: (0, i.toRaphaelColor)({ color: u, alpha: f }) } }), m && g(T, m, M, a, t), v && T.setAnimation({ el: v, label: "highlightedFunnelPyramidConnectorPlot", attr: { opacity: t ? M.alpha / 100 : h(o.color) } }) } }, sankey: function(e, t, r) { var n, a, i = e.getLinkedParent(),
                            o = i.getChildren("legend")[0];
                        e.getChildren("nodes").forEach((function(e) { n = o.getItem(e.config.legendItemId), e.config.legendItemId === t ? (r ? e.onFocusCallback() : e.onFocusOutCallback(), a = !1) : a = !0, a = a && r, y(n, x(i, t), n.parseLegendCosmetics(), { alpha: 30 }, a) })) }, "default": function(e, t, r) { var n, a, o, s, l, c, u, d, f, m, v, b, w, C, _, k = this,
                            S = k.config,
                            E = k.getFromEnv("chart"),
                            A = k.getFromEnv("animationManager"),
                            T = E.config,
                            M = T.dataLabelStyle,
                            N = T.useroundedges,
                            D = E.config.is3D,
                            F = p(e),
                            I = arguments[4],
                            L = x(E, I),
                            O = k.getContainer("labelGroup"),
                            R = k.getContainer("errorPlotGroup"),
                            P = "",
                            V = E.getFromEnv("legend"),
                            j = V.getChildren("legendItem") || [],
                            B = j.length,
                            H = S.showShadow; if (!1 === r && !0 === k.getState("visible")) { for (F.alpha || (F.alpha = "30"), v = k.components.data || [], a = 0; a < B && (C = j[a] || {}).getId() !== I; a++); for (L && y(C, L, C.parseLegendCosmetics(), F, t), O && A.setAnimation({ el: O, label: "highlightedGroup", attr: { opacity: t ? F.alpha / 100 : h(M.color) } }), R && (l = S.errorBarColor && h(S.errorBarColor), c = t ? (0, i.pluck)(F.alpha / 100, l) : l, A.setAnimation({ el: R, label: "highlightedGroup", attr: { opacity: c } })), a = 0, B = v.length; a < B; a++)(b = v[a]) && b.graphics && (m = (T = b.config).colorArr[0], _ = (o = T.colorArr[1]).FCcolor.alpha, P = -1 !== (d = (n = m.FCcolor.color).indexOf(",")) && F.color ? F.color + n.substring(d) : (0, i.pluck)(F.color, n), f = D ? _ : (0, i.pluck)(F.borderalpha, F.alpha, _), 0 === (0, i.pluckNumber)(_) && (f = "0"), u = t ? (0, i.getColumnColor)(P, F.alpha, m.FCcolor.ratio, m.FCcolor.angle, N, (0, i.pluck)(F.bordercolor, o.FCcolor.color), f, !1, D) : [m, o], (s = b.graphics.element) && (n = (0, i.toRaphaelColor)(u[0]), o = (0, i.toRaphaelColor)(u[1]), A.setAnimation({ el: s, label: "highlightedDefaultPlot", attr: { stroke: o, fill: n } }), s.shadow({ opacity: H ? (0, i.getFirstAlpha)(u[0].alpha) / 100 : 0 })), w = b.graphics.label, g(A, w, F, M, t)) } } },
                C = function(e, t) { var r = e.sender.apiInstance;!1 !== r.hasInteractiveLegend && !1 !== r.highlightEnabled && a.applyEffect(r, t, !0) },
                _ = function(e, t) { var r = e.sender.apiInstance;!1 !== r.hasInteractiveLegend && !1 !== r.highlightEnabled && a.applyEffect(r, t, !1) },
                k = function(e, t) { var r = e.sender.apiInstance;
                    r.addJob("plothighlighteffect", (function() { r.config.showLegend && !1 !== r.hasInteractiveLegend && !1 !== r.highlightEnabled && a.applyEffect(r, t, !0) }), s.priorityList.postRender) }; var S = { extension: function(e) { var t;
                    (a = new(function() {
                        function t() { this.effectStore = {}, this.eventHandlers = {} } var r = t.prototype; return r.add = function(e) { this.effectStore[e.name] = e }, r.attachEventHandlers = function(t, r) { this.eventHandlers[t] || (this.eventHandlers[t] = {}, this.eventHandlers[t].listenerFn = e.addEventListener(t, r)) }, r.applyEffect = function(e, t, r) { var n, a, o, s, l, c, u, d, f, h, g, p, m = this.effectStore,
                                v = e.getFromEnv("chart-attrib"),
                                b = e.config.defaultDatasetType,
                                y = v.plothighlighteffect && v.plothighlighteffect.toLowerCase(),
                                x = e.getDatasets(),
                                w = e.config.isSingleSeries ? x[0].components.data : x,
                                C = (0, i.pluck)(t.itemId, t.legendItemId, t.legendItemIndex),
                                _ = ""; if (e.getFromEnv("legend").getChildren("legendItem").forEach((function(e) { return function t(e) { e.removeStateCosmetics("highlight", t) }(e) })), "funnel" !== e.getName() && "Pyramid" !== e.getName() || (w = x[0].getChildren("data")), e.getFromEnv("animationManager").setAnimationState("plotHighlighter"), y && (p = (y = y.replace(/\s+/g, "").split("|"))[0], _ = y[1] || ""), p && m[p])
                                if ("HeatMap" === e.getName())
                                    for (n = e.getFromEnv("colorRange"), g = function(e) { var t, r, n = u.getChildren("legendItem"),
                                                a = n && n.length; for (t = 0; t < a; ++t)
                                                if (n[t].config.datasetObj.code === e) { r = n[t].getId(); break } return r }, f = (u = e.getFromEnv("legend")).getItem(C).config.datasetObj, l = 0; l < w.length; l++) a = (s = w[l]).config.value, (h = n.getColorObj(a)).outOfRange || (f.code === h.code ? m[p][b].call(s, _, r, !0, x[0], C) : m[p][b].call(s, _, r, !1, x[0], g(h.code)));
                                else if ("sankey" === e.getName()) m[p].sankey(x[0], C, r);
                            else
                                for (l = 0, d = w.length; l < d; l++) b = (b = (s = w[l]).getName && s.getName() || b).toLowerCase(), void 0 !== (o = (0, i.pluck)(s.config.itemId, s.config.legendItemId)) && (c = o === C, m[p][b] ? m[p][b].call(s, _, r, c, x[0], o) : m[p]["default"].call(s, _, r, c, x[0], o)) }, t }())).attachEventHandlers("legenditemrollover", C), a.attachEventHandlers("legenditemrollout", _), a.attachEventHandlers("legenditemclicked", k), (t = { name: "fadeout", area: w.area, radar: w.area, bubble: w.bubble, pie2d: w.pie, line: w.line, spline: w.line, splinearea: w.area, pie3d: w.pie, zoomline: w.line, funnelpoint: w.funnelpyramid, pyramidpoint: w.funnelpyramid, scatter: w.line, selectscatter: w.line, dragline: w.line, dragarea: w.area, realtimearea: w.area, realtimeline: w.line, realtimelinedy: w.line, realtimestackedarea: w.area, errorline: w.line, errorscatter: w.line, stepline: w.line, doughnut2d: w.pie, doughnut3d: w.pie, heatmap: w.heatmap, boxandwhisker2d: w.boxandwhisker2d, multiaxisline: w.line, sankey: w.sankey, "default": w["default"] }) && a.add(t) }, name: "PlotHighlighter", type: "extension", requiresFusionCharts: !0 };
            t["default"] = S }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(215),
                a = function(e, t, r, a) { var i, o, s, l, c, u, d = (0, n.getFirstColor)(e),
                        f = (0, n.getFirstAlpha)(t); return r < 100 && n.hasSVG ? a ? (c = (0, n.getDarkColor)(d, Math.floor(100 * (85 - .2 * (100 - r))) / 100), u = (0, n.getLightColor)(d, Math.floor(100 * (100 - .5 * r)) / 100), i = { color: c + n.COMMASTRING + u + n.COMMASTRING + u + n.COMMASTRING + c, alpha: f + n.COMMASTRING + f + n.COMMASTRING + f + n.COMMASTRING + f, radialGradient: !0, gradientUnits: "userSpaceOnUse", r: r }) : (o = Math.floor(.85 * (100 - .35 * r) * 100) / 100, s = (0, n.getDarkColor)(d, o), l = Math.floor(.5 * (100 + r) * 100) / 100, i = { color: (0, n.getLightColor)(d, l) + n.COMMASTRING + s, alpha: f + n.COMMASTRING + f, ratio: r + "," + (100 - r), radialGradient: !0, gradientUnits: "userSpaceOnUse" }) : i = { color: d + n.COMMASTRING + d, alpha: f + n.COMMASTRING + f, ratio: "0,100" }, i };
            t["default"] = a }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(288)),
                i = r(215),
                o = "__FC_tooltipText",
                s = function(e, t, r) { var n = (0, i.getMouseCoordinate)(t.universe, (0, i.getTouchEvent)(r), t.chart),
                        a = n.chartX,
                        s = n.chartY;
                    a += 11, s += 11, c._draw.call(t, a, s, this.data(o), e) },
                l = function(e) { c._hide(e) },
                c = function() {
                    function e(t, r) { var n = this;
                        n.config = {}, n.universe = t, this.chart = r, this.restrictWithinCanvas = { left: !1, right: !1, top: !1, bottom: !1 }, n.toolTips = { implicit: [], explicit: [] }, n.hideImplicitToolTip = function(t) { var r = n.lastActiveToolip;
                            r && t.target !== r.getData("targetElement").node && (e._hide(r), n.config.lastActiveToolip = i.UNDEF) }, n.config.positioningArr = [], n.config.canvasArr = [], t.FusionCharts.jsVars.fcObj.addEventListener("resized", n._updateAllToolTipBounds.bind(n)) } var t = e.prototype; return t.setRestrictionWithinCanvas = function(e) { void 0 === e && (e = {}), Object.assign(this.restrictWithinCanvas, e) }, t.getRestrictionWithinCanvas = function() { return this.restrictWithinCanvas }, t._updateAllToolTipBounds = function() { var e, t, r = this.config,
                            n = function(t) { t.universeBounds && t.universeBounds.canvas && (e = r.canvasArr.indexOf(t.universeBounds.canvas)), t.setUniverseBounds(r.positioningArr[e]) },
                            a = this.toolTips; for (t in a) a[t].forEach(n) }, t._setRelativePosition = function(e) { var t = this.config,
                            r = t.canvasArr,
                            n = t.positioningArr,
                            a = r.indexOf(e.canvas); - 1 === a ? (r.push(e.canvas), n.push(e)) : (r[a] = e.canvas, n[a] = e) }, t._createToolTip = function(e, t) { var r, n = this.config; return (r = new a["default"](this.universe, n.positioningArr[n.canvasArr.indexOf(t)])).setRestrictionWithinCanvas(this.restrictWithinCanvas), r.setStyle(this.config.tooltipStyle), this.toolTips[e].push(r), r }, t.enableToolTip = function(e, t, r) { var n, a, i = this,
                            c = i.toolTips.implicit,
                            u = c.length; return t ? e.data(o) ? (u > 0 && c.some((function(r) { return !(!(n = r).getData("active") || n.data.targetElement !== e) && (n.show(t), !0) })), e.data(o, t), i) : (n = i._getAvailableToolTip("implicit", r), i.disableToolTip(e), e.data(o, t), e.data("__FC_onTooltipMove", s.bind(e, n, i)), e.data("__FC_onTooltipOut", l.bind(e, n)), e.data("__FC_onTooltipOver", (a = e, function(t) { i.draw(t, e.data(o), n), n.setData("targetElement", a), i.config.lastActiveToolip = n })), e.on("fc-mousemove", e.data("__FC_onTooltipMove")), e.on("fc-mouseout", e.data("__FC_onTooltipOut")), e.on("fc-mouseover", e.data("__FC_onTooltipOver")), i) : (i.disableToolTip(e), i) }, t.disableToolTip = function(e) { var t = e.data("__FC_onTooltipOut"),
                            r = e.data("__FC_onTooltipMove"),
                            n = e.data("__FC_onTooltipOver"); return r && e.off("fc-mousemove", r), t && e.off("fc-mouseout", t), n && e.off("fc-mouseover", n), e.removeData(o), this }, t.draw = function(t, r, n, a) { var o, s, l = (0, i.getMouseCoordinate)(this.universe, (0, i.getTouchEvent)(t), this.chart),
                            c = n && !n.disposed ? n : this._getAvailableToolTip("explicit", a); return o = l.chartX, s = l.chartY, o += 11, s += 11, e._draw.call(this, o, s, r, c), c }, t.drawAt = function(t, r, n, a, i) { var o = a && !a.disposed ? a : this._getAvailableToolTip("explicit", i); return e._draw.call(this, t, r, n, o), o }, e._draw = function(e, t, r, n) { var a = this.config;
                        (0, i.isSimilarObject)(n.previousStyle, a.tooltipStyle) || (n.setStyle(a.tooltipStyle), n.previousStyle = Object.assign({}, a.tooltipStyle)), n.show(r), n.update(e, t) }, t._getAvailableToolTip = function(e, t) { for (var r, n = this.toolTips[e], a = 0, i = n.length; a < i; a++)
                            if (!1 === (r = n[a]).getData("active")) return r; return this._createToolTip(e, t) }, t.setStyle = function(e) { var t, r = this.config; for (var n in t = r.tooltipStyle = {}, e) "showToolTipShadow" === n ? e[n] ? t.boxShadow = "1px 1px 3px rgba(64,64,64,0.4)" : t.boxShadow = "none" : t[n] = e[n] }, t.hide = function(t) { return e._hide(t), this }, t.hideAll = function() { var t, r; for (t in this.toolTips)
                            for (r = 0; r < this.toolTips[t].length; r++) e._hide(this.toolTips[t][r]) }, e._hide = function(e, t) { e && (t ? e.dispose() : e.hide()) }, e }(),
                u = { extension: c, name: "ToolTipController", type: "plugin" };
            t["default"] = u }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(215),
                a = "fusioncharts-div",
                i = "#545454",
                o = "3px",
                s = "10px",
                l = "hidden",
                c = "1px",
                u = "#000000",
                d = "nowrap",
                f = "normal",
                h = "absolute",
                g = "solid",
                p = "#ffffff",
                m = "none",
                v = "hidden",
                b = "none",
                y = "left, top",
                x = "auto",
                w = function(e) { var t = e.getBoundingClientRect(); return { left: 0, top: 0, right: t.width || t.right - t.left, bottom: t.height || t.bottom - t.top } },
                C = function() {
                    function e(e, t) { this.text = n.BLANKSTRING, this.x = 0, this.y = 0, this.visibleWidth = 0, this.universe = e, this.setUniverseBounds(t || w(e)), this.data = { active: !1, target: !1 }, this.createElement(e), this.previousStyle = {}, this.restrictWithinCanvas = { left: !1, right: !1, top: !1, bottom: !1 } } var t = e.prototype; return t.setUniverseBounds = function(e) { this.universeBounds = e || this.universe && w(this.universe) }, t.setRestrictionWithinCanvas = function(e) { void 0 === e && (e = {}), Object.assign(this.restrictWithinCanvas, e) }, t.getRestrictionWithinCanvas = function() { return this.restrictWithinCanvas }, t.createElement = function(e) { var t = this.element = document.createElement("div"); return t.setAttribute("class", "fc__tooltip"), t.className += " " + a, t.innerHTML = this.text, e.appendChild(this.setDefaultStyle()), t }, t.setDefaultStyle = function() { var e = this.element; return e.setAttribute("style", ""), e.style.color = i, e.style.padding = o, e.style.fontSize = s, e.style.overflow = l, e.style.borderWidth = c, e.style.borderColor = u, e.style.whiteSpace = d, e.style.position = h, e.style.borderStyle = g, e.style.backgroundColor = p, e.style["user-select"] = m, e.style["-ms-user-select"] = m, e.style["-moz-user-select"] = m, e.style["-webkit-user-select"] = m, e.style["-webkit-touch-callout"] = m, e.style.top = this.x + "px", e.style.left = this.y + "px", e.style.visibility = v, e.style["pointer-events"] = b, e }, t.setData = function(e, t) { this.data[e] = t }, t.getData = function(e) { return this.data[e] }, t.setStyle = function(e) { var t, r = this.element.style; for (t in this.setDefaultStyle(), e) r[t] = e[t] }, t.show = function(e) { this.text !== e && (this.text = e, this.element.innerHTML = this.text), this.setData("active", !0), "visible" !== this.element.style.visibility && (this.element.style.visibility = "visible"), this.element.style["will-change"] = y, this.element.style["max-width"] = this.universeBounds.right - this.universeBounds.left - 12 + "px" }, t.update = function(e, t) { void 0 === e && (e = this.x), void 0 === t && (t = this.y); var r = this.universeBounds,
                            n = (this.restrictWithinCanvas.bottom ? r.bottom : this.universe.clientHeight) - 12,
                            a = (this.restrictWithinCanvas.right ? r.right : this.universe.clientWidth) - 12,
                            i = (this.restrictWithinCanvas.left ? r.left : 0) + 12,
                            o = this.element,
                            s = o.offsetWidth,
                            l = o.offsetHeight,
                            c = o.style;
                        e + s < a ? (c.left = e + "px", c.whiteSpace = d) : s < a ? e - s >= i ? c.left = e - s - 12 + "px" : (c.left = a - s + "px", c.whiteSpace = f) : (c.left = r.left + "px", c.whiteSpace = f), c.top = t + l < n ? t + "px" : l < n && t - l <= n ? t - l + "px" : n - l + "px" }, t.hide = function() { this.y = 0, this.x = 0, this.x = n.BLANKSTRING, this.setData("active", !1), this.setData("target", !1), this.element.style.visibility = v, this.element.style["will-change"] = x, this.element.innerHTML = n.BLANKSTRING, this.text = n.UNDEF }, t.dispose = function() { this.hide(), this.universe.removeChild(this.element), this.universe = n.UNDEF, this.disposed = !0 }, e }();
            t["default"] = C }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(215),
                a = { treemap: !0, scatter: !0, bubble: !0, errorscatter: !0, errorline: !0, errorbar2d: !0, candlestick: !0, stackedcolumn3d: !0, stackedbar3d: !0, mscolumnline3d: !0, mscombi3d: !0, mscolumn3dlinedy: !0, stackedcolumn3dline: !0, stackedcolumn3dlinedy: !0 },
                i = function(e, t) { return e + '<div style="margin: 0;">' + t + "</div>" },
                o = function(e, t) { return t.hovered ? e + 1 : e },
                s = function(e) { return e.originalPlotColor || e.plotColor || e.color || "#000000" },
                l = function(e, t) { return t.getJSONIndex() - e.getJSONIndex() };

            function c(e) { var t = e.sender.getFromEnv("chart"),
                    r = t.config.tooltipgrayoutcolor,
                    a = t.config.plotcolorintooltip,
                    c = t.getFromEnv("toolTipController"),
                    u = t.getDatasets().sort(l),
                    d = t.getFromEnv("consolidated-tooltip"),
                    f = (0, n.getMouseCoordinate)(e.sender.getFromEnv("chart-container"), e.originalEvent, t),
                    h = f.chartX,
                    g = f.chartY,
                    p = !1,
                    m = u.map((function(e) { return e.getPlotInCategoryAt(h, g) })).filter(Boolean),
                    v = m.reduce(o, 0),
                    b = m.map((function(e) { var t = e.pointObj.config,
                            i = t.finalTooltext || t.toolText,
                            o = s(t); return v > 0 ? !p && e.hovered ? (i = '<div style="display: inline-block;">' + i + "</div>", p = !0) : (o = r, i = '<div style="color: ' + (0, n.hashify)(r) + '; display: inline-block;">' + i + "</div>") : i = '<div style="display: inline-block;">' + i + "</div>", a ? '<div style="color: ' + (0, n.hashify)(o) + '; display: inline-block;">&#9632&nbsp;</div>' + i : i })),
                    y = [].concat(b).reverse().reduce(i, "");
                this.isWithinCanvas(h, g) && y ? d ? c.draw(e.originalEvent, y, d) : t.addToEnv("consolidated-tooltip", c.draw(e.originalEvent, y)) : d && c.hide(d) }

            function u(e) { var t = e.sender.getFromEnv("chart"),
                    r = t.getFromEnv("consolidated-tooltip");
                r && t.getFromEnv("toolTipController").hide(r) }

            function d(e) { var t = this.apiInstance,
                    r = t.getDatasets().sort(l),
                    a = t.config.plotcolorintooltip,
                    o = t.getFromEnv("toolTipController"),
                    c = t.getFromEnv("consolidated-tooltip"),
                    u = r.map((function(t) { var r = t.components.data; return r[e] && r[e] })).filter(Boolean),
                    d = u[0] && { x: u[0].config._Px - u[0]._width, y: u[0].config._Py, width: u[0].config._width },
                    f = u.map((function(e) { var t = e.config,
                            r = t.finalTooltext || t.toolText; return a ? '<div style="color: ' + (0, n.hashify)(s(t)) + '; display: inline-block;">&#9632&nbsp;</div><div style="display: inline-block;">' + r + "</div>" : '<div style="display: inline-block;">' + r + "</div>" })).reduce(i, "");
                f && d ? c ? o.drawAt(d.x, d.y, f, c) : t.addToEnv("consolidated-tooltip", o.drawAt(d.x, d.y, f)) : c && o.hide(c) } var f = { extension: function(e) { e.addEventListener("predraw", (function(e) { var t, r; if (e.sender.getType && "chartAPI" === e.sender.getType() && (r = e.sender, !a[r.getName().toLowerCase()])) { var n = (t = e.sender).getChildren("canvas");
                            t.getFromEnv("chartInstance").drawConsolidatedToolTip = d, n && n.forEach((function(e) { if (!t.config.drawTrendRegion || !t.config.showtooltip) return e.removeEventListener("fc-mouseover", c), e.removeEventListener("fc-mousemove", c), e.removeEventListener("fc-mouseout", u), void e.setState("consolidatedTooltipEventListenerAttached", !1);!e.getState("consolidatedTooltipEventListenerAttached") && t.config.showtooltip && (e.addEventListener("fc-mouseover", c), e.addEventListener("fc-mousemove", c), e.addEventListener("fc-mouseout", u), e.setState("consolidatedTooltipEventListenerAttached", !0)) })) } })) }, name: "ConsolidatedToolTip", type: "extension", requiresFusionCharts: !0 };
            t["default"] = f }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(291)),
                i = r(215),
                o = function(e) { e.sender.apiInstance.getChildren("alertManager") && e.sender.apiInstance.getChildren("alertManager")[0].processRTData(e.data) },
                s = function(e) { if ("dataset" === e.sender.getType()) { var t, r, n = e.sender,
                            a = n.config,
                            o = a.JSONData,
                            s = n.getFromEnv("chart").getChildren("alertManager"); if (!s || !o) return;
                        t = (0, i.pluckNumber)(o && o.checkforalerts, 1), (r = (s = s[0]).config || (s.config = {})).datasetMap = r.datasetMap || {}, r.datasetMap[a.index] = t } },
                l = function(e) { "chartAPI" === e.sender.getType() && e.sender.registerFactory("alertManager", (function(e) { e.getChildren("alertManager") ? e.getChildren("alertManager")[0].configure() : (0, i.componentFactory)(e.getFromEnv("chart"), a["default"], "alertManager", 1, [{}]) })) }; var c = { extension: function(e) { e.addEventListener("instantiated", l), e.addEventListener("updateDataReceived", o), e.addEventListener("postConfigure", s) }, name: "alertManagerLinker", type: "extension", requiresFusionCharts: !0 };
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(215),
                o = r(230),
                s = function(e) {
                    function t() { var t; return (t = e.call(this) || this).pIndex = 1, t.linkedItems = { chart: {} }, t }(0, a["default"])(t, e); var r = t.prototype; return r.getType = function() { return "extension" }, r.getName = function() { return "AlertManager" }, r.configure = function() { var e, t, r, n = this.getFromEnv("dataSource"),
                            a = n && n.alerts && n.alerts.alert,
                            i = this.getFromEnv("number-formatter"),
                            o = this.config || (this.config = {}); if (a && a.length)
                            for (o.alertArr = a, e = a.length, t = 0; t < e; t += 1)(r = a[t]).minvalue = i.getCleanValue(r.minvalue), r.maxvalue = i.getCleanValue(r.maxvalue);
                        else o.alertArr = [] }, r.processRTData = function(e) { var t, r, n, a, i, o, s = this.config,
                            l = this.getFromEnv("number-formatter"); if (e && e.dataset && e.dataset.length)
                            for (n = e.dataset.length, t = 0; t < n; t += 1)
                                if ((a = e.dataset[t]).data && a.data.length) { if (s.datasetMap && 0 === s.datasetMap[t]) continue; for (i = a.data.length, r = 0; r < i; r += 1) null !== ((o = a.data[r]) && l.getCleanValue(o.value)) && this._doAlert(l.getCleanValue(o.value)) } }, r._doAlert = function(e) { var t, r, n, a = this.getLinkedParent(),
                            o = this.config.alertArr,
                            s = o.length; for (r = 0; r < s; r += 1)
                            if (n = (t = o[r]).action && t.action.toLowerCase(), t.minvalue <= e && t.maxvalue >= e) { if ("1" !== t.occuronce || !t.hasOccurred) { switch (t.hasOccurred = !0, t.state = "1", n) {
                                        case "calljs":
                                            setTimeout((0, i.pseudoEval)(t.param)); break;
                                        case "showannotation":
                                            a.showAnnotation && a.showAnnotation(t.param) } a.fireChartInstanceEvent("AlertComplete", { alertValue: e, alertMaxValue: t.maxvalue, alertMinValue: t.minvalue }) } } else "showannotation" === n && "1" === t.state && a.hideAnnotation && a.hideAnnotation(t.param), t.state = "2" }, t }(o.ComponentInterface);
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(293)),
                i = r(295); var o = { extension: function(e) { e.addEventListener("preconfigure", (function(e) { var t = e.sender,
                            r = t.getFromEnv("chart");
                        i.allowedCharts[r && r.getName()] && ("dataset" === t.getType() && "cartesianStackGroup" !== t.getLinkedParent().getName() ? (t.setState("applySkippingOnConf", !0), a["default"].dataSkipping({ component: t, datasetType: t.getName(), compType: "dataset" })) : "cartesianStackGroup" === t.getName() && (t.setState("applySkippingOnConf", !0), a["default"].dataSkipping({ component: t, datasetType: t.getName(), compType: "group" }))) })), e.addEventListener("preattributeprepared", (function(e) { var t = e.sender.getFromEnv && e.sender.getFromEnv("chart"); if (i.allowedCharts[t && t.getName()])
                            if ("dataset" === e.sender.getType()) { var r = e.sender,
                                    n = r.getFromEnv("canvasConfig"),
                                    o = r.getFromEnv("chart").isBar ? n.canvasHeight : n.canvasWidth; "cartesianStackGroup" !== r.getLinkedParent().getName() && (r.getState("applySkippingOnConf") ? r.setState("applySkippingOnConf", !1) : a["default"].dataSkipping({ component: r, compType: "dataset", datasetType: r.getName(), width: o })) } else if ("cartesianStackGroup" === e.sender.getName()) { var s = e.sender,
                                l = s.getFromEnv("canvasConfig"),
                                c = s.getFromEnv("chart").isBar ? l.canvasHeight : l.canvasWidth,
                                u = Object.keys(s.getChildren())[0];
                            s.getState("applySkippingOnConf") ? s.setState("applySkippingOnConf", !1) : a["default"].dataSkipping({ component: s, compType: "group", datasetType: s.getChildren(u)[0].getName(), width: c }) } })), e.addEventListener("dataplotdragend", (function(e, t) { if (e.sender.getType && "dataset" === e.sender.getType()) { var r = e.sender,
                                n = r.getSkippingInfo && r.getSkippingInfo();
                            n && n.skippingApplied && a["default"].updateDragMap({ component: r, compType: "dataset", evenType: "dataplotdragend", eventArgs: t }) } })) }, name: "DataSkipping", type: "extension", requiresFusionCharts: !0 };
            t["default"] = o }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(294)),
                i = r(295),
                o = r(215),
                s = [],
                l = 0,
                c = {},
                u = [];

            function d(e) { return void 0 === e && (e = []), e.filter((function(e) { return !s[e] })) }

            function f(e, t) { for (var r = 0, n = [], a = 1; a < c.noOfPlotBins; ++a) e(r, (r += c.plotsPerBin) - 1, t, u, n); return e(r, t.length - 1, t, u, n), u = [], n }

            function h(e) { var t, r, n, o, h, g, p, m = i.filterType[e.datasetType],
                    v = e.component,
                    b = v.getSkippingInfo && v.getSkippingInfo(),
                    y = b && b.draw.slice(0),
                    x = b && (b.labelDraw || []).slice(0),
                    w = {},
                    C = [],
                    _ = v.getFromEnv("xAxis").getTicksLen(); if ((!y || !y.length) && (void 0 === (p = l) && (p = 0), y = Array.from(new Array(p), (function(e, t) { return t }))), (!x || !x.length) && (x = y), u = b && b.dragHashMap, "cartesianStackGroup" === v.getName()) { for (o = c.jsonData.length, t = 0; t < _; ++t) { for (n = 0, r = 0; r < o; ++r) g = c.jsonData[r].data, n += Number(g[t] ? g[t].value : 0);
                        C.push({ value: n }) } w.draw = f((0, a["default"])(m), C) } else w.draw = f((0, a["default"])(m), c.jsonData.data); return w.draw.forEach((function(e) { s[e] = !0 })), w.drawOnlyMap = s, w.hide = d(y), h = function(e) { var t, r = c.labelBinSize / c.plotBinSize,
                        n = [],
                        a = [],
                        i = e.length; for (t = 0; t < i; t++) t % r || (n.push(e[t]), a[e[t]] = !0); return { drawableLabelIndices: n, labelHashMap: a } }(w.draw), w.labelDraw = h.drawableLabelIndices, s = w.labelDrawOnlyMap = h.labelHashMap, w.hideLabel = d(x), w.plotsPerBin = c.plotsPerBin, w.skippingApplied = !0, w.dragHashMap = [], w.prevDrawInfo = y.slice(0), w } var g = { dataSkipping: function(e) { void 0 === e && (e = {}); var t = e.component;! function(e) { void 0 === e && (e = {}); var t, r, n, a, i, u = e.component,
                            d = e.compType,
                            f = u.getFromEnv("chartConfig"),
                            h = u.getFromEnv("dataSource").chart || {},
                            g = (0, o.pluckNumber)(h.plotbinsize, f.plotbinsize); return c.plotBinSize = g, c.labelBinSize = (0, o.pluckNumber)(h.labelbinsize, f.labelbinsize), c.jsonData = u.config.JSONData, "group" === d ? (t = c.jsonData[0].data, l = u.config.stackValues && u.config.stackValues.length || 0) : "dataset" === d && (t = c.jsonData.data, l = u.components.data && u.components.data.length || 0), r = t && t.length, s = [], c.width = i = u.getFromEnv("chart").isBar ? e.height || u.getFromEnv("chartHeight") : e.width || u.getFromEnv("chartWidth"), n = r / i, a = Math.floor(n * g), n >= 1.5 && a > 1 && (c.plotsPerBin = a, c.noOfPlotBins = Math.ceil(r / c.plotsPerBin), !0) }(e) ? t.setSkippingInfo && t.setSkippingInfo(): t.setSkippingInfo && t.setSkippingInfo(h(e)) }, updateDragMap: function(e) { void 0 === e && (e = {}); var t = e.component,
                        r = e.eventArgs,
                        n = t.getSkippingInfo && t.getSkippingInfo() || {};
                    r && (n.dragHashMap[r.dataIndex] = r.endValue) } };
            t["default"] = g }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = function(e, t, r, n, a) { void 0 === n && (n = []); for (var i, o = r[t].value, s = t, l = t - 1; l >= e; --l)(i = void 0 !== n[l] ? n[l] : r[l].value) > o && (o = i, s = l); return a.push(s), a },
                a = function(e, t, r, n, a) { void 0 === n && (n = []); for (var i, o = r[t].value, s = t, l = r[t].value, c = t, u = t - 1; u >= e; --u)(i = void 0 !== n[u] ? n[u] : r[u].value) > o ? (o = i, s = u) : i < l && (l = i, c = u); var d = c < s ? [c, s] : [s, c]; return c = d[0], s = d[1], a.push(c), c !== s && a.push(s), a };
            t["default"] = function(e) { var t = { maxOnly: n, minMax: a }; return t[e] || t.maxOnly } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.filterType = t.allowedCharts = void 0;
            t.filterType = { Column: "maxOnly", line: "minMax", area: "minMax" }, t.allowedCharts = { Column2D: !0, Line: !0, Area2D: !0, Bar2D: !0, MSColumn2D: !0, MSLine: !0, MSBar2D: !0, MSArea: !0, StackedColumn2D: !0, StackedBar2D: !0, StackedArea2D: !0, MSStackedColumn2D: !0, MSCombi2D: !0, StackedColumn2DLine: !0, MSCombidy2D: !0, LogMSColumn2d: !0, LogMSLine: !0, DragColumn: !0, DragLine: !0, DragArea: !0 } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(297)),
                i = n(r(320)),
                o = function(e, t) { return "groups" !== t && "items" !== t },
                s = function(e) { var t = e.sender;
                    (function(e) { return "chartAPI" === e.getType() })(t) && t.registerFactory("annotation", (function(e) { var t = e.getFromEnv("dataSource").annotations,
                            r = e.getChildren().annotation,
                            n = r && r[0];
                        delete e.getFromEnv("chartInstance").annotations, t && (n || (n = new a["default"]((0, i["default"])(o, t)), e.attachChild(n, "annotation"), n.config.drawn = !1), n._JSONData = t, n.configure(t), e.getFromEnv("chartInstance").annotations = n) })) }; var l = { extension: function(e) { e.addEventListener("instantiated", s) }, name: "Annotation", type: "extension", requiresFusionCharts: !0 };
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(298),
                o = r(215),
                s = r(223),
                l = n(r(299)),
                c = n(r(300)),
                u = n(r(301)),
                d = n(r(302)),
                f = r(230),
                h = ["pie2d", "doughnut2d"],
                g = ["pie3d", "doughnut3d"],
                p = function(e, t) { return e.getJSONIndex() - t.getJSONIndex() },
                m = function(e, t, r) { void 0 === t && (t = {}), void 0 === r && (r = {}); var n, a = {}; for (var i in a.annotationType = "shape", a.id = e.id, a.type = e.type && e.type.toLowerCase(), a.toolText = (0, o.pluck)(e.tooltext, e.toolText), a.animationLabel = (0, o.pluck)(e.animationlabel, e.animationLabel), a.dashed = e.dashed, a.dashLen = (0, o.pluck)(e.dashlen, e.dashLen), a.dashGap = (0, o.pluck)(e.dashgap, e.dashGap), a.thickness = e.thickness, a.showBorder = (0, o.pluck)(e.showborder, e.showBorder), a.borderColor = (0, o.pluck)(e.bordercolor, e.borderColor), a.borderAlpha = (0, o.pluck)(e.borderalpha, e.borderAlpha), a.borderThickness = (0, o.pluck)(e.borderthickness, e.borderThickness), a.alpha = e.alpha, a.color = e.color, a.fillColor = (0, o.pluck)(e.fillcolor, e.fillColor), a.fontColor = (0, o.pluck)(e.fontcolor, e.fontColor), a.fillAlpha = (0, o.pluck)(e.fillalpha, e.fillAlpha), a.fillAngle = (0, o.pluck)(e.fillangle, e.fillAngle), a.fillRatio = (0, o.pluck)(e.fillratio, e.fillRatio), a.fillPattern = (0, o.pluck)(e.fillpattern, e.fillPattern), a.sides = e.sides, a.radius = e.radius, a.yRadius = (0, o.pluck)(e.yradius, e.yRadius), a.innerRadius = (0, o.pluck)(e.innerradius, e.innerRadius), a.endAngle = (0, o.pluck)(e.endangle, e.endAngle), a.startAngle = (0, o.pluck)(e.startangle, e.startAngle), a.isVisible = !0 == (n = e.visible, !(0 === parseInt(n, 10))), a.x = e.x, a.y = e.y, a.xPos = (0, o.pluck)(e.xpos, e.xPos), a.yPos = (0, o.pluck)(e.ypos, e.yPos), a.toY = (0, o.pluck)(e.toy, e.toY), a.toX = (0, o.pluck)(e.tox, e.toX), a.autoScale = (0, o.pluck)(e.autoscale, e.autoScale), a.path = e.path, a.css = e.css, a.wrap = e.wrap, a.text = e.text !== o.UNDEF && null !== e.text && e.text.toString() || o.UNDEF, a.font = (0, o.pluck)(e.font, t.font, r.basefont), a.bold = (0, o.pluck)(e.bold, e.isbold, e.bold, e.isBold), a.label = e.label, a.align = e.align, a.italic = e.italic, a.vAlign = (0, o.pluck)(e.valign, e.vAlign), a.bgColor = (0, o.pluck)(e.bgcolor, e.bgColor), a.fontSize = (0, o.pluck)(e.fontsize, e.fontSize, t.fontSize, r.basefontsize), a.wrapWidth = (0, o.pluck)(e.wrapwidth, e.wrapWidth), a.leftMargin = (0, o.pluck)(e.leftmargin, e.leftMargin), a.rotateText = (0, o.pluck)(e.rotatetext, e.rotateText), a.wrapHeight = (0, o.pluck)(e.wrapheight, e.wrapHeight), a.showShadow = (0, o.pluck)(e.showshadow, e.showShadow), a.link = e.link, a.url = e.url, a.link = e.link, a.width = e.width, a.height = e.height, a.xScale = (0, o.pluck)(e.xscale, e.xScale), a.yScale = (0, o.pluck)(e.yscale, e.yScale), a.onload = e.onload, a.onerror = e.onerror, a.outlineText = (0, o.pluckNumber)(e.outlinetext, e.outlineText, 0), "object" == typeof e.component && (a.component = e.component), a) { if (a.hasOwnProperty(i)) void 0 === a[i] && delete a[i] } return a },
                v = function(e, t) { return void 0 === e && (e = { groups: [] }), void 0 === t && (t = {}), (e.groups || []).map((function(r) { var n, a; return n = e, (a = r).css = a.css || n.css, a.autoscale = (0, o.pluck)(a.autoscale, n.autoscale), a.animationLabel = (0, o.pluck)(a.animationLabel, n.animationLabel), a.constrainedscale = (0, o.pluck)(a.constrainedscale, n.constrainedscale), a.scaletext = (0, o.pluck)(a.scaletext, n.scaletext), a.scaleimages = (0, o.pluck)(a.scaleimages, n.scaleimages), a.xshift = (0, o.pluck)(a.xshift, n.xshift), a.yshift = (0, o.pluck)(a.yshift, n.yshift), a.grpxshift = (0, o.pluck)(a.grpxshift, n.grpxshift), a.grpyshift = (0, o.pluck)(a.grpyshift, n.grpyshift), a.origw = (0, o.pluck)(a.origw, n.origw), a.origh = (0, o.pluck)(a.origh, n.origh), a.showbelow = (0, o.pluck)(a.showbelow, n.showbelow, 1), a.onAnnotationClick = n.onAnnotationClick, a.onAnnotationRollover = n.onAnnotationRollover, a.onAnnotationRollout = n.onAnnotationRollout,
                            function(e, t) { var r = {},
                                    n = e.items; for (var a in n = e.items = (0, i.arrangeItems)(n), r.annotationType = "group", r.id = e.id, r.showBelow = "undefined" == typeof e.showbelow || null === e.showbelow ? 1 : Number(e.showbelow), r.x = e.x, r.y = e.y, r.animationLabel = (0, o.pluck)(e.animationlabel, e.animationLabel), r.xPos = (0, o.pluck)(e.xpos, e.xPos), r.yPos = (0, o.pluck)(e.ypos, e.yPos), r.grpXShift = (0, o.pluck)(e.grpxshift, e.grpXShift), r.grpYShift = (0, o.pluck)(e.grpyshift, e.grpYShift), r.xShift = (0, o.pluck)(e.xshift, e.xShift), r.yShift = (0, o.pluck)(e.yshift, e.yShift), r.color = e.color, r.alpha = e.alpha, r.isVisible = 1 === Number(e.visible || 1), r.font = (0, o.pluck)(e.font, t.basefont), r.link = e.link, r.fontSize = (0, o.pluck)(e.fontsize, e.fontSize, t.basefontsize), r.textAlign = (0, o.pluck)(e.textalign, e.textAlign), r.textVAlign = (0, o.pluck)(e.textvalign, e.textVAlign), r.rotateText = (0, o.pluck)(e.rotatetext, e.rotateText), r.wrapText = (0, o.pluck)(e.wraptext, e.wrapText), r.toolText = (0, o.pluck)(e.tooltext, e.toolText), r.link = e.link, r.showShadow = (0, o.pluck)(e.showshadow, e.showShadow), r.items = e.items, r.css = e.css, r.autoScale = (0, o.pluck)(e.autoscale, e.autoScale), r.scaleText = (0, o.pluck)(e.scaletext, e.scaleText), r.xScale = (0, o.pluck)(e.xscale, e.xScale), r.yScale = (0, o.pluck)(e.yscale, e.yScale), r.scaleImages = (0, o.pluck)(e.scaleimages, e.scaleImages), r.constrainedScale = (0, o.pluck)(e.constrainedscale), r.origH = (0, o.pluck)(e.origh, e.origH, t.origh), r.origW = (0, o.pluck)(e.origw, e.origW, t.origw), r.onAnnotationClick = e.onAnnotationClick, r.onAnnotationRollover = e.onAnnotationRollover, r.onAnnotationRollout = e.onAnnotationRollout, "object" == typeof e.component && (r.component = e.component), r) { if (r.hasOwnProperty(a)) void 0 === r[a] && delete r[a] } return Array.isArray(n) && (r.itemConfigs = n.map((function(e) { return m(e, r, t) }))), r }(r, t) })) },
                b = function(e) {
                    function t(t) { var r; return r = e.call(this, t) || this, (0, s.addDep)({ name: "annotationAnimation", type: "animationRule", extension: l["default"] }), (0, c["default"])((0, s.getDep)("redraphael", "plugin")), (0, u["default"])((0, s.getDep)("redraphael", "plugin")), r.groups = [], r.config.dependencies = {}, r._rawJSON = { groups: [] }, r }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "annotation" }, r.getType = function() { return "extension" }, r.configureAttributes = function(e) { void 0 === e && (e = { groups: [] }); var t = this,
                            r = t.config;
                        t._rawJSON = (0, o.extend2)({}, t._rawJSON, e), e.groups ? r.parsedConfigs = v(e, t.getFromEnv("chart").config) : r.parsedConfigs = [], r.parsedConfigs.forEach((function(e) { t.attachChild(d["default"], "group", e.id).configure(e) })), t.groups = t.getChildren("group") || [] }, r.addItem = function(e, t, r) { void 0 === t && (t = {}); var n, a, i, o = this._rawJSON,
                            s = o.groups.length; for (n = 0; n < s; n++)
                            if (o.groups[n].id === e) { a = o.groups[n]; break } return a ? a.items = a.items || [] : (a = { id: e, items: [] }, o.groups.push(a)), a.items.push(t), this.setData(o, !0), (i = this.retrieveGroup(e).items)[i.length - 1] }, r.addGroup = function(e) { void 0 === e && (e = {}); var t = this._rawJSON; return t.groups.push(e), this.setData(t, !0), this.groups[this.groups.length - 1] }, r.addCustomGroup = function(e) { e && (this.config.customGroup = e) }, r.update = function(e, t) { var r, n, a, i, o = {}; if (e) { for (n in t) o[n.toLowerCase()] = t[n] && t[n].toString(); if (!(r = this.retrieveItem(e) || this.retrieveGroup(e)) || !r.getElement()) return; return "undefined" == typeof o.visible && (o.visible = r.config.isVisible), a = r.rawConfig, a = Object.assign(a, o), (i = m(a)).isVisible = o.visible, r.setData(i), r } }, r.destroy = function(e) { var t, r, n, a, i, o = this._rawJSON,
                            s = !1; if (e) { for (t = 0, n = o.groups.length; t < n; t++)
                                for (r = 0, a = ((i = o.groups[t]).items || []).length; r < a; r++)
                                    if (i.items[r].id === e) { i.items.splice(r, 1), s = !0; break } if (!s)
                                for (t = 0, n = o.groups.length; t < n; t++)(i = o.groups[t]).id === e && o.groups.splice(t, 1) } else o = this._rawJSON = { groups: [] };
                        this.setData(o) }, r.clear = function() { this.destroy() }, r.retrieveItem = function(e) { var t, r, n, a = this.groups.length; for (n = 0; n < a; n++)
                            if (t = this.groups[n].retrieveItem(e)) { r = t; break } return r }, r.retrieveGroup = function(e) { var t, r; for (t = 0, r = this.groups.length; t < r; t++)
                            if (this.groups[t].getId() === e) return this.groups[t] }, r.show = function(e) { var t;
                        e ? (t = this.retrieveItem(e) || this.retrieveGroup(e)) && t.show() : this.groups.forEach((function(e) { e.show() })) }, r.hide = function(e) { var t;
                        e ? (t = this.retrieveItem(e) || this.retrieveGroup(e)) && t.hide() : this.groups.forEach((function(e) { e.hide() })) }, r.draw = function() { var e, t, r, n, a, o, s, l, c, u, d, f, m, v;
                        this.addToEnv("snapPoints", (e = this.getFromEnv("chart"), a = e.config, o = e.getChildren(), s = o.caption[0], l = o.subCaption[0], c = o.legend && o.legend[0] || {}, u = o.gLegend && o.gLegend[0] || {}, d = s.config, f = l.config, m = d.width || 0, v = f.width || 0, "end" === d.align ? (t = d.x - m, n = d.x - v) : "start" === d.align ? t = n = d.x : (t = d.x - m / 2, n = d.x - v / 2), r = a.gLegendEnabled ? u.conf : c.config, { canvasendx: a.canvasRight, canvasendy: a.canvasBottom, canvasheight: a.canvasHeight, canvasstartx: a.canvasLeft, canvasstarty: a.canvasTop, canvaswidth: a.canvasWidth, canvascenterx: a.canvasCenterX || a.canvasLeft + (a.canvasRight - a.canvasLeft) / 2, canvascentery: a.canvasCenterY || a.canvasTop + (a.canvasBottom - a.canvasTop) / 2, chartcenterx: a.width / 2, chartcentery: a.height / 2, chartstartx: 0, chartstarty: 0, chartendx: a.width, chartendy: a.height, chartheight: a.height, chartwidth: a.width, chartleftmargin: a.marginLeft, chartrightmargin: a.marginRight, chartbottommargin: a.marginBottom, charttopmargin: a.marginTop, captionendx: t + d.width, captionendy: d.y + d.height, captionheight: d.height, captionstartx: t, captionstarty: d.y, captionwidth: m, subcaptionendx: n + f.width, subcaptionendy: f.y + f.height, subcaptionheight: f.height, subcaptionstartx: n, subcaptionstarty: f.y, subcaptionwidth: v, legendendx: r && r.xPos + r.width, legendendy: r && r.yPos + r.height, legendheight: r && r.height, legendstartx: r && r.xPos, legendstarty: r && r.yPos, legendwidth: r && r.width, dataset: function(t) { var r, n, a, o = t.split(i.DEFAULT_MACRO_SEPARATOR).slice(1),
                                    s = []; return e.iterateComponents((function(e) { "dataset" === e.getType() && s.push(e) })), s.sort(p), n = s[Number(o[0])], r = n.components.data[Number(o[2])], h.indexOf(n.getName().toLowerCase()) > -1 ? (0, i.computeSliceBounds)(o[3], r.config) : g.indexOf(n.getName().toLowerCase()) > -1 ? (0, i.compute3DSliceBounds)(o[3], r.config) : (a = (0, i.computePlotBounds)(r, n.getName()), (0, i.xyCalculator)(o[3], a)) }, xaxis: (0, i.axisMacroParser)(e, "xAxis"), yaxis: (0, i.axisMacroParser)(e, "yAxis"), gaugestartx: a.gaugeStartX, gaugestarty: a.gaugeStartY, gaugeendx: a.gaugeEndX, gaugeendy: a.gaugeEndY, gaugecenterx: a.gaugeCenterX, gaugecentery: a.gaugeCenterY, gaugestartangle: a.gaugeStartAngle, gaugeendangle: a.gaugeEndAngle, gaugeradius: a.gaugeRadius, plotwidth: a.plotWidth, plotsemiwidth: a.plotSemiWidth })), this.addGraphicalElement({ el: "group", attr: { name: "upperannotations" }, component: this, container: { label: "group", id: "abovePlotGroup", isParent: !0 }, id: "upperAnnotationGroup", label: "group" }), this.addGraphicalElement({ el: "group", attr: { name: "lowerannotations" }, component: this, container: { label: "group", id: "belowPlotGroup", isParent: !0 }, id: "lowerAnnotationGroup", label: "group" }) }, t }(f.SmartRenderer);
            t["default"] = b }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.getEventData = t.getScaledVal = t.parseEquation = t.solveEquation = t.isMacro = t.trim = t.pluckBoolean = t.DEFAULT_MACRO_SEPARATOR = t.DEFAULT_MACRO_PREFIX = t.UNDERSCORE = t.xyCalculator = t.axisMacroParser = t.arrangeItems = t.cleanMacro = t.compute3DSliceBounds = t.computeSliceBounds = t.computePlotBounds = t.getQuadrant = t.polarToCartesian = t.deg2Rad = void 0; var n = r(215);
            t.UNDEF = n.UNDEF; var a = 2 * Math.PI,
                i = [-a, -3 * a / 4, -a / 2, -a / 4, 0],
                o = [a, 3 * a / 4, a / 2, a / 4, 0],
                s = function(e) { return e * e },
                l = function(e) { return e * (Math.PI / 180) },
                c = function(e, t, r, n) { void 0 === r && (r = !0), void 0 === n && (n = {}); var a = t; return r || (a = l(t)), { x: e * Math.cos(a) + (n.x || 0), y: e * Math.sin(a) + (n.y || 0) } },
                u = function(e, t, r) { return 0 === e || 0 === t ? 0 : e * t / Math.sqrt(s(t) * s(Math.cos(r)) + s(e) * s(Math.sin(r))) },
                d = function(e) { var t, r, o, s, l, u, d, f, h, g = e.ringpath,
                        p = [],
                        m = [],
                        v = Infinity,
                        b = Infinity,
                        y = -Infinity,
                        x = -Infinity; for (t = (0, n.pluckNumber)(g[2]), r = (0, n.pluckNumber)(g[3]), o = (0, n.pluckNumber)(g[4]) % a, s = (0, n.pluckNumber)(g[5]) % a, l = (0, n.pluckNumber)(g[0]), u = (0, n.pluckNumber)(g[1]), f = c(t, o, !0, { x: l, y: u }), h = c(t, s, !0, { x: l, y: u }), m.push(f), m.push(h), d = 0; d < i.length; d++) i[d] >= o && i[d] <= s && p.push(d); for (d = 0; d < p.length; d++) f = c(t, i[p[d]], !0, { x: l, y: u }), h = c(r, i[p[d]], !0, { x: l, y: u }), m.push(f), m.push(h); for (f = c(r, o, !0, { x: l, y: u }), h = c(r, s, !0, { x: l, y: u }), m.push(f), m.push(h), d = 0; d < m.length; d++) y = Math.max(y, m[d].x), v = Math.min(v, m[d].x), x = Math.max(x, m[d].y), b = Math.min(b, m[d].y); return { x: v, y: b, width: Math.abs(y - v), height: Math.abs(b - x) } },
                f = function(e, t, r) { var n, i, o; return o = Math.tan(r), n = e * t / Math.sqrt(t * t + e * e * o * o), i = e * t / Math.sqrt(e * e + t * t / (o * o)), r > a / 4 && r < 3 * a / 4 ? n *= -1 : n = Math.abs(n), r > a / 2 && r < a ? i *= -1 : i = Math.abs(i), Math.abs(n) <= 1e-5 && (n = 0), Math.abs(i) <= 1e-5 && (i = 0), { x: n, y: i } },
                h = function(e, t) { var r, a, i, o, s, l = e.config || e; switch (t) {
                        case "column3D":
                        case "bar2D":
                        case "bar3D":
                        case "paretoColumn":
                        case "waterFall2D":
                        case "errorBar2D":
                        case "candlestick":
                        case "heatMap":
                        case "dragColumn":
                        case "sparkColumn":
                        case "marimekko":
                        case "task":
                        case "column":
                            r = { x: (a = l.props.element.attr).x + (0, n.pluckNumber)(a.xDepth, 0), y: a.y - (0, n.pluckNumber)(a.yDepth, 0), width: a.width, height: a.height }; break;
                        case "line":
                        case "zoomLine":
                        case "zoomScatter":
                        case "scatter":
                        case "spline":
                        case "splinearea":
                        case "multiaxisline":
                        case "stepLine":
                        case "errorScatter":
                        case "errorLine":
                        case "radar":
                        case "selectScatter":
                        case "dragLine":
                        case "dragArea":
                        case "kagi":
                        case "sparkLine":
                        case "area":
                            i = e._xPos, o = e._yPos, r = { x: i - (s = Number(l.anchorProps.radius) || 0), y: o - s, width: 2 * s, height: 2 * s }; break;
                        case "bubble":
                            r = { x: (a = l.props.element.attr).cx - a.r, y: a.cy - a.r, width: 2 * a.r, height: 2 * a.r }; break;
                        case "dragNode":
                            a = l.props.element.attr, "rect" === l.shapeType ? r = { x: a.x, y: a.y, width: a.width, height: a.height } : (i = l._xPos, o = l._yPos, r = { x: i - (s = +l.radius || 0), y: o - s, width: 2 * s, height: 2 * s }); break;
                        case "boxandwhisker2D":
                            r = { x: (a = l.props.upperBoxElem.attr).x, y: a.y, width: a.width, height: a.height }; break;
                        case "category":
                        case "polarCategory":
                        case "log":
                        case "numeric":
                            r = { x: (a = l.props.label.attr).x - l.width / 2, y: a.y - l.height / 2, width: l.width, height: l.height }, "end" === a["text-anchor"] || "left" === a["text-anchor"] ? r.x = a.x - l.width : "start" !== a["text-anchor"] && "right" !== a["text-anchor"] || (r.x = a.x), "top" === a["vertical-align"] ? r.y = a.y : "bottom" === a["vertical-align"] && (r.y = a.y - l.height); break;
                        case "multiLevelPie":
                            a = l.props.element.attr, r = d(a) } return r },
                g = function(e, t) { var r = 0; switch (e) {
                        case "startx":
                            r = t.x; break;
                        case "starty":
                            r = t.y; break;
                        case "x":
                        case "middlex":
                        case "centerx":
                            r = t.x + t.width / 2; break;
                        case "y":
                        case "middley":
                        case "centery":
                            r = t.y + t.height / 2; break;
                        case "endx":
                            r = t.x + t.width; break;
                        case "endy":
                            r = t.y + t.height; break;
                        default:
                            r = 0 } return r },
                p = function(e, t) { var r; switch (t.axis) {
                        case "x":
                        case "toX":
                            r = t.scaleX; break;
                        case "y":
                        case "toY":
                            r = t.scaleY; break;
                        default:
                            r = t.scaleValue || 1 } return e * r };
            t.parseEquation = function(e, t, r, a) { void 0 === r && (r = !1), void 0 === a && (a = "$"); var i, o, s, l, c = e.split(/([+])/),
                    u = [],
                    d = c.length; for (o = 0; o < d; o++)
                    if ("+" !== c[o]) { for (s = 0, l = (i = c[o].split(/([-])/)).length; s < l; s++) "-" !== i[s] && (u.push(i[s]), s < l - 1 && u.push("-"));
                        o < d - 1 && u.push("+") } return u.map((function(e) { var i, o, s, l = n.BLANKSTRING,
                        c = n.BLANKSTRING,
                        u = n.BLANKSTRING; if (e.charAt(0) === a) { if (u = (c = e.replace(new RegExp("[\\$ ]", "g"), "")).split(".")[0], !isNaN(+c)) return +c; for (l in t)
                            if (u === l) { if (o = new RegExp(l, "g"), "function" == typeof t[l]) try { i = u.replace(o, t[l](c)) } catch (f) { i = u.replace(o, 0) } else i = u.replace(o, t[l] || 0); break } } else { s = Number(e); var d = e;
                        isNaN(s) ? "+" !== e && "-" !== e && (d = 0) : d = r ? p(s, r).toString() : s.toString(), i = d } return i })) }, t.getScaledVal = p, t.solveEquation = function(e) { for (var t, r, n = +e[0], a = 1, i = e.length; a < i; ++a)
                    if (r = e[a], a % 2) t = r;
                    else switch (t) {
                        case "+":
                            n += +r; break;
                        case "-":
                            n -= +r }
                return n }, t.isMacro = function(e) { return ~e.indexOf("$") }, t.trim = function(e) { return e.replace(/^\s+|\s+$/g, "") }, t.pluckBoolean = function() { for (var e, t, r, n = arguments.length, a = new Array(n), i = 0; i < n; i++) a[i] = arguments[i]; for (t = 0, r = a.length; t < r; t++)
                    if (!0 === (e = a[t]) || !1 === e) return e; return !1 }, t.getEventData = function(e, t, r) { var n = r.getFromEnv("getMouseCoordinate")(r.getFromEnv("chart-container"), e, r),
                    a = t.getLinkedParent(); return { element: t.getElement(), rawConfig: t.getAttribute(), pageX: n.pageX, pageY: n.pageY, chartX: n.chartX, chartY: n.chartY, annotationId: t.getId(), groupId: a && a.getId(), annotationOptions: t.rawConfig, groupOptions: a && a.rawConfig } }, t.axisMacroParser = function(e, t) { return function(r) { var n, a, i, o, s = r.split(".").slice(1),
                        l = isNaN(Number(s[0])) ? 0 : Number(s[0]),
                        c = isNaN(Number(s[0])) ? s[1] : s[2],
                        u = isNaN(Number(s[0])) ? s[2] : s[3]; return o = (n = e.getChildren(t)[l]).components, c = Number(c), o.labelIndexArr && (c = o.labelIndexArr[c]), a = o.labels[c].config, i = h(a, n.getName()), g(u, i) } }, t.xyCalculator = g, t.arrangeItems = function(e) { void 0 === e && (e = []); var t, r, n = [],
                    a = []; for (r = e.length, t = 0; t < r; t++) "text" === e[t].type ? a.push(e[t]) : n.push(e[t]); return n.concat(a) }, t.cleanMacro = function(e) { var t, r, a = n.BLANKSTRING; for (t = 0, r = e.length; t < r; t++) " " !== e[t] && (a += e[t]); return a }, t.computePlotBounds = h, t.computeSliceBounds = function(e, t) { var r, n, a, i, o, s, l = t.props.element.attr,
                    u = l.ringpath; switch (r = u[0], n = u[1], a = u[2], o = u[4], s = u[5], e) {
                    case "slicex":
                    case "slicemiddlex":
                    case "slicecenterx":
                        i = c(a, (o + s) / 2).x + r; break;
                    case "slicey":
                    case "slicemiddley":
                    case "slicecentery":
                        i = c(a, (o + s) / 2).y + n; break;
                    case "slicestartx":
                        i = c(a, s).x + r; break;
                    case "slicestarty":
                        i = c(a, s).y + n; break;
                    case "sliceendx":
                        i = c(a, o).x + r; break;
                    case "sliceendy":
                        i = c(a, o).y + n; break;
                    default:
                        i = g(e, d(l)) } return i }, t.compute3DSliceBounds = function(e, t) { var r, i = t.props.element.attr,
                    s = i.r,
                    l = s * i.radiusYFactor,
                    d = i.cx,
                    h = i.cy,
                    p = i.sAngle,
                    m = i.eAngle; switch (e) {
                    case "slicex":
                    case "slicemiddlex":
                    case "slicecenterx":
                        r = f(s, l, (p + m) / 2).x + d; break;
                    case "slicey":
                    case "slicemiddley":
                    case "slicecentery":
                        r = f(s, l, (p + m) / 2).y + h; break;
                    case "slicestartx":
                        r = f(s, l, p).x + d; break;
                    case "slicestarty":
                        r = f(s, l, p).y + h; break;
                    case "sliceendx":
                        r = f(s, l, m).x + d; break;
                    case "sliceendy":
                        r = f(s, l, m).y + h; break;
                    default:
                        r = g(e, function(e) { var t, r, i, s, l, d, f, h, g, p = [],
                                m = [],
                                v = Infinity,
                                b = Infinity,
                                y = -Infinity,
                                x = -Infinity; for (t = (0, n.pluckNumber)(e.r), r = (0, n.pluckNumber)(t * e.radiusYFactor), i = (0, n.pluckNumber)(e.sAngle) % a, s = (0, n.pluckNumber)(e.eAngle) % a, l = (0, n.pluckNumber)(e.cx), d = (0, n.pluckNumber)(e.cy), h = c(u(t, r, i), i, !0, { x: l, y: d }), g = c(u(t, r, s), s, !0, { x: l, y: d }), m.push(h), m.push(g), f = 0; f < o.length; f++) o[f] >= i && o[f] <= s && p.push(f); for (f = 0; f < p.length; f++) h = c(u(t, r, o[p[f]]), o[p[f]], !0, { x: l, y: d }), m.push(h); for (t = (0, n.pluckNumber)(e.innerR, 0), r = (0, n.pluckNumber)(t * e.radiusYFactor, 0), h = c(u(t, r, i), i, !0, { x: l, y: d }), g = c(u(t, r, s), s, !0, { x: l, y: d }), m.push(h), m.push(g), f = 0; f < p.length; f++) h = c(u(t, r, o[p[f]]), o[p[f]], !0, { x: l, y: d }), m.push(h); for (f = 0; f < m.length; f++) y = Math.max(y, m[f].x), v = Math.min(v, m[f].x), x = Math.max(x, m[f].y), b = Math.min(b, m[f].y); return { x: v, y: b, width: Math.abs(y - v), height: Math.abs(b - x) } }(i)) } return r }, t.getQuadrant = function(e, t, r) { return e.x >= t ? e.y <= r ? 0 : 3 : e.y <= r ? 1 : 2 }, t.polarToCartesian = c, t.deg2Rad = l, t.DEFAULT_MACRO_SEPARATOR = ".", t.DEFAULT_MACRO_PREFIX = "$", t.UNDERSCORE = "_" }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "initial" }] },
                a = { "initial.extension.annotation": function() { return { "polypath.appearing": n, "text.appearing": n, "image.appearing": n, "ellipse.appearing": n, "ringpath.appearing": n, "path.appearing": n, "rect.appearing": n, "*": null } } };
            t["default"] = a }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t = Math,
                    r = t.cos,
                    n = t.sin,
                    a = t.abs,
                    i = t.pow,
                    o = t.PI,
                    s = 2 * o,
                    l = "M",
                    c = "A",
                    u = i(2, -24);
                e.define && e.define([{ name: "ringpath", ringpath: function() { return this.path(void 0, e._lastArgIfGroup(arguments)) }, ca: function(e, t, i, d, f, h, g, p) { var m, v, b, y, x, w, C, _, k, S, E, A, T, M, N = h % s - f % s,
                            D = h - f,
                            F = g,
                            I = p; return isNaN(F) && (F = i), isNaN(I) && (I = d), this._.ringangle = .5 * (f + h), a(D) < u ? (m = r(f), v = n(f), w = [l, e + i * m, t + F * v, "L", e + d * m, t + I * v, "Z"]) : a(D) > u && +(a(D) % s < u || s - a(D) % s < u) ? (w = [l, e - i, t, c, i, F, 0, 0, 0, e + i, t, c, i, F, 0, 0, 0, e - i, t], 0 === d && 0 === I || (w = w.concat([l, e - d, t, c, d, I, 0, 0, 1, e + d, t, c, d, I, 0, 0, 1, e - d, t])), w.push("Z")) : (m = r(f), v = n(f), b = r(h), y = n(h), (N %= s) < 0 && (N += s), x = N < o ? 0 : 1, E = t + F * v, A = t + F * y, k = e + d * b, T = t + I * y, a((C = e + i * m) - (_ = e + i * b)) < .01 && a(E - A) < .01 && (C = e + i * r(f + .0001745329), E = t + F * n(f + .0001745329)), w = [l, C, E, c, i, F, 0, x, 1, _, A, "L", k, T], 0 === d && 0 === I || (M = t + I * v, a(k - (S = e + d * m)) < .01 && a(T - M) < .01 && (S = e + d * r(f + .0001745329), M = t + I * n(f + .0001745329)), w.push(c, d, I, 0, x, 0, S, M)), w.push("Z")), { path: w } } }]) } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { e.define && e.define([{ name: "arcpath", arcpath: function() { return this.path(void 0, e._lastArgIfGroup(arguments)) }, ca: function(e, t, r, n) { var a = n,
                            i = a - 90,
                            o = Math.PI * (i / 180); return { path: ["M", e, t - r, "A", r, r, 0, a > 180 ? 1 : 0, 1, e + r * Math.cos(o), t + r * Math.sin(o)] } } }]) } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(215),
                o = r(298),
                s = n(r(303)),
                l = n(r(304)),
                c = n(r(315)),
                u = n(r(316)),
                d = n(r(317)),
                f = n(r(318)),
                h = n(r(319)),
                g = n(r(233)),
                p = { circle: l["default"], arc: l["default"], line: c["default"], path: c["default"], rectangle: u["default"], polygon: h["default"], image: d["default"], text: f["default"] },
                m = function(e) {
                    function t(t) { var r; return (r = e.call(this, t) || this).groups = [], r.items = [], r }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "group" }, r.configureAttributes = function(e) { var t, r = this,
                            n = r.config;
                        r.rawConfig = e || {}, n.id = r.rawConfig.id || r.getId("group"), n.autoScale = (0, i.pluckNumber)(r.rawConfig.autoScale, 1), n.scaleText = (0, i.pluckNumber)(r.rawConfig.scaleText, 0), n.scaleX = n.origScaleX = (0, i.pluckNumber)(r.rawConfig.xScale) / 100, n.scaleY = n.origScaleY = (0, i.pluckNumber)(r.rawConfig.yScale) / 100, n.scaleImages = (0, i.pluckNumber)(r.rawConfig.scaleImages, 0), n.constrainedScale = (0, i.pluckNumber)(r.rawConfig.constrainedScale, 1), n.origH = Number(r.rawConfig.origH), n.origW = Number(r.rawConfig.origW), n.link = r.rawConfig.link, n.color = r.rawConfig.color || "#FF0000", n.alpha = (0, i.pluckNumber)(parseFloat(r.rawConfig.alpha), 100), n.showShadow = (0, i.pluckNumber)(r.rawConfig.showShadow, 0), n.x = (0, i.pluckNumber)(r.rawConfig.x, r.rawConfig.xPos, 0), n.y = (0, i.pluckNumber)(r.rawConfig.y, r.rawConfig.yPos, 0), n.font = (0, i.pluck)(r.rawConfig.font, "Verdana, sans"), n.fontSize = (0, i.pluckFontSize)(r.rawConfig.fontSize, 10), n.textAlign = (0, i.pluck)(r.rawConfig.textAlign), n.textVAlign = (0, i.pluck)(r.rawConfig.textVAlign), n.rotateText = (0, i.pluck)(r.rawConfig.rotateText), n.wrapText = (0, i.pluck)(r.rawConfig.wrapText), n.grpXShift = (0, i.pluckNumber)(r.rawConfig.grpXShift, 0), n.grpYShift = (0, i.pluckNumber)(r.rawConfig.grpYShift, 0), n.xShift = (0, i.pluckNumber)(r.rawConfig.xShift, 0), n.yShift = (0, i.pluckNumber)(r.rawConfig.yShift, 0), n.toolText = r.rawConfig.toolText, n.isVisible = (0, o.pluckBoolean)(r.rawConfig.isVisible, !0), n.elementType = "group", n.containerConfiguration = { id: r.rawConfig.showBelow ? "lowerAnnotationGroup" : "upperAnnotationGroup", label: "group", isParent: !0 }, n.animationLabel = "group", r.rawConfig.customComponent instanceof g["default"] ? n.customComponent = n.rawConfig.customComponent : delete n.customComponent, r.rawConfig.itemConfigs.forEach((function(e) { t = e.type && e.type.toLowerCase(), p[t] && r.attachChild(p[t], "item", e.id).configure(e) })), r.items = r.getChildren("item") || [] }, r.updateScale = function() { var e, t, r, n, a, i = this.config,
                            o = this.getFromEnv("chart"),
                            s = +o.getFromEnv("chartHeight"),
                            l = +o.getFromEnv("chartWidth"),
                            c = i.autoScale,
                            u = i.constrainedScale;
                        this._setConfig("origW", Number(i.origW) || l), this._setConfig("origH", Number(i.origH) || s), c ? (t = l / i.origW * (Number(i.origScaleX) || 1), r = s / i.origH * (Number(i.origScaleY) || 1)) : t = r = 1, e = Math.min(t, r), this._setConfig("scaleValue", e), (c > 0 || isNaN(i.scaleX)) && (n = u ? e : t, this._setConfig("scaleX", n)), (c > 0 || isNaN(i.scaleY)) && (a = u ? e : r, this._setConfig("scaleY", a)), i.scaleFont = i.scaleText ? Math.min(i.scaleX, i.scaleY) : 1, i.scaleImageX = i.scaleImages ? i.scaleX : 1, i.scaleImageY = i.scaleImages ? i.scaleY : 1, i.scaleInfo = { scaleX: i.scaleX, scaleY: i.scaleY, scaleValue: i.scaleValue } }, r.updateAttr = function() { var e, t, r, n = this.config,
                            a = n.calculatedAttrs; for (e in a) a[e] && (n[e] = a[e]);
                        t = this.getScaledVal(n.grpXShift) + n.xShift, r = this.getScaledVal(n.grpYShift) + n.yShift, this._setConfig("attr", { transform: "T" + t + "," + r }) }, r.retrieveItem = function(e) { var t, r; for (t = 0, r = this.items.length; t < r; t++)
                            if (this.items[t].getId() === e) return this.items[t] }, r.getScaledVal = function(e, t) { return this ? e * (t ? this._getConfig("scaleX") : (!1 === t ? this._getConfig("scaleY") : this._getConfig("scaleValue")) || 1) : e }, r.getScaledFont = function(e) { return this ? e * this._getConfig("scaleFont") : e }, r.getScaledImageVal = function(e, t) { return this ? e * ((t ? this._getConfig("scaleImageX") : this._getConfig("scaleImageY")) || 1) : e }, r.getScaleInfo = function() { return this.config.scaleInfo }, r.draw = function() { var e, t, r = this._getConfig("attr") || {};
                        this.updateScale(), this.parseAndSetAttribute(), e = this.getScaledVal(this._getConfig("grpXShift")) + this._getConfig("xShift"), t = this.getScaledVal(this._getConfig("grpYShift")) + this._getConfig("yShift"), r.name = this._getConfig("id"), r.transform = r.transform || "T" + e + "," + t, r.visibility = this.config.isVisible ? i.visibleStr : i.hiddenStr, this.addGraphicalElement({ el: "group", attr: r, container: this.config.containerConfiguration, component: this.config.customComponent || this, label: this.config.animationLabel, id: this.config.id }) }, t }(s["default"]);
            t["default"] = m }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(215),
                s = r(298),
                l = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getType = function() { return "shape" }, r._setConfig = function(e, t) { this.config[e] = t }, r._getConfig = function(e) { return void 0 === e && (e = ""), "" === e ? this.config : this.config[e] }, r.getElement = function() { var e = this.config; return this.getGraphicalElement(e.id, e.animationLabel) }, r.getBounds = function() { return this.getElement().getBBox() }, r.data = function(e, t) { if (e && "string" == typeof e) { if (t === o.UNDEF) return this._data && this._data[e];!this._data && (this._data = {}), this._data[e] = t } }, r.parseAndSetAttribute = function() { var e, t, r = this.rawConfig,
                            n = this.getFromEnv("snapPoints"),
                            a = { x: (0, o.pluck)(r.x, r.xPos, 0), y: (0, o.pluck)(r.y, r.yPos, 0), toX: (0, o.pluck)(r.toX), toY: (0, o.pluck)(r.toY) },
                            i = this.config.calculatedAttrs = {},
                            l = this.getScaleInfo(); for (var c in a) a.hasOwnProperty(c) && void 0 !== (t = a[c]) && (t = t.toString(), l.axis = c, (0, s.isMacro)(t) ? i[c] = (0, s.solveEquation)((0, s.parseEquation)((0, s.cleanMacro)(t.toLowerCase()), n, l)) : (i[c] = (0, s.solveEquation)((0, s.parseEquation)((0, s.cleanMacro)(t.toLowerCase()), n)), (0, o.pluckNumber)(r.autoscale, r.autoScale, 1) && (i[c] = (0, s.getScaledVal)(i[c], l)))); "group" !== this.config.elementType && (e = this.getLinkedParent().config.calculatedAttrs, i.x = i.x + (e.x || 0), i.y = i.y + (e.y || 0), isNaN(Number(i.toX)) ? i.toX = i.x : i.toX += e.x || 0, isNaN(Number(i.toY)) || (i.toY += e.y || 0)), this.updateAttr() }, r.getAttribute = function(e) { return void 0 === e && (e = ""), "" === e ? this.rawConfig : this.rawConfig[e] }, r.show = function() { var e = Object.assign({}, this.rawConfig);
                        e.isVisible = !0, this.setData(e) }, r.hide = function() { var e = Object.assign({}, this.rawConfig);
                        e.isVisible = !1, this.setData(e) }, t }(i.SmartRenderer);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(215),
                o = n(r(305));

            function s(e) { return e * (Math.PI / 180) } var l = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "circle" }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r, n = this.rawConfig,
                        a = this.getFromEnv("chart"),
                        o = +a.getFromEnv("chartHeight") || 700,
                        s = +a.getFromEnv("chartWidth") || 350;
                    this.config.radius = n.radius, this.config.xRadius = (0, i.pluckNumber)(parseFloat(n.radius), parseFloat(n.xRadius), Math.sqrt(Math.max(o, s))), this.config.yRadius = (0, i.pluckNumber)(parseFloat(n.yRadius), this.config.xRadius), this.config.startAngle = (0, i.pluckNumber)(parseFloat(n.startAngle), 0), this.config.endAngle = (0, i.pluckNumber)(parseFloat(n.endAngle), 360), this.config.innerRadius = (0, i.pluckNumber)(parseFloat(n.innerRadius), 0), this.config.innerYRadius = (0, i.pluckNumber)(parseFloat(n.innerYRadius), this.config.innerRadius, 0), "arc" === this.config.type || 0 !== (r = this.config).startAngle || 360 !== r.endAngle || function(e) { return e.innerRadius > 0 || e.innerYRadius > 0 }(this.config) ? this.config.elementType = "ringpath" : this.config.elementType = "ellipse" }, r.updateAttr = function() { var e, t = this.config,
                        r = t.calculatedAttrs,
                        n = this.getFromEnv("chart"),
                        a = +n.getFromEnv("chartHeight"),
                        o = +n.getFromEnv("chartWidth"),
                        l = this.getScaledVal(t.xRadius),
                        c = this.getScaledVal(t.yRadius),
                        u = this.getScaledVal(t.innerRadius),
                        d = this.getScaledVal(t.innerYRadius); switch ((0, i.pluck)(t.radius) || (t.radius = o < a ? this.getScaledVal(o) : this.getScaledVal(a), t.radius *= .3, u > t.radius && (u += t.radius, t.radius = u - t.radius, u -= t.radius), l = c = t.radius, d = u), t.elementType) {
                        case "ringpath":
                            e = { ringpath: [(0, i.pluckNumber)(r.x, this.getScaledVal(t.x, !0)), (0, i.pluckNumber)(r.y, this.getScaledVal(t.y, !1)), l, u, s(360 - t.endAngle), s(360 - t.startAngle), c, d] }; break;
                        default:
                            e = { cx: (0, i.pluckNumber)(r.x, this.getScaledVal(t.x, !0)), cy: (0, i.pluckNumber)(r.y, this.getScaledVal(t.y, !1)) } } this._setConfig("attr", e) }, r._getAnnotationAttrs = function() { var e, t = this.config,
                        r = this.config.attr || {},
                        n = t.x,
                        a = t.y,
                        i = this.getScaledVal(t.xRadius),
                        o = this.getScaledVal(t.yRadius); switch (t.xRadius || (i = 0), t.yRadius || (o = 0), r.fill = t.color, r.stroke = t.borderColor, r["stroke-width"] = t.borderThickness, r["stroke-dasharray"] = t.dashArrayStr, this.config.elementType) {
                        case "ringpath":
                            e = [this.getScaledVal(n, !0), this.getScaledVal(a, !1), i, this.getScaledVal(t.innerRadius), s(360 - t.endAngle), s(360 - t.startAngle), o, this.getScaledVal(t.innerYRadius)], r.ringpath = r.ringpath || e; break;
                        default:
                            r.rx = i, r.ry = o, r.cx = "undefined" == typeof r.cx ? this.getScaledVal(n, !0) : r.cx, r.cy = "undefined" == typeof r.cy ? this.getScaledVal(a, !1) : r.cy } return r }, t }(o["default"]);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(306)),
                o = n(r(303)),
                s = r(215),
                l = r(298),
                c = n(r(233)),
                u = function(e) { return void 0 === e ? void 0 : 1 },
                d = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function(e) { var t, r, n = this,
                            a = n.config,
                            o = n.getFromEnv("chart"),
                            d = n.getLinkedParent();
                        n.groupConfig = {}, n.rawConfig = {}, null !== d && (n.groupConfig.x = d._getConfig("x"), n.groupConfig.y = d._getConfig("y"), n.groupConfig.grpXShift = d._getConfig("grpXShift"), n.groupConfig.grpYShift = d._getConfig("grpYShift"), n.groupConfig.color = d._getConfig("color"), n.groupConfig.alpha = d._getConfig("alpha"), n.groupConfig.font = d._getConfig("font"), n.groupConfig.fontSize = d._getConfig("fontSize"), n.groupConfig.textAlign = d._getConfig("textAlign"), n.groupConfig.textVAlign = d._getConfig("textVAlign"), n.groupConfig.rotateText = d._getConfig("rotateText"), n.groupConfig.wrapText = d._getConfig("wrapText"), n.groupConfig.toolText = d._getConfig("toolText"), n.groupConfig.scaleX = d._getConfig("scaleX"), n.groupConfig.scaleY = d._getConfig("scaleY"), n.groupConfig.scaleImageX = d._getConfig("scaleImageX"), n.groupConfig.scaleImageY = d._getConfig("scaleImageY"), n.groupConfig.link = d._getConfig("link")), n.rawConfig = (0, i["default"])(n.rawConfig, e) || {}, a.type = n.rawConfig.type, a.color = n._getFillColor(n.rawConfig, this.groupConfig), a.link = (0, s.pluck)(n.rawConfig.link, n.groupConfig.link), a.borderThickness = (0, s.pluckNumber)(parseFloat(n.rawConfig.borderThickness), parseFloat(n.rawConfig.thickness), 2), a.showBorder = (0, s.pluckNumber)(n.rawConfig.showBorder, parseFloat(n.rawConfig.borderThickness), parseFloat(n.rawConfig.thickness), u(n.rawConfig.borderColor), u(n.rawConfig.borderAlpha), 0), a.borderColor = n._getBorderColor(n.rawConfig), a.dashed = (0, s.pluckNumber)(n.rawConfig.dashed, 0), a.dashLen = (0, s.pluckNumber)(n.rawConfig.dashLen, 5), a.dashGap = (0, s.pluckNumber)(parseFloat(n.rawConfig.dashGap), 3), a.dashArrayStr = a.dashed ? (0, s.getDashStyle)(a.dashLen, a.dashGap) : "none", a.x = (0, s.pluckNumber)(n.rawConfig.x, n.rawConfig.xPos, 0), a.y = (0, s.pluckNumber)(n.rawConfig.y, n.rawConfig.yPos, 0), a.tox = (0, s.pluckNumber)(n.rawConfig.toX, a.x, 0), a.toy = (0, s.pluckNumber)(n.rawConfig.toY, a.y, 0), a.toy >= 0 && a.y >= 0 && a.toy < a.y && (t = [a.toy, a.y], a.y = t[0], a.toy = t[1]), a.tox >= 0 && a.x >= 0 && a.tox < a.x && (r = [a.tox, a.x], a.x = r[0], a.tox = r[1]), a.showShadow = (0, s.pluckNumber)(n.rawConfig.showShadow, d.config.showShadow, 0), a.toolText = (0, s.getFirstValue)(n.rawConfig.toolText, this.groupConfig.toolText, ""), a.isVisible = (0, l.pluckBoolean)(n.rawConfig.isVisible, !0), a.id = (0, s.pluck)(n.rawConfig.id, n.getId(n.config.elementType)), a.containerConfiguration = { id: n.getLinkedParent().config.id, label: "group", isParent: !0 }, n._clickHandler = n._clickHandler || function(e) { n.config.link && n.getFromEnv("linkClickFN").call({ link: n.config.link }, !0), n.rawConfig.onAnnotationClick instanceof Function ? n.rawConfig.onAnnotationClick() : d.rawConfig.onAnnotationClick instanceof Function ? d.rawConfig.onAnnotationClick() : o.fireChartInstanceEvent("annotationclick", (0, l.getEventData)(e, n, o), void 0, void 0, e) }, n._rollOverHandler = n._rollOverHandler || function(e) { n.rawConfig.onAnnotationRollover instanceof Function ? n.rawConfig.onAnnotationRollover() : d.rawConfig.onAnnotationRollover instanceof Function ? d.rawConfig.onAnnotationRollover() : o.fireChartInstanceEvent("annotationrollover", (0, l.getEventData)(e, n, o), void 0, void 0, e) }, n._rollOutHandler = n._rollOutHandler || function(e) { n.rawConfig.onAnnotationRollout instanceof Function ? n.rawConfig.onAnnotationRollout() : d.rawConfig.onAnnotationRollout instanceof Function ? d.rawConfig.onAnnotationRollout() : o.fireChartInstanceEvent("annotationrollout", (0, l.getEventData)(e, n, o), void 0, void 0, e) }, n.rawConfig.customComponent instanceof c["default"] ? a.customComponent = a.rawConfig.customComponent : delete a.customComponent }, r._getBorderColor = function(e) { var t = "none",
                            r = { color: s.BLANKSTRING, alpha: s.BLANKSTRING }; return "line" !== this.getType() && (r.color = this.config.rawBorderColor = (0, s.pluck)(e.borderColor, e.fillColor && e.fillColor.split(",")[0], e.color && e.color.split(",")[0], "#000000"), 0 === this.config.showBorder ? (r.alpha = 1, this.config.borderThickness = 2) : r.alpha = this.config.rawBorderAlpha = (0, s.pluckNumber)(parseFloat(e.borderAlpha), parseFloat(e.alpha), 100), t = (0, s.toRaphaelColor)(r)), t }, r._getFillColor = function(e, t) { var r = this.config.type,
                            n = { color: s.BLANKSTRING, alpha: s.BLANKSTRING, angle: s.BLANKSTRING, ratio: s.BLANKSTRING, radialGradient: "circle" === r || "arc" === r }; return "line" === r || "image" === r ? (n.color = e.color || t.color || "#FF0000", n.alpha = (0, s.pluckNumber)(parseFloat(e.alpha), t.alpha, 100)) : (n.color = e.fillColor || e.color || t.color || "#FF0000", n.alpha = (0, s.pluck)(e.fillAlpha, parseFloat(e.alpha), t.alpha, 100), n.angle = 360 - (0, s.pluckNumber)(e.fillAngle, 0), n.ratio = (0, s.pluck)(e.fillRatio), e.fillPattern && (n.radialGradient = "radial" === e.fillPattern.toLowerCase() || (0, s.pluckNumber)(e.fillPattern)), n.radialGradient && (n.gradientUnits = "objectBoundingBox", n.cx = .5, n.cy = .5, n.fx = .5, n.fy = .5)), this.config.rawColor = n.color, this.config.rawAlpha = n.alpha, this.config.rawAngle = n.angle, this.config.rawFillPattern = n.radialGradient ? "radial" : "linear", this.config.rawRatio = n.ratio, (0, s.toRaphaelColor)(n) }, t.destroySelectionBox = function() {}, r._applyAttr = function(e) { var t, r = this.config.elementType,
                            n = Object.assign({}, e);
                        ("image" !== r || this.config.url) && ((t = this.rawConfig.css || {}).cursor = this.config.link ? s.POINTER : "default", this.config.isVisible ? n.visibility = s.visibleStr : n.visibility = s.hiddenStr, this.addEventListener("fc-click", this._clickHandler), this.addEventListener("fc-mouseover", this._rollOverHandler), this.addEventListener("fc-mouseout", this._rollOutHandler), this.config.animationLabel = this.rawConfig.animationLabel || this.getLinkedParent().config.animationLabel || r, this.addGraphicalElement({ el: r, attr: n, css: t, container: this.config.containerConfiguration, component: this.config.customComponent || this, label: this.config.animationLabel, id: this.config.id, tooltext: this.config.toolText, shadow: { opacity: 0 !== this.config.showShadow ? 1 : 0, useFilter: "path" === r ? 0 : 1 }, outlineText: n.outlineText })) }, r.getScaledVal = function(e, t) { var r = this.getLinkedParent(); return r ? r.getScaledVal(e, t) : e }, r.getScaledFont = function(e) { var t = this.getLinkedParent(); return t ? t.getScaledFont(e) : e }, r.getScaledImageVal = function(e, t) { var r = this.getLinkedParent(); return r ? r.getScaledImageVal(e, t) : e }, r.getScaleInfo = function() { return this.getLinkedParent().config.scaleInfo }, r.draw = function() { this.parseAndSetAttribute(), this._applyAttr(this._getAnnotationAttrs() || {}) }, t }(o["default"]);
            t["default"] = d }, function(e, t, r) { var n = r(307),
                a = r(310),
                i = n((function(e, t) { return a((function(e, t, r) { return r }), e, t) }));
            e.exports = i }, function(e, t, r) { var n = r(308),
                a = r(309);
            e.exports = function(e) { return function t(r, i) { switch (arguments.length) {
                        case 0:
                            return t;
                        case 1:
                            return a(r) ? t : n((function(t) { return e(r, t) }));
                        default:
                            return a(r) && a(i) ? t : a(r) ? n((function(t) { return e(t, i) })) : a(i) ? n((function(t) { return e(r, t) })) : e(r, i) } } } }, function(e, t, r) { var n = r(309);
            e.exports = function(e) { return function t(r) { return 0 === arguments.length || n(r) ? t : e.apply(this, arguments) } } }, function(e, t) { e.exports = function(e) { return null != e && "object" == typeof e && !0 === e["@@functional/placeholder"] } }, function(e, t, r) { var n = r(311),
                a = r(312),
                i = r(313),
                o = n((function s(e, t, r) { return i((function(t, r, n) { return a(r) && a(n) ? s(e, r, n) : e(t, r, n) }), t, r) }));
            e.exports = o }, function(e, t, r) { var n = r(308),
                a = r(307),
                i = r(309);
            e.exports = function(e) { return function t(r, o, s) { switch (arguments.length) {
                        case 0:
                            return t;
                        case 1:
                            return i(r) ? t : a((function(t, n) { return e(r, t, n) }));
                        case 2:
                            return i(r) && i(o) ? t : i(r) ? a((function(t, r) { return e(t, o, r) })) : i(o) ? a((function(t, n) { return e(r, t, n) })) : n((function(t) { return e(r, o, t) }));
                        default:
                            return i(r) && i(o) && i(s) ? t : i(r) && i(o) ? a((function(t, r) { return e(t, r, s) })) : i(r) && i(s) ? a((function(t, r) { return e(t, o, r) })) : i(o) && i(s) ? a((function(t, n) { return e(r, t, n) })) : i(r) ? n((function(t) { return e(t, o, s) })) : i(o) ? n((function(t) { return e(r, t, s) })) : i(s) ? n((function(t) { return e(r, o, t) })) : e(r, o, s) } } } }, function(e, t) { e.exports = function(e) { return "[object Object]" === Object.prototype.toString.call(e) } }, function(e, t, r) { var n = r(311),
                a = r(314),
                i = n((function(e, t, r) { var n, i = {}; for (n in t) a(n, t) && (i[n] = a(n, r) ? e(n, t[n], r[n]) : t[n]); for (n in r) a(n, r) && !a(n, i) && (i[n] = r[n]); return i }));
            e.exports = i }, function(e, t) { e.exports = function(e, t) { return Object.prototype.hasOwnProperty.call(t, e) } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(215),
                o = r(298),
                s = n(r(305));

            function l(e) { return e <= "9" && e >= "0" || "-" === e || "." === e ? 0 : e <= "z" && e >= "a" || e <= "Z" && e >= "A" ? 1 : 2 } var c = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "path" }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r = this.rawConfig;
                    this.config.pathStr = (0, i.pluck)(r.path), this.config.x = (0, i.pluckNumber)(r.x, 0), this.config.y = (0, i.pluckNumber)(r.y, 0), this.config.tox = (0, i.pluckNumber)(r.toX, this.config.x), this.config.toy = (0, i.pluckNumber)(r.toY, this.config.y), this.config.elementType = "path" }, r.getScaledPath = function() { var e, t, r, n, a, s = this.config.pathStr,
                        c = [],
                        u = i.BLANKSTRING; for (a = s && s.length, r = 0; r < a; r++) { for (n = r, t = i.BLANKSTRING, e = l(s[r]); n < a && l(s[n]) === e;) t += s[n], n++; "" !== (t = (0, o.trim)(t)) && e < 2 && c.push(t), r = n === r ? n : n - 1 } for (a = c.length, r = 0; r < a;) switch (u += c[r], c[r].toLowerCase()) {
                        case "m":
                        case "l":
                        case "t":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 2]), !1).toString(), r += 3; break;
                        case "s":
                        case "q":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 2]), !1).toString() + ",", u += this.getScaledVal(Number(c[r + 3]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 4]), !1).toString(), r += 5; break;
                        case "h":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString(), r += 2; break;
                        case "v":
                            u += this.getScaledVal(Number(c[r + 1]), !1).toString(), r += 2; break;
                        case "c":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 2]), !1).toString() + ",", u += this.getScaledVal(Number(c[r + 3]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 4]), !1).toString() + ",", u += this.getScaledVal(Number(c[r + 5]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 6]), !1).toString(), r += 7; break;
                        case "a":
                            u += this.getScaledVal(Number(c[r + 1]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 2]), !1).toString() + ",", u += this.getScaledVal(Number(c[r + 3]), !0).toString() + ",", u += c[r + 4] + ",", u += c[r + 5] + ",", u += this.getScaledVal(Number(c[r + 6]), !0).toString() + ",", u += this.getScaledVal(Number(c[r + 7]), !1).toString(), r += 8; break;
                        case "z":
                        default:
                            r++ }
                    return u.toString() }, r.updateAttr = function() { var e, t, r = this.config,
                        n = r.calculatedAttrs,
                        a = {};
                    e = (0, i.pluckNumber)(n.x, this.getScaledVal(r.x, !0)), t = (0, i.pluckNumber)(n.y, this.getScaledVal(r.y, !1)), r.pathStr ? (a.path = this.getScaledPath(), a.transform = "T" + e + "," + t) : a.path = "M" + e + "," + t + "L" + (0, i.pluckNumber)(n.toX, e, this.getScaledVal(r.tox, !0)) + "," + (0, i.pluckNumber)(n.toY, t, this.getScaledVal(r.toy, !1)), this._setConfig("attr", a) }, r._getAnnotationAttrs = function() { var e, t, r, n, a, i = this.config,
                        o = this._getConfig("attr") || {},
                        s = i.color; return o.stroke = s, this.rawConfig.color && (o.fill = s), o["stroke-width"] = this.getScaledVal(i.borderThickness), o["stroke-dasharray"] = i.dashArrayStr, e = o.x || this.getScaledVal(i.x, !0), t = o.y || this.getScaledVal(i.y, !1), r = o.toX || this.getScaledVal(i.tox, !0), n = o.toY || this.getScaledVal(i.toy, !1), o.path || ((a = this.getScaledPath()) ? (o.path = a, o.transform = o.transform || "T" + e + "," + t) : o.path = o.path || "M" + e + "," + t + "L" + r + "," + n), o }, t }(s["default"]);
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(215),
                o = n(r(305)),
                s = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "rect" }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t);
                        this.config.xRadius = (0, i.pluckNumber)(parseFloat(this.rawConfig.radius), 0), this.config.elementType = "rect" }, r.updateAttr = function() { var e, t, r, n, a, o, s = this.config,
                            l = s.calculatedAttrs;
                        r = (0, i.pluckNumber)(l.x, this.getScaledVal(s.x, !0)), n = (0, i.pluckNumber)(l.y, this.getScaledVal(s.y, !1)), a = (0, i.pluckNumber)(l.toX, this.getScaledVal(s.tox, !0)), (o = (0, i.pluckNumber)(l.toY, this.getScaledVal(s.toy, !1))) >= 0 && n >= 0 && o < n && (n = (e = [o, n])[0], o = e[1]), a >= 0 && r >= 0 && a < r && (r = (t = [a, r])[0], a = t[1]), this._setConfig("attr", { x: r, y: n, width: Math.abs(a - r), height: Math.abs(o - n) }) }, r._getAnnotationAttrs = function() { var e = this.config,
                            t = this._getConfig("attr") || {},
                            r = this.getScaledVal(e.x),
                            n = this.getScaledVal(e.y); return t.x = "undefined" == typeof t.x ? r : t.x, t.y = "undefined" == typeof t.y ? n : t.y, t.width = "undefined" == typeof t.width ? Math.abs(this.getScaledVal(e.tox) - r) : t.width, t.height = "undefined" == typeof t.height ? Math.abs(this.getScaledVal(e.toy) - n) : t.height, t.r = this.getScaledVal(e.xRadius), t.fill = e.color, t.stroke = e.borderColor, t["stroke-width"] = e.borderThickness, t["stroke-dasharray"] = e.dashArrayStr, t }, t }(o["default"]);
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(305)),
                o = r(215),
                s = function(e) { var t = this.config,
                        r = e.originalEvent.target,
                        n = r.height,
                        a = r.width,
                        i = this._getConfig("align"),
                        o = this._getConfig("vAlign"),
                        s = this._getConfig("xScale"),
                        l = n * this._getConfig("yScale"),
                        c = a * s,
                        u = function(e) { var t = e.height,
                                r = e.width,
                                n = e.vAlign,
                                a = e.align,
                                i = e.x,
                                o = e.y,
                                s = { x: i, y: o }; switch (a) {
                                case "center":
                                    s.x = i - r / 2; break;
                                case "right":
                                    s.x = i - r } switch (n) {
                                case "middle":
                                    s.y = o - t / 2; break;
                                case "bottom":
                                    s.y = o - t } return s }({ x: t.derivedX, y: t.derivedY, height: l, width: c, align: i, vAlign: o });
                    this.config.loadedWidth = a, this.config.loadedHeight = n, t = Object.assign(this.rawConfig, { x: u.x, y: u.y, width: c, height: l, autoScale: 0 }), this.getGraphicalElement(this.config.id, this.config.animationLabel).attr(t), this.rawConfig.onload && this.rawConfig.onload.call(this, { width: c, height: l }), e.detachHandler() },
                l = function(e) {
                    function t(t) { var r; return (r = e.call(this, t) || this)._listener = s, r }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "image" }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r = this.rawConfig,
                            n = this.config;
                        n.url = (0, o.getValidValue)(r.url), n.xScale = n.rawXScale = (0, o.pluckNumber)(r.xScale, 100) / 100, n.yScale = n.rawYScale = (0, o.pluckNumber)(r.yScale, 100) / 100, n.width = (0, o.pluckNumber)(n.loadedWidth, r.width), n.height = (0, o.pluckNumber)(n.loadedHeight, r.height), n.align = (0, o.pluck)(r.align, "left"), n.vAlign = (0, o.pluck)(r.vAlign, "top"), n.xScale = n.xScale * (this.groupConfig.scaleX || 1), n.yScale = n.yScale * (this.groupConfig.scaleY || 1), n.elementType = "image", "undefined" == typeof n.width && "undefined" == typeof n.height && this.addEventListener("load", this._listener) }, r.updateAttr = function() { var e = this.getLinkedParent(),
                            t = this.config,
                            r = t.calculatedAttrs;
                        this.config.xScale = e.config.scaleX * t.rawXScale, this.config.yScale = e.config.scaleY * t.rawYScale, this._setConfig("attr", { x: (0, o.pluckNumber)(r.x, this.getScaledVal(t.x, !0)), y: (0, o.pluckNumber)(r.y, this.getScaledVal(t.y, !1)) }) }, r._getAnnotationAttrs = function() { var e = this.config,
                            t = e.attr,
                            r = (0, o.pluckNumber)(e.attr.x, e.x),
                            n = (0, o.pluckNumber)(e.attr.y, e.y); return (0, o.pluckNumber)(this.rawConfig.autoscale, this.rawConfig.autoScale, 1) || (t = { x: r, y: n }), e.derivedX = t.x = "undefined" == typeof t.x ? this.getScaledVal(r, !0) : t.x, e.derivedY = t.y = "undefined" == typeof t.y ? this.getScaledVal(n, !1) : t.y, t.src = e.url, t.opacity = (0, o.pluckNumber)(e.rawAlpha, 100) / 100, "undefined" != typeof e.width && (t.width = e.width * e.xScale), "undefined" != typeof e.height && (t.height = e.height * e.yScale), t }, t }(i["default"]);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(305)),
                o = r(215),
                s = { left: "start", right: "end", center: "middle" },
                l = { top: "bottom", middle: "middle", bottom: "top" },
                c = { 0: "0", 1: "270", right: "90", cw: "90", left: "270", ccw: "270" }; var u = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "text" }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r, n = this.rawConfig,
                        a = this.groupConfig;
                    this.config.text = (0, o.parseUnsafeString)((0, o.pluck)(n.text, n.label, "")), this.config.font = (0, o.pluck)(n.font, a.font, "Verdana, sans"), this.config.fontSize = (0, o.pluckFontSize)(n.fontSize, a.fontSize, 10), this.config.align = (0, o.pluck)(s[n.align && n.align.toLowerCase()], s[a.textAlign && a.textAlign.toLowerCase()], "middle"), this.config.vAlign = (0, o.pluck)(l[n.vAlign && n.vAlign.toLowerCase()], l[a.textVAlign && a.textVAlign.toLowerCase()], "middle"), this.config.radius = (0, o.pluckNumber)(parseFloat(n.radius), 0), this.config.fontWeight = (0, o.pluckNumber)(n.bold, 0) ? "bold" : "normal", this.config.outlineText = (0, o.pluckNumber)(t.outlineText, 0), this.config.fontStyle = (0, o.pluckNumber)(n.italic, 0) ? "italic" : "normal", this.config.bgColor = (r = n.bgColor, (/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(r) ? r : /(^[0-9A-F]{6}$)|(^[0-9A-F]{3}$)/i.test(r)) ? n.bgColor : "none"), this.config.borderThickness = (0, o.pluckNumber)(parseFloat(this.rawConfig.borderThickness), parseFloat(this.rawConfig.thickness), 1), this.config.rotateText = (0, o.pluck)(n.rotateText, a.rotateText, "0"), this.config.rotateAngle = c[this.config.rotateText && this.config.rotateText.toLowerCase()], this.config.wrap = (0, o.pluckNumber)(n.wrap, a.wrapText, n.wrapHeight, n.wrapWidth, 1), this.config.wrap && (this.config.wrapWidth = (0, o.pluckNumber)(n.wrapWidth), this.config.wrapHeight = (0, o.pluckNumber)(n.wrapHeight)), this.config.leftMargin = (0, o.pluckNumber)(n.leftMargin, 0), this.config.elementType = "text" }, r.getText = function() { var e = this.config,
                        t = this.getFromEnv("smartLabel"),
                        r = this.getLinkedParent(),
                        n = r && r._getConfig("scaleText"),
                        a = n ? this.getScaledVal(e.wrapWidth, !0) : e.wrapWidth,
                        i = n ? this.getScaledVal(e.wrapHeight, !1) : e.wrapHeight,
                        s = { fontStyle: e.fontStyle, fontFamily: e.font, fontWeight: e.fontWeight, fontSize: e.fontSize + "px", "text-anchor": e.align, "vertical-align": e.vAlign }; return (0, o.setLineHeight)(s), t && t.setStyle(s), t && e.wrap ? t.getSmartText(e.text, a, i, 0).text : e.text }, r._getFillColor = function(e, t) { var r = this.config.type,
                        n = { color: "", alpha: "", angle: "", ratio: "", radialGradient: "circle" === r || "arc" === r }; return n.color = e.fontColor || e.fillColor || e.color || t.color || "#FF0000", n.alpha = (0, o.pluck)(e.fillAlpha, parseFloat(e.alpha), t.alpha, 100), n.angle = 360 - (0, o.pluckNumber)(e.fillAngle, 0), n.ratio = (0, o.pluck)(e.fillRatio), e.fillPattern && (n.radialGradient = "radial" === e.fillPattern || (0, o.pluckNumber)(e.fillPattern)), n.radialGradient && (n.gradientUnits = "objectBoundingBox", n.cx = .5, n.cy = .5, n.fx = .5, n.fy = .5), this.config.rawColor = n.color, this.config.rawAlpha = n.alpha, this.config.rawAngle = n.angle, this.config.rawFillPattern = n.radialGradient ? "radial" : "linear", this.config.rawRatio = n.ratio, (0, o.toRaphaelColor)(n) }, r.updateAttr = function() { var e, t = this.config,
                        r = t.calculatedAttrs,
                        n = (0, o.pluckNumber)(r.x, this.getScaledVal(t.x, !0)),
                        a = (0, o.pluckNumber)(r.y, this.getScaledVal(t.y, !0)); "0" !== t.rotateText && (e = (0, o.getSuggestiveRotation)(parseFloat(t.rotateAngle), n, a)), this._setConfig("attr", { x: n, y: a, transform: e }) }, r._getAnnotationAttrs = function() { var e, t, r = this.config,
                        n = this._getConfig("attr") || {},
                        a = this.getScaledVal(r.x, !0),
                        i = this.getScaledVal(r.y, !1); return n.x = ("undefined" == typeof n.x ? a : n.x) + r.leftMargin / 2, n.y = "undefined" == typeof n.y ? i : n.y, n.text = this.getText(), n.fill = r.color, n.outlineText = r.outlineText, n.text && (e = this.rawConfig.borderColor, t = this.rawConfig.borderAlpha, e && "none" !== e && 0 !== t || this.rawConfig.bgColor) ? n["text-bound"] = [(0, o.toRaphaelColor)(r.bgColor), r.borderColor, r.borderThickness, 2, r.radius, r.dashArrayStr] : n["text-bound"] = [], n["font-style"] = r.fontStyle, n["font-weight"] = r.fontWeight, n["font-family"] = r.font, n["font-size"] = this.getScaledFont(r.fontSize), n["text-anchor"] = r.align, n["vertical-align"] = r.vAlign, "0" !== r.rotateText && (n.transform = n.transform || (0, o.getSuggestiveRotation)(parseFloat(r.rotateAngle), a, i)), n }, t }(i["default"]);
            t["default"] = u }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(305)),
                o = r(215),
                s = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "polygon" }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r = this.rawConfig;
                        this.config.sides = (0, o.pluckNumber)((0, o.clampNumber)(r.sides, 3), 5), this.config.startAngle = (0, o.pluckNumber)(parseFloat(r.startAngle), 0), this.config.xRadius = (0, o.pluckNumber)(parseFloat(r.radius), 0), this.config.elementType = "polypath" }, r.updateAttr = function() { var e = this.config,
                            t = e.calculatedAttrs;
                        this._setConfig("attr", { polypath: [e.sides, (0, o.pluckNumber)(t.x, this.getScaledVal(e.x, !0)), (0, o.pluckNumber)(t.y, this.getScaledVal(e.y, !1)), this.getScaledVal(e.xRadius), e.startAngle, 0] }) }, r._getAnnotationAttrs = function() { var e = this.config,
                            t = this._getConfig("attr") || {}; return t.fill = e.color, t.stroke = e.borderColor, t["stroke-width"] = e.borderThickness, t["stroke-dasharray"] = e.dashArrayStr, t.polypath = t.polypath || [e.sides, this.getScaledVal(e.x, !0), this.getScaledVal(e.y, !1), this.getScaledVal(e.xRadius), e.startAngle, 0], t }, t }(i["default"]);
            t["default"] = s }, function(e, t, r) { var n = r(307)((function(e, t) { var r = {}; for (var n in t) e(t[n], n, t) && (r[n] = t[n]); return r }));
            e.exports = n }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(322)),
                i = r(215),
                o = r(325);

            function s(e) { var t = e.sender;
                (0, o.isValidDataset)(t) && t.registerFactory("regression", (function(e) { var t = e.getFromEnv("chart").getFromEnv("dataSource").chart,
                        r = e.config.JSONData;
                    (0, i.componentFactory)(e, a["default"], "regression", Number((0, o.hasRegressionLine)(t, r)), [e]) })) } var l = { extension: function(e) { e.addEventListener("instantiated", s) }, name: "Regression", type: "extension", requiresFusionCharts: !0 };
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = n(r(323)),
                s = n(r(324)),
                l = r(215),
                c = r(325),
                u = r(223),
                d = n(r(326)),
                f = function() { this.hide() };
            (0, u.addDep)({ name: "regressionLineAnimation", type: "animationRule", extension: d["default"] }); var h = function(e) {
                function t() { var t; return (t = e.call(this) || this)._config = { regressionPoints: [] }, t.regressionLine = [], t }(0, a["default"])(t, e); var r = t.prototype; return r.getType = function() { return "extension" }, r.getName = function() { return "regression" }, r.configureAttributes = function(e) { var t = this.getFromEnv("dataSource").chart,
                        r = e.config,
                        n = r.JSONData,
                        a = this._config;
                    a.regressionPoints.splice(0, a.regressionPoints.length), a.showYOnX = (0, l.pluckNumber)(n.showyonx, t.showyonx, 1), a.regressionLineColor = (0, l.toRaphaelColor)((0, l.pluck)(n.regressionlinecolor, t.regressionlinecolor, r.anchorbordercolor, r.lineColor, r.anchorBgColor, "fff000")), a.polynomialRegressionLineColor = (0, l.toRaphaelColor)((0, l.pluck)(n.polynomialregressionlinecolor, t.polynomialregressionlinecolor, a.regressionLineColor)), a.regressionLineThickness = (0, l.pluckNumber)(n.regressionlinethickness, t.regressionlinethickness, n.anchorborderthickness, 1), a.polynomialRegressionLineThickness = (0, l.pluckNumber)(n.polynomialregressionlinethickness, t.polynomialregressionlinethickness, a.regressionLineThickness), a.regressionLineAlpha = (0, l.pluckNumber)(n.regressionlinealpha, t.regressionlinealpha, 100), a.polynomialRegressionLineAlpha = (0, l.pluckNumber)(n.polynomialregressionlinealpha, t.polynomialregressionlinealpha, a.regressionLineAlpha), (0, c.createLinear)(t, n) && a.regressionPoints.push((0, o["default"])(n.data, a.showYOnX)), (0, c.createPolynomial)(t, n) && a.regressionPoints.push((0, s["default"])(n.data, a.showYOnX)) }, r.draw = function() { var e, t, r, n, a, i, o, s = this._config,
                        c = this.getFromEnv("xAxis"),
                        u = this.getFromEnv("yAxis"),
                        d = this.getFromEnv("chart"),
                        h = d.getChildren("canvas")[0].config,
                        g = this.getContainer("regressionlinecontainer"),
                        p = this.getFromEnv("animationManager"),
                        m = s.regressionPoints,
                        v = [],
                        b = [],
                        y = this.getGraphicalElement("regressionLineLinear"),
                        x = this.getGraphicalElement("regressionLinePolynomial"),
                        w = f;!this.getLinkedParent().getState("visible") && (o = "disappearing"), g = this.addContainer("regressionlinecontainer", p.setAnimation({ el: g || "group", attr: { name: "regressionlinecontainer", "clip-rect": [h.canvasLeft, h.canvasTop, h.canvasWidth, h.canvasHeight] }, container: d.getChildContainer("abovePlotGroup"), component: this, label: "group" })); for (var C = 0; C < m.length; C++) { var _ = l.BLANKSTRING; if (v = m[C][0], e = (b = m[C][1]).length, 0 === v.length && 0 === b.length) n = !0, _ += "M0,0";
                        else if (0 !== v.length && 0 === b.length) n = !1, _ += "M0,0";
                        else if (0 === v.length) n = !0, _ += "M" + c.getPixel(b[0].x) + "," + u.getPixel(b[0].y), _ += "L" + c.getPixel(b[e - 1].x) + "," + u.getPixel(b[e - 1].y);
                        else { n = !1, _ += "M" + c.getPixel(b[0].x) + "," + u.getPixel(b[0].y), _ += " R" + c.getPixel(b[1].x) + "," + u.getPixel(b[1].y); for (var k = 2; k < e; k++) _ += " " + c.getPixel(b[k].x) + "," + u.getPixel(b[k].y) } n ? a = { opacity: Number(s.regressionLineAlpha) / 100, stroke: s.regressionLineColor, "stroke-width": s.regressionLineThickness, path: _ } : i = { opacity: Number((0, l.pluck)(s.polynomialRegressionLineAlpha, s.regressionLineAlpha)) / 100, stroke: (0, l.pluck)(s.polynomialRegressionLineColor, s.regressionLineColor), "stroke-width": (0, l.pluck)(s.polynomialRegressionLineThickness, s.regressionLineThickness), path: _ } } "disappearing" !== o && (y && y.show(), x && x.show()), t = p.setAnimation({ el: y || "path", container: g, component: this, doNotRemove: !0, attr: !("disappearing" === o) && a, callback: "disappearing" === o && w, label: "path" }), y || this.addGraphicalElement("regressionLineLinear", t), r = p.setAnimation({ el: x || "path", container: g, component: this, doNotRemove: !0, attr: !("disappearing" === o) && i, callback: "disappearing" === o && w, label: "path" }), x || this.addGraphicalElement("regressionLinePolynomial", r) }, t }(i.ComponentInterface);
            t["default"] = h }, function(e, t, r) { "use strict";

            function n(e, t, r) { return parseFloat(e[r]) - parseFloat(t[r]) }

            function a(e, t) { return n(e, t, "x") }

            function i(e, t) { return n(e, t, "y") } t.__esModule = !0, t["default"] = function(e, t) { if (Number(t)) return function(e) { e.sort(a); for (var t, r, n, i, o = [], s = [], l = 0, c = 0, u = 0, d = 0, f = e.length, h = [], g = 0; g < e.length; g++) n = Number(e[g].x), i = Number(e[g].y), isNaN(n) || isNaN(i) || (o.push(n), s.push(i));
                    f = o.length; for (var p = 0; p < f; p++) l += o[p], c += s[p];
                    l /= f, c /= f; for (var m = 0; m < f; m++) u += (o[m] - l) * (s[m] - c), d += (o[m] - l) * (o[m] - l); if (0 === d) return [
                        [],
                        []
                    ]; return r = c - (t = u / d) * l, h.push({ x: o[0], y: t * o[0] + r }), h.push({ x: o[f - 1], y: t * o[f - 1] + r }), [
                        [], h
                    ] }(e); return function(e) { e.sort(i); for (var t, r, n, a, o = [], s = [], l = 0, c = 0, u = 0, d = 0, f = e.length, h = [], g = 0; g < e.length; g++) n = Number(e[g].x), a = Number(e[g].y), isNaN(n) || isNaN(a) || (o.push(n), s.push(a));
                    f = o.length; for (var p = 0; p < f; p++) l += o[p], c += s[p];
                    l /= f, c /= f; for (var m = 0; m < f; m++) u += (o[m] - l) * (s[m] - c), d += (s[m] - c) * (s[m] - c); if (0 === d) return [
                        [],
                        []
                    ]; return r = l - (t = u / d) * c, (h = []).push({ x: t * s[0] + r, y: s[0] }), h.push({ x: t * s[f - 1] + r, y: s[f - 1] }), [
                        [], h
                    ] }(e) } }, function(e, t, r) { "use strict";

            function n(e, t) { return parseFloat(e.x) - parseFloat(t.x) } t.__esModule = !0, t["default"] = function(e, t) { if (Number(t)) return function(e) { e.sort(n); for (var t, r, a, i, o, s, l, c, u, d, f = [], h = [], g = 0, p = 0, m = e.length, v = 0, b = 0, y = 0, x = 0, w = 0, C = [], _ = 0; _ < e.length; _++) u = Number(e[_].x), d = Number(e[_].y), isNaN(u) || isNaN(d) || (f.push(u), h.push(d));
                    m = f.length; for (var k = 0; k < m; k++) g += h[k], p += f[k] * h[k], w += f[k] * f[k] * h[k], v += f[k], b += f[k] * f[k], x += f[k] * f[k] * f[k], y += f[k] * f[k] * f[k] * f[k]; if (r = p - v * g / m, i = w - b * g / m, (t = b - v * v / m) * (o = y - b * b / m) - (a = x - b * v / m) * a == 0 || 0 === m) return [e, []];
                    c = g / m - (l = (r * o - i * a) / (t * o - a * a)) * (v / m) - (s = (i * t - r * a) / (t * o - a * a)) * (b / m); for (var S = 0; S < m; S++) C.push({ x: f[S], y: s * f[S] * f[S] + l * f[S] + c }); return [e, C] }(e); return function(e) { e.sort(n); for (var t, r, a, i, o, s, l, c, u, d, f = [], h = [], g = 0, p = 0, m = e.length, v = 0, b = 0, y = 0, x = 0, w = 0, C = [], _ = 0; _ < e.length; _++) u = Number(e[_].x), d = Number(e[_].y), isNaN(u) || isNaN(d) || (f.push(u), h.push(d));
                    m = f.length; for (var k = 0; k < m; k++) g += f[k], p += h[k] * f[k], w += h[k] * h[k] * f[k], v += h[k], b += h[k] * h[k], x += h[k] * h[k] * h[k], y += h[k] * h[k] * h[k] * h[k]; if (r = p - v * g / m, i = w - b * g / m, (t = b - v * v / m) * (o = y - b * b / m) - (a = x - b * v / m) * a == 0 || 0 === m) return [e, []];
                    c = g / m - (l = (r * o - i * a) / (t * o - a * a)) * (v / m) - (s = (i * t - r * a) / (t * o - a * a)) * (b / m); for (var S = 0; S < m; S++) C.push({ x: s * h[S] * h[S] + l * h[S] + c, y: h[S] }); return [e, C] }(e) } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.createPolynomial = function(e, t) { var r = Number(e.showpolynomialregressionline) || 0; return isNaN(t.showpolynomialregressionline) && r || Number(t.showpolynomialregressionline) }, t.createLinear = function(e, t) { var r = Number(e.showregressionline) || 0; return isNaN(t.showregressionline) && r || Number(t.showregressionline) }, t.isInArray = function(e, t) { return t.indexOf(e.toLowerCase()) > -1 }, t.hasRegressionLine = function(e, t) { return t.showregressionline || e.showregressionline || t.showpolynomialregressionline || e.showpolynomialregressionline }, t.isValidDataset = void 0; var n = ["scatter", "bubble", "errorScatter", "selectScatter"];
            t.isValidDataset = function(e) { return function(e) { return "dataset" === e.getType() }(e) && n.indexOf(e.getName()) >= 0 } }, function(e, t, r) { "use strict";

            function n() { var e, t = this.getFromEnv("chart").getChildren("canvas")[0],
                    r = 0,
                    n = [],
                    a = []; for (n.push(t.config.canvasLeft), n.push(t.config.canvasTop), n.push(0), n.push(t.config.canvasHeight), e = n.length; r < e;) a.push(n[r]), r++; return a[2] = t.config.canvasWidth, [{ initialAttr: function() { return { "clip-rect": n } }, finalAttr: function() { return { "clip-rect": a } }, effect: "linear", slot: "plot" }] } t.__esModule = !0, t["default"] = void 0; var a = { "initial.extension.regression": function() { return { "path.appearing": null, "path.updating": null, "path.disappearing": null, "group.appearing": n, "*": null } } };
            t["default"] = a }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = r(215),
                i = n(r(328)),
                o = n(r(329)),
                s = n(r(347)),
                l = n(r(348)),
                c = n(r(349)),
                u = n(r(350)),
                d = n(r(351)),
                f = n(r(352)),
                h = n(r(353)),
                g = n(r(354)),
                p = r(223),
                m = n(r(355)),
                v = { DragZoomIn: o["default"], ZoomResetButton: s["default"], ZoomOutButton: l["default"], DbTapZoom: u["default"], DragPin: d["default"], ZoomInButton: c["default"], DragPan: f["default"], PinchZoom: h["default"], SwipeGesture: g["default"] }; var b = { extension: function(e) { var t, r;
                    (0, m["default"])((0, p.getDep)("redraphael", "plugin")), e.addEventListener("instantiated", (function(e) { var n, o = e.sender; "canvas" === o.getType() && o.registerFactory("inputManager", (function(e) { if (r = e.getFromEnv("chart"), t = r.constructor.includeInputOptions && r.constructor.includeInputOptions()) {
                                (0, a.componentFactory)(e, i["default"], "inputManager", 1, [{}]), n = e.getChildren("inputManager")[0]; for (var o = 0, s = t && t.length; o < s; o++)(0, a.componentFactory)(n, v[t[o]], t[o], 1, [{}]) } })) })) }, name: "inputAdapter", type: "extension", requiresFusionCharts: !0 };
            t["default"] = b }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(215),
                s = function(e, t, r, n) { var a, i;
                    (i = n[e]) && (i.some((function(e, n) { return e.callback === t && e.component === r && (a = n, !0) })), a !== o.UNDEF && i.splice(a, 1)) },
                l = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.configure = function() { var e = this.getFromEnv("chart"),
                            t = e.getInputConfigurations;
                        this.addToEnv("canvas", this.getLinkedParent()), this.addToEnv("inputOptions", t && t.call(e)), this.config = { controlObj: {}, dependancyObj: {} } }, r.addEventToChild = function() { var e = this,
                            t = e.getChildren(),
                            r = ["zoomin", "zoomout", "dragzoomenabled", "dragzoomdisabled", "pinenabled", "pindisabled", "panenabled", "pandisabled"],
                            n = function(n) { r.forEach((function(r) { e.addExtEventListener(r, e.manageEvents.bind(e), t[n][0]) })) }; for (var a in t) n(a) }, r.manageEvents = function(e) { var t = this.config.dependancyObj,
                            r = e.type;
                        t[r] && t[r].forEach((function(t) { t.component !== e.sender && t.callback.call(t.component, e) })) }, r.fetchZoomableAxes = function() { if (!this.config.axesObArr) { var e = this.config.axesObArr = [];
                            this.getLinkedParent().getAxes().forEach((function(t) {
                                (t.config.zoomable || t.config.pannable) && e.push({ axis: t.axis, stack: [], isY: t.isY }) })), this.addToEnv("axesObArr", e) } }, r.draw = function() { this.fetchZoomableAxes(), this.addEventToChild() }, r.getControl = function(e, t) { var r, n = this.config.controlObj,
                            a = this.getLinkedParent();
                        t || e.forEach((function(e) {
                            (r = e.nativeInteraction) instanceof Array ? r.forEach((function(t) {
                                (n[t] || (n[t] = [])).push({ callback: e.callback, component: e.component }), e.component.addExtEventListener(t, e.callback, a) })) : ((n[r] || (n[r] = [])).push({ callback: e.callback, component: e.component }), e.component.addExtEventListener(r, e.callback, a)) })) }, r.releaseControl = function(e) { var t, r = this,
                            n = r.getLinkedParent();
                        e.forEach((function(e) {
                            (t = e.nativeInteraction) instanceof Array ? t.forEach((function(t) { e.component.removeExtEventListener(t, e.callback, n), s(t, e.callback, e.component, r.config.controlObj) })) : (e.component.removeExtEventListener(t, e.callback, n), s(t, e.callback, e.component, r.config.controlObj)) })) }, r._updateControlObj = function(e, t) { var r, n;
                        (n = this.config.controlObj[e]) && (n.some((function(e, n) { return e.callback === t && (r = n, !0) })), r !== o.UNDEF && n.splice(r, 1)) }, r.registerDependancy = function(e) { var t, r = this.config.dependancyObj;
                        e.forEach((function(e) {
                            (t = e.derivedInteraction) instanceof Array ? t.forEach((function(t) {
                                (r[t] || (r[t] = [])).push({ callback: e.callback, component: e.component, derivedInteraction: t }) })) : (r[t] || (r[t] = [])).push(e) })) }, r.removeDependancy = function(e) { var t, r = this;
                        e.forEach((function(e) {
                            (t = e.derivedInteraction) instanceof Array ? t.forEach((function(t) { s(t, e.callback, e.component, r.config.dependancyObj) })) : s(t, e.callback, e.component, r.config.dependancyObj) })) }, r.zoomOut = function() { var e = this.getChildren("ZoomOutButton");
                        e && e[0].zoomOut() }, r.zoomTo = function(e, t) { var r = this.getChildren("DragZoomIn");
                        r && r[0].zoomTo(e, t) }, r.resetChart = function() { var e = this.getChildren("ZoomResetButton");
                        e && e[0].zoomOut() }, r.setZoomMode = function(e) { var t = this.getChildren("DragPin");
                        t && (e ? t[0].disable() : t[0].enable()) }, t }(i.ComponentInterface);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = n(r(330)),
                s = r(215),
                l = Math.min,
                c = Math.abs,
                u = function(e) {
                    function t() { var r;
                        r = e.call(this) || this; var n = (0, a["default"])(r); return n.controlArr = [{ nativeInteraction: ["fc-dragstart"], callback: n.dragStart.bind(n), component: n }, { nativeInteraction: ["fc-dragmove"], callback: n.onDrag.bind(n), component: n }, { nativeInteraction: ["fc-dragend"], callback: n.onDragEnd.bind(n), component: n }], s.isFirefox && n.controlArr.push({ nativeInteraction: ["fc-mousedown"], callback: t.mousedown, component: n }), n._toggle = function() { n._checkStackLen() && n.toggle() }, r }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "dragZoomIn" }, r.configure = function() { e.prototype.configure.call(this); var t = this.config;
                        t.boxStyle = t.boxStyle || { "stroke-width": 1, stroke: "red", fill: "#00FF00", opacity: .2, cursor: "ne-resize" }, !this.config.skipGraphics && this.setLinkedItem("button", this.createButton({ icon: "zoomModeIcon", tooltext: this.config.tooltext, handlers: { click: this._toggle }, state: "activated" })), this.enable("pressed"), this.getLinkedParent().registerDependancy([{ derivedInteraction: ["pinenabled", "pindisabled", "panenabled", "pandisabled"], callback: this.dependancyFn, component: this }]) }, t.mousedown = function(e) { e && e.preventDefault() }, r.setControl = function() { var e = this.getLinkedParent(),
                            t = this.getLinkedItem("button"),
                            r = this.controlArr;
                        e.releaseControl(r), this.isEnabled() && e.getControl(r), t && t.setCurrentState(this.isEnabled() ? this.config.state : "disabled") }, r.getCoordinates = function(e) { var t = this.getFromEnv("chart"),
                            r = (0, s.getMouseCoordinate)(t.getFromEnv("chart-container"), e, t); return { x: r.chartX, y: r.chartY } }, r.inCanvasLimit = function(e) { var t = this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs,
                            r = t.x,
                            n = t.y,
                            a = e.x - t.x,
                            i = e.y - t.y,
                            o = t.width - a,
                            s = t.height - i; return e.x > r && e.y > n && e.width < o && e.height < s }, r.drawBox = function() { var e, t = this.config,
                            r = this.getGraphicalElement("box"),
                            n = this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs;
                        r || (r = this.addGraphicalElement("box", this.getFromEnv("paper").rect())).attr(t.boxStyle), e = function(e, t, r, n) { t.x < r.x && (t.x = r.x), t.y < r.y && (t.y = r.y), t.x > r.width + r.x && (t.x = r.width + r.x), t.y > r.height + r.y && (t.y = r.height + r.y); var a, i = t.x - e.x,
                                o = e.y - t.y; return i > 0 && o > 0 ? a = n ? "ne-resize" : "e-resize" : i < 0 && o > 0 ? a = n ? "nw-resize" : "w-resize" : i < 0 && o < 0 ? a = n ? "sw-resize" : "w-resize" : i > 0 && o < 0 && (a = n ? "se-resize" : "e-resize"), { x: l(e.x, t.x), y: l(e.y, t.y), width: i = c(i), height: o = c(o), cursor: a } }(this.dragBoxConfig.startPos, this.dragBoxConfig.currentPos, n, this.getFromEnv("chart").isXY), t.scaleX || (e.x = n.x, e.width = n.width), t.scaleY || (e.y = n.y, e.height = n.height), r.attr(e), r.show() }, r.onDragEnd = function(e) { var t, r, n, a, i = this.config,
                            o = this.getFromEnv("canvas").getGraphicalElement("canvasElement").attrs,
                            s = this.getGraphicalElement("box") || {},
                            l = s.attrs;
                        l && i.dragmove && (i.dragmove = !1, s.hide(), i.startPosX = t = (l.x - o.x) / o.width, i.endPosX = r = (l.x + l.width - o.x) / o.width, i.startPosY = n = (l.y - o.y) / o.height, i.endPosY = a = (l.y + l.height - o.y) / o.height, r - t < .01 || a - n < .01 || this.zoomTo(void 0, void 0, e)) }, r.zoomTo = function(e, t, r) { var n, a, i, o, s, l, c, u, d = this,
                            f = d.config,
                            h = !1,
                            g = {},
                            p = f.catZoomLimit - 1;
                        d.getFromEnv("axesObArr").forEach((function(m) { var v = m.axis,
                                b = v.getFromEnv("chart"),
                                y = b.getChildren("scrollBar") && b.getChildren("scrollBar")[0],
                                x = v.getVisibleConfig(),
                                w = m.isY ? x.maxValue : x.minValue,
                                C = x.maxValue - x.minValue;
                            m.isY ? (o = n = void 0 === e ? w - C * f.endPosY : e, l = a = void 0 === t ? w - f.startPosY * C : t) : (s = n = void 0 === e ? w + f.startPosX * C : e, c = a = void 0 === t ? w + C * f.endPosX : t, g = d.constructor._getZoomInfo(s, c, v)), p && !v.config.isVertical && Math.round(a - n) < p && (n = Math.round(n), a = n + p), (C > 1 || a - n > 1) && (f.dragendFn && "function" == typeof f.dragendFn && f.dragendFn(r, n, a), u = v.setVisibleConfig(n, a), b.setScrollBarDimension && b.setScrollBarDimension(), y && !y.getState("removed") && y.asyncDraw(), h = h || u, m.stack.push(x), i = m.stack.length + 1) })), h && d._raiseZoomEvents("zoomin", "zoomedin", Object.assign(g, { level: i, startX: s, endX: c, startY: o, endY: l }, { originalEvent: r && r.originalEvent })) }, r.onDrag = function(e) { var t = this.config,
                            r = this.getCoordinates(e.originalEvent);
                        t.dragmove = !0, this.getFromEnv("animationManager").setAnimationState("drag"), t.dragmoveFn && "function" == typeof t.dragmoveFn && t.dragmoveFn(e), this.dragBoxConfig.currentPos = r, this.drawBox() }, r.dragStart = function(e) { var t = this.config,
                            r = this.getCoordinates(e.originalEvent);
                        t.dragstartFn && "function" == typeof t.dragstartFn && t.dragstartFn(e), this.dragBoxConfig = { startPos: r, currentPos: r } }, r.enable = function() {!0 !== this.config.enabled && (this.config.enabled = !0, this.config.state = "pressed", this.fireEvent("dragzoomenabled"), this.setControl()) }, r.disable = function() {!1 !== this.config.enabled && (this.config.enabled = !1, this.config.state = "activated", this.fireEvent("dragzoomdisabled"), this.setControl()) }, r.dependancyFn = function(e) { "pinenabled" === e.type || "panenabled" === e.type ? this.disable() : "pindisabled" !== e.type && "pandisabled" !== e.type || this.enable() }, t }(o["default"]);
            t["default"] = u }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(331),
                s = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.configure = function() { var e = this.config = {},
                            t = this.getFromEnv("inputOptions") || {};
                        Object.assign(e, t[this.getName()]) }, r._checkStackLen = function() { var e = this.getFromEnv("axesObArr"),
                            t = 0; return e && e.forEach((function(e) { t += e.stack.length })), t }, t._getZoomInfo = function(e, t, r) { var n = { startIndex: Math.ceil(e), endIndex: Math.floor(t) }; return r.getLabel && (n.startLabel = r.getLabel(n.startIndex).label, n.endLabel = r.getLabel(n.endIndex).label), n }, r._raiseZoomEvents = function(e, t, r, n) { var a = this.getFromEnv("chart");
                        e && this.fireEvent(e), t && a.fireChartInstanceEvent(t, r, n), t && a.fireChartInstanceEvent("zoomed", r, n) }, r.getType = function() { return "canvasInput" }, r.enable = function(e) {!0 !== this.config.enabled && (this.config.enabled = !0, e && this.fireEvent(e), this.setControl()) }, r.disable = function(e) {!1 !== this.config.enabled && (this.config.enabled = !1, e && this.fireEvent(e), this.setControl()) }, r.toggle = function(e) { this.isEnabled() ? this.disable(e) : this.enable(e) }, r.isEnabled = function() { return this.config.enabled }, r.setControl = function() { var e = this.getLinkedItem("button");
                        e && e.setCurrentState(this.isEnabled() ? this.config.state : "disabled") }, r.createButton = function(e) { var t, r = this.getLinkedParent().getFromEnv("chart"); for (var n in (t = r.getFromEnv("toolbar").attachChild(o.Tool, "tool", this.getId())).configure(Object.assign({}, r.getFromEnv("tool-config"), { name: e.icon, tooltext: e.tooltext })), e.handlers) e.handlers.hasOwnProperty(n) && t.addEventListener("fc-" + n, e.handlers[n]); return t.setLinkedItem("input", this), t }, t }(i.ComponentInterface);
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0; var a = r(332);
            t.ScrollBar = a.ScrollBar, t.Checkbox = a.Checkbox, t.Hamburger = a.Hamburger, t.Label = a.Label, t.MenuItemContainer = a.MenuItemContainer, t.Tool = a.Tool; var i = n(r(346));
            t.ToolBar = i["default"] }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0; var a = n(r(333));
            t.ScrollBar = a["default"]; var i = n(r(340));
            t.Checkbox = i["default"]; var o = n(r(341));
            t.Hamburger = o["default"]; var s = n(r(344));
            t.Label = s["default"]; var l = n(r(345));
            t.Separator = l["default"]; var c = n(r(342));
            t.MenuItemContainer = c["default"]; var u = n(r(335));
            t.Tool = u["default"] }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(215),
                o = n(r(334)),
                s = n(r(335)),
                l = n(r(337)),
                c = n(r(338)),
                u = n(r(339)),
                d = r(336),
                f = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.config.scale = 1 }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r = this.config,
                            n = this.getFromEnv("chart-attrib");
                        r.conf = {}, r.isOpposite = t && !t.isHorizontal ? (0, o["default"])(n.scrollposition, "right") : (0, o["default"])(n.scrollposition, "top"), r.color = n.scrollcolor && (0, i.convertColor)(n.scrollcolor), r.padding = (0, i.pluckNumber)(n.scrollpadding, 0), r.height = (0, i.pluckNumber)(n.scrollheight, 12), r.width = (0, i.pluckNumber)(n.scrollwidth, 12), r.displayFlat = (0, i.pluckNumber)(n.flatscrollbars, 0), r.scrollBar3DLighting = (0, i.pluckNumber)(n.scrollbar3dlighting, 1), r.startPercent = Math.min(1, Math.max(0, parseFloat(n.scrolltoend) || 0)), r.showButtons = !!(0, i.pluckNumber)(n.scrollshowbuttons, 1), r.buttonPadding = (0, i.pluckNumber)(n.scrollbtnpadding, 0), r.style = t.style, r.drawStripes = t.drawStripes, r.restrictScrollAnchor = (0, i.pluckNumber)(t.restrictScrollAnchor, 1), this.setConfiguaration(t), r.evt = { tooltext: void 0, click: i.stubFN, hover: [i.stubFN, i.stubFN] }, this.createScrollItems() }, r.createScrollItems = function() { var e = this.config,
                            t = e.style || {},
                            r = this.getChildren("scrollTrack") && this.getChildren("scrollTrack")[0],
                            n = this.getChildren("scrollAnchor") && this.getChildren("scrollAnchor")[0],
                            a = this.getChildren("scrollButtons") && this.getChildren("scrollButtons")[0],
                            i = this.getChildren("scrollButtons") && this.getChildren("scrollButtons")[0];
                        r || ((r = this.attachChild(l["default"], "scrollTrack")).configure({ style: { track: t.track }, color: e.color, displayFlat: e.displayFlat, isHorizontal: e.isHorizontal }), r.attachEventHandlers()), n || ((n = this.attachChild(c["default"], "scrollAnchor")).configure({ style: { scroller: t.scroller, grip: t.grip }, drawStripes: e.drawStripes, color: e.color, displayFlat: e.displayFlat, isHorizontal: e.isHorizontal }), n.attachEventHandlers()), !a && e.showButtons && ((a = this.attachChild(u["default"], "scrollStartButton")).configure({ type: "start", color: e.color, style: { button: t.button, arrow: t.arrow } }), a.attachEventHandlers()), !i && e.showButtons && ((i = this.attachChild(u["default"], "scrollEndButton")).configure({ type: "end", color: e.color, style: { button: t.button, arrow: t.arrow } }), i.attachEventHandlers()) }, r.getName = function() { return "scrollbar" }, r.getType = function() { return "scrollbar" }, r.setConfiguaration = function(e) { var t = this.config;
                        t.color || (t.color = "#" + this.getFromEnv("chart").getFromEnv("color-manager").getColor("altHGridColor")), (0, d.mergeConf)(e, t) }, r.getLogicalSpace = function() { var t = this.config,
                            r = t.conf,
                            n = {}; return (0, d.mergeConf)(t, n), (0, d.mergeConf)(n, r), e.prototype.getLogicalSpace.call(this) }, r.setDimension = function(t) { e.prototype.setDimension.call(this, t); var r = this.getLinkedParent(),
                            n = r.getPosition && r.getPosition() || {},
                            a = this.getChildren("scrollTrack")[0].config;
                        a.transLateX = n.x || 0, a.transLateY = n.y || 0 }, r.draw = function() { var e = this.config,
                            t = {};
                        e.conf.isHorizontal ? delete t.width : delete t.height, (0, d.mergeConf)(t, e, !0), this.addGraphicalElement({ el: "group", attr: { name: "scrollContainer" }, component: this, container: { id: "scrollbarContainer", label: "scrollbar", isParent: !0 }, label: "scrollbarGroup", id: "scrollbarGroup" }) }, r.attachEventHandlers = function(e) { var t = this.config.evt; return e && (e.scroll && "function" == typeof e.scroll && (t.scroll = e.scroll), e.scrollStart && "function" == typeof e.scrollStart && (t.scrollStart = e.scrollStart), e.scrollEnd && "function" == typeof e.scrollEnd && (t.scrollEnd = e.scrollEnd)), this }, t }(s["default"]);
            f.registerSymbol = void 0, f._setConfiguaration = i.stubFN; var h = f;
            t["default"] = h }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = function(e, t) { return String(e).toLowerCase() === String(t).toLowerCase() } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(215),
                s = r(336),
                l = function(e) {
                    function t(t) { var r; return (r = e.call(this, t) || this)._listeners = {}, r }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "button" }, r.getType = function() { return "tool" }, r.__setDefaultConfig = function() { var e = this.config;
                        e.scale = 1.15, e.width = o.touchEnabled ? 20 : 15, e.height = o.touchEnabled ? 20 : 15, e.radius = o.touchEnabled ? 4 : 2, e.spacing = 2.5, e.marginTop = 2.5, e.marginLeft = 2.5, e.marginRight = 2.5, e.marginBottom = 2.5, e.fill = "ffffff", e.fillAlpha = "cccccc", e.symbolFill = "ffffff", e.stroke = "bbbbbb", e.symbolStroke = "9a9a9a", e.strokeWidth = 1, e.symbolStrokeWidth = 1, e.symbolPadding = 5, e.symbolHPadding = 5, e.symbolVPadding = 5, e.fillAlpha = 100, e.stateStyle = {}, e.text = o.BLANKSTRING, e.marginTop = e.marginLeft = e.marginRight = e.marginBottom = 2.5, e.labelFontSize = 12 }, r.configureAttributes = function(e) { void 0 === e && (e = {}); var t, r, n, a = this.config,
                            i = function(e) { for (var t in e)
                                    if (e.hasOwnProperty(t)) { var r = e[t];
                                        (r === o.UNDEF || !/tooltext/.test(t) && "" === r) && delete e[t] } return e }(e);
                        Object.assign(a, i), a.symbolName = a.name, this.setState("visible", !0 !== a.isHidden), a.marginTop = (0, o.pluckNumber)(i.marginTop, i.spacing, a.marginTop), a.marginLeft = (0, o.pluckNumber)(i.marginLeft, i.spacing, a.marginLeft), a.marginRight = (0, o.pluckNumber)(i.marginRight, i.spacing, a.marginRight), a.marginBottom = (0, o.pluckNumber)(i.marginBottom, i.spacing, a.marginBottom), a.fill = (0, o.pluck)(i.fill, a.fill), a.fillAlpha = (0, o.pluckNumber)(i.fillAlpha, a.fillAlpha), a.labelFill = (0, o.pluck)(i.labelFill, a.labelFill), a.symbolFill = (0, o.pluck)(i.symbolFill, a.symbolFill), a.hoverFill = (0, o.pluck)(i.hoverFill, a.hoverFill), a.stroke = (0, o.pluck)(i.stroke, a.stroke), a.symbolStroke = (0, o.pluck)(i.symbolStroke, a.symbolStroke), a.strokeWidth = (0, o.pluckNumber)(i.strokeWidth, a.strokeWidth), a.symbolStrokeWidth = (0, o.pluckNumber)(i.symbolStrokeWidth, a.symbolStrokeWidth), t = a.symbolPadding = (0, o.pluckNumber)(i.symbolPadding, a.symbolPadding), a.symbolHPadding = (0, o.pluckNumber)(i.symbolHPadding, t), a.symbolVPadding = (0, o.pluckNumber)(i.symbolVPadding, t), a.hAlign = (0, o.pluck)(i.hAlign, "center").toLowerCase(), a.vAlign = (0, o.pluck)(i.vAlign, "middle").toLowerCase(), a.containerInfo = i.containerInfo || { id: "group", label: "group", isParent: !0 }, r = i.x, n = i.y, void 0 === r || void 0 === n ? a.spaceNotHardCoded = !0 : (a.x = r, a.y = n, a.spaceNotHardCoded = !1) }, r.setDimension = function(e) { void 0 === e && (e = {}); var t = this.config;
                        e.x !== o.UNDEF && (t.x = e.x), e.y !== o.UNDEF && (t.y = e.y), e.width !== o.UNDEF && (t.width = t.width && t.width > e.width ? t.width : e.width), e.height !== o.UNDEF && (t.height = t.height && t.height > e.height ? t.height : e.height) }, r.getAlignment = function() { return { hAlign: this.config.hAlign, vAlign: this.config.vAlign } }, r.getLogicalSpace = function() { var e = this.config,
                            t = e.width,
                            r = e.height,
                            n = e.marginTop,
                            a = e.marginLeft,
                            i = e.marginRight,
                            o = e.marginBottom,
                            s = e.scale; return t *= s, r *= s, (this.config.skipGraphics || this.getState("removed")) && (t = r = o = a = i = n = 0), { width: t, height: r, marginTop: n, marginLeft: a, marginRight: i, marginBottom: o } }, r.setCurrentState = function(e) { this.config.state = e, this.asyncDraw() }, r.getCurrentState = function() { return this.config.state }, r.draw = function() { var e, t, r, n = this.config,
                            a = n,
                            i = n.text,
                            l = this.getFromEnv("tool-config");
                        n.skipGraphics || (t = { width: n.width * n.scale, height: n.height * n.scale, r: n.radius * n.scale, verticalPadding: n.symbolVPadding * n.scale, horizontalPadding: n.symbolHPadding }, e = (0, o.extend2)({}, n.stateStyle[n.state] || s.preConfig[n.state] || {}), "activated" !== n.state && "disabled" !== n.state && "pressed" !== n.state || (e.config.normal.fill = (0, o.convertColor)((0, o.pluck)(l.fill, e.config.normal.fill)), e.config.normal["symbol-stroke"] = (0, o.convertColor)((0, o.pluck)(l.symbolStroke, e.config.normal["symbol-stroke"])), e.config.normal.symbolFill = (0, o.convertColor)((0, o.pluck)(l.symbolFill, e.config.normal.symbolFill)), e.config.normal.stroke = (0, o.convertColor)((0, o.pluck)(l.stroke, e.config.normal.stroke)), e.config.normal.symbolStroke = (0, o.convertColor)((0, o.pluck)(l.symbolStroke, e.config.normal.symbolStroke)), e.config.hover.fill = (0, o.convertColor)((0, o.pluck)(l.hoverFill, e.config.hover.fill))), (r = (0, o.extend2)({ button: [n.x, n.y, i, n.symbolName, t, n.labelFontSize, n.labelFontFamily], "button-label": i, "button-padding": [n.symbolHPadding, n.symbolVPadding * n.scale], "button-repaint": [a.x, a.y, n.width * n.scale, n.height * n.scale, n.radius * n.scale], fill: (0, o.convertColor)(n.fill), labelFill: (0, o.convertColor)(n.labelFill), symbolFill: (0, o.convertColor)(n.symbolFill), hoverFill: n.hoverFill, stroke: (0, o.convertColor)(n.stroke), "symbol-stroke": (0, o.convertColor)(n.symbolStroke || n.stroke), "stroke-width": n.strokeWidth, "symbol-stroke-width": (0, o.pluckNumber)(n.symbolStrokeWidth, n.strokeWidth) }, e)).fill = (0, o.convertColor)((0, o.pluck)(n.fill, e.fill)), !n.isHidden && this.addGraphicalElement({ el: "button", attr: r, css: n.btnTextStyle, component: this, container: n.containerInfo, label: "button", id: "button", tooltext: n.tooltext })) }, r.hide = function() { this.config.isHidden = !0, this.setState("visible", !1), this.asyncDraw() }, r.show = function() { this.config.isHidden = !1, this.setState("visible", !0), this.asyncDraw() }, t }(i.SmartRenderer);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.getEventHandlersFor = function(e, t) { var r = function() { a["default"].listen(t, "mousemove", (function(e) { e.originalEvent.stopPropagation() })) }; switch (e) {
                    case "click":
                        return function(e) { a["default"].listen(t, "click", (function(t) { t.target && t.target.parentNode && e.call(t.target) })), r() };
                    case "hover":
                        return function(e, n) { a["default"].listen(t, "pointerhover", (function(t) { t.target && t.target.parentNode && ("start" === t.state ? e : n).call(t.target) })), r() } } }, t.mergeConf = function(e, t, r) { var n, a; for (n in e)
                    if ((a = e[n]) !== o.UNDEF && null !== a)
                        if (r) { if (t[n]) continue;
                            t[n] = a } else t[n] = a }, t.bottomPath = function(e, t, r, n, a) { var i = e,
                    o = t,
                    s = n / 2,
                    l = Math.round(a / 4 + 1),
                    c = o + l + 3; return ["M", i - s, c, "L", i + s, c] }, t.RSymbolFns = t.defaultTextStyle = t.SymbolStore = t.preConfig = t.DEFAULT_TIMEOUT = t.CLICK = t.HOVER = void 0; var a = n(r(217)),
                i = r(223),
                o = r(215),
                s = { activated: { config: { hover: { fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#aaaaaa", "symbol-stroke": "#aaaaaa", cursor: "pointer" }, normal: { fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", "fill-symbol": "#ffffff", stroke: "#c2c2c2", "symbol-stroke": "#c2c2c2", "stroke-width": 1, cursor: "pointer" }, disable: { fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#e3e3e3", "symbol-stroke": "#e3e3e3", "stroke-opacity": 1, cursor: "pointer" }, pressed: { fill: "#efefef", labelFill: "#efefef", symbolFill: "#efefef", hoverFill: "#efefef", "fill-symbol": "#efefef", "stroke-width": 1, stroke: "#c2c2c2", "symbol-stroke": "#c2c2c2", cursor: "pointer" } }, "button-disabled": !1, fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", stroke: "#c2c2c2", "symbol-stroke": "#c2c2c2", "stroke-opacity": 1, cursor: "pointer" }, disabled: { config: { hover: { fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#e3e3e3", "symbol-stroke": "#e3e3e3", cursor: "default" }, normal: { fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", "fill-symbol": "#ffffff", stroke: "#e3e3e3", "symbol-stroke": "#e3e3e3", "stroke-width": 1, cursor: "default" }, disable: { fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#e3e3e3", "symbol-stroke": "#e3e3e3", "stroke-opacity": 1, cursor: "default" }, pressed: { fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#e3e3e3", "symbol-stroke": "#e3e3e3", cursor: "default" } }, fill: "#ffffff", labelFill: "#ffffff", symbolFill: "#ffffff", hoverFill: "#ffffff", "button-disabled": !1, stroke: "#e3e3e3", "symbol-stroke": "#e3e3e3", "stroke-opacity": 1, cursor: "default" }, pressed: { config: { hover: { fill: "#dcdcdc", labelFill: "#dcdcdc", symbolFill: "#ffffff", hoverFill: "#dcdcdc", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#b7b7b7", "symbol-stroke": "#b7b7b7", cursor: "pointer" }, normal: { fill: "#dcdcdc", labelFill: "#dcdcdc", symbolFill: "#ffffff", hoverFill: "#dcdcdc", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#b7b7b7", "symbol-stroke": "#b7b7b7", cursor: "pointer" }, pressed: { fill: "#dcdcdc", labelFill: "#dcdcdc", symbolFill: "#ffffff", hoverFill: "#dcdcdc", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#b7b7b7", "symbol-stroke": "#b7b7b7", cursor: "pointer" } }, fill: "#dcdcdc", labelFill: "#dcdcdc", symbolFill: "#ffffff", hoverFill: "#dcdcdc", "fill-symbol": "#ffffff", "stroke-width": 1, stroke: "#b7b7b7", "symbol-stroke": "#b7b7b7", cursor: "pointer" } };
            t.preConfig = s, t.CLICK = "click", t.HOVER = "hover", t.DEFAULT_TIMEOUT = 300; var l = (0, i.getDep)("redraphael", "plugin"),
                c = { CB_NOT_CHECKED: function(e, t, r) { return ["M", e - r, t - r] }, CB_CHECKED: function(e, t, r) { var n = r / 4; return ["M", e - 3 * n, t, "L", e - n, t + r, e + r, t - r] } },
                u = (l.addSymbol("Internal_CB", c.CB_NOT_CHECKED), { register: function() { var e, t, r, n; if (1 === arguments.length) { if (null === (r = arguments[0]) && r === o.UNDEF || "object" != typeof r) return;
                            n = r } else { if (!(arguments.length > 1)) return; if (t = arguments[1], "string" != typeof(e = arguments[0]) || "function" != typeof t) return;
                            (n = {})[e] = t } for (e in n) t = n[e], {}.hasOwnProperty.call(n, e) && l.addSymbol(e, t) } });
            t.defaultTextStyle = { fill: "#555555", labelFill: "#555555", symbolFill: "#555555", hoverFill: "#555555", fontFamily: "Verdana,sans", fontSize: "12px", fontStyle: "normal", fontWeight: "normal", lineHeight: "14.399999999999999px" }, t.SymbolStore = u, t.RSymbolFns = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(335)),
                o = r(223),
                s = r(227),
                l = r(215),
                c = (0, o.getDep)("redraphael", "plugin"),
                u = Math.max,
                d = function(e) {
                    function t() { var t; return (t = e.call(this) || this)._evtHandlers = {}, t }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function(e) { void 0 === e && (e = {}), this.config.style = { track: Object.assign({}, { fill: e.displayFlat && e.color || [90 * e.isHorizontal, c.tintshade(e.color, .15).rgba, e.color].join("-"), stroke: c.tintshade(e.color, -.75).rgba }, e.style.track) } }, r.attachEventHandlers = function() { var e, t, r, n, a, i = this,
                            o = i.config,
                            l = i.getLinkedParent(),
                            c = l.config,
                            u = function() { c.scrollPosition > 1 ? (c.scrollPosition = 1, t = !1) : (c.scrollPosition < 0 || isNaN(c.scrollPosition)) && (c.scrollPosition = 0, t = !1), n.asyncDraw(), "function" == typeof c.evt.scroll && c.evt.scroll(c.scrollPosition) },
                            d = function h() { c.scrollPosition += .01, r >= c.scrollPosition && t && (u(), i.addJob("dragScrollAnchorRight", h, s.priorityList.draw)) },
                            f = function g() { c.scrollPosition -= .01, r <= c.scrollPosition && t && (u(), i.addJob("dragScrollAnchorLeft", g, s.priorityList.draw)) };
                        i.addEventListener("fc-mousedown", i._evtHandlers.mousedown || (i._evtHandlers.mousedown = function(u) { n = l.getChildren("scrollAnchor")[0], a = n.config, t = !0, e = c.isHorizontal ? u.originalEvent.layerX - (a._nodeDimensions.x + o.transLateX + a._nodeDimensions.width / 2) : u.originalEvent.layerY - (a._nodeDimensions.y + o.transLateY + a._nodeDimensions.height / 2), (r = e / a.trackLength + c.scrollPosition) >= c.scrollPosition ? i.addJob("dragScrollAnchorRight", d, s.priorityList.draw) : i.addJob("dragScrollAnchorLeft", f, s.priorityList.draw) })), i.addEventListener("fc-mouseup", i._evtHandlers.mouseup || (i._evtHandlers.mouseup = function() { t = !1 })) }, r.draw = function() { var e = this.config,
                            t = this.getLinkedParent().config,
                            r = (0, l.crispBound)(t.x + .5, t.y + t.padding + .5, t.width - 1, t.height - 1, t.strokeWidth);
                        this.addGraphicalElement({ el: "rect", attr: { x: r.x, y: r.y, width: u(r.width, 0), height: u(r.height, 0), r: t.roundEdges ? 2 : 0, opacity: e.style.track.opacity }, css: e.style.track, container: { id: "scrollbarGroup", label: "scrollbarGroup", isParent: !0 }, component: this, label: "scrollbarTrack", id: "scrollbarTrack" }) }, t }(i["default"]);
            t["default"] = d }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(335)),
                o = r(215),
                s = (0, r(223).getDep)("redraphael", "plugin"),
                l = function(e) {
                    function t() { var t; return (t = e.call(this) || this)._evtHandlers = {}, t }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function(e) { void 0 === e && (e = {}); var t = this.config;
                        t.drawStripes = (0, o.pluckNumber)(e.drawStripes, 0), t._nodeDimensions = {}, t.style = { scroller: Object.assign({}, { fill: e.displayFlat && s.tintshade(e.color, -.6).rgba || [270 * e.isHorizontal, s.tintshade(e.color, .3).rgba + ":40", s.tintshade(e.color, -.7).rgba].join("-"), stroke: s.tintshade(e.color, -.6).rgba }, e.style.scroller), grip: Object.assign({}, { stroke: "#5F5F5F", "stroke-linecap": "round", "stroke-width": 2 }, e.style.grip) } }, r.attachEventHandlers = function() { var e, t, r, n = this,
                            a = this.getLinkedParent().config,
                            i = a.isHorizontal;
                        n.addEventListener("fc-dragmove", n._evtHandlers.dragmove || (n._evtHandlers.dragmove = function(i) {
                            (r = e + i.originalEvent.data[t] / this.config.trackLength) >= 1 ? r = 1 : (r <= 0 || isNaN(r)) && (r = 0), a.scrollPosition = r, n.asyncDraw(), "function" == typeof a.evt.scroll && a.evt.scroll(a.scrollPosition) })), n.addEventListener("fc-dragstart", n._evtHandlers.dragstart || (n._evtHandlers.dragstart = function() { t = i ? 0 : 1, e = a.scrollPosition, "function" == typeof a.evt.scrollStart && a.evt.scrollStart(a.scrollPosition) })), n.addEventListener("fc-dragend", n._evtHandlers.dragend || (n._evtHandlers.dragend = function() { "function" == typeof a.evt.scrollEnd && a.evt.scrollEnd(a.scrollPosition) })) }, r.draw = function() { var e, t, r = this.config,
                            n = this.getLinkedParent().config,
                            a = n.x + .5,
                            i = n.y + n.padding + .5,
                            s = n.width - 1,
                            l = n.height - 1 < 1 ? 1 : n.height - 1,
                            c = n.restrictScrollAnchor ? Math.max(n.scrollRatio, .01) : n.scrollRatio,
                            u = n.isHorizontal,
                            d = (0, o.pluckNumber)(n.scrollPosition, n.startPercent, 0),
                            f = 0,
                            h = u ? s * c : l * c;
                        d >= 1 ? d = 1 : (d <= 0 || isNaN(d)) && (d = 0), n.showButtons && (h -= 2 * (f = u ? Math.min(l, .5 * s) : Math.min(s, .5 * l)) * c), r.trackLength = e = u ? s - 2 * f - h : l - 2 * f - h, r.trackOffset = t = u ? a + f + .5 : i + f + .5, r._nodeDimensions = { x: u ? t + e * d : a, y: u ? i : t + e * d, width: u ? h - 1 < 1 ? 1 : h - 1 : s < 1 ? 1 : s, height: u ? l < 1 ? 1 : l : h - 1 < 1 ? 1 : h - 1 }, this.addGraphicalElement({ el: "rect", attr: { x: r._nodeDimensions.x, y: r._nodeDimensions.y, width: r._nodeDimensions.width, height: r._nodeDimensions.height, r: n.roundEdges ? 2 : 0, opacity: r.style.scroller.opacity }, css: r.style.scroller, container: { id: "scrollbarGroup", label: "scrollbarGroup", isParent: !0 }, component: this, label: "scrollbarAnchor", id: "scrollbarAnchor" }), r.drawStripes && r._nodeDimensions.width >= 8 && this.addGraphicalElement({ el: "path", attr: { path: ["M", r._nodeDimensions.x + r._nodeDimensions.width / 2 - 3, r._nodeDimensions.y + .2 * r._nodeDimensions.height, "v", .6 * r._nodeDimensions.height, "m", 3, -.6 * r._nodeDimensions.height, "v", .6 * r._nodeDimensions.height, "m", 3, -.6 * r._nodeDimensions.height, "v", .6 * r._nodeDimensions.height], opacity: r.style.grip.opacity }, css: r.style.grip, container: { id: "scrollbarGroup", label: "scrollbarGroup", isParent: !0 }, component: this, label: "scrollbarAnchorStripe", id: "scrollbarAnchorStripe" }) }, t }(i["default"]);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(335)),
                o = r(223),
                s = r(215),
                l = r(227),
                c = (0, o.getDep)("redraphael", "plugin"),
                u = function(e) {
                    function t() { var t; return (t = e.call(this) || this)._evtHandlers = {}, t }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function(e) { void 0 === e && (e = {}); var t = this.config;
                        t.type = e.type, t.style = { button: Object.assign({}, { fill: s.TRACKER_FILL, stroke: "none" }, e.style.button), arrow: Object.assign({}, { fill: c.tintshade(e.color, -.4).rgba, stroke: "none" }, e.style.arrow) } }, r.attachEventHandlers = function() { var e, t, r = this,
                            n = r.config,
                            a = r.getLinkedParent(),
                            i = a.config,
                            o = a.getChildren("scrollAnchor")[0],
                            s = function() { i.scrollPosition >= 1 ? i.scrollPosition = 1 : (i.scrollPosition <= 0 || isNaN(i.scrollPosition)) && (i.scrollPosition = 0), o.asyncDraw(), "function" == typeof i.evt.scroll && i.evt.scroll(i.scrollPosition) },
                            c = function u() { t = !0, "start" === n.type ? i.scrollPosition -= .01 : i.scrollPosition += .01, s(), r.addJob("dragScrollAnchor", u, l.priorityList.draw) };
                        r.addEventListener("fc-mousedown", r._evtHandlers.mousedown || (r._evtHandlers.mousedown = function() { e = setTimeout((function() { r.addJob("dragScrollAnchor", c, l.priorityList.draw) }), 300) })), r.addEventListener("fc-mouseup", r._evtHandlers.mouseup || (r._evtHandlers.mouseup = function() { clearTimeout(e), r.removeJob("dragScrollAnchor"), t || ("start" === n.type ? i.scrollPosition -= .1 : i.scrollPosition += .1, s()), t = !1 })), r.addEventListener("fc-mouseout", (function() { t && r._evtHandlers.mouseup() })) }, r.draw = function() { var e = this.config,
                            t = this.getLinkedParent().config,
                            r = { id: "scrollbarGroup", label: "scrollbarGroup", isParent: !0 },
                            n = t.isHorizontal,
                            a = t.x + .5,
                            i = t.y + t.padding + .5,
                            o = t.width - 1 < 1 ? 1 : t.width - 1,
                            l = t.height - 1 < 1 ? 1 : t.height - 1,
                            c = n ? Math.min(l, .5 * o) : Math.min(o, .5 * l),
                            u = n ? (0, s.polyPathToPath)([3, a + .5 * c, i + .5 * l, .25 * c, 180]) : (0, s.polyPathToPath)([3, a + .5 * o, i + .5 * c, .25 * c, 90]),
                            d = n ? (0, s.polyPathToPath)([3, a + o - .5 * c, i + .5 * c, .25 * c, 0]) : (0, s.polyPathToPath)([3, a + .5 * o, i + l - .5 * c, .25 * c, -90]);
                        this.addGraphicalElement({ el: "rect", attr: { x: "start" === e.type ? a : n ? a + o - c : a, y: "start" === e.type || n ? i : i + l - c, width: (e.type, n ? c : o), height: (e.type, n ? l : c), opacity: e.style.button.opacity }, css: e.style.button, container: r, component: this, label: "scrollbar" + e.type + "ButtonRect", id: "scrollbar" + e.type + "ButtonRect" }), this.addGraphicalElement({ el: "path", attr: { path: "start" === e.type ? u : d, opacity: e.style.arrow.opacity }, css: e.style.arrow, container: r, component: this, label: "scrollbar" + e.type + "ButtonPath", id: "scrollbar" + e.type + "ButtonPath" }) }, t }(i["default"]);
            t["default"] = u }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(335)),
                o = r(215),
                s = r(336),
                l = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r = this.config;
                        r.checked = !!t.isChecked, r.interPadding = 3, r.symbolName = "Internal_CB", r.text = (0, o.pluck)(t.text, ""), r.textStyle = s.defaultTextStyle }, r.check = function() { this.config.checked = !0, this.asyncDraw() }, r.uncheck = function() { this.config.checked = !1, this.asyncDraw() }, r.toggle = function() { this.config.checked ? this.uncheck() : this.check() }, r.getContainer = function() { return this.getFromEnv("chart").getChildContainer("buttonGroup") }, r.draw = function() { this.config.checked ? s.SymbolStore.register("Internal_CB", s.RSymbolFns.CB_CHECKED) : s.SymbolStore.register("Internal_CB", s.RSymbolFns.CB_NOT_CHECKED), e.prototype.draw.call(this) }, t }(i["default"]);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(335)),
                o = r(215),
                s = n(r(342)),
                l = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r = this.config,
                            n = this.getFromEnv("dataSource").chart;
                        r.baseFontFamily = (0, o.pluck)(t.baseFontFamily, n.basefont, "Verdana,sans"), r.baseFontSize = (0, o.pluckNumber)(t.baseFontSize, n.basefontsize, 10), r.baseFontColor = (0, o.pluck)(t.baseFontColor, n.basefontcolor, "595959"), r.skipGraphics = !0, this.createListContainer() }, r.createListContainer = function() { this.attachChild(s["default"], "listContainer", "listContainer").configure() }, r.appendInMenu = function(e) { void 0 === e && (e = []); var t, r, n = this.getChild("listContainer"); for (r = e.length, t = 0; t < r; t++) n.addItem(e[t]);
                        this.config.skipGraphics = !1 }, t }(i["default"]);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(215),
                s = n(r(343)),
                l = r(336),
                c = r(223);

            function u(e, t) { var r, n, a, i; if (void 0 === t && (t = {}), (n = e.attachChild(s["default"], "item", t.id)).configure(t), t.menu instanceof Array && (i = t.menu.length))
                    for (r = n.attachChild(d, "subContainer", "subContainer"), e.config.hasSubMenu = !0, r.configure(), a = 0; a < i; a++) r.addItem(t.menu[a]) }(0, c.addDep)({ name: "manuItemContainerAnimation", type: "animationRule", extension: { "*.menuItemContainer.menuItemContainer": null } }); var d = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function() { var e = this.config;
                        this.setStyle(), e.counter = 0, e.hasSubMenu = !1, e._defaultStyle = { position: "absolute", "z-index": 50, top: 0 + o.PXSTRING, right: "auto", left: "auto", overflow: "hidden", background: "#ffffff", border: "1px solid #646464", "box-shadow": "#999999 2px 2px 5px", padding: "5px 3px", display: "none" } }, r.setStyle = function(e) { void 0 === e && (e = {}); var t = this.config;
                        t.hoverOverStyle = e.hoverOverStyle || { background: "#333333", color: "#FFFFFF", cursor: o.POINTER }, t.hoverOutStyle = e.hoverOutStyle || { background: "#FFFFFF", color: "#000000" } }, r.show = function() { var e = this.getLinkedParent().config,
                            t = (0, o.pluckNumber)(e.scale, 1.5),
                            r = e.x,
                            n = e.y,
                            a = e.width * t,
                            i = e.height * t,
                            s = +this.getFromEnv("chart").getFromEnv("chartWidth"),
                            l = this.getGraphicalElement("menu", "menu").element,
                            c = l.style;
                        clearTimeout(this.config.hideTimer), c.display = "block", l.offsetWidth + r > s ? (c.left = "auto", c.right = s - r - a + o.PXSTRING) : (c.left = r + o.PXSTRING, c.right = "auto"), c.top = n + i + 5 + o.PXSTRING, c.bottom = "auto", c.display = "block" }, r.hide = function(e) { void 0 === e && (e = {}); var t, r = this.getGraphicalElement("menu", "menu").element;
                        e.instant ? r.style.display = "none" : (t = (0, o.pluckNumber)(e.timeout, l.DEFAULT_TIMEOUT), this.config.hideTimer = setTimeout((function() { r.style.display = "none" }), t)) }, r.addItem = function(e) { void 0 === e && (e = {}), u(this, e) }, r.draw = function() { this.addGraphicalElement({ el: "html", attr: { type: "div" }, css: this.config._defaultStyle, component: this, label: "menu", id: "menu" }), this.addEventListener("fc-mouseover", this.show), this.addEventListener("fc-mouseout", this.hide) }, r.getName = function() { return "menuItemContainer" }, r.getType = function() { return "menuItemContainer" }, t }(i.SmartRenderer),
                f = d;
            t["default"] = f }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(215),
                o = r(336),
                s = r(230);
            (0, r(223).addDep)({ name: "manuItemAnimation", type: "animationRule", extension: { "*.menuItem.menuItem": null } }); var l = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function(e) { void 0 === e && (e = {}); var t = this.config,
                        r = this.getLinkedParent().getLinkedParent().config;
                    t.name = e.name, t.action = e.action && e.action.toLowerCase() || o.CLICK, t.eventMap = {}, t.style = { padding: "3px 8px", fontFamily: r.baseFontFamily, fontSize: r.baseFontSize + i.PXSTRING, color: "#000000", position: "static", display: "inline", float: "left", background: "#FFFFFF" }, t.pointerStyle = { padding: "0px 4px 3px", fontFamily: r.baseFontFamily, fontSize: r.baseFontSize + 3 + i.PXSTRING, color: "#000000", position: "static", float: "left" }, t.itemType = e.menu instanceof Array && e.menu.length ? "subMenu" : "item", "item" === t.itemType ? t.handler = e.handler || i.stubFN : t.handler = i.stubFN, t.hoverOverStyle = e.hoverOverStyle || {}, t.hoverOutStyle = e.hoverOutStyle || {} }, r.applyStyle = function(e) { void 0 === e && (e = "mouseover"); var t = this.getLinkedParent().config,
                        r = this.getGraphicalElement("menuItem", "menuItem"),
                        n = this.getGraphicalElement("container", "container"),
                        a = this.getGraphicalElement("menuPointer", "menuPointer"); switch (e) {
                        case "mouseover":
                            r.css(t.hoverOverStyle), n.css(t.hoverOverStyle), a && a.css(t.hoverOverStyle); break;
                        case "mouseout":
                            r.css(t.hoverOutStyle), n.css(t.hoverOutStyle), a && a.css(t.hoverOutStyle) } }, r.draw = function() { var e = this,
                        t = e.config,
                        r = e.getLinkedParent();
                    e.addGraphicalElement({ el: "html", attr: { type: "div" }, css: { display: "block", position: "static", overflow: "hidden", height: "100%", width: "100%", background: "#FFFFFF" }, container: { id: "menu", label: "menu", isParent: !0 }, component: e, label: "container", id: "container" }), r.config.hasSubMenu && e.addGraphicalElement({ el: "html", attr: { type: "div", text: "â—‚" }, css: t.pointerStyle, container: { id: "container", label: "container" }, component: e, label: "menuPointer", id: "menuPointer" }, !0), e.addGraphicalElement({ el: "html", attr: { type: "span", text: t.name }, css: t.style, container: { id: "container", label: "container" }, component: e, label: "menuItem", id: "menuItem" }, !0), e._mouseOverEvent || (e._mouseOverEvent = function() { e.applyStyle("mouseover") }), e._mouseOutEvent || (e._mouseOutEvent = function() { e.applyStyle("mouseout") }), e._clickEvent || (e._clickEvent = function() { "item" === e.config.itemType && (r.hide({ instant: !0 }), t.handler()) }), e.addEventListener("fc-mouseover", e._mouseOverEvent), e.addEventListener("fc-mouseout", e._mouseOutEvent), e.addEventListener("fc-click", e._clickEvent) }, r.getName = function() { return "menuItem" }, r.getType = function() { return "menuItem" }, t }(s.SmartRenderer);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(335)),
                o = r(215),
                s = { left: "start", right: "end", center: "middle" },
                l = { top: o.POSITION_TOP, middle: o.POSITION_MIDDLE, bottom: o.POSITION_BOTTOM },
                c = { 0: "0", 1: "270", right: "90", cw: "90", left: "270", ccw: "270" },
                u = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.font = "Verdana, sans", t.rotateText = 0 }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r = this.config;
                        r.font = (0, o.pluck)(t.font, r.font), r.fontSize = (0, o.pluckFontSize)(t["font-size"], t.fontSize, 10) * r.scale, r.fontStyle = (0, o.pluck)(t["font-style"], t.fontStyle, "normal"), r.fontWeight = (0, o.pluck)(t["font-weight"], t.fontWeight, "normal"), r.rotateText = (0, o.pluckNumber)(t.rotateText, r.rotateText), r.rotateAngle = parseFloat(c[(0, o.pluck)(t.rotateAngle && t.rotateAngle.toLowerCase(), "0")]) }, r.getTextBound = function() { var e = this.config,
                            t = []; return e.showTextBound && (t = [(0, o.convertColor)(e.fill), e.borderColor, e.borderThickness, 2, e.radius]), t }, r.getLogicalSpace = function() { var e, t = this.config,
                            r = (t.width, t.height, t.marginTop),
                            n = t.marginLeft,
                            a = t.marginRight,
                            i = t.marginBottom; return { width: (e = this.getFromEnv("smartLabel").getOriSize(this.config.text, !1)).width, height: e.height, marginTop: r, marginLeft: n, marginRight: a, marginBottom: i } }, r.draw = function() { var e, t = this.config;
                        t.text && (e = { x: t.x, y: t.y, text: t.text, fill: (0, o.convertColor)(t.labelFill), "text-bound": this.getTextBound(), "font-style": t.fontStyle, "font-weight": t.fontWeight, "font-family": t.font, "font-size": t.fontSize, "text-anchor": s[t.hAlign], "vertical-align": l[t.vAlign], transform: t.rotateText ? (0, o.getSuggestiveRotation)(t.rotateAngle, t.x, t.y) : "t0,0" }, !t.isHidden && this.addGraphicalElement({ el: "text", attr: e, component: this, container: { id: "group", label: "group", isParent: !0 }, label: "text", id: "label" })) }, t }(i["default"]);
            t["default"] = u }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(335)),
                o = r(215),
                s = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.config.isVertical = 1 }, r.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var r = this.config;
                        r.isVertical = (0, o.pluckNumber)(t.isVertical, r.isVertical) }, r.draw = function() { var e = this.config,
                            t = e.x,
                            r = e.y,
                            n = e.width,
                            a = e.height,
                            i = { path: e.isVertical ? ["M", t + n / 2, r, "v", a] : ["M", t, r, "h", n], stroke: e.stroke, "stroke-width": e.strokeWidth, "stroke-linecap": "round" };!e.isHidden && this.addGraphicalElement({ el: "path", attr: i, component: this, container: { id: "group", label: "group", isParent: !0 }, css: e.css, label: "path", id: "path" }) }, t }(i["default"]);
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(215),
                s = function(e) { e.manageSpace && e.manageSpace() },
                l = function(e) {
                    function t(t) { var r; return (r = e.call(this, t) || this).props = {}, r }(0, a["default"])(t, e); var r = t.prototype; return r.configureAttributes = function(e) { void 0 === e && (e = {}); var t = this.config,
                            r = this.getFromEnv("chartConfig");
                        this.__setDefaultConfig(), this.props.width = (0, o.pluckNumber)(e.width, 0), this.props.height = (0, o.pluckNumber)(e.height, 0), t.orientation = (0, o.pluck)(e.toolbarorientation, t.orientation), t.hPadding = (0, o.pluck)(e.toolbarhpadding, t.hPadding), t.vPadding = (0, o.pluck)(e.toolbarvpadding, t.vPadding), t.backgroundcolor = (0, o.pluck)(e.toolbarbackgroundcolor, t.backgroundcolor), t.backgroundalpha = (0, o.pluck)(e.toolbarbackgroundalpha, t.backgroundalpha), t.bordercolor = (0, o.pluck)(e.toolbarbordercolor, t.bordercolor), t.borderalpha = (0, o.pluck)(e.toolbarborderalpha, t.borderalpha), t.borderthickness = (0, o.pluck)(e.toolbarborderthickness, t.borderthickness), t.hDirection = (0, o.pluckNumber)(e.toolbarhdirection, "r" === r.toolbarHAlign ? -1 : 1), t.vDirection = (0, o.pluckNumber)(e.toolbarvdirection, "b" === r.toolbarBAlign ? -1 : 1), t.hAlign = (0, o.pluck)(e.hAlign, "center").toLowerCase(), t.vAlign = (0, o.pluck)(e.vAlign, "middle").toLowerCase(), t.marginTop = (0, o.pluckNumber)(e.marginTop, e.spacing, t.marginTop), t.marginLeft = (0, o.pluckNumber)(e.marginLeft, e.spacing, t.marginLeft), t.marginRight = (0, o.pluckNumber)(e.marginRight, e.spacing, t.marginRight), t.marginBottom = (0, o.pluckNumber)(e.marginBottom, e.spacing, t.marginBottom) }, r.__setDefaultConfig = function() { var e = this.config;
                        e.orientation = "horizontal", e.hPadding = 0, e.vPadding = 0, e.backgroundcolor = "#eeeeee", e.backgroundalpha = 0, e.bordercolor = "#eeeeee", e.borderalpha = 0, e.borderthickness = 1, e.spacing = 2.5, e.marginTop = 2.5, e.marginLeft = 2.5, e.marginRight = 2.5, e.marginBottom = 2.5 }, r.getLogicalSpace = function() { var e = this.config,
                            t = this.props,
                            r = 0,
                            n = 0; return this.getChildren("tool") && this.getChildren("tool").length && (this.getChildren("tool").forEach((function(t) { if (!t.getState("removed")) { var a = t.getLogicalSpace(),
                                    i = a.width,
                                    s = a.height,
                                    l = a.marginTop,
                                    c = a.marginLeft,
                                    u = a.marginRight,
                                    d = a.marginBottom; "horizontal" === e.orientation ? (i !== o.UNDEF && (r += i + (u || 0) + (c || 0)), n < (s = s + (l || 0) + (d || 0)) && (n = s)) : (s !== o.UNDEF && (n += s + (l || 0) + (d || 0)), r < (i = i + (u || 0) + (c || 0)) && (r = i)) } })), r += 2 * e.hPadding, n += 2 * e.vPadding, t.width = t.width > r ? t.width : r, t.height = t.height > n ? t.height : n), { width: r, height: n, marginTop: e.marginTop, marginLeft: e.marginLeft, marginRight: e.marginLeft, marginBottom: e.marginLeft } }, r.manageSpace = function() { var e, t = this.getChildren("tool") || []; for (var r in e = "horizontal" === this.config.orientation ? this._placeToolHorizontally() : this._placeToolVertically()) e.hasOwnProperty(r) && this.getChild(r).setDimension(e[r]);
                        t.forEach(s) }, r._placeToolHorizontally = function() { var e, t, r, n = this,
                            a = n.config,
                            i = n.props,
                            o = a.hPadding,
                            s = i.width - a.hPadding,
                            l = {},
                            c = { left: [], right: [], center: [] },
                            u = { left: 0, right: 0, center: 0 }; return n.getChildren("tool") && n.getChildren("tool").length && ((a.hDirection > 0 ? n.getChildren("tool") : n.getChildren("tool").slice(0).reverse()).forEach((function(e) { if (!e.getState("removed")) { var t = e.getAlignment().hAlign,
                                    r = e.getLogicalSpace(),
                                    o = r.width,
                                    s = r.height,
                                    d = r.marginTop,
                                    f = r.marginLeft,
                                    h = r.marginRight,
                                    g = r.marginBottom,
                                    p = e.getId();
                                u[t] += o + (f || 0) + (h || 0), c[t].push(p), l[p] = {}, l[p].y = n.props.y + d + a.vPadding + (i.height - 2 * a.vPadding - (s + g + d)) / 2 } })), c.left.forEach((function(e) { var t = n.getChild(e).getLogicalSpace(),
                                r = t.width,
                                i = t.marginLeft,
                                s = t.marginRight;
                            o += i || 0, l[e].x = n.props.x + a.hPadding + o, o += r + (s || 0) })), c.right.reverse().forEach((function(e) { var t = n.getChild(e).getLogicalSpace(),
                                r = t.width,
                                i = t.marginLeft,
                                o = t.marginRight;
                            s -= r + (o || 0), l[e].x = n.props.x + a.hPadding + s, s -= i || 0 })), e = [u.left + a.hPadding, i.width - (u.right + a.hPadding)], t = Math.abs(e[0] - e[1]), r = e[0] + t / 2 - u.center / 2, c.center.forEach((function(e) { var t = n.getChild(e).getLogicalSpace(),
                                i = t.width,
                                o = t.marginLeft,
                                s = t.marginRight;
                            r += o || 0, l[e].x = n.props.x + a.hPadding + r, r += i + s || 0 }))), l }, r.getAlignment = function() { return { hAlign: this.config.hAlign, vAlign: this.config.vAlign } }, r._placeToolVertically = function() { var e, t, r, n = this,
                            a = n.config,
                            i = n.props,
                            o = a.vPadding,
                            s = i.height - a.vPadding,
                            l = { top: [], middle: [], bottom: [] },
                            c = { top: 0, middle: 0, bottom: 0 },
                            u = {}; return n.getChildren("tool") && n.getChildren("tool").length && ((a.vDirection > 0 ? n.getChildren("tool") : n.getChildren("tool").reverse()).forEach((function(e) { if (!e.getState("removed")) { var t = e.getAlignment().vAlign,
                                    r = e.getLogicalSpace(),
                                    o = r.width,
                                    s = r.height,
                                    d = r.marginTop,
                                    f = r.marginLeft,
                                    h = r.marginRight,
                                    g = r.marginBottom,
                                    p = e.getId();
                                c[t] += s + (d || 0) + (g || 0), l[t].push(e.getId()), u[p] = {}, u[p].x = n.props.x + f + a.hPadding + f + (i.width - 2 * a.hPadding - (o + f + h)) / 2 } })), l.top.forEach((function(e) { var t = n.getChild(e).getLogicalSpace(),
                                r = t.height,
                                i = t.marginTop,
                                s = t.marginBottom;
                            o += i || 0, u[e].y = n.props.y + a.vPadding + o, o += r + (s || 0) })), l.bottom.reverse().forEach((function(e) { var t = n.getChild(e).getLogicalSpace(),
                                r = t.height,
                                i = t.marginTop,
                                o = t.marginBottom;
                            s -= r + (o || 0), u[e].y = n.props.y + a.vPadding + s, s -= i || 0 })), e = [c.top + a.vPadding, i.height - (c.bottom + a.vPadding)], t = Math.abs(e[0] - e[1]), r = e[0] + t / 2 - c.middle / 2, l.middle.forEach((function(e) { var t = n.getChild(e).getLogicalSpace(),
                                i = t.height,
                                o = t.marginTop,
                                s = t.marginBottom;
                            r += o || 0, u[e].y = n.props.y + a.vPadding + r, r += i + s || 0 }))), u }, r.setDimension = function(e) { void 0 === e && (e = {}), e.x !== o.UNDEF && (this.props.x = e.x), e.y !== o.UNDEF && (this.props.y = e.y), e.width !== o.UNDEF && (this.props.width = e.width), e.height !== o.UNDEF && (this.props.height = e.height) }, r.getDimension = function() { return this.props }, r.draw = function() { var e = this.config;
                        this.addGraphicalElement({ id: "group", el: "group", attr: { name: "toolbar" }, container: { id: "toolbar-master", isParent: !0 }, component: this, label: "group" }), this.addGraphicalElement({ id: "carpet", el: "rect", attr: Object.assign({ fill: (0, o.toRaphaelColor)({ color: e.backgroundcolor, alpha: e.backgroundalpha }), stroke: (0, o.toRaphaelColor)({ color: e.bordercolor, alpha: e.borderalpha }), "stroke-width": e.borderthickness }, this.getDimension()), container: { label: "group", id: "group" }, component: this, label: "carpet" }) }, r.getName = function() { return "toolbar" }, r.getType = function() { return "Toolbar" }, t }(i.SmartRenderer);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = n(r(330)),
                s = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, a["default"])(t); return r._toggle = function() { r.isEnabled() && r.zoomOut() }, t }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "zoomResetButton" }, r.configure = function() { e.prototype.configure.call(this); var t = this.getLinkedParent();
                        this.configureButton(), this.disable(), t.registerDependancy([{ derivedInteraction: ["zoomin", "zoomout"], callback: this.dependancyFn, component: this }]) }, r.configureButton = function() {!this.config.skipGraphics && this.setLinkedItem("button", this.createButton({ icon: "resetIcon", handlers: { click: this._toggle }, tooltext: this.config.tooltext, state: "disabled" })), this.disable() }, r.enable = function() { this.config.state = "activated", e.prototype.enable.call(this) }, r.zoomOut = function() { var e, t, r, n, a, i, o, s = this,
                            l = s.config.hookFn,
                            c = {};
                        s.getFromEnv("axesObArr").forEach((function(u) { e = s.getFromEnv("chart"), t = e.getChildren("scrollBar") && e.getChildren("scrollBar")[0], (o = u.stack[0]) && (s.getFromEnv("chart").getFromEnv("animationManager").setAnimationState("zoomOut"), l && l(o.minValue, o.maxValue), u.isY ? (a = o.minValue, i = o.maxValue) : (r = o.minValue, n = o.maxValue, c = s.constructor._getZoomInfo(r, n, u.axis)), u.axis.setVisibleConfig(o.minValue, o.maxValue), e.setScrollBarDimension && e.setScrollBarDimension(), t && !t.getState("removed") && t.asyncDraw(), u.stack.length = 0) })), s._raiseZoomEvents("zoomout", "zoomreset", Object.assign(c, { level: 1, startX: r, endX: n, startY: a, endY: i })), s.disable() }, r.dependancyFn = function(e) { "zoomin" === e.type ? this.enable() : "zoomout" === e.type && (this._checkStackLen() || this.disable()) }, t }(o["default"]);
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, a["default"])(t); return r._toggle = function() { r.isEnabled() && r.zoomOut() }, t }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "zoomOutButton" }, r.configureButton = function() {!this.config.skipGraphics && this.setLinkedItem("button", this.createButton({ icon: "zoomOutIcon", handlers: { click: this._toggle }, tooltext: this.config.tooltext, state: "activated" })) }, r.zoomOut = function() { var e, t, r, n, a, i, o, s, l = this,
                            c = l.config.hookFn,
                            u = {},
                            d = 0;
                        l.getFromEnv("axesObArr").forEach((function(f) { e = l.getFromEnv("chart"), t = e.getChildren("scrollBar") && e.getChildren("scrollBar")[0], r = f.stack.pop(), n = f.stack.length, d += n, r && (f.isY ? (o = r.minValue, s = r.maxValue) : (a = r.minValue, i = r.maxValue, u = l.constructor._getZoomInfo(a, i, f.axis)), c && c(r.minValue, r.maxValue), f.axis.setVisibleConfig(r.minValue, r.maxValue), e.setScrollBarDimension && e.setScrollBarDimension(), t && !t.getState("removed") && t.asyncDraw()) })), l._raiseZoomEvents("zoomout", "zoomedout", Object.assign(u, { level: n, startX: a, endX: i, startY: o, endY: s })), d || this.disable() }, t }(n(r(347))["default"]);
            t["default"] = o }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, a["default"])(t); return r._toggle = function() { r.isEnabled() && r.zoom() }, t }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "zoomInButton" }, r.configure = function() { e.prototype.configure.call(this); var t = this.config;
                        t.stepZoom = t.stepZoom || 5.33, !t.skipGraphics && this.setLinkedItem("button", this.createButton({ icon: "zoomInIcon", handlers: { click: this._toggle }, tooltext: this.config.tooltext, state: "activated" })), this.enable() }, r.zoom = function() { var e, t, r, n, a, i, o, s, l, c = this,
                            u = {},
                            d = c.config,
                            f = d.hookFn,
                            h = !1,
                            g = Math.pow(10, d.zoomDecimalLimit) || 1;
                        c.getFromEnv("animationManager").setAnimationState("zoom"), c.getFromEnv("axesObArr").forEach((function(p) { r = p.axis, e = r.getVisibleConfig(), (t = Math.round((e.maxValue - e.minValue) / d.stepZoom * g) / g) > Number.EPSILON && (p.stack.push(e), p.isY ? (i = e.minValue + t, o = e.maxValue - t) : (n = e.minValue + t, a = e.maxValue - t, u = c.constructor._getZoomInfo(n, a, r)), s = p.stack.length + 1, f && f(e.minValue, e.maxValue), l = r.setVisibleConfig(e.minValue + t, e.maxValue - t), h = h || l) })), h && c._raiseZoomEvents("zoomin", "zoomedin", Object.assign(u, { level: s, startX: n, endX: a, startY: i, endY: o })) }, t }(n(r(330))["default"]);
            t["default"] = o }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = n(r(330)),
                s = r(215),
                l = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, a["default"])(t); return r.controlArr = [{ nativeInteraction: ["fc-dbclick"], callback: r.zoom.bind(r), component: r }], t }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "dbTapZoom" }, r.configure = function() { e.prototype.configure.call(this), this.enable() }, r.setControl = function() { var e = this.controlArr,
                            t = this.getLinkedParent();
                        t.releaseControl(e), this.isEnabled() && t.getControl(e) }, r.zoom = function(e) { var t, r, n, a, i, o, l, c, u, d, f = this,
                            h = f.getFromEnv("chart"),
                            g = (0, s.getMouseCoordinate)(h.getLinkedItem("container"), e, h),
                            p = f.config,
                            m = p.hookFn,
                            v = {},
                            b = !1,
                            y = Math.pow(10, p.zoomDecimalLimit) || 1;
                        h.getFromEnv("animationManager").setAnimationState("zoom"), f.getFromEnv("axesObArr").forEach((function(e) { t = e.axis, r = t.getValue(e.isY ? g.chartY : g.chartX), a = t.getVisibleConfig(), n = function(e, t, r, n) { var a = t - e.minValue,
                                    i = e.maxValue - t; return { min: Math.round((t - a / r * (r - 1)) * n) / n, max: Math.round((t + i / r * (r - 1)) * n) / n } }(a, r, p.stepzoom, y), e.isY ? (c = n.min, u = n.max) : (o = n.min, l = n.max, v = f.constructor._getZoomInfo(o, l, t)), t.getZoom() <= y && (m && "function" == typeof p.hookFn && m(n.min, n.max), i = t.setVisibleConfig(n.min, n.max), b = b || i, e.stack.push(a), d = e.stack.length + 1) })), b && f._raiseZoomEvents("zoomin", "zoomedin", Object.assign(v, { level: d, startX: o, endX: l, startY: c, endY: u }, e.originalEvent)) }, t }(o["default"]);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = n(r(330)),
                s = r(215),
                l = r(227),
                c = r(223),
                u = Math,
                d = u.min,
                f = u.max,
                h = u.abs,
                g = "rgba(255,0,0," + (s.isIE ? .002 : 1e-6) + ")",
                p = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, a["default"])(t); return r.controlArr = [{ nativeInteraction: ["fc-dragstart"], callback: r.dragstart.bind(r), component: r }, { nativeInteraction: ["fc-dragmove"], callback: r.dragmove.bind(r), component: r }, { nativeInteraction: ["fc-dragend"], callback: r.dragend.bind(r), component: r }], r.toggle = r.toggle.bind(r), t }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "dragPin" }, r.configure = function() { e.prototype.configure.call(this); var t = this.getFromEnv("chartConfig"),
                            r = this.getFromEnv("dataSource").chart,
                            n = this.config;
                        n.attr = n.attr || { stroke: "#3399ff", fill: "#b9d5f1", "stroke-width": 0 }, n.pinAttr = n.pinAttr || { "stroke-width": 0, stroke: "none", fill: "#b9d5f1", "shape-rendering": "crisp" }, n.borderWidth = t.borderWidth || (t.borderWidth = (0, s.pluckNumber)(r.showborder, 1) ? (0, s.pluckNumber)(r.borderthickness, 1) : 0), !this.config.skipGraphics && this.setLinkedItem("button", this.createButton({ icon: "pinModeIcon", tooltext: (0, s.pluckNumber)(r.showtoolbarbuttontooltext, 1) ? (0, s.pluck)(this.config.tooltext, "Pin mode") : "", handlers: { click: this.toggle }, state: "activated" })), this.getLinkedParent().registerDependancy([{ derivedInteraction: ["zoomin", "zoomout"], callback: this.dependancyFn, component: this }]), this.disable(void 0, !1) }, r.enable = function(e, t) { var r = this.config;!0 !== r.enabled && (r.enabled = !0, r.state = "pressed", this.fireEvent("pinenabled"), this.setControl(), !t && this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged", { pinModeActive: !0 }, e && e.originalEvent)) }, r.dependancyFn = function(e) { "zoomin" !== e.type && "zoomout" !== e.type || this.disable(e) }, r.draw = function() { var e, t = this,
                            r = t.config;
                        t.createPin(), t.config.pinElemVisible && t.addJob("resizePinElem", (function() { e = t.getFromEnv("xAxis")[0], t.pinRangePixels(e.getPixel(r.boxStartValue), e.getPixel(r.boxEndValue)) }), l.priorityList.postRender) }, r._setConfig = function() { var e = this.getFromEnv("chart"),
                            t = this.getFromEnv("chartConfig"),
                            r = this.config,
                            n = Object.assign({}, r.attr || {}),
                            a = n["stroke-width"] = (0, s.pluckNumber)(n.strokeWidth, n["stroke-width"], 1),
                            i = (0, s.getPosition)(e.getFromEnv("chart-container"), e);
                        r.zoomX = "horizontal" === r.orientation || "both" === r.orientation, r.zoomY = "vertical" === r.orientation || "both" === r.orientation, r.canvasY = t.canvasTop, r.canvasX = t.canvasLeft, r.canvasW = t.canvasWidth, r.canvasH = t.canvasHeight, r.canvasX2 = t.canvasLeft + t.canvasWidth, r.canvasY2 = t.canvasTop + t.canvasHeight, r.strokeWidth = a, r.chartPosLeft = i.left, r.chartPosTop = i.top }, r.disable = function(e, t) { var r = this.config,
                            n = this.getContainer("pingroup"),
                            a = this.getGraphicalElement("pintracker");!1 !== r.enabled && (r.enabled = !1, r.state = "activated", n && n.hide(), a && a.hide(), this.fireEvent("pindisabled"), !t && this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged", { pinModeActive: !1 }, e && e.originalEvent), this.setControl(), r.pinElemVisible = !1) }, r.setControl = function() { var e = this.getLinkedParent(),
                            t = this.controlArr,
                            r = this.getLinkedItem("button");
                        e.releaseControl(t), this.isEnabled() && e.getControl(t), r && r.setCurrentState(this.config.state) }, r.createPin = function() { var e, t, r, n, a, i = this,
                            o = i.getFromEnv("chart"),
                            l = i.getFromEnv("chartConfig"),
                            u = i.getFromEnv("animationManager"),
                            d = l.canvasTop,
                            f = l.canvasBottom,
                            h = l.canvasHeight,
                            p = l.canvasLeft,
                            m = i.config.borderWidth,
                            v = l["clip-pinrect"],
                            b = i.getContainer("pingroup"),
                            y = i.getContainer("pinElemGroup"),
                            x = i.getGraphicalElement("pinrect"),
                            w = i.getGraphicalElement("pintracker");
                        n = l._visw = l.canvasWidth, a = l._visx = l.canvasLeft, e = (0, c.getDep)("redraphael", "plugin").crispBound(0, d - f, 0, h, m), v = l["clip-pinrect"] = [e.x, d, e.width, e.height], b || i.addContainer("pingroup", b = u.setAnimation({ el: "group", finalAttr: { name: "zoompin" }, component: i, label: "group" }).insertBefore(o.getChildContainer("plotGroup")).hide()), b.transform(l._pingrouptransform = ["T", a, f]), y || i.addContainer("pinElemGroup", y = u.setAnimation({ el: "group", attr: { name: "zoompinelements" }, component: i, container: b, label: "group" })), i.config.pinAttr.x = 0, i.config.pinAttr.y = d - f, i.config.pinAttr.width = n, i.config.pinAttr.height = h, t = u.setAnimation({ el: x || "rect", attr: i.config.pinAttr, container: b, component: i }), x || i.addGraphicalElement("pinrect", t), r = u.setAnimation({ el: w || "rect", attr: { transform: b.transform(), x: 0, y: d - f, width: 0, height: h, stroke: "none", fill: g, cursor: s.hasSVG ? "ew-resize" : "e-resize" }, container: o.getChildContainer("trackerGroup"), component: i }).hide(), w || i.addGraphicalElement("pintracker", r), r.undrag(), r.drag((function(e) { var t = e.data[0],
                                n = a + t + this.__pindragdelta,
                                o = this.__pinboundleft,
                                l = this.__pinboundright,
                                c = this.data("cliprect").slice(0);
                            n < o ? n = o : n > l && (n = l), b.transform(["T", n, f]), r.transform(b.transform()), s.hasSVG || (c[0] = c[0] + n - a - this.__pindragdelta, u.setAnimation({ el: b, attr: { "clip-rect": c }, component: i })), this.__pindragoffset = t }), (function() { this.__pinboundleft = 0 - v[0] + a + p, this.__pinboundright = this.__pinboundleft + n - v[2], this.data("cliprect", b.attr("clip-rect")), b._.clipispath = !0 }), (function() { b._.clipispath = !1, this.__pindragdelta += this.__pindragoffset, delete this.__pindragoffset, delete this.__pinboundleft, delete this.__pinboundright })) }, r.pinRangePixels = function(e, t, r) { var n, a, i, o, s, l = this.getFromEnv("chart"),
                            c = l.config,
                            u = c.canvasLeft,
                            d = this.getFromEnv("xAxis")[0],
                            f = d.getLimit(),
                            h = f.max,
                            g = f.min,
                            p = this.getContainer("pingroup"),
                            m = c["clip-pinrect"],
                            v = this.getFromEnv("animationManager"),
                            b = c._pingrouptransform,
                            y = [],
                            x = t - e,
                            w = this.getGraphicalElement("pintracker"); if (l.iterateComponents((function(e) { e.getType && "dataset" === e.getType() && y.push(e) })), p && this.getGraphicalElement("pinrect")) { for (e === t && (p.hide(), w.hide()), s = y.length; s--;) y[s].fireEvent("createpinelements", { group: this.getContainer("pinElemGroup") });
                            m[0] = e + u, m[2] = x, v.setAnimation({ el: p, attr: { "clip-rect": m, transform: b }, component: this }).show(), w.__pindragdelta = 0, w.show(), v.setAnimation({ el: w, attr: { transform: b, x: e, width: x }, component: this }), this.config.pinElemVisible = !0, n = (n = Math.round(d.getValue(e + u, { wrtVisible: !0 }))) < g ? g : n, a = (a = Math.round(d.getValue(t + u, { wrtVisible: !0 }))) > h ? h : a, i = d.getLabel(n).label, o = d.getLabel(a).label, r && l.fireChartInstanceEvent("pinned", { startIndex: n || Math.abs(n), endIndex: a || Math.abs(a), startLabel: i, endLabel: o }, r.originalEvent) } }, r.dragstart = function(e) { this._setConfig(); var t, r, n = this.getFromEnv("animationManager"),
                            a = this.getFromEnv("chart-container"),
                            i = this.config,
                            o = i.attr,
                            l = this.getGraphicalElement("resizeBox"),
                            c = e.originalEvent,
                            u = i.layerX = (c.pageX || c.data[0]) - i.chartPosLeft,
                            d = i.layerY = (c.pageY || c.data[1]) - i.chartPosTop,
                            f = i.canvasY,
                            h = i.canvasX,
                            g = i.canvasX2,
                            p = i.canvasY2;
                        t = (0, s.getPosition)(a), i.chartPosLeft = t.left, i.chartPosTop = t.top, i.oy = d, i.ox = u, i.allowMove = !1, o.x = 0, o.y = 0, o.width = 0, o.height = 0, r = n.setAnimation({ el: l || "rect", attr: o, container: this.getFromEnv("chart").getChildContainer("trackerGroup"), component: this, callback: function() { this.show() } }), l || this.addGraphicalElement("resizeBox", r), u > h && u < g && d > f && d < p && (i.allowMove = !0), i.dragstartFn && "function" == typeof i.dragstartFn && i.dragstartFn(e) }, r.dragmove = function(e) { this._setConfig(); var t = this.config,
                            r = this.getFromEnv("animationManager"),
                            n = e.originalEvent,
                            a = n.pageX || n.data[2],
                            i = n.page || n.data[3],
                            o = t.layerX = a - t.chartPosLeft,
                            s = t.layerY = i - t.chartPosTop,
                            l = o - t.ox,
                            c = s - t.oy,
                            u = t.ox,
                            g = t.oy,
                            p = t.zoomX,
                            m = t.zoomY,
                            v = t.strokeWidth,
                            b = t.canvasW,
                            y = t.canvasH,
                            x = t.canvasY,
                            w = t.canvasX,
                            C = t.canvasX2,
                            _ = t.canvasY2;
                        r.setAnimationState("dragMove"), t.allowMove && (t.isDragged || (t.isDragged = 1), l = -(u - d(u - (u - f(u + l, w)), C)), c = -(g - d(g - (g - f(g + c, x)), _)), r.setAnimation({ el: this.getGraphicalElement("resizeBox"), attr: { x: (p ? d(u, u + l) : w) + .5 * v, y: (m ? d(g, g + c) : x) + .5 * v, width: p ? h(l) : b, height: m ? h(c) : y }, component: this }), t.dragmoveFn && "function" == typeof t.dragmoveFn && t.dragmoveFn(e)) }, r.dragend = function(e) { this._setConfig(); var t, r, n = this.getFromEnv("chart"),
                            a = this.config,
                            i = this.getFromEnv("xAxis")[0],
                            o = this.getGraphicalElement("resizeBox"),
                            s = a.bBox;
                        n.getFromEnv("animationManager").setAnimationState("dragEnd"), s = o.getBBox(), a.isDragged && (a.dragendFn && "function" == typeof a.dragendFn && a.dragendFn(e, { chart: n, selectionLeft: s.x, selectionTop: s.y, selectionHeight: s.height, selectionWidth: s.width, originalEvent: e.originalEvent }), a.isDragged = 0), o.hide(), delete a.oy, delete a.ox, (t = s.x - n.config.canvasLeft) !== (r = t + s.width) && (a.boxStartValue = i.getValue(t), a.boxEndValue = i.getValue(r), this.pinRangePixels(t, r, e)) }, t }(o["default"]);
            t["default"] = p }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = n(r(330)),
                s = r(215),
                l = function(e) {
                    function t() { var r;
                        r = e.call(this) || this; var n = (0, a["default"])(r); return n.controlArr = [{ nativeInteraction: ["fc-dragstart", "fc-dragmove"], callback: n.onDrag.bind(n), component: n }, { nativeInteraction: ["fc-dragend"], callback: n.onDragEnd.bind(n), component: n }], n.toggle = n.toggle.bind(n), s.isFirefox && n.controlArr.push({ nativeInteraction: ["fc-mousedown"], callback: t.mousedown, component: n }), r }(0, i["default"])(t, e), t.mousedown = function(e) { e && e.preventDefault() }; var r = t.prototype; return r.configure = function() { e.prototype.configure.call(this);!this.config.skipGraphics && this.setLinkedItem("button", this.createButton({ icon: "panModeIcon", tooltext: this.config.tooltext, handlers: { click: this.toggle }, state: "activated" })), this.getLinkedParent().registerDependancy([{ derivedInteraction: ["zoomin", "zoomout", "dragzoomenabled", "dragzoomdisabled"], callback: this.dependancyFn, component: this }]), this.disable(s.UNDEF, !1) }, r.getName = function() { return "dragPan" }, r.enable = function(e, t) { this._checkStackLen() && !0 !== this.config.enabled && (this.config.enabled = !0, this.config.state = "pressed", this.fireEvent("panenabled"), !t && this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged", { panModeActive: !0 }, e && e.originalEvent), this.setControl()) }, r.disable = function(e, t) {!1 !== this.config.enabled && (this.config.enabled = !1, this.config.state = this._checkStackLen() ? "activated" : "disabled", this.fireEvent("pandisabled"), !t && this.getFromEnv("chart").fireChartInstanceEvent("zoommodechanged", { panModeActive: !1 }, e && e.originalEvent), this.setControl()) }, r.setControl = function() { var e = this.getLinkedParent(),
                            t = this.getLinkedItem("button"),
                            r = this.controlArr;
                        e.releaseControl(r), this.isEnabled() && e.getControl(r), t && t.setCurrentState(this.isEnabled() ? this.config.state : "disabled") }, r.setDrag = function(e) { this.config.isDragging = !!e }, r.isDragging = function() { return !!this.config.isDragging }, r.onDragEnd = function() { this.setDrag(!1), this.getFromEnv("chart").getContainer("parentgroup").attr({ cursor: "default" }) }, r.onDrag = function(e) { var t, r, n, a, i, o, s, l, c, u, d, f = function(e) { var t = e; return t.originalEvent && (t = t.originalEvent), t.type.match(/touch/) ? { x: t.touches[0].pageX, y: t.touches[0].pageY } : t.type.match(/mouse|pointer/) ? { x: t.pageX, y: t.pageY } : void 0 }(e.originalEvent);
                        (function(e) { return !e.touches || 1 === e.touches.length })(e.originalEvent) && (this.getFromEnv("chart").getContainer("parentgroup").attr({ cursor: "move" }), this.getFromEnv("animationManager").setAnimationState("drag"), this.isDragging() ? this.getFromEnv("axesObArr").forEach((function(e) { var h, g; if (t = e.origConfig.minValue, r = e.origConfig.maxValue, i = e.axis, o = i.config.axisRange, s = i.getScale(), l = s.getRange(), c = s.getDomain(), u = (l[1] - l[0]) / (c[1] - c[0]), h = f, g = e.startCoord, d = { x: h.x - g.x, y: h.y - g.y }, a = r - t, (n = -(n = e.isY ? d.y / u : d.x / u)) > 0) n = Math.min(o.max - r, n);
                            else { if (!(n < 0)) return;
                                n = -Math.min(t - o.min, -n) } r = (t += n) + a, i.setVisibleConfig(t, r) })) : (this.getFromEnv("axesObArr").forEach((function(e) { e.origConfig = e.axis.getVisibleConfig(), e.startCoord = f })), this.setDrag(!0))) }, r.dependancyFn = function(e) { "zoomout" === e.type ? !this._checkStackLen() && this.disable() : "zoomin" === e.type ? this.enable(e) : "dragzoomdisabled" === e.type ? this._checkStackLen() && this.enable(e) : "dragzoomenabled" === e.type && this.disable(e) }, t }(o["default"]);
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = n(r(330)),
                s = r(215),
                l = function(e) { return e < 0 ? -e : e },
                c = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, a["default"])(t); return r.controlArr = [{ nativeInteraction: ["fc-pinchstart"], callback: r.pinchstart.bind(r), component: r }, { nativeInteraction: ["fc-pinchmove"], callback: r.pinchmove.bind(r), component: r }], t }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "pinchZoom" }, r.configure = function() { e.prototype.configure.call(this), this.enable() }, r.getCenter = function(e, t) { var r = this.getFromEnv("chart"),
                            n = (0, s.getMouseCoordinate)(r.getLinkedItem("container"), { pageX: (e.pageX + t.pageX) / 2, pageY: (e.pageY + t.pageY) / 2 }, r); return { x: n.chartX, y: n.chartY } }, r.pinchmove = function(e) { var t, r, n, a, i, o, s, c, u = this,
                            d = e.originalEvent.data,
                            f = d.distanceX,
                            h = d.distanceY,
                            g = u.config,
                            p = g.touchConfig,
                            m = {},
                            v = !1,
                            b = {},
                            y = u.getFromEnv("chart"),
                            x = u.getFromEnv("axesObArr"),
                            w = Math.pow(10, g.zoomDecimalLimit) || 1,
                            C = y.getChildContainer().plotGroup;
                        t = l(f / p.distanceX), r = l(h / p.distanceY), x.forEach((function() { C.transform(""), C.scale(t, r, p.center.x, p.center.y) })), clearTimeout(g.chartDraw), g.chartDraw = setTimeout((function() { C.transform(""), x.forEach((function(e) { var l = e.axis,
                                    d = function(e, t, r, n, a) { var i = e.getVisibleConfig(),
                                            o = e.getValue(t[n ? "y" : "x"] + e.getTranslation()),
                                            s = o - i.minValue,
                                            l = i.maxValue - o,
                                            c = e.config.axisRange; return { min: Math.round(Math.max(c.min, o - s / r) * a) / a, max: Math.round(Math.min(c.max, o + l / r) * a) / a } }(l, p.center, e.isY ? r : t, e.isY, w),
                                    f = d.min,
                                    h = d.max,
                                    g = e.stack,
                                    y = l.getVisibleConfig(),
                                    x = l.getLimit(),
                                    C = g.length - 1,
                                    _ = g[C],
                                    k = Math.floor(f) === x.min && Math.ceil(h) === x.max,
                                    S = l.getZoom() >= w; if (_)
                                    if (k) e.stack = [], m.zoomout = !0;
                                    else if (_.minValue > f && _.maxValue < h) { for (; _ && _.minValue > f && _.maxValue < h;) g.pop(), _ = g[--C];
                                    m.zoomout = !0 } else S || (g.push(y), m.zoomin = !0);
                                else k || S || (g.push(y), m.zoomin = !0);
                                e.isY ? (o = f, s = h) : (a = f, i = h, b = u.constructor._getZoomInfo(a, i, l)), c = e.stack.length + 1, n = l.setVisibleConfig(f, h), v = v || n })), v && (m.zoomout && u._raiseZoomEvents("zoomout", "zoomedout", Object.assign(b, { level: c, startX: a, endX: i, startY: o, endY: s })), m.zoomin && u._raiseZoomEvents("zoomin", "zoomedin", Object.assign(b, { level: c, startX: a, endX: i, startY: o, endY: s }))), g.chartDraw = null }), 250) }, r.pinchstart = function(e) { var t, r = e.originalEvent.data,
                            n = r;
                        this.getFromEnv("animationManager").setAnimationState("touch"), n.center = this.getCenter(r.finger0, r.finger1), this.config.touchConfig = r, this.getFromEnv("axesObArr").forEach((function(e) { t = e.axis, e.visibleConfig = t.getVisibleConfig(), e.centerVal = t.getValue(e.isY ? n.center.y : n.center.x) })) }, r.setControl = function() { var e = this.getLinkedParent(),
                            t = this.controlArr;
                        e.releaseControl(t), this.isEnabled() && e.getControl(t) }, t }(o["default"]);
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = n(r(330)),
                s = r(215),
                l = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, a["default"])(t); return r.controlArr = [{ nativeInteraction: ["fc-dragend"], callback: r.end.bind(r), component: r }, { nativeInteraction: ["fc-dragmove"], callback: r.move.bind(r), component: r }, { nativeInteraction: ["fc-dragstart"], callback: r.start.bind(r), component: r }], t }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "swipeGesture" }, r.configure = function() { e.prototype.configure.call(this), this.enable() }, r.getPresentScrollValue = function() { var e = this.config.xAxis,
                            t = e.getVisibleConfig(),
                            r = e.getLimit(),
                            n = t.maxValue - t.minValue,
                            a = r.max - r.min; return (t.minValue - r.min) / (a - n) }, r.start = function(e) { var t, r, n = this.getFromEnv("chart"),
                            a = this.config;
                        t = (0, s.getMouseCoordinate)(n.getFromEnv("chart-container"), e.originalEvent, n), a.previousX = t.chartX, a.previousY = t.chartY, a.presentScrollValue = r = this.getPresentScrollValue(), n.fireChartInstanceEvent("scrollStart", { scrollPosition: r }) }, r.move = function(e) { var t, r = this.config,
                            n = this.getFromEnv("chart"),
                            a = r.xAxis,
                            i = n.getChildren("scrollBar") && n.getChildren("scrollBar")[0],
                            o = i && i.getChildren("scrollAnchor")[0],
                            l = a.config.axisRange,
                            c = (0, s.getMouseCoordinate)(n.getFromEnv("chart-container"), e.originalEvent, n),
                            u = c.chartX,
                            d = c.chartY,
                            f = i && i.config && !i.config.isHorizontal ? (d - r.previousY) / r.plotDifference : (u - r.previousX) / r.plotDifference,
                            h = a.getVisibleConfig(),
                            g = r.previousScrollValue = r.presentScrollValue,
                            p = h.minValue - f,
                            m = r.axisMin,
                            v = r.axisMax,
                            b = h.maxValue - f;
                        p < m && m === h.minValue || b > v && v === h.maxValue || (p < m ? (b += f, b -= f = h.minValue - m, p = m) : v < b && (p += f, p += f = v - h.maxValue, b = v), t = (p - l.min) / (l.max - l.min - (b - p)), o.config.scrollPosition = t, n.getFromEnv("animationManager").setAnimationState("scroll"), a.setVisibleConfig(p, b), n.setScrollBarDimension && n.setScrollBarDimension(), i.asyncDraw(), n.fireChartInstanceEvent("onScroll", { scrollPosition: g }), r.previousX = u, r.previousY = d, r.presentScrollValue = this.getPresentScrollValue()) }, r.end = function() { var e = this.config;
                        this.getFromEnv("chart").fireChartInstanceEvent("scrollEnd", { previousScrollPosition: e.previousScrollValue, scrollPosition: e.presentScrollValue }) }, r.setControl = function() { var e = this.getLinkedParent(),
                            t = this.controlArr;
                        e.releaseControl(t), this.isEnabled() && e.getControl(t) }, r.draw = function() { var e = this.config,
                            t = this.getFromEnv("canvas").getAxes().filter((function(e) { return !e.isY })),
                            r = e.xAxis = t && t[0] && t[0].axis,
                            n = r.config.axisRange;
                        e.plotDifference = r.getPixel(1) - r.getPixel(0), e.axisMin = n.min, e.axisMax = n.max }, t }(o["default"]);
            t["default"] = l }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t = window,
                    r = t.navigator.userAgent,
                    a = /msie/i.test(r) && !t.opera,
                    i = Math,
                    o = i.min,
                    s = i.round,
                    l = t.parseFloat,
                    c = String,
                    u = "rgba(192,192,192," + (a ? .002 : 1e-6) + ")",
                    d = { enabled: !1, "false": !1, 0: !1, disabled: !0, "true": !0, 1: !0 };
                e.define && e.define([{ name: "button", button: function(t, r, n, a, i, o) { var s, l = t,
                            c = r,
                            d = n,
                            f = a,
                            h = i,
                            g = o,
                            p = c,
                            m = this.group("button", p),
                            v = l.labelFill,
                            b = l.symbolFill,
                            y = l.fill,
                            x = l.button[5],
                            w = l.button[6],
                            C = l.hoverFill,
                            _ = l.stroke,
                            k = l["symbol-stroke"],
                            S = l["stroke-width"],
                            E = l["symbol-stroke-width"],
                            A = l.config; if ("object" == typeof l && l.button) { var T = l.button;
                            l = T[0], c = T[1], d = T[2], f = T[3], h = T[4], p = T[5] } for (s in p = p || g, m._.button = { bound: this.rect(m), tracker: this.rect(m).attr({ fill: u, stroke: u, cursor: "pointer" }).data("compositeButton", m) }, !e.is(h, "object") && (h = {}), e.fn.button.fn) m[s] = e.fn.button.fn[s]; for (s in e.fn.button.ca) m.ca[s] = e.fn.button.ca[s]; return A && m.attr({ config: A }), m.attr({ "button-padding": [h.horizontalPadding, h.verticalPadding], "button-label": d, "button-label-size": x, "button-label-family": w, "button-symbol": f, "button-disabled": h.disabled || "false", "button-symbol-position": h.symbolPosition, "button-symbol-padding": h.symbolPadding }).attr("button-repaint", [l, c, h.width, h.height, h.r]).attr({ labelFill: v, symbolFill: b, fill: y, hoverFill: C, stroke: _, "symbol-stroke": k, "stroke-width": S, "stroke-linecap": "round", "symbol-stroke-width": E }) }, data: { hoverin: function() { var e = this,
                                t = e._.button,
                                r = t.hoverbackIn,
                                n = e._hover || {};
                            n.fill || n["fill-symbol"] || n.stroke || n["stroke-width"] || n.cursor || n.labelFill || n["symbol-stroke"] ? (n.fill && e.bottom.attr("fill", n.fill) && !n["fill-symbol"] && t.symbol.attr("fill", n.fill), n["fill-symbol"] && t.symbol.attr("fill", n["fill-symbol"]), n.stroke && e.bottom.attr("stroke", n.stroke) && t.symbol.attr("stroke", n.stroke), n["stroke-width"] && e.bottom.attr("stroke-width", n["stroke-width"]) && t.symbol.attr("stroke-width", n["stroke-width"]), n.cursor && t.tracker.attr("cursor", n.cursor), n.labelFill && t.label && t.label.attr("fill", n.labelFill), n["symbol-stroke"] && t.symbol.attr("stroke", n["symbol-stroke"]), r && r()) : r && !1 === r(arguments) || e.attr("fill", "hover"), e.hovered = !0 }, hoverout: function() { var e = this,
                                t = e._.button,
                                r = t.hoverbackOut,
                                n = e._normal || {};
                            n.fill || n["fill-symbol"] || n.stroke || n["stroke-width"] || n.cursor || n.labelFill || n["symbol-stroke"] ? (n.fill && e.bottom.attr("fill", n.fill) && !n["fill-symbol"] && t.symbol.attr("fill", n.fill), n.stroke && e.bottom.attr("stroke", n.stroke) && t.symbol.attr("stroke", n.stroke), n["fill-symbol"] && t.symbol.attr("fill", n["fill-symbol"]), n["stroke-width"] && e.bottom.attr("stroke-width", n["stroke-width"]) && t.symbol.attr("stroke-width", n["stroke-width"]), n["symbol-stroke"] && t.symbol.attr("stroke", n["symbol-stroke"]), n.labelFill && t.label && t.label.attr("fill", n.labelFill), n.cursor && t.tracker.attr("cursor", n.cursor), r && r()) : r && !1 === r(arguments) || e.attr("fill", e.pressed || e.active ? "active" : "normal"), e.hovered = !1 }, mousedown: function() { var e = this,
                                t = e._.button,
                                r = e._pressed || {};
                            r.fill || r["fill-symbol"] || r.stroke || r["stroke-width"] || r.cursor || r.labelFill || r["symbol-stroke"] ? (r.fill && e.bottom.attr("fill", r.fill) && !r["fill-symbol"] && t.symbol.attr("fill", r.fill), r.stroke && e.bottom.attr("stroke", r.stroke) && t.symbol.attr("stroke", r.stroke), r["fill-symbol"] && t.symbol.attr("fill", r["fill-symbol"]), r["stroke-width"] && e.bottom.attr("stroke-width", r["stroke-width"]) && t.symbol.attr("stroke-width", r["stroke-width"]), r.labelFill && t.label && t.label.attr("fill", r.labelFill), r["symbol-stroke"] && t.symbol.attr("stroke", r["symbol-stroke"]), r.cursor && t.tracker.attr("cursor", r.cursor)) : e.attr("fill", "active"), e.pressed = !0 }, mouseup: function() { var e = this,
                                t = e._.button,
                                r = t.callback,
                                n = e._normal || {};
                            n.fill || n["fill-symbol"] || n.stroke || n["stroke-width"] || n.cursor || n.labelFill || n["symbol-stroke"] ? (n.fill && e.bottom.attr("fill", n.fill) && !n["fill-symbol"] && t.symbol.attr("fill", n.fill), n.stroke && e.bottom.attr("stroke", n.stroke) && t.symbol.attr("stroke", n.stroke), n["fill-symbol"] && t.symbol.attr("fill", n["fill-symbol"]), n["stroke-width"] && e.bottom.attr("stroke-width", n["stroke-width"]) && t.symbol.attr("stroke-width", n["stroke-width"]), n.labelFill && t.label && t.label.attr("fill", n.labelFill), n["symbol-stroke"] && t.symbol.attr("stroke", n["symbol-stroke"]), n.cursor && t.tracker.attr("cursor", n.cursor)) : e.attr("fill", (e.hovered ? "hover" : e.active && "active") || "normal"), e.pressed = !1, r && r(arguments) }, mousemove: function() { var e = this,
                                t = e._.button,
                                r = t.mousemove;
                            r && r(arguments) } }, fn: { tooltip: function() { return e.el.tooltip && e.el.tooltip.apply(this._.button.tracker, arguments), this }, buttonclick: function(e, t) { var r = t,
                                n = this,
                                a = n._.button; return r = r || n, a.callback = function() { return e.apply(r, arguments) }, n }, labelcss: function() { var e = this._.button,
                                t = e.label; return e.cssArg = arguments, t && t.css.apply(t, arguments), this.attr("button-repaint", this.attrs["button-repaint"]) }, buttonhover: function(e, t, r, n, a, i) { var o = this,
                                s = o._.button,
                                l = r || o,
                                c = n || o,
                                u = i || o; return a && (s.mousemove = function() { return a.apply(u, arguments) }), s.hoverbackIn = function() { return e.apply(l, arguments) }, s.hoverbackOut = function() { return t.apply(c, arguments) }, o }, remove: function() { var t, r = this,
                                n = r._.button; for (t in r.attr("button-disabled", "true"), n) n[t] && n[t].remove && n[t].remove(), n[t] = null;
                            delete r._.button, e.el.remove.apply(r, arguments) } }, ca: { "button-active": function(e) { var t = this;
                            t.attr("fill", (t.active = !!e) ? "active" : t.hovered ? "hover" : "normal") }, "button-disabled": function(e) { var t = this,
                                r = e,
                                n = t.paper,
                                a = t._.button,
                                i = a.tracker,
                                o = t.attrs["button-disabled"],
                                s = n.button.data,
                                l = t._disabled || {}; if (o = d[o], void 0 !== (r = d[r]) && r !== o) switch (r) {
                                case !0:
                                    l.fill || l.stroke || l["stroke-width"] || l.cursor ? (l.fill && t.bottom.attr("fill", l.fill) && a.symbol.attr("fill", l.fill), l.stroke && t.bottom.attr("stroke", l.stroke) && a.symbol.attr("stroke", l.stroke), l["stroke-width"] && t.bottom.attr("stroke-width", l["stroke-width"] && a.symbol.attr("fill", l.fill)), l.cursor && a.tracker.attr("cursor", l.cursor)) : i.attr("fill", "rgba(204,204,205,.5)"), i.off("fc-mousedown", s.mousedown).off("fc-unmouseup", s.mouseup).unhover(s.hoverin, s.hoverout).unmousemove(s.mousemove); break;
                                case !1:
                                    i.attr("fill", u).on("fc-mousedown", s.mousedown, t).on("fc-mouseup", s.mouseup, t).hover(s.hoverin, s.hoverout, t, t).mousemove(s.mousemove, t) } }, "button-label": function(e) { var t = this,
                                r = t._.button,
                                n = t.attrs,
                                a = e,
                                i = r.label,
                                o = r.cssArg,
                                s = t.attrs["button-repaint"]; "none" === (a = c(a || "")) ? i && (r.label = i.remove()): a && (!i && (i = r.label = t.paper.text(t).insertBefore(r.tracker)), i.attr({ text: a, "text-anchor": "middle", "vertical-align": "middle" }), o && o.length && i.css.apply(i, o)), s && n["button-label"] !== a && t.attr("button-repaint", s) }, "button-label-size": function(e) { var t = this,
                                r = t._.button,
                                n = t.attrs,
                                a = r.label,
                                i = t.attrs["button-label-size"];
                            a && a.attr({ "font-size": e }), i && n["button-label-size"] !== e && t.attr("button-label-size", i) }, "button-label-family": function(e) { var t = this,
                                r = t._.button,
                                n = t.attrs,
                                a = e,
                                i = r.label,
                                o = t.attrs["button-label-family"];
                            i && (void 0 === a && (a = "sans-serif"), i.attr({ "font-family": a }), o && n["button-label-family"] !== a && t.attr("button-label-family", o)) }, "button-symbol": function(e) { var t = this,
                                r = t._.button,
                                n = e,
                                a = r.symbol,
                                i = t.attrs["button-repaint"]; "none" === (n = c(n || "")) ? (a && (r.symbol = a.remove()), delete r.symbol) : n && !a && (a = r.symbol = t.paper.symbol(t).insertAfter(r.bound)), i && t.attr("button-repaint", i) }, "button-symbol-position": function(e) { return { "button-symbol-position": { top: "top", right: "right", bottom: "bottom", left: "left", none: "none" } [c(e).toLowerCase()] || "none" } }, "button-symbol-padding": function(e) { return { "button-symbol-padding": l(e) } }, "button-padding": function(e, t) { var r = e,
                                n = t; return { "button-padding": [null == r && (r = 5) || l(r), null == n && r || l(n)] } }, "button-repaint": function(t, r, a, i, l) { var c, u, d, f, h, g, p, m = this._.button,
                                v = t,
                                b = r,
                                y = a,
                                x = i,
                                w = l,
                                C = m.bound,
                                _ = m.label,
                                k = m.symbol,
                                S = this.attrs,
                                E = S["button-padding"],
                                A = E[0],
                                T = E[1]; if (void 0 === v && (v = 0), void 0 === b && (b = 0), void 0 !== y && void 0 !== x || (g = _ && _.getBBox() || { width: 0, height: 0 }, void 0 === y && (y = 2 * A + g.width), void 0 === x && (x = 2 * T + g.height)), (p = e.crispBound(v, b, y, x, C.attr("stroke-width"))).r = w = (0, n.pluck)(w, s(.1 * o(x, y))), v = p.x, b = p.y, y = p.width, x = p.height, _ && _.attr({ x: v + y / 2, y: b + x / 2 }), k) { switch (!e.is(h = S["button-symbol-padding"], "finite") && (h = .2 * x), f = .5 * (d = x - T), S["button-symbol-position"] + (_ ? "+" : "-")) {
                                    case "right+":
                                        c = v + (y += 2 * f + T) - f - A, u = b + .5 * x, _.attr("transform", ["t", -(d + h), 0]); break;
                                    case "left+":
                                        y += 2 * f + T, c = v + A + f, u = b + .5 * x, _.attr("transform", ["t", d + h, 0]); break;
                                    case "top+":
                                        x += 2 * f + h, c = v + .5 * y, u = b + E[1] + f, _.attr("transform", ["t", 0, d + h]); break;
                                    case "bottom+":
                                        c = v + .5 * y, u = b + (x += 2 * f + h) - T - f, _.attr("transform", ["t", 0, -(d + h)]); break;
                                    default:
                                        c = v + .5 * y, u = b + .5 * x } k.attr("symbol", [S["button-symbol"], c, u, f, y, x]) } m.bound.attr(p), m.tracker.attr(p) }, fill: function(t, r) { void 0 === r && (r = !0); var n = this,
                                a = n._.button,
                                i = a.bound,
                                o = t,
                                s = { normal: a.gradient, active: a.gradientActive, hover: a.gradientHover } [o]; return s || (r || ((o = e.getRGB(o)).error && (o = e.color("#cccccc")), o = "opacity" in o ? "rgba(" + [o.r, o.g, o.b, o.opacity] + ")" : "rgb(" + [o.r, o.g, o.b] + ")"), a.gradient = r ? o : [90, e.tintshade(o, -.8).rgba + ":0", e.tintshade(o, .8).rgba + ":100"].join("-"), a.gradientActive = [270, e.tintshade(o, -.8).rgba + ":0", e.tintshade(o, .8).rgba + ":100"].join("-"), s = (n.pressed || n.active) && a.gradientActive || n.hovered && a.gradienthover || a.gradient), i.attr("fill", s), !1 }, hoverFill: function(t) { var r = this._.button,
                                n = t; return n = "opacity" in (n = e.getRGB(n)) ? "rgba(" + [n.r, n.g, n.b, n.opacity] + ")" : "rgb(" + [n.r, n.g, n.b] + ")", r.gradientHover = n, !1 }, labelFill: function(e) { var t = this._.button,
                                r = t.label; return r && e && (t.labelFill = e, r.attr("fill", e)), !1 }, symbolFill: function(e) { var t = this._.button,
                                r = t.symbol; return r && e && (t.symbolFill = e, r.attr("fill", e)), !1 }, stroke: function(t) { var r = this._.button,
                                n = t; return (n = e.color(n)).error && (n = e.color("#999999")), r.bound.attr("stroke", n), !1 }, "symbol-stroke": function(e) { var t = this._.button.symbol; return t && e && t.attr("stroke", e), !1 }, "stroke-width": function(e) { var t = this._.button; return t.bound.attr("stroke-width", e), t.tracker.attr("stroke-width", e), !1 }, "symbol-stroke-width": function(e) { var t = this._.button.symbol; return t && e && t.attr("stroke-width", e), !1 }, config: function(e) { var t = this;
                            e.hover && (t._hover = { fill: e.hover.fill, stroke: e.hover.stroke, "stroke-width": e.hover["stroke-width"], cursor: e.hover.cursor, "fill-symbol": e.hover["fill-symbol"], "symbol-stroke": e.hover["symbol-stroke"], labelFill: e.hover.labelFill }), e.disabled && (t._disabled = { fill: e.disabled.fill, stroke: e.disabled.stroke, "stroke-width": e.disabled["stroke-width"], "symbol-stroke": e.disabled["symbol-stroke"], cursor: e.disabled.cursor, labelFill: e.disabled.labelFill }), e.pressed && (t._pressed = { fill: e.pressed.fill, stroke: e.pressed.stroke, "stroke-width": e.pressed["stroke-width"], cursor: e.pressed.cursor, "fill-symbol": e.pressed["fill-symbol"], "symbol-stroke": e.pressed["symbol-stroke"], labelFill: e.pressed.labelFill }), e.normal && (t._normal = { fill: e.normal.fill, stroke: e.normal.stroke, "stroke-width": e.normal["stroke-width"], cursor: e.normal.cursor, "fill-symbol": e.normal["fill-symbol"], "symbol-stroke": e.normal["symbol-stroke"], labelFill: e.normal.labelFill }), e.symbol && (e.symbol = { stroke: e.normal.stroke, "stroke-width": e.normal["stroke-width"] }) } } }]) }; var n = r(215) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(215),
                a = function(e) { s(e, "legendItemClicked") },
                i = function(e) { s(e, "legendItemRollover") },
                o = function(e) { s(e, "legendItemRollout") },
                s = function(e, t) { var r = e.sender,
                        a = r.getLinkedItem("owner"),
                        i = r.getFromEnv("chart"),
                        o = a && a.getEventArgs ? a.getEventArgs(r) : r.config.eventArguments,
                        s = (0, n.getMouseCoordinate)(r.getFromEnv("chart-container"), e, i); /click/gi.test(t) || void 0 === o.visible || (o.visible = !o.visible), "timeseries" === i.getName().toLowerCase() && (o.visible = /click/gi.test(t) ? !i.config.legendMap[r.config.label].visibility : i.config.legendMap[r.config.label].visibility), o.chartX = s.chartX, o.chartY = s.chartY, o.pageX = s.pageX, o.pageY = s.pageY, o.id = i.getId(), o.legendItemId = r.getId(), o.legendItemIndex = r.config.index, i.fireChartInstanceEvent(t, o, e) },
                l = { extension: function(e) { var t;
                        e.addEventListener("instantiated", (function(e) { var r; "legendItem" === (t = e.sender).getType() && ((r = t).addEventListener("fc-click", a), r.addEventListener("fc-mouseover", i), r.addEventListener("fc-mouseout", o)) })) }, name: "legendEventManagerLinker", type: "extension", requiresFusionCharts: !0 };
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(358));

            function i(e) { void 0 === e && (e = {}); var t = this.apiInstance.getChildren("exportModule"); return void 0 !== (t = t && t[0]) && (t.exportChart(e), !0) } var o = { extension: function(e) { e.addEventListener("instantiated", (function(e) { var t = e.sender;
                        (function(e) { return "chartAPI" === e.getType() })(t) && t.registerFactory("export", (function(e) { var r;
                            t.getFromEnv("chartInstance").exportChart = i, Number(e.getFromEnv("dataSource").chart.exportenabled) && (e.getChildren("exportModule") ? r = e.getChildren("exportModule")[0] : (r = new a["default"], e.attachChild(r, "exportModule"), r.addToEnv("chartInstance", e.getFromEnv("chartInstance")), r.addToEnv("chartMenuList", e.getFromEnv("chartMenuList"))), r.configure({ chartConfig: e.getFromEnv("dataSource").chart })) }), ["toolbox"]) })) }, name: "Export", type: "extension", requiresFusionCharts: !0 };
            t["default"] = o }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(214)),
                i = n(r(229)),
                o = r(230),
                s = r(223),
                l = r(215),
                c = n(r(359)),
                u = r(360),
                d = r(363),
                f = r(361);

            function h(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e);
                    t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r } var g = /\s\bx\b=['"][^'"]+?['"]/gi,
                p = /\s\by\b=['"][^'"]+?['"]/gi,
                m = window,
                v = m.document,
                b = "https:" === m.location.protocol ? "https://export.api3.fusioncharts.com/" : "http://export.api3.fusioncharts.com/",
                y = "https:" === m.location.protocol ? "https://export.api3.fusioncharts.com/api/v1.0/logs" : "http://export.api3.fusioncharts.com/api/v1.0/logs",
                x = m.navigator.userAgent.match(/(iPad|iPhone|iPod)/g),
                w = function(e) {
                    function t() { var t; return (t = e.call(this) || this).config = { exportOption: {}, chartConfig: { caption: "", subcaption: "", width: "", height: "" } }, t }(0, i["default"])(t, e); var r = t.prototype; return r.getName = function() { return "exportModule" }, r.getType = function() { return "extension" }, r.configureMenuBar = function() { var e, t, r, n, i, o, c, d, f, g = this,
                            p = g.getFromEnv("toolbar"),
                            v = !!m.btoa,
                            b = g.getFromEnv("chart"),
                            y = g.getFromEnv("chart-attrib").exportformats,
                            x = p.getChild("hamburgerMenu-" + p.getId() + "-" + b.getId() + "-0"),
                            w = (0, s.getDep)("Excelexport"),
                            C = "timeseries" === b.getName(),
                            _ = { PNG: "Export As " + u.EXPORTFORMAT.PNG.toUpperCase(), JPG: "Export As " + u.EXPORTFORMAT.JPG.toUpperCase(), PDF: "Export As " + u.EXPORTFORMAT.PDF.toUpperCase(), SVG: "Export As " + u.EXPORTFORMAT.SVG.toUpperCase(), CSV: "Export As " + u.EXPORTFORMAT.CSV.toUpperCase(), XLSX: "Export As " + u.EXPORTFORMAT.XLSX.toUpperCase() },
                            k = []; if (g.config.exportOption.exportenabled) { if (o = function(e) { return function() { g.config.exportOption.exportformat = e, g.exportChart({}) } }, y)
                                for (n = 0, i = (e = y.split("|")).length; n < i; n++) t = e[n].split("="), (r = (0, l.trimString)(t[0].toUpperCase())).toLowerCase() === u.EXPORTFORMAT.XLSX && (f = !0), _[r] && (_[r] = t[1] || _[r]), _[r] && (d || (d = {})) && (d[r] = !0); for (r in g.config.exportOption.exportformats = function(e) { for (var t = 1; t < arguments.length; t++) { var r = null != arguments[t] ? arguments[t] : {};
                                        t % 2 ? h(Object(r), !0).forEach((function(t) {
                                            (0, a["default"])(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : h(Object(r)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e }({}, _), _) "XLSX" === r && (!v || C || !w || w && w.then) || d && !d[r] || ("CSV" !== r || v && !C) && (c = { name: _[r], handler: o(r), action: "click" }, k.push(c));
                            x.appendInMenu(k), v && !C && w && w.then && w.then((function() { y && !f || (x.appendInMenu([{ name: _.XLSX, handler: o("XLSX"), action: "click" }]), x.asyncDraw()) })) } }, r.configure = function(e) { var t, r, n, a = this.getFromEnv("chartInstance"),
                            i = this.config,
                            o = i.chartConfig,
                            s = i.exportOption,
                            c = e.chartConfig;
                        c.caption && (o.caption = (0, l.pluck)(c.caption, "")), c.subcaption && (o.subcaption = (0, l.pluck)(c.subcaption, "")), s.exportenabled = (0, l.pluckNumber)(c.exportenabled, 0), s.exportshowmenuitem = (0, l.pluckNumber)(c.exportshowmenuitem, 1), s.exportformat = (0, l.pluck)(c.exportformat, u.EXPORTFORMAT.PNG), s.exporthandler = (0, l.pluck)(c.html5exporthandler, c.exporthandler, b), s.exportaction = c.exportaction && "string" == typeof c.exportaction ? (t = c.exportaction.toLowerCase(), [u.EXPORTACTION.DOWNLOAD, u.EXPORTACTION.SAVE, u.EXPORTACTION.DOWNLOADSAVE].indexOf(t) >= 0 ? t : u.EXPORTACTION.DOWNLOAD) : u.EXPORTACTION.DOWNLOAD, s.exporttargetwindow = (0, l.pluck)(c.exporttargetwindow, x ? "_parent" : "_self"), s.exportfilename = (0, l.pluck)(c.exportfilename, "FusionCharts"), s.exportparameters = (0, l.pluck)(c.exportparameters, ""), s.exportcallback = (0, l.pluck)(c.exportcallback, ""), s.exportwithimages = (0, l.pluckNumber)(c.exportwithimages, 1), s.exportmode = ("undefined" != typeof c.exportatclientside && (r = { 1: u.EXPORTMODE.AUTO, 0: u.EXPORTMODE.AUTO } [c.exportatclientside]), r = (r = c.exportmode || r || u.EXPORTMODE.AUTO).toLowerCase()), s.logenabled = (0, l.pluckNumber)(c.logenabled, 0), s.loghandler = (0, l.pluck)(c.html5loghandler, c.loghandler, y), s.logmode = void 0 !== (n = c.logmode) && "string" == typeof n && n.toUpperCase() in u.LOGMODE ? u.LOGMODE[n.toUpperCase()] : u.LOGMODE.AUTO, s.bgcolor = function(e) { return e.jsVars.transparent || 0 === (0, l.pluckNumber)(e.options.containerBackgroundOpacity, 1) ? l.BLANKSTRING : e.options.containerBackgroundColor || "#FFFFFF" }(a), s.bgalpha = function(e) { return e.jsVars.transparent ? 0 : (0, l.pluckNumber)(e.options.containerBackgroundOpacity, 1) + "" }(a), s.exportshowmenuitem && this.configureMenuBar() }, r.exportChart = function(e) { var t, r, n, a = this,
                            i = a.getFromEnv("chartInstance"),
                            o = a.getFromEnv("chart"),
                            h = "object" == typeof e && function(e) { var t, r = {}; for (t in e) r[t.toLowerCase()] = e[t]; return r }(e) || {},
                            b = (0, l.extend2)((0, l.extend2)({}, a.config.exportOption), h),
                            y = (b.exportformat || u.EXPORTFORMAT.PNG).toLowerCase(),
                            x = b.exporthandler,
                            w = b.exportaction,
                            C = b.exporttargetwindow || "",
                            _ = b.exportfilename,
                            k = b.exportparameters,
                            S = b.exportcallback,
                            E = b.exportwithimages,
                            A = b.exportmode,
                            T = b.logenabled,
                            M = b.loghandler,
                            N = b.logmode,
                            D = function(e) { o.fireChartInstanceEvent("exportDataReady", e) };
                        o.fireChartInstanceEvent("beforeExport", b, void 0, (function() { var e, h, F, I, L, O, R, P, V, j = i.id,
                                B = a.config.chartConfig.caption,
                                H = a.config.chartConfig.subcaption,
                                G = this.apiInstance.getFromEnv("paper"),
                                z = this.apiInstance.getFromEnv("core-options")["export"].useCanvas,
                                U = (0, c["default"])(o.getChildren("chartMenuBar")) ? o.getChildren("chartMenuBar")[0] : o.getChildren("actionBar")[0],
                                W = U.getChild("hamburgerMenu-" + U.getId() + "-" + o.getId() + "-0"),
                                X = { DOMId: j, height: G.height, width: G.width, fileName: _ + "." + y, statusCode: void 0, statusMessage: void 0, notice: void 0 },
                                $ = { exportAction: w, exportTargetWindow: C, exportCallback: S, fusionCharts: i, paper: G, chartId: j, exportHandler: x, logEnabled: T, logMode: N, logHandler: M },
                                Y = function(e, t, r) { var n; return n = !!T, N === u.LOGMODE.CLIENT && (n = !1), { charttype: i.chartType(), stream_type: e || "", stream: t || "", meta_bgColor: b.bgcolor || "", meta_bgAlpha: b.bgalpha || "1", meta_DOMId: i.id, meta_width: G.width || a.config.chartConfig.width, meta_height: G.height || a.config.chartConfig.height, chart_caption: B, chart_sub_caption: H, is_single_export: !0, is_full_version: !1, version: l.PROJECT_VERSION, user_time_zone: -(new Date).getTimezoneOffset(), log_enabled: n, parameters: ["exportfilename=" + _, "exportformat=" + y, "exportaction=" + (0, u.createExportActionOldString)(w), "exportactionnew=" + w, "configuredexportaction=" + (r || w), "exportparameters=" + k].join("|") } },
                                q = function() { return { chartType: i.chartType(), chartCaption: B, chartSubCaption: H, isSingleExport: !0, isFullVersion: !1, exportAction: w, userTimeZone: -(new Date).getTimezoneOffset(), exportFileName: [_, y].join("."), exportFormat: y, version: l.PROJECT_VERSION } },
                                K = function(e) {
                                    (0, f.downloadCharts)(null, null, null, Y(u.EXPORTFORMAT.SVG, e), $) },
                                J = function(e, t, r) { var n;
                                    (n = v.createElement("canvas")).width = G.width, n.height = G.height, (0, f.drawSvgOnCanvas)({ svg: F, canvas: n, x: 0, y: 0, width: G.width, height: G.height, useCanvas: z }, (function() { switch (e) {
                                            case u.EXPORTFORMAT.PNG:
                                                t(e, n.toDataURL("image/png"), _, r); break;
                                            case u.EXPORTFORMAT.JPEG:
                                            case u.EXPORTFORMAT.PDF:
                                            default:
                                                t(e, n.toDataURL("image/jpeg"), _, r) } })) },
                                Z = function(t, r, n, a, i) { var o = r;
                                    t === u.EXPORTFORMAT.PDF && ((0, d.addImage)(o, G.height, G.width), o = (0, d.getDataUrl)()), e = i === u.EXPORTMODE.AUTO ? Y("IMAGE-DATA", o) : null, (0, f.downloadCharts)("url", o, n + "." + t, e, a) },
                                Q = D,
                                ee = function(e) { e === u.LOGMODE.CLIENT && (0, u.logCharts)(q(), $) },
                                te = function(t, r) { if (L = "undefined" != typeof m.btoa && ("Chrome" === f.browserDetails.name || "Firefox" === f.browserDetails.name || "Safari" === f.browserDetails.name || "Edge" === f.browserDetails.name || "ie" === f.browserDetails.name), "server" !== A && L) w !== u.EXPORTACTION.DOWNLOAD && w !== u.EXPORTACTION.DOWNLOADSAVE || ((0, f.downloadCharts)("blob", t, _ + "." + y, null, $), o.fireChartInstanceEvent("exported", X)), w === u.EXPORTACTION.SAVE || w === u.EXPORTACTION.DOWNLOADSAVE ? (O = w, w === u.EXPORTACTION.DOWNLOADSAVE && (w = u.EXPORTACTION.SAVE), e = Y("IMAGE-DATA", t, O), (0, f.downloadCharts)(null, null, null, e, $), ee(N)) : N !== u.LOGMODE.SERVER && (0, u.logCharts)(q(), $);
                                    else { var n = new FileReader;
                                        n.onload = function(e) { for (var t = l.BLANKSTRING, n = new Uint8Array(e.target.result), a = n.byteLength, i = 0; i < a; i++) t += String.fromCharCode(n[i]);
                                            t = r + m.btoa(t), (0, f.downloadCharts)(null, null, null, Y("IMAGE-DATA", t), $), ee(N) }, n.readAsArrayBuffer(t) } }; if ("xlsx" === y) { if ("undefined" == typeof m.btoa) return o.fireChartInstanceEvent("exportCancelled", b), !1;
                                r = i.getCSVData(), Q(), V = 0, t = [], r.replace(/[^\r\n]+/g, (function(e) { t[V] = [], t[V] = e.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/).map((function(e) { return e.replace(/"/g, l.BLANKSTRING) })), V += 1 })), (R = (0, s.getDep)("ExcelExport")) && R(t).then((function(e) { te(e, "data:application/vnd.ms-excel;base64,") })) } else if ("csv" === y) { if ("undefined" == typeof m.btoa) return o.fireChartInstanceEvent("exportCancelled", b), !1;
                                r = i.getCSVData(), Q(), n = new Blob([r], { type: "text/csv;base64;" }), te(n, "data:text/csv;base64,") } else(I = W.getChild("listContainer").getLinkedParent().getGraphicalElement("button", "button")) && I.attr("visibility", "hidden"), h = G.toSVG(E), F = (F = G.toSVG(E && (0, f.isCanvasElemSupported)())).replace(/&nbsp;/gi, " "), I && I.attr("visibility", "visible"), h = (h = (h = h.replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi, "$1M 0 0 L 0 0$2")).replace(/NS\d+:/gi, "xlink:")).replace(/&nbsp;/gi, " "), F = (F = (F = F.replace(/NS\d+:/gi, "xlink:")).replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi, "$1M 0 0 L 0 0$2")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi, ""), h = (h = (h = (h = (h = (h = (h = (h = h.replace(/[\w\-]+\=\"undefined\"/gi, "")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi, "")).replace(/rgba\(([^\)]+)\)/gi, (function(e) { return "#" + new l.RGBtoHex(e.split(",")) }))).replace(/<svg[^>]+/i, (function(e) { var t = e; return t.match(/height/i) || !G.height && !a.config.chartConfig.height || (t += ' height="' + (G.height || a.config.chartConfig.height) + '"'), t.match(/width/i) || !G.width && !a.config.chartConfig.width || (t += ' width="' + (G.width || a.config.chartConfig.width) + '"'), t }))).replace(/(([\w]+\-)?opacity\s*=\s*)['"][\d\.]+e[\-\+][\d]+["']/gi, '$1"0.001"')).replace(/(([\w]+\-)?opacity\s*:\s*)[\d\.]+e[\-\+][\d]+/gi, "$10.001")).replace(/<text[^\>]+/gi, (function(e) { var t = e; return t = (t = (t = (t = (t = (t = (t = (t = t.replace(/stroke\=[\"\']([a-z0-9\#]+)?[\"\']/gi, "")).replace(/stroke\s*\:\s*([a-z0-9\#]+)?;?/gi, "")).replace(/stroke-width\=[\"\']([a-z0-9\#]+)?[\"\']/gi, "")).replace(/stroke-width\s*\:\s*([a-z0-9\#]+)?;?/gi, "")).replace(/stroke-opacity\=[\"\']([a-z0-9\#]+)?[\"\']/gi, "")).replace(/stroke-opacity\s*\:\s*([a-z0-9\#]+)?;?/gi, "")).replace(/(<text[^\>]+fill\=)([\"\'][^\"\']+[\"\'])([^\>]+)/gi, '$1$2 stroke=$2 stroke-width="0.2"$3')).replace(/(<text[^\>]+fill-opacity\=)([\"\'][^\"\']+[\"\'])([^\>]+)/gi, "$1$2 stroke-opacity=$2 $3") }))).replace(/<(\b[^<>s\s]+\b)[^\>]+?opacity\s*=\s*['"][^1][^\>]+?(\/>|>[\s\r\n]*?<\/\1>)/gi, (function(e, t) { return ' opacity="1" stroke-opacity="1" fill="#cccccc" stroke-width="0" r="0" height="0.5" width="0.5" d="M 0 0 L 1 1" />', e + "<" + t + (g.exec(e) || "") + (p.exec(e) || "") + ' opacity="1" stroke-opacity="1" fill="#cccccc" stroke-width="0" r="0" height="0.5" width="0.5" d="M 0 0 L 1 1" />' })), h = (0, u.makeImageUrlsAbsolute)(h), F = (0, u.makeImageUrlsAbsolute)(F), P = A === u.EXPORTMODE.SERVER, (0, u.cacheAllImages)(h, P, (function() { e = Y(u.EXPORTFORMAT.SVG, h), Q(e), e = null; var t, r, n, a, i, s, l, c, g = "undefined" != typeof m.btoa && ("Chrome" === f.browserDetails.name || "Firefox" === f.browserDetails.name || "Safari" === f.browserDetails.name || "Edge" === f.browserDetails.name || "ie" === f.browserDetails.name);
                                (A === u.EXPORTMODE.CLIENT || A === u.EXPORTMODE.AUTO && !(0, u.hasUndownloadableImage)(h)) && g ? (F = (0, u.replaceImagesWithNonDataUrl)(F), w !== u.EXPORTACTION.DOWNLOAD && w !== u.EXPORTACTION.DOWNLOADSAVE || (i = F, s = $, l = A, y === u.EXPORTFORMAT.SVG ? (c = (0, u.svgStrToDataUrl)(i), e = l === u.EXPORTMODE.AUTO ? Y("IMAGE-DATA", c) : null, (0, f.downloadCharts)("url", c, _ + "." + y, e, s)) : J(y, (function() { Z(arguments[0], arguments[1], arguments[2], arguments[3], l) }), s), o.fireChartInstanceEvent("exported", X)), w === u.EXPORTACTION.SAVE || w === u.EXPORTACTION.DOWNLOADSAVE ? (t = w, w === u.EXPORTACTION.DOWNLOADSAVE && (w = u.EXPORTACTION.SAVE), function(e, t, r) { var n;
                                    y === u.EXPORTFORMAT.SVG ? (n = (0, u.svgStrToDataUrl)(e), r(n, t)) : J(y, (function() { r(arguments[1], t) }), t) }(F, $, (function(r, n) { e = Y("IMAGE-DATA", r, t), (0, f.downloadCharts)(null, null, null, e, n), ee(N) })), o.fireChartInstanceEvent("exported", X)) : N !== u.LOGMODE.SERVER && (0, u.logCharts)(q(), $)) : A === u.EXPORTMODE.AUTO ? (a = h, f.browserDetails.hasCanvas && "undefined" != typeof m.btoa ? ((r = v.createElement("canvas")).width = G.width, r.height = G.height, a = (0, u.embedImagesWithNonDataURL)(a), F = (0, u.replaceImagesWithNonDataUrl)(F), (0, u.hasUndownloadableImage)(a) || y === u.EXPORTFORMAT.SVG ? (n = Y(u.EXPORTFORMAT.SVG, a), (0, f.downloadCharts)(null, null, null, n, $)) : (0, f.drawSvgOnCanvas)({ svg: F, canvas: r, x: 0, y: 0, width: G.width, height: G.height, useCanvas: z }, (function() { var e; switch (y) {
                                        case u.EXPORTFORMAT.PNG:
                                            e = r.toDataURL("image/png"); break;
                                        case u.EXPORTFORMAT.JPEG:
                                            e = r.toDataURL("image/jpeg"); break;
                                        case u.EXPORTFORMAT.PDF:
                                            (0, d.addImage)(r.toDataURL("image/jpeg"), G.height, G.width), e = (0, d.getDataUrl)(); break;
                                        default:
                                            e = r.toDataURL("image/jpeg") } n = Y("IMAGE-DATA", e), (0, f.downloadCharts)(null, null, null, n, $) }))) : K(a), ee(N)) : A === u.EXPORTMODE.SERVER && (K(h), ee(N)) })) }), (function() { o.fireChartInstanceEvent("exportCancelled", b) })) }, t }(o.ComponentInterface);
            t["default"] = w }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(277));
            t["default"] = function(e) { return (0, a["default"])(e) && e.length } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.svgStrToDataUrl = t.logCharts = t.extractNonDataImageFromSVG = t.parseUrl = t.extractNonDataURLFromSVG = t.removeImagesWithNonDataURL = t.hasUndownloadableImage = t.replaceImagesWithNonDataUrl = t.embedImagesWithNonDataURL = t.makeImageUrlsAbsolute = t.isCacheAllImagesCompleted = t.getImageCachedDetails = t.cacheAllImages = t.objCacheFunctions = t.createExportActionOldString = t.LOGMODE = t.EXPORTFORMAT = t.EXPORTMODE = t.EXPORTACTION = void 0; var a, i = r(361),
                o = n(r(280)),
                s = r(215),
                l = function(e) { var t, r, n, a, i, o;
                    t = /(<image [^\>]*href=["']([^\>'"]*)["'][^\>]*\>)/g, r = /^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i, n = [];
                    do { null !== (a = t.exec(e)) && (i = a[1], o = a[2], r.test(o) || n.push(i)) } while (a && null !== a); return n },
                c = function(e) { var t, r, n, a = e; for (t = l(a), r = 0; r < t.length; r++) n = t[r], a = a.replace(n, ""); return a },
                u = function(e, t) { var r, n, a, i, o;
                    void 0 === t && (t = !0), r = /<image [^\>]*href=["']([^\>'"]*)["'][^\>]*\>/g, n = /^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i, a = [];
                    do { if (null !== (i = r.exec(e))) { if (o = i[1], n.test(o)) continue;
                            t && (o = d(o).href), a.push(o) } } while (i && null !== i); return a },
                d = function(e) { var t = document.createElement("div"); return t.innerHTML = "<a></a>", t.firstChild.href = e, t.innerHTML = t.innerHTML, t.firstChild },
                f = { DOWNLOAD: "download", SAVE: "save", DOWNLOADSAVE: "download-save" },
                h = { CLIENT: "client", SERVER: "server", AUTO: "auto" },
                g = ((a = {}).cacheCompleted = !1, { cacheAllImages: function(e, t, r) { var n, o, l, c; if (void 0 === t && (t = !1), n = u(e), o = n.length, (0, i.isCanvasElemSupported)() && !t && o)
                            for (l = 0, c = 0; c < o; c++) ! function() { var e, t; if ((e = n[c]) in a) return l++, void(o === l && (a.cacheCompleted = !0, r()));
                                (t = new Image).crossOrigin = s.BLANKSTRING, t.onload = function() { var n, i;
                                    (n = document.createElement("canvas")).width = t.width, n.height = t.height, n.getContext("2d").drawImage(this, 0, 0); try { i = n.toDataURL("image/png"), a[e] = { loaded: !0, notCORS: !0, imageUri: i } } catch (s) { a[e] = { loaded: !0, notCORS: !1 } } finally { l++, o === l && (a.cacheCompleted = !0, r()) } }, t.onerror = function() { a[e] = { loaded: !1 }, l++, o === l && (a.cacheCompleted = !0, r()) }, t.src = e }();
                        else r() }, getImageCachedDetails: function(e) { return a[e] }, isCacheAllImagesCompleted: function() { return a.cacheCompleted } }),
                p = g.cacheAllImages,
                m = g.getImageCachedDetails,
                v = g.isCacheAllImagesCompleted,
                b = function(e) { return e = e.replace(/(:href=")([^"]*)(")/gi, (function(e, t, r, n) { return t + d(r).href + n })) },
                y = function(e) { return e.replace(/<image [^\>]*\>/gi, b) },
                x = function(e) { var t, r, n, a, i = y(e); for (t = u(i), r = 0; r < t.length; r++) n = t[r], (a = m(n)) !== s.UNDEF && a.loaded && a.notCORS && a.imageUri && (i = i.replace(n, a.imageUri)); return i };
            t.svgStrToDataUrl = function(e) { var t = function(e) { return '<?xml version="1.0" standalone="no"?>\n      <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n       "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> ' + e }(e); return t = "data:image/svg+xml;base64," + window.btoa(window.unescape(encodeURIComponent(t))) }, t.logCharts = function(e, t) { t.logEnabled && t.logMode !== h.SERVER && function(e, t) { var r = new o["default"](s.stubFN, s.stubFN); for (var n in e) e.hasOwnProperty(n) && (e[n] = encodeURIComponent(e[n]));
                    r.post(t.logHandler, e) }(e, t) }, t.hasUndownloadableImage = function(e) { var t = x(e); return t !== c(t) }, t.replaceImagesWithNonDataUrl = function(e) { return c(x(e)) }, t.embedImagesWithNonDataURL = x, t.makeImageUrlsAbsolute = y, t.isCacheAllImagesCompleted = v, t.getImageCachedDetails = m, t.cacheAllImages = p, t.objCacheFunctions = g, t.createExportActionOldString = function(e) { return { download: f.DOWNLOAD, "download-save": f.DOWNLOAD, save: f.SAVE } [e] }, t.LOGMODE = h, t.EXPORTFORMAT = { PNG: "png", SVG: "svg", JPEG: "jpeg", JPG: "jpg", PDF: "pdf", XLSX: "xlsx", CSV: "csv" }, t.EXPORTMODE = { CLIENT: "client", SERVER: "server", AUTO: "auto" }, t.EXPORTACTION = f, t.parseUrl = d, t.extractNonDataURLFromSVG = u, t.removeImagesWithNonDataURL = c, t.extractNonDataImageFromSVG = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.isCanvasElemSupported = t.drawSvgOnCanvas = t.browserDetails = t.downloadCharts = void 0; var a = n(r(362)),
                i = r(215),
                o = r(222),
                s = n(r(280)),
                l = window,
                c = l.Image,
                u = document,
                d = "download",
                f = "download-save",
                h = function() { var e = u.createElement("canvas"); return !(!e.getContext || !e.getContext("2d")) },
                g = function() { var e, t = l.navigator.userAgent; return -1 !== (e = t.indexOf("Edge")) ? { name: "Edge", version: t.substring(e + 5, e + 11) } : -1 !== (e = t.indexOf("Chrome")) ? { name: "Chrome", version: t.substring(e + 7, e + 11) } : -1 !== (e = t.indexOf("MSIE")) || -1 !== (e = t.indexOf("rv")) && -1 !== t.indexOf("Trident") ? { name: "ie", version: t.substring(e + 5, e + 9) } : -1 !== (e = t.indexOf("Firefox")) ? { name: "Firefox", version: t.substring(e + 8, e + 12) } : -1 !== (e = t.indexOf("Safari")) ? { name: "Safari", version: t.substring(e + 7, e + 11) } : { name: "default", version: "Not Known" } },
                p = g(),
                m = function(e, t, r, n) { void 0 === n && (n = {}); var a, i, o = g(),
                        s = n.chartId,
                        c = n.exportCallback,
                        d = n.paper,
                        f = t; "Chrome" === o.name || "Firefox" === o.name || "Safari" === o.name ? ("blob" === e && (f = l.URL.createObjectURL(f)), (i = u.createElement("a")).download = r, i.href = f, u.body.appendChild(i), i.onclick = function() { c && l[c] && "function" == typeof l[c] && l[c]({ statusCode: 1, statusMessage: "success", DOMId: s, width: d && d.width, height: d && d.height }), i.parentNode.removeChild(i) }, i.click()) : "ie" !== o.name && "Edge" !== o.name || l.navigator.msSaveBlob && (a = "url" === e ? function(e) { var t, r, n, a; for (t = e.split(",")[0].indexOf("base64") >= 0 ? l.atob(e.split(",")[1]) : l.unescape(e.split(",")[1]), r = e.split(",")[0].split(":")[1].split(";")[0], n = new Uint8Array(t.length), a = 0; a < t.length; a++) n[a] = t.charCodeAt(a); return new l.Blob([n], { type: r }) }(f) : f, l.navigator.msSaveBlob(a, r) && c && l[c] && "function" == typeof l[c] && l[c]({ statusCode: 1, statusMessage: "success", DOMId: s, width: d && d.width, height: d && d.height })) };
            t.drawSvgOnCanvas = function(e, t) { void 0 === e && (e = {}); var r, n, i, s, u = e,
                    d = u.svg,
                    f = u.canvas,
                    h = u.x,
                    g = u.y,
                    m = u.width,
                    v = u.height,
                    b = u.useCanvas; "ie" === p.name || "Edge" === p.name || b ? new a["default"](d, f, h, g, m, v, (function() { t() })) : (s = function(e) { return '<?xml version="1.0" standalone="no"?>\n      <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n       "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> ' + e }(d), i = s = "data:image/svg+xml;base64," + l.btoa(l.unescape(encodeURIComponent(s))), r = f.getContext("2d"), (n = new c).onload = function() { r.drawImage(n, h, g, m, v), t() }, n.onerror = function() {
                    (0, o.raiseWarning)(this, "", "run", "libSVGToCanvas:drawSvgOnCanvas", "Unable to load image for canvas drawing. Aborting attempt.") }, n.src = i) }, t.downloadCharts = function(e, t, r, n, a) { var c;!t || (c = t, p.name.toLowerCase() === "Chrome".toLowerCase() && function(e) { var t, r, n; for (t = e.length, n = e.length - 1; n >= 0; n--)(r = e.charCodeAt(n)) > 127 && r <= 2047 ? t++ : r > 2047 && r <= 65535 && (t += 2), r >= 56320 && r <= 57343 && n--; return t }(c) > void 0) ? n && function(e, t) { var r, n, a, c, h, g, p, m, v = t.exportAction,
                        b = t.exportTargetWindow,
                        y = t.exportCallback,
                        x = t.fusionCharts.apiInstance,
                        w = t.paper,
                        C = t.chartId,
                        _ = t.exportHandler,
                        k = e.parameters; if (v === d || v === f) { for (r in /(webkit|gecko)/gi.test(l.navigator.userAgent) && "_self" === b && (b = a = C + "export_iframe", m || (m = c = (0, i.createElement)("IFRAME", { name: a, width: "1px", height: "1px" }, u.body), c.style.cssText = "position:absolute;left:-10px;top:-10px;")), n = (0, i.createElement)("form", { method: "POST", action: _, target: b, style: "display:none;" }, u.body), e)(0, i.createElement)("input", { type: "hidden", name: r, value: e[r] }, n); return n.submit(), u.body.removeChild(n), n = void 0, g = k.match(/exportfilename=([^|]+)/)[1], p = k.match(/exportformat=([^|]+)/)[1], (0, o.triggerEvent)("exported", x, { DOMId: C, height: w.height, width: w.width, fileName: g + "." + p, statusCode: void 0, statusMessage: void 0, notice: void 0 }), y && l[y] && "function" == typeof l[y] && l[y]({ statusCode: 1, statusMessage: "success", DOMId: C, width: w && w.width, height: w && w.height }), !0 } for (r in h = new s["default"]((function(e) { var t = {};
                            e.replace(new RegExp("([^?=&]+)(=([^&]*))?", "g"), (function(e, r, n, a) { t[r] = a })), y && l[y] && "function" == typeof l[y] && l[y](t), (0, o.triggerEvent)("exported", x, t) }), (function(e) { var t = { statusCode: 0, statusMessage: "failure", error: e, DOMId: C, width: w && w.width, height: w && w.height };
                            y && l[y] && "function" == typeof l[y] && l[y](t), (0, o.triggerEvent)("exported", x, t, [t]) })), e) e.hasOwnProperty(r) && (e[r] = encodeURIComponent(e[r]));
                    h.post(_, e) }(n, a) : m(e, t, r, a) }, t.browserDetails = p, t.isCanvasElemSupported = h, p.hasCanvas = h(), p.hasSvg = i.hasSVG }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n, a = "undefined" != typeof window ? window : null,
                i = a.document,
                o = {},
                s = {};
            (n = function(e, t, r, a, i, o, s) { var l = { svg: "", context: "", callBack: "", imageArr: [], canvas: "", dimention: {} }; if (!(this instanceof n)) throw new Error("This function should be used as class");
                this._getStore = function(e) { return "undefined" != typeof l[e] && l[e] }, this._setStore = function(e, t) { "undefined" != typeof l[e] && (l[e] = t) }, this._setStore("dimention", { x: r, y: a, width: i, height: o }), e && this.setSVG(e), t && this.setContext(t), s && this.setCallback(s), this.drawOnCanvas() }).prototype.setContext = function(e) { var t; if (!e.getContext || !e.getContext("2d")) throw new Error("Please provide valid canvas");
                t = e.getContext("2d"), this._setStore("canvas", e), this._setStore("context", t) }, n.prototype.getContext = function() { return this._getStore("context") }, n.prototype.setSVG = function(e) { var t; if ("undefined" != typeof e.documentElement) t = e, this._setStore("svg", t);
                else { if ("<" !== e.substr(0, 1)) throw new Error("Please provide valid SVG");
                    t = s.StrToDom(e), this._setStore("svg", t) } }, n.prototype.getSVG = function() { return this._getStore("svg") }, n.prototype.setCallback = function(e) { "function" == typeof e && this._setStore("callBack", e) }, n.prototype.getCallback = function() { return this._getStore("callBack") }, n.prototype.drawOnCanvas = function(e, t, r, n, a, i, o) { var l, c, u, d, f, h, g, p;
                e && this.setSVG(e), t && this.setContext(t), o && this.setCallback(o), t = t || this._getStore("canvas"), g = this._getStore("dimention"), o = this.getCallback(), l = this.getContext(), (c = this.getSVG()) && l && (u = (p = s.getSvgDimention(c)).width, d = p.height, r = r || g.x || 0, n = n || g.y || 0, a = a || u || g.width, i = i || d || g.height, f = p.width ? g.width / a : 1, h = p.height ? g.height / i : 1, s.startTransform("translate(" + r + "," + n + ") scale(" + f + "," + h + ")", l), l.save(), l.fillStyle = "#ffffff", l.fillRect(0, 0, a, i), l.restore(), s.storeImagesInArr(this), s.drawNodes([c], [], this, l, (function() { "function" == typeof o && o(), s.resetTransform(l) }))) }, o.common = function(e, t, r, n, a) { var i, l, c, u, d = e.childNodes,
                    f = function() { e.attributes && n.restore(), a && a() }; for (l in t) t.hasOwnProperty(l) && "class" !== t[l].name && "id" !== t[l].name && "transform" !== t[l].name && "clip-path" !== t[l].name && "object" == typeof t[l] && e.attributes && !e.attributes[t[l].name] && e.setAttribute([t[l].name], t[l].value); if (e.attributes && e.attributes.style)
                    for (l in c = e.attributes.style.value.replace(/;$/, "").split(";"))
                        if (c.hasOwnProperty(l) && (u = c[l].split(":")[0].trim(), !e.attributes[u] || "undefined" === e.attributes[u].value)) try { e.setAttribute(u, c[l].split(":")[1].trim()) } catch (h) {} e.attributes && (n.save(), e.attributes.transform && s.startTransform(e.attributes.transform.value, n), e.attributes["clip-path"] && s.applyClip(e.attributes["clip-path"].value, n, r)), 0 === d.length || 1 === d.length && !d[0].tagName ? "undefined" != typeof e.tagName ? (i = "draw" + e.tagName, o[i] ? e.attributes.display && "none" === e.attributes.display.value ? f() : o[i](e, n, r, "draw", f) : f()) : f() : s.drawNodes(d, "svg" === e.tagName ? [] : e.attributes, r, n, f) }, o.drawtext = function(e, t, r, n, a) { this.drawtspan(e, t, r, n, a) }, o.drawtspan = function(e, t, r, n, o) { var l, c, u, d, f, h = e.innerHTML || e.textContent,
                    g = e.attributes.x ? e.attributes.x.value : 0,
                    p = e.attributes.y ? e.attributes.y.value : 0,
                    m = e.attributes.dx ? e.attributes.dx.value : 0,
                    v = e.attributes.dy ? e.attributes.dy.value : 0,
                    b = "serief",
                    y = "normal",
                    x = "16px",
                    w = [];
                i.getElementsByTagName("body")[0] && ((l = a.getComputedStyle(i.getElementsByTagName("body")[0], null)).getPropertyValue("font-family") && (b = l.getPropertyValue("font-family")), l.getPropertyValue("font-weight") && (y = l.getPropertyValue("font-weight")), l.getPropertyValue("font-size") && (x = l.getPropertyValue("font-size"))), c = e.attributes["font-family"] ? e.attributes["font-family"].value : b, u = e.attributes["font-weight"] ? e.attributes["font-weight"].value : y, d = e.attributes["text-anchor"] ? e.attributes["text-anchor"].value : "start", f = e.attributes["font-size"] ? e.attributes["font-size"].value : x, g = Number(g) + Number(m), p = Number(p) + Number(v), h = h.trim(), d = "middle" === d ? "center" : d, t.save(), t.font = u + " " + f + " " + c, t.textAlign = d, "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, w), t.fillText(h, g, p), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, w), t.strokeText(h, g, p), s.endStrokeEffect(e, t))), t.restore(), "function" == typeof o && o() }, o.drawcircle = function(e, t, r, n, a) { var i = Number(e.attributes.cx.value),
                    o = Number(e.attributes.cy.value),
                    l = Number(e.attributes.r.value),
                    c = [];
                t.beginPath(), t.arc(i, o, l, 0, 2 * Math.PI), s.bBoxFromPoint([i, 1 * i + 1 * l, 1 * i - 1 * l], [o, 1 * o + 1 * l, 1 * o - 1 * l], c), "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, c), t.fill(), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, c), t.stroke(), s.endStrokeEffect(e, t))), t.closePath(), "function" == typeof a && a() }, o.drawrect = function(e, t, r, n, a) { var i = e.attributes.x ? Number(e.attributes.x.value) : 0,
                    o = e.attributes.y ? Number(e.attributes.y.value) : 0,
                    l = e.attributes.rx ? Number(e.attributes.rx.value) : 0,
                    c = e.attributes.ry ? Number(e.attributes.ry.value) : 0,
                    u = Number(e.attributes.height.value),
                    d = Number(e.attributes.width.value),
                    f = [],
                    h = t.lineCap;
                t.lineCap = "square", s.bBoxFromPoint([i, i + d], [o, o + u], f), t.beginPath(), t.moveTo(i + l, o), t.lineTo(i + d - l, o), t.quadraticCurveTo(i + d, o, i + d, o + c), t.lineTo(i + d, o + u - c), t.quadraticCurveTo(i + d, o + u, i + d - l, o + u), t.lineTo(i + l, o + u), t.quadraticCurveTo(i, o + u, i, o + u - c), t.lineTo(i, o + c), t.quadraticCurveTo(i, o, i + l, o), "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, f), t.fill(), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, f), t.stroke(), s.endStrokeEffect(e, t))), t.closePath(), t.lineCap = h, "function" == typeof a && a() }, o.drawellipse = function(e, t, r, n, a) { var i = Number(e.attributes.cx.value),
                    o = Number(e.attributes.cy.value),
                    l = Number(e.attributes.rx.value),
                    c = Number(e.attributes.ry.value),
                    u = .5522848 * l,
                    d = .5522848 * c,
                    f = i + l,
                    h = o + c,
                    g = [];
                t.beginPath(), t.moveTo(i - l, o), t.bezierCurveTo(i - l, o - d, i - u, o - c, i, o - c), t.bezierCurveTo(i + u, o - c, f, o - d, f, o), t.bezierCurveTo(f, o + d, i + u, h, i, h), t.bezierCurveTo(i - u, h, i - l, o + d, i - l, o), s.bBoxFromPoint([i + l, i - l], [o + c, o - c], g), "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, g), t.fill(), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, g), t.stroke(), s.endStrokeEffect(e, t))), t.closePath(), "function" == typeof a && a() }, o.drawimage = function(e, t, r, n, a) { var i, o = e.attributes.x ? Number(e.attributes.x.value) : 0,
                    s = e.attributes.y ? Number(e.attributes.y.value) : 0,
                    l = e.attributes.height ? Number(e.attributes.height.value) : 0,
                    c = e.attributes.width ? Number(e.attributes.width.value) : 0,
                    u = r._getStore("imageArr");
                t.save(), e.attributes.opacity && (t.globalAlpha = e.attributes.opacity.value), e.attributes["xlink:href"] ? (i = e.attributes["xlink:href"].value, "complete" === u[i].status ? (t.drawImage(u[i].obj, o, s, c, l), t.globalAlpha = 1, t.restore(), "function" == typeof a && a()) : "error" === u[i].status ? (t.globalAlpha = 1, t.restore(), "function" == typeof a && a()) : "progress" === u[i].status ? (u[i].callback = function() { t.drawImage(u[i].obj, o, s, c, l), t.globalAlpha = 1, t.restore(), "function" == typeof a && a() }, u[i].errCallback = function() { t.globalAlpha = 1, t.restore(), "function" == typeof a && a() }) : (t.globalAlpha = 1, t.restore(), "function" == typeof a && a())) : (t.globalAlpha = 1, t.restore(), "function" == typeof a && a()) }, o.drawpath = function(e, t, r, n, a) { var i, o, l, c, u = e.attributes.d.value.match(/[a-z][^a-z"]*/gi),
                    d = [],
                    f = 0,
                    h = 0,
                    g = {}; for (i in t.beginPath(), u)
                    if (u.hasOwnProperty(i)) switch (o = u[i].substring(0, 1), l = s.getArgsAsArray(u[i].substring(1, u[i].length)), o) {
                        case "M":
                            f = Number(l[0]), h = Number(l[1]), t.moveTo(f, h), g.cx = f, g.cy = h; break;
                        case "m":
                            f += Number(l[0]), h += Number(l[1]), t.moveTo(f, h), g.cx = f, g.cy = h; break;
                        case "L":
                            for (c = 0; l[c]; c += 2) s.bBoxFromPoint([f, l[c]], [h, l[c + 1]], d), f = Number(l[c]), h = Number(l[c + 1]), t.lineTo(f, h); break;
                        case "l":
                            for (c = 0; l[c]; c += 2) s.bBoxFromPoint([f, 1 * f + 1 * l[c]], [h, 1 * h + 1 * l[c + 1]], d), f += Number(l[c]), h += Number(l[c + 1]), t.lineTo(f, h); break;
                        case "V":
                            for (c = 0; l[c]; c += 1) s.bBoxFromPoint([f], [h, l[c]], d), h = Number(l[c]), t.lineTo(f, h); break;
                        case "v":
                            for (c = 0; l[c]; c += 1) s.bBoxFromPoint([f], [h, 1 * h + 1 * l[c]], d), h += Number(l[c]), t.lineTo(f, h); break;
                        case "H":
                            for (c = 0; l[c]; c += 1) s.bBoxFromPoint([f, l[c]], [h], d), f = Number(l[c]), t.lineTo(f, h); break;
                        case "h":
                            for (c = 0; l[c]; c += 1) s.bBoxFromPoint([f, 1 * f + 1 * l[c]], [h], d), f += Number(l[c]), t.lineTo(f, h); break;
                        case "Q":
                            for (c = 0; l[c]; c += 4) s.qBezierBBox(f, h, l[c], l[c + 1], l[c + 2], l[c + 3], d), t.quadraticCurveTo(Number(l[c]), Number(l[c + 1]), Number(l[c + 2]), Number(l[c + 3])), f = Number(l[c + 2]), h = Number(l[c + 3]); break;
                        case "q":
                            for (c = 0; l[c]; c += 4) s.qBezierBBox(f, h, f + 1 * l[c], h + 1 * l[c + 1], 1 * f + 1 * l[c + 2], 1 * h + 1 * l[c + 3], d), t.quadraticCurveTo(f + 1 * l[c], h + 1 * l[c + 1], f += Number(l[c + 2]), h += Number(l[c + 3])); break;
                        case "C":
                            for (c = 0; l[c]; c += 6) s.cBezierBBox(f, h, l[c], l[c + 1], l[c + 2], l[c + 3], l[c + 4], l[c + 5], d), t.bezierCurveTo(l[c], l[c + 1], l[c + 2], l[c + 3], l[c + 4], l[c + 5]), f = Number(l[c + 4]), h = Number(l[c + 5]); break;
                        case "c":
                            for (c = 0; l[c]; c += 6) s.cBezierBBox(f, h, f + 1 * l[c], 1 * h + 1 * l[c + 1], f + 1 * l[c + 2], 1 * h + 1 * l[c + 3], f + 1 * l[c + 4], 1 * h + 1 * l[c + 5], d), t.bezierCurveTo(f + Number(l[c]), h + Number(l[c + 1]), f + Number(l[c + 2]), h + Number(l[c + 3]), f += Number(l[c + 4]), h += Number(l[c + 5])); break;
                        case "a":
                        case "A":
                            for (c = 0; l[c]; c += 7) { var p, m, v, b, y, x, w, C, _, k, S, E, A, T, M, N, D, F, I = Number(l[c]),
                                    L = Number(l[c + 1]); if (p = Number(l[c + 2]) * (Math.PI / 180), m = Number(l[c + 3]), v = Number(l[c + 4]), b = Number(l[c + 5]), y = Number(l[c + 6]), x = Math.cos(p) * (f - b) / 2 + Math.sin(p) * (h - y) / 2, w = -Math.sin(p) * (f - b) / 2 + Math.cos(p) * (h - y) / 2, I = I < 0 ? -I : I, L = L < 0 ? -L : L, (M = Math.pow(x, 2) / Math.pow(I, 2) + Math.pow(w, 2) / Math.pow(L, 2)) > 1 && (I *= Math.sqrt(M), L *= Math.sqrt(M)), N = I > L ? I : L, D = I > L ? 1 : I / L, F = I > L ? L / I : 1, C = (m === v ? -1 : 1) * Math.sqrt((Math.pow(I, 2) * Math.pow(L, 2) - Math.pow(I, 2) * Math.pow(w, 2) - Math.pow(L, 2) * Math.pow(x, 2)) / (Math.pow(I, 2) * Math.pow(w, 2) + Math.pow(L, 2) * Math.pow(x, 2))), isNaN(C) && (C = 0), k = L * x * -C / I, S = (_ = C * (I * w) / L) * Math.cos(p) - k * Math.sin(p) + (f + b) / 2, E = _ * Math.sin(p) + k * Math.cos(p) + (h + y) / 2, A = s.angleBetweenVectors(1, 0, (x - _) / I, (w - k) / L), T = s.angleBetweenVectors((x - _) / I, (w - k) / L, (-x - _) / I, (-w - k) / L), 0 === v && T > 0 && (T -= Math.PI / 180 * 360), 1 === v && T < 0 && (T += Math.PI / 180 * 360), 0 === I && 0 === L) { t.lineTo(b, y); break } t.save(); var O = s.combineTransformMatrix([
                                    [1, 0, S, 0, 1, E],
                                    [Math.cos(p), Math.sin(p), 0, Math.sin(p), Math.cos(p), 0],
                                    [D, 0, 0, 0, F, 0]
                                ]);
                                t.transform(O[0], O[3], O[1], O[4], O[2], O[5]), t.arc(0, 0, N, A, A + T, 1 - v), t.restore(), s.arcBBox(0, 0, N, A, A + T, 1 - v, [O[0], O[3], O[1], O[4], O[2], O[5]], d), "A" === o ? (f = Number(l[c + 5]), h = Number(l[c + 6])) : (f += Number(l[c + 5]), h += Number(l[c + 6])) } break;
                        case "Z":
                        case "z":
                            t.closePath(), f = g.cx, h = g.cy }
                "draw" === n && ((!e.attributes.fill || e.attributes.fill && "none" !== e.attributes.fill.value) && (s.applyFillEffect(e, t, r, d), t.fill(), s.endFillEffect(e, t)), (!e.attributes.stroke || e.attributes.stroke && "none" !== e.attributes.stroke.value) && (s.applyStrokeEffect(e, t, r, d), t.stroke(), s.endStrokeEffect(e, t)), a()) }, s.drawNodes = function(e, t, r, n, a) { var i = e.length,
                    s = -1,
                    l = 0,
                    c = 0;! function u() { var d;
                    (s += 1) < i ? ((d = e[s]).tagName && "defs" === d.tagName && (d = e[s += 1]), d.attributes && (d.attributes.dy && (c = d.attributes.dy.value = 1 * d.attributes.dy.value + 1 * c), d.attributes.dx && (l = d.attributes.dx.value = 1 * d.attributes.dx.value + 1 * l)), o.common(d, t, r, n, u)) : a && a() }() }, s.getSvgDimention = function(e) { var t, r = { width: 0, height: 0 }; return t = e.childNodes && e.childNodes[0] && e.childNodes[0].attributes, r.width = Number(t.width && t.width.value || 0), r.height = Number(t.height && t.height.value || 0), r }, s.storeImagesInArr = function(e) { var t, r, n, a, i = e.getSVG(); for (a in n = e._getStore("imageArr"), t = i.getElementsByTagName("image")) t.hasOwnProperty(a) && t[a].attributes && t[a].attributes["xlink:href"] && (r = t[a].attributes["xlink:href"].value, n[r] || (n[r] = [], n[r].status = "progress", n[r].callback = null, n[r].obj = new Image, n[r].obj.onload = function(e) { return function() { var t = n[e].callback;
                        t ? (n[e].status = "complete", t()) : n[e].status = "complete" } }(r), n[r].obj.onerror = function(e) { return function() { var t = n[e].errCallback;
                        t ? (n[e].status = "error", t()) : n[e].status = "error" } }(r), n[r].obj.src = r)) }, s.startTransform = function(e, t) { var r, n, a = e.match(/[^\s][a-z,0-9.\-(\s]+\)/gi); for (n in a) a.hasOwnProperty(n) && (a[n].indexOf("matrix") > -1 && (r = s.stringToArgs(a[n]), t.transform(r[0], r[1], r[2], r[3], r[4], r[5])), a[n].indexOf("translate") > -1 && (r = s.stringToArgs(a[n]), t.translate(r[0] || 0, r[1] || 0)), a[n].indexOf("rotate") > -1 && (3 === (r = s.stringToArgs(a[n])).length ? (t.translate(r[1], r[2]), t.rotate(r[0] * (Math.PI / 180)), t.translate(-r[1], -r[2])) : t.rotate(r[0] * (Math.PI / 180))), a[n].indexOf("scale") > -1 && (1 === (r = s.stringToArgs(a[n])).length ? t.scale(r[0] || 1, r[0] || 1) : t.scale(r[0] || 1, r[1] || 1)), a[n].indexOf("skewX") > -1 && (r = s.stringToArgs(a[n]), t.transform(1, 0, Math.tan(r[0] * (Math.PI / 180)), 1, 0, 0)), a[n].indexOf("skewY") > -1 && (r = s.stringToArgs(a[n]), t.transform(1, Math.tan(r[0] * (Math.PI / 180)), 0, 1, 0, 0))) }, s.resetTransform = function(e) { e.setTransform(1, 0, 0, 1, 0, 0) }, s.stringToArgs = function(e) { var t = /\(([^)]+)/.exec(e)[1]; return s.getArgsAsArray(t) }, s.getArgsAsArray = function(e) { var t; for (e = e.trim().split(/[\s,]+/), t = 0; t < e.length; t++) e[t].trim(), 0 === e[t].length && e.splice(t, 1); return e }, s.applyFillEffect = function(e, t, r, n) { var a;
                e.attributes["fill-opacity"] && "none" !== e.attributes["fill-opacity"].value ? t.globalAlpha = e.attributes["fill-opacity"].value : t.globalAlpha = 1, e.attributes.fill && e.attributes.fill.value.indexOf("url(") > -1 ? (a = s.getFillStyleById(/url\(.*#([^)'"]+)/.exec(e.attributes.fill.value)[1], t, r, n), t.fillStyle = a) : e.attributes.fill ? t.fillStyle = e.attributes.fill.value : t.fillStyle = "#000000" }, s.endFillEffect = function(e, t) { t.globalAlpha = 1 }, s.applyStrokeEffect = function(e, t, r, n) { e.attributes["stroke-opacity"] && "none" !== e.attributes["stroke-opacity"].value && (t.globalAlpha = e.attributes["stroke-opacity"].value), e.attributes["stroke-width"] && (t.lineWidth = e.attributes["stroke-width"].value, "0" === e.attributes["stroke-width"].value && (t.globalAlpha = 0)), e.attributes["stroke-linecap"] && "none" !== e.attributes["stroke-linecap"].value && (t.lineCap = e.attributes["stroke-linecap"].value), e.attributes["stroke-linejoin"] && "none" !== e.attributes["stroke-linejoin"].value && (t.lineJoin = e.attributes["stroke-linejoin"].value), e.attributes["stroke-dasharray"] && "none" !== e.attributes["stroke-dasharray"].value && t.setLineDash && t.setLineDash(s.getArgsAsArray(e.attributes["stroke-dasharray"].value)), e.attributes.stroke ? t.strokeStyle = e.attributes.stroke.value : t.strokeStyle = "#000000" }, s.endStrokeEffect = function(e, t) { e.attributes["stroke-opacity"] && "none" !== e.attributes["stroke-opacity"].value && (t.globalAlpha = 1, t.setLineDash && t.setLineDash([]), t.lineWidth = 1), t.globalAlpha = 1 }, s.applyClip = function(e, t, r) { var n, a, i, l, c, u = r.getSVG(); if (-1 !== e.indexOf("url(")) { for (l in n = /url\(.*#([^)'"]+)/.exec(e)[1], (a = u.getElementById(n)).attributes && (t.save(), a.attributes.transform && s.startTransform(a.attributes.transform.value, t)), i = a.childNodes) i.hasOwnProperty(l) && i[l].tagName && i[l].constructor !== Array && (c = "draw" + i[l].tagName, i[l].attributes && (t.save(), i[l].attributes.transform && s.startTransform(i[l].attributes.transform.value, t)), o[c] && (o[c](i[l], t, r, "clip"), t.closePath()), i[l].attributes && t.restore());
                    a.attributes && t.restore(), t.clip() } }, s.getFillStyleById = function(e, t, r, n) { var a = r.getSVG().getElementById(e); return "linearGradient" === a.tagName ? s.getLinearGradient(a, t, n) : "radialGradient" === a.tagName ? s.getRadialGradient(a, t, n) : "#FFFFFF" }, s.getLinearGradient = function(e, t, r) { var n, a, i, o, l, c = e.attributes.x1 ? s.getPercentValue(e.attributes.x1.value, r.xMax - r.xMin, r.xMin) : 0,
                    u = e.attributes.y1 ? s.getPercentValue(e.attributes.y1.value, r.yMax - r.yMin, r.yMin) : 0,
                    d = e.attributes.x2 ? s.getPercentValue(e.attributes.x2.value, r.xMax - r.xMin, r.xMin) : 0,
                    f = e.attributes.y2 ? s.getPercentValue(e.attributes.y2.value, r.yMax - r.yMin, r.yMin) : 0; for (i in n = t.createLinearGradient(c, u, d, f), a = e.childNodes) a.hasOwnProperty(i) && a[i].attributes && a[i].attributes["stop-color"] && (o = s.toRGB(a[i].attributes["stop-color"].value), l = a[i].attributes["stop-opacity"] ? a[i].attributes["stop-opacity"].value : 1, o.status ? n.addColorStop(s.getPercentValue(a[i].attributes.offset.value, 1, 0), "rgba(" + o.r + "," + o.g + "," + o.b + "," + Number(l) + ")") : n.addColorStop(s.getPercentValue(a[i].attributes.offset.value, 1, 0), a[i].attributes["stop-color"].value)); return n }, s.getRadialGradient = function(e, t, r) { var n, a, i, o, l, c = e.attributes.cx ? s.getPercentValue(e.attributes.cx.value, r.xMax - r.xMin, r.xMin) : r.xMin + .5 * (r.xMax - r.xMin),
                    u = e.attributes.cy ? s.getPercentValue(e.attributes.cy.value, r.yMax - r.yMin, r.yMin) : r.yMin + .5 * (r.yMax - r.yMin),
                    d = e.attributes.fx ? s.getPercentValue(e.attributes.fx.value, r.xMax - r.xMin, r.xMin) : r.xMin + .5 * (r.xMax - r.xMin),
                    f = e.attributes.fy ? s.getPercentValue(e.attributes.fy.value, r.yMax - r.yMin, r.yMin) : r.yMin + .5 * (r.yMax - r.yMin),
                    h = e.attributes.r ? s.getPercentValue(e.attributes.r.value, (r.yMax - r.yMin + r.xMax - r.xMin) / 2, 0) : s.getPercentValue("50%", (r.yMax - r.yMin + r.xMax - r.xMin) / 2, 0); for (i in n = t.createRadialGradient(d, f, 0, c, u, h), a = e.childNodes) a.hasOwnProperty(i) && a[i].attributes && a[i].attributes["stop-color"] && (o = s.toRGB(a[i].attributes["stop-color"].value), l = a[i].attributes["stop-opacity"] ? a[i].attributes["stop-opacity"].value : 1, o.status ? n.addColorStop(s.getPercentValue(a[i].attributes.offset.value, 1, 0), "rgba(" + o.r + "," + o.g + "," + o.b + "," + Number(l) + ")") : n.addColorStop(s.getPercentValue(a[i].attributes.offset.value, 1, 0), a[i].attributes["stop-color"].value)); return n }, s.getPercentValue = function(e, t, r) { var n; return -1 !== e.indexOf("%") ? ((n = /(\d.*)%/.exec(e)[1]) > 100 && (n = 100), n * t / 100 + 1 * r) : e > 1 ? e : e * t + 1 * r }, s.bBoxFromPoint = function(e, t, r) { "undefined" != typeof r.xMin && (e.push(r.xMin, r.xMax), t.push(r.yMin, r.yMax)), r.xMin = Math.min.apply(this, e), r.xMax = Math.max.apply(this, e), r.yMin = Math.min.apply(this, t), r.yMax = Math.max.apply(this, t) }, s.arcBBox = function(e, t, r, n, a, i, o, s) { var l, c, u, d, f, h, g, p, m, v, b;
                o instanceof Array && (e = e * o[0] + e * o[2] + o[4], t = t * o[1] + t * o[3] + o[5]), b = function(e, t, r) { return (e = (e + 2 * Math.PI) % (2 * Math.PI)) <= (t = (t + 2 * Math.PI) % (2 * Math.PI)) ? e <= r && r <= t : e >= t ? !(e >= r && r >= t) : void 0 }, l = n % (2 * Math.PI), c = a % (2 * Math.PI), i && (l = a % (2 * Math.PI), c = n % (2 * Math.PI)), u = e + r * Math.cos(l), d = t + r * Math.sin(l), m = [u, e + r * Math.cos(c)], v = [d, t + r * Math.sin(c)], b(l, c, 0) && (m.push(1 * e + 1 * r), v.push(t)), b(l, c, .5 * Math.PI) && (m.push(e), v.push(1 * t + 1 * r)), b(l, c, Math.PI) && (m.push(e - 1 * r), v.push(t)), b(l, c, 1.5 * Math.PI) && (m.push(e), v.push(t - 1 * r)), g = Math.max.apply(this, m), f = Math.min.apply(this, m), p = Math.max.apply(this, v), h = Math.min.apply(this, v), "undefined" != typeof s.xMin ? (s.xMin = Math.min(f, s.xMin), s.xMax = Math.max(g, s.xMax), s.yMin = Math.min(h, s.yMin), s.yMax = Math.max(p, s.yMax)) : (s.xMin = f, s.xMax = g, s.yMin = h, s.yMax = p) }, s.qBezierBBox = function(e, t, r, n, a, i, o) { var s, l, c, u, d, f, h, g, p = 1 * e - 2 * r + 1 * a,
                    m = 1 * t - 2 * n + 1 * i;
                0 === p || 0 === m ? (d = Math.max(e, a), c = Math.min(e, a), f = Math.max(t, i), u = Math.min(t, i)) : (s = (e - r) / p, l = (t - n) / m, h = e * Math.pow(1 - s, 2) + 2 * r * (1 - s) * s + a * Math.pow(s, 2), g = t * Math.pow(1 - l, 2) + 2 * n * (1 - l) * l + i * Math.pow(l, 2), d = Math.max(e, a, h), c = Math.min(e, a, h), f = Math.max(t, i, g), u = Math.min(t, i, g)), "undefined" != typeof o.xMin ? (o.xMin = Math.min(c, o.xMin), o.xMax = Math.max(d, o.xMax), o.yMin = Math.min(u, o.yMin), o.yMax = Math.max(f, o.yMax)) : (o.xMin = c, o.xMax = d, o.yMin = u, o.yMax = f) }, s.cBezierBBox = function(e, t, r, n, a, i, o, s, l) { var c, u, d, f, h, g, p, m, v, b, y, x, w;
                null === a && null === i && (a = t + 2 / 3 * (n - t), n = (r = e + 2 / 3 * (r - e)) + 1 / 3 * (o - e), i = a + 1 / 3 * (s - t)), y = function(e, t, r, n, a) { return e * Math.pow(1 - a, 3) + 3 * t * a * Math.pow(1 - a, 2) + 3 * r * a * a * (1 - a) + n * a * a * a }, h = 3 * o - 9 * a + 9 * r - 3 * e, g = 6 * e - 12 * r + 6 * a, p = 3 * r - 3 * e, o < (c = e) && (c = o), o > (u = e) && (u = o), (m = Math.pow(g, 2) - 4 * h * p) >= 0 && ((v = (-g + Math.sqrt(m)) / (2 * h)) > 0 && v < 1 && ((x = y(e, r, a, o, v)) < c && (c = x), x > u && (u = x)), (b = (-g - Math.sqrt(m)) / (2 * h)) > 0 && b < 1 && ((x = y(e, r, a, o, b)) < c && (c = x), x > u && (u = x))), h = 3 * s - 9 * i + 9 * n - 3 * t, g = 6 * t - 12 * n + 6 * i, p = 3 * n - 3 * t, s < (d = t) && (d = s), s > (f = t) && (f = s), (m = Math.pow(g, 2) - 4 * h * p) >= 0 && ((v = (-g + Math.sqrt(m)) / (2 * h)) > 0 && v < 1 && ((w = y(t, n, i, s, v)) < d && (d = w), w > f && (f = w)), (b = (-g - Math.sqrt(m)) / (2 * h)) > 0 && b < 1 && ((w = y(t, n, i, s, b)) < d && (d = w), w > f && (f = w))), "undefined" != typeof l.xMin ? (l.xMin = Math.min(c, l.xMin), l.xMax = Math.max(u, l.xMax), l.yMin = Math.min(d, l.yMin), l.yMax = Math.max(f, l.yMax)) : (l.xMin = c, l.xMax = u, l.yMin = d, l.yMax = f) }, s.combineTransformMatrix = function(e) { var t, r, n = e.length - 1; if (n <= 0) return e[0]; for (r = e[0], t = 1; t <= n; t++) r[0] = r[0] * e[t][0] + r[1] * e[t][3], r[1] = r[0] * e[t][1] + r[1] * e[t][4], r[2] = r[0] * e[t][2] + r[1] * e[t][5] + 1 * r[2], r[3] = r[3] * e[t][0] + r[4] * e[t][3], r[4] = r[3] * e[t][1] + r[4] * e[t][4], r[5] = r[3] * e[t][2] + r[4] * e[t][5] + 1 * r[5]; return r }, s.angleBetweenVectors = function(e, t, r, n) { var a = e * n < t * r ? -1 : 1,
                    i = e * r + t * n,
                    o = Math.sqrt(Math.pow(e, 2) + Math.pow(t, 2)),
                    s = Math.sqrt(Math.pow(r, 2) + Math.pow(n, 2)); return a * Math.acos(i / (o * s)) }, s.toRGB = function(e) { var t, r, n, a = { r: 0, g: 0, b: 0, status: 0 }; return r = function(e) { for (n in e) e.hasOwnProperty(n) && (e[n] < 0 || isNaN(e[n]) ? e[n] = 0 : e[n] > 255 && (e[n] = 255)); return a = { r: e[0], g: e[1], b: e[2], status: 1 } }, (e = e.trim()).match(/^rgb\(|^rgba\(/i) ? (t = /\(\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})/.exec(e), r([parseInt(t[1]), parseInt(t[2]), parseInt(t[3])])) : e.match(/^#/) && (t = /(\w{2})(\w{2})(\w{2})/.exec(e), r([parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)])), a }, s.StrToDom = function(e) { var t; return a.DOMParser ? t = (new DOMParser).parseFromString(e, "text/xml") : ((t = new a.ActiveXObject("Microsoft.XMLDOM")).async = !1, t.loadXML(e)), t }; var l = n;
            t["default"] = l }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.addImage = function(e, t, r) { l = t, c = r, o = [], s = 0, n = void 0, a = void 0, i = void 0, n = l || 500, a = c || 500, i = atob(/base64,(.+?)$/g.exec(e)[1]); var l, c }, t.getDataUrl = function() { return "data:application/pdf;base64," + btoa(function() { var e, t, r = []; for (l("%PDF-1.7"), r[1] = s, l("1 0 obj"), l("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"), l("endobj"), r[4] = s, l("4 0 obj"), l("<< /Length 36>>"), l("stream"), l("q " + a + " 0 0 " + n + " 0 0 cm /Im3 Do Q"), l("endstream"), l("endobj"), r[5] = s, l("5 0 obj"), l("<</Type /Page /Parent 2 0 R /MediaBox [0 0 " + a + " " + n + "] /Contents [4 0 R ] /Resources <</ProcSet 1 0 R /Font <<>> /XObject <</Im3 3 0 R >> >> >>"), l("endobj"), r[3] = s, l("3 0 obj"), l("<</Type /XObject /Subtype /Image /Width " + a + " /Height " + n + " /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length " + i.length + ">>"), l("stream"), l(i), l("endstream"), l("endobj"), r[2] = s, l("2 0 obj"), l("<</Type /Pages /Kids [5 0 R ] /Count 1>>"), l("endobj"), r[6] = s, l("6 0 obj"), l("<</Type /Catalog /Pages 2 0 R >>"), l("endobj"), e = s, l("xref"), l("0 7"), l("0000000000 65535 f "), t = 1; t <= 6; t++) l(("0000000000" + r[t]).slice(-10) + " 00000 n "); return l("trailer"), l("<</Size 7 /Root 6 0 R >>"), l("startxref"), l(e), l("%%EOF"), o.join("\n") }()) }; var n, a, i, o = [],
                s = 0;

            function l(e) { s += e.length + 1, o.push(e) } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n, a, i = r(361),
                o = r(363),
                s = r(215),
                l = r(360),
                c = r(222),
                u = window,
                d = Math.max,
                f = u.Image,
                h = u.navigator.userAgent.match(/(iPad|iPhone|iPod)/g),
                g = "https:" === u.location.protocol ? "https://export.api3.fusioncharts.com/api/v1.0/logs" : "http://export.api3.fusioncharts.com/api/v1.0/logs",
                p = "https:" === u.location.protocol ? "https://export.api3.fusioncharts.com/" : "http://export.api3.fusioncharts.com/",
                m = function(e) { return !e.match(/http:\/\/|https:\/\//) || !/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(e)[2] || u.location.hostname === /(http:\/\/|https:\/\/)([^\/\:]*)/.exec(e)[2] },
                v = function(e, t, r, n) { var a = e,
                        i = t; return isNaN(a) && (a = (0, s.pluckNumber)(t, n) * (r / n)), isNaN(i) && (i = (0, s.pluckNumber)(e, r) * (n / r)), { width: a, height: i } },
                b = function() {
                    (0, c.triggerEvent)("exportcancelled") };

            function y() { var e, t, r, y, x, w, C, _, k, S, E, A, T, M = arguments[0],
                    N = M || {},
                    D = 0,
                    F = !1,
                    I = { exportTargetWindow: (0, s.pluck)(N.exportTargetWindow, h ? "_parent" : "_self"), exportAction: N.exportAction && "string" == typeof N.exportAction ? (A = N.exportAction.toLowerCase(), [l.EXPORTACTION.DOWNLOAD, l.EXPORTACTION.SAVE, l.EXPORTACTION.DOWNLOADSAVE].indexOf(A) >= 0 ? A : l.EXPORTACTION.DOWNLOAD) : l.EXPORTACTION.DOWNLOAD, exportFileName: (0, s.pluck)(N.exportFileName, "FusionCharts"), exportHandler: (0, s.pluck)(N.exportHandler, p), exportParameters: (0, s.pluck)(N.exportParameters, ""), exportFormat: (0, s.pluck)(N.exportFormat, l.EXPORTFORMAT.PNG), exportCallback: (0, s.pluck)(N.exportCallback, ""), exportAtClientSide: (0, s.pluckNumber)(N.exportAtClientSide, 1), exportMode: ("undefined" != typeof N.exportAtClientSide && (E = { 1: l.EXPORTMODE.AUTO, 0: l.EXPORTMODE.SERVER } [N.exportAtClientSide]), E = (E = N.exportMode || E || l.EXPORTMODE.AUTO).toLowerCase()), logEnabled: (0, s.pluckNumber)(N.logEnabled, 0), logMode: (S = N.logMode, void 0 !== S && "string" == typeof S && S.toUpperCase() in l.LOGMODE ? l.LOGMODE[S.toUpperCase()] : l.LOGMODE.AUTO), logHandler: (0, s.pluck)(N.logHandler, g) },
                    L = I.exportFormat.toLowerCase(),
                    O = 0,
                    R = 0,
                    P = 10,
                    V = P / 2,
                    j = a.items,
                    B = v,
                    H = function(e, t, r) { var n; return n = !!I.logEnabled, I.logMode === l.LOGMODE.CLIENT && (n = !1), { charttype: "combined", stream_type: e || "", stream: t || "", is_single_export: !1, is_full_version: !1, version: s.PROJECT_VERSION, user_time_zone: -(new Date).getTimezoneOffset(), log_enabled: n, parameters: ["exportfilename=" + I.exportFileName, "exportformat=" + I.exportFormat, "exportaction=" + (0, l.createExportActionOldString)(I.exportAction), "exportactionnew=" + I.exportAction, "configuredexportaction=" + (r || I.exportAction), "exportparameters=" + I].join("|") } },
                    G = function() { return { chartType: "combined", isSingleExport: !1, isFullVersion: !1, exportAction: I.exportAction, userTimeZone: -(new Date).getTimezoneOffset(), exportFileName: [I.exportFileName, I.exportFormat].join("."), exportFormat: I.exportFormat, version: s.PROJECT_VERSION } },
                    z = function(e) { e === l.LOGMODE.CLIENT && (0, l.logCharts)(G(), I) },
                    U = function(e) { var t, r, a;
                        (0, c.triggerEvent)("beforeexport", n, n, n, (function() { r = "undefined" != typeof u.btoa && ("Chrome" === i.browserDetails.name || "Firefox" === i.browserDetails.name || "Safari" === i.browserDetails.name || "Edge" === i.browserDetails.name || "ie" === i.browserDetails.name), I.exportMode === l.EXPORTMODE.CLIENT || I.exportMode === l.EXPORTMODE.AUTO && r ? (I.exportAction !== l.EXPORTACTION.DOWNLOAD && I.exportAction !== l.EXPORTACTION.DOWNLOADSAVE || (t = I.exportMode === l.EXPORTMODE.AUTO ? H("IMAGE-DATA", e) : null, (0, i.downloadCharts)("url", e, I.exportFileName + "." + L, t, I), (0, c.triggerEvent)("exported", n, { fileName: I.exportFileName + "." + L })), I.exportAction === l.EXPORTACTION.SAVE || I.exportAction === l.EXPORTACTION.DOWNLOADSAVE ? (a = I.exportAction, I.exportAction === l.EXPORTACTION.DOWNLOADSAVE && (I.exportAction = l.EXPORTACTION.SAVE), t = H("IMAGE-DATA", e, a), I.paper = { width: n, height: n }, I.fusionCharts = {}, (0, i.downloadCharts)(null, null, null, t, I), delete I.paper, delete I.fusioncharts, z(I.logMode)) : I.logMode !== l.LOGMODE.SERVER && (0, l.logCharts)(G(), I)) : (t = H("IMAGE-DATA", e), I.paper = { width: n, height: n }, I.fusionCharts = {}, (0, i.downloadCharts)(null, null, null, t, I), delete I.paper, delete I.fusioncharts, z(I.logMode)) }), b) },
                    W = function() { if (0 === (D -= 1) && F) switch (L) {
                            case "png":
                                U(r.toDataURL("image/png")); break;
                            case "jpeg":
                                U(r.toDataURL("image/jpeg")); break;
                            case "pdf":
                                (0, o.addImage)(r.toDataURL("image/jpeg"), O, R), U((0, o.getDataUrl)()); break;
                            default:
                                U(r.toDataURL("image/png")) } },
                    X = function() { var e = this;
                        (0, i.drawSvgOnCanvas)({ svg: arguments[0], canvas: r, x: e.x, y: e.y, width: e.width, height: e.height, useCanvas: arguments[1] }, W) },
                    $ = function(e) { var t = N.background;
                        (r = u.document.createElement("canvas")).id = "newCanvas", r.width = R, r.height = O, r.style.border = "1px solid black", (y = r.getContext("2d")).fillStyle = t && t.bgColor || "#ffffff", y.fillRect(0, 0, R, O), t && t.bgImage && m(t.bgImage) ? ((C = new f).src = t.bgImage, C._userData = t, y.globalAlpha = (0, s.pluckNumber)(t.bgImageAlpha, 100) / 100, C.onload = function() { var t = this._userData,
                                r = (0, s.pluckNumber)(t.bgImageX, 0),
                                n = (0, s.pluckNumber)(t.bgImageY, 0),
                                a = B(Number(t.bgImageWidth), Number(t.bgImageHeight), this.width, this.height); try { y.drawImage(this, r, n, a.width, a.height) } finally { y.globalAlpha = 1, e() } }, C.onerror = function() { e() }) : e() },
                    Y = function(t, r) { var n, i;
                        (e = a.items[t]).jsVars.instanceAPI && (x = (x = (x = (x = e.jsVars.instanceAPI.getFromEnv("paper").toSVG(!0)).replace(/NS\d+:/gi, "xlink:")).replace(/(\sd\s*=\s*["'])[M\s\d\.]*(["'])/gi, "$1M 0 0 L 0 0$2")).replace(/(xlink:title\s*=\s*)['"].*?["']/gi, ""), D += 1, n = x, i = a.options["export"].useCanvas, (0, l.cacheAllImages)(n, !1, (function() { n = (0, l.replaceImagesWithNonDataUrl)(n), X.call(r || e, n, i) }))) },
                    q = function() { var e, r, n, a, i, o, s = N.charts; if (t = [], s)
                            for (n in s) s.hasOwnProperty(n) && (e = j[s[n].id]) && (r = s[n], i = e.width, o = e.height, isNaN(Number(i)) && (i = e.apiInstance.getFromEnv("chartWidth")), isNaN(Number(o)) && (o = e.apiInstance.getFromEnv("chartHeight")), a = B(Number(r.width), Number(r.height), i, o), t.push({ id: e.id, width: a.width, height: a.height, x: r.x, y: r.y }));
                        else
                            for (n in j) j.hasOwnProperty(n) && (i = (e = j[n]).width, o = e.height, isNaN(Number(i)) && (i = e.apiInstance.getFromEnv("chartWidth")), isNaN(Number(o)) && (o = e.apiInstance.getFromEnv("chartHeight")), t.push({ id: e.id, width: i, height: o })) }; if ((T = {})[l.EXPORTMODE.CLIENT] = 1, T[l.EXPORTMODE.AUTO] = 0, T[l.EXPORTMODE.SERVER] = 0, I.exportatclientside = T[I.exportMode], i.browserDetails.hasCanvas) { for (q(), k = 0, w = t.length; k < w; k += 1)(_ = t[k]).x = (0, s.pluckNumber)(_.x, V), _.y = (0, s.pluckNumber)(_.y, O + V), _.height = (0, s.pluckNumber)(_.height), _.width = (0, s.pluckNumber)(_.width), O = d(O, _.y + _.height), R = d(R, _.x + _.width);
                    O = N.imageHeight || O + V, R = N.imageWidth || R + V, $((function() { for (k = 0, w = t.length; k < w; k += 1) _ = t[k], k === w - 1 && (F = !0), Y(_.id, _) })) } } var x = { extension: function(e) { e.batchExport = y, a = e }, name: "batchExportLinker", type: "extension", requiresFusionCharts: !0 };
            t["default"] = x }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(366)),
                i = r(215),
                o = function(e) { var t = e.sender;
                    (function(e, t) { return e.getType() === t })(t, "chartAPI") && t.registerFactory("logo", (function(e) { var t = e.getFromEnv("chart-attrib");
                        (0, i.componentFactory)(e, a["default"], "logo", (0, i.getValidValue)(t.logourl, "") ? 1 : 0, [t]) })) },
                s = { extension: function(e) { e.addEventListener("instantiated", o) }, name: "LogoExtension", type: "extension", requiresFusionCharts: !0 };
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = r(230),
                s = r(215),
                l = { vAlign: "top", hAlign: "left" },
                c = { link: { cursor: "pointer", _cursor: "pointer" }, normal: { cursor: "default", _cursor: "normal" } },
                u = { tr: { vAlign: "top", hAlign: "right" }, bl: { vAlign: "bottom", hAlign: "left" }, br: { vAlign: "bottom", hAlign: "right" }, cc: { vAlign: "middle", hAlign: "middle" } },
                d = !(!window.SVGAngle && !document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")),
                f = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var r = (0, a["default"])(t); return r.config._context = {}, r.config.handler = function(e) { var t = e.config; return { load: function() { var r, n = e.getGraphicalElement("logoImage"),
                                        a = e.getFromEnv("chartConfig"),
                                        i = a.borderWidth || 0,
                                        o = t.logoPosition,
                                        l = t.logoScale,
                                        c = t.logoLeftMargin,
                                        u = t.logoTopMargin,
                                        f = t.logoURL,
                                        h = t.logoAlpha,
                                        g = t.logoPositionSTR,
                                        p = t.logoLink;
                                    n.show(), r = (0, s.setImageDisplayMode)("none", o.vAlign, o.hAlign, l, i, a.width, a.height, n._.RefImg), d && (r.w = r.width || 0, r.h = r.height || 0), r.transform = "T" + c + "," + u, n.attr(r), e.getFromEnv("chart").fireChartInstanceEvent("LogoLoaded", { logoURL: f, logoAlpha: h, logoPosition: g, logoScale: l, logoLink: p }) }, error: function(r) { var n = t.logoURL,
                                        a = t.logoAlpha,
                                        i = t.logoPositionSTR,
                                        o = t.logoScale,
                                        s = t.logoLink;
                                    e.getFromEnv("chart").fireChartInstanceEvent("LogoLoadError", { logoURL: n, logoAlpha: a, logoPosition: i, logoScale: o, logoLink: s, error: r }) }, mouseover: function(r) { var n = (0, s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref, r),
                                        a = t.logoURL,
                                        i = t.logoAlpha,
                                        o = t.logoPositionSTR,
                                        l = t.logoScale,
                                        c = t.logoLink;
                                    e.getFromEnv("chart").fireChartInstanceEvent("LogoRollover", { logoURL: a, logoAlpha: i, logoPosition: o || "tl", logoScale: l, logoLink: c, chartX: n.chartX, chartY: n.chartY, pageX: n.pageX, pageY: n.pageY }) }, mouseout: function(r) { var n = (0, s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref, r),
                                        a = t.logoURL,
                                        i = t.logoAlpha,
                                        o = t.logoPositionSTR,
                                        l = t.logoScale,
                                        c = t.logoLink;
                                    e.getFromEnv("chart").fireChartInstanceEvent("LogoRollout", { logoURL: a, logoAlpha: i, logoPosition: o || "tl", logoScale: l, logoLink: c, chartX: n.chartX, chartY: n.chartY, pageX: n.pageX, pageY: n.pageY }) }, click: function(r) { var n = (0, s.getMouseCoordinate)(e.getFromEnv("chartInstance").ref, r),
                                        a = t.logoURL,
                                        i = t.logoAlpha,
                                        o = t.logoPositionSTR,
                                        l = t.logoScale,
                                        c = t.logoLink;
                                    e.getFromEnv("chart").fireChartInstanceEvent("LogoClick", { logoURL: a, logoAlpha: i, logoPosition: o || "tl", logoScale: l, logoLink: c, chartX: n.chartX, chartY: n.chartY, pageX: n.pageX, pageY: n.pageY }, void 0, t.linkClickFN) } } }(r), r.config.linkClickFN = function() { var e = r.config.logoLink;
                            e && r.getFromEnv("linkClickFN").call({ link: e }, !0) }, t }(0, i["default"])(t, e); var r = t.prototype; return r.configureAttributes = function() { var e = this.config,
                            t = this.getFromEnv("chart-attrib");
                        e.logoURL = (0, s.getValidValue)(t.logourl, ""), e.logoPositionSTR = (0, s.pluck)(t.logoposition, "tl").toLowerCase(), e.logoPosition = u[e.logoPositionSTR] || l, e.logoAlpha = (0, s.pluckNumber)(t.logoalpha, 100), e.logoLink = (0, s.getValidValue)(t.logolink), e.logoScale = (0, s.pluckNumber)(t.logoscale, 100), e.logoLeftMargin = (0, s.pluckNumber)(t.logoleftmargin, 0), e.logoTopMargin = (0, s.pluckNumber)(t.logotopmargin, 0), this.setState("dirty", !0) }, r._contextChanged = function() { var e, t = this.config,
                            r = this.getFromEnv("chartConfig"),
                            n = r.borderWidth,
                            a = r.width,
                            i = r.height; return n !== t._context.chartBorderWidth && (t._context.chartBorderWidth = n, e = !0), a !== t._context.chartWidth && (t._context.chartWidth = a, e = !0), i !== t._context.chartHeight && (t._context.chartHeight = i, e = !0), e }, r.draw = function() { var e = this.config,
                            t = this.getGraphicalElement("logoImage"),
                            r = e.logoURL,
                            n = !this.getState("removed");
                        (!n || this.getState("dirty") || this._contextChanged()) && r && n && (t = this.getFromEnv("animationManager").setAnimation({ el: t || "image", attr: { opacity: .01 * e.logoAlpha || 1, src: r }, component: this, container: this.getLinkedParent().getChildContainer("logoGroup") }), this.getGraphicalElement("logoImage") || (this.addGraphicalElement("logoImage", t), t.on("load", e.handler.load), t.on("error", e.handler.error), t.on("fc-click", e.handler.click), t.on("fc-mouseover", e.handler.mouseover), t.on("fc-mouseout", e.handler.mouseout)), t.css(c[e.logoLink ? "link" : "normal"])) }, t }(o.ComponentInterface);
            t["default"] = f }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = { extension: function(e) { e.addEventListener("register", (function(t, r) { var n, a = r[0],
                            i = r[1]; if (a && "string" == typeof a && "theme" === a && i && "object" == typeof i) { if (i instanceof Array)
                                for (n = 0; n < i.length; n++) e.addDep({ extension: i[n], name: i[n].name + "Theme", type: "theme" });
                            else e.addDep({ extension: i, name: i.name + "Theme", type: "theme" });
                            t.preventDefault() } })) }, name: "ThemeEngine", type: "extension", requiresFusionCharts: !0 };
            t["default"] = n }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n, a = r(222);
            (n = { outputHelpers: { text: function(e, t) { n.outputTo("#" + e.eventId + " [" + (e.sender.id || e.sender).toString() + '] fired "' + e.eventType + '" event. ' + ("error" === e.eventType || "warning" === e.eventType ? t.message : "")) }, event: function(e, t) { this.outputTo(e, t) }, verbose: function(e, t) { n.outputTo(e.eventId, e.sender.id, e.eventType, t) } }, outputHandler: function(e, t) { "function" == typeof n.outputTo && n.currentOutputHelper(e, t) }, currentOutputHelper: void 0, outputTo: void 0, enabled: !1 }).currentOutputHelper = n.outputHelpers.text; var i = { extension: function(e) { e["debugger"] = { outputFormat: function(e) { var t = e; return !(!t || "function" != typeof t.toLowerCase || "function" != typeof n.outputHelpers[t = t.toLowerCase()]) && (n.currentOutputHelper = n.outputHelpers[t], !0) }, outputTo: function(t) { "function" == typeof t ? n.outputTo = t : null === t && (e["debugger"].enable(!1), delete n.outputTo) }, enable: function(t, r, i) { var o, s = t,
                                l = r,
                                c = i; return "object" == typeof s && 1 === arguments.length && (s = (o = s).state, l = o.outputTo, c = o.outputFormat), "function" == typeof s && ("string" != typeof l || 2 !== arguments.length && !o || (c = l), l = s, s = !0), "boolean" == typeof s && s !== n.enabled && (n.enabled = s, n.enabled ? (0, a.addListener)("*", n.outputHandler) : (0, a.removeListener)("*", n.outputHandler)), "function" == typeof l && (n.outputTo = l), e["debugger"].outputFormat(c), n.enabled } } }, name: "Debugger", type: "extension", requiresFusionCharts: !0 };
            t["default"] = i }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(370)),
                i = r(215),
                o = r(227),
                s = 0;

            function l(e, t) { var r = this.apiInstance,
                    n = e || void 0,
                    l = t || void 0,
                    c = r.getChildren("dataset")[0],
                    u = c.getChildren(),
                    d = u.centerLabel && u.centerLabel[0],
                    f = r.config;
                void 0 === d && ((0, i.componentFactory)(c, a["default"], "centerLabel", 1, [f]), d = u.centerLabel && u.centerLabel[0]), r.addJob("eiMethods-center-lebel" + s++, (function() { var e, t, a = r.getDatasets()[0],
                        i = a.config.piePlotOptions.innerSize; if (e = d.config, "object" != typeof l) l = e;
                    else { for (t in e) void 0 === l[t] && (l[t] = e[t]);
                        e = Object.assign(e, l) } l.label = n, e.label = n, a.centerLabelConfig = e, i && d && d.draw(n || "") }), o.priorityList.postRender) } var c = { extension: function(e) { e.addEventListener("instantiated", (function(e) { var t = e.sender;
                        (function(e) { var t = e.getName().toLowerCase(); return ("doughnut2d" === t || "multilevelpie" === t) && "dataset" === e.getType() })(t) && t.registerFactory("centerLabel", (function() { var e = t.getFromEnv("chartConfig"),
                                r = !(!e.centerlabel && !e.defaultcenterlabel);
                            t.getFromEnv("chartInstance").centerLabel = l, (0, i.componentFactory)(t, a["default"], "centerLabel", r ? 1 : 0, [e]) })) })) }, name: "CenterLabelExtension", type: "extension", requiresFusionCharts: !0 };
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(215),
                s = r(223),
                l = n(r(371));
            (0, s.addDep)({ name: "centerLabelAnimation", type: "animationRule", extension: l["default"] }); var c = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "centerLabel" }, r.getType = function() { return "centerLabel" }, r.configure = function(e) { var t = this.getFromEnv("chart-attrib"),
                        r = this.getFromEnv("number-formatter"),
                        n = e.dataLabelStyle,
                        a = this;
                    a.config = { label: (0, o.parseUnsafeString)((0, o.pluck)(t.defaultcenterlabel, "")), font: (0, o.pluck)(t.centerlabelfont, n.fontFamily), fontSize: (0, o.pluckNumber)(t.centerlabelfontsize, parseInt(n.fontSize, 10)), color: (0, o.getFirstColor)((0, o.pluck)(t.centerlabelcolor, t.valuefontcolor, e.style.inCanvasStyle.color, "555555")), alpha: (0, o.pluckNumber)(t.centerlabelalpha, 100), bold: (0, o.pluckNumber)(t.centerlabelbold, n.fontWeight), italic: (0, o.pluckNumber)(t.centerlabelitalic, n.style), bgColor: (0, o.pluck)(t.centerlabelbgcolor, ""), bgAlpha: (0, o.pluckNumber)(t.centerlabelbgalpha, 100), borderColor: (0, o.pluck)(t.centerlabelbordercolor, n.borderColor), borderAlpha: (0, o.pluckNumber)(t.centerlabelborderalpha, 100), borderThickness: (0, o.pluckNumber)(t.centerlabelborderthickness, n.borderThickness), borderRadius: (0, o.pluckNumber)(t.centerlabelborderradius, n.borderRadius), textPadding: (0, o.pluckNumber)(t.centerlabeltextpadding, n.borderPadding), padding: (0, o.pluckNumber)(t.centerlabelpadding, 2), bgOval: (0, o.pluckNumber)(t.centerlabelbgoval, 0), shadow: (0, o.pluckNumber)(t.showcenterlabelshadow, 0), hoverColor: t.centerlabelhovercolor && (0, o.getFirstColor)((0, o.pluck)(t.centerlabelhovercolor)), hoverAlpha: (0, o.pluckNumber)(t.centerlabelhoveralpha), toolText: (0, o.parseUnsafeString)((0, o.pluck)(t.centerlabeltooltext, o.BLANKSTRING), !1) }, a.addExtEventListener("datasetrollover", (function(e) { var t = e.data,
                            n = (0, o.pluck)(function(e, t, r) { var n = e; if (n)
                                    for (var a, i = t.length || 0; i--;) a = new RegExp(t[i], "gi"), n = n.replace(a, r[i]); return n }((0, o.parseUnsafeString)(e.sender.getFromEnv("dataSource").chart.centerlabel), ["\\$value", "\\$percentValue", "\\$displayValue", "\\$label"], [r.scale(t.value), t.pValue, t.displayValue, t.label]), "");
                        a.draw(n, !1) }), this.getFromEnv("chart").getDatasets()[0]), a.addExtEventListener("datasetrollout", (function(e) { a.draw((0, o.pluck)(e.sender.config.label, ""), !1) }), this.getFromEnv("chart").getDatasets()[0]) }, r.draw = function(e) { var t, r, n = this,
                        a = n.getFromEnv("chart"),
                        i = a.config.canvasLeft + .5 * a.config.canvasWidth,
                        s = a.config.canvasTop + .5 * a.config.canvasHeight,
                        l = a.getDatasets()[0].config.innerSize,
                        c = a.getDatasets()[0].config.innerSize,
                        u = a.getDatasets()[0].config,
                        d = this.config,
                        f = n.getFromEnv("animationManager"),
                        h = n.getFromEnv("smartLabel"),
                        g = this.getGraphicalElement("centerLabel"),
                        p = g,
                        m = this.getGraphicalElement("centerLabelBg"),
                        v = a.getChildContainer("plotGroup"),
                        b = d.padding,
                        y = 2 * d.textPadding,
                        x = { fontFamily: d.font, fontSize: d.fontSize + "px", lineHeight: 1.2 * d.fontSize + "px", fontWeight: d.bold ? "bold" : "", fontStyle: d.italic ? "italic" : "" },
                        w = 1.414 * (.5 * l - b) - y,
                        C = 1.414 * (.5 * c - b) - y,
                        _ = n.getFromEnv("toolTipController");
                    t = (0, o.pluck)(e, d.label), h.setStyle(x), h.useEllipsesOnOverflow(a.config.useEllipsesWhenOverflow), r = h.getSmartText(t, w, C), t ? (d.bgOval && (m = f.setAnimation({ el: m || "circle", attr: { cx: i, cy: s, r: .5 * l - b, visibility: "visible", container: v, fill: (0, o.hashify)(d.bgColor), "fill-opacity": d.bgAlpha / 100, stroke: (0, o.hashify)(d.borderColor), "stroke-width": d.borderThickness, "stroke-opacity": d.borderAlpha / 100 }, component: n })), p = f.setAnimation({ el: g || "text", component: n, container: v, css: x, attr: { x: i, y: s, text: r.text, visibility: "visible", direction: a.config.textDirection, fill: (0, o.toRaphaelColor)({ FCcolor: { color: d.color, alpha: d.alpha } }), "text-bound": d.bgOval ? "none" : [(0, o.toRaphaelColor)({ FCcolor: { color: d.bgColor, alpha: d.bgAlpha } }), (0, o.toRaphaelColor)({ FCcolor: { color: d.borderColor, alpha: d.borderAlpha } }), d.borderThickness, d.textPadding, d.borderRadius] }, label: "text" }), _.enableToolTip(p, d.toolText || r.tooltext)) : (p && f.setAnimation({ el: p, attr: { visibility: "hidden" }, component: n }), m && f.setAnimation({ el: m, attr: { visibility: "hidden" }, component: n })), g ? p.attr("text") !== t && n.centerLabelChange(t) : (n.addEventListener("fc-mouseover", (function() { n._centerLabelRollover(a) })), n.addEventListener("fc-mouseout", (function() { n._centerLabelRollout(a) })), n.addEventListener("fc-click", (function() { n._centerLabelClick(a) })), n.addGraphicalElement("centerLabel", p), n.addGraphicalElement("centerLabelBg", m)), u.lastCenterLabelConfig = d, u.centerLabelConfig = d }, r.centerLabelChange = function(e) { var t = this.getFromEnv("chart"),
                        r = t.config,
                        n = this.getFromEnv("chartInstance"),
                        a = { height: r.height, width: r.width, pixelHeight: t.getFromEnv("chartWidth"), pixelWidth: t.getFromEnv("chartHeight"), id: n.id, renderer: n.args.renderer, container: n.options.containerElement, centerLabelText: e };
                    t.fireChartInstanceEvent("centerLabelChanged", a) }, r._centerLabelRollover = function(e) { var t = e.config,
                        r = e.getFromEnv("chartInstance"),
                        n = this.config,
                        a = { height: t.height, width: t.width, pixelHeight: e.getFromEnv("chartWidth"), pixelWidth: e.getFromEnv("chartHeight"), id: r.id, renderer: r.args.renderer, container: r.options.containerElement, centerLabelText: n && n.label };
                    this.getFromEnv("paper").attr("text") && e.fireChartInstanceEvent("centerLabelRollover", a, void 0, this.hoverOnCenterLabel.bind(this, e)) }, r._centerLabelRollout = function(e) { var t = e.config,
                        r = e.getFromEnv("chartInstance"),
                        n = this.config,
                        a = { height: t.height, width: t.width, pixelHeight: e.getFromEnv("chartWidth"), pixelWidth: e.getFromEnv("chartHeight"), id: r.id, renderer: r.args.renderer, container: r.options.containerElement, centerLabelText: n && n.label };
                    this.getFromEnv("paper").attr("text") && e.fireChartInstanceEvent("centerLabelRollout", a, void 0, this.hoverOffCenterLabel.bind(this, e)) }, r._centerLabelClick = function(e) { var t, r = e.config,
                        n = e.getFromEnv("chartInstance"),
                        a = { height: r.height, width: r.width, pixelHeight: e.getFromEnv("chartWidth"), pixelWidth: e.getFromEnv("chartHeight"), id: n.id, renderer: n.args.renderer, container: n.options.containerElement };
                    t = this.config, a.centerLabelText = t && t.label, this.getFromEnv("paper").attr("text") && e.fireChartInstanceEvent("centerLabelClick", a) }, r.hoverOnCenterLabel = function(e) { var t = e.getChildren("dataset")[0].config.lastCenterLabelConfig;
                    (t.hoverColor || t.hoverAlpha) && this.getGraphicalElement("centerLabel").attr({ fill: (0, o.toRaphaelColor)({ FCcolor: { color: t.hoverColor || t.color, alpha: t.hoverAlpha || t.alpha } }) }) }, r.hoverOffCenterLabel = function(e) { var t = e.getChildren("dataset")[0].config.lastCenterLabelConfig;
                    (t.hoverColor || t.hoverAlpha) && this.getGraphicalElement("centerLabel").attr({ fill: (0, o.toRaphaelColor)({ FCcolor: { color: t.color, alpha: t.alpha } }) }) }, t }(i.ComponentInterface);
            t["default"] = c }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { "initial.centerLabel.centerLabel.text.appearing": function(e) { if (e.attr) return [{ initialAttr: { x: e.attr.x, y: e.attr.y } }] } } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = r(215),
                i = n(r(373)),
                o = n(r(375)),
                s = { dragnode: !0, hlineargauge: !0, column3d: !0, mscolumn3d: !0, bar3d: !0, pareto3d: !0, msbar3d: !0, stackedcolumn3d: !0, stackedbar3d: !0, mscombi3d: !0, mscolumnline3d: !0, stackedcolumn3dline: !0, mscolumn3dlinedy: !0, stackedcolumn3dlinedy: !0, realtimearea: !0, realtimecolumn: !0, realtimeline: !0, realtimestackedarea: !0, realtimestackedcolumn: !0, angulargauge: !0, realtimelinedy: !0, kagi: !0, treemap: !0, heatmap: !0, boxandwhisker2d: !0, scatter: !0, timeseries: !0, bubble: !0, errorscatter: !0, sparkwinloss: !0, zoomscatter: !0, zoomline: !0, zoomlinedy: !0, chord: !0 },
                l = function(e) { if ("chartAPI" === e.sender.getType()) { var t = e.sender,
                            r = t.getFromEnv("chartInstance");
                        r.drawCrossline = function(e) { r.drawConsolidatedToolTip(e), t.iterateComponents((function(t) { "crossline-manager" === t.getType() && (e !== a.UNDEF ? t.show({ value: e }) : t.hide()) })) } } },
                c = function(e) { var t, r, n, a = e.sender.apiInstance.getChildren("canvas"); for (n = 0; n < a.length; n++)(t = (t = a[n].getChildren("crosslineManagerBand")) && t[0]) && (r = t._handlerAPI, t.config.axisScrolling = !0, r.onhoverout(e)) },
                u = function(e) { var t, r, n = e.sender.apiInstance.getChildren("canvas"); for (r = 0; r < n.length; r++)(t = n[r].getChildren("crosslineManagerBand")) && t[0] && (t[0].config.axisScrolling = !1) },
                d = function(e) { if ("canvas" === e.sender.getName()) { var t, r, n = e.sender;
                        n.registerFactory("crossLineManager", (function() { var l = e.sender.getFromEnv("chart"),
                                c = l && l.getName();
                            c && !s[c.toLowerCase()] && ((0, a.componentFactory)(n, o["default"], "crosslineManagerBand"), t = n.getChildren("crosslineManagerBand")[0], r = t._handlerAPI, t.configure(), (0, a.componentFactory)(t, i["default"], "crossline"), t.addExtEventListener("fc-mouseover", r.onhover, n), t.addExtEventListener("fc-mousemove", r.onhover, n), t.addExtEventListener("fc-mouseout", r.onhoverout, n)) })) } },
                f = { extension: function(e) { e.addEventListener("preconfigure", l), e.addEventListener("scrollstart", c), e.addEventListener("scrollend", u), e.addEventListener("instantiated", d) }, name: "crossline-manager", type: "extension", requiresFusionCharts: !0 };
            t["default"] = f }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = r(230),
                o = r(215),
                s = r(223),
                l = n(r(374)),
                c = function(e) {
                    function t() { var t; return t = e.call(this) || this, (0, s.addDep)({ name: "crosslineAnimation", type: "animationRule", extension: l["default"] }), t }(0, a["default"])(t, e); var r = t.prototype; return r.getName = function() { return "crossline" }, r.getType = function() { return "crossline" }, r.show = function(e) { void 0 === e && (e = {}); var t = !!e.onTop,
                            r = e.type;
                        t !== this.config.prevRenderedOnTop && this.hide(), !this[r] && (r = "band"), this[r](e), this.config.prevRenderedOnTop = t }, r.band = function(e) { void 0 === e && (e = {}); var t, r, n = e.managerId,
                            a = e.x1,
                            i = e.y1,
                            s = e.x2,
                            l = e.y2,
                            c = (0, o.toRaphaelColor)({ color: (0, o.pluck)(e.fillcolor, "#EEEEEE"), alpha: (0, o.pluckNumber)(e.alpha, 50) }),
                            u = this.getLinkedParent().getLinkedParent().getEffectiveDimensions(),
                            d = [u.left, u.top, u.width, u.height].toString(),
                            f = this.getLinkedParent().getChildContainer("crosslineBottom"),
                            h = this.getLinkedParent().getChildContainer("crosslineTop");
                        r = e.onTop ? h : f, (t = this.getGraphicalElement("crosslineBand" + n)) ? e.animDuration ? t.animate({ path: ["M", a, i, "L", s, l] }, e.animDuration, "ease-in") : t.attr({ path: ["M", a, i, "L", s, l], "clip-rect": d }) : this.addGraphicalElement("crosslineBand" + n, this.getFromEnv("paper").path({ path: ["M", a, i, "L", s, l], "clip-rect": d, stroke: c, fill: c, "stroke-width": e.thickness, "stroke-linecap": "butt" }, r)) }, r.hide = function() { for (var e = this.getGraphicalElement(), t = Object.keys(e), r = t.length - 1; r > -1; r--) e[t[r]].stop(o.UNDEF, !0, !0), e[t[r]].remove(), delete e[t[r]] }, t }(i.ComponentInterface);
            t["default"] = c }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { crossline: { crossline: { path: { updating: function(e) { return [{ initialAttr: { path: e.el.attr("path") }, finalAttr: { path: e.attr.path } }] } } } } } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = r(215),
                s = r(230),
                l = o.hasSVG ? 0 : .5,
                c = function(e, t, r) { return r.getFromEnv("animationManager").setAnimation({ el: "group", attr: { name: e }, container: t, state: "appearing", component: r, label: "group" }) },
                u = function(e) {
                    function t() { var t, r; return (t = e.call(this) || this)._handlerAPI = (r = (0, a["default"])(t), { onhover: function(e, t) {!r.config.axisScrolling && r.show(t.axes ? { axesInfo: t.axes } : { event: e }) }, onhoverout: function(e) { r.hide({ event: e }) } }), t.mouseOutTimer = o.UNDEF, t }(0, i["default"])(t, e); var r = t.prototype; return r.getAttachedAxisInfo = function(e) { void 0 === e && (e = {}); var t, r, n, a, i = this.getLinkedParent().getAxes(),
                            s = e.originalEvent && (0, o.getMouseCoordinate)(this.getLinkedParent().getFromEnv("chart-container"), e.originalEvent, this.getFromEnv("chart")),
                            l = s && s.chartX || 0,
                            c = s && s.chartY || 0; for (t = i.length - 1; t >= 0; t--)
                            if (r = i[t].axis, !i[t].isY) return n = !!r.config.isVertical, a = r.getTranslation(), { value: n ? r.getValue(c + a) : r.getValue(l + a), axis: r, isVertical: n, isY: !1 } }, r.configure = function() { var e = this.config,
                            t = this.getFromEnv("chartConfig"),
                            r = this.getFromEnv("chart-attrib");
                        e.drawCrossLine = (0, o.pluckNumber)(r.drawcrossline, t.drawcrossline, 0), e.bandStyle = { fillcolor: (0, o.pluck)(r.crosslinecolor, t.crosslinecolor, "#EEEEEE"), alpha: (0, o.pluckNumber)(r.crosslinealpha, t.crosslinealpha, 50), thickness: (0, o.pluckNumber)(t.defaultcrosslinethickness), managerId: this.getId(), onTop: (0, o.pluckNumber)(r.drawcrosslineontop, t.drawcrosslineontop, 0), cursor: "pointer", animDuration: (0, o.pluckNumber)(r.crosslineanimation, 0) && 1e3 * (0, o.pluckNumber)(r.crosslineanimationduration, .09) } }, r.createGroup = function() { var e = this.getLinkedParent().getChildContainer("crosslineBottom"),
                            t = this.getLinkedParent().getChildContainer("crosslineTop");!this.getChildContainer("crosslineTop") && this.addChildContainer("crosslineTop", c("crosslineTop", t, this)), !this.getChildContainer("crosslineBottom") && this.addChildContainer("crosslineBottom", c("crosslineBottom", e, this)) }, r.show = function(e) { void 0 === e && (e = {}); var t = e.event;
                        clearTimeout(this.mouseOutTimer), this.config.attachedCanvasAxisInfo = this.getAttachedAxisInfo(t), this._setAptAxesInfo(e.axesInfo, e.value), this._show(t) }, r._setAptAxesInfo = function(e, t) { void 0 === e && (e = []); var r, n, a = e.length,
                            i = this.config.attachedCanvasAxisInfo; if (e.length)
                            for (n = 0; n < a; n++)
                                if ((r = e[n]).axis === i.axis) { i.value = r.value; break } t !== o.UNDEF && (i.value = t) }, r._show = function(e) { var t, r, n, a, i, s, c = this.config,
                            u = this.getFromEnv("chartConfig"),
                            d = this.getChildren("crossline")[0],
                            f = c.attachedCanvasAxisInfo,
                            h = f.axis,
                            g = h.getLimit().max - h.config.endPad,
                            p = Math.round(f.value),
                            m = f.axis.getPixel(p) - f.axis.getTranslation(),
                            v = Object.assign({}, c.bandStyle),
                            b = this.getFromEnv("canvasConfig"),
                            y = b.canvasTop,
                            x = b.canvasLeft;
                        p < 0 || p > g || this.config.lastIndex !== p && c.drawCrossLine && ((n = v.thickness) === o.UNDEF && (!1 === u._hascolumn ? n = 1 : (t = h.getPixel(0), r = h.getPixel(1), n = Math.abs(r - t))), i = m, s = n, a = Math.round(i + (s % 2 / 2 + l)) - (s % 2 / 2 + l), this.createGroup(), v.thickness = n, v = f.isVertical ? Object.assign(v, { x1: x, y1: a, x2: x + b.canvasWidth, y2: a }) : Object.assign(v, { x1: a, y1: y, x2: a, y2: y + b.canvasHeight }), d.show(v), this.getFromEnv("chart").fireChartInstanceEvent("onChangeCrossLine", { currentIndex: p, lastIndex: this.config.lastIndex, source: e ? "mouse interaction" : "public API" }), this.config.lastIndex = p) }, r.hide = function(e) { var t = this;
                        void 0 === e && (e = {}); var r = this;
                        this.mouseOutTimer = setTimeout((function() { r.getFromEnv("chart").fireChartInstanceEvent("onChangeCrossLine", { lastIndex: r.config.lastIndex, source: e.event ? "mouse interaction" : "public API" }), delete t.config.lastIndex, t.getChildren("crossline")[0].hide() }), 20) }, r.getType = function() { return "crossline-manager" }, r.getName = function() { return "crossline-manager-band-category-axis" }, t }(s.ComponentInterface);
            t["default"] = u }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(232)),
                i = n(r(229)),
                o = r(230),
                s = r(215),
                l = { candlestick: !0 },
                c = function(e) { if (e.sender.getType && "chartAPI" === e.sender.getType() && l[e.sender.getName && e.sender.getName()]) { var t, r, n = e.sender;
                        n.registerFactory("multiCanvasCrossline", (function() {
                            (0, s.componentFactory)(n, u, "multiCanvasCrosslineManager"), t = n.getChildren("multiCanvasCrosslineManager")[0], r = t._handlers, n.iterateComponents((function(e) { "canvas" === e.getName() && (e.addEventListener("fc-mouseover", r.onhover), e.addEventListener("fc-mousemove", r.onhover), e.addEventListener("fc-mouseout", r.onhoverout)) })) }), ["canvas"]) } },
                u = function(e) {
                    function t() { var t, r; return (t = e.call(this) || this)._handlers = (r = (0, a["default"])(t), { onhover: function(e) { e.originalEvent && r.show(e) }, onhoverout: function(e) { e.originalEvent && r.hide(e) } }), t }(0, i["default"])(t, e); var r = t.prototype; return r.getAxesInfo = function(e, t) { void 0 === e && (e = {}); var r, n, a, i, o = t.getAxes(),
                            l = [],
                            c = (0, s.getMouseCoordinate)(this.getFromEnv("chart-container"), e.originalEvent, this.getFromEnv("chart")),
                            u = c.chartX || 0,
                            d = c.chartY || 0; for (r = o.length - 1; r >= 0; r--) n = o[r].axis, a = o[r].isY, i = !!n.config.isVertical, l.push({ value: i ? n.getValue(d) : n.getValue(u), axis: n, isVertical: i, isY: a }); return l }, r.getName = function() { return "multiCanvasCrosslineManager" }, r.getType = function() { return "multiCanvasCrosslineManager" }, r.show = function(e) { var t = this,
                            r = e.sender;
                        this.getFromEnv("chart").iterateComponents((function(n) { "canvas" === n.getName() && n !== r && n.fireEvent("fc-mousemove", { axes: t.getAxesInfo(e, r) }) })) }, r.hide = function(e) { var t = e.sender,
                            r = (0, s.getMouseCoordinate)(t.getFromEnv("chart-container"), e && e.originalEvent, t.getFromEnv("chart"));
                        t.isWithinCanvas(r.chartX, r.chartY) || this.getFromEnv("chart").iterateComponents((function(e) { "canvas" === e.getName() && e !== t && e.fireEvent("fc-mouseout") })) }, t }(o.ComponentInterface),
                d = { extension: function(e) { e.addEventListener("instantiated", c) }, name: "multi-canvas-crossline-manager", type: "extension", requiresFusionCharts: !0 };
            t["default"] = d }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(378)),
                i = r(385);
            t.getConfig = i.getConfig, t.setConfig = i.setConfig; var o = a["default"];
            t["default"] = o }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(379))["default"];
            t["default"] = a }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(380)),
                i = r(404),
                o = r(381),
                s = function() {
                    function e(e, t, r) { this.dataTables = {}, this._defaultDataTable = null, this._id = +new Date + "", e && t && e.constructor === Array && t.constructor === Array && this.createDataTable(e, t, r) } var t = e.prototype; return t.createDataTable = function(e, t, r, n) { if (!e || !t) throw new Error("Both data and schema must be provided to build DataTable"); if (e.constructor !== Array) throw new Error("Data must be provided in 2D array format or array of json objects"); if (t.constructor !== Array || 0 === t.length) throw new Error("Input schema is not in a correct format - schema must be an array of column configurations"); var i, s, l = {},
                            c = n; if (s = Object.keys(this.dataTables), c) { if (s.includes(c)) throw new Error("A table with the id " + c + " already exists in the DataStore. Please use a different id.") } else c = (0, o.createTableID)(s); return Object.assign(l, { enableIndex: !0, enableUTC: !1 }, r), i = new a["default"](this, (0, o.parseAndIndexData)(e, t, l), t, l, null, null, c), 0 === s.length && (this._defaultDataTable = i), this.dataTables[c] = i, i }, t.appendRows = function(e, t) { var r, n, a, i = this.getDataTable(t),
                            s = i.getSchema();
                        a = (0, o.buildDateColumnsFormatter)(s), n = (0, o.parseData)(e, s, a), (r = i._data).push.apply(r, n), (0, o.indexData)(i._data, s, i._config, a), i.flushResults(), this.trigger("itemsAdded", { rows: e, parsedRows: n, tableID: t }) }, t.deleteRows = function(e, t) { var r = this.getDataTable(t),
                            n = r.query(e),
                            a = n.getData().data,
                            i = r.indexOf("_row_id"),
                            o = n.indexOf("_row_id"),
                            s = a.map((function(e) { return e[o] }));
                        r._data = r._data.filter((function(e) { return !s.includes(e[i]) })), r.flushResults(), this.trigger("itemsRemoved", { rows: a, tableID: t }), n.dispose() }, t.getDataTable = function(e) { if (e) { if (!this.dataTables[e]) throw new Error("DataTable with id " + e + " is not found in the DataStore."); return this.dataTables[e] } return this._defaultDataTable }, t.on = function(e, t) {
                        (0, i.addHandler)(e, t, this) }, t.off = function(e, t) {
                        (0, i.removeHandler)(e, t, this) }, t.trigger = function(e, t) {
                        (0, i.triggerEvent)(e, this, t) }, t.dispose = function() { var e = this; for (var t in e.dataTables) e.dataTables.hasOwnProperty(t) && (e.dataTables[t].dispose(), delete e.dataTables[t]);
                        delete e._id, delete e.dataTables, delete e._defaultDataTable, this.trigger("disposed"), e = null }, t._propagate = function(e) { for (var t in this.trigger("payloadReceived", e), this.dataTables) this.dataTables.hasOwnProperty(t) && this.dataTables[t]._payloadReceiver(e) }, e }();
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = r(381),
                i = r(404),
                o = n(r(405)),
                s = function() {
                    function e(e, t, r, n, a, i, o) { this._dataStore = e, this._parentTable = a, this._children = [], this._childrenTableIDs = [], this._opsFunnel = i, this._data = t || [], this._schema = r, this._config = n, this._id = o; var s, l = 1; if (this._id || (s = this._parentTable && this._parentTable._id ? this._parentTable._id : "table_1", this._id = s + "_" + l), this._parentTable) { for (; this._parentTable._childrenTableIDs.includes(this._id);) this._id = s ? s + "_" + ++l : this._id + "_1";
                            this._parentTable._children.push(this), this._parentTable._childrenTableIDs.push(this._id) } this._result = null } var t = e.prototype; return t.count = function() { return this._executeFunnel().data.length }, t.getSchema = function() { return this._executeFunnel().schema }, t.getID = function() { return this._id }, t.getDataStore = function() { return this._dataStore }, t.getChildren = function(e) { if (e) { for (var t = 0; t < this._children.length; t++)
                                if (this._children[t]._id === e) return this._children[t]; return null } return this._children }, t.getData = function(e, t) { var r, n = e,
                            a = t; return n = n || 0, a = a && ("string" == typeof a || a instanceof String) || null === a ? void 0 : a, { data: (r = this._executeFunnel()).data && r.data.slice(n, a && a > 0 ? n + a : a), schema: r.schema } }, t.dispose = function() { var e = this; if (e._parentTable && e._parentTable._children) { var t; for (t = 0; t < e._parentTable._children.length && ("undefined" == typeof e._id || e._id !== e._parentTable._children[t]._id); t++);
                            t !== e._parentTable._children.length && e._parentTable._children.splice(t, 1) } delete e._dataStore, delete e._parentTable, delete e._opsFunnel, delete e._data, delete e._schema, delete e._config, delete e._result, delete e._id, e.disposeChildren(), delete e._children, delete e._childrenTableIDs, e._trigger("disposed"), delete e._evtHandlers, e.disposed = !0, e = null }, t.disposeChildren = function() { for (var e = (this._children && this._children.length || 0) - 1; e >= 0; e--) this._children[e].dispose();
                        this._children = [], this._childrenTableIDs = [] }, t.min = function(e) { var t = this.getData(); return (0, a.columnMinValue)(e, t.data, t.schema) }, t.max = function(e) { var t = this.getData(); return (0, a.columnMaxValue)(e, t.data, t.schema) }, t.unique = function(e) { var t = this.getData(); return (0, a.columnUnique)(e, t.data, t.schema) }, t.extents = function(e) { var t = this.getData(); return (0, a.columnExtents)(e, t.data, t.schema) }, t.addColumns = function() { for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r]; for (var n, a = t.length, i = [], s = 0; s < a; s++)(0, o["default"])(t[s]) && i.push(t[s]);
                        n = i.length, this._calcColumns = this._calcColumns || []; for (var l = 0; l < n; l++) { if (!i[l].name) throw new Error("name is required in column " + (l + 1)); if (i[l].calcFn && !(i[l].calcFn instanceof Function)) throw new Error("calcFn must be a function in column " + (l + 1));
                            i[l].calcFn || (i[l].calcFn = function() {}), this._calcColumns.push(Object.assign({}, i[l])) } this._trigger("updated", i) }, t.query = function(t) { var r = t; return r && r.constructor !== Array && (r = [r]), new e(this._dataStore, this._data, this._schema, this._config, this, r) }, t.indexOf = function(e) { var t = this._executeFunnel(); return (0, a.columnIndexOf)(e, t.schema) }, t.on = function(e, t) {
                        (0, i.addHandler)(e, t, this) }, t.off = function(e, t) {
                        (0, i.removeHandler)(e, t, this) }, t._trigger = function(e, t) {
                        (0, i.triggerEvent)(e, this, t) }, t._executeFunnel = function() { if (!this._result)
                            if (this._opsFunnel) { var e, t, r, n, i;
                                t = (e = this._parentTable._executeFunnel()).data.slice(0), r = e.schema.slice(0), n = Object.assign({}, e.config), i = this._opsFunnel.length; for (var o = 0; o < i; o++)
                                    if (this._opsFunnel[o] && this._opsFunnel[o].fn) { var s = this._opsFunnel[o].fn(t, r, n);
                                        t = s.generatorFn ? s.generatorFn() : s.data, r = s.schema, void 0 === (n = Object.assign(n, s.config)).indexBy && (n.enableIndex = !1) } this._result = { data: t, schema: r, config: n } } else this._result = { data: this._data, schema: this._schema, config: this._config }; if (this._calcColumns && this._calcColumns.length > 0) { var l = (0, a.addColumnsSchema)(this._result.schema, this._calcColumns);
                            this._result.schema = l.schema, this._result.data = (0, a.addColumnsData)(this._result.data, this._result.schema, l.calcColumns), delete this._calcColumns } return this._result }, t.flushResults = function() { var e = this._result && this._result.schema.length || 0,
                            t = this._children && this._children.length || 0;
                        e && (this._calcColumns = []); for (var r = 0; r < e; r++) this._result.schema[r].calcFn && this._calcColumns.push(this._result.schema[r]);
                        this._result && (this._result = null); for (var n = 0; n < t; n++) this._children[n].flushResults() }, t.propagate = function(e) { this.getDataStore()._propagate({ trigger: this, payload: e }) }, t._payloadReceiver = function(e) { var t = this._children && this._children.length || 0;
                        e && e.trigger && e.trigger !== this && this._trigger("payloadReceived", e); for (var r = 0; r < t; r++) this._children[r]._payloadReceiver(e) }, t.getMinDiff = function(e) { var t = this.getData(); return (0, a.columnMinDiff)(e, t.data, t.schema, this._config.indexBy) }, t.isUTCEnabled = function(e) { return (0, a.isUTCEnabled)(e, this.getSchema()) }, e }();
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.columnIndexOf = u, t.columnMinValue = function(e, t, r) { var n, i; if (null === (n = u(e, r)) || -1 === n) return null; if (t && t.length > 0) { var o;
                    i = Number.POSITIVE_INFINITY; for (var s = 0; s < t.length; s++) o = "interval" === r[n].type ? t[s][n] ? t[s][n].start : null : t[s][n], (0, a.isNumber)(o) && o < i && (i = o) } return i }, t.columnMaxValue = function(e, t, r) { var n, i; if (null === (n = u(e, r)) || -1 === n) return null; if (t && t.length > 0) { var o;
                    i = Number.NEGATIVE_INFINITY; for (var s = 0; s < t.length; s++) o = "interval" === r[n].type ? t[s][n] ? t[s][n].end : null : t[s][n], (0, a.isNumber)(o) && o > i && (i = o) } return i }, t.columnMinDiff = function(e, t, r, n) { var o, s, l = t,
                    c = t.length; if (null === (o = u(e, r)) || -1 === o) return null; if (r[o] && ["date", "number"].indexOf(r[o].type) < 0) throw new Error("Operation valid only on date or number columns");
                n && e === n || (l = t.slice(0)).sort((function(e, t) { return (0, i.numberComparator)(e[o], t[o]) })); if (l && c > 0) { var d, f, h;
                    s = Number.POSITIVE_INFINITY; for (var g = 0; g < l.length - 1 && (f = l[g][o], h = l[g + 1][o], (0, a.isNumber)(h) && (0, a.isNumber)(f)) && (d = h - f, 0 !== (s = (0, a.isNumber)(d) && d >= 0 && d < s ? d : s)); g++); } return s === Number.POSITIVE_INFINITY ? null : s }, t.columnExtents = function(e, t, r) { var n, i = Number.POSITIVE_INFINITY,
                    o = Number.NEGATIVE_INFINITY,
                    s = u(e, r); if (null === s || -1 === s) return null; if (t && t.length > 0)
                    for (var l = 0; l < t.length; l++) n = "interval" === r[s].type ? t[l][s] ? t[l][s].start : null : t[l][s], (0, a.isNumber)(n) && n < i && (i = n), n = "interval" === r[s].type ? t[l][s] ? t[l][s].end : null : t[l][s], (0, a.isNumber)(n) && n > o && (o = n); return { min: i, max: o } }, t.columnUnique = function(e, t, r) { var n, a = u(e, r),
                    i = []; if (null === a || -1 === a) return []; for (var o = 0; o < t.length; o++) i.push(t[o][a]); if (t && t.length > 0) return 1 === (n = Array.from(new Set(i))).length && "undefined" == typeof n[0] ? [] : n; return [] }, t.addColumnsSchema = function(e, t) { for (var r = t.length, n = e.slice(0), a = 0; a < r; a++) { var i = n.length;
                    t[a].originalName = t[a].name; for (var o = 0; o < i; o++) t[a].name === n[o].name && (t[a].i = t[a].i && ++t[a].i || 1, t[a].name = t[a].originalName + " " + t[a].i), t[a].type && -1 !== ["string", "number", "date"].indexOf(t[a].type) || (t[a].type = "string");
                    delete t[a].originalName, delete t[a].i, n.push({ name: t[a].name, type: t[a].type || "string" }), t[a].calcFn && (n[n.length - 1].calcFn = t[a].calcFn), t[a].format && (n[n.length - 1].format = t[a].format), t[a].enableUTC && (n[n.length - 1].enableUTC = t[a].enableUTC), t[a].columnIndex = n.length - 1 } return { schema: n, calcColumns: t } }, t.addColumnsData = function(e, t, r) { for (var n, a = e.length, i = r.length, o = t.length, s = {}, l = f(r), c = 0; c < o; c++) s[t[c].name] = c; for (var u = 0; u < a; u++)
                    for (var h = 0; h < i; h++) r[h].calcFn && (n = r[h].calcFn(e[u], s, u), n = d(r[h], n, l), e[u][r[h].columnIndex] = n); return e }, t.parseAndIndexData = function(e, t, r) { var n = f(t),
                    a = h(e, t, n); return g(a, t, r, n), a }, t.createTableID = function(e) { var t = e.length + 1; for (; e.includes("table-" + t);) t++; return "table-" + t }, t.buildDateColumnsFormatter = f, t.parseData = h, t.indexData = g, t.isUTCEnabled = function(e, t) { var r; if (null === (r = u(e, t)) || -1 === r || "date" !== t[r].type && "interval" !== t[r].type) return null; return void 0 !== t[r].enableUTC ? t[r].enableUTC : (0, s.getConfig)("enableUTC") }; var a = r(382),
                i = r(383),
                o = n(r(384)),
                s = r(385),
                l = n(r(386)),
                c = n(r(403));

            function u(e, t) { if (!t || !e) return null; for (var r = 0; r < t.length; r++)
                    if (t[r] && t[r].hasOwnProperty("name") && t[r].name === e) return r; return -1 }

            function d(e, t, r) { return void 0 !== r[e.name] && t ? r[e.name] ? +r[e.name].parse(t) : +new Date(t) : "number" === e.type ? (0, a.isNumber)(t) ? t : t ? parseFloat(t) : null : t }

            function f(e) { for (var t = {}, r = 0; r < e.length; r++) { if (!e[r].name) throw new Error("Input schema is not in a correct format - each column must have a name");
                    e[r].type && "date" === e[r].type && (t[e[r].name] = e[r].format ? (void 0 !== e[r].enableUTC ? e[r].enableUTC : (0, s.getConfig)("enableUTC")) ? l["default"].utcParser(e[r].format) : l["default"].parser(e[r].format) : null) } return t }

            function h(e, t, r) { var n = []; if (e.length > 0) { var a, i = r,
                        o = t.findIndex((function(e) { return "_row_id" === e.name }));
                    i || (i = f(t)), -1 === o && (o = t.push({ name: "_row_id", type: "string" }) - 1); for (var s = 0; s < e.length; s++) e[s][o] = (0, c["default"])(); try { for (var l, u, h, g = t.length, p = 0; p < e.length; p++) { if (l = [], (u = e[p]).constructor === Array)
                                for (h = Math.min(g, u.length), a = 0; a < h; a++) l[a] = d(t[a], u[a], i);
                            else { if ("object" != typeof u) continue; for (a = 0; a < g; a++) u[t[a].name] && (l[a] = d(t[a], u[t[a].name], i)) } n.push(l) } } catch (m) { throw new Error("Error while parsing the data - " + m) } } return n }

            function g(e, t, r, n) { if (r.enableIndex) { var a, s, l; if (!r.indexBy) {
                        (l = n) || (l = f(t)); var c = Object.keys(l); if (c.length > 0) r.indexBy = c[0];
                        else { for (a = 0; a < t.length; a++)
                                if (t[a].type && "number" === t[a].type) { r.indexBy = t[a].name; break } a === t.length && (r.indexBy = t[0].name) } } for (a = 0; a < t.length && (!t[a] || t[a].name !== r.indexBy); a++); if (a === t.length) throw new Error("Index column is not found in schema"); switch (t[a].type) {
                        case "number":
                        case "date":
                            s = i.numberComparator; break;
                        default:
                            s = i.stringComparator }(0, o["default"])(e, (function(e, t) { return s(e[a], t[a]) })) } } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.isNumber = void 0;
            t.isNumber = function(e) { return "number" == typeof e && !isNaN(e - e) } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.stringComparator = t.numberComparator = void 0; var n = r(382);
            t.stringComparator = function(e, t) { return null == e ? t === e ? 0 : 1 : (0, n.isNumber)(t) ? (0, n.isNumber)(e) ? e - t : -1 : e === t ? 0 : e < t ? -1 : 1 }, t.numberComparator = function(e, t) { return null == e ? t === e ? 0 : 1 : (0, n.isNumber)(t) ? e - t : isNaN(e) && isNaN(t) ? 0 : -1 } }, function(e, t, r) { "use strict";

            function n(e, t, r, n, a) { var i = r || 0,
                    o = n || e.length,
                    s = a || i + 1,
                    l = t; for (l || (l = function(e, t) { return e - t }), i === s && ++s; s < o; ++s) { var c = i,
                        u = s,
                        d = e[u];
                    do { var f = c + (u - c >> 1);
                        l(d, e[f]) < 0 ? u = f : c = f + 1 } while (c < u); for (var h = s; h > c; --h) e[h] = e[h - 1];
                    e[c] = d } } t.__esModule = !0, t.binaryInsertionSort = n, t.mergeSort = function c(e, t) { var r, n, a, i = t; if (e.constructor !== Array) throw new TypeError("Merge sort can only be applied on Array."); if (1 === e.length) return e;
                i || (i = function(e, t) { return e - t }); return r = Math.floor(e.length / 2), n = e.slice(0, r), a = e.slice(r),
                    function(e, t, r) { var n = [],
                            a = 0,
                            i = 0; for (; a < e.length && i < t.length;) r(e[a], t[i]) <= 0 ? (n.push(e[a]), a++) : (n.push(t[i]), i++); return n.concat(e.slice(a)).concat(t.slice(i)) }(c(n, i), c(a, i), i) }, t["default"] = void 0;

            function a(e, t, r, n) { var a = r + 1; if (a === n) return 1; if (t(e[a++], e[r]) < 0) { for (; a < n && t(e[a], e[a - 1]) < 0;) a++;! function(e, t, r) { var n = r,
                            a = t; for (--n; a < n;) { var i = e[a];
                            e[a++] = e[n], e[n--] = i } }(e, r, a) } else
                    for (; a < n && t(e[a], e[a - 1]) >= 0;) a++; return a - r }

            function i(e, t, r, n, a, i) { var o, s, l = 0,
                    c = 0,
                    u = 1; if (i(e, t[r + a]) > 0) { for (c = n - a; u < c && i(e, t[r + a + u]) > 0;) l = u, (u = 1 + (u << 1)) <= 0 && (u = c);
                    u > c && (u = c), l += a, u += a } else { for (c = a + 1; u < c && i(e, t[r + a - u]) <= 0;) l = u, (u = 1 + (u << 1)) <= 0 && (u = c);
                    u > c && (u = c), o = l, l = a - u, u = a - o } for (l++; l < u;) i(e, t[r + (s = l + (u - l >>> 1))]) > 0 ? l = s + 1 : u = s; return u }

            function o(e, t, r, n, a, i) { var o, s, l = 0,
                    c = 0,
                    u = 1; if (i(e, t[r + a]) < 0) { for (c = a + 1; u < c && i(e, t[r + a - u]) < 0;) l = u, (u = 1 + (u << 1)) <= 0 && (u = c);
                    u > c && (u = c), o = l, l = a - u, u = a - o } else { for (c = n - a; u < c && i(e, t[r + a + u]) >= 0;) l = u, (u = 1 + (u << 1)) <= 0 && (u = c);
                    u > c && (u = c), l += a, u += a } for (l++; l < u;) i(e, t[r + (s = l + (u - l >>> 1))]) < 0 ? u = s : l = s + 1; return u } var s = function() {
                function e(e, t) { this.arr = e, this.comparer = t, this.length = e.length, this.tmpStorageLen = this.length < 512 ? this.length >>> 1 : 256, this.tmp = new Array(this.tmpStorageLen), this.runBaseArr = new Array(40), this.runLenArr = new Array(40), this.minGallop = 7, this.stackSize = 0 } var t = e.prototype; return t.pushRun = function(e, t) { this.runBaseArr[this.stackSize] = e, this.runLenArr[this.stackSize] = t, this.stackSize++ }, t.mergeCollapse = function() { for (var e; this.stackSize > 1;) { if ((e = this.stackSize - 2) >= 1 && this.runLenArr[e - 1] <= this.runLenArr[e] + this.runLenArr[e + 1] || e >= 2 && this.runLenArr[e - 2] <= this.runLenArr[e] + this.runLenArr[e - 1]) this.runLenArr[e - 1] < this.runLenArr[e + 1] && e--;
                        else if (this.runLenArr[e] > this.runLenArr[e + 1]) break;
                        this.mergeAt(e) } }, t.mergeForceCollapse = function() { for (var e; this.stackSize > 1;)(e = this.stackSize - 2) > 0 && this.runLenArr[e - 1] < this.runLenArr[e + 1] && e--, this.mergeAt(e) }, t.mergeAt = function(e) { var t, r = this.comparer,
                        n = this.arr,
                        a = this.runBaseArr[e],
                        s = this.runLenArr[e],
                        l = this.runBaseArr[e + 1],
                        c = this.runLenArr[e + 1];
                    this.runLenArr[e] = s + c, e === this.stackSize - 3 && (this.runBaseArr[e + 1] = this.runBaseArr[e + 2], this.runLenArr[e + 1] = this.runLenArr[e + 2]), this.stackSize--, a += t = o(n[l], n, a, s, 0, r), 0 !== (s -= t) && 0 !== (c = i(n[a + s - 1], n, l, c, c - 1, r)) && (s <= c ? this.mergeLo(a, s, l, c) : this.mergeHi(a, s, l, c)) }, t.mergeLo = function(e, t, r, n) { var a, s, l, c, u = 0,
                        d = 0,
                        f = r,
                        h = e,
                        g = t,
                        p = n; for (u = 0; u < g; u++) this.tmp[u] = this.arr[e + u]; if (this.arr[h++] = this.arr[f++], 0 != --p)
                        if (1 !== g) { for (a = this.minGallop;;) { s = 0, l = 0, c = !1;
                                do { if (this.comparer(this.arr[f], this.tmp[d]) < 0) { if (this.arr[h++] = this.arr[f++], l++, s = 0, 0 == --p) { c = !0; break } } else if (this.arr[h++] = this.tmp[d++], s++, l = 0, 1 == --g) { c = !0; break } } while ((s | l) < a); if (c) break;
                                do { if (0 !== (s = o(this.arr[f], this.tmp, d, g, 0, this.comparer))) { for (u = 0; u < s; u++) this.arr[h + u] = this.tmp[d + u]; if (h += s, d += s, (g -= s) <= 1) { c = !0; break } } if (this.arr[h++] = this.arr[f++], 0 == --p) { c = !0; break } if (0 !== (l = i(this.tmp[d], this.arr, f, p, 0, this.comparer))) { for (u = 0; u < l; u++) this.arr[h + u] = this.arr[f + u]; if (h += l, f += l, 0 === (p -= l)) { c = !0; break } } if (this.arr[h++] = this.tmp[d++], 1 == --g) { c = !0; break } a-- } while (s >= 7 || l >= 7); if (c) break;
                                a < 0 && (a = 0), a += 2 } if (this.minGallop = a, a < 1 && (this.minGallop = 1), 1 === g) { for (u = 0; u < p; u++) this.arr[h + u] = this.arr[f + u];
                                this.arr[h + p] = this.tmp[d] } else
                                for (u = 0; u < g; u++) this.arr[h + u] = this.tmp[d + u] } else { for (u = 0; u < p; u++) this.arr[h + u] = this.arr[f + u];
                            this.arr[h + p] = this.tmp[d] } else
                        for (u = 0; u < g; u++) this.arr[h + u] = this.tmp[d + u] }, t.mergeHi = function(e, t, r, n) { var a, s, l, c, u = 0,
                        d = t,
                        f = n,
                        h = e + d - 1,
                        g = f - 1,
                        p = r + f - 1,
                        m = 0,
                        v = 0; for (u = 0; u < f; u++) this.tmp[u] = this.arr[r + u]; if (this.arr[p--] = this.arr[h--], 0 != --d)
                        if (1 !== f) { for (a = this.minGallop;;) { s = 0, l = 0, c = !1;
                                do { if (this.comparer(this.tmp[g], this.arr[h]) < 0) { if (this.arr[p--] = this.arr[h--], s++, l = 0, 0 == --d) { c = !0; break } } else if (this.arr[p--] = this.tmp[g--], l++, s = 0, 1 == --f) { c = !0; break } } while ((s | l) < a); if (c) break;
                                do { if (0 !== (s = d - o(this.tmp[g], this.arr, e, d, d - 1, this.comparer))) { for (d -= s, v = (p -= s) + 1, m = (h -= s) + 1, u = s - 1; u >= 0; u--) this.arr[v + u] = this.arr[m + u]; if (0 === d) { c = !0; break } } if (this.arr[p--] = this.tmp[g--], 1 == --f) { c = !0; break } if (0 !== (l = f - i(this.arr[h], this.tmp, 0, f, f - 1, this.comparer))) { for (f -= l, v = (p -= l) + 1, m = (g -= l) + 1, u = 0; u < l; u++) this.arr[v + u] = this.tmp[m + u]; if (f <= 1) { c = !0; break } } if (this.arr[p--] = this.arr[h--], 0 == --d) { c = !0; break } a-- } while (s >= 7 || l >= 7); if (c) break;
                                a < 0 && (a = 0), a += 2 } if (this.minGallop = a, a < 1 && (this.minGallop = 1), 1 === f) { for (v = (p -= d) + 1, m = (h -= d) + 1, u = d - 1; u >= 0; u--) this.arr[v + u] = this.arr[m + u];
                                this.arr[p] = this.tmp[g] } else
                                for (m = p - (f - 1), u = 0; u < f; u++) this.arr[m + u] = this.tmp[u] } else { for (v = (p -= d) + 1, m = (h -= d) + 1, u = d - 1; u >= 0; u--) this.arr[v + u] = this.arr[m + u];
                            this.arr[p] = this.tmp[g] } else
                        for (m = p - (f - 1), u = 0; u < f; u++) this.arr[m + u] = this.tmp[u] }, e }(); var l = function(e, t, r, i) { var o, l, c, u, d, f = r,
                    h = i,
                    g = t; if (e.constructor !== Array) throw new TypeError("Sorting can only be applied on arrays."); if (f = f || 0, g || (g = function(e, t) { return e - t }), !((o = (h = h || e.length) - f) < 2))
                    if (o < 64) n(e, g, f, h, f + (l = a(e, g, f, h)));
                    else { c = function(e) { for (var t = 0, r = e; r >= 64;) t |= 1 & r, r >>= 1; return r + t }(o), u = new s(e, g);
                        do {
                            (l = a(e, g, f, f + o)) < c && (n(e, g, f, f + (d = o <= c ? o : c), f + l), l = d), u.pushRun(f, l), u.mergeCollapse(), o -= l, f += l } while (0 !== o);
                        u.mergeForceCollapse() } };
            t["default"] = l }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.getConfig = function(e) { if (!e) throw new Error("configName is missing"); return n[e] }, t.setConfig = function(e, t) { if (!e) throw new Error("configName is missing");
                n[e] = t }; var n = { enableUTC: !1 } }, function(e, t, r) { "use strict"; var n = r(212),
                a = r(208);
            t.__esModule = !0, t["default"] = t.TimeConverter = void 0; var i = a(r(387)),
                o = n(r(389)),
                s = r(397),
                l = r(396),
                c = a(r(390)),
                u = a(r(398)),
                d = a(r(395)),
                f = a(r(400)),
                h = a(r(402)),
                g = /^\s*\d+/,
                p = /^\s*Q\d+/,
                m = /^%/,
                v = /[\\^$*+?|[\]().{}]/g,
                b = function(e, t, r) { var n = e < 0 ? "-" : "",
                        a = (n ? -e : e) + "",
                        i = a.length; return n + (i < r ? new Array(r - i + 1).join(t) + a : a) },
                y = function(e) { return e.replace(v, "\\$&") },
                x = function(e) { return new RegExp("^(?:" + e.map(y).join("|") + ")", "i") },
                w = function(e) { for (var t = {}, r = -1, n = e.length; ++r < n;) t[e[r].toLowerCase()] = r; return t },
                C = function(e, t, r) { var n = g.exec(t.slice(r, r + 1)); return n ? (e.w = +n[0], r + n[0].length) : -1 },
                _ = function(e, t, r) { var n = g.exec(t.slice(r, r + 1)); return n ? (e.u = +n[0], r + n[0].length) : -1 },
                k = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.U = +n[0], r + n[0].length) : -1 },
                S = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.V = +n[0], r + n[0].length) : -1 },
                E = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.W = +n[0], r + n[0].length) : -1 },
                A = function(e, t, r) { var n = p.exec(t.slice(r, r + 2)); return n ? (e.m = 3 * (n[0][1] - 1), r + n[0].length) : -1 },
                T = function(e, t, r) { var n = g.exec(t.slice(r, r + 4)); return n ? (e.y = +n[0], r + n[0].length) : -1 },
                M = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), r + n[0].length) : -1 },
                N = function(e, t, r) { var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r, r + 6)); return n ? (e.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), r + n[0].length) : -1 },
                D = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.m = n[0] - 1, r + n[0].length) : -1 },
                F = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.d = +n[0], r + n[0].length) : -1 },
                I = function(e, t, r) { var n = g.exec(t.slice(r, r + 3)); return n ? (e.m = 0, e.d = +n[0], r + n[0].length) : -1 },
                L = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.H = +n[0], r + n[0].length) : -1 },
                O = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.M = +n[0], r + n[0].length) : -1 },
                R = function(e, t, r) { var n = g.exec(t.slice(r, r + 2)); return n ? (e.S = +n[0], r + n[0].length) : -1 },
                P = function(e, t, r) { var n = g.exec(t.slice(r, r + 3)); return n ? (e.L = +n[0], r + n[0].length) : -1 },
                V = function(e, t, r) { var n = g.exec(t.slice(r, r + 6)); return n ? (e.L = Math.floor(n[0] / 1e3), r + n[0].length) : -1 },
                j = function(e, t, r) { var n = m.exec(t.slice(r, r + 1)); return n ? r + n[0].length : -1 },
                B = function(e, t, r) { var n = g.exec(t.slice(r)); return n ? (e.Q = +n[0], r + n[0].length) : -1 },
                H = function(e, t, r) { var n = g.exec(t.slice(r)); return n ? (e.Q = 1e3 * +n[0], r + n[0].length) : -1 },
                G = function(e, t) { return b(e.getDate(), t, 2) },
                z = function(e, t) { return b(e.getHours(), t, 2) },
                U = function(e, t) { return b(e.getHours() % 12 || 12, t, 2) },
                W = function(e, t) { return b(1 + c["default"].count(u["default"].floor(e), e), t, 3) },
                X = function(e, t) { return b(e.getMilliseconds(), t, 3) },
                $ = function(e, t) { return X(e, t) + "000" },
                Y = function(e, t) { return b(e.getMonth() + 1, t, 2) },
                q = function(e, t) { return b(e.getMinutes(), t, 2) },
                K = function(e, t) { return b(e.getSeconds(), t, 2) },
                J = function(e, t) { return "Q" + Math.ceil((e.getMonth() + 1) / 3) },
                Z = function(e) { var t = e.getDay(); return 0 === t ? 7 : t },
                Q = function(e, t) { return b(s.sunday.count(u["default"].floor(e), e), t, 2) },
                ee = function(e, t) { var r = e,
                        n = r.getDay(); return r = n >= 4 || 0 === n ? s.thursday.floor(r) : s.thursday.ceil(r), b(s.thursday.count(u["default"].floor(r), r) + (4 === u["default"].floor(r).getDay()), t, 2) },
                te = function(e) { return e.getDay() },
                re = function(e, t) { return b(s.monday.count(u["default"].floor(e), e), t, 2) },
                ne = function(e, t) { return b(e.getFullYear() % 100, t, 2) },
                ae = function(e, t) { return b(e.getFullYear() % 1e4, t, 4) },
                ie = function(e) { var t = e.getTimezoneOffset(); return (t > 0 ? "-" : (t *= -1, "+")) + b(t / 60 | 0, "0", 2) + b(t % 60, "0", 2) },
                oe = function(e, t) { return b(e.getUTCDate(), t, 2) },
                se = function(e, t) { return b(e.getUTCHours(), t, 2) },
                le = function(e, t) { return b(e.getUTCHours() % 12 || 12, t, 2) },
                ce = function(e, t) { return b(1 + d["default"].count(f["default"].floor(e), e), t, 3) },
                ue = function(e, t) { return b(e.getUTCMilliseconds(), t, 3) },
                de = function(e, t) { return ue(e, t) + "000" },
                fe = function(e, t) { return b(e.getUTCMonth() + 1, t, 2) },
                he = function(e, t) { return b(e.getUTCMinutes(), t, 2) },
                ge = function(e, t) { return b(e.getUTCSeconds(), t, 2) },
                pe = function(e, t) { return "Q" + Math.ceil((e.getUTCMonth() + 1) / 3) },
                me = function(e) { var t = e.getUTCDay(); return 0 === t ? 7 : t },
                ve = function(e, t) { return b(l.utcSunday.count(f["default"].floor(e), e), t, 2) },
                be = function(e, t) { var r = e,
                        n = r.getUTCDay(); return r = n >= 4 || 0 === n ? l.utcThursday.floor(r) : l.utcThursday.ceil(r), b(l.utcThursday.count(f["default"].floor(r), r) + (4 === f["default"].floor(r).getUTCDay()), t, 2) },
                ye = function(e) { return e.getUTCDay() },
                xe = function(e, t) { return b(l.utcMonday.count(f["default"].floor(e), e), t, 2) },
                we = function(e, t) { return b(e.getUTCFullYear() % 100, t, 2) },
                Ce = function(e, t) { return b(e.getUTCFullYear() % 1e4, t, 4) },
                _e = function() { return "+0000" },
                ke = function() { return "%" },
                Se = function(e) { return +e },
                Ee = function(e) { return Math.floor(+e / 1e3) },
                Ae = function() {
                    function e(e) { var t = this,
                            r = e.dateTime,
                            n = e.date,
                            a = e.time,
                            s = e.periods,
                            l = e.days,
                            c = e.shortDays,
                            u = e.months,
                            d = e.shortMonths,
                            f = x(s),
                            h = w(s),
                            g = x(l),
                            p = w(l),
                            m = x(c),
                            v = w(c),
                            b = x(u),
                            y = w(u),
                            Ae = x(d),
                            Te = w(d);
                        this._formats = { a: function(e) { return c[e.getDay()] }, A: function(e) { return l[e.getDay()] }, b: function(e) { return d[e.getMonth()] }, B: function(e) { return u[e.getMonth()] }, d: G, e: G, f: $, H: z, I: U, j: W, L: X, m: Y, M: q, p: function(e) { return s[+(e.getHours() >= 12)] }, q: J, Q: Se, s: Ee, S: K, u: Z, U: Q, V: ee, w: te, W: re, y: ne, Y: ae, Z: ie, "%": ke }, this._utcFormats = { a: function(e) { return c[e.getUTCDay()] }, A: function(e) { return l[e.getUTCDay()] }, b: function(e) { return d[e.getUTCMonth()] }, B: function(e) { return u[e.getUTCMonth()] }, d: oe, e: oe, f: de, H: se, I: le, j: ce, L: ue, m: fe, M: he, p: function(e) { return s[+(e.getUTCHours() >= 12)] }, q: pe, Q: Se, s: Ee, S: ge, u: me, U: ve, V: be, w: ye, W: xe, y: we, Y: Ce, Z: _e, "%": ke }, this._parses = { a: function(e, t, r) { var n = m.exec(t.slice(r)); return n ? (e.w = v[n[0].toLowerCase()], r + n[0].length) : -1 }, A: function(e, t, r) { var n = g.exec(t.slice(r)); return n ? (e.w = p[n[0].toLowerCase()], r + n[0].length) : -1 }, b: function(e, t, r) { var n = Ae.exec(t.slice(r)); return n ? (e.m = Te[n[0].toLowerCase()], r + n[0].length) : -1 }, B: function(e, t, r) { var n = b.exec(t.slice(r)); return n ? (e.m = y[n[0].toLowerCase()], r + n[0].length) : -1 }, c: null, d: F, e: F, f: V, H: L, I: L, j: I, L: P, m: D, M: O, p: function(e, t, r) { var n = f.exec(t.slice(r)); return n ? (e.p = h[n[0].toLowerCase()], r + n[0].length) : -1 }, Q: B, q: A, s: H, S: R, u: _, U: k, V: S, w: C, W: E, x: null, X: null, y: M, Y: T, Z: N, "%": j }, this._formats.x = function(e) { return new i["default"](n, t._formats).format(e) }, this._formats.X = function(e) { return new i["default"](a, t._formats).format(e) }, this._formats.c = function(e) { return new i["default"](r, t._formats).format(e) }, this._utcFormats.x = function(e) { return new i["default"](n, t._utcFormats).format(e) }, this._utcFormats.X = function(e) { return new i["default"](a, t._utcFormats).format(e) }, this._utcFormats.c = function(e) { return new i["default"](r, t._utcFormats).format(e) }, this._parses.c = function(e, n, a) { return new o["default"](r, t._parses).parseSpecifier(e, n, a) }, this._parses.x = function(e, r, a) { return new o["default"](n, t._parses).parseSpecifier(e, r, a) }, this._parses.X = function(e, r, n) { return new o["default"](a, t._parses).parseSpecifier(e, r, n) } } var t = e.prototype; return t.formatter = function(e) { return void 0 === e && (e = ""), new i["default"](e.toString(), this._formats) }, t.utcFormatter = function(e) { return void 0 === e && (e = ""), new i["default"](e.toString(), this._utcFormats) }, t.parser = function(e) { var t = e; return new o["default"](t += "", this._parses, (function(e) { if (e.y >= 0 && e.y < 100) { var t = new Date(-1, e.m, e.d, e.H, e.M, e.S, e.L); return t.setFullYear(e.y), t } return new Date(e.y, e.m, e.d, e.H, e.M, e.S, e.L) })) }, t.utcParser = function(e) { var t = e; return new o["default"](t += "", this._parses, o.utcDate) }, e }();
            t.TimeConverter = Ae; var Te = new Ae(h["default"]);
            t["default"] = Te }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(388)),
                i = function() {
                    function e(e, t) { this._specifier = e, this._formats = t } var t = e.prototype; return t.format = function(e) { var t, r, n, i = [],
                            o = e,
                            s = -1,
                            l = 0,
                            c = this._specifier,
                            u = c.length; for (o instanceof Date || (o = new Date(+o)); ++s < u;) 37 === c.charCodeAt(s) && (i.push(c.slice(l, s)), t = c.charAt(++s), r = a["default"][t], null == r ? r = "e" === t ? " " : "0" : t = c.charAt(++s), n = this._formats[t], n && (t = n(o, r)), i.push(t), l = s + 1); return i.push(c.slice(l, s)), i.join("") }, t.toString = function() { return this._specifier }, e }();
            t["default"] = i }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { "-": "", _: " ", 0: "0" } }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = t.utcDate = void 0; var a = n(r(388)),
                i = n(r(390)),
                o = n(r(395)),
                s = r(396),
                l = r(397),
                c = function(e) { return { y: e, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0 } },
                u = function(e) { if (e.y >= 0 && e.y < 100) { var t = new Date(Date.UTC(-1, e.m, e.d, e.H, e.M, e.S, e.L)); return t.setUTCFullYear(e.y), t } return new Date(Date.UTC(e.y, e.m, e.d, e.H, e.M, e.S, e.L)) };
            t.utcDate = u; var d = function() {
                function e(e, t, r) { this._specifier = e, this._parses = t, this._newDate = r } var t = e.prototype; return t.parseSpecifier = function(e, t, r) { for (var n, i, o = 0, s = this._specifier.length, l = t.length, c = r; o < s;) { if (c >= l) return -1; if (37 === (n = this._specifier.charCodeAt(o++))) { if (n = this._specifier.charAt(o++), !(i = this._parses[n in a["default"] ? this._specifier.charAt(o++) : n]) || (c = i(e, t, c)) < 0) return -1 } else if (n !== t.charCodeAt(c++)) return -1 } return c }, t.parse = function(e) { var t, r, n = c(1900),
                        a = e; if (a += "", this.parseSpecifier(n, a, 0) !== a.length) return null; if ("Q" in n) return new Date(n.Q); if ("p" in n && (n.H = n.H % 12 + 12 * n.p), "V" in n) { if (n.V < 1 || n.V > 53) return null; "w" in n || (n.w = 1), "Z" in n ? (r = (t = u(c(n.y))).getUTCDay(), t = r > 4 || 0 === r ? s.utcMonday.ceil(t) : s.utcMonday.floor(t), t = o["default"].offset(t, 7 * (n.V - 1)), n.y = t.getUTCFullYear(), n.m = t.getUTCMonth(), n.d = t.getUTCDate() + (n.w + 6) % 7) : (r = (t = this._newDate(c(n.y))).getDay(), t = r > 4 || 0 === r ? l.monday.ceil(t) : l.monday.floor(t), t = i["default"].offset(t, 7 * (n.V - 1)), n.y = t.getFullYear(), n.m = t.getMonth(), n.d = t.getDate() + (n.w + 6) % 7) } else("W" in n || "U" in n) && ("w" in n || (n.w = "u" in n ? n.u % 7 : "W" in n ? 1 : 0), r = "Z" in n ? u(c(n.y)).getUTCDay() : this._newDate(c(n.y)).getDay(), n.m = 0, n.d = "W" in n ? (n.w + 6) % 7 + 7 * n.W - (r + 5) % 7 : n.w + 7 * n.U - (r + 6) % 7); return "Z" in n ? (n.H += n.Z / 100 | 0, n.M += n.Z % 100, u(n)) : this._newDate(n) }, t.toString = function() { return this._specifier }, e }();
            t["default"] = d }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.dayObj = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "day", floor: function(e, t, r) { return new Date(Number((0, o.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            i = { date: new Date(Number(e)) },
                            s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + t))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t - e - (t.getTimezoneOffset() - e.getTimezoneOffset()) * i.durationMinute) / i.durationDay - Math.floor(a / i.durationDay) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setDate(1), s.setHours(0, 0, 0, 0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getDate() - n.getDate() - Math.floor(l / i.durationDay) } },
                l = new a["default"](s);
            t.dayObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = new Date,
                a = new Date,
                i = function(e) { return null == e },
                o = function() {
                    function e(e) { this._name = e.name, this._floori = e.floor, this._offseti = e.offset, this._count = e.count, this._field = e.field } var t = e.prototype; return t.name = function() { return this._name }, t.floor = function(e) { var t = new Date(Number(e)); return t = this._floori(t, this._clipDates, this._timeUniverse) }, t.setClipDates = function(e) { this._clipDates = e }, t.setTimeUniverse = function(e) { this._timeUniverse = e }, t.ceil = function(e) { var t = new Date(e - 1); return t = this._floori(t, this._clipDates, this._timeUniverse), t = this._offseti(t, 1, this._clipDates, this._timeUniverse), t = this._floori(t, this._clipDates, this._timeUniverse) }, t.round = function(e) { var t = this.floor(e),
                            r = this.ceil(e); return e - t < r - e ? t : r }, t.offset = function(e, t) { var r = new Date(Number(e)); return r = this._offseti(r, i(t) ? 1 : Math.floor(t), this._clipDates, this._timeUniverse) }, t.range = function(e, t, r) { var n, a = [],
                            o = this.ceil(e),
                            s = i(r) ? 1 : Math.floor(r); if (!(o < t && s > 0)) return a;
                        do { n = new Date(Number(o)), a.push(n), o = this._offseti(o, s, this._clipDates, this._timeUniverse), o = this._floori(o, this._clipDates, this._timeUniverse) } while (n < o && o < t); return a }, t.filter = function(t) { var r = this; return new e({ name: this.name(), floor: function(e) { var n = e; if (!Number.isNaN(Number(n)))
                                    for (; r._floori(n, r._clipDates, r._timeUniverse), !t(n);) n.setTime(n - 1); return Number(n) }, offset: function(e, n) { var a = n,
                                    i = e; if (!Number.isNaN(Number(i)))
                                    if (a < 0)
                                        for (; ++a <= 0;) { 0;
                                            do { i = r._offseti(i, -1, r._clipDates, r._timeUniverse) } while (!t(i)) } else
                                            for (; --a >= 0;)
                                                do { i = r._offseti(i, 1, r._clipDates, r._timeUniverse) } while (!t(i)); return Number(i) } }) }, t.count = function(e, t) { var r = 0; return this._count && (n.setTime(Number(e)), a.setTime(Number(t)), n = this._floori(n, this._clipDates, this._timeUniverse), a = this._floori(a, this._clipDates, this._timeUniverse), r = Math.floor(this._count(n, a, this._clipDates))), r }, t.every = function(e) { var t = this,
                            r = Math.floor(e); return this._count && Number.isFinite(r) && r > 0 ? r > 1 ? this.filter(this._field ? function(e) { return t._field(e, t._clipDates, t._timeUniverse) % r == 0 } : function(e) { return t.count(0, e) % r == 0 }) : this : null }, e }();
            t["default"] = o }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.durationYear = t.durationQuarter = t.durationMonth = t.durationWeek = t.durationDay = t.durationHour = t.durationMinute = t.durationSecond = void 0;
            t.durationYear = 31536e6, t.durationQuarter = 78894e5, t.durationMonth = 2592e6, t.durationWeek = 6048e5, t.durationDay = 864e5, t.durationHour = 36e5, t.durationMinute = 6e4, t.durationSecond = 1e3 }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.getClipArray = t.getClippedDatesWithin = t.getClampRangesAround = t.getValidDatesWithin = t.getFloor = t.clampDownDateWithinClip = t.clampUpDateWithinClip = void 0; var n = r(394),
                a = function(e) { return e.charAt(0).toUpperCase() + e.slice(1) },
                i = function(e, t, r, n) { if (n && Array.isArray(n) && n.length > 0) { if (Number(t) >= Number(n[1])) return n[1]; if (Number(t) <= Number(n[0])) return n[0] } if (!r || r.length <= 0) return t; var a = t,
                        i = r,
                        l = o(i, e, a); return s(a, l, i, n) },
                o = function(e, t, r) { var n = c(e, t, r),
                        a = []; return !e || e.length <= 0 ? a : a = u(n, a) },
                s = function(e, t, r, n) { var a, o = t,
                        s = l(r, e),
                        c = e,
                        d = 0; return (o = u(s, o)).length > 0 && o.forEach((function(e) { d += Number(e.to) - Number(e.from) })), a = new Date(Number(c.setTime(Number(c) + d))), Number(a) === Number(c) ? c : a = i(c, a, r, n) },
                l = function(e, t) { var r = Number(t),
                        i = e,
                        o = 0,
                        s = []; if (!e || e.length <= 0) return s; if (Array.isArray(i))
                        for (var l = 0; l < i.length; l++) { var c = i[l],
                                u = c.from,
                                d = c.to; if (o = d - u, c.hasOwnProperty("repeat")) { var f = Number(u),
                                    h = Number(d),
                                    g = n.DatetimeUnits[a(String(c.repeat.unit))].ms * c.repeat.multiplier,
                                    p = Math.floor((r - f) / g),
                                    m = p,
                                    v = void 0,
                                    b = void 0; if ("month" === String(c.repeat.unit).toLowerCase() ? (v = new Date(Number(new Date(f).setMonth(new Date(f).getMonth() + m))), b = new Date(Number(new Date(h).setMonth(new Date(h).getMonth() + m)))) : "year" === String(c.repeat.unit).toLowerCase() ? (v = new Date(Number(new Date(f).setFullYear(new Date(f).getFullYear() + m))), b = new Date(Number(new Date(h).setFullYear(new Date(h).getFullYear() + m)))) : (v = new Date(Number(f) + g * p), b = new Date(Number(v) + o)), p < 0) continue;
                                r >= v && r < b && s.push({ from: v, to: b }) } else u <= r && d > r && s.push(c) }
                    return s },
                c = function(e, t, r) { var i = +t,
                        o = +r,
                        s = e,
                        l = 0,
                        c = []; if (Array.isArray(s))
                        for (var u = 0; u < s.length; u++) { var d = s[u],
                                f = d.from,
                                h = d.to; if (l = h - f, d.hasOwnProperty("repeat")) { var g = Number(f),
                                    p = Number(h),
                                    m = n.DatetimeUnits[a(String(d.repeat.unit))].ms * d.repeat.multiplier,
                                    v = Math.floor((i - g) / m),
                                    b = v,
                                    y = void 0,
                                    x = void 0; if ("month" === String(d.repeat.unit).toLowerCase() ? (y = new Date(Number(new Date(g).setMonth(new Date(g).getMonth() + b))), x = new Date(Number(new Date(p).setMonth(new Date(p).getMonth() + b)))) : "year" === String(d.repeat.unit).toLowerCase() ? (y = new Date(Number(new Date(g).setFullYear(new Date(g).getFullYear() + b))), x = new Date(Number(new Date(p).setFullYear(new Date(p).getFullYear() + b)))) : (y = new Date(Number(g) + m * v), x = new Date(Number(y) + l)), v < 0) continue; for (; Number(y) < Number(o);) Number(y) > Number(i) && Number(x) <= Number(o) && c.push({ from: y, to: x }), b = Number(d.repeat.multiplier), y = +y, x = +x, "month" === String(d.repeat.unit).toLowerCase() ? (y = new Date(Number(new Date(y).setMonth(new Date(y).getMonth() + b))), x = new Date(Number(new Date(x).setMonth(new Date(x).getMonth() + b)))) : "year" === String(d.repeat.unit).toLowerCase() ? (y = new Date(Number(new Date(y).setFullYear(new Date(y).getFullYear() + b))), x = new Date(Number(new Date(x).setFullYear(new Date(x).getFullYear() + b)))) : (y = new Date(Number(y) + m), x = new Date(Number(x) + m)) } else f > i && h <= o && c.push(d) }
                    return c },
                u = function(e, t) { var r, n = e,
                        a = t; if (!e || e.length <= 0) return a; var i = function() { var e = n[r];
                        a.every((function(t) { return !(e.from >= t.from && e.to <= t.to) && (e.from <= t.from && e.to >= t.to ? t.entryEnabled = !1 : e.from >= t.from && e.from <= t.to && e.to >= t.to ? (e.from = t.from, t.entryEnabled = !1) : e.to >= t.from && e.to <= t.to && e.from <= t.from ? (e.to = t.to, t.entryEnabled = !1) : t.entryEnabled = !0, !0) })) && (e.entryEnabled = !0, a.push(e)) }; for (r = 0; r < n.length; r++) i(); return a = a.filter((function(e) { return !0 === e.entryEnabled })) },
                d = function(e, t, r, n) { if (n && Array.isArray(n) && n.length > 0) { if (Number(t) >= Number(n[1])) return n[1]; if (Number(t) <= Number(n[0])) return n[0] } if (!r || r.length <= 0) return t; var a = t,
                        i = r,
                        s = o(i, a, e); return f(a, s, i, n) },
                f = function(e, t, r, n) { var a, i = t,
                        o = l(r, e),
                        s = e,
                        c = 0; return (i = u(o, i)).length > 0 && i.forEach((function(e) { c += Number(e.to) - Number(e.from) })), a = new Date(Number(s.setTime(Number(s) - c))), Number(a) === Number(s) ? s : a = d(s, a, r, n) };
            t.getFloor = function h(e, t, r) { if (r && Array.isArray(r) && r.length > 0) { if (Number(e) >= Number(r[1])) return r[1]; if (Number(e) <= Number(r[0])) return r[0] } if (!t || t.length <= 0) return e; var n, a = e,
                    i = l(t, e),
                    o = []; return 0 === i.length ? a : (n = (o = u(i, o)).reduce((function(e, t) { return e.to > t.to ? +new Date(Number(e.to)) : +new Date(Number(t.to)) }), 0), Number(n) === Number(a) ? n : h(n, t, r)) }, t.clampUpDateWithinClip = d, t.getClipArray = u, t.getClippedDatesWithin = c, t.getClampRangesAround = l, t.getValidDatesWithin = o, t.clampDownDateWithinClip = i }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.Weekdays = t.DatetimeUnits = void 0; var n = r(392),
                a = { Millisecond: { name: "Millisecond", ms: 1 }, Second: { name: "Second", ms: n.durationSecond }, Minute: { name: "Minute", ms: n.durationMinute }, Hour: { name: "Hour", ms: n.durationHour }, Day: { name: "Day", ms: n.durationDay }, Week: { name: "Week", ms: n.durationWeek }, Month: { name: "Month", ms: n.durationMonth }, Quarter: { name: "Quarter", ms: n.durationQuarter }, Year: { name: "Year", ms: n.durationYear } };
            t.Weekdays = { Sunday: { name: "Sunday", id: 0 }, Monday: { name: "Monday", id: 1 }, Tuesday: { name: "Tuesday", id: 2 }, Wednesday: { name: "Wednesday", id: 3 }, Thursday: { name: "Thursday", id: 4 }, Friday: { name: "Friday", id: 5 }, Saturday: { name: "Saturday", id: 6 } }, t.DatetimeUnits = a }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.utcDayObj = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "day", floor: function(e, t, r) { return new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            i = { date: new Date(Number(e)) },
                            s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + t))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), t - e - Math.floor(a / i.durationDay) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setUTCDate(1), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getUTCDate() - n.getUTCDate() - Math.floor(l / i.durationDay) } },
                l = new a["default"](s);
            t.utcDayObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.utcWeekObj = t.utcSaturday = t.utcFriday = t.utcThursday = t.utcWednesday = t.utcTuesday = t.utcMonday = t.utcSunday = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "week", floor: function(e, t, r) { return e.setUTCDate(e.getUTCDate() - (e.getUTCDay() + 7 - 0) % 7), new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            i = { date: new Date(Number(e)) },
                            s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + 7 * t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + 7 * t))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), t - e - Math.floor(a / i.durationWeek) } },
                l = function(e, t) { return new a["default"]({ name: t, floor: function(t, r, n) { return t.setUTCDate(t.getUTCDate() - (t.getUTCDay() + 7 - e) % 7), new Date(Number((0, o.getFloor)(new Date(Number(t.setUTCHours(0, 0, 0, 0))), r, n))) }, offset: function(e, t, r, n) { var a = t > 0,
                                i = { date: new Date(Number(e)) },
                                s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + 7 * t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCDate(s.getUTCDate() + 7 * t))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                                a = 0,
                                s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), t - e - Math.floor(a / i.durationWeek) } }) },
                c = l(0, "week"),
                u = l(0, "sunday"),
                d = l(1, "monday"),
                f = l(2, "tuesday"),
                h = l(3, "wednesday"),
                g = l(4, "thursday"),
                p = l(5, "friday"),
                m = l(6, "saturday");
            t.utcSaturday = m, t.utcFriday = p, t.utcThursday = g, t.utcWednesday = h, t.utcTuesday = f, t.utcMonday = d, t.utcSunday = u, t.utcWeekObj = s; var v = c;
            t["default"] = v }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.weekObj = t.saturday = t.friday = t.thursday = t.wednesday = t.tuesday = t.monday = t.sunday = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "week", floor: function(e, t, r) { return e.setDate(e.getDate() - (e.getDay() + 7 - 0) % 7), new Date(Number((0, o.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            i = { date: new Date(Number(e)) },
                            s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + 7 * t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + 7 * t))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t - e - Math.floor(a / i.durationWeek) - (t.getTimezoneOffset() - e.getTimezoneOffset()) * i.durationMinute) / i.durationWeek } },
                l = function(e, t) { return new a["default"]({ name: t, floor: function(t, r, n) { return t.setDate(t.getDate() - (t.getDay() + 7 - e) % 7), new Date(Number((0, o.getFloor)(new Date(Number(t.setHours(0, 0, 0, 0))), r, n))) }, offset: function(e, t, r, n) { var a = t > 0,
                                i = { date: new Date(Number(e)) },
                                s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + 7 * t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setDate(s.getDate() + 7 * t))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                                a = 0,
                                s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t - e - Math.floor(a / i.durationWeek) - (t.getTimezoneOffset() - e.getTimezoneOffset()) * i.durationMinute) / i.durationWeek } }) },
                c = l(0, "week"),
                u = l(0, "sunday"),
                d = l(1, "monday"),
                f = l(2, "tuesday"),
                h = l(3, "wednesday"),
                g = l(4, "thursday"),
                p = l(5, "friday"),
                m = l(6, "saturday");
            t.saturday = m, t.friday = p, t.thursday = g, t.wednesday = h, t.tuesday = f, t.monday = d, t.sunday = u, t.weekObj = s; var v = c;
            t["default"] = v }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.yearObj = t["default"] = void 0; var a = n(r(399)),
                i = r(392),
                o = r(393),
                s = { name: "year", floor: function(e, t, r) { return e.setMonth(0, 1), new Date(Number((0, o.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            i = { date: new Date(Number(e)) },
                            s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setFullYear(s.getFullYear() + t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setFullYear(s.getFullYear() + t))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), t.getFullYear() - e.getFullYear() - Math.floor(a / i.durationYear) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setFullYear(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getFullYear() - n.getFullYear() - Math.floor(l / i.durationYear) } },
                l = new a["default"](s);
            t.yearObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(391)),
                o = r(393),
                s = function(e) {
                    function t() { return e.apply(this, arguments) || this } return (0, a["default"])(t, e), t.prototype.every = function(e) { var t = Math.floor(e); return this.count && Number.isFinite(t) && t > 0 ? new i["default"]({ name: "year", floor: function(e, r, n) { return e.setFullYear(Math.floor(e.getFullYear() / t) * t), e.setMonth(0, 1), new Date(Number((0, o.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0)))), r, "year", n)) }, offset: function(e, r, n, a) { var i = r > 0,
                                    s = { date: new Date(Number(e)) },
                                    l = new Date(Number(s.date)); return new Date(Number(i ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setFullYear(l.getFullYear() + r * t))), n, "year", a) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setFullYear(l.getFullYear() + r * t))), n, "year", a))) } }) : null }, t }(i["default"]);
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.utcYearObj = t["default"] = void 0; var a = n(r(401)),
                i = r(393),
                o = r(392),
                s = { name: "year", floor: function(e, t, r) { return e.setUTCMonth(0, 1), new Date(Number((0, i.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            o = { date: new Date(Number(e)) },
                            s = new Date(Number(JSON.parse(JSON.stringify(o)).date)); return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setUTCFullYear(s.getUTCFullYear() + t))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setUTCFullYear(s.getUTCFullYear() + t))), r, n))) }, count: function(e, t, r) { var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, i.getClampRangesAround)(r, t); return (n = (0, i.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), t.getUTCFullYear() - e.getUTCFullYear() - Math.floor(a / o.durationYear) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setUTCFullYear(0), n = (0, i.getFloor)(new Date(Number(s)), t, r), (0, i.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getUTCFullYear() - n.getUTCFullYear() - Math.floor(l / o.durationYear) } },
                l = new a["default"](s);
            t.utcYearObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(391)),
                o = r(393),
                s = function(e) {
                    function t() { return e.apply(this, arguments) || this } return (0, a["default"])(t, e), t.prototype.every = function(e) { var t = e; return isFinite(t = Math.floor(t)) && t > 0 ? new i["default"]({ name: "year", floor: function(e, r) { return e.setUTCFullYear(Math.floor(e.getUTCFullYear() / t) * t), e.setUTCMonth(0, 1), new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), r))) }, offset: function(e, r, n) { var a = r > 0,
                                    i = { date: new Date(Number(e)) },
                                    s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCFullYear(s.getUTCFullYear() + r * t))), n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCFullYear(s.getUTCFullYear() + r * t))), n))) } }) : null }, t }(i["default"]);
            t["default"] = s }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = { dateTime: "%x, %X", date: "%-m/%-d/%Y", time: "%-I:%M:%S %p", periods: ["AM", "PM"], days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] };
            t["default"] = n }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = 0,
                a = function(e) { return void 0 === e && (e = ""), e + "" + n++ };
            t["default"] = a }, function(e, t, r) { "use strict";

            function n(e, t) { if ("string" != typeof e) throw new Error("eventName must be a non-empty string"); if (!(t instanceof Object)) throw new Error("sender must be an object"); return t._evtHandlers && t._evtHandlers[e] || [] } t.__esModule = !0, t.addHandler = function a(e, t, r) { var n; if (t instanceof Array) { for (var i = [], o = t.length, s = 0; s < o; s += 1) i.push(a(e, t[s], r)); return i } if (!e || "string" != typeof e) throw new Error("eventName must be a non-empty string"); if ("function" != typeof t) throw new Error("handler must be a function"); if (!(r instanceof Object)) throw new Error("sender must be an object");
                r._evtHandlers = r._evtHandlers || {}, r._evtHandlers[e] && r._evtHandlers[e] instanceof Array || (r._evtHandlers[e] = []);
                n = r._evtHandlers[e].length; for (var l = 0; l < n; l++)
                    if (r._evtHandlers[e][l] === t) return !1; return r._evtHandlers[e].push(t), !0 }, t.getHanlders = n, t.removeHandler = function i(e, t, r) { var a, o; if (t instanceof Array) { for (var s = [], l = t.length, c = 0; c < l; c += 1) s.push(i(e, t[c], r)); return s } if (!e || "string" != typeof e) throw new Error("eventName must be a non-empty string"); if (t && "function" != typeof t) throw new Error("handler must be a function"); if (!(r instanceof Object)) throw new Error("sender must be an object"); if (!((a = n(e, r)) instanceof Array) || 0 === a.length) return; if (!t) return delete r._evtHandlers[e], !0;
                o = a.length; for (var u = 0; u < o; u++) a[u] === t && a.splice(u, 1); return !0 }, t.triggerEvent = function(e, t, r) { var a, i, o; if (!e || "string" != typeof e) throw new Error("eventName must be a non-empty string"); if (!(t instanceof Object)) throw new Error("sender must be an object"); if (a = n(e, t), o = { eventName: e, sender: t, data: r }, !(a instanceof Array) || 0 === a.length) return;
                i = a.length; for (var s = 0; s < i; s++) a[s](o); return !0 } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = function(e) { return null !== e && "object" == typeof e && !Array.isArray(e) } }, function(e, t, r) { "use strict";
            t.__esModule = !0; var n = r(407);
            t.between = n.between, t.equals = n.equals, t.less = n.less, t.lessEquals = n.lessEquals, t.greater = n.greater, t.greaterEquals = n.greaterEquals, t.filter = n.filter, t.select = n.select, t.groupBy = n.groupBy, t.pipe = n.pipe, t.sort = n.sort, t.pivot = n.pivot }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0; var a = r(408);
            t.indexColBetween = a.indexColBetween, t.between = a.between, t.indexColEquals = a.indexColEquals, t.equals = a.equals, t.indexColLess = a.indexColLess, t.less = a.less, t.indexColLessEquals = a.indexColLessEquals, t.lessEquals = a.lessEquals, t.indexColGreater = a.indexColGreater, t.greater = a.greater, t.indexColGreaterEquals = a.indexColGreaterEquals, t.greaterEquals = a.greaterEquals; var i = r(411);
            t.filter = i.filter, t.select = i.select; var o = n(r(412));
            t.groupBy = o["default"]; var s = n(r(431));
            t.pipe = s["default"]; var l = n(r(432));
            t.sort = l["default"]; var c = n(r(433));
            t.pivot = c["default"] }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.indexColBetween = s, t.between = function(e, t, r) { var n = t,
                    o = r; return { ops: "between", type: i.OperatorTypes.GenericFilter, _updateArgs: function(e, t) { n = e, o = t }, fn: function(t, r, i, l) { var c, u, d = t; if (l && (d = l.call()), (c = (0, a.columnIndexOf)(e, r)) >= 0) return u = h(r, c), i && i.indexBy === e ? s(c, n, o, u).fn(d, r, i) : { data: d, schema: r, config: i, generatorFn: function() { return d.filter((function(e) { return u(e, n) >= 0 && u(e, o) <= 0 })) } }; throw new Error("Column '" + e + "' is not found in the schema.") } } }, t.indexColEquals = l, t.equals = function(e, t) { var r = t; return { ops: "equals", type: i.OperatorTypes.GenericFilter, _updateArgs: function(e) { r = e }, fn: function(t, n, i, o) { var s, c, u = t; if (o && (u = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return c = h(n, s), i && i.indexBy === e ? l(s, r, c).fn(u, n, i) : { data: u, schema: n, config: i, generatorFn: function() { return u.filter((function(e) { return 0 === c(e, r) })) } }; throw new Error("Column '" + e + "' is not found in the schema.") } } }, t.indexColLess = c, t.less = function(e, t) { var r = t; return { ops: "less", type: i.OperatorTypes.GenericFilter, _updateArgs: function(e) { r = e }, fn: function(t, n, i, o) { var s, l, u = t; if (o && (u = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return l = h(n, s), i && i.indexBy === e ? c(s, r, l).fn(u, n, i) : { data: u, schema: n, config: i, generatorFn: function() { return u.filter((function(e) { return l(e, r) < 0 })) } }; throw new Error("Column '" + e + "' is not found in the schema.") } } }, t.indexColLessEquals = u, t.lessEquals = function(e, t) { var r = t; return { ops: "lessEquals", type: i.OperatorTypes.GenericFilter, _updateArgs: function(e) { r = e }, fn: function(t, n, i, o) { var s, l, c = t; if (o && (c = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return l = h(n, s), i && i.indexBy === e ? u(s, r, l).fn(c, n, i) : { data: c, schema: n, config: i, generatorFn: function() { return c.filter((function(e) { return l(e, r) <= 0 })) } }; throw new Error("Column '" + e + "' is not found in the schema.") } } }, t.indexColGreater = d, t.greater = function(e, t) { var r = t; return { ops: "greater", type: i.OperatorTypes.GenericFilter, _updateArgs: function(e) { r = e }, fn: function(t, n, i, o) { var s, l, c = t; if (o && (c = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return l = h(n, s), i && i.indexBy === e ? d(s, r, l).fn(c, n, i) : { data: c, schema: n, config: i, generatorFn: function() { return c.filter((function(e) { return null !== e[s] && "undefined" != typeof e[s] && l(e, r) > 0 })) } }; throw new Error("Column '" + e + "' is not found in the schema.") } } }, t.indexColGreaterEquals = f, t.greaterEquals = function(e, t) { var r = t; return { ops: "greaterEquals", type: i.OperatorTypes.GenericFilter, _updateArgs: function(e) { r = e }, fn: function(t, n, i, o) { var s, l, c = t; if (o && (c = o.call()), (s = (0, a.columnIndexOf)(e, n)) >= 0) return l = h(n, s), i && i.indexBy === e ? f(s, r, l).fn(c, n, i) : { data: c, schema: n, config: i, generatorFn: function() { return c.filter((function(e) { return null !== e[s] && "undefined" != typeof e[s] && l(e, r) >= 0 })) } }; throw new Error("Column '" + e + "' is not found in the schema.") } } }; var n = r(409),
                a = r(381),
                i = r(410),
                o = r(383);

            function s(e, t, r, a) { var s = t,
                    l = r,
                    c = a; return { ops: "indexColBetween", type: i.OperatorTypes.IndexOpsFilter, _updateArgs: function(e, t) { s = e, l = t }, fn: function(t, r, a, i) { var u, d, f, g = t; return i && (g = i.call()), c || (c = h(r, e)), f = "interval" === r[e].type ? function(t, r) { return (0, o.numberComparator)(t[e].end, r) } : c, u = (0, n.leftMostExactOrGreater)(s, g, c, 0, g.length), d = (0, n.rightMostExactOrLesser)(l, g, f, u, g.length), { data: g, schema: r, config: a, generatorFn: function() { return g.slice(u, d + 1) } } } } }

            function l(e, t, r) { var a = t,
                    o = r; return { ops: "indexColEquals", type: i.OperatorTypes.IndexOpsFilter, _updateArgs: function(e) { a = e }, fn: function(t, r, i, s) { var l, c, u = t; return s && (u = s.call()), o || (o = h(r, e)), (l = (0, n.leftMostExactOrGreater)(a, u, o, 0, u.length)) >= u.length || 0 !== o(u[l], a) ? { data: [], schema: r, config: i } : (c = (0, n.rightMostExactOrLesser)(a, u, o, l, u.length), { data: u, schema: r, config: i, generatorFn: function() { return u.slice(l, c + 1) } }) } } }

            function c(e, t, r) { var a = t,
                    o = r; return { ops: "indexColLess", type: i.OperatorTypes.IndexOpsFilter, _updateArgs: function(e) { a = e }, fn: function(t, r, i, s) { var l, c = t; return s && (c = s.call()), o || (o = h(r, e)), l = (0, n.leftMostExactOrGreater)(a, c, o, 0, c.length), { data: c, schema: r, config: i, generatorFn: function() { return c.slice(0, l) } } } } }

            function u(e, t, r) { var a = t,
                    o = r; return { ops: "indexColLessEquals", type: i.OperatorTypes.IndexOpsFilter, _updateArgs: function(e) { a = e }, fn: function(t, r, i, s) { var l, c = t; return s && (c = s.call()), o || (o = h(r, e)), l = (0, n.rightMostExactOrLesser)(a, c, o, 0, c.length), { data: c, schema: r, config: i, generatorFn: function() { return c.slice(0, l + 1) } } } } }

            function d(e, t, r) { var a = t,
                    o = r; return { ops: "indexColGreater", type: i.OperatorTypes.IndexOpsFilter, _updateArgs: function(e) { a = e }, fn: function(t, r, i, s) { var l, c, u = t; return s && (u = s.call()), o || (o = h(r, e)), l = (0, n.rightMostExactOrLesser)(a, u, o, 0, u.length), c = (0, n.leftMostExactOrGreater)(null, u, o, l, u.length), { data: u, schema: r, config: i, generatorFn: function() { return u.slice(l + 1, c) } } } } }

            function f(e, t, r) { var a = t,
                    o = r; return { ops: "indexColGreaterEquals", type: i.OperatorTypes.IndexOpsFilter, _updateArgs: function(e) { a = e }, fn: function(t, r, i, s) { var l, c, u = t; return s && (u = s.call()), o || (o = h(r, e)), l = (0, n.leftMostExactOrGreater)(a, u, o, 0, u.length), c = (0, n.leftMostExactOrGreater)(null, u, o, l, u.length), { data: u, schema: r, config: i, generatorFn: function() { return u.slice(l, c) } } } } } var h = function(e, t) { switch (e[t].type) {
                    case "interval":
                        return function(e, r) { return (0, o.numberComparator)(e[t].start, r) };
                    case "number":
                    case "date":
                        return function(e, r) { return (0, o.numberComparator)(e[t], r) };
                    default:
                        return function(e, r) { return (0, o.stringComparator)(String(e[t]).toLowerCase(), String(r).toLowerCase()) } } } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.leftMostExactOrGreater = function(e, t, r, n, a) { var i = n,
                    o = a; for (; i < o;) { var s = i + Math.floor((o - i) / 2);
                    r(t[s], e) < 0 ? i = s + 1 : o = s } return i }, t.rightMostExactOrLesser = function(e, t, r, n, a) { var i = n,
                    o = a; for (; i < o;) { var s = i + Math.floor((o - i) / 2);
                    r(t[s], e) > 0 ? o = s : i = s + 1 } return i - 1 } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.OperatorTypes = void 0;
            t.OperatorTypes = { IndexOpsFilter: 0, GenericFilter: 1, GroupBy: 2, Sort: 3, Select: 4 } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.select = function(e, t) { var r = e,
                    i = t; return r = r && r.constructor !== Array ? [r] : r, { ops: "select", type: n.OperatorTypes.Select, fn: function(e, t, n, o) { var s, l, c = [],
                            u = []; if (r)
                            if ((i = i || { exclude: !1 }).exclude)
                                for (s = 0; s < t.length; s++) r.includes(t[s].name) || (c.push(t[s]), u.push(s));
                            else
                                for (s = 0; s < r.length; s++)(l = (0, a.columnIndexOf)(r[s], t)) > -1 && !u.includes(l) && (c.push(t[l]), u.push(l));
                        else c = t; return { data: e, schema: c, config: n, generatorFn: function() { var t = u.length; if (t > 0) { var r, n, a, i = []; for (r = 0; r < e.length; r++) { for (a = [], n = 0; n < t; n++) a[n] = e[r][u[n]];
                                        i[r] = a } return i } return e.slice(0) } } } } }, t.filter = function(e) { var t = this; return { ops: "filter", type: n.OperatorTypes.GenericFilter, fn: function(r, n, a, i) { var o = r; return { data: o, schema: n, config: a, generatorFn: function() { i && (o = i.call()); for (var r = {}, a = 0; a < n.length; a++) r[n[a].name] = a; return o.filter((function(n) { return e.call(t, n, r) })) } } } } }; var n = r(410),
                a = r(381) }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t._singleSortedAddRow = g, t._singleSortedAddRowDate = p, t["default"] = void 0; var a = r(381),
                i = r(413),
                o = r(427),
                s = r(428),
                l = n(r(429)),
                c = r(385),
                u = r(410),
                d = r(409),
                f = r(383);

            function h(e, t, r, n) { var a, i, o, s, c, u = [],
                    d = t,
                    f = r,
                    h = d.length,
                    g = f.length; for (d = d instanceof Array ? d : [d], f = f instanceof Array ? f : [f], o = 0; o < h; o++) a = n(d[o].column, e), c = { name: d[o].outputAs || d[o].column, type: "date" === a.type ? "interval" : a.type }, void 0 !== a.enableUTC && (c.enableUTC = a.enableUTC), u.push(c); for (o = 0; o < g; o++) { if (s = f[o].operation || "avg", a = n(f[o].column, e), !l["default"].resolve(s)) throw new Error(s + " is not a defined operation"); switch (s) {
                        case "first":
                        case "last":
                            i = a.type; break;
                        case "count":
                            i = "number"; break;
                        default:
                            if ("number" !== a.type) throw new Error(s + " can apply only on numbers");
                            i = "number" } u.push({ name: f[o].outputAs || f[o].column + (s ? " - " + s : ""), type: i }) } return u }

            function g(e, t, r) { var n = t; return n && r === n[0] || (n = [r], e.push(n)), n }

            function p(e, t, r, n, a) { var o = t; if (r >= o[0].end) { var l; switch (n.duration.Unit) {
                        case "Month":
                        case "Quarter":
                        case "Year":
                            l = (0, i.getDateStart)(r, n.duration, n.enableUTC, n.weekStartFrom, a); break;
                        default:
                            l = r - (r - a) % n.duration.ms } o = [(0, s.interval)(l, n)], e.push(o) } return o }

            function m() { var e = {}; return function(t, r, n) { if (!e[t]) { var i = (0, a.columnIndexOf)(t, r),
                            o = r[i]; if (void 0 === o) throw new Error("incorrect column name in config - " + t);
                        e[t] = o, e[t].column = t, e[t].index = i, "date" === o.type && n && (e[t].peaks = (0, a.columnExtents)(t, n, r)) } return e[t] } }

            function v(e, t, r, n, a, o, l, c, u, d) { var f, h, g, p, m = "",
                    v = [],
                    y = r.length,
                    x = c; if (e.length > 0) { for (f = 0; f < y; f++)
                        if ("date" === (h = a(r[f].column, t)).type) { if (o[f].startValFloorVal > e[h.index]) return x; switch (r[f].timeUnit.name) {
                                case "Month":
                                case "Quarter":
                                case "Year":
                                    o[f].value = (0, i.getDateStart)(e[h.index], o[f].intervalConfig.duration, o[f].intervalConfig.enableUTC, o[f].intervalConfig.weekStartFrom, o[f].startValFloorVal); break;
                                default:
                                    o[f].value = e[h.index] - (e[h.index] - o[f].startValFloorVal) % o[f].intervalConfig.duration.ms } m += o[f].value + "-" } else v[f] = e[h.index], m += e[h.index] + "-"; if (l[m = m.slice(0, -1)] >= 0) v = u[l[m]], g = l[m];
                    else { for (var w in l[m] = x++, o) p = (0, s.interval)(o[w].value, o[w].intervalConfig), v[w] = p;
                        u.push(v), g = u.length - 1 } return d[g] = d[g] || {}, v && b(e, t, v, y, n, a, d[g]), x } }

            function b(e, t, r, n, a, i, o) { var s, c, u, d, f = a.length; for (d = 0; d < f; d++)
                    if (void 0 !== e[(s = i(a[d].column, t)).index] && null !== e[s.index]) { switch (c = a[d].operation || "avg") {
                            case "sum":
                            case "min":
                            case "max":
                            case "first":
                            case "last":
                                u = null; break;
                            default:
                                u = o[d] = o[d] && o[d] + 1 || 1 } r[n + d] = "count" === c ? u : l["default"].resolve(c)(void 0 !== r[n + d] ? r[n + d] : null, e[s.index], u) } } var y = function(e, t) { var r = e,
                    n = t; return { ops: "groupBy", type: u.OperatorTypes.GroupBy, _updateArgs: function(e, t) { r = e, n = t }, fn: function(e, t, l, u) { var y = e; if (u && (y = u.call()), !r || 0 === r.length) throw new Error("groupConfigArray cannot be empty"); if (!n || 0 === n.length) throw new Error("aggrConfigArray cannot be empty"); return !(r instanceof Array) && r instanceof Object && (r = [r]), !(n instanceof Array) && n instanceof Object && (n = [n]), 1 === r.length && l && r[0].column === l.indexBy ? function(e, t, r, n, l) { var u, v, y, x, w, C, _, k, S, E = [],
                                A = e.length,
                                T = 0,
                                M = m(),
                                N = []; if ((v = M(n.column, t)).outputAs = n.outputAs, u = h(t, [v], l, M), A > 0) { if (k = v.enableUTC || (0, c.getConfig)("enableUTC"), "date" === v.type) { var D, F, I; if (x = (0, o.duration)(n.timeUnit, Math.abs(n.binSize) || 1), e[0] && e[0][v.index] && e[A - 1] && e[A - 1][v.index] || (D = (0, a.columnExtents)(n.column, e, t, r.indexBy)), F = e[0] && e[0][v.index] || D.min, I = n.startValue && parseInt(n.startValue, 10))
                                        if (I >= F) { w = (0, i.getDateStart)(I, (0, o.duration)(n.timeUnit, 1), k, n.weekStartFrom), T = (0, d.leftMostExactOrGreater)(w, e, (function(e, t) { return (0, f.numberComparator)(e[v.index], t) }), 0, e.length) } else w = (0, i.getDateStart)(F, x, k, n.weekStartFrom, I);
                                    else w = (0, i.getDateStart)(F, (0, o.duration)(n.timeUnit, 1), k, n.weekStartFrom);
                                    y = e[A - 1] && e[A - 1][v.index] || D.max } if (void 0 === w || w <= y) { var L = { duration: x, outputFormat: n.outputFormat, enableUTC: k, weekStartFrom: n.weekStartFrom }; for (void 0 !== w && (C = [(0, s.interval)(w, L)], E.push(C)), S = T; S < A; S++) e[S].length > 0 && ("date" === v.type ? C = p(E, C, e[S][v.index], L, w) : "string" !== v.type && "number" !== v.type || (C = g(E, C, e[S][v.index])), _ = E.length - 1, N[_] = N[_] || {}, C && b(e[S], t, C, 1, l, M, N[_])) } } return { data: E, schema: u, config: { indexBy: n.outputAs || n.column } } }(y, t, l, r[0], n) : function(e, t, r, n, a) { var s, l, u, d, f, g = [],
                                p = [],
                                b = !0,
                                y = e.length,
                                x = n.length,
                                w = {},
                                C = [],
                                _ = m(),
                                k = {},
                                S = 0; for (f = 0; f < x; f++)(l = _(n[f].column, t, e)).outputAs = n[f].outputAs, "date" === l.type && (w[f] || (n[f].startValue >= l.peaks.max && (b = !1), w[f] = Object.assign({}, l), w[f].intervalConfig = { duration: (0, o.duration)(n[f].timeUnit, Math.abs(n[f].binSize) || 1), outputFormat: n[f].outputFormat, enableUTC: l.enableUTC || (0, c.getConfig)("enableUTC"), weekStartFrom: n[f].weekStartFrom }, u = parseInt(n[f].startValue, 10) || l.peaks.min, w[f].startValFloorVal = u && (0, i.getDateStart)(u, (0, o.duration)(n[f].timeUnit, 1), w[f].intervalConfig.enableUTC, w[f].intervalConfig.weekStartFrom, parseInt(n[f].startValue, 10)), w[f].max = l.peaks.max)), p[f] = l, d || n[f].column !== r.indexBy || (d = n[f].outputAs || n[f].column); if (s = h(t, p, a, _), b && y > 0)
                                for (f = 0; f < y; f++) S = v(e[f], t, n, a, _, w, k, S, g, C); return { data: g, schema: s, config: { indexBy: d } } }(y, t, l, r, n) } } };
            t["default"] = y }, function(e, t, r) { "use strict"; var n = r(208),
                a = r(212);
            t.__esModule = !0, t.getDefaultOutputFormat = function(e) { switch (e) {
                    case "Millisecond":
                    case "Second":
                    case "Minute":
                    case "Hour":
                    case "Day":
                    case "Month":
                    case "Year":
                        return c[e];
                    case "Week":
                        return c.Day;
                    case "Quarter":
                        return c.Month } }, t.dateIntervalToString = function() { var e, t = this.config; switch (e = "undefined" != typeof t.enableUTC && t.enableUTC ? l["default"].utcFormatter(t.outputFormat) : l["default"].formatter(t.outputFormat), t.duration.Unit) {
                    case "Millisecond":
                    case "Second":
                    case "Minute":
                    case "Hour":
                    case "Day":
                    case "Month":
                    case "Year":
                        return e.format(new Date(this.start)) + (t.duration.number > 1 ? " - " + e.format(new Date(this.end - 1)) : "");
                    case "Week":
                    case "Quarter":
                        return e.format(new Date(this.start)) + " - " + e.format(new Date(this.end - 1)) } }, t.dateRangeCaclulator = function(e, t, r, n, a) { void 0 === a && (a = !1); var i, o, s;
                i = e, a && ((s = Object.assign({}, t)).number = 1, i = f(i, s, r, n)); return o = h(i, t.Unit, t.number, r, n), { startDate: i, endDate: o } }, t.getDateStart = f, t.getDateOffset = h; var i = a(r(414)),
                o = a(r(422)),
                s = r(394),
                l = n(r(386)),
                c = { Year: "%Y", Month: "%b %Y", Day: "%b %d, %Y", Hour: "%b %d, %Y %H hrs", Minute: "%b %d, %Y %H:%M", Second: "%b %d, %Y %H:%M:%S", Millisecond: "%b %d, %Y %H:%M:%S:%L" },
                u = { Millisecond: i.timeMillisecond, Second: i.timeSecond, Minute: i.timeMinute, Hour: i.timeHour, Day: i.timeDay, Week: { 0: i.timeSunday, 1: i.timeMonday, 2: i.timeTuesday, 3: i.timeWednesday, 4: i.timeThursday, 5: i.timeFriday, 6: i.timeSaturday }, Month: i.timeMonth, Quarter: i.timeQuarter, Year: i.timeYear },
                d = { Millisecond: o.utcMillisecond, Second: o.utcSecond, Minute: o.utcMinute, Hour: o.utcHour, Day: o.utcDay, Week: { 0: o.utcSunday, 1: o.utcMonday, 2: o.utcTuesday, 3: o.utcWednesday, 4: o.utcThursday, 5: o.utcFriday, 6: o.utcSaturday }, Month: o.utcMonth, Quarter: o.utcQuarter, Year: o.utcYear };

            function f(e, t, r, n, a) { var i, o = void 0 !== r && r ? d[t.Unit] : u[t.Unit],
                    l = n; if (l && !s.Weekdays[l.name]) throw new Error("Invalid weekStartFrom provided: " + l); return 1 === t.number ? "Week" === t.Unit ? +o[(l = l || s.Weekdays.Sunday).id].floor(new Date(e)) : +o.floor(new Date(e)) : a ? "Week" === t.Unit ? (i = o[(l = l || s.Weekdays.Sunday).id].count(a, e) % t.number) ? h(+o[l.id].floor(e), t.Unit, -i, r, l) : +o[l.id].floor(e) : (i = o.count(a, e) % t.number) ? h(+o.floor(e), t.Unit, -i, r, l) : +o.floor(e) : "Week" === t.Unit ? +o[(l = l || s.Weekdays.Sunday).id].every(t.number).floor(new Date(e)) : +o.every(t.number).floor(new Date(e)) }

            function h(e, t, r, n, a) { switch (t) {
                    case "Month":
                    case "Quarter":
                    case "Year":
                        return +(void 0 !== n && n ? d[t] : u[t]).offset(new Date(e), r);
                    default:
                        return e + s.DatetimeUnits[t].ms * r } } }, function(e, t, r) { "use strict"; var n = r(212);
            t.__esModule = !0; var a = n(r(415));
            t.timeMillisecond = a["default"], t.millisecondObj = a.millisecondObj; var i = n(r(417));
            t.timeSecond = i["default"], t.secondObj = i.secondObj; var o = n(r(418));
            t.timeMinute = o["default"], t.minuteObj = o.minuteObj; var s = n(r(419));
            t.timeHour = s["default"], t.hourObj = s.hourObj; var l = n(r(390));
            t.timeDay = l["default"], t.dayObj = l.dayObj; var c = n(r(397));
            t.timeWeek = c["default"], t.timeSunday = c.sunday, t.timeMonday = c.monday, t.timeTuesday = c.tuesday, t.timeWednesday = c.wednesday, t.timeThursday = c.thursday, t.timeFriday = c.friday, t.timeSaturday = c.saturday, t.weekObj = c.weekObj; var u = n(r(420));
            t.timeQuarter = u["default"], t.quarterObj = u.quarterObj; var d = n(r(421));
            t.timeMonth = d["default"], t.monthObj = d.monthObj; var f = n(r(398));
            t.timeYear = f["default"], t.yearObj = f.yearObj }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.millisecondObj = t["default"] = void 0; var a = n(r(416)),
                i = r(393),
                o = { name: "millisecond", floor: function(e) { return e }, offset: function(e, t, r, n) { var a = t > 0,
                            o = { date: new Date(Number(e)) },
                            s = new Date(Number(o.date)); return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setTime(Number(s) + Number(t)))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setTime(Number(s) + Number(t)))), r, n))) }, count: function(e, t, r) { var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            o = (0, i.getClampRangesAround)(r, t); return (n = (0, i.getClipArray)(o, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), t - e - a } },
                s = new a["default"](o);
            t.millisecondObj = o; var l = s;
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(229)),
                i = n(r(391)),
                o = r(393),
                s = function(e) {
                    function t() { return e.apply(this, arguments) || this } return (0, a["default"])(t, e), t.prototype.every = function(e) { var t = Math.floor(e); return this.count && Number.isFinite(t) && t > 0 ? t > 1 ? new i["default"]({ name: "millisecond", floor: function(e, r, n) { return new Date(Number((0, o.getFloor)(new Date(Number(e.setTime(Math.floor(e / t) * t))), r, n))) }, offset: function(e, r, n, a) { var i = r > 0,
                                    s = { date: new Date(Number(e)) },
                                    l = new Date(Number(s.date)); return new Date(Number(i ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + r * t))), n, a) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + r * t))), n, a))) }, count: function(e, r, n) { var a = (0, o.getValidDatesWithin)(n, e, r),
                                    i = 0,
                                    s = (0, o.getClampRangesAround)(n, r); return (a = (0, o.getClipArray)(s, a)).forEach((function(e) { i += Number(e.to) - Number(e.from) })), r - e - Math.floor(i / t) } }) : this : null }, t }(i["default"]);
            t["default"] = s }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.secondObj = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "second", floor: function(e, t, r) { return new Date(Number((0, o.getFloor)(new Date(Number(e.setTime(Math.floor(e / i.durationSecond) * i.durationSecond))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            s = { date: new Date(Number(e)) },
                            l = new Date(Number(s.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationSecond))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationSecond))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t - e) / i.durationSecond - Math.floor(a / i.durationSecond) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setUTCSeconds(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getUTCSeconds() - n.getUTCSeconds() - l / i.durationSecond } },
                l = new a["default"](s);
            t.secondObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.minuteObj = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "minute", floor: function(e, t, r) { return new Date(Number((0, o.getFloor)(new Date(Number(e.setTime(Math.floor(e / i.durationMinute) * i.durationMinute))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            s = { date: new Date(Number(e)) },
                            l = new Date(Number(s.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationMinute))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationMinute))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t - e) / i.durationMinute - Math.floor(a / i.durationMinute) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setMinutes(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getMinutes() - n.getMinutes() - Math.floor(l / i.durationMinute) } },
                l = new a["default"](s);
            t.minuteObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.hourObj = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "hour", floor: function(e, t, r) { var n = e.getTimezoneOffset() * i.durationMinute % i.durationHour; return n < 0 && (n += i.durationHour), new Date(Number((0, o.getFloor)(new Date(Number(e.setTime(Math.floor((Number(e) - n) / i.durationHour) * i.durationHour + n))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            s = { date: new Date(Number(e)) },
                            l = new Date(Number(s.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationHour))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationHour))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t - e) / i.durationHour - Math.floor(a / i.durationHour) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setHours(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getHours() - n.getHours() - l / i.durationHour } },
                l = new a["default"](s);
            t.hourObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.quarterObj = t["default"] = void 0; var a = n(r(391)),
                i = r(393),
                o = r(392),
                s = { name: "quarter", floor: function(e, t, r) { return e.setMonth(e.getMonth() - (e.getMonth() + 3) % 3, 1), new Date(Number((0, i.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            o = { date: new Date(Number(e)) },
                            s = new Date(Number(o.date)); return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setMonth(s.getMonth() + 3 * t))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setMonth(s.getMonth() + 3 * t))), r, n))) }, count: function(e, t, r) { var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, i.getClampRangesAround)(r, t); return (n = (0, i.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t.getMonth() - (t.getMonth() + 3) % 3 - (e.getMonth() - (e.getMonth() + 3) % 3) - Math.floor(a / o.durationMonth)) / 3 + 4 * (t.getFullYear() - e.getFullYear()) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setMonth(0), n = (0, i.getFloor)(new Date(Number(s)), t, r), (0, i.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), Math.floor((e.getMonth() - n.getMonth() - Math.floor(l / o.durationMonth)) / 3) } },
                l = new a["default"](s);
            t.quarterObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.monthObj = t["default"] = void 0; var a = n(r(391)),
                i = r(393),
                o = r(392),
                s = { name: "month", floor: function(e, t, r) { return e.setDate(1), new Date(Number((0, i.getFloor)(new Date(Number(e.setHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            o = { date: new Date(Number(e)) },
                            s = new Date(Number(o.date)); return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setMonth(s.getMonth() + t))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setMonth(s.getMonth() + t))), r, n))) }, count: function(e, t, r) { var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, i.getClampRangesAround)(r, t); return (n = (0, i.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), t.getMonth() - e.getMonth() - Math.floor(a / o.durationMonth) + 12 * (t.getFullYear() - e.getFullYear()) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setMonth(0), n = (0, i.getFloor)(new Date(Number(s)), t, r), (0, i.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getMonth() - n.getMonth() - Math.floor(l / o.durationMonth) } },
                l = new a["default"](s);
            t.monthObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(212);
            t.__esModule = !0, t["default"] = void 0; var a = n(r(415));
            t.utcMillisecond = a["default"], t.millisecondObj = a.millisecondObj; var i = n(r(417));
            t.utcSecond = i["default"], t.secondObj = i.secondObj; var o = n(r(423));
            t.utcMinute = o["default"], t.utcMinuteObj = o.utcMinuteObj; var s = n(r(424));
            t.utcHour = s["default"], t.utcHourObj = s.utcHourObj; var l = n(r(395));
            t.utcDay = l["default"], t.utcDayObj = l.utcDayObj; var c = n(r(396));
            t.utcWeek = c["default"], t.utcSunday = c.utcSunday, t.utcMonday = c.utcMonday, t.utcTuesday = c.utcTuesday, t.utcWednesday = c.utcWednesday, t.utcThursday = c.utcThursday, t.utcFriday = c.utcFriday, t.utcSaturday = c.utcSaturday, t.utcWeekObj = c.utcWeekObj; var u = n(r(425));
            t.utcQuarter = u["default"], t.utcQuarterObj = u.utcQuarterObj; var d = n(r(426));
            t.utcMonth = d["default"], t.utcMonthObj = d.utcMonthObj; var f = n(r(400));
            t.utcYear = f["default"], t.utcYearObj = f.utcYearObj; var h = { getInterval: function(e) { switch (e + "") {
                        case "millisecond":
                            return a["default"];
                        case "second":
                            return i["default"];
                        case "minute":
                            return o["default"];
                        case "hour":
                            return s["default"];
                        case "day":
                            return l["default"];
                        case "week":
                            return c["default"];
                        case "sunday":
                            return c.utcSunday;
                        case "monday":
                            return c.utcMonday;
                        case "tuesday":
                            return c.utcTuesday;
                        case "wednesday":
                            return c.utcWednesday;
                        case "thursday":
                            return c.utcThursday;
                        case "friday":
                            return c.utcFriday;
                        case "saturday":
                            return c.utcSaturday;
                        case "quarter":
                            return u["default"];
                        case "month":
                            return d["default"];
                        case "year":
                            return f["default"] } } };
            t["default"] = h }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.utcMinuteObj = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "minute", floor: function(e, t, r) { return new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCSeconds(0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            s = { date: new Date(e) },
                            l = new Date(JSON.parse(JSON.stringify(s)).date); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationMinute))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationMinute))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t - e) / i.durationMinute - Math.floor(a / i.durationMinute) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setUTCMinutes(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getUTCMinutes() - n.getUTCMinutes() - Math.floor(l / i.durationMinute) } },
                l = new a["default"](s);
            t.utcMinuteObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.utcHourObj = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "hour", floor: function(e, t, r) { return new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCMinutes(0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            s = { date: new Date(Number(e)) },
                            l = new Date(Number(s.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationHour))), r, n) : (0, o.clampUpDateWithinClip)(s.date, new Date(Number(l.setTime(Number(l) + t * i.durationHour))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t - e) / i.durationHour - Math.floor(a / i.durationHour) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setUTChours(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getUTCHours() - n.getUTCHours() - Math.floor(l / i.durationHour) } },
                l = new a["default"](s);
            t.utcHourObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.utcQuarterObj = t["default"] = void 0; var a = n(r(391)),
                i = r(393),
                o = r(392),
                s = { name: "quarter", floor: function(e, t, r) { return e.setUTCMonth(e.getUTCMonth() - (e.getUTCMonth() + 3) % 3, 1), new Date(Number((0, i.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            o = { date: new Date(Number(e)) },
                            s = new Date(Number(o.date)); return new Date(Number(a ? (0, i.clampDownDateWithinClip)(o.date, new Date(Number(s.setUTCMonth(s.getUTCMonth() + 3 * t))), r, n) : (0, i.clampUpDateWithinClip)(o.date, new Date(Number(s.setUTCMonth(s.getUTCMonth() + 3 * t))), r, n))) }, count: function(e, t, r) { var n = (0, i.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, i.getClampRangesAround)(r, t); return (n = (0, i.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), (t.getUTCMonth() - (t.getUTCMonth() + 3) % 3 - (e.getUTCMonth() - (e.getUTCMonth() + 3) % 3) - Math.floor(a / o.durationMonth)) / 3 + 4 * (t.getUTCFullYear() - e.getUTCFullYear()) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setUTCMonth(0), n = (0, i.getFloor)(new Date(Number(s)), t, r), (0, i.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), Math.floor(e.getUTCMonth() - n.getUTCMonth() - Math.floor(l / o.durationMonth)) } },
                l = new a["default"](s);
            t.utcQuarterObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.utcMonthObj = t["default"] = void 0; var a = n(r(391)),
                i = r(392),
                o = r(393),
                s = { name: "month", floor: function(e, t, r) { return e.setUTCDate(1), new Date(Number((0, o.getFloor)(new Date(Number(e.setUTCHours(0, 0, 0, 0))), t, r))) }, offset: function(e, t, r, n) { var a = t > 0,
                            i = { date: new Date(Number(e)) },
                            s = new Date(Number(i.date)); return new Date(Number(a ? (0, o.clampDownDateWithinClip)(i.date, new Date(Number(s.setUTCMonth(s.getUTCMonth() + t))), r, n) : (0, o.clampUpDateWithinClip)(i.date, new Date(Number(s.setUTCMonth(s.getUTCMonth() + t))), r, n))) }, count: function(e, t, r) { var n = (0, o.getValidDatesWithin)(r, e, t),
                            a = 0,
                            s = (0, o.getClampRangesAround)(r, t); return (n = (0, o.getClipArray)(s, n)).forEach((function(e) { a += Number(e.to) - Number(e.from) })), t.getUTCMonth() - e.getUTCMonth() - Math.floor(a / i.durationMonth) + 12 * (t.getUTCFullYear() - e.getUTCFullYear()) }, field: function(e, t, r) { var n, a = { date: new Date(Number(e)) },
                            s = new Date(Number(a.date)),
                            l = 0; return s.setUTCMonth(0), n = (0, o.getFloor)(new Date(Number(s)), t, r), (0, o.getValidDatesWithin)(t, new Date(Number(n)), a.date).forEach((function(e) { l += Number(e.to) - Number(e.from) })), e.getUTCMonth() - n.getUTCMonth() - Math.floor(l / i.durationMonth) } },
                l = new a["default"](s);
            t.utcMonthObj = s; var c = l;
            t["default"] = c }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.duration = function(e, t) { var r = t; if (!e || !n.DatetimeUnits[e.name]) throw new Error("Invalid Unit provided: " + e); return r = Math.abs(r) || 1, { Unit: e.name, number: r, ms: e.ms * r } }; var n = r(394) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.interval = function(e, t, r) { void 0 === r && (r = !1); if (t.duration.ms) { var i = (0, a.dateRangeCaclulator)(e, t.duration, t.enableUTC, t.weekStartFrom || n.Weekdays.Sunday, r),
                        o = i.startDate,
                        s = i.endDate; return t.outputFormat = t.outputFormat || (0, a.getDefaultOutputFormat)(t.duration.Unit), { start: o, end: s, config: t, toString: a.dateIntervalToString } } }; var n = r(394),
                a = r(413) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(430),
                a = { store: {}, _defaultAggregators: { sum: n.sum, avg: n.avg, count: n.count, min: n.min, max: n.max, first: n.first, last: n.last, variance: n.variance, stddev: n.stddev }, register: function(e, t) { return this.store[e] = t, this }, getRegisteredAggregations: function() { return Object.assign(this.store) }, getDefaultAggregations: function() { return Object.assign(this._defaultAggregators) }, resolve: function(e) { return this._defaultAggregators[e] || this.store[e] } };
            t["default"] = a }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.stddev = t.variance = t.last = t.first = t.max = t.min = t.count = t.avg = t.sum = void 0; var n = function(e, t, r) { return ((r - 1) * e + t) / r },
                a = function(e, t, r) { var a, i = t,
                        o = 0; return e && (i = e.avg, o = e.variance), a = i, r > 1 && (o = (o * (r - 2) + (t - (i = n(i, t, r))) * (t - a)) / (r - 1)), { avg: i, variance: o } };
            t.stddev = function(e, t, r) { var n, i; return e && (n = { avg: e.avg, variance: e.stddev * e.stddev }), { avg: (i = a(n, t, r)).avg, stddev: Math.sqrt(i.variance) } }, t.variance = a, t.last = function(e, t) { return t }, t.first = function(e, t) { return null === e ? t : e }, t.max = function(e, t) { return null !== e ? e < t ? t : e : t }, t.min = function(e, t) { return null !== e ? e > t ? t : e : t }, t.count = function(e) { return e + 1 }, t.avg = n, t.sum = function(e, t) { return e + t } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = function() { for (var e, t = [], r = [], i = [], o = function(e, t) { for (var r = [], n = e.length, i = 0; i < n; i++) t[i] || r.push(e[i]); return r && r.length > 0 && (0, a.binaryInsertionSort)(r, (function(e, t) { return e.type - t.type })), r }, s = function(e) { var t = [],
                            r = e.length;
                        (0, a.binaryInsertionSort)(e, (function(e, t) { return e.type - t.type })), t.push(e[0]); for (var n = 1; n < r; n++) e[n].type >= 3 && e[n].type === t[t.length - 1].type && t.pop(), t.push(e[n]); return t }, l = arguments.length, c = new Array(l), u = 0; u < l; u++) c[u] = arguments[u];
                e = c.length; for (var d = 0; d < e; d++) switch (c[d].type) {
                    case n.OperatorTypes.IndexOpsFilter:
                    case n.OperatorTypes.GenericFilter:
                        t.push(c[d]), r.push(!1); break;
                    case n.OperatorTypes.Select:
                    case n.OperatorTypes.Sort:
                        t.push(c[d]), r.push(!0); break;
                    case n.OperatorTypes.GroupBy:
                        i = i.concat(o(t, r), c[d]), t = [], r = [] }
                return i = i.concat(s(t)) }; var n = r(410),
                a = r(384) }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t["default"] = void 0; var a = r(410),
                i = r(381),
                o = r(383),
                s = n(r(384)); var l = function(e) { var t = e; return { ops: "sort", type: a.OperatorTypes.Sort, _updateArgs: function(e) { t = e }, fn: function(e, r, n, a) { var l = e; return { data: l, schema: r, config: t.constructor === Array && t.length ? { indexBy: t[0].column } : t.constructor === Object ? { indexBy: t.column } : void 0, generatorFn: function() { var e; if (a && (l = a.call()), t.constructor === Function) e = t;
                                else { t.constructor !== Array && (t = [t]); var n, c, u, d = [],
                                        f = []; for (n = 0; n < t.length; n++)
                                        if (t[n].column) { if (c = (0, i.columnIndexOf)(t[n].column, r), f.push(c), -1 === c) throw new Error("Sort column is not found in schema - " + t[n].column); switch (r[c].type) {
                                                case "number":
                                                case "interval":
                                                case "date":
                                                    d.push(o.numberComparator); break;
                                                default:
                                                    d.push(o.stringComparator) } } e = function(e, a) { for (n = 0; n < t.length; n++) { if (0 !== (u = "interval" === r[f[n]].type ? "desc" === t[n].order ? d[n](a[f[n]].start, e[f[n]].start) : d[n](e[f[n]].start, a[f[n]].start) : "desc" === t[n].order ? d[n](a[f[n]], e[f[n]]) : d[n](e[f[n]], a[f[n]]))) return u; if (n === t.length - 1) return 0 } } } return (0, s["default"])(l, e), l } } } } };
            t["default"] = l }, function(e, t, r) { "use strict"; var n = r(212),
                a = r(208);
            t.__esModule = !0, t["default"] = void 0; var i = r(381),
                o = r(413),
                s = r(427),
                l = r(428),
                c = a(r(429)),
                u = r(385),
                d = r(410),
                f = n(r(412)),
                h = r(383),
                g = r(409);

            function p(e, t, r, n, a, i, o, s, l) { var u, d, f, h, g, p = a.length; for (h = 0; h < p; h++)
                    if (void 0 !== e[u = s(a[h].column, t)] && null !== e[u]) { switch (d = a[h].operation || "avg", g = o[e[i] + " - " + (a[h].outputAs || a[h].column + (d ? " - " + d : ""))], d) {
                            case "sum":
                            case "min":
                            case "max":
                            case "first":
                            case "last":
                                f = null; break;
                            default:
                                f = l[g] = l[g] && l[g] + 1 || 1 } r[n + g] = "count" === d ? f : c["default"].resolve(d)(void 0 !== r[n + g] ? r[n + g] : null, e[u], f) } } var m = function(e, t, r) { var n = e,
                    a = t,
                    m = r; return { ops: "pivot", type: d.OperatorTypes.GroupBy, _updateArgs: function(e, t, r) { n = e, a = t, m = r }, fn: function(e, t, r, d) { if (0 === n.length) throw new Error("groupConfigArray cannot be empty"); if (0 === m.length) throw new Error("aggrConfigArray cannot be empty"); if (!a) throw new Error("pivotCol cannot be empty"); return !(n instanceof Array) && n instanceof Object && (n = [n]), !(m instanceof Array) && m instanceof Object && (m = [m]), 1 === n.length && r && n[0].column === r.indexBy ? function(e, t, r, n, a, d) { var m, v, b, y, x, w, C, _, k, S, E, A, T, M, N, D = [],
                                F = e.length,
                                I = 0,
                                L = (R = {}, function(e, t) { return R[e] || (R[e] = (0, i.columnIndexOf)(e, t)), R[e] }),
                                O = []; var R; if (-1 === (y = (0, i.columnIndexOf)(n.column, t))) throw new Error("incorrect column name in groupConfigArr - " + n); if (-1 === (w = (0, i.columnIndexOf)(d, t))) throw new Error("incorrect pivot column name"); if (x = t[y], C = t[w], (k = Object.assign({}, n)).type = x.type, k.outputAs = n.outputAs, b = function(e, t, r, n, a) { var o, s, l, u, d, f, g, p, m, v, b, y, x, w = [],
                                        C = {},
                                        _ = 0,
                                        k = r,
                                        S = n; for (k = k instanceof Array ? k : [k], S = S instanceof Array ? S : [S], u = k.length, d = S.length, v = 0; v < u; v++) { if (f = (0, i.columnIndexOf)(k[v].column, t), g = t[f], -1 === f) throw new Error("incorrect column name in groupConfigArr - " + k[v].column);
                                        x = { name: k[v].outputAs || k[v].column, type: "date" === g.type ? "interval" : g.type }, void 0 !== g.enableUTC && (x.enableUTC = g.enableUTC), w.push(x) } switch (a.type) {
                                        case "number":
                                        case "date":
                                            o = h.numberComparator; break;
                                        default:
                                            o = h.stringComparator } for ((s = (0, i.columnUnique)(a.name, e, t)).sort((function(e, t) { return o(e, t) })), l = s.length, v = 0; v < d; v++) { if (y = S[v].operation || "avg", f = (0, i.columnIndexOf)(S[v].column, t), g = t[f], -1 === f) throw new Error("incorrect column name in aggrConfigArr - " + S[v].column); if (!c["default"].resolve(y)) throw new Error(y + " is not a defined operation"); switch (y) {
                                            case "first":
                                            case "last":
                                                p = g.type; break;
                                            case "count":
                                                p = "number"; break;
                                            default:
                                                if ("number" !== g.type) throw new Error(y + " can apply only on numbers");
                                                p = "number" } for (b = 0; b < l; b++) m = s[b] + " - " + (S[v].outputAs || S[v].column + (y ? " - " + y : "")), C[m] = _++, w.push({ name: m, type: p }) } return { schema: w, pivots: C } }(e, t, k, a, C), m = b.schema, v = b.pivots, F > 0) { if (M = x.enableUTC || (0, u.getConfig)("enableUTC"), "date" === x.type) { var P, V, j; if (S = (0, s.duration)(n.timeUnit, Math.abs(n.binSize) || 1), e[0] && e[0][y] && e[F - 1] && e[F - 1][y] || (P = (0, i.columnExtents)(n.column, e, t, r.indexBy)), V = e[0] && e[0][y] || P.min, j = n.startValue && parseInt(n.startValue, 10))
                                        if (j >= V) { E = (0, o.getDateStart)(j, (0, s.duration)(n.timeUnit, 1), M, n.weekStartFrom), I = (0, g.leftMostExactOrGreater)(E, e, (function(e, t) { return (0, h.numberComparator)(e[y], t) }), 0, e.length) } else E = (0, o.getDateStart)(V, S, M, n.weekStartFrom, j);
                                    else E = (0, o.getDateStart)(V, (0, s.duration)(n.timeUnit, 1), M, n.weekStartFrom);
                                    _ = e[F - 1] && e[F - 1][y] || P.max } if (void 0 === E || E <= _) { var B = { duration: S, outputFormat: n.outputFormat, enableUTC: M, weekStartFrom: n.weekStartFrom }; for (void 0 !== E && (A = [(0, l.interval)(E, B)], D.push(A)), N = I; N < F; N++) e[N].length > 0 && ("date" === x.type ? A = (0, f._singleSortedAddRowDate)(D, A, e[N][y], B, E) : "string" !== x.type && "number" !== x.type || (A = (0, f._singleSortedAddRow)(D, A, e[N][y])), T = D.length - 1, O[T] = O[T] || {}, A && p(e[N], t, A, 1, a, w, v, L, O[T])) } } return { data: D, schema: m, config: { indexBy: n.outputAs || n.column } } }(e, t, r, n[0], m, a) : function(e, t, r, n, a, o, s) { var l, c, u, d, g, p, m, v, b, y, x = {},
                                w = {},
                                C = function(e) { return w.hasOwnProperty(e) ? w[e] : -1 },
                                _ = function(e, t) { w[e] = t },
                                k = function(e, t, r, n) { return e + " - " + (t || r + (n ? " - " + n : "")) },
                                S = function() { for (var e, t = [], r = function(r) { if (b.includes(p[r].name)) t.push(p[r]), x[p[r].name] = r;
                                            else { e = o.filter((function(e) { return (e.outputAs || e.column + (e.operation ? " - " + e.operation : "")) === p[r].name }))[0]; for (var n = 0; n < g.length; n++) t.push({ name: k(g[n], e.outputAs, e.column, e.operation), type: p[r].type }) } }, n = 0; n < v; n++) r(n); return t },
                                E = []; switch (l = (0, f["default"])(a.concat({ column: s }), o), c = l.fn(e, t, r, n), d = (0, i.columnUnique)(s, e, t), m = (0, i.columnIndexOf)(s, c.schema), c.schema[m].type) {
                                case "number":
                                case "date":
                                    u = h.numberComparator; break;
                                default:
                                    u = h.stringComparator } g = d && d.sort((function(e, t) { return u(e, t) })) || [], p = c.schema.filter((function(e) { return e.name !== s })), v = p.length, b = a.map((function(e) { return e.outputAs || e.column })), y = S(), c.data.length > 0 && (E = function(e) { var t, r, n, a, i, l = [],
                                    u = e.length,
                                    d = {},
                                    f = {},
                                    h = ""; for (t = 0; t < u; t++) d[e[t].name] = t; for (t = 0; t < c.data.length; t++) { for (f = {}, h = "", r = 0; r < c.schema.length; r++) x.hasOwnProperty(c.schema[r].name) ? (f[d[c.schema[r].name]] = c.data[t][r], "interval" === c.schema[r].type ? h += c.data[t][r].start : h += c.data[t][r]) : c.schema[r].name !== s && (a = o.filter((function(e) { return (e.outputAs || e.column + (e.operation ? " - " + e.operation : "")) === c.schema[r].name }))[0], (i = d[k(c.data[t][m], a.outputAs, a.column, a.operation)]) && (f[i] = c.data[t][r])); if ((n = C(h)) > -1) { var g = l[n]; for (var p in f) g[p] = f[p] } else { var v = new Array(u); for (var b in f) v[b] = f[b];
                                        l.push(v), _(h, l.length - 1) } } return l }(y)); return { data: E, schema: y, config: { indexBy: c.config.indexBy === s ? void 0 : c.config.indexBy } } }(e, t, r, d, n, m, a) } } };
            t["default"] = m }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0; var a = n(r(429));
            t.aggregatorStore = a["default"] }, function(e, t, r) { "use strict";
            t.__esModule = !0; var n = r(436);
            t.before = n.before, t.after = n.after; var a = r(437);
            t.parseDate = a.parseDate, t.formatDate = a.formatDate; var i = r(427);
            t.duration = i.duration; var o = r(394);
            t.DatetimeUnits = o.DatetimeUnits, t.Weekdays = o.Weekdays }, function(e, t, r) { "use strict";
            t.__esModule = !0, t.before = function(e, t, r, i) { if (!e) throw new Error("duration is missing"); if (t && (isNaN(t) || isNaN(+new Date(t)))) throw new Error("timestamp is incorrect"); return (0, n.getDateOffset)(isNaN(t) || null === t ? +new Date : t, e.Unit, -e.number, r, i || a.Weekdays.Sunday) }, t.after = function(e, t, r, i) { if (!e) throw new Error("duration is missing"); if (t && (isNaN(t) || isNaN(+new Date(t)))) throw new Error("timestamp is incorrect"); return (0, n.getDateOffset)(isNaN(t) || null === t ? +new Date : t, e.Unit, e.number, r, i || a.Weekdays.Sunday) }; var n = r(413),
                a = r(394) }, function(e, t, r) { "use strict"; var n = r(208);
            t.__esModule = !0, t.parseDate = function(e, t, r) { var n, i;
                t && (n = void 0 !== r && r ? a["default"].utcParser(t) : a["default"].parser(t), i = (i = n.parse(e)) && i.getTime());
                i || (i = void 0 !== r && r ? +new Date(e + "Z") : +new Date(e)); if (!i) throw new Error("Incorrect string or format provided"); return i }, t.formatDate = function(e, t, r) { var n, i, o = t; if (isNaN(parseInt(e, 10))) throw new Error("Timestamp must be a number: " + e);
                o || (o = "%a, %-d %b %Y, %H:%M:%S:%L"); if (n = void 0 !== r && r ? a["default"].utcFormatter(o) : a["default"].formatter(o), !(i = n.format(new Date(e)))) throw new Error("Incorrect format provided: " + o); return i }; var a = n(r(386)) }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { column2d: "charts", column3d: "charts", bar2d: "charts", bar3d: "charts", pie2d: "charts", pie3d: "charts", line: "charts", area2d: "charts", doughnut2d: "charts", doughnut3d: "charts", pareto2d: "charts", pareto3d: "charts", mscolumn2d: "charts", mscolumn3d: "charts", msline: "charts", msarea: "charts", msbar2d: "charts", msbar3d: "charts", stackedcolumn2d: "charts", marimekko: "charts", stackedcolumn3d: "charts", stackedarea2d: "charts", stackedcolumn2dline: "charts", stackedcolumn3dline: "charts", stackedbar2d: "charts", stackedbar3d: "charts", msstackedcolumn2d: "charts", mscombi2d: "charts", mscombi3d: "charts", mscolumnline3d: "charts", mscombidy2d: "charts", mscombidy3d: "charts", mscolumn3dlinedy: "charts", stackedcolumn2dlinedy: "charts", stackedarea2dlinedy: "charts", stackedcolumn3dlinedy: "charts", msstackedcolumn2dlinedy: "charts", scatter: "charts", bubble: "charts", ssgrid: "charts", scrollbar2d: "charts", scrollcolumn2d: "charts", scrollcolumn3d: "charts", scrollline2d: "charts", scrollarea2d: "charts", scrollstackedcolumn2d: "charts", scrollstackedbar2d: "charts", scrollcombi2d: "charts", scrollmsstackedcolumn2d: "charts", scrollmsstackedcolumn2dlinedy: "charts", scrollcombidy2d: "charts", spline: "charts", splinearea: "charts", msspline: "charts", mssplinearea: "charts", mssplinedy: "charts", multiaxisline: "powercharts", multilevelpie: "powercharts", sunburst: "powercharts", waterfall2d: "powercharts", msstepline: "powercharts", inversemsline: "powercharts", inversemscolumn2d: "powercharts", inversemsarea: "powercharts", errorbar2d: "powercharts", errorscatter: "powercharts", errorline: "powercharts", logmsline: "powercharts", logmscolumn2d: "powercharts", logstackedcolumn2d: "powercharts", radar: "powercharts", chord: "powercharts", dragnode: "powercharts", candlestick: "powercharts", selectscatter: "powercharts", dragcolumn2d: "powercharts", dragline: "powercharts", dragarea: "powercharts", boxandwhisker2d: "powercharts", kagi: "powercharts", heatmap: "powercharts", sankey: "powercharts", angulargauge: "widgets", bulb: "widgets", cylinder: "widgets", drawingpad: "widgets", funnel: "widgets", hbullet: "widgets", hled: "widgets", hlineargauge: "widgets", vlineargauge: "widgets", pyramid: "widgets", realtimearea: "widgets", realtimecolumn: "widgets", realtimeline: "widgets", realtimelinedy: "widgets", realtimestackedarea: "widgets", realtimestackedcolumn: "widgets", sparkcolumn: "widgets", sparkline: "widgets", sparkwinloss: "widgets", thermometer: "widgets", vbullet: "widgets", vled: "widgets", zoomline: "zoomline", zoomlinedy: "zoomline", gantt: "gantt", treemap: "treemap", zoomscatter: "zoomscatter", overlappedbar2d: "overlappedbar2d", overlappedcolumn2d: "overlappedcolumn2d", msstackedcolumn2dsplinedy: "msstackedcolumn2dsplinedy", timeseries: "timeseries" } }, function(e, t, r) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var n = r(215),
                a = {}; var i = function(e) { var t = e; if (!a[t]) { var r = document.getElementsByTagName("head")[0],
                        i = document.createElement("script"),
                        o = setTimeout((function() { i.onerror({ type: "timeout", target: i }) }), 12e4);
                    i.charset = "utf-8", i.timeout = 12e4, a[t] = new Promise((function(e, t) { i.onreadystatechange = function() { "loaded" === i.readyState && i.onload({}) }, i.onload = function(t) { i.onerror = i.onload = null, clearTimeout(o), e(t) }, i.onerror = function(e) { i.onerror = i.onload = null, clearTimeout(o), t(e) } })), (0, n.isXSSSafe)(t, !1) || (t = "function" == typeof window.encodeURIComponent ? window.encodeURIComponent(t) : window.escape(t)), i.src = t, r.appendChild(i) } return a[t] };
            t["default"] = i }, function(e, t) {
            (function(t) { e.exports = t }).call(this, {}) }])["default"] }));
//# sourceMappingURL=http://localhost:3052/3.15.3/map/eval/fusioncharts.js.map
(window.webpackJsonpFusionCharts = window.webpackJsonpFusionCharts || []).push([
    [2], {
        1034: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) {! function(e) { var t = e.getChildren("colorManager"); if (!e.getFromEnv("dataSource").colorrange) return t && (t[0].config.legendItemIds = []), void e.deleteFromEnv("colorManager"); if (t) return e.addToEnv("colorManager", t[0]), void t[0].configure();
                    t = new n["default"], e.attachChild(t, "colorManager"), e.addToEnv("colorManager", t), t.configure() }(e) }; var n = i(a(1035)) },
        1035: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(230),
                r = i(a(1036)),
                l = i(a(1037)),
                s = a(215);

            function c(e) { var t = e || g; return (0, s.getValidColor)(t) || g } var h, u, d = "rgba(192,192,192," + (s.isIE ? .002 : 1e-6) + ")",
                g = "#000000",
                p = ((u = {}).legendCarpetConf = { spreadFactor: .85, allowDrag: !1, captionAlignment: "center", padding: { v: 3, h: 3 }, style: { fill: "#e4d9c1", stroke: "#c4b89d" } }, u.legendCaptionConf = { spreadFactor: .2, padding: { v: 2, h: 2 }, style: { fill: "#786B50", fontFamily: "sans-serif", fontSize: "12px", fontWeight: "bold", fontStyle: "normal" }, bound: { style: { stroke: "none" } } }, u.legendBodyConf = { spreadFactor: .8, padding: { v: 2, h: 2 }, bound: { style: { stroke: "none" } } }, u.legendAxisConf = { legendAxisHeight: 11, spreadFactor: .4, padding: { v: 1, h: 1 }, style: { stroke: "none", "stroke-opacity": 0, "stroke-width": 1 }, line: { grooveLength: 3, offset: 8, style: { stroke: "rgba(255, 255, 255, 0.65)", "stroke-width": 1.5 } }, shadow: { style: { stroke: "none", fill: (0, s.toRaphaelColor)({ FCcolor: { alpha: "25,0,0", angle: 360, color: "000000,FFFFFF,FFFFFF", ratio: "0,30,40" } }) } }, bound: { style: { stroke: "none" } } }, u.sliderGroupConf = { showTooltip: 1, outerCircle: { rFactor: 1.4, style: { fill: d, stroke: "#757575", "stroke-width": 3 } }, innerCircle: { rFactor: .65, style: { fill: d, stroke: "#FFFFFF" } } }, u.axisTextItemConf = { spreadFactor: .3, padding: { v: 1, h: 1 }, style: { fill: "#786B50", fontFamily: "sans-serif", fontSize: "12px", fontWeight: "normal", fontStyle: "normal" } }, { init: function(e) { h = e.chart }, legacyDataParser: function(e, t) { var a, i, n, o, r, l, u, d, g, p, f, m, v, b = {},
                            x = h.getFromEnv("number-formatter"),
                            y = h.getFromEnv("dataSource"),
                            C = y.data,
                            k = t || {}; if (!e) return !1; for ("maps" !== h.defaultDatasetType || void 0 !== k.min && void 0 !== k.max ? "HeatMap" !== h.getName() || void 0 !== k.min && void 0 !== k.max || (k = { min: Infinity, max: -Infinity }, y.dataset.forEach((function(e) { e.data && e.data.forEach((function(e) { k.min = Math.min(k.min, (0, s.pluckNumber)(e.value, k.min)), k.max = Math.max(k.max, (0, s.pluckNumber)(e.value, k.max)) })) }))) : (k = { min: Infinity, max: -Infinity }, C && C.forEach((function(e) { k.min = Math.min(k.min, (0, s.pluckNumber)(e.value, k.min)), k.max = Math.max(k.max, (0, s.pluckNumber)(e.value, k.min)) }))), b.mapByPercent = f = !!(0, s.pluckNumber)(e.mapbypercent, 0), a = e.color || [], void 0 === e.minvalue && (e.minvalue = void 0 !== k.min ? f ? 0 : k.min : 0), void 0 === e.maxvalue && (e.maxvalue = void 0 !== k.max ? f ? 100 : k.max : 100), e.maxvalue !== e.minvalue && k.min !== Infinity && k.max !== -Infinity || (e.minvalue = 0, e.maxvalue = 100), m = !1, r = 0, u = a.length; r < u; r++)
                            if (a[r].maxvalue) { m = !0; break } for (m || (a = []), n = e.code, d = b.colorRange = [], b.gradient = !!(0, s.pluckNumber)(e.gradient, 1), a.length ? n = c(n) : (n ? (o = c(n), n = c()) : (n = c(), v = n, o = (0, s.getLightColor)(v, 1)), a.push({ code: o, maxvalue: e.maxvalue, label: void 0 })), function(e) { var t, a, i, n = h.getFromEnv("number-formatter"); for (t = 0, a = e.length; t < a; t++)(i = e[t].maxvalue) && (e[t].maxvalue = n.getCleanValue(i)) }(a), a = a.sort((function(e, t) { return e.maxvalue - t.maxvalue })), g = p = e.minvalue && x.getCleanValue(e.minvalue), p = (void 0 !== g || null !== g) && (f ? g + "%" : x.legendValue(g)), d.push({ code: (0, s.dehashify)(n), value: g, displayValue: p, label: e.startlabel }), r = 0, u = a.length; r < u; r++) l = c((i = a[r]).code || i.color), g = p = i.maxvalue, isNaN(parseInt(g, 10)) || (p = (void 0 !== g || null !== g) && (f ? g + "%" : x.legendValue(g)), d.push({ code: (0, s.dehashify)(l), value: g, displayValue: p, label: i.label || i.displayvalue })); return d[d.length - 1].label = e.endlabel || i.label, b }, getDefaultConf: function(e) { return u[e] } }),
                f = function(e) {
                    function t() { var t; return (t = e.call(this) || this).datasource = {}, t.config.legendItemIds = [], t }(0, n["default"])(t, e); var a = t.prototype; return a.configure = function() { var e, t, a = this.getFromEnv("chart"),
                            i = this.getFromEnv("dataSource").chart.mapbycategory,
                            n = a.config.showLegend,
                            o = a.getChildren("colorRange") && a.getChildren("colorRange")[0]; switch (a.addToEnv("colorManager", this), this.datasource = a.getFromEnv("dataSource"), e = this.datasource.colorrange, o && o.remove({ instant: !0 }), n || (this.config.legendItemIds = []), "maps" === a.defaultDatasetType ? e.gradient && Number(e.gradient) ? "gradient" : e.color ? "icon" : "none" : "TreeMap" === a.getName() || e.gradient && "0" !== e.gradient && !Number(i) ? "gradient" : "icon") {
                            case "gradient":
                                p.init({ chart: a }), t = p.legacyDataParser(e), (0, s.componentFactory)(a, l["default"], "colorRange", 1, [t]), o = a.getChildren("colorRange")[0], a.addToEnv("colorRange", o), t || (o._dontPlot = !0), this.config.legendItemIds = [], this._configureGradientLegend(o); break;
                            case "icon":
                                (0, s.componentFactory)(a, r["default"], "colorRange", 1, [{ colorRange: e, sortLegend: 0, mapByCategory: (0, s.pluckNumber)(i, 0), defaultColor: "cccccc", numberFormatter: a.getFromEnv("number-formatter") }]), a.addToEnv("colorRange", a.getChildren("colorRange")[0]), n && this._addLegendItems(); break;
                            case "none":
                                a.deleteFromEnv("colorManager"), this.config.legendItemIds = [] } }, a._configureGradientLegend = function(e) { var t = this,
                            a = t.getFromEnv("chart").getFromEnv("gLegend");
                        a && (a.setColorRange(e), t.addExtEventListener("rangeUpdated", (function(e, a) { t.fireEvent("legendUpdate", { "original-event": e, maxMinArray: a, component: "gradientlegend" }) }), a)) }, a._addLegendItems = function() { var e, t, a, i, n, o = this.config,
                            r = this.getFromEnv("chart"),
                            l = r.getChildren("legend")[0],
                            c = r.getFromEnv("colorRange").colorArr,
                            h = c.length; for (i = 0; i < h; i++) n = { label: (0, s.pluck)(c[i].label, c[i].displayvalue), datasetObj: c[i], index: i }, t = (0, s.getLightColor)(c[i].code, 40), e = { FCcolor: { color: c[i].code + "," + c[i].code + "," + t, ratio: "0,70,30", angle: 270, alpha: "100,100,100" } }, (a = l.getItem(o.legendItemIds[i])) || (o.legendItemIds.push(l.createItem(this)), (a = l.getItem(o.legendItemIds[i])).addEventListener("fc-click", a.itemClickFn)), a.removeLegendState("hidden"), c[i].legendItemId = a && a.getId(), a.configure(n), a.setStateCosmetics("default", { symbol: { fill: (0, s.toRaphaelColor)(e), rawFillColor: c[i].code } }); for (i = h; i < o.legendItemIds.length; i++) l.disposeItem(o.legendItemIds[i]);
                        o.legendItemIds.splice(h) }, a.legendInteractivity = function(e) { var t = this.getFromEnv("colorRange").colorArr[e.config.index];
                        this.fireEvent("legendUpdate", { legendItem: e, colorObj: t, component: "legend" }) }, a.getColor = function(e) { return !Number(this.datasource.chart.mapbycategory) && Number(this.datasource.colorrange.gradient) ? { code: this.getColorByValue(e), label: this.getLabelByValue(e) } : this.getColorObj(e) }, a.getValueRatio = function() { return this.getFromEnv("colorRange").getValueRatio() }, a.getCumulativeValueRatio = function() { return this.getFromEnv("colorRange").getCumulativeValueRatio() }, a.getBoxFill = function(e) { return this.getFromEnv("colorRange").getBoxFill(e) }, a.getColorByValue = function(e) { return this.getFromEnv("colorRange").getColorByValue(e) }, a.getColorObj = function(e) { return this.getFromEnv("colorRange").getColorObj(e) }, a.getLabelByValue = function(e) { return this.getFromEnv("colorRange").getLabelByValue(e) }, t }(o.ComponentInterface);
            t["default"] = f },
        1036: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(232)),
                o = i(a(229)),
                r = a(215),
                l = a(230),
                s = function(e, t) { return +e.minvalue == +t.minvalue ? e.maxvalue - t.maxvalue : e.minvalue - t.minvalue },
                c = function(e, t, a) { var i = e[0],
                        n = e[1],
                        o = e[2],
                        l = i + (t[0] - i) * a,
                        s = n + (t[1] - n) * a,
                        c = o + (t[2] - o) * a; return { hex: (r.COLOR_BLACK + (l << 16 | s << 8 | c).toString(16)).slice(-6), rgb: [l, s, c] } },
                h = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var a = (0, n["default"])(t); return a.mapByCategory = !1, a.colorArr = [], a.noValidRange = !0, a.sortLegend = !1, t }(0, o["default"])(t, e); var a = t.prototype; return a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.config.defaultObj = { code: "CCCCCC", alpha: "100" } }, a.getType = function() { return "colorComponent" }, a.getName = function() { return "colorBucket" }, a.configure = function(e) { if (e) { var t, a, i, n, o, l, c, h, u, d, g, p = this.mapByCategory,
                                f = e.numberFormatter,
                                m = e.colorRange || {},
                                v = (0, r.extend2)([], m.color),
                                b = this.getLinkedParent(),
                                x = Math.min(Math.max((0, r.pluckNumber)(this.getFromEnv("dataSource").chart.palette, 0) - 1, 0), 4),
                                y = b.defaultPaletteOptions && b.defaultPaletteOptions.paletteColors[x],
                                C = (0, r.pluckNumber)(f.getCleanValue(m.maxvalue), Infinity),
                                k = (0, r.pluckNumber)(f.getCleanValue(m.minvalue), -Infinity),
                                S = this.colorArr; if (void 0 !== e.mapByCategory && (p = this.mapByCategory = !!Number(e.mapByCategory)), (v = p ? v.filter((function(e) { return e.code || e.color })) : v.filter((function(e) { return e.minvalue || e.maxvalue }))).forEach((function(e) { e.minvalue && e.maxvalue && +e.maxvalue < +e.minvalue && (h = e.maxvalue, e.maxvalue = e.minvalue, e.minvalue = h), e.minvalue ? e.maxvalue ? (d = f.getCleanValue(e.minvalue), u = f.getCleanValue(e.maxvalue), e.rangeLabel = f.dataLabels(d) + "-" + f.dataLabels(u)) : (d = f.getCleanValue(e.minvalue), e.maxvalue = u = C, e.rangeLabel = u === Infinity ? ">" + f.dataLabels(d) : f.dataLabels(d) + "-" + f.dataLabels(u)) : (e.minvalue = d = k, u = f.getCleanValue(e.maxvalue), e.rangeLabel = d === -Infinity ? "<" + f.dataLabels(u) : f.dataLabels(d) + "-" + f.dataLabels(u)) })), v.sort(s), v && (t = v.length)) { for (S.length = 0, a = 0; a < t; a += 1) c = v[a], i = (0, r.pluck)(c.color, c.code, y && y[a]), n = (0, r.pluck)(c.alpha), l = (0, r.pluck)(c.bordercolor), o = (0, r.pluck)(c.borderalpha, 100), u = (0, r.pluckNumber)(c.maxvalue), d = (0, r.pluckNumber)(c.minvalue), g = (0, r.pluck)(c.label, c.displayvalue, c.rangeLabel), (i && u >= d || p && g) && S.push({ code: i, alpha: n || "100", oriAlpha: n, maxvalue: u, minvalue: d, label: (0, r.parseUnsafeString)(g), labelId: g.toLowerCase(), bordercolor: l, borderAlpha: o, name: c.name });
                                this.sortedColorArr = this.colorArr.slice(0) } else this.noValidRange = !0, this.colorArr = [], this.sortedColorArr = [] } }, a.getColorObj = function(e) { if (void 0 === e) return { outOfRange: !0 }; var t, a, i = this.sortedColorArr,
                            n = this.gradient ? 1 : 0,
                            o = i[n],
                            l = e; if (this.mapByCategory) { for (l = (0, r.parseUnsafeString)(l).toLowerCase() || l.toString().toLowerCase(); o;) { if (o.labelId === l || o.maxvalue >= l && o.minvalue <= l) return { code: o.code, alpha: o.alpha || "100", oriAlpha: o.oriAlpha, seriesIndex: n, legendItemId: o.legendItemId };
                                o = i[n += 1] } return { outOfRange: !0 } } if (this.gradient) { if (this.scaleMin <= l && this.scaleMax >= l) { for (; o && o.maxvalue < l;) o = i[n += 1]; return a = (l - o.minvalue) / o.range, { code: c(i[n - 1].codeRGB, o.codeRGB, a).hex } } return { outOfRange: !0 } } for (; o;) { if (l < o.minvalue && !t) return 0 === n ? { code: o.code, alpha: o.alpha || "100", oriAlpha: o.oriAlpha, seriesIndex: n, name: o.name, label: o.label, outOfRange: !0, bordercolor: o.bordercolor, borderalpha: o.borderAlpha } : { code: i[n - 1].code, alpha: i[n - 1].alpha || "100", oriAlpha: i[n - 1].oriAlpha, seriesIndex: n, name: i[n - 1].name, label: i[n - 1].label, outOfRange: !0, bordercolor: i[n - 1].bordercolor, borderalpha: i[n - 1].borderAlpha }; if (l > o.maxvalue && n === i.length - 1) return { code: o.code, alpha: o.alpha || "100", oriAlpha: o.oriAlpha, seriesIndex: n, name: o.name, label: o.label, outOfRange: !0, bordercolor: o.bordercolor, borderalpha: o.borderAlpha }; if (o.maxvalue > l && o.minvalue <= l) return { code: o.code, alpha: o.alpha || "100", oriAlpha: o.oriAlpha, seriesIndex: n, name: o.name, label: o.label, bordercolor: o.bordercolor, borderalpha: o.borderAlpha }; if (l === o.maxvalue && (t = { code: o.code, alpha: o.alpha || "100", oriAlpha: o.oriAlpha, seriesIndex: n, name: o.name, label: o.label, bordercolor: o.bordercolor, borderalpha: o.borderAlpha }), n === i.length - 1 && t) return t;
                            o = i[n += 1] } return i.length ? void 0 : { outOfRange: !0 } }, a.getColorRangeArr = function(e, t) { var a, i, n, o, l, s, c, h, u = [],
                            d = e,
                            g = t; if (!this.defaultAsigned && (d > g && (a = d, d = g, g = a), d < g && (o = this.getColorObj(d), s = this.getColorObj(g), o && s))) { for (l = d, i = o.seriesIndex, n = s.seriesIndex; i <= n; i += 1)(c = (0, r.extend2)({}, this.colorArr[i])).minvalue !== l && (c.minvalue = l), u.push(c), h = c, l = c.maxvalue;
                            h && (h.maxvalue = g) } return u }, t }(l.ComponentInterface);
            t["default"] = h },
        1037: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(230),
                r = a(215),
                l = function(e) {
                    function t() { var t; return (t = e.call(this) || this).colorRange = {}, t.valueRatio = {}, t.data = {}, t.mapByPercent = r.UNDEF, t }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "colorComponent" }, a.getName = function() { return "gradientColorRange" }, a.configure = function(e) { if (e) { var t, a, i; for (this.data = e, this.appender = r.BLANKSTRING, i = this.colorRange = e.colorRange.sort((function(e, t) { return e.value - t.value })), this.valueRatio = r.UNDEF, this.values = [], t = 0, a = i.length; t < a; t++) this.values.push(i[t].value) } }, a.getValueRatio = function() { var e, t, a = this.colorRange,
                            i = a.length,
                            n = this.valueRatio,
                            o = a[i - 1].value,
                            r = a[0].value,
                            l = o - r,
                            s = 0; if (n) return n; for (n = this.valueRatio = [], e = 0; e < i; e++) t = (a[e].value - r) / l, n.push(100 * (t - s)), s = t; return n }, a.getCumulativeValueRatio = function() { var e, t, a = this.colorRange,
                            i = a.length,
                            n = a[0].value,
                            o = a[i - 1].value,
                            r = []; for (t = 0; t < i; t++) e = a[t], r.push((e.value - n) / (o - n) * 100); return r }, a.getBoxFill = function(e) { var t, a, i, n = this.colorRange,
                            o = n.length,
                            l = []; for (i = e ? 90 : 0, a = 0; a < o; a++) t = n[a], l.push(t.code); return (0, r.toRaphaelColor)({ FCcolor: { alpha: "100,100,100", angle: i, color: l.join(","), ratio: this.getValueRatio().join(",") } }) }, a.getColorByValue = function(e) { var t, a, i, n, o = this.values,
                            l = this.colorRange; if (e !== r.UNDEF && null !== e) { for (a = 0, t = o.length; a < t; a++) { if (e === o[a]) { n = l[a].code; break } if (!a && e < o[a]) { i = !0; break } if (a === t - 1 && e > o[a]) { i = !0; break } if (e > o[a] && e < o[a + 1]) { s = l[a], c = l[a + 1], h = e, u = void 0, d = void 0, g = void 0, p = void 0, d = s.value, g = (0, r.HEXtoRGB)(s.code), p = (0, r.HEXtoRGB)(c.code), u = c.value - d, n = (0, r.RGBtoHex)([Math.round(g[0] + (p[0] - g[0]) / u * (h - d)), Math.round(g[1] + (p[1] - g[1]) / u * (h - d)), Math.round(g[2] + (p[2] - g[2]) / u * (h - d))]); break } } var s, c, h, u, d, g, p; if (!i) return n } }, a.getLabelByValue = function(e) { var t, a, i, n, o = this.values,
                            l = this.colorRange; if (e !== r.UNDEF && null !== e) { for (a = 0, t = o.length; a < t; a++) { if (e === o[a]) { n = l[a].label; break } if (!a && e < o[a]) { i = !0; break } if (a === t - 1 && e > o[a]) { i = !0; break } if (e > o[a] && e < o[a + 1]) { n = l[a].label; break } } if (!i) return n } }, t }(o.ComponentInterface);
            t["default"] = l },
        1038: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) {! function(e) { var t, a = e.getFromEnv("dataSource").colorrange,
                        i = e.getFromEnv("dataSource").chart.mapbycategory,
                        l = "maps" === e.defaultDatasetType,
                        s = "TreeMap" === e.getName(),
                        c = e.getFromEnv("legend"),
                        h = e.getFromEnv("gLegend");
                    t = a && e.config.showLegend ? l ? a.gradient && Number(a.gradient) ? "gradient" : a.color ? "icon" : "none" : s ? a.gradient && "0" !== a.gradient ? "gradient" : "none" : a.gradient && "0" !== a.gradient && !Number(i) ? "gradient" : "icon" : "none"; switch (t) {
                        case "gradient":
                            e.deleteFromEnv("legend"), c && c.remove(), (0, n.componentFactory)(e, o["default"], "gLegend", 1), (h = e.getChildren("gLegend")[0]).configure(), e.addToEnv("gLegend", h); break;
                        case "icon":
                            e.deleteFromEnv("gLegend"), h && h.remove(), (0, n.componentFactory)(e, r["default"], "legend", 1, { showLegend: !0 }), (c = e.getChildren("legend")[0]).configure(), e.addToEnv("legend", c); break;
                        case "none":
                            e.deleteFromEnv("gLegend"), e.deleteFromEnv("legend"), h && h.remove(), c && c.remove() } }(e) }; var n = a(215),
                o = i(a(1039)),
                r = i(a(551)) },
        1039: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n, o, r, l, s, c = i(a(232)),
                h = i(a(229)),
                u = a(215),
                d = a(230),
                g = {},
                p = "rgba(192,192,192," + (u.isIE ? .002 : 1e-6) + ")",
                f = {}.hasOwnProperty,
                m = "M",
                v = "L";

            function b(e, t) { return function a(e, t) { var i, o; for (o in e) f.call(e, o) && (i = e[o], t[o] === n ? t[o] = i : "object" == typeof i && null !== i && a(i, t[o])) }(e, t), t }

            function x(e) { var t = e || "#000000"; return (0, u.getValidColor)(t) || "#000000" }

            function y(e) { var t, a = e.fontSize + ""; return a ? (t = a.replace(/(\d+)(px)*/, "$1px"), e.fontSize = t, e) : e }

            function C(e) { return !(e !== n && null != e && !isNaN(e)) } g.CAPTION = "CAPTION", g.LEGEND_BODY = "LEGEND_BODY", g.AXIS_LABEL = "LEGEND_LABEL", g.LEGEND_AXIS = "LEGEND_AXIS", g.RANGE = "RANGE", g.AXIS_VALUE = "AXIS_VALUE", (s = {}).legendCarpetConf = { spreadFactor: .85, allowDrag: !1, captionAlignment: "center", padding: { v: 3, h: 3 }, style: { fill: "#e4d9c1", stroke: "#c4b89d" } }, s.legendCaptionConf = { spreadFactor: .2, padding: { v: 2, h: 2 }, style: { fill: "#786B50", fontFamily: "sans-serif", fontSize: "12px", fontWeight: "bold", fontStyle: "normal" }, bound: { style: { stroke: "none" } } }, s.legendBodyConf = { spreadFactor: .8, padding: { v: 2, h: 2 }, bound: { style: { stroke: "none" } } }, s.legendAxisConf = { legendAxisHeight: 11, spreadFactor: .4, padding: { v: 1, h: 1 }, style: { stroke: "none", "stroke-opacity": 0, "stroke-width": 1 }, line: { grooveLength: 3, offset: 8, style: { stroke: "rgba(255, 255, 255, 0.65)", "stroke-width": 1.5 } }, shadow: { style: { stroke: "none", fill: (0, u.toRaphaelColor)({ FCcolor: { alpha: "25,0,0", angle: 360, color: "000000,FFFFFF,FFFFFF", ratio: "0,30,40" } }) } }, bound: { style: { stroke: "none" } } }, s.sliderGroupConf = { showTooltip: 1, outerCircle: { rFactor: 1.4, style: { fill: p, stroke: "#757575", "stroke-width": 3 } }, innerCircle: { rFactor: .65, style: { fill: p, stroke: "#FFFFFF" } } }, s.axisTextItemConf = { spreadFactor: .3, padding: { v: 1, h: 1 }, style: { fill: "#786B50", fontFamily: "sans-serif", fontSize: "12px", fontWeight: "normal", fontStyle: "normal" } }, o = { init: function(e) { l = e.chart }, legacyDataParser: function(e, t) { var a, i, o, r, s, c, h, d, g, p, f, m, v, b = {},
                        y = l.getFromEnv("number-formatter"); if (!e) return !1; for (b.mapByPercent = f = !!(0, u.pluckNumber)(e.mapbypercent, 0), a = e.color || [], e.minvalue === n && (e.minvalue = t.min !== n ? f ? 0 : t.min : 0), e.maxvalue === n && (e.maxvalue = t.max !== n ? f ? 100 : t.max : 100), m = !1, s = 0, h = a.length; s < h; s++)
                        if (a[s].maxvalue) { m = !0; break } for (m || (a = []), o = e.code, d = b.colorRange = [], b.gradient = !!(0, u.pluckNumber)(e.gradient, 1), a.length ? o = x(o) : (o ? (r = x(o), o = x()) : (o = x(), v = o, r = (0, u.getLightColor)(v, 1)), a.push({ code: r, maxvalue: e.maxvalue, label: n })), function(e) { var t, a, i, n = l.getFromEnv("number-formatter"); for (t = 0, a = e.length; t < a; t++)(i = e[t].maxvalue) && (e[t].maxvalue = n.getCleanValue(i)) }(a), a = a.sort((function(e, t) { return e.maxvalue - t.maxvalue })), g = p = e.minvalue && y.getCleanValue(e.minvalue), p = (g !== n || null !== g) && (f ? g + "%" : y.legendValue(g)), d.push({ code: (0, u.dehashify)(o), value: g, displayValue: p, label: e.startlabel }), s = 0, h = a.length; s < h; s++) c = x((i = a[s]).code || i.color), g = p = i.maxvalue, isNaN(parseInt(g, 10)) || (p = (g !== n || null !== g) && (f ? g + "%" : y.legendValue(g)), d.push({ code: (0, u.dehashify)(c), value: g, displayValue: p, label: (0, u.parseUnsafeString)(i.label || i.displayvalue) })); return d[d.length - 1].label = (0, u.parseUnsafeString)(e.endlabel || i.label), b }, getDefaultConf: function(e) { return s[e] } }; var k = function(e) {
                    (0, h["default"])(a, e); var t = a.prototype;

                    function a() { var t; return t = e.call(this) || this, r = (0, c["default"])(t), t.enabled = !1, t.drawOptions = {}, t.components = {}, t } return t.getType = function() { return "gradientLegend" }, t.getName = function() { return "gLegend" }, t.setColorRange = function(e) { var t = this.drawOptions.colorRange = e;
                        t && t._preparationGoneWrong && (this._dontPlot = !0) }, t.configureAttributes = function() { var e, t, a, i, r, l, s, c, h, d, g = this.getFromEnv("chart"),
                            p = this.getFromEnv("dataSource").chart,
                            f = this.conf = {},
                            m = p.outcnvbasefont,
                            v = p.outcnvbasefontsize,
                            b = p.outcnvbasefontcolor,
                            x = g.config.dataLabelStyle;
                        o.init({ chart: g }), this.data = this.getFromEnv("dataSource").colorrange, this._dontPlot || (this.drawOptions = { smartLabel: this.getFromEnv("smartLabel"), gLegend: this }, this._dontPlot = !1, this._recalculateLogicalSpace = !0, f.caption = (0, u.parseUnsafeString)((0, u.pluck)(p.legendcaption)), f.legendPosition = (0, u.pluck)(p.legendposition, "bottom").toLowerCase(), f.legendXPosition = (0, u.pluckNumber)(p.legendxposition, 0), f.legendYPosition = (0, u.pluckNumber)(p.legendyposition, 0), f.legendMaxHeight = (0, u.pluckNumber)(p.legendmaxheight, 0), f.legendMaxWidth = (0, u.pluckNumber)(p.legendmaxwidth, 0), f.legendVertical = "string" == typeof p.legendorientation && "vertical" === p.legendorientation.toLowerCase(), f.showLegend = (0, u.pluckNumber)(p.showlegend, 1), f.interactiveLegend = (0, u.pluckNumber)(p.interactivelegend, 1), f.showLegendLabels = (0, u.pluckNumber)(p.showlegendlabels, 1), e = p.legenditemfontcolor || b, t = p.legenditemfont || m, a = p.legenditemfontsize || v, i = (0, u.pluckNumber)(p.legenditemfontbold, 0), r = p.legendcaptionfontcolor || b, l = p.legendcaptionfont || m, s = p.legendcaptionfontsize || v, c = (0, u.pluckNumber)(p.legendcaptionfontbold, 1), d = (h = p.legendaxisbordercolor ? (0, u.hashify)((0, u.dehashify)(p.legendaxisbordercolor)) : n) ? (0, u.pluckNumber)(p.legendaxisborderalpha, 100) / 100 : n, f.axisTextItemConf = { style: { fill: e ? (0, u.convertColor)((0, u.pluck)(e)) : x.color, fontFamily: t ? (0, u.pluck)(t) : x.fontFamily, fontSize: a ? (0, u.pluckNumber)(a) : x.fontSize.match(/\d+/)[0], fontWeight: i ? "bold" : x.fontWeight } }, f.legendCaptionConf = { style: { fill: r ? (0, u.convertColor)((0, u.pluck)(r)) : x.color, fontFamily: l ? (0, u.pluck)(l) : x.fontFamily, fontSize: s ? (0, u.pluckNumber)(s) : x.fontSize.match(/\d+/)[0], fontWeight: c ? "bold" : x.fontWeight, fontStyle: "normal" } }, f.legendAxisConf = { legendAxisHeight: 11, style: { stroke: h, "stroke-opacity": d }, line: { style: { stroke: (0, u.convertColor)((0, u.pluck)(p.legendscalelinecolor, "FFF8E9"), (0, u.pluckNumber)(p.legendscalelinealpha, 100)), "stroke-width": (0, u.pluckNumber)(p.legendscalelinethickness) } } }, f.sliderGroupConf = { showTooltip: (0, u.pluckNumber)(p.showtooltip, 1), outerCircle: { rFactor: (0, u.pluckNumber)(p.sliderdiameterfactor), style: { stroke: (0, u.convertColor)((0, u.pluck)(p.legendpointerbordercolor, "757575"), (0, u.pluckNumber)(p.legendpointerborderalpha, 100)) } }, innerCircle: { rFactor: (0, u.pluckNumber)(p.sliderholediameterfactor), style: { stroke: (0, u.convertColor)((0, u.pluck)(p.legendpointercolor, "FFFFFF"), (0, u.pluckNumber)(p.legendpointeralpha, 100)) } } }, f.legendCarpetConf = { spreadFactor: (0, u.pluckNumber)(p.legendspreadfactor), allowDrag: !!(0, u.pluckNumber)(p.legendallowdrag, 0), captionAlignment: (0, u.pluck)(p.legendcaptionalignment, "center"), style: { fill: (0, u.convertColor)((0, u.pluck)(p.legendbgcolor, "e4d9c1"), (0, u.pluckNumber)(p.legendbgalpha, 100)), stroke: (0, u.convertColor)((0, u.pluck)(p.legendbordercolor, "c4b89d"), (0, u.pluckNumber)(p.legendborderalpha, 100)), "stroke-width": (0, u.pluckNumber)(p.legendborderthickness, 1) } }) }, t.postConfigureInit = function() { var e, t, a, i, n, r, l, s, c, h, u, d = this.conf,
                            p = d.legendPosition ? d.legendPosition.split("-") : [];
                        this.elem = {}, d.interactiveLegend ? (i = b(o.getDefaultConf("sliderGroupConf"), d.sliderGroupConf), this.sGroup ? ((a = this.elem.sGroup = this.sGroup).configure(i), this.elem.sGroup.gLegend = this) : (this.sGroup = this.elem.sGroup = a = new F(i), a.configure(i), this.elem.sGroup.gLegend = this)) : (this.sGroup && this.sGroup.dispose(), this.sGroup && delete this.sGroup), (i = b(o.getDefaultConf("legendCarpetConf"), d.legendCarpetConf)).legendPosition = "absolute" === p[0] && !d.legendVertical || "top" === p[0] || "bottom" === p[0] ? "bottom" : "right", u = o.getDefaultConf("legendBodyConf"), "absolute" === p[0] && !d.legendVertical || "top" === p[0] || "bottom" === p[0] ? (this.drawOptions.refSideKey = "canvasWidth", this.drawOptions.refOffsetKey = "canvasLeft", n = b(o.getDefaultConf("axisTextItemConf"), d.axisTextItemConf), u.legendPosition = "bottom", (h = b(o.getDefaultConf("legendAxisConf"), d.legendAxisConf)).legendPosition = "bottom", n.legendPosition = "bottom") : (this.drawOptions.refSideKey = "canvasHeight", this.drawOptions.refOffsetKey = "canvasTop", n = b(o.getDefaultConf("axisTextItemConf"), d.axisTextItemConf), u.legendPosition = "right", (h = b(o.getDefaultConf("legendAxisConf"), d.legendAxisConf)).legendPosition = "right", n.legendPosition = "right"), Object.keys(this.components).length || (this.components.LegendCarpet = new w, this.components.LegendBody = new A, this.components.LegendAxis = new E, this.components.LegendValues = new _, d.showLegendLabels && (this.components.LegendLabels = new N)), t = this.components.LegendAxis, s = this.components.LegendValues, e = this.components.LegendCarpet, r = this.components.LegendBody, d.showLegendLabels && (l = this.components.LegendLabels), this.components.LegendCarpet.configure(i), this.components.LegendValues.configure(n), this.components.LegendAxis.configure(h), this.components.LegendBody.configure(this.drawOptions.colorRange, u, n), d.showLegendLabels && l.configure(n), d.caption ? (c = b(o.getDefaultConf("legendCaptionConf"), d.legendCaptionConf), this.componentCaption && Object.keys(this.componentCaption).length ? this.componentCaption.configure(d.caption, c) : (this.componentCaption = new L).configure(d.caption, c), e.addCompositions(this.componentCaption, g.CAPTION)) : (e.removeCompositions(g.CAPTION), this.componentCaption && this.componentCaption.dispose(), delete this.componentCaption), a && t.addCompositions(a, g.RANGE), l && r.addCompositions(l, g.AXIS_LABEL), r.addCompositions(t, g.LEGEND_AXIS), r.addCompositions(s, g.AXIS_VALUE), e.addCompositions(r, g.LEGEND_BODY), this.elem.gl = new S(e) }, t.getValueRange = function() { var e, t, a = this.elem && this.elem.sGroup,
                            i = a.sliders,
                            n = a.extremes; return e = i["false"].currPos, t = n[1] - n[0] + i["true"].currPos, [{ min: a.getValueFormPixel(e), max: a.getValueFormPixel(t) }] }, t._dispose = function() { this.elem && this.elem.gl && this.elem.gl.dispose(), this.elem = {}, e.prototype._dispose.call(this) }, t.getCalculatedLogicalSpace = function() { return this._logicalArea }, t.setCalculatedLogicalSpace = function(e) { this._logicalArea = e }, t.getLogicalSpace = function(e) { var t, a, i, n, o, r = this.conf,
                            l = { height: 0, width: 0 },
                            s = this.drawOptions,
                            c = this.getFromEnv("chartConfig"),
                            h = "absolute" === r.legendPosition.split("-")[0]; return this._recalculateLogicalSpace ? this._dontPlot ? l : (this._recalculateLogicalSpace = !1, this.postConfigureInit(), r.showLegend ? (a = s.refSideKey, i = s.refOffsetKey, this.drawOptions.refSide = c[a], this.drawOptions.refOffset = c[i], this.drawOptions.maxOtherSide = e || this.drawOptions.maxOtherSide, this.elem.gl && (t = this.elem.gl.getLogicalSpace(this.drawOptions, !0), this.elem.gl && this.setCalculatedLogicalSpace(t)), this.getCalculatedLogicalSpace()) : l) : (a = s.refSideKey, i = s.refOffsetKey, this.drawOptions.refSide = c[a], h ? (n = r.legendMaxHeight <= 0 ? .8 * c.height : r.legendMaxHeight <= c.height ? r.legendMaxHeight : c.height, o = r.legendMaxWidth <= 0 ? .8 * c.width : r.legendMaxWidth <= c.width ? r.legendMaxWidth : c.width, r.legendVertical ? (this.drawOptions.refSide = n, this.drawOptions.maxOtherSide = o) : (this.drawOptions.refSide = o, this.drawOptions.maxOtherSide = n)) : (this.drawOptions.refOffset = c[i], this.drawOptions.maxOtherSide = e || this.drawOptions.maxOtherSide), t = this.elem.gl.getLogicalSpace(this.drawOptions, !0), this.setCalculatedLogicalSpace(t), this.getCalculatedLogicalSpace() || l) }, t.resetLegend = function() { var e;
                        (e = this.elem && this.elem.sGroup) && e.reset() }, t._calculateTopPosition = function(e) { var t = this.getFromEnv("chart"),
                            a = t.config,
                            i = e,
                            n = t.getChildren("caption") && t.getChildren("caption")[0],
                            o = t.getChildren("subCaption") && t.getChildren("subCaption")[0],
                            r = t.getChildren("chartMenuBar") && t.getChildren("chartMenuBar")[0],
                            l = a.oriTopSpace; return !a.toolbarY && r && r.props && r.props.height && (l > r.props.height + r.props.y || (i = r.props.y + r.props.height)), n && n.config && n.config.text && n.config.text !== u.BLANKSTRING && n.config.height && 1 === n.config.isOnTop && (i = n.config.height + n.config.y + n.config.captionPadding), o && o.config && o.config.height && 1 === o.config.isOnTop && (i = o.config.y + o.config.height + (n && n.config && n.config.captionPadding || 0)), i > e ? i : e }, t.allocatePosition = function() { var e, t, a, i, n, o, r, l, s = this.getFromEnv("chart"),
                            c = s.config,
                            h = this.conf || {},
                            u = h.legendPosition.split("-"),
                            d = c.canvasLeft,
                            g = c.canvasTop,
                            p = c.canvasWidth,
                            f = c.canvasHeight,
                            m = c.marginTop,
                            v = c.marginBottom,
                            b = c.marginRight,
                            x = c.marginLeft;
                        s.config.gLegendEnabled && (e = this.getCalculatedLogicalSpace(), a = h.width = e.width, i = h.height = e.height, "absolute" === u[0] ? (r = c.width - a, l = c.height - i, n = h.legendXPosition < 0 ? 0 : h.legendXPosition > r ? r : h.legendXPosition, o = h.legendYPosition < 0 ? 0 : h.legendYPosition > l ? l : h.legendYPosition) : "top" === u[0] || "bottom" === u[0] ? (t = p - a, n = "left" === u[1] ? d : "right" === u[1] ? d + (t > 0 ? t : 0) : d + (t < 0 ? 0 : t / 2), o = "top" === u[0] ? this._calculateTopPosition(m) : c.height - e.height - v - (c.actionBarHeight || 0)) : (t = f - i, o = "top" === u[1] ? g : "bottom" === u[1] ? g + t : g + (t < 0 ? 0 : t / 2), n = "left" === u[0] ? x : c.width - e.width - b), h.xPos = n, h.yPos = o) }, t.draw = function() { var e = this.getFromEnv("chart"),
                            t = e.getFromEnv("dataSource").colorrange,
                            a = this.conf || {},
                            i = e.hasGradientLegend;
                        e.config.gLegendEnabled && t && i && this.drawLegendComponent(a.xPos, a.yPos, { parentGroup: e.getContainer("parentgroup"), animationManager: e.getFromEnv("animationManager") }) }, t.drawLegendComponent = function(e, t, a) { var i, n = this.conf;
                        this._dontPlot || (n.showLegend ? (this.drawOptions.animationManager = a.animationManager, this.drawOptions.parentGroup = a.parentGroup, this.drawOptions.x = e, this.drawOptions.y = t, this.drawOptions.maxOtherSide = this.drawOptions.maxOtherSide || a.maxOtherSide, i = this.elem.gl.draw(this.drawOptions).getBBox(), n.xPos = i.x, n.yPos = i.y, n.height = i.height, n.width = i.width, this.enabled = !0) : this.enabled = !1) }, a }(d.ComponentInterface),
                S = function() {
                    function e(e) { this.carpet = e } var t = e.prototype; return t.draw = function(e) { return this.carpet.draw(e) }, t.getLogicalSpace = function(e, t) { return this.carpet.getLogicalSpace(e, t) }, t.dispose = function() { this.carpet && this.carpet.group && this.carpet.group.remove() }, e }(),
                w = function() {
                    function e(e) { this.conf = e, this._id = "GL_CARPET", this.compositionsByCategory = {}, this.node = n, this.group = n, this._lSpace = n, this.autoRecalculate = !1, this.groupName = "fc-gradient-legend", this.moveInstructions = {} } var t = e.prototype; return t.configure = function(e) { this.conf = e }, t.getName = function() { return "LegendCarpet" }, t.getType = function() { return "legend" }, t.addCompositions = function(e, t) { this.compositionsByCategory[t] = e }, t.removeCompositions = function(e) { delete this.compositionsByCategory[e] }, t.getBoundingBox = function(e) { var t, a, i = this.conf,
                            o = i.spreadFactor,
                            r = e.refSide,
                            l = e.alignment,
                            s = e.refOffset,
                            c = e.x,
                            h = e.y; return "bottom" === this.conf.legendPosition ? (t = i.width = r * o, a = e.maxOtherSide, !l || c !== n && null !== c || (c = (s + r) / 2 - t / 2)) : (a = i.height = r * o, t = e.maxOtherSide, !l || h !== n && null !== h || (h = (s + r) / 2 - a / 2)), { width: t, height: a, x: c, y: h } }, t.getPostCalcDecisionsH = function(e, t) { var a, i = this.conf.padding,
                            n = 0; for (a in this.moveInstructions = {}, t) n += t[a].height || 0;
                        e.height = n + 2 * i.v }, t.getLogicalSpace = function(e, t) { var a, i, n, o, r, l = this._lSpace,
                            s = ["CAPTION", "LEGEND_BODY"],
                            c = this.conf.padding,
                            h = this.compositionsByCategory,
                            u = 0,
                            d = {},
                            g = 0; if (l && !t) return l.isImpure = !0, l;
                        (C((l = this._lSpace = i = this.getBoundingBox(e)).x) || C(l.y) || C(l.height) || C(l.width)) && (this.autoRecalculate = !0), (n = b(i, {})).height -= 2 * c.v, n.width -= 2 * c.h, n.x += c.h, n.y += c.v; for (var p = 0; p < s.length; p++)(a = h[s[p]]) && ((r = b(n, {})).y += u, u = n.height * a.conf.spreadFactor, r.height = u + g, o = a.getLogicalSpace(b(r, {}), e, t), g = r.height - o.height, d[s[p]] = o, u = o.height); return this.getPostCalcDecisions(i, d), this._lSpace = i, i }, t.setupDragging = function() { var e = this.group,
                            t = 0,
                            a = 0,
                            i = 0,
                            n = 0;
                        e.css({ cursor: "move" }), e.drag((function(o, r) { t = o, a = r, e.attr({ transform: "t" + (i + t) + "," + (n + a) }) }), (function() { i += t, n += a }), u.stubFN) }, t.draw = function(e) { var t, a, i, n = this.conf,
                            o = ["CAPTION", "LEGEND_BODY"],
                            l = this.compositionsByCategory,
                            s = e.animationManager,
                            c = e.parentGroup;
                        this.getLogicalSpace(e, this.autoRecalculate), i = this._lSpace, this.group = t = s.setAnimation({ el: this.group || "group", attr: { name: this.groupName }, component: r, container: c, label: "carpetGroup" }), this.node = s.setAnimation({ el: this.node || "rect", attr: i, css: n.style, component: r, container: t, label: "rect" }); for (var h = 0; h < o.length; h++)(a = l[o[h]]) && a.draw(n.captionAlignment, i, { animationManager: s, colorRange: e.colorRange, numberFormatter: e.numberFormatter, parentLayer: t, smartLabel: e.smartLabel, moveInstructions: this.moveInstructions[void 0], gLegend: e.gLegend }); return n.allowDrag && this.setupDragging(), this.node }, t.getPostCalcDecisions = function(e, t) { return "bottom" === this.conf.legendPosition ? this.getPostCalcDecisionsH(e, t) : this.getPostCalcDecisionsV(e, t) }, t.getPostCalcDecisionsV = function(e, t) { var a, i, n, o = this.conf.padding,
                            r = Number.NEGATIVE_INFINITY,
                            l = this.moveInstructions; for (i in this.getPostCalcDecisionsH(e, t), t) r = r < (a = t[i].width) ? a : r; for (i in e.width = r + 2 * o.h, t)(n = r - (a = t[i].width)) && (l[i] = "t" + n / 2 + ",0") }, e }(),
                L = function() {
                    function e(e, t) { this.rawText = e, this.conf = t, this._id = "GL_CAPTION", this.node = n, this.bound = n, this._lSpace = n, this.LegendCaption = {}, this.LegendCaption.LEFT = { x: function(e, t) { return t.x + e.width / 2 + 2 } }, this.LegendCaption.RIGHT = { x: function(e, t) { return t.x + t.width - e.width / 2 - 2 } }, this.LegendCaption.CENTER = { x: function() { var e = arguments[1]; return e.x + e.width / 2 } } } var t = e.prototype; return t.configure = function(e, t) { this.rawText = e, this.conf = t }, t.getName = function() { return "LegendCaption" }, t.getType = function() { return "caption" }, t.getLogicalSpace = function(e, t, a) { var i, o, r, l, s = this.conf.padding,
                            c = this._lSpace,
                            h = this.rawText,
                            u = t.gLegend.getFromEnv("chartConfig"); return c && !a ? (c.isImpure = !0, c) : (c = this._lSpace = { bound: { height: 0, width: 0 }, node: { logicArea: n, smartText: n } }, i = t.smartLabel, h ? ((o = b(e, {})).height -= 2 * s.v, o.width -= 2 * s.h, o.x += s.h, o.y += s.v, i.useEllipsesOnOverflow(u.useEllipsesWhenOverflow), y(l = b(this.conf.style, {})), i.setStyle(this._metaStyle = l), r = i.getSmartText(h, o.width, o.height), o.height = r.height, o.width = r.width, e.height = r.height + 2 * s.v, e.width = r.width + 2 * s.h, c.node.smartText = r, c.node.logicArea = o, c.bound = e, e) : c.bound) }, t.draw = function() { var e, t, a, i, n, o, l, s, c, h, u, d = this.conf,
                            g = d.bound || {}; return arguments.length >= 3 ? (l = arguments[0], s = arguments[1], c = arguments[2]) : arguments.length >= 2 && (l = arguments[0], c = arguments[1]), e = c.parentLayer, u = c.animationManager, this.group = t = u.setAnimation({ el: this.group || "group", attr: { name: "legend-caption" }, css: d.style, component: r, container: e }), this.getLogicalSpace(s, c), h = (n = this._lSpace).node, i = n.bound, this.bound = a = u.setAnimation({ el: this.bound || "rect", attr: i, css: g.style, container: t, component: r }), o = "string" == typeof l ? this.LegendCaption[l.toUpperCase()].x(h.smartText, s || h.logicArea) : l, this.node = u.setAnimation({ el: this.node || "text", attr: { text: h.smartText.text, x: o, y: h.logicArea.y + h.smartText.height / 2, lineHeight: this._metaStyle.lineHeight, fill: d.style.fill }, container: t, component: r }), { group: t, bound: a, node: this.node } }, t.dispose = function() { this.group.remove(), this.bound.remove(), this.node.remove() }, e }(),
                A = function() {
                    function e(e, t, a) { this.colorRange = e, this.conf = t, this.childTextConf = a, this._id = "GL_BODY", this.bound = n, this.group = n, this.compositionsByCategory = {}, this._lSpace = n, this.SC_STACK = [g.AXIS_LABEL, g.LEGEND_AXIS, g.AXIS_VALUE], this.DARW_STACK = [g.AXIS_VALUE, g.LEGEND_AXIS, g.AXIS_LABEL] } var t = e.prototype; return t.configure = function(e, t, a) { this.colorRange = e, this.conf = t, this.childTextConf = a, this.compositionsByCategory = {} }, t.getName = function() { return "LegendBody" }, t.getType = function() { return "legend" }, t.addCompositions = function(e, t) { this.compositionsByCategory[t] = e }, t.getSpaceTaken = function(e) { return "bottom" === this.conf.legendPosition ? e.height : e.width }, t.getLogicalSpace = function(e, t, a) { var i, o, r, l, s, c, h, u = this._lSpace,
                            d = this.conf.padding,
                            g = this.compositionsByCategory,
                            p = 0; if (u && !a) return u.isImpure = !0, u; for (u = this._lSpace = { bound: { height: 0, width: 0 }, node: { logicArea: n } }, (l = b(e, {})).height -= 2 * d.v, l.width -= 2 * d.h, l.x += d.h, l.y += d.v, s = this.getCompositionPlotAreaFor(l), t.colorRange = this.colorRange, c = 0, h = this.SC_STACK.length; c < h; c++)(i = g[this.SC_STACK[c]]) && (o = s(r, i.conf.spreadFactor), r = i.getLogicalSpace(b(o, {}), t, a), p += this.getSpaceTaken(r)); return this.updateEffectivePlotArea(e, l, p), u.node.logicArea = l, u.bound = e, e }, t.draw = function() { var e, t, a, i, n, o, l, s, c, h, u = this.childTextConf,
                            d = this.conf,
                            g = d.bound.style || {},
                            p = this.compositionsByCategory; for (arguments.length >= 3 ? (o = arguments[1], s = arguments[2]) : arguments.length >= 2 && (s = arguments[1]), t = s.parentLayer, e = s.animationManager, this.getLogicalSpace(o, s), l = this._lSpace, this.group = n = e.setAnimation({ el: this.group || "group", attr: { name: "legend-body", transform: "t0,0" }, css: u.style, container: t, component: r }), this.bound = a = e.setAnimation({ el: this.bound || "rect", attr: l.bound, css: g, container: n, component: r }), s.colorRange = this.colorRange, s.parentLayer = n, c = 0, h = this.DARW_STACK.length; c < h; c++)(i = p[this.DARW_STACK[c]]) && i.draw(s); return s.moveInstructions && n.attr({ transform: s.moveInstructions }), { bound: a, group: n } }, t.getCompositionPlotAreaFor = function(e) { var t, a = "bottom" === this.conf.legendPosition; return t = b(e, {}),
                            function(i, n) { var o = i; return o = o || {}, a ? (t.y += o.height || 0, t.height = e.height * n) : (t.x += o.width || 0, t.width = e.width * n), t } }, t.updateEffectivePlotArea = function(e, t, a) { var i = this.conf.padding; "bottom" === this.conf.legendPosition ? (t.height = a, e.height = a + 2 * i.v) : (t.width = a, e.width = a + 2 * i.h) }, e }(),
                N = function() {
                    function e(e) { this.conf = e, this.node = [], this._id = "GL_LABELS" } var t = e.prototype; return t.configure = function(e) { this.conf = e }, t.getType = function() { return "label" }, t.getName = function() { return "LegendLabel" }, t.getEffectivePlotArea = function(e) { var t = this.conf.padding; return e.height -= 2 * t.v, e.width -= 2 * t.h, e.x += t.h, e.y += t.v, e }, t.getLogicalSpace = function(e, t, a) { var i, o, r, l, s, c, h, d, g, p, f, m, v, x, C, k, S, w, L, A, N, E, T, F = "bottom" === this.conf.legendPosition,
                            _ = this._lSpace,
                            P = this.conf,
                            D = P.padding,
                            I = [],
                            M = t.gLegend.getFromEnv("chartConfig"),
                            O = []; if (_ && !a) return _.isImpure = !0, _; for (i = t.colorRange, o = t.smartLabel, p = i.getCumulativeValueRatio(), r = i.colorRange, v = (_ = this._lSpace = { bound: { height: 0, width: 0 }, node: { logicArea: n, smartTexts: [] } }).node.smartTexts, d = b(e, {}), C = this.getEffectivePlotArea(d), T = F ? C.width : C.height, o.useEllipsesOnOverflow(M.useEllipsesWhenOverflow), E = b(P.style, {}), y(this._metaStyle = E), o.setStyle(E), k = o.getSmartText("W"), l = 0, s = r.length; l < s; l++)(g = (0, u.parseUnsafeString)(r[l].label)) ? O.push({ oriIndex: l, label: g }) : v[l] = n; if (0 === (s = O.length)) return { height: 0, width: 0 }; for (m = f = s > 1 ? (p[O[s - 1].oriIndex] - p[O[0].oriIndex]) / 2 * T / 100 : Math.max(p[O[0].oriIndex], 100 - p[O[0].oriIndex]) / 2 * T / 100, F ? ((A = o.getSmartText(O[0].label, m, C.height)).x = p[O[0].oriIndex] * C.width / 100, c = A.x + A.width) : ((A = o.getSmartText(O[0].label, m, C.width)).y = p[O[0].oriIndex] * C.height / 100, c = A.y + A.width), I.push(A.height), v[O[0].oriIndex] = A, F ? ((A = o.getSmartText(O[s - 1].label, m, C.height)).x = p[O[s - 1].oriIndex] * C.width / 100, h = A.x - A.width) : ((A = o.getSmartText(O[s - 1].label, m, C.width)).y = p[O[s - 1].oriIndex] * C.height / 100, h = A.y - A.width), I.push(A.height), v[O[s - 1].oriIndex] = A, L = c, l = 1; l < s - 1; l++) g = O[l].label, N = O[l].oriIndex, A = n, S = l + 1 === s - 1 ? h : p[O[l + 1].oriIndex] * T / 100, w = p[O[l].oriIndex] * T / 100, (f = Math.min(w - L, S - w)) > 2 * k.width && (F ? (A = o.getSmartText(g, f, C.height)).x = p[N] * C.width / 100 : (A = o.getSmartText(g, f, C.width)).y = p[N] * C.height / 100, L = f, I.push(A.height)), v[O[l].oriIndex] = A; return x = Math.max.apply(Math, I), F ? (C.height = x, e.height = x + 2 * D.v) : (C.width = x, e.width = x + 2 * D.v), _.node.logicArea = C, _.bound = e, e }, t.draw = function() { var e, t, a, i, n, o, l, s, c, h, u, d, g = "bottom" === this.conf.legendPosition,
                            p = this.conf,
                            f = p.bound && p.bound.style || { stroke: "none" },
                            m = {};
                        arguments.length >= 2 && arguments[1] ? (i = arguments[0], l = arguments[1]) : arguments.length >= 1 && (l = arguments[0]), d = l.animationManager, e = l.parentLayer, this.getLogicalSpace(i, l), c = (o = this._lSpace).node.logicArea, h = o.node.smartTexts, this.group = a = d.setAnimation({ el: this.group || "group", attr: { name: "legend-labels" }, container: e, component: r }), this.bound = t = d.setAnimation({ el: this.bound || "rect", attr: o.bound, css: f, container: a, component: r }); for (var v = 0; v < this.node.length; v++) this.node[v].remove(); for (this.node = [], s = 0, u = h.length; s < u; s++)(n = h[s]) && (g ? (m.y = c.y + n.height / 2, m.x = s === u - 1 ? c.x + n.x - n.width / 2 : s ? c.x + n.x : c.x + n.x + n.width / 2) : (m.x = c.x + n.height / 2, m.y = s === u - 1 ? c.y + n.y - n.width / 2 : s ? c.y + n.y : c.y + n.y + n.width / 2), this.node.push(d.setAnimation({ el: "text", attr: { text: n.text, x: m.x, y: m.y, lineHeight: this._metaStyle.lineHeight, fill: p.style.fill, transform: g ? "R0" : "R270," + m.x + "," + m.y }, container: a, component: r }))); return { group: a, bound: t, node: this.node } }, e }(),
                E = function() {
                    function e(e) { this.conf = e, this._id = "FL_AXIS", this.node = n, this.group = n, this.shadow = n, this.markerLine = n, this.compositionsByCategory = {} } var t = e.prototype; return t.configure = function(e) { this.conf = e }, t.getName = function() { return "LegendAxis" }, t.getType = function() { return "axis" }, t.addCompositions = function(e, t) { this.compositionsByCategory[t] = e }, t.getLogicalSpace = function() { var e, t, a, i, o, r, l = "bottom" === this.conf.legendPosition,
                            s = arguments[0],
                            c = arguments[2],
                            h = this._lSpace,
                            u = this.conf,
                            d = u.padding,
                            p = u.legendAxisHeight,
                            f = this.compositionsByCategory,
                            m = 0; return h && !c ? (h.isImpure = !0, h) : (h = this._lSpace = { bound: { height: 0, width: 0 }, node: { logicArea: n } }, (o = b(s, {})).height -= 2 * d.v, o.width -= 2 * d.h, o.x += d.h, o.y += d.v, e = p / 2 + u.line.offset, t = p / 2, (i = f[g.RANGE]) && (r = i.sliders["false"].conf.outerCircle.rFactor * p, t += m = Math.max(r / 2 - p / 2, 0)), l ? (o.y += m, o.height = a = t + e + m, s.height = a + 2 * d.v) : (o.x += m, o.width = a = t + e + m, s.width = a + 2 * d.v), h.node.logicArea = o, h.bound = s, s) }, t.getDrawableAxisArea = function(e) { var t = this.conf,
                            a = "bottom" === this.conf.legendPosition; return { x: e.x, y: e.y, width: a ? e.width : t.legendAxisHeight, height: a ? t.legendAxisHeight : e.height, r: t.legendAxisHeight / 2 } }, t.preDrawingRangeParamV = function(e) { return { x: e.x + e.width / 2, calculationBase: e.width, rangeStart: e.y, rangeEnd: e.y + e.height, prop: "x" } }, t.preDrawingRangeParamH = function(e) { return { y: e.y + e.height / 2, calculationBase: e.height, rangeStart: e.x, rangeEnd: e.x + e.width, prop: "y" } }, t.preDrawingRangeParam = function(e) { return "bottom" === this.conf.legendPosition ? this.preDrawingRangeParamH(e) : this.preDrawingRangeParamV(e) }, t.getScaleMarkerPathStrH = function(e, t) { var a, i, n, o, r, l = b(e, {}),
                            s = this.conf.line,
                            c = u.BLANKSTRING,
                            h = u.BLANKSTRING; for (l.x += l.r, l.width -= 2 * l.r, r = l.y + l.height, a = 0, i = t.length; a < i; a++) n = t[a], o = l.x + n * l.width / 100, c += m + o + "," + (r - s.grooveLength) + v + o + "," + (r + s.offset); return c + (h += m + l.x + "," + (r + s.offset) + v + (l.x + l.width) + "," + (r + s.offset)) }, t.getColorGradientH = function(e) { return { axis: e.getBoxFill(), shadow: (0, u.toRaphaelColor)({ FCcolor: { alpha: "25,0,0", angle: 90, color: "000000,FFFFFF,FFFFFF", ratio: "0,30,40" } }) } }, t.draw = function() { var e, t, a, i, n, o, l, s, c, h, u, d, p, f, m = this.conf,
                            v = m.bound || {},
                            b = m.line,
                            x = v.style || {},
                            y = this.compositionsByCategory; for (a in arguments.length >= 2 ? (t = arguments[0], d = arguments[1]) : arguments.length >= 1 && (d = arguments[0]), p = d.animationManager, e = d.parentLayer, n = (i = d.colorRange).getCumulativeValueRatio(), this.getLogicalSpace(t, d), u = this._lSpace, this.group = l = p.setAnimation({ el: this.group || "group", attr: { name: "legend-axis" }, container: e, component: r }), this.bound = p.setAnimation({ el: this.bound || "rect", attr: u.bound, css: x, component: r, container: l }), h = this.getDrawableAxisArea(u.node.logicArea), c = this.getColorGradient(i), m.style.fill = c.axis, m.shadow.style.fill = c.shadow, this.node = p.setAnimation({ el: this.node || "rect", attr: h, css: m.style, container: l, component: r }), this.shadow = p.setAnimation({ el: this.shadow || "rect", attr: h, css: m.shadow.style, container: l, component: r }), f = this.getScaleMarkerPathStr(h, n), this.path = p.setAnimation({ el: this.path || "path", attr: { path: f }, css: b.style, container: l, component: r }), y) switch (o = y[a], a) {
                            case g.RANGE:
                                d[(s = this.preDrawingRangeParam(h)).prop] = s[s.prop], d.key = s.prop, d.rCalcBase = s.calculationBase, d.parentLayer = l, o.draw(s.rangeStart, s.rangeEnd, d) } }, t.getScaleMarkerPathStr = function(e, t) { return "bottom" === this.conf.legendPosition ? this.getScaleMarkerPathStrH(e, t) : this.getScaleMarkerPathStrV(e, t) }, t.getColorGradient = function(e) { return "bottom" === this.conf.legendPosition ? this.getColorGradientH(e) : this.getColorGradientV(e) }, t.getScaleMarkerPathStrV = function(e, t) { var a, i, n, o, r, l = b(e, {}),
                            s = this.conf.line,
                            c = u.BLANKSTRING,
                            h = u.BLANKSTRING; for (l.y += l.r, l.height -= 2 * l.r, o = l.x + l.width, a = 0, n = t.length; a < n; a++) i = t[a], r = l.y + i * l.height / 100, c += m + (o - s.grooveLength) + "," + r + v + (o + s.offset) + "," + r; return c + (h += m + (o + s.offset) + "," + l.y + v + (o + s.offset) + "," + (l.y + l.height)) }, t.getColorGradientV = function(e) { return { axis: e.getBoxFill(!0), shadow: (0, u.toRaphaelColor)({ FCcolor: { alpha: "25,0,0", angle: 360, color: "000000,FFFFFF,FFFFFF", ratio: "0,30,40" } }) } }, e }(),
                T = function() {
                    function e(e, t, a) { this.conf = t.conf, this.sliderIndex = e, this.rangeGroup = t.sliderGroup, this._id = a, this.node = n, this.tracker = n, this.currPos = 0, this.swing = [] } var t = e.prototype; return t.configure = function(e, t, a) { this.conf = t.conf, this.sliderIndex = e, this.rangeGroup = t.sliderGroup, this._id = a, this.currPos = 0, this.swing = [] }, t.getType = function() { return "slider" }, t.getName = function() { return "Slider" }, t.updateSwingRange = function(e, t) { this.swing[+e] = t }, t.draw = function(e, t, a, i) { var n, o, l, s, c, h, u, d = i.parentLayer,
                            g = i.animationManager,
                            f = this.conf,
                            m = f.outerCircle,
                            v = f.innerCircle,
                            b = g.getFromEnv("chart").config,
                            x = Math.ceil(m.rFactor * i.rCalcBase / 2),
                            y = Math.ceil(v.rFactor * i.rCalcBase / 2),
                            C = x - y,
                            k = i.gLegend.getFromEnv("toolTipController"),
                            S = this.sliderIndex; return f.outerRadius = x, f.innerRadius = y, this._scaleVal = t, v.style["stroke-width"] = C, y += s = Math.ceil(m.style["stroke-width"] / 2), o = this.node = g.setAnimation({ el: this.node || "group", attr: { name: "fc-gl-slider", cursor: "pointer", transform: "t0,0" }, container: d, component: r }), "x" === i.key ? (c = a, h = e, h += S ? -y : +y) : (c = e, h = a, c += S ? -y : +y), this.oCircle = g.setAnimation({ el: this.oCircle || "circle", attr: { cx: c, cy: h, r: x }, css: m.style, container: o, component: r }), this.iCircle = g.setAnimation({ el: this.iCircle || "circle", attr: { cx: c, cy: h, r: y }, css: v.style, container: o, component: r }), u = this.tracker = g.setAnimation({ el: this.tracker || "circle", attr: { cx: c, cy: h, r: x + 5, fill: p, stroke: p, cursor: "pointer" }, container: o, component: r }), o.attr({ transform: "x" === i.key ? "t0," + this.currPos : "t" + this.currPos + ",0" }), n = b.showToolTip ? t : "", k.enableToolTip(u, n), this._dragAPI = l = this.getDragAPI("x" === i.key), u.undrag(), u.drag(l.dragging, l.dragStart, l.dragEnd), { translateAscending: x + s } }, t.getDragAPI = function(e) { var t, a, i, n, o = this,
                            r = o.node,
                            l = o.sliderIndex,
                            s = o.rangeGroup,
                            c = o.conf.innerRadius; return { dragging: function(h) { var u, d, g, p, f; return h.stopPropagation(), g = e ? h.data[1] : h.data[0], l ? (u = t[0] - t[1] + c, d = 0) : (u = 0, d = t[1] - t[0] - c), (f = o.currPos + g) < u ? g += u - f : f > d && (g -= f - d), r.attr({ transform: e ? "t0," + (o.currPos + g) : "t" + (o.currPos + g) + ",0" }), a = g, i && clearTimeout(i), i = setTimeout((function() { s.updateWhenInRest(o, o.currPos + g) }), 100), p = s.updateWhenInMove(o, o.currPos + g), o.conf.showTooltip && o.tracker.data("__FC_tooltipText", p), n = !0, !0 }, dragStart: function(e) { e.stopPropagation(), t = o.swing, n = !1, s.dragStarted(o) }, dragEnd: function() { var e;
                                s.dragCompleted(o, n, o.currPos + a), n && (i && clearTimeout(i), i = setTimeout((function() { s.updateWhenInRest(o, o.currPos) }), 100), o.currPos += a, e = t[+l] + o.currPos, s.updateRange(o, e)) } } }, t.dispose = function() { this.node.remove(), this.oCircle.remove(), this.iCircle.remove(), this.tracker.remove() }, e }(),
                F = function() {
                    function e(e) { var t = e,
                            a = {};
                        this._id = "GL_SG1", this.conf = e, a.conf = t, this.extremes = [], this.sliders = {}, this.min = n, this.max = n, a.sliderGroup = this, this.valueRange = [], this.callbacks = [], this.sliders[!1] = new T(!1, a, this._id + "_0"), this.sliders[!0] = new T(!0, a, this._id + "_1") } var t = e.prototype; return t.configure = function(e) { var t = e,
                            a = {};
                        this.min = n, this.max = n, this.conf = e, a.conf = t, a.sliderGroup = this, this.sliders[!1].configure(!1, a, this._id + "_0"), this.sliders[!0].configure(!0, a, this._id + "_1") }, t.getType = function() { return "slider" }, t.getName = function() { return "SliderGroup" }, t.initRange = function(e, t) { var a = e.sliderIndex;
                        this.extremes[+a] = t }, t.updateRange = function(e, t) { var a = e.sliderIndex;
                        this.sliders[!a].updateSwingRange(a, t) }, t.reset = function() { var e = {};
                        e.conf = this.conf, e.sliderGroup = this, this.min = n, this.max = n, this.sliders[!1].configure(!1, e, this._id + "_0"), this.sliders[!0].configure(!0, e, this._id + "_1"), this.draw.apply(this, this._drawParams) }, t.draw = function(e, t, a) { var i, n, o, r, l, s, c = this.sliders,
                            h = c[!1],
                            u = c[!0],
                            d = a.colorRange,
                            g = d.colorRange,
                            p = d.data.mapByPercent,
                            f = a.gLegend.getFromEnv("number-formatter"); return this._fcChart = a.gLegend.getFromEnv("chart"), this.getValueFormPixel = function(e, t, a, i) { var n = (t - e) / (i - a);
                            this.getValueFormPixel = function(t) { return e + n * t } }, this.updateWhenInMove = function(e, t) { this.updateWhenInMove = function(a, i) { var n, o, r = this.extremes; return n = a.sliderIndex ? r[1] - r[0] + i : i, o = this.getValueFormPixel(n), o = t ? parseFloat(o).toFixed(2) + "%" : e.legendValue(o) } }, this._drawParams = [e, t, a], this.updateWhenInMove(f, p), o = h.conf.outerCircle, n = h.conf.innerCircle, r = Math.ceil(n.rFactor * a.rCalcBase / 2), r += Math.ceil(o.style["stroke-width"] / 2), this.extremes[0] = e + r, this.extremes[1] = t - r, l = this.extremes[1] - this.extremes[0], this.min = this.min ? this.min : g[0].value, this.max = this.max ? this.max : g[g.length - 1].value, s = g[g.length - 1].value - g[0].value, h.currPos = l * (this.min - g[0].value) / s, u.currPos = l * (this.max - g[0].value) / s - l, h.draw(e, p ? f.legendPercentValue(this.min) : f.legendValue(this.min), a[a.key], a), i = u.draw(t, p ? f.legendPercentValue(this.max) : f.legendValue(this.max), a[a.key], a), h.swing = this.extremes.slice(0), u.swing = this.extremes.slice(0), h.swing[1] += u.currPos, u.swing[0] += h.currPos, this.getValueFormPixel(g[0].value, g[g.length - 1].value, this.extremes[0], this.extremes[1]), i }, t.updateWhenInRest = function(e, t) { var a, i, n = this.sliders,
                            o = this.extremes,
                            r = e.sliderIndex;
                        r ? (a = n[!r].currPos, i = o[1] - o[0] + t) : (a = t, i = o[1] - o[0] + n[!r].currPos), this.min = Number(this.getValueFormPixel(a).toFixed(2)), this.max = Number(this.getValueFormPixel(i).toFixed(2)), this.gLegend.fireEvent("rangeUpdated", [{ min: this.min, max: this.max }]) }, t.dragStarted = function(e) { var t = this.sliders,
                            a = this.extremes,
                            i = e.conf,
                            n = this._fcChart;
                        n.fireChartInstanceEvent("legendpointerdragstart", { pointerIndex: +e.sliderIndex, pointers: [{ value: this.getValueFormPixel(t["false"].currPos) }, { value: this.getValueFormPixel(a[1] - a[0] + t["true"].currPos) }], legendPointerHeight: i.outerRadius, legendPointerWidth: i.innerRadius, outerRadius: i.outerRadius, innerRadius: i.innerRadius }, [n.id]) }, t.dragCompleted = function(e, t, a) { var i, n, o = this.sliders,
                            r = this.extremes,
                            l = e.conf,
                            s = this.getValueFormPixel(o["false"].currPos),
                            c = this.getValueFormPixel(r[1] - r[0] + o["true"].currPos),
                            h = this._fcChart;
                        e.sliderIndex ? (i = s, n = this.getValueFormPixel(r[1] - r[0] + a)) : (i = this.getValueFormPixel(a), n = c), t && h.fireChartInstanceEvent("legendrangeupdated", { previousMinValue: s, previousMaxValue: c, minValue: i, maxValue: n }, [h.id]), h.fireChartInstanceEvent("legendpointerdragstop", { pointerIndex: +e.sliderIndex, pointers: [{ value: i }, { value: n }], legendPointerHeight: l.outerRadius, legendPointerWidth: l.innerRadius, outerRadius: l.outerRadius, innerRadius: l.innerRadius }, [h.id]) }, t.dispose = function() { this.sliders[!1].dispose(), this.sliders[!0].dispose() }, e }(),
                _ = function(e) {
                    function t() { var t; return (t = e.call(this, arguments[0]) || this)._id = "GL_VALUES", t.node = [], t }(0, h["default"])(t, e); var a = t.prototype; return a.configure = function(e) { this.conf = e }, a.getName = function() { return "LegendValues" }, a.getType = function() { return "legend" }, a.getLogicalSpace = function(e, t, a) { var i, o, r, l, s, c, h, u, d, g, p, f, m, v, x, C, k, S, w, L, A, N, E, T, F, _ = "bottom" === this.conf.legendPosition,
                            P = this._lSpace,
                            D = this.conf,
                            I = D.padding,
                            M = t.gLegend.getFromEnv("chartConfig"),
                            O = [],
                            R = []; if (P && !a) return P.isImpure = !0, P; for (i = t.colorRange, o = t.smartLabel, r = i.colorRange, h = i.getCumulativeValueRatio(), F = (P = this._lSpace = { bound: { height: 0, width: 0 }, node: { logicArea: n, smartTexts: [] } }).node.smartTexts, (L = b(e, {})).height -= 2 * I.v, L.width -= 2 * I.h, L.x += I.h, L.y += I.v, o.useEllipsesOnOverflow(M.useEllipsesWhenOverflow), T = b(D.style, {}), y(this._metaStyle = T), o.setStyle(T), E = o.getSmartText("W"), c = r.length, _ ? (p = u = (h[c - 1] - h[0]) / 2 * L.width / 100, N = r[0].displayValue, (l = o.getSmartText("string" != typeof N && N !== n && N.toString() || N, p, L.height)).x = h[0] * L.width / 100, f = l.x + l.width, O.push(l.height)) : (p = u = (h[c - 1] - h[0]) / 2 * L.height / 100, (l = o.getSmartText(r[0].displayValue, L.width, p)).y = h[0] * L.height / 100, x = l.y + l.width, R.push(l.width)), F[0] = l, _ ? ((l = o.getSmartText(r[c - 1].displayValue, p, L.height)).x = h[c - 1] * L.width / 100, v = l.x - l.width, O.push(l.height), m = f) : ((l = o.getSmartText(r[c - 1].displayValue, L.width, p)).y = h[c - 1] * L.height / 100, k = l.y - l.height, R.push(l.width), C = x), F[c - 1] = l, s = 1; s < c - 1; s++) l = n, A = r[s].displayValue, _ ? (d = s + 1 === c - 1 ? v : h[s + 1] * L.width / 100, g = h[s] * L.width / 100, (u = Math.min(g - m, d - g)) > 1.5 * E.width && ((l = o.getSmartText(A, 2 * u, L.height)).x = h[s] * L.width / 100, m = u, O.push(l.height))) : (d = s + 1 === c - 1 ? k : h[s + 1] * L.height / 100, g = h[s] * L.height / 100, (u = Math.min(g - C, d - g)) > 2 * E.height && ((l = o.getSmartText(A, L.width, 2 * u)).y = h[s] * L.height / 100, C = u, R.push(l.width))), F[s] = l; return _ ? (S = Math.max.apply(Math, O), L.height = S, e.height = S + 2 * I.v) : (w = Math.max.apply(Math, R), L.width = w, e.width = w + 2 * I.h), P.node.logicArea = L, P.bound = e, e }, a.draw = function() { var e, t, a, i, n, o, l, s, c, h, u, d, g, p = this.conf,
                            f = "bottom" === p.legendPosition,
                            m = p.bound && p.bound.style || { stroke: "none" },
                            v = {};
                        arguments.length >= 2 && arguments[1] ? (i = arguments[0], l = arguments[1]) : arguments.length >= 1 && (l = arguments[0]), g = l.animationManager, e = l.parentLayer, s = l.colorRange.getCumulativeValueRatio(), this.getLogicalSpace(i, l), o = (n = this._lSpace).node.logicArea, u = n.node.smartTexts, this.group = a = g.setAnimation({ el: this.group || "group", attr: { name: "legend-values" }, container: e, component: r }), this.bound = t = g.setAnimation({ el: this.bound || "rect", attr: n.bound, css: m, container: a, component: r }); for (var b = 0; b < this.node.length; b++) this.node[b].remove(); for (this.node = [], c = 0, h = s.length; c < h; c++)(d = u[c]) && (f ? (v.y = o.y + d.height / 2, v.x = c === h - 1 ? o.x + d.x - d.width / 2 : c ? o.x + d.x : o.x + d.x + d.width / 2) : (v.x = o.x + d.width / 2, v.y = c === h - 1 ? o.y + d.y - d.height / 2 : c ? o.y + d.y : o.y + d.y + d.height / 2), this.node.push(g.setAnimation({ el: "text", attr: { text: d.text, x: v.x, y: v.y, lineHeight: this._metaStyle.lineHeight, fill: p.style.fill }, container: a, component: r }))); return { group: a, bound: t } }, t }(N),
                P = k;
            t["default"] = P },
        1044: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t.getCoordinates = t.getPlotFromPixel = t.polarToCartesian = t.cartesianToPolar = t.rad2Deg = t.deg2Rad = void 0; var n = i(a(221)),
                o = function(e) { return e * (Math.PI / 180) },
                r = function(e) { return e * (180 / Math.PI) },
                l = function(e, t) { var a, i; return a = Math.sqrt(e * e + t * t), i = r(Math.atan(t / e)), e < 0 && t >= 0 || e < 0 && t < 0 ? i += 180 : e > 0 && t < 0 && (i += 360), { radius: a, theta: o(i) } },
                s = function(e, t, a) { void 0 === a && (a = !0); var i = t; return a || (i = o(i)), { x: e * Math.cos(i), y: e * Math.sin(i) } };
            t.getPlotFromPixel = function(e, t) { var a, i, n = e.x,
                    o = e.y,
                    s = t.getScale(); return i = l(n, o), a = s.getDomainValue(i.theta), r(a) }, t.getCoordinates = function(e, t) { var a, i, o = t.getScale(),
                    r = e.radius,
                    l = t.config,
                    c = l.axisDimention.centerX,
                    h = l.axisDimention.centerY; return r = (0, n["default"])(r, l.radius, 0), a = o.getRangeValue(e.theta), (i = s(r, a)).x += c, i.y += h, i }, t.polarToCartesian = s, t.cartesianToPolar = l, t.rad2Deg = r, t.deg2Rad = o },
        1048: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "axis" }];
            t["default"] = i },
        1064: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(372))["default"];
            t["default"] = n },
        1166: function(e, t, a) { "use strict";
            t.__esModule = !0, t.symbolList = void 0; var i, n = (0, a(223).getDep)("redraphael", "plugin"),
                o = Math.cos,
                r = Math.sin,
                l = Math.PI;
            t.symbolList = i, t.symbolList = i = { pinModeIcon: function(e, t, a) { var i = .5 * a,
                        n = e - a,
                        o = e + a,
                        r = e - i,
                        l = e + i,
                        s = e + .5,
                        c = s + 1,
                        h = s + 1.5,
                        u = t - a,
                        d = t + i,
                        g = t - i,
                        p = t + (a - i); return ["M", n, u, "L", r, g, r, p, n, d, e - .5, d, e, t + a + .5, s, d, o, d, l, p, l, g, o, u, h, u, h, g, h, p, c, p, c, g, h, g, h, u, "Z"] }, zoomOutIcon: function(e, t, a) { var i = e - .2 * a,
                        l = t - .2 * a,
                        s = .8 * a,
                        c = n.rad(43),
                        h = n.rad(48),
                        u = i + s * o(c),
                        d = l + s * r(c),
                        g = i + s * o(h),
                        p = l + s * r(h),
                        f = a,
                        m = n.rad(45); return ["M", u, d, "A", s, s, 0, 1, 0, g, p, "Z", "M", u + 1, d + 1, "L", u + f * o(m), d + f * r(m), g + f * o(m), p + f * r(m), g + 1, p + 1, "Z", "M", i - 2, l, "L", i + 2, l, "Z"] }, resetIcon: function(e, t, a) { var i = a,
                        n = e - i,
                        s = t,
                        c = (l / 2 + l) / 2,
                        h = e + i * o(c),
                        u = t + i * r(c),
                        d = 2 * i / 3; return ["M", n, s, "A", i, i, 0, 1, 1, h, u, "L", h + d, u - 1, h + 2, u + d - .5, h, u] }, zoomInIcon: function(e, t, a) { var i = e - .2 * a,
                        l = t - .2 * a,
                        s = .8 * a,
                        c = n.rad(43),
                        h = n.rad(48),
                        u = i + s * o(c),
                        d = l + s * r(c),
                        g = i + s * o(h),
                        p = l + s * r(h),
                        f = a,
                        m = n.rad(45); return ["M", u, d, "A", s, s, 0, 1, 0, g, p, "Z", "M", u + 1, d + 1, "L", u + f * o(m), d + f * r(m), g + f * o(m) - 1, p + f * r(m) - 1, g + 1, p + 1, "Z", "M", i - 2, l, "L", i + 2, l, "Z", "M", i, l - 2, "L", i, l + 2, "Z"] }, zoomModeIcon: function(e, t, a) { var i = [],
                        l = e - .2 * a,
                        s = t - .2 * a,
                        c = .8 * a,
                        h = n.rad(43),
                        u = n.rad(48),
                        d = l + c * o(h),
                        g = s + c * r(h),
                        p = l + c * o(u),
                        f = s + c * r(u),
                        m = a,
                        v = n.rad(45),
                        b = d + m * o(v),
                        x = g + m * r(v),
                        y = p + m * o(v) - 1,
                        C = f + m * r(v) - 1; return i = i.concat(["M", d, g, "A", c, c, 0, 1, 0, p, f, "Z", "M", d + 1, g + 1, "L", b, x, y, C, y + 1, C - 1, y + 1.5, C + 1.5, y - 1, C + 1, y, C, p + 1, f + 1, "Z", "M", l - 2, s, "L", l + 2, s, "Z", "M", l, s - 2, "L", l, s + 2, "Z"]) }, panModeIcon: function(e, t, a) { var i, n = a; return [].concat(["M", (i = e) - (n *= 2.5) / 16, t - n / 8, "L", i + n / 16, t - n / 8, "L", i + n / 16, t - n / 3.2, "L", i + 6 * n / 32, t - 10 * n / 32, "L", i, t - n / 2, "L", i - 6 * n / 32, t - 10 * n / 32, "L", i - n / 16, t - n / 3.2, "Z", "M", i + 4 * n / 32, t - 2 * n / 32, "L", i + 10 * n / 32, t - 2 * n / 32, "L", i + 10 * n / 32, t - 6 * n / 32, "L", i + 16 * n / 32, t, "L", i + 10 * n / 32, t + 6 * n / 32, "L", i + 10 * n / 32, t + 2 * n / 32, "L", i + 4 * n / 32, t + 2 * n / 32, "Z", "M", i + 2 * n / 32, t + 5 * n / 32, "L", i + 2 * n / 32, t + 10 * n / 32, "L", i + 6 * n / 32, t + 10 * n / 32, "L", i, t + 16 * n / 32, "L", i - 6 * n / 32, t + 10 * n / 32, "L", i - 2 * n / 32, t + 10 * n / 32, "L", i - 2 * n / 32, t + 5 * n / 32, "Z", "M", i - 4 * n / 32, t - 2 * n / 32, "L", i - 10 * n / 32, t - 2 * n / 32, "L", i - 10 * n / 32, t - 6 * n / 32, "L", i - 16 * n / 32, t, "L", i - 10 * n / 32, t + 6 * n / 32, "L", i - 10 * n / 32, t + 2 * n / 32, "L", i - 4 * n / 32, t + 2 * n / 32, "Z"]) } } },
        1207: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(610)),
                r = a(215),
                l = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "group" }, a.getName = function() { return "columnOverlappedGroup" }, a.setColumnPosition = function() { var e, t = this.getFromEnv("chart-attrib"),
                            a = this.getFromEnv("xAxis"),
                            i = this.getFromEnv("chart"),
                            n = this.getFromEnv("numOfColumns"),
                            o = Math.max((0, r.pluckNumber)(t.plotspacepercent), 0),
                            l = Math.max((0, r.pluckNumber)(o, 20) % 100, 0),
                            s = l / 200,
                            c = a.getPixel(0),
                            h = a.getPixel(1),
                            u = i.isBar ? i.config.maxBarHeight : i.config.maxColWidth,
                            d = Math.abs(h - c),
                            g = !0,
                            p = 0,
                            f = 0;
                        this.addToEnv("groupMaxWidth", d), this._mapChildren((function(e) { e.getState("removed") || !1 === e.getState("visible") || f++ })), this.addToEnv("numOfColumns", f), this.addToEnv("numColDiff", (0, r.pluckNumber)(n - f, 0)), void 0 === (e = this.getFromEnv("plotWidth")) && (e = (1 - .01 * o) * d || Math.min(d * (1 - 2 * s), u * (f || 1))), this._mapChildren((function(t) { t.getState("removed") || !1 === t.getState("visible") || (t.addToEnv("plotWidth", e - e / f * p), p++) })), h - NaN - (c - NaN + void 0) < 4 && (g = !1), 0 === l && (g = !0), this.addToEnv("isCrisp", g) }, t }(o["default"]);
            t["default"] = l },
        1217: function(e, t, a) {
            "use strict";
            (function(e) {
                /*!
                 * The buffer module from node.js, for the browser.
                 *
                 * @author   Feross Aboukhadijeh <http://feross.org>
                 * @license  MIT
                 */
                var i = a(1218),
                    n = a(1219),
                    o = a(1220);

                function r() { return s.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823 }

                function l(e, t) { if (r() < t) throw new RangeError("Invalid typed array length"); return s.TYPED_ARRAY_SUPPORT ? (e = new Uint8Array(t)).__proto__ = s.prototype : (null === e && (e = new s(t)), e.length = t), e }

                function s(e, t, a) { if (!(s.TYPED_ARRAY_SUPPORT || this instanceof s)) return new s(e, t, a); if ("number" == typeof e) { if ("string" == typeof t) throw new Error("If encoding is specified then the first argument must be a string"); return u(this, e) } return c(this, e, t, a) }

                function c(e, t, a, i) { if ("number" == typeof t) throw new TypeError('"value" argument must not be a number'); return "undefined" != typeof ArrayBuffer && t instanceof ArrayBuffer ? function(e, t, a, i) { if (t.byteLength, a < 0 || t.byteLength < a) throw new RangeError("'offset' is out of bounds"); if (t.byteLength < a + (i || 0)) throw new RangeError("'length' is out of bounds");
                        t = a === undefined && i === undefined ? new Uint8Array(t) : i === undefined ? new Uint8Array(t, a) : new Uint8Array(t, a, i);
                        s.TYPED_ARRAY_SUPPORT ? (e = t).__proto__ = s.prototype : e = d(e, t); return e }(e, t, a, i) : "string" == typeof t ? function(e, t, a) { "string" == typeof a && "" !== a || (a = "utf8"); if (!s.isEncoding(a)) throw new TypeError('"encoding" must be a valid string encoding'); var i = 0 | p(t, a),
                            n = (e = l(e, i)).write(t, a);
                        n !== i && (e = e.slice(0, n)); return e }(e, t, a) : function(e, t) { if (s.isBuffer(t)) { var a = 0 | g(t.length); return 0 === (e = l(e, a)).length || t.copy(e, 0, 0, a), e } if (t) { if ("undefined" != typeof ArrayBuffer && t.buffer instanceof ArrayBuffer || "length" in t) return "number" != typeof t.length || (i = t.length) != i ? l(e, 0) : d(e, t); if ("Buffer" === t.type && o(t.data)) return d(e, t.data) } var i; throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") }(e, t) }

                function h(e) { if ("number" != typeof e) throw new TypeError('"size" argument must be a number'); if (e < 0) throw new RangeError('"size" argument must not be negative') }

                function u(e, t) { if (h(t), e = l(e, t < 0 ? 0 : 0 | g(t)), !s.TYPED_ARRAY_SUPPORT)
                        for (var a = 0; a < t; ++a) e[a] = 0; return e }

                function d(e, t) { var a = t.length < 0 ? 0 : 0 | g(t.length);
                    e = l(e, a); for (var i = 0; i < a; i += 1) e[i] = 255 & t[i]; return e }

                function g(e) { if (e >= r()) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + r().toString(16) + " bytes"); return 0 | e }

                function p(e, t) { if (s.isBuffer(e)) return e.length; if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(e) || e instanceof ArrayBuffer)) return e.byteLength; "string" != typeof e && (e = "" + e); var a = e.length; if (0 === a) return 0; for (var i = !1;;) switch (t) {
                        case "ascii":
                        case "latin1":
                        case "binary":
                            return a;
                        case "utf8":
                        case "utf-8":
                        case undefined:
                            return G(e).length;
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return 2 * a;
                        case "hex":
                            return a >>> 1;
                        case "base64":
                            return z(e).length;
                        default:
                            if (i) return G(e).length;
                            t = ("" + t).toLowerCase(), i = !0 } }

                function f(e, t, a) { var i = !1; if ((t === undefined || t < 0) && (t = 0), t > this.length) return ""; if ((a === undefined || a > this.length) && (a = this.length), a <= 0) return ""; if ((a >>>= 0) <= (t >>>= 0)) return ""; for (e || (e = "utf8");;) switch (e) {
                        case "hex":
                            return T(this, t, a);
                        case "utf8":
                        case "utf-8":
                            return A(this, t, a);
                        case "ascii":
                            return N(this, t, a);
                        case "latin1":
                        case "binary":
                            return E(this, t, a);
                        case "base64":
                            return L(this, t, a);
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return F(this, t, a);
                        default:
                            if (i) throw new TypeError("Unknown encoding: " + e);
                            e = (e + "").toLowerCase(), i = !0 } }

                function m(e, t, a) { var i = e[t];
                    e[t] = e[a], e[a] = i }

                function v(e, t, a, i, n) { if (0 === e.length) return -1; if ("string" == typeof a ? (i = a, a = 0) : a > 2147483647 ? a = 2147483647 : a < -2147483648 && (a = -2147483648), a = +a, isNaN(a) && (a = n ? 0 : e.length - 1), a < 0 && (a = e.length + a), a >= e.length) { if (n) return -1;
                        a = e.length - 1 } else if (a < 0) { if (!n) return -1;
                        a = 0 } if ("string" == typeof t && (t = s.from(t, i)), s.isBuffer(t)) return 0 === t.length ? -1 : b(e, t, a, i, n); if ("number" == typeof t) return t &= 255, s.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? n ? Uint8Array.prototype.indexOf.call(e, t, a) : Uint8Array.prototype.lastIndexOf.call(e, t, a) : b(e, [t], a, i, n); throw new TypeError("val must be string, number or Buffer") }

                function b(e, t, a, i, n) { var o, r = 1,
                        l = e.length,
                        s = t.length; if (i !== undefined && ("ucs2" === (i = String(i).toLowerCase()) || "ucs-2" === i || "utf16le" === i || "utf-16le" === i)) { if (e.length < 2 || t.length < 2) return -1;
                        r = 2, l /= 2, s /= 2, a /= 2 }

                    function c(e, t) { return 1 === r ? e[t] : e.readUInt16BE(t * r) } if (n) { var h = -1; for (o = a; o < l; o++)
                            if (c(e, o) === c(t, -1 === h ? 0 : o - h)) { if (-1 === h && (h = o), o - h + 1 === s) return h * r } else -1 !== h && (o -= o - h), h = -1 } else
                        for (a + s > l && (a = l - s), o = a; o >= 0; o--) { for (var u = !0, d = 0; d < s; d++)
                                if (c(e, o + d) !== c(t, d)) { u = !1; break } if (u) return o }
                    return -1 }

                function x(e, t, a, i) { a = Number(a) || 0; var n = e.length - a;
                    i ? (i = Number(i)) > n && (i = n) : i = n; var o = t.length; if (o % 2 != 0) throw new TypeError("Invalid hex string");
                    i > o / 2 && (i = o / 2); for (var r = 0; r < i; ++r) { var l = parseInt(t.substr(2 * r, 2), 16); if (isNaN(l)) return r;
                        e[a + r] = l } return r }

                function y(e, t, a, i) { return H(G(t, e.length - a), e, a, i) }

                function C(e, t, a, i) { return H(function(e) { for (var t = [], a = 0; a < e.length; ++a) t.push(255 & e.charCodeAt(a)); return t }(t), e, a, i) }

                function k(e, t, a, i) { return C(e, t, a, i) }

                function S(e, t, a, i) { return H(z(t), e, a, i) }

                function w(e, t, a, i) { return H(function(e, t) { for (var a, i, n, o = [], r = 0; r < e.length && !((t -= 2) < 0); ++r) a = e.charCodeAt(r), i = a >> 8, n = a % 256, o.push(n), o.push(i); return o }(t, e.length - a), e, a, i) }

                function L(e, t, a) { return 0 === t && a === e.length ? i.fromByteArray(e) : i.fromByteArray(e.slice(t, a)) }

                function A(e, t, a) { a = Math.min(e.length, a); for (var i = [], n = t; n < a;) { var o, r, l, s, c = e[n],
                            h = null,
                            u = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1; if (n + u <= a) switch (u) {
                            case 1:
                                c < 128 && (h = c); break;
                            case 2:
                                128 == (192 & (o = e[n + 1])) && (s = (31 & c) << 6 | 63 & o) > 127 && (h = s); break;
                            case 3:
                                o = e[n + 1], r = e[n + 2], 128 == (192 & o) && 128 == (192 & r) && (s = (15 & c) << 12 | (63 & o) << 6 | 63 & r) > 2047 && (s < 55296 || s > 57343) && (h = s); break;
                            case 4:
                                o = e[n + 1], r = e[n + 2], l = e[n + 3], 128 == (192 & o) && 128 == (192 & r) && 128 == (192 & l) && (s = (15 & c) << 18 | (63 & o) << 12 | (63 & r) << 6 | 63 & l) > 65535 && s < 1114112 && (h = s) } null === h ? (h = 65533, u = 1) : h > 65535 && (h -= 65536, i.push(h >>> 10 & 1023 | 55296), h = 56320 | 1023 & h), i.push(h), n += u } return function(e) { var t = e.length; if (t <= 4096) return String.fromCharCode.apply(String, e); var a = "",
                            i = 0; for (; i < t;) a += String.fromCharCode.apply(String, e.slice(i, i += 4096)); return a }(i) } t.Buffer = s, t.SlowBuffer = function(e) {+e != e && (e = 0); return s.alloc(+e) }, t.INSPECT_MAX_BYTES = 50, s.TYPED_ARRAY_SUPPORT = e.TYPED_ARRAY_SUPPORT !== undefined ? e.TYPED_ARRAY_SUPPORT : function() { try { var e = new Uint8Array(1); return e.__proto__ = { __proto__: Uint8Array.prototype, foo: function() { return 42 } }, 42 === e.foo() && "function" == typeof e.subarray && 0 === e.subarray(1, 1).byteLength } catch (t) { return !1 } }(), t.kMaxLength = r(), s.poolSize = 8192, s._augment = function(e) { return e.__proto__ = s.prototype, e }, s.from = function(e, t, a) { return c(null, e, t, a) }, s.TYPED_ARRAY_SUPPORT && (s.prototype.__proto__ = Uint8Array.prototype, s.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species && s[Symbol.species] === s && Object.defineProperty(s, Symbol.species, { value: null, configurable: !0 })), s.alloc = function(e, t, a) { return function(e, t, a, i) { return h(t), t <= 0 ? l(e, t) : a !== undefined ? "string" == typeof i ? l(e, t).fill(a, i) : l(e, t).fill(a) : l(e, t) }(null, e, t, a) }, s.allocUnsafe = function(e) { return u(null, e) }, s.allocUnsafeSlow = function(e) { return u(null, e) }, s.isBuffer = function(e) { return !(null == e || !e._isBuffer) }, s.compare = function(e, t) { if (!s.isBuffer(e) || !s.isBuffer(t)) throw new TypeError("Arguments must be Buffers"); if (e === t) return 0; for (var a = e.length, i = t.length, n = 0, o = Math.min(a, i); n < o; ++n)
                        if (e[n] !== t[n]) { a = e[n], i = t[n]; break } return a < i ? -1 : i < a ? 1 : 0 }, s.isEncoding = function(e) { switch (String(e).toLowerCase()) {
                        case "hex":
                        case "utf8":
                        case "utf-8":
                        case "ascii":
                        case "latin1":
                        case "binary":
                        case "base64":
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return !0;
                        default:
                            return !1 } }, s.concat = function(e, t) { if (!o(e)) throw new TypeError('"list" argument must be an Array of Buffers'); if (0 === e.length) return s.alloc(0); var a; if (t === undefined)
                        for (t = 0, a = 0; a < e.length; ++a) t += e[a].length; var i = s.allocUnsafe(t),
                        n = 0; for (a = 0; a < e.length; ++a) { var r = e[a]; if (!s.isBuffer(r)) throw new TypeError('"list" argument must be an Array of Buffers');
                        r.copy(i, n), n += r.length } return i }, s.byteLength = p, s.prototype._isBuffer = !0, s.prototype.swap16 = function() { var e = this.length; if (e % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); for (var t = 0; t < e; t += 2) m(this, t, t + 1); return this }, s.prototype.swap32 = function() { var e = this.length; if (e % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); for (var t = 0; t < e; t += 4) m(this, t, t + 3), m(this, t + 1, t + 2); return this }, s.prototype.swap64 = function() { var e = this.length; if (e % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); for (var t = 0; t < e; t += 8) m(this, t, t + 7), m(this, t + 1, t + 6), m(this, t + 2, t + 5), m(this, t + 3, t + 4); return this }, s.prototype.toString = function() { var e = 0 | this.length; return 0 === e ? "" : 0 === arguments.length ? A(this, 0, e) : f.apply(this, arguments) }, s.prototype.equals = function(e) { if (!s.isBuffer(e)) throw new TypeError("Argument must be a Buffer"); return this === e || 0 === s.compare(this, e) }, s.prototype.inspect = function() { var e = "",
                        a = t.INSPECT_MAX_BYTES; return this.length > 0 && (e = this.toString("hex", 0, a).match(/.{2}/g).join(" "), this.length > a && (e += " ... ")), "<Buffer " + e + ">" }, s.prototype.compare = function(e, t, a, i, n) { if (!s.isBuffer(e)) throw new TypeError("Argument must be a Buffer"); if (t === undefined && (t = 0), a === undefined && (a = e ? e.length : 0), i === undefined && (i = 0), n === undefined && (n = this.length), t < 0 || a > e.length || i < 0 || n > this.length) throw new RangeError("out of range index"); if (i >= n && t >= a) return 0; if (i >= n) return -1; if (t >= a) return 1; if (this === e) return 0; for (var o = (n >>>= 0) - (i >>>= 0), r = (a >>>= 0) - (t >>>= 0), l = Math.min(o, r), c = this.slice(i, n), h = e.slice(t, a), u = 0; u < l; ++u)
                        if (c[u] !== h[u]) { o = c[u], r = h[u]; break } return o < r ? -1 : r < o ? 1 : 0 }, s.prototype.includes = function(e, t, a) { return -1 !== this.indexOf(e, t, a) }, s.prototype.indexOf = function(e, t, a) { return v(this, e, t, a, !0) }, s.prototype.lastIndexOf = function(e, t, a) { return v(this, e, t, a, !1) }, s.prototype.write = function(e, t, a, i) { if (t === undefined) i = "utf8", a = this.length, t = 0;
                    else if (a === undefined && "string" == typeof t) i = t, a = this.length, t = 0;
                    else { if (!isFinite(t)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
                        t |= 0, isFinite(a) ? (a |= 0, i === undefined && (i = "utf8")) : (i = a, a = undefined) } var n = this.length - t; if ((a === undefined || a > n) && (a = n), e.length > 0 && (a < 0 || t < 0) || t > this.length) throw new RangeError("Attempt to write outside buffer bounds");
                    i || (i = "utf8"); for (var o = !1;;) switch (i) {
                        case "hex":
                            return x(this, e, t, a);
                        case "utf8":
                        case "utf-8":
                            return y(this, e, t, a);
                        case "ascii":
                            return C(this, e, t, a);
                        case "latin1":
                        case "binary":
                            return k(this, e, t, a);
                        case "base64":
                            return S(this, e, t, a);
                        case "ucs2":
                        case "ucs-2":
                        case "utf16le":
                        case "utf-16le":
                            return w(this, e, t, a);
                        default:
                            if (o) throw new TypeError("Unknown encoding: " + i);
                            i = ("" + i).toLowerCase(), o = !0 } }, s.prototype.toJSON = function() { return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) } };

                function N(e, t, a) { var i = "";
                    a = Math.min(e.length, a); for (var n = t; n < a; ++n) i += String.fromCharCode(127 & e[n]); return i }

                function E(e, t, a) { var i = "";
                    a = Math.min(e.length, a); for (var n = t; n < a; ++n) i += String.fromCharCode(e[n]); return i }

                function T(e, t, a) { var i = e.length;
                    (!t || t < 0) && (t = 0), (!a || a < 0 || a > i) && (a = i); for (var n = "", o = t; o < a; ++o) n += V(e[o]); return n }

                function F(e, t, a) { for (var i = e.slice(t, a), n = "", o = 0; o < i.length; o += 2) n += String.fromCharCode(i[o] + 256 * i[o + 1]); return n }

                function _(e, t, a) { if (e % 1 != 0 || e < 0) throw new RangeError("offset is not uint"); if (e + t > a) throw new RangeError("Trying to access beyond buffer length") }

                function P(e, t, a, i, n, o) { if (!s.isBuffer(e)) throw new TypeError('"buffer" argument must be a Buffer instance'); if (t > n || t < o) throw new RangeError('"value" argument is out of bounds'); if (a + i > e.length) throw new RangeError("Index out of range") }

                function D(e, t, a, i) { t < 0 && (t = 65535 + t + 1); for (var n = 0, o = Math.min(e.length - a, 2); n < o; ++n) e[a + n] = (t & 255 << 8 * (i ? n : 1 - n)) >>> 8 * (i ? n : 1 - n) }

                function I(e, t, a, i) { t < 0 && (t = 4294967295 + t + 1); for (var n = 0, o = Math.min(e.length - a, 4); n < o; ++n) e[a + n] = t >>> 8 * (i ? n : 3 - n) & 255 }

                function M(e, t, a, i, n, o) { if (a + i > e.length) throw new RangeError("Index out of range"); if (a < 0) throw new RangeError("Index out of range") }

                function O(e, t, a, i, o) { return o || M(e, 0, a, 4), n.write(e, t, a, i, 23, 4), a + 4 }

                function R(e, t, a, i, o) { return o || M(e, 0, a, 8), n.write(e, t, a, i, 52, 8), a + 8 } s.prototype.slice = function(e, t) { var a, i = this.length; if ((e = ~~e) < 0 ? (e += i) < 0 && (e = 0) : e > i && (e = i), (t = t === undefined ? i : ~~t) < 0 ? (t += i) < 0 && (t = 0) : t > i && (t = i), t < e && (t = e), s.TYPED_ARRAY_SUPPORT)(a = this.subarray(e, t)).__proto__ = s.prototype;
                    else { var n = t - e;
                        a = new s(n, undefined); for (var o = 0; o < n; ++o) a[o] = this[o + e] } return a }, s.prototype.readUIntLE = function(e, t, a) { e |= 0, t |= 0, a || _(e, t, this.length); for (var i = this[e], n = 1, o = 0; ++o < t && (n *= 256);) i += this[e + o] * n; return i }, s.prototype.readUIntBE = function(e, t, a) { e |= 0, t |= 0, a || _(e, t, this.length); for (var i = this[e + --t], n = 1; t > 0 && (n *= 256);) i += this[e + --t] * n; return i }, s.prototype.readUInt8 = function(e, t) { return t || _(e, 1, this.length), this[e] }, s.prototype.readUInt16LE = function(e, t) { return t || _(e, 2, this.length), this[e] | this[e + 1] << 8 }, s.prototype.readUInt16BE = function(e, t) { return t || _(e, 2, this.length), this[e] << 8 | this[e + 1] }, s.prototype.readUInt32LE = function(e, t) { return t || _(e, 4, this.length), (this[e] | this[e + 1] << 8 | this[e + 2] << 16) + 16777216 * this[e + 3] }, s.prototype.readUInt32BE = function(e, t) { return t || _(e, 4, this.length), 16777216 * this[e] + (this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]) }, s.prototype.readIntLE = function(e, t, a) { e |= 0, t |= 0, a || _(e, t, this.length); for (var i = this[e], n = 1, o = 0; ++o < t && (n *= 256);) i += this[e + o] * n; return i >= (n *= 128) && (i -= Math.pow(2, 8 * t)), i }, s.prototype.readIntBE = function(e, t, a) { e |= 0, t |= 0, a || _(e, t, this.length); for (var i = t, n = 1, o = this[e + --i]; i > 0 && (n *= 256);) o += this[e + --i] * n; return o >= (n *= 128) && (o -= Math.pow(2, 8 * t)), o }, s.prototype.readInt8 = function(e, t) { return t || _(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e] }, s.prototype.readInt16LE = function(e, t) { t || _(e, 2, this.length); var a = this[e] | this[e + 1] << 8; return 32768 & a ? 4294901760 | a : a }, s.prototype.readInt16BE = function(e, t) { t || _(e, 2, this.length); var a = this[e + 1] | this[e] << 8; return 32768 & a ? 4294901760 | a : a }, s.prototype.readInt32LE = function(e, t) { return t || _(e, 4, this.length), this[e] | this[e + 1] << 8 | this[e + 2] << 16 | this[e + 3] << 24 }, s.prototype.readInt32BE = function(e, t) { return t || _(e, 4, this.length), this[e] << 24 | this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3] }, s.prototype.readFloatLE = function(e, t) { return t || _(e, 4, this.length), n.read(this, e, !0, 23, 4) }, s.prototype.readFloatBE = function(e, t) { return t || _(e, 4, this.length), n.read(this, e, !1, 23, 4) }, s.prototype.readDoubleLE = function(e, t) { return t || _(e, 8, this.length), n.read(this, e, !0, 52, 8) }, s.prototype.readDoubleBE = function(e, t) { return t || _(e, 8, this.length), n.read(this, e, !1, 52, 8) }, s.prototype.writeUIntLE = function(e, t, a, i) {
                    (e = +e, t |= 0, a |= 0, i) || P(this, e, t, a, Math.pow(2, 8 * a) - 1, 0); var n = 1,
                        o = 0; for (this[t] = 255 & e; ++o < a && (n *= 256);) this[t + o] = e / n & 255; return t + a }, s.prototype.writeUIntBE = function(e, t, a, i) {
                    (e = +e, t |= 0, a |= 0, i) || P(this, e, t, a, Math.pow(2, 8 * a) - 1, 0); var n = a - 1,
                        o = 1; for (this[t + n] = 255 & e; --n >= 0 && (o *= 256);) this[t + n] = e / o & 255; return t + a }, s.prototype.writeUInt8 = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 1, 255, 0), s.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), this[t] = 255 & e, t + 1 }, s.prototype.writeUInt16LE = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 2, 65535, 0), s.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8) : D(this, e, t, !0), t + 2 }, s.prototype.writeUInt16BE = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 2, 65535, 0), s.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 8, this[t + 1] = 255 & e) : D(this, e, t, !1), t + 2 }, s.prototype.writeUInt32LE = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 4, 4294967295, 0), s.TYPED_ARRAY_SUPPORT ? (this[t + 3] = e >>> 24, this[t + 2] = e >>> 16, this[t + 1] = e >>> 8, this[t] = 255 & e) : I(this, e, t, !0), t + 4 }, s.prototype.writeUInt32BE = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 4, 4294967295, 0), s.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e) : I(this, e, t, !1), t + 4 }, s.prototype.writeIntLE = function(e, t, a, i) { if (e = +e, t |= 0, !i) { var n = Math.pow(2, 8 * a - 1);
                        P(this, e, t, a, n - 1, -n) } var o = 0,
                        r = 1,
                        l = 0; for (this[t] = 255 & e; ++o < a && (r *= 256);) e < 0 && 0 === l && 0 !== this[t + o - 1] && (l = 1), this[t + o] = (e / r >> 0) - l & 255; return t + a }, s.prototype.writeIntBE = function(e, t, a, i) { if (e = +e, t |= 0, !i) { var n = Math.pow(2, 8 * a - 1);
                        P(this, e, t, a, n - 1, -n) } var o = a - 1,
                        r = 1,
                        l = 0; for (this[t + o] = 255 & e; --o >= 0 && (r *= 256);) e < 0 && 0 === l && 0 !== this[t + o + 1] && (l = 1), this[t + o] = (e / r >> 0) - l & 255; return t + a }, s.prototype.writeInt8 = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 1, 127, -128), s.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), e < 0 && (e = 255 + e + 1), this[t] = 255 & e, t + 1 }, s.prototype.writeInt16LE = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 2, 32767, -32768), s.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8) : D(this, e, t, !0), t + 2 }, s.prototype.writeInt16BE = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 2, 32767, -32768), s.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 8, this[t + 1] = 255 & e) : D(this, e, t, !1), t + 2 }, s.prototype.writeInt32LE = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 4, 2147483647, -2147483648), s.TYPED_ARRAY_SUPPORT ? (this[t] = 255 & e, this[t + 1] = e >>> 8, this[t + 2] = e >>> 16, this[t + 3] = e >>> 24) : I(this, e, t, !0), t + 4 }, s.prototype.writeInt32BE = function(e, t, a) { return e = +e, t |= 0, a || P(this, e, t, 4, 2147483647, -2147483648), e < 0 && (e = 4294967295 + e + 1), s.TYPED_ARRAY_SUPPORT ? (this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e) : I(this, e, t, !1), t + 4 }, s.prototype.writeFloatLE = function(e, t, a) { return O(this, e, t, !0, a) }, s.prototype.writeFloatBE = function(e, t, a) { return O(this, e, t, !1, a) }, s.prototype.writeDoubleLE = function(e, t, a) { return R(this, e, t, !0, a) }, s.prototype.writeDoubleBE = function(e, t, a) { return R(this, e, t, !1, a) }, s.prototype.copy = function(e, t, a, i) { if (a || (a = 0), i || 0 === i || (i = this.length), t >= e.length && (t = e.length), t || (t = 0), i > 0 && i < a && (i = a), i === a) return 0; if (0 === e.length || 0 === this.length) return 0; if (t < 0) throw new RangeError("targetStart out of bounds"); if (a < 0 || a >= this.length) throw new RangeError("sourceStart out of bounds"); if (i < 0) throw new RangeError("sourceEnd out of bounds");
                    i > this.length && (i = this.length), e.length - t < i - a && (i = e.length - t + a); var n, o = i - a; if (this === e && a < t && t < i)
                        for (n = o - 1; n >= 0; --n) e[n + t] = this[n + a];
                    else if (o < 1e3 || !s.TYPED_ARRAY_SUPPORT)
                        for (n = 0; n < o; ++n) e[n + t] = this[n + a];
                    else Uint8Array.prototype.set.call(e, this.subarray(a, a + o), t); return o }, s.prototype.fill = function(e, t, a, i) { if ("string" == typeof e) { if ("string" == typeof t ? (i = t, t = 0, a = this.length) : "string" == typeof a && (i = a, a = this.length), 1 === e.length) { var n = e.charCodeAt(0);
                            n < 256 && (e = n) } if (i !== undefined && "string" != typeof i) throw new TypeError("encoding must be a string"); if ("string" == typeof i && !s.isEncoding(i)) throw new TypeError("Unknown encoding: " + i) } else "number" == typeof e && (e &= 255); if (t < 0 || this.length < t || this.length < a) throw new RangeError("Out of range index"); if (a <= t) return this; var o; if (t >>>= 0, a = a === undefined ? this.length : a >>> 0, e || (e = 0), "number" == typeof e)
                        for (o = t; o < a; ++o) this[o] = e;
                    else { var r = s.isBuffer(e) ? e : G(new s(e, i).toString()),
                            l = r.length; for (o = 0; o < a - t; ++o) this[o + t] = r[o % l] } return this };
                var B = /[^+\/0-9A-Za-z-_]/g;

                function V(e) { return e < 16 ? "0" + e.toString(16) : e.toString(16) }

                function G(e, t) { var a;
                    t = t || Infinity; for (var i = e.length, n = null, o = [], r = 0; r < i; ++r) { if ((a = e.charCodeAt(r)) > 55295 && a < 57344) { if (!n) { if (a > 56319) {
                                    (t -= 3) > -1 && o.push(239, 191, 189); continue } if (r + 1 === i) {
                                    (t -= 3) > -1 && o.push(239, 191, 189); continue } n = a; continue } if (a < 56320) {
                                (t -= 3) > -1 && o.push(239, 191, 189), n = a; continue } a = 65536 + (n - 55296 << 10 | a - 56320) } else n && (t -= 3) > -1 && o.push(239, 191, 189); if (n = null, a < 128) { if ((t -= 1) < 0) break;
                            o.push(a) } else if (a < 2048) { if ((t -= 2) < 0) break;
                            o.push(a >> 6 | 192, 63 & a | 128) } else if (a < 65536) { if ((t -= 3) < 0) break;
                            o.push(a >> 12 | 224, a >> 6 & 63 | 128, 63 & a | 128) } else { if (!(a < 1114112)) throw new Error("Invalid code point"); if ((t -= 4) < 0) break;
                            o.push(a >> 18 | 240, a >> 12 & 63 | 128, a >> 6 & 63 | 128, 63 & a | 128) } } return o }

                function z(e) { return i.toByteArray(function(e) { if ((e = function(e) { return e.trim ? e.trim() : e.replace(/^\s+|\s+$/g, "") }(e).replace(B, "")).length < 2) return ""; for (; e.length % 4 != 0;) e += "="; return e }(e)) }

                function H(e, t, a, i) { for (var n = 0; n < i && !(n + a >= t.length || n >= e.length); ++n) t[n + a] = e[n]; return n }
            }).call(this, a(6))
        },
        1218: function(e, t, a) { "use strict";
            t.byteLength = function(e) { var t = c(e),
                    a = t[0],
                    i = t[1]; return 3 * (a + i) / 4 - i }, t.toByteArray = function(e) { var t, a, i = c(e),
                    r = i[0],
                    l = i[1],
                    s = new o(function(e, t, a) { return 3 * (t + a) / 4 - a }(0, r, l)),
                    h = 0,
                    u = l > 0 ? r - 4 : r; for (a = 0; a < u; a += 4) t = n[e.charCodeAt(a)] << 18 | n[e.charCodeAt(a + 1)] << 12 | n[e.charCodeAt(a + 2)] << 6 | n[e.charCodeAt(a + 3)], s[h++] = t >> 16 & 255, s[h++] = t >> 8 & 255, s[h++] = 255 & t;
                2 === l && (t = n[e.charCodeAt(a)] << 2 | n[e.charCodeAt(a + 1)] >> 4, s[h++] = 255 & t);
                1 === l && (t = n[e.charCodeAt(a)] << 10 | n[e.charCodeAt(a + 1)] << 4 | n[e.charCodeAt(a + 2)] >> 2, s[h++] = t >> 8 & 255, s[h++] = 255 & t); return s }, t.fromByteArray = function(e) { for (var t, a = e.length, n = a % 3, o = [], r = 0, l = a - n; r < l; r += 16383) o.push(h(e, r, r + 16383 > l ? l : r + 16383));
                1 === n ? (t = e[a - 1], o.push(i[t >> 2] + i[t << 4 & 63] + "==")) : 2 === n && (t = (e[a - 2] << 8) + e[a - 1], o.push(i[t >> 10] + i[t >> 4 & 63] + i[t << 2 & 63] + "=")); return o.join("") }; for (var i = [], n = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", l = 0, s = r.length; l < s; ++l) i[l] = r[l], n[r.charCodeAt(l)] = l;

            function c(e) { var t = e.length; if (t % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); var a = e.indexOf("="); return -1 === a && (a = t), [a, a === t ? 0 : 4 - a % 4] }

            function h(e, t, a) { for (var n, o, r = [], l = t; l < a; l += 3) n = (e[l] << 16 & 16711680) + (e[l + 1] << 8 & 65280) + (255 & e[l + 2]), r.push(i[(o = n) >> 18 & 63] + i[o >> 12 & 63] + i[o >> 6 & 63] + i[63 & o]); return r.join("") } n["-".charCodeAt(0)] = 62, n["_".charCodeAt(0)] = 63 },
        1219: function(e, t) { t.read = function(e, t, a, i, n) { var o, r, l = 8 * n - i - 1,
                    s = (1 << l) - 1,
                    c = s >> 1,
                    h = -7,
                    u = a ? n - 1 : 0,
                    d = a ? -1 : 1,
                    g = e[t + u]; for (u += d, o = g & (1 << -h) - 1, g >>= -h, h += l; h > 0; o = 256 * o + e[t + u], u += d, h -= 8); for (r = o & (1 << -h) - 1, o >>= -h, h += i; h > 0; r = 256 * r + e[t + u], u += d, h -= 8); if (0 === o) o = 1 - c;
                else { if (o === s) return r ? NaN : (g ? -1 : 1) * Infinity;
                    r += Math.pow(2, i), o -= c } return (g ? -1 : 1) * r * Math.pow(2, o - i) }, t.write = function(e, t, a, i, n, o) { var r, l, s, c = 8 * o - n - 1,
                    h = (1 << c) - 1,
                    u = h >> 1,
                    d = 23 === n ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
                    g = i ? 0 : o - 1,
                    p = i ? 1 : -1,
                    f = t < 0 || 0 === t && 1 / t < 0 ? 1 : 0; for (t = Math.abs(t), isNaN(t) || t === Infinity ? (l = isNaN(t) ? 1 : 0, r = h) : (r = Math.floor(Math.log(t) / Math.LN2), t * (s = Math.pow(2, -r)) < 1 && (r--, s *= 2), (t += r + u >= 1 ? d / s : d * Math.pow(2, 1 - u)) * s >= 2 && (r++, s /= 2), r + u >= h ? (l = 0, r = h) : r + u >= 1 ? (l = (t * s - 1) * Math.pow(2, n), r += u) : (l = t * Math.pow(2, u - 1) * Math.pow(2, n), r = 0)); n >= 8; e[a + g] = 255 & l, g += p, l /= 256, n -= 8); for (r = r << n | l, c += n; c > 0; e[a + g] = 255 & r, g += p, r /= 256, c -= 8);
                e[a + g - p] |= 128 * f } },
        1220: function(e, t) { var a = {}.toString;
            e.exports = Array.isArray || function(e) { return "[object Array]" == a.call(e) } },
        444: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(445)),
                r = i(a(519)),
                l = function(e) {
                    function t() { var t; return (t = e.call(this) || this).registerFactory("dataset", r["default"], ["vCanvas"]), t }(0, n["default"])(t, e), t.getName = function() { return "SSCartesian" }; var a = t.prototype; return a.getName = function() { return "SSCartesian" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.hasLegend = !1, t.linethickness = 4 }, a._checkInvalidSpecificData = function() { var e = this.getFromEnv("dataSource").data; if (!e || !e.length) return !0 }, a._setCategories = function() { var e = this.getFromEnv("dataSource"),
                            t = this.getChildren("xAxis"),
                            a = e.dataset,
                            i = e.data || a && a[0].data;
                        t[0].setTickValues(i) }, t }(o["default"]);
            t["default"] = l },
        445: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(446)),
                r = a(215),
                l = i(a(461)),
                s = i(a(462)),
                c = i(a(512)),
                h = i(a(515)),
                u = i(a(517)),
                d = i(a(334)),
                g = a(332),
                p = Math.max,
                f = Math.min,
                m = function(e, t) { return e < t && t > 0 ? t - e : 0 },
                v = function(e) { var t = e.sender,
                        a = e.data.scrollPosition,
                        i = t.getChildren("xAxis")[0],
                        n = i.config,
                        o = i.getVisibleConfig(),
                        r = o.maxValue - o.minValue,
                        s = n.axisRange.max - r,
                        c = (0, l["default"])(n.axisRange.min, s),
                        h = n.isReverse ? c(1 - a) : c(a);
                    i.setVisibleConfig(h, h + r) },
                b = { wrtVisible: !0 },
                x = function(e) {
                    function t() { var t; return (t = e.call(this) || this).registerFactory("axis", s["default"], ["canvas"]), t.registerFactory("canvas", c["default"]), t.registerFactory("vCanvas", h["default"], ["axis"]), t.registerFactory("mouseTracker", u["default"], ["canvas"]), t.addEventListener("onScroll", v), t }(0, n["default"])(t, e), t.getName = function() { return "Cartesian" }; var a = t.prototype; return a.getName = function() { return "Cartesian" }, a.getType = function() { return "chartAPI" }, a._allocateXAxisLabelSpace = function(e) { var t, a = this.config,
                            i = e.getAxisEndLabelDisplaySpace(),
                            n = i.left,
                            o = i.right,
                            r = i.top,
                            l = i.bottom,
                            s = a.availableWidth,
                            c = a.availableHeight,
                            h = a.canvasLeft,
                            u = a.canvasRight,
                            d = a.canvasTop,
                            g = a.canvasBottom,
                            p = a.width,
                            f = a.height;
                        r + l > c && (r = c * r / (t = r + l), l = c * l / t), n + o > s && (n = s * n / (t = n + o), o = s * o / t), n = m(h, n), o = m(p - u, o), r = m(d, r), l = m(f - g, l), this._allocateSpace({ left: n, right: o, top: r, bottom: l }) }, a._setCategories = function() { var e = this.getFromEnv("dataSource"),
                            t = this.getChildren("xAxis"),
                            a = e.categories && e.categories.length && e.categories[0].category;
                        t && t[0].setTickValues(a) }, a._feedAxesRawData = function() { var e, t, a = this.config,
                            i = this.getFromEnv("dataSource"); return e = this.getSpecificxAxisConf(), t = this.getSpecificyAxisConf(), e.vtrendlines = (0, r.extend2)([], i.vtrendlines), t.trendlines = (0, r.extend2)([], i.trendlines), a.isstacked && (t.isPercent = (0, r.pluckNumber)(a.stack100percent, 0)), { yAxisConf: [t], xAxisConf: [e] } }, a.allocatePosition = function() { this.setScrollBarDimension() }, a.setScrollBarDimension = function() { this.getChildren("scrollBar") && this.getChildren("scrollBar")[0] && this.getChildren("scrollBar")[0].setDimension(this.getScrollbarDimension()) }, a.getSpecificxAxisConf = function() { var e = this.getFromEnv("chart-attrib"),
                            t = this.config,
                            a = this.config.is3D,
                            i = this.getBasexAxisConf(); return i.isReverse = t.reverseXAxis, i.axisLineColor = (0, r.pluck)(e.xaxislinecolor, e.axislinecolor, "#000000"), i.showAlternateGridColor = (0, r.pluckNumber)(e.showalternatevgridcolor, 0), i.numDivLines = (0, r.pluckNumber)(e.numvdivlines, t.numVDivLines), i.axisName = e.xaxisname, i.setAdaptiveMin = (0, r.pluckNumber)(e.setadaptivexmin, t.setadaptivexmin, t.setadaptivexmin), i.showLimits = (0, r.pluckNumber)(e.showvlimits, t.showvlimits), i.showDivLineValues = (0, r.pluckNumber)(e.showvdivlinevalues, e.showvdivlinevalues, t.showvdivlinevalues), i.zeroPlaneThickness = (0, r.pluckNumber)(e.vzeroplanethickness, e.vdivlinethickness, t.zeroplanethickness, 2), i.zeroPlaneAlpha = (0, r.pluckNumber)(e.vzeroplanealpha, e.vdivlinealpha, t.zeroplanealpha), i.showZeroPlaneValue = (0, r.pluckNumber)(e.showvzeroplanevalue, t.showzeroplanevalue), i.showAxisLine = a ? 0 : (0, r.pluckNumber)(e.showxaxisline, e.showaxislines, e.drawAxisLines, t.showxaxisline, 0), i.maxLabelHeight = e.maxlabelheight, i.showZeroPlane = (0, r.pluckNumber)(e.showvzeroplane, t.showzeroplane), i }, a.getSpecificyAxisConf = function() { var e = this.getFromEnv("chart-attrib"),
                            t = this.config,
                            a = this.config.is3D,
                            i = a ? r.chartPaletteStr.chart3D : r.chartPaletteStr.chart2D,
                            n = t.isInverse,
                            o = this.getFromEnv("color-manager"),
                            l = (0, r.pluckNumber)(e.showzeroplane, t.showzeroplane, 1),
                            s = (0, r.pluckNumber)(e.showzeroplanevalue, t.showzeroplanevalue); return l || void 0 !== s || (s = 0), { isVertical: !0, isReverse: !n, isOpposit: (0, d["default"])(e.yaxisposition, "right"), outCanfontFamily: (0, r.pluck)(e.outcnvbasefont, e.basefont, "Verdana,sans"), outCanfontSize: (0, r.pluckFontSize)(e.outcnvbasefontsize, e.basefontsize, 10), outCancolor: (0, r.pluck)(e.outcnvbasefontcolor, e.basefontcolor, o.getColor(i.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"), axisBreaks: e.yaxisbreaks, axisNamePadding: e.yaxisnamepadding, axisValuePadding: e.yaxisvaluespadding, axisNameFont: e.yaxisnamefont, axisNameFontSize: e.yaxisnamefontsize, axisNameFontColor: e.yaxisnamefontcolor, axisNameFontBold: e.yaxisnamefontbold, axisNameFontItalic: e.yaxisnamefontitalic, axisNameBgColor: e.yaxisnamebgcolor, axisNameBorderColor: e.yaxisnamebordercolor, axisNameAlpha: e.yaxisnamealpha, axisNameFontAlpha: e.yaxisnamefontalpha, axisNameBgAlpha: e.yaxisnamebgalpha, axisNameBorderAlpha: e.yaxisnameborderalpha, axisNameBorderPadding: e.yaxisnameborderpadding, axisNameBorderRadius: e.yaxisnameborderradius, axisNameBorderThickness: e.yaxisnameborderthickness, axisNameBorderDashed: e.yaxisnameborderdashed, axisNameBorderDashLen: e.yaxisnameborderdashlen, axisNameBorderDashGap: e.yaxisnameborderdashgap, axisNameWidth: e.yaxisnamewidth, useEllipsesWhenOverflow: e.useellipseswhenoverflow, rotateAxisName: (0, r.pluckNumber)(e.rotateyaxisname, 1), axisName: e.yaxisname, divLineColor: (0, r.pluck)(e.divlinecolor, o.getColor(i.divLineColor)), divLineAlpha: (0, r.pluck)(e.divlinealpha, a ? o.getColor("divLineAlpha3D") : o.getColor("divLineAlpha")), divLineThickness: (0, r.pluckNumber)(e.divlinethickness, 1), divLineIsDashed: Boolean((0, r.pluckNumber)(e.divlinedashed, e.divlineisdashed, 0)), divLineDashLen: (0, r.pluckNumber)(e.divlinedashlen, 4), divLineDashGap: (0, r.pluckNumber)(e.divlinedashgap, 2), showAlternateGridColor: (0, r.pluckNumber)(e.showalternatehgridcolor, 1), alternateGridColor: (0, r.pluck)(e.alternatehgridcolor, o.getColor("altHGridColor")), alternateGridAlpha: (0, r.pluck)(e.alternatehgridalpha, o.getColor("altHGridAlpha")), numDivLines: (0, r.pluckNumber)(e.numdivlines, t.numDivLines), axisMinValue: t.yRangeMin || e.yaxisminvalue, axisMaxValue: t.yRangeMax || e.yaxismaxvalue, setAdaptiveMin: (0, r.pluckNumber)(e.setadaptivesymin, e.setadaptiveymin, t.setAdaptiveMin), adjustDiv: e.adjustdiv, labelStep: e.yaxisvaluesstep, showAxisValues: (0, r.pluckNumber)(e.showyaxisvalues, e.showyaxisvalue, t.showyaxisvalues), showLimits: (0, r.pluckNumber)(e.showyaxislimits, e.showlimits, this.showLimits), showDivLineValues: (0, r.pluckNumber)(e.showdivlinevalues, e.showdivlinevalue, t.showdivlinevalues), showZeroPlane: l, zeroPlaneColor: e.zeroplanecolor, zeroPlaneThickness: (0, r.pluckNumber)(e.zeroplanethickness, e.divlinethickness, t.zeroplanethickness, 2), zeroPlaneAlpha: (0, r.pluckNumber)(e.zeroplanealpha, e.divlinealpha, t.zeroplanealpha), showZeroPlaneValue: s, showZeroPlaneOnTop: t.showzeroplaneontop, trendlineColor: e.trendlinecolor, trendlineToolText: e.trendlinetooltext, trendlineThickness: e.trendlinethickness, trendlineAlpha: e.trendlinealpha, showTrendlinesOnTop: e.showtrendlinesontop, showAxisLine: a ? 0 : (0, r.pluckNumber)(e.showyaxisline, e.showaxislines, e.drawAxisLines, t.showyaxisline, 0), axisLineThickness: (0, r.pluckNumber)(e.yaxislinethickness, e.axislinethickness, 1), axisLineAlpha: (0, r.pluckNumber)(e.yaxislinealpha, e.axislinealpha, 100), axisLineColor: (0, r.pluck)(e.yaxislinecolor, e.axislinecolor, "#000000"), forceTrendBelow: !!t.is3D, labelFont: e.yaxisvaluefont, labelFontSize: e.yaxisvaluefontsize, labelFontColor: e.yaxisvaluefontcolor, labelAlpha: e.yaxisvaluealpha, labelFontBold: e.yaxisvaluefontbold, labelFontItalic: e.yaxisvaluefontitalic, labelBdrColor: e.yaxisvaluebordercolor, labelBdrAlpha: e.yaxisvalueborderalpha, labelBgAlpha: e.yaxisvaluebgalpha, labelLink: e.yaxisvaluelink, labelBgColor: e.yaxisvaluebgcolor, labelBdrThickness: e.yaxisvalueborderthickness, labelBdrPadding: e.yaxisvalueborderpadding, labelBdrRadius: e.yaxisvalueborderradius, labelBdrDashed: e.yaxisvalueborderdashed, labelBdrDashLen: e.yaxisvalueborderdashlen, labelBdrDashGap: e.yaxisvalueborderdashgap } }, a.getBasexAxisConf = function() { var e = this.getFromEnv("chart-attrib"),
                            t = this.config.is3D,
                            a = t ? r.chartPaletteStr.chart3D : r.chartPaletteStr.chart2D,
                            i = this.getFromEnv("color-manager"); return { isVertical: !1, isOpposit: (0, d["default"])(e.xaxisposition, "top"), outCanfontFamily: (0, r.pluck)(e.outcnvbasefont, e.basefont, "Verdana,sans"), outCanfontSize: (0, r.pluckFontSize)(e.outcnvbasefontsize, e.basefontsize, 10), outCancolor: (0, r.pluck)(e.outcnvbasefontcolor, e.basefontcolor, i.getColor(a.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"), axisNamePadding: e.xaxisnamepadding, axisValuePadding: e.labelpadding, axisNameFont: e.xaxisnamefont, axisNameFontSize: e.xaxisnamefontsize, axisNameFontColor: e.xaxisnamefontcolor, axisNameFontBold: e.xaxisnamefontbold, axisNameFontItalic: e.xaxisnamefontitalic, axisNameBgColor: e.xaxisnamebgcolor, axisNameBorderColor: e.xaxisnamebordercolor, axisNameAlpha: e.xaxisnamealpha, axisNameFontAlpha: e.xaxisnamefontalpha, axisNameBgAlpha: e.xaxisnamebgalpha, axisNameBorderAlpha: e.xaxisnameborderalpha, axisNameBorderPadding: e.xaxisnameborderpadding, axisNameBorderRadius: e.xaxisnameborderradius, axisNameBorderThickness: e.xaxisnameborderthickness, axisNameBorderDashed: e.xaxisnameborderdashed, axisNameBorderDashLen: e.xaxisnameborderdashlen, axisNameBorderDashGap: e.xaxisnameborderdashgap, useEllipsesWhenOverflow: e.useellipseswhenoverflow, divLineColor: (0, r.pluck)(e.vdivlinecolor, e.divlinecolor, i.getColor(a.divLineColor)), divLineAlpha: (0, r.pluck)(e.vdivlinealpha, e.divlinealpha, t ? i.getColor("divLineAlpha3D") : i.getColor("divLineAlpha")), divLineThickness: (0, r.pluckNumber)(e.vdivlinethickness, e.divlinethickness, 1), divLineIsDashed: Boolean((0, r.pluckNumber)(e.vdivlinedashed, e.vdivlineisdashed, e.divlinedashed, e.divlineisdashed, 0)), divLineDashLen: (0, r.pluckNumber)(e.vdivlinedashlen, e.divlinedashlen, 4), divLineDashGap: (0, r.pluckNumber)(e.vdivlinedashgap, e.divlinedashgap, 2), alternateGridColor: (0, r.pluck)(e.alternatevgridcolor, i.getColor("altVGridColor")), alternateGridAlpha: (0, r.pluck)(e.alternatevgridalpha, i.getColor("altVGridAlpha")), labelFont: e.labelfont, labelFontSize: e.labelfontsize, labelFontColor: e.labelfontcolor, labelAlpha: e.labelalpha, labelFontBold: e.labelfontbold, labelFontItalic: e.labelfontitalic, labelBdrColor: e.labelbordercolor, labelBdrAlpha: e.labelborderalpha, labelLink: e.labellink, labelBgColor: e.labelbgcolor, labelBdrThickness: e.labelborderthickness, labelBdrPadding: e.labelborderpadding, labelBdrRadius: e.labelborderradius, labelBdrDashed: e.labelborderdashed, labelBgAlpha: e.labelbgalpha, labelBdrDashLen: e.labelborderdashlen, labelBdrDashGap: e.labelborderdashgap, axisMinValue: e.xaxisminvalue, axisMaxValue: e.xaxismaxvalue, adjustDiv: e.adjustvdiv, labelDisplay: e.labeldisplay, showLabels: e.showlabels, rotateLabels: e.rotatelabels, slantLabel: (0, r.pluckNumber)(e.slantlabels, e.slantlabel), labelStep: (0, r.pluckNumber)(e.labelstep, e.xaxisvaluesstep), showAxisValues: (0, r.pluckNumber)(e.showxaxisvalues, e.showxaxisvalue), zeroPlaneColor: e.vzeroplanecolor, trendlineColor: e.trendlinecolor, trendlineToolText: e.trendlinetooltext, trendlineThickness: e.trendlinethickness, trendlineAlpha: e.trendlinealpha, showTrendlinesOnTop: e.showtrendlinesontop, axisLineThickness: (0, r.pluckNumber)(e.xaxislinethickness, e.axislinethickness, 1), axisLineAlpha: (0, r.pluckNumber)(e.xaxislinealpha, e.axislinealpha, 100) } }, a.getConfig = function(e) { return e ? this.config[e] : this.config }, a._getSumValueSpace = function(e) { var t, a = {},
                            i = this.config,
                            n = this.isBar,
                            o = this.getFromEnv("dataSource").chart,
                            l = i.showSum = (0, r.pluckNumber)(o.showsum, i.showSum, 0),
                            s = (0, r.pluckNumber)(i.stack100percent),
                            c = i.isstacked,
                            h = 0,
                            u = [],
                            d = 0; if (this.iterateComponents((function(e) { "cartesianStackGroup" !== e.getName() && "marimekkoStackgroup" !== e.getName() || u.push(e) })), l && s && c && u.length) { for (t = u.length - 1; t >= 0; t--) a = u[t].getMaxSumValueSpace(), n ? h = Math.max(h, a.maxWidth) : d = Math.max(d, a.maxHeight);
                            d > e && (d = e), h > e && (h = e) } return { top: d, right: h } }, a.setAxisDimention = function() { var e, t, a = this.getChildren("xAxis") && this.getChildren("xAxis")[0],
                            i = this.getChildren("yAxis") && this.getChildren("yAxis")[0],
                            n = this.getChildren("scrollBar") && this.getChildren("scrollBar")[0] && this.getChildren("scrollBar")[0].config,
                            o = this.config,
                            l = o.xDepth || 0,
                            s = this.getFromEnv("chart-attrib"),
                            c = (0, r.pluckNumber)(s.canvasleftpadding),
                            h = (0, r.pluckNumber)(s.canvasrightpadding),
                            u = this.getChildren("canvas") && this.getChildren("canvas")[0].config,
                            d = u && u.canvasBorderWidth,
                            g = this.isScrollEnabled(),
                            p = (g || o.is3D) && o.shift || 0,
                            f = u.canvasPadding,
                            m = u.canvasLeft,
                            v = m + u.canvasWidth,
                            b = u.canvasPaddingLeft,
                            x = u.canvasPaddingRight,
                            y = u.canvasTop,
                            C = o.sumValueSpace && o.sumValueSpace.top || 0,
                            k = u.canvasPaddingTop;
                        e = null == c ? Math.max(b, f) : c, t = null == h ? Math.max(x, f) : h, a && a.setAxisConfig({ canvasPaddingLeft: e, canvasPaddingRight: t }), a && a.setAxisDimention({ x: m + l + e, y: a.config.isOpposit ? y - d - (g && +n.isOpposite === a.config.isOpposit ? p : 0) - C : o.canvasBottom + (o.is3D || g && +n.isOpposite === a.config.isOpposit ? p : 0) + d, opposite: a.config.isOpposit ? o.canvasBottom + p + d : y - d - p, axisLength: u.canvasWidth - l - e - t }), i && i.setAxisDimention({ x: i.config.isOpposit ? v + d : m - d, y: y + k, opposite: i.config.isOpposit ? m - d : v + d, axisLength: u.canvasHeight - k - u.canvasPaddingBottom }) }, a._getTrendLineMinMax = function(e, t) { var a, i, n, o, r, l = t,
                            s = "v" === e ? this.getFromEnv("dataSource").vtrendlines : this.getFromEnv("dataSource").trendlines,
                            c = { max: -Infinity, min: Infinity }; if (l = l || "p", s)
                            for (i = 0, o = s.length; i < o; i += 1)
                                for (n = 0, r = s[i].line ? s[i].line.length : 0; n < r; n += 1) a = s[i].line[n], "s" === l && "s" !== a.parentyaxis || "s" !== l && "s" === a.parentyaxis || (c.max = p(a.startvalue || -Infinity, a.endvalue || -Infinity, c.max), c.min = f(a.startvalue || Infinity, a.endvalue || Infinity, c.min)); return c }, a.setScrollType = function(e) { "none" !== e && "smart" !== e && "always" !== e || (this.config.scrollType = e, "none" === e ? this.disableScroll() : this.enableScroll()) }, a.getScrollType = function() { return this.config.scrollType }, a._createScrollBar = function() { var e, t = this,
                            a = t.getFromEnv("animationManager"),
                            i = t.getChildren("scrollBar") && t.getChildren("scrollBar")[0];
                        i || (i = t.attachChild(new g.ScrollBar, "scrollBar")), i.configure({ isHorizontal: !t.isBar }), i.attachEventHandlers({ scrollStart: function(a) { e = a, t.fireChartInstanceEvent("scrollstart", { scrollPosition: a }) }, scroll: function(e) { a.setAnimationState("scroll"), t.fireChartInstanceEvent("onScroll", { scrollPosition: e }), t.fireEvent("onScroll", { scrollPosition: e }) }, scrollEnd: function(a) { t.fireChartInstanceEvent("scrollend", { scrollPosition: a, prevScrollPosition: e }) } }) }, a._disposeScrollBar = function() { var e = this.getChildren("scrollBar") && this.getChildren("scrollBar")[0];
                        e && e.remove() }, a.getScrollbarDimension = function() { var e, t, a, i, n, o, l, s, c, h, u, d, g, p, f, m, v, x = this.getChildren("xAxis")[0],
                            y = x.config,
                            C = y.axisRange,
                            k = y.scrollOptions || (y.scrollOptions = {}),
                            S = C.max,
                            w = C.min,
                            L = k.vxLength,
                            A = this.getChildren("scrollBar")[0],
                            N = this.getChildren("canvas")[0].config; if (A) return e = A.config, t = N.canvasLeft, a = N.canvasTop, i = N.canvasHeight, n = N.canvasWidth, o = N.canvasBorderWidth, l = y.showAxisLine && y.axisLineThickness || 0, s = (0, r.pluckNumber)(o, y.lineStartExtension), c = (0, r.pluckNumber)(o, y.lineEndExtension), k.viewPortMin = w, k.viewPortMax = S, h = (f = (g = x.getVisibleConfig()).maxValue - (p = g.minValue)) / (m = C.max - C.min), v = (p - C.min) / (m - f), u = k.windowedCanvasWidth = x.getPixel(L, b), d = k.fullCanvasWidth = x.getPixel(S - w, b) - u, e.scrollRatio = h, e.roundEdges = N.isRoundEdges, e.fullCanvasWidth = d, e.windowedCanvasWidth = u, e.scrollPosition = v, e.isHorizontal ? (e.scrollPosition = v, { x: t - s, y: e.isOpposite ? a - o - l - (this.config.shift || 0) - (e.padding || 0) : a + i + o + l, width: n + s + c }) : (e.scrollPosition = y.isReverse ? 1 - v : v, { x: e.isOpposite ? t + n + o + (e.padding || 0) : t - this.config.shift - o, y: a - o - (e.padding || 0), height: i + 2 * o }) }, a.enableScroll = function() { this._createScrollBar() }, a.disableScroll = function() { this._disposeScrollBar() }, a.isScrollEnabled = function() { var e = this.getChildren("scrollBar"); return !(!e || !e[0] || e[0].getState("removed")) }, a.decideScroll = function() { var e = this.getScrollType(); "always" === e || "smart" === e && 1 !== this.getFromEnv("axis").getZoom() ? this.enableScroll() : this.disableScroll() }, t }(o["default"]);
            t["default"] = x },
        446: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(447)),
                r = a(215),
                l = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a._spaceManager = function() { var e, t, a, i, n, o, l, s, c, h, u, d, g, p, f = this.config,
                            m = this.getChildren("xAxis") && this.getChildren("xAxis")[0],
                            v = f.legendposition ? f.legendposition.split("-") : [],
                            b = f.xDepth,
                            x = f.yDepth,
                            y = f.canvasBgDepth,
                            C = f.canvasBaseDepth,
                            k = f.canvasBasePadding,
                            S = this.getChildren("canvas")[0],
                            w = S.config.canvasBorderWidth,
                            L = f.realTimeConfig && f.realTimeConfig.showRTValue,
                            A = f.borderWidth,
                            N = f.canvasMarginTop,
                            E = f.canvasMarginBottom,
                            T = f.canvasMarginLeft,
                            F = f.canvasMarginRight,
                            _ = f.minCanvasHeight,
                            P = f.minCanvasWidth,
                            D = f.minChartWidth,
                            I = f.minChartHeight,
                            M = f.height,
                            O = f.width,
                            R = !1,
                            B = !1,
                            V = f.origCanvasTopMargin,
                            G = f.origCanvasBottomMargin,
                            z = f.origCanvasLeftMargin,
                            H = f.origCanvasRightMargin;
                        f.canvasWidth - 2 * A < D && (h = (f.canvasWidth - D) / 2), f.canvasHeight - 2 * A < I && (c = (f.canvasHeight - I) / 2), this._allocateSpace({ top: c || A, bottom: c || A, left: h || A, right: h || A }), this._manageYAxisSpace(), this._allocateSpace(this._manageActionBarSpace && this._manageActionBarSpace(.225 * f.availableHeight) || {}), this._manageLegendSpace && f.showLegend && this._manageLegendSpace(void 0), e = v[0] === r.POSITION_TOP || v[0] === r.POSITION_BOTTOM ? .6 * f.availableHeight : .6 * f.availableWidth, x && (this._allocateSpace({ bottom: x }), f.shift = b + k + C), y && this._allocateSpace({ right: y }), f.canvasWidth - 2 * w < P && (d = (f.canvasWidth - P) / 2), this._allocateSpace({ left: d || w, right: d || w }), P > O - T - F && (B = !0, t = f.canvasWidth - P, p = T + F, T = f.canvasMarginLeft = t * T / p, F = f.canvasMarginRight = t * F / p), n = T > f.canvasLeft ? T - f.canvasLeft : 0, o = F > O - f.canvasRight ? F + f.canvasRight - O : 0, this._allocateSpace({ left: n, right: o }), B && (p = z + H, (s = f.canvasWidth) > P && (n = (t = s - P) * z / p, o = t * H / p), this._allocateSpace({ left: n, right: o })), f.actualCanvasMarginRight = o, f.actualCanvasMarginBottom = i, this._manageChartMenuBar(e), e = .2 * f.availableHeight, this._getSumValueSpace ? (f.sumValueSpace = this._getSumValueSpace(e), this._allocateSpace(f.sumValueSpace)) : f.sumValueSpace = { top: 0, right: 0 }, e = .3 * f.availableHeight, f.realtimeEnabled && (L ? this._allocateSpace(this._realTimeValuePositioning(e)) : this._hideRealTimeValue()), this._resetViewPortConfig && this._resetViewPortConfig(), this._setAxisScale && this._setAxisScale(), e = .6 * f.availableHeight, m && this._calculateChartShift("xAxis"), f.xAxisSpaceAllocation = g = m && m.placeAxis(e), m && this._allocateSpace(g), f.canvasHeight - 2 * w < _ && (u = (f.canvasHeight - _) / 2), this._allocateSpace({ top: u || w, bottom: u || w }), this._allocateSpace({ bottom: C }), _ > M - N - E && (R = !0, t = f.canvasHeight - _, p = N + E, N = f.canvasMarginTop = t * N / p, E = f.canvasMarginBottom = t * E / p), a = N > f.canvasTop ? N - f.canvasTop : 0, i = E > M - f.canvasBottom ? E + f.canvasBottom - M : 0, this._allocateSpace({ top: a, bottom: i }), R && (p = V + G, (l = f.canvasHeight) > _ && (a = (t = l - _) * V / p, i = t * G / p), this._allocateSpace({ top: a, bottom: i })), f.actualCanvasMarginTop = a, f.actualCanvasMarginLeft = n, S.setDimension({ top: f.canvasTop, left: f.canvasLeft, width: f.canvasWidth, height: f.canvasHeight }) }, a._manageYAxisSpace = function() { var e, t, a, i = this.config,
                            n = this.getChildren("yAxis"),
                            o = []; for (t = 0; t < (n && n.length); t++)(e = n[t]) && this._calculateChartShift("yAxis"), a = e && e.placeAxis(.7 * i.availableWidth) || {}, o.push({ axisIndex: t, spaceTaken: a }), e && this._allocateSpace(a);
                        i.yAxisSpaceAllocation = o }, a._postSpaceManagement = function() { var e, t = this.config,
                            a = this.getChildren(),
                            i = a.xAxis && a.xAxis[0],
                            n = a.legend && a.legend[0],
                            o = t.xDepth,
                            r = this.getChildren("canvas"); for (this.setAxisDimention && this.setAxisDimention(), i && this._allocateXAxisLabelSpace(i), i && i.shiftLabels(-o, 0), n && n.postSpaceManager(), e = 0; e < (r && r.length); e++) r[e].setCanvasPadding();
                        this.setAxisDimention && this.setAxisDimention(), this.allocateDimensionOfChartMenuBar() }, a._calculateChartShift = function(e) { var t, a = this.getChildren("scrollBar") && this.getChildren("scrollBar")[0],
                            i = this.getChildren(e) && this.getChildren(e)[0],
                            n = a && a.config,
                            o = i.config.isVertical,
                            r = {};
                        a && !a.getState("removed") && (t = a.getLogicalSpace()) && (o && !n.isHorizontal ? (this.config.shift = t.width + n.conf.padding, r[n.isOpposite ? "right" : "left"] = this.config.shift, this._allocateSpace(r)) : !o && n.isHorizontal && (this.config.shift = t.height + n.conf.padding, r[n.isOpposite ? "top" : "bottom"] = this.config.shift, this._allocateSpace(r))) }, t }(o["default"]);
            t["default"] = l },
        447: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t._drawDataset = O, t.configurer = R, t["default"] = void 0; var n = i(a(229)),
                o = i(a(214)),
                r = i(a(262)),
                l = i(a(448)),
                s = i(a(451)),
                c = a(223),
                h = i(a(452)),
                u = a(331),
                d = i(a(454)),
                g = i(a(456)),
                p = i(a(458)),
                f = i(a(244)),
                m = a(222),
                v = i(a(460)),
                b = a(215),
                x = i(a(217)),
                y = (0, c.getDep)("redraphael", "plugin"),
                C = "VML" === y.type,
                k = Math.max,
                S = Math.min,
                w = Math.round,
                L = { datalabelclick: !0, connectorclick: !0, categoryclick: !0, processclick: !0, milestoneclick: !0, labelclick: !0, dataplotclick: !0 },
                A = b.preDefStr.SEVENTYSTRING,
                N = b.preDefStr.AUTOSTRING,
                E = "onpointerover" in window.document,
                T = function(e, t, a) { return a.getFromEnv("animationManager").setAnimation({ el: "group", attr: e, container: t, state: "appearing", component: a, label: "group" }) },
                F = function(e) { var t = e.data.config;
                    t._containerMouseState = "mousedown", t._mdx1 = e.clientX !== b.UNDEF ? e.clientX : e.changedTouches && e.changedTouches[0].clientX, t.mdy1 = e.clientY !== b.UNDEF ? e.clientY : e.changedTouches && e.changedTouches[0].clientY, "touchstart" === e.type && (t._touchStartedAt = (new Date).getTime()) },
                _ = function(e) { var t = e.data.config,
                        a = e.clientX !== b.UNDEF ? e.clientX : e.changedTouches && e.changedTouches[0].clientX,
                        i = e.clientY !== b.UNDEF ? e.clientY : e.changedTouches && e.changedTouches[0].clientY;
                    (Math.abs(t._mdx1 - a) >= 2.5 || Math.abs(t.mdy1 - i) >= 2.5) && (e.data.config._containerMouseState = b.UNDEF) },
                P = function(e) {
                    (new Date).getTime() - e.data.config._touchStartedAt < 500 && setTimeout((function() { D(e) })) },
                D = function(e) { var t, a = e.data,
                        i = a.getFromEnv("chartInstance"),
                        n = e.originalEvent,
                        o = a.config,
                        r = (0, b.getMouseCoordinate)(a.getFromEnv("chart-container"), n, a);
                    i.ref && "mousemove" !== o._containerMouseState && (t = (0, b.extend2)({ height: i.args.height, width: i.args.width, pixelHeight: a.getFromEnv("chartHeight"), pixelWidth: a.getFromEnv("chartWidth"), id: i.args.id, renderer: i.args.renderer, container: i.options.containerElement }, r), a.fireChartInstanceEvent("chartclick", t), o.link && (!o.hotElemClicked || o.clickURLOverridesPlotLinks) && a.getFromEnv("linkClickFN").call({ link: o.link }), o.hotElemClicked = !1) },
                I = function(e) { var t = e.type,
                        a = e.data,
                        i = a.getFromEnv("eventListeners"); if ("mouseover" !== t && "touchstart" !== t || !1 !== a.config.mouseStateIn) "mouseout" !== t && "touchend" !== t || (a.config.posOb = !1);
                    else { if (B.hoverChart) { var n = B.hoverChart;
                            n.forceRollOut = !0, B.winMouseHover(n) } a.config.mouseStateIn = !0, B.onContainerRollOver(e), i.push(x["default"].listen(C ? document : window, "mouseover", B.winMouseHover, a)), B.hoverChart = e } };

            function M() { var e, t, a, i, n = this,
                    o = n,
                    r = n.config,
                    l = "t" === r.toolbarVAlign ? "chartMenuBar" : "actionBar",
                    s = n.getFromEnv("tool-config");
                e = n.getChildren(l)[0], t = r.printOption.enabled, a = o.config.realTimeConfig || {}, i = e.attachChild(u.Hamburger, "tool", "hamburgerMenu-" + e.getId() + "-" + n.getId() + "-0"), n.addToEnv("hamburger", i), i.configure(Object.assign({}, s, { name: "ContextIcon" })), i._mouseOutEvent || (i._mouseOutEvent = function() { this.getChild("listContainer").hide() }), i._mouseOverEvent || (i._mouseOverEvent = function() { this.getChild("listContainer").show() }), i.addEventListener("fc-mouseover", i._mouseOverEvent), i.addEventListener("fc-mouseout", i._mouseOutEvent), t && i.appendInMenu([{ name: "Print", action: "click", handler: function() { n.getFromEnv("chartInstance").print() } }]), o._setRTmenu && o._setRTmenu(a.showRTmenuItem, a.useMessageLog) }

            function O() { this.getChildren("canvas")[0]._mapChildren((function(e) { e.syncDraw() })) }

            function R(e) { this.config.skipConfigureIteration = {}, this.parseChartAttr(e), this.createComponent(e), this.setTooltipStyle(), this.configureChildren() }(0, c.addDep)({ name: "commonAnimation", type: "animationRule", extension: v["default"] }); var B = function(e) {
                (0, n["default"])(a, e), a.getName = function() { return "CommonAPI" }; var t = a.prototype;

                function a() { var t; return (t = e.call(this) || this).addToEnv("stringConstants", { COMPONENT: "component", CANVAS: "canvas", CAPTION: "caption" }), t.addToEnv("getMouseCoordinate", b.getMouseCoordinate), t._drawDataset = O, t.config.mouseStateIn = !1, t.registerFactory("toolbox", s["default"]), t.registerFactory("canvas", l["default"]), t._firstConfigure = !0, t } return t.plotEventHandler = function(e, t, a, i) { void 0 === t && (t = {}); var n, o, r = t.type,
                        l = a,
                        s = (0, b.getMouseCoordinate)(this.getFromEnv("chart-container"), t, this),
                        c = e && e.data("eventArgs") || i,
                        h = (0, b.extend2)(s, c),
                        u = this.fireGroupEvent,
                        d = e && e.data("groupId"),
                        g = function(e, a) { t.FusionChartsPreventEvent = !0 }; "index" in h && !("dataIndex" in h) && (h.dataIndex = h.index), "value" in h && !("dataValue" in h) && (h.dataValue = h.value), "dataplotrollover" === (l = (0, b.pluck)(l, "dataplotclick").toLowerCase()) ? (t.FusionChartsPreventEvent = !1, u ? (0, m.raiseEventGroup)(d, l, h, this.getFromEnv("chartInstance"), b.UNDEF, b.UNDEF, g) : this.fireChartInstanceEvent(l, h, b.UNDEF, b.UNDEF, g)) : u && !L[l] ? (0, m.raiseEventGroup)(d, l, h, this.getFromEnv("chartInstance")) : this.fireChartInstanceEvent(l, h), "fc-click" !== r && "click" !== r && "mouseup" !== r && "touchend" !== r || !/click/i.test(l) || (o = (n = this.getFromEnv()) && n.linkClickFN, h.link && o && o.call({ link: h.link }, !0)) }, t.getName = function() { return "Cartesian" }, t.preConfigure = function(t) { var a = this.getFromEnv("number-formatter");
                    this.addToEnv("chart-attrib", t.chart), a ? a.configure() : this.addToEnv("number-formatter", new f["default"](this)), e.prototype.preConfigure.call(this, t) }, t.postConfigure = function(t) { e.prototype.postConfigure.call(this, t), this._firstConfigure = !1 }, t.setDefaults = function() { e.prototype.setDefaults.call(this); var t = this.getFromEnv("number-formatter");
                    t && t.setDefaults && t.setDefaults() }, t.getType = function() { return "chartAPI" }, t.parseChartAttr = function(e) { var t, a, i, n, o, r, l, s, c, h, u, d, g, f, m = e || this.getFromEnv("dataSource"),
                        v = this.config.is3D,
                        x = v ? b.chartPaletteStr.chart3D : b.chartPaletteStr.chart2D,
                        y = this.isBar,
                        C = this.getFromEnv("color-manager");
                    C || (C = new p["default"](this), this.addToEnv("color-manager", C)), m.chart = m.chart || m.graph || m.map || {}, delete m.map, delete m.graph, !(t = m.chart) && (t = m.chart = {}), a = this.config || (this.config = {}), (0, b.parseConfiguration)(t, a, {}, { showvalues: !0, crosslinecolor: !0, drawcrosslineontop: !0, crosslinealpha: !0, drawcrossline: !0 }), a.showValues = (0, b.pluckNumber)(t.showvalues, a.showvalues), a.viewPortConfig = { scaleY: 1, scaleX: 1, x: 0, y: 0 }, this.addToEnv("tool-config", function() { for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a]; var i = t[0],
                            n = t.slice(1); return n.forEach((function(e) { for (var t in e) e.hasOwnProperty(t) && e[t] !== b.UNDEF && (i[t] = e[t]) })), i }({}, { scale: t.toolbarbuttonscale, width: t.toolbarbuttonwidth, height: t.toolbarbuttonheight, radius: t.toolbarbuttonradius, spacing: t.toolbarbuttonspacing, marginTop: t.toolbarbuttonmargintop, marginLeft: t.toolbarbuttonmarginleft, marginRight: t.toolbarbuttonmarginright, marginBottom: t.toolbarbuttonmarginbottom, fill: t.toolbarbuttoncolor, labelFill: t.toolbarlabelcolor, symbolFill: t.toolbarsymbolcolor, hoverFill: t.toolbarbuttonhovercolor, stroke: t.toolbarbuttonbordercolor, symbolStroke: t.toolbarsymbolbordercolor, strokeWidth: t.toolbarbuttonborderthickness, symbolStrokeWidth: t.toolbarsymbolborderthickness, bSymbolPadding: t.toolbarsymbolpadding, symbolHPadding: t.toolbarsymbolhpadding, symbolVPadding: t.toolbarsymbolvpadding, hAlign: t.toolbarhalign, vAlign: t.toolbarvalign })), v && (y ? (a.xDepth = 5, a.yDepth = 5) : (a.xDepth = 10, a.yDepth = 10), a.showCanvasBase = f = Boolean((0, b.pluckNumber)(t.showcanvasbase, 1)), a.canvasBasePadding = (0, b.pluckNumber)(t.canvasbasepadding, 2), a.canvasBaseDepth = f ? (0, b.pluckNumber)(t.canvasbasedepth, 10) : 0, a.canvasBgDepth = (0, b.pluckNumber)(t.canvasbgdepth, 3)), C && C.configure(), a.placeAxisLabelsOnTop = (0, b.pluckNumber)(t.placexaxislabelsontop, 0), a.enableAnimation = (0, b.pluckNumber)(t.animation, t.defaultanimation, 1), a.showToolTip = (0, b.pluckNumber)(t.showtooltip, 1), a.printOption = { enabled: (0, b.pluckNumber)(t.printshowbutton, t.showprintmenuitem, 0) }, a.drawCrossLineOnTop = (0, b.pluckNumber)(t.drawcrosslineontop, 1), l = a.style = {}, this.addToEnv("style", l), a.textDirection = "1" === t.hasrtltext ? "rtl" : b.BLANKSTRING, l.inCanfontFamily = i = (0, b.pluck)(t.basefont, "Verdana,sans"), l.inCanfontSize = n = (0, b.pluckFontSize)(t.basefontsize, 10), l.inCancolor = o = (0, b.pluck)(t.basefontcolor, C.getColor(x.baseFontColor)), l.outCanfontFamily = (0, b.pluck)(t.outcnvbasefont, i), l.fontSize = r = (0, b.pluckFontSize)(t.outcnvbasefontsize, n), l.outCanfontSize = r + b.PXSTRING, l.outCancolor = (0, b.pluck)(t.outcnvbasefontcolor, o).replace(/^#? ([a-f0-9]+)/gi, "#$1"), l.baseFontSize = n, l.inCanfontSize = n + b.PXSTRING, l.inCancolor = o.replace(/^#? ([a-f0-9]+)/gi, "#$1"), l.inCanvasStyle = h = { fontFamily: i, fontSize: n, color: o }, a.valueFontAlpha = (0, b.pluckNumber)(t.valuefontalpha, t.valuealpha, 100), a.valueBgAlpha = (0, b.pluckNumber)(t.valuebgalpha, t.valuealpha, 100), a.valueBorderAlpha = (0, b.pluckNumber)(t.valueborderalpha, t.valuealpha, 100), a.valueFontColor = (0, b.pluck)(t.valuefontcolor, o), a.valueBgColor = (0, b.pluck)(t.valuebgcolor) || b.BLANKSTRING, l.inCanLineHeight = u = (0, b.setLineHeight)(h), g = (0, b.getFirstValue)(t.valuebordercolor, b.BLANKSTRING), g = a.valueBorderColor = g ? (0, b.convertColor)(g, a.valueBorderAlpha) : b.BLANKSTRING, a.reverseXAxis = this.config.allowreversexaxis && (0, b.pluckNumber)(t.reversexaxis, 0), a.showBorder = (0, b.pluckNumber)(t.showborder, a.showBorder, v ? 0 : 1), a.borderWidth = k(a.showBorder ? (0, b.pluckNumber)(t.borderthickness, 1) : 0, 0), a.useplotgradientcolor = (0, b.pluckNumber)(t.plotgradientcolor, a.useplotgradientcolor, 0), a.valuefontbold = (0, b.pluckNumber)(t.valuefontbold, a.valuefontbold), a.dataLabelStyle = d = { fontFamily: (0, b.pluck)(t.valuefont, i), fontSize: (0, b.pluck)(t.valuefontsize, (0, b.pInt)(n, 10)) + b.PXSTRING, lineHeight: u, color: (0, b.convertColor)((0, b.pluck)(t.valuefontcolor, o), a.valueFontAlpha), fontWeight: a.valuefontbold ? "bold" : "normal", fontStyle: (0, b.pluckNumber)(t.valuefontitalic) ? "italic" : "normal", border: g || t.valuebgcolor ? (0, b.pluckNumber)(t.valueborderthickness, 1) + "px solid" : b.BLANKSTRING, borderColor: g, borderThickness: (0, b.pluckNumber)(t.valueborderthickness, 1), borderPadding: (0, b.pluckNumber)(t.valueborderpadding, 2), borderRadius: (0, b.pluckNumber)(t.valueborderradius, 0), backgroundColor: t.valuebgcolor ? (0, b.convertColor)(t.valuebgcolor, a.valueBgAlpha) : b.BLANKSTRING, borderDash: (0, b.pluckNumber)(t.valueborderdashed, 0) ? (0, b.getDashStyle)((0, b.pluckNumber)(t.valueborderdashlen, 4), (0, b.pluckNumber)(t.valueborderdashgap, 2)) : b.DASH_DEF }, (0, b.setLineHeight)(d), a.legendposition = (0, b.pluck)(t.legendposition, b.POSITION_BOTTOM), a.alignLegendWithCanvas = (0, b.pluckNumber)(t.alignlegendwithcanvas, 1), a.origMarginTop = (0, b.pluckNumber)(t.charttopmargin, this.chartTopMargin, 15), a.origMarginLeft = (0, b.pluckNumber)(t.chartleftmargin, this.chartLeftMargin, 15), a.origMarginBottom = (0, b.pluckNumber)(t.chartbottommargin, this.chartBottomMargin, 15), a.origMarginRight = (0, b.pluckNumber)(t.chartrightmargin, this.chartRightMargin, 15), a.origCanvasLeftMargin = (0, b.pluckNumber)(t.canvasleftmargin, 0), a.origCanvasRightMargin = (0, b.pluckNumber)(t.canvasrightmargin, 0), a.origCanvasTopMargin = (0, b.pluckNumber)(t.canvastopmargin, 0), a.origCanvasBottomMargin = (0, b.pluckNumber)(t.canvasbottommargin, 0), a.minChartWidthPercent = (0, b.pluckNumber)(t.minchartwidth, this.minChartWidth, 50) / 100, a.minChartHeightPercent = (0, b.pluckNumber)(t.minchartheight, this.minChartHeight, 50) / 100, a.minCanvasWidthPercent = (0, b.pluckNumber)(t.mincanvaswidth, this.minCanvasWidth, 60) / 100, a.minCanvasHeightPercent = (0, b.pluckNumber)(t.mincanvasheight, this.minCanvasHeight, 30) / 100, s = (0, b.pluck)(t.zeroplanecolor, t.divlinecolor, C.getColor(x.divLineColor)), c = (0, b.pluck)(t.zeroplanealpha, t.divlinealpha, C.getColor("divLineAlpha")), a.zeroPlaneColor = (0, b.convertColor)(s, c), a.zeroPlaneBorderColor = (0, b.convertColor)((0, b.pluck)(t.zeroplanebordercolor, s), (0, b.pluckNumber)(t.zeroplaneshowborder, 1) ? c : 0), a.zeroPlaneShowBorder = (0, b.pluckNumber)(t.zeroplaneshowborder, 1), a.realtimeEnabled = (0, b.pluckNumber)(t.realtimeenabled, this.isRealTime), a.showLegend = (0, b.pluckNumber)(t.showlegend, this.showLegend, 1), a.link = t.clickurl, a.transposeAxis = (0, b.pluckNumber)(this.transposeAxis, t.transposeaxis, 0), a.useEllipsesWhenOverflow = (0, b.pluckNumber)(t.useellipseswhenoverflow, t.useellipsewhenoverflow, 1), a.drawTrendRegion = (0, b.pluckNumber)(t.drawcrossline, 0), a.plotcolorintooltip = (0, b.pluckNumber)(t.plotcolorintooltip, this.config.singleseries ? 0 : 1), a.plotbinsize = S((0, b.pluckNumber)(t.plotbinsize, this.plotbinsize, .5), 1), a.labelbinsize = S((0, b.pluckNumber)(t.labelbinsize, 1), 1), a.labelbinsize = a.plotbinsize > a.labelbinsize ? a.plotbinsize : a.labelbinsize, a.enableMouseOutEvent = (0, b.pluckNumber)(t.enablemouseoutevent, this.enableMouseOutEvent, 1), a.plotSpacePercent = Math.max((0, b.pluckNumber)(t.plotspacepercent, this.plotSpacePercent), 0), a.maxColWidth = Math.abs((0, b.pluckNumber)(t.maxcolwidth, 50)), a.maxBarHeight = Math.abs((0, b.pluckNumber)(t.maxbarheight, 50)), a.overlapColumns = (0, b.pluckNumber)(t.overlapcolumns, t.overlapbars, a.is3D ? 0 : 1), a.plotPaddingPercent = t.plotpaddingpercent, a.tooltipgrayoutcolor = (0, b.pluck)(t.tooltipgrayoutcolor, b.preDefStr.colors.AAAAAA), a.clickURLOverridesPlotLinks = (0, b.pluckNumber)(t.clickurloverridesplotlinks, 0), a.toolbarX = (0, b.pluckNumber)(t.toolbarx), a.toolbarY = (0, b.pluckNumber)(t.toolbary), a.toolbarPosition = function(e) { var t = e; switch (t) {
                            case "tr":
                            case "rt":
                            case "top right":
                            case "right top":
                                t = "tr"; break;
                            case "br":
                            case "rb":
                            case "bottom right":
                            case "right bottom":
                                t = "br"; break;
                            case "tl":
                            case "lt":
                            case "top left":
                            case "left top":
                                t = "tl"; break;
                            case "bl":
                            case "lb":
                            case "bottom left":
                            case "left bottom":
                                t = "bl"; break;
                            default:
                                t = "tr" } return t }((0, b.pluck)(t.toolbarposition, "tr").toLowerCase()), a.toolbarHAlign = "left" === (b.BLANKSTRING + t.toolbarhalign).toLowerCase() ? "l" : a.toolbarPosition.charAt(1), a.toolbarVAlign = "bottom" === (b.BLANKSTRING + t.toolbarvalign).toLowerCase() ? "b" : a.toolbarPosition.charAt(0), a.toolbarVMargin = (0, b.pluckNumber)(t.toolbarvmargin, 6), a.toolbarHMargin = (0, b.pluckNumber)(t.toolbarhmargin, 10), this.addToEnv("chartConfig", a), this.addToEnv("linkClickFN", (0, b.getLinkAction)(this.getFromEnv("dataSource"), this)), this.addToEnv("dataLabelStyle", d) }, t.createComponent = function() { var e;
                    e = this.config.skipConfigureIteration, this.createBaseComponent(), this.getFromEnv("animationManager").setAnimationState(this._firstConfigure ? "initial" : "update"), (0, b.componentFactory)(this, h["default"], "caption"), e.caption = !0, (0, b.componentFactory)(this, d["default"], "subCaption"), e.subCaption = !0, (0, b.componentFactory)(this, g["default"], "background"), e.background = !0, this._createConfigurableComponents && this._createConfigurableComponents(), this.config.realtimeEnabled && this._realTimeConfigure && this._realTimeConfigure() }, t.configureChildren = function() { var e = this;
                    e._mapChildren((function(t) {!t.getState("removed") && e.config.skipConfigureIteration[t.getName()] && t.configure && t.configure() })) }, t.attachMenuButtons = function() { M.call(this) }, t.configureAttributes = function(e) { R.call(this, e) }, t.setTooltipStyle = function() { var e = this.config;
                    this.getFromEnv("toolTipController").setStyle({ backgroundColor: b.hasSVG ? (0, b.convertColor)(e.tooltipbgcolor || "FFF", e.tooltipbgalpha || 100) : (e.tooltipbgcolor || "FFF").replace(/\s+/g, "").replace(/^#?([a-f0-9]+)/gi, "#$1"), color: (e.tooltipcolor || e.basefontcolor || "545454").replace(/\s+/g, "").replace(/^#?([a-f0-9]+)/gi, "#$1"), borderColor: b.hasSVG ? (0, b.convertColor)(e.tooltipbordercolor || "666", e.tooltipborderalpha || 100) : (e.tooltipbordercolor || "666").replace(/\s+/g, "").replace(/^#?([a-f0-9]+)/gi, "#$1"), borderWidth: (0, b.pluckNumber)(e.tooltipborderthickness, 1) + "px", showToolTipShadow: (0, b.pluckNumber)(e.showtooltipshadow, e.showshadow, 1), borderRadius: (0, b.pluckNumber)(e.tooltipborderradius, 0) + "px", fontSize: (0, b.pluckNumber)(e.basefontsize, 10) + "px", fontFamily: e.basefont || this.getFromEnv("style").inCanfontFamily, padding: (0, b.pluckNumber)(e.tooltippadding || 3) + "px" }) }, t.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                    t.valuefontbold = 0, t.stickytracking = 1, t.usemessagelog = 0, t.zeroplanethickness = b.UNDEF, t.animationeffect = "linear", t.showshadow = 1, t.showhovereffect = b.UNDEF, t.plothovereffect = b.UNDEF, t.anchorhovereffect = b.UNDEF, t.plotborderdashed = b.UNDEF, t.stack100percent = b.UNDEF, t.showpercentvalues = b.UNDEF, t.showpercentintooltip = b.UNDEF, t.plotbordercolor = b.UNDEF, t.showtooltip = 1, t.seriesnameintooltip = 1, t.rotatevalues = 0, t.minimizetendency = 0, t.plotfillangle = 270, t.valuepadding = 2, t.useplotgradientcolor = 1, t.plotborderthickness = 1, t.plotfillalpha = A, t.showvalues = 1, t.valueposition = N, t.drawcrossline = b.UNDEF, t.tooltipsepchar = ", ", t.usedataplotcolorforlabels = 0, t.placevaluesinside = 0, t.showplotborder = 1, t.use3dlighting = 1, t.useroundedges = 0, t.plotspacepercent = 20, t.plotpaddingpercent = b.UNDEF, t.plotfillratio = b.UNDEF, t.maxcolwidth = 50, t.plotborderdashlen = 5, t.plotborderdashgap = 4, t.useScaleRecursively = !0, t.formatnumberscale = 1, t.decimals = 2, t.decimalprecision = 10, t.tooltipbgcolor = "FFF", t.tooltipcolor = b.UNDEF, t.tooltipbordercolor = "666", t.tooltipbgalpha = 100, t.tooltipborderthickness = 1, t.showtooltipshadow = b.UNDEF, t.basefontsize = 10, t.basefont = "Verdana, sans", t.tooltipborderradius = 0, t.tooltippadding = 3, t.tooltipborderalpha = 100, t.origw = b.UNDEF, t.origh = b.UNDEF, t.showBorder = b.UNDEF }, t.configure = function(t) { var a = t;
                    this.sanitizeData(a), this.addToEnv("dataSource", a), this.fireEvent("internal.dataSanitized", {}), a = this.getFromEnv("dataSource"), e.prototype.configure.call(this, a) }, t._checkInvalidData = function() { var e = this.getFromEnv("dataSource"),
                        t = this.getFromEnv("chartInstance"); if (!(this.isWidget || this.isMap || e.data && 0 !== e.data.length || e.dataset || e.value || e.lineset || e.annotations || e.category || e.tasks || e.process || e.axis)) return t.__state.dataReady = !1, t.jsVars.hasNativeMessage = !0, t.jsVars.drawCount += 1, !0 }, t._checkInvalidSpecificData = function() { var e = this.getFromEnv("dataSource"),
                        t = e.dataset,
                        a = e.categories; if (!t || !a || 0 === a.length || !a[0].category) return !0 }, t.sanitizeData = function(e) { e.chart = e.chart || e.graph || e.map || {} }, t.setChartEvents = function() { var e = this.getFromEnv("eventListeners"),
                        t = this.getFromEnv("dataSource"),
                        i = t && t.chart,
                        n = this.getFromEnv("paper") && this.getFromEnv("paper").canvas,
                        o = this.getFromEnv("chart-container"),
                        r = i && (0, b.pluckNumber)(i.enablechartmousemoveevent, 0);
                    (i || n) && (x["default"].unlisten(o, E ? "click" : "touchend", E ? D : P), e.push(x["default"].listen(o, "mousedown touchstart", F, this)), e.push(x["default"].listen(o, "mousemove touchmove", _, this)), e.push(x["default"].listen(o, E ? "click" : "touchend", E ? D : P, this)), x["default"].unlisten(n, "mouseover", I, this), x["default"].unlisten(n, "touchstart", I, this), x["default"].unlisten(n, "mouseout", I, this), x["default"].unlisten(n, "touchend", I, this), e.push(x["default"].listen(n, "mouseover touchstart mouseout touchend", I, this)), x["default"].unlisten(o, "mousemove", a.onContainerMouseMove, this), x["default"].unlisten(o, "touchmove", a.onContainerMouseMove, this), r && e.push(x["default"].listen(o, "mousemove touchmove", a.onContainerMouseMove, this))) }, t.get = function(e, t) { var a = this[e]; return t ? a && a[t] : a }, t.prepareAttributes = function() { this.config.hasChartMessage || e.prototype.prepareAttributes.call(this) }, t.disposeChartStyleSheet = function() { var e = this.getFromEnv("paper");
                    e && e.cssClear() }, t.createChartStyleSheet = function() { this.getFromEnv("paper").cssRender() }, t._dispose = function() { for (var t = this.getFromEnv("eventListeners"), a = t && t.length; a--;) t[a].unlisten();
                    e.prototype._dispose.call(this) }, t._allocateSpace = function(e) { var t, a, i = this.getChildren("canvas"),
                        n = i && i[0].config,
                        o = this.config,
                        r = o.canvasHeight,
                        l = o.canvasWidth,
                        s = o.availableHeight,
                        c = o.availableWidth;
                    a = o.canvasLeft += e.left || 0, t = o.canvasTop += e.top || 0, l = o.canvasWidth = k(l - ((e.left || 0) + (e.right || 0)), 0), r = o.canvasHeight = k(r - ((e.top || 0) + (e.bottom || 0)), 0), o.availableHeight = k(s - ((e.top || 0) + (e.bottom || 0)), 0), o.availableWidth = k(c - ((e.left || 0) + (e.right || 0)), 0), o.canvasRight = a + l, o.canvasBottom = t + r, n && (n.canvasPaddingLeft = k(n.canvasPaddingLeft, e.paddingLeft || 0), n.canvasPaddingRight = k(n.canvasPaddingRight, e.paddingRight || 0), n.canvasPaddingTop = k(n.canvasPaddingTop, e.paddingTop || 0), n.canvasPaddingBottom = k(n.canvasPaddingBottom, e.paddingBottom || 0)), i && i[0].setDimension({ top: t, left: a, width: l, height: r }) }, t._fetchCaptionPos = function(e) { var t = this.config,
                        a = t.width,
                        i = this.getChildren("chartMenuBar") && this.getChildren("chartMenuBar")[0],
                        n = (i ? i.getLogicalSpace() : {}).width || 0,
                        o = (this.getChildren("caption") && this.getChildren("caption")[0]).config,
                        r = o.width,
                        l = "l" === t.toolbarHAlign,
                        s = t.width - e,
                        c = l ? e : s,
                        h = t.origMarginRight,
                        u = t.origMarginLeft,
                        d = l ? u : h; return o.align === b.POSITION_MIDDLE ? c - r / 2 - d - n : "start" === o.align ? l ? -1 : a - t.canvasLeft - d - r - n + o.horizontalPadding : l ? a - (h + u + n + r) : -1 }, t._manageCaptionSpacing = function(e, t) { return this.getChildren("caption")[0].manageSpace(e, t) }, t._manageChartMenuBar = function(e) { var t, a, i, n = this.config,
                        o = this.getChildren("chartMenuBar") && this.getChildren("chartMenuBar")[0],
                        r = n.toolbarY !== b.UNDEF,
                        l = o ? o.getLogicalSpace() : { height: 0, width: 0 },
                        s = (this.getChildren("caption") && this.getChildren("caption")[0]).config,
                        c = s.isOnTop,
                        h = n.width / 2,
                        u = n.canvasRight,
                        d = this.getFromEnv("gLegend") || {},
                        g = !!(d.conf || {}).showLegend,
                        p = 0,
                        f = u ? (n.canvasLeft + u) / 2 : h,
                        m = 0,
                        v = s.alignWithCanvas ? f : h; return r && (l.height = 0), o && o.setDimension({ x: n.toolbarX !== b.UNDEF ? n.toolbarX : (0, b.pluckNumber)("l" === n.toolbarHAlign ? 0 : +n.width), y: n.toolbarY !== b.UNDEF ? n.toolbarY : (0, b.pluckNumber)("t" === n.toolbarVAlign ? 0 : +n.height), width: l.width, height: l.height }), delete s._offsetHeight, i = s.alignWithCanvas ? n.canvasWidth : n.width - n.origMarginLeft - n.origMarginRight, c ? (t = this._manageCaptionSpacing(e, i), m = this._fetchCaptionPos(v), s._offsetHeight = m < 0 ? l.height : 0, t.top = m < 0 ? (0, b.pluckNumber)(t.top, 0) + l.height : k(t.top, l.height), this._allocateSpace(t)) : (this._allocateSpace({ top: l.height }), t = this._manageCaptionSpacing(e, i), this._allocateSpace(t)), g && this.config.gLegendEnabled && (p = d.getCalculatedLogicalSpace().width - d.getLogicalSpace().width, "left" === (a = d.conf.legendPosition ? d.conf.legendPosition.split("-") : [])[0] ? this._allocateSpace({ left: -p }) : "right" === a[0] && this._allocateSpace({ right: -p })), { top: l ? k(l.height, t.top) : t.top, bottom: t.bottom } }, t._manageSpace = function() { var e, t, a, i, n, o, r, l, s, c, h, u, d = this.getChildren("canvas") && this.getChildren("canvas")[0],
                        g = d && d.config,
                        p = this.config,
                        f = this.getFromEnv("chartWidth"),
                        m = this.getFromEnv("chartHeight");
                    p.width = f, p.height = m, p.minChartHeight = s = p.minChartHeightPercent * m, p.minChartWidth = c = p.minChartWidthPercent * f, p.minCanvasWidth = e = p.minCanvasWidthPercent * c, p.minCanvasHeight = t = p.minCanvasHeightPercent * s, p.marginTop = a = p.origMarginTop, p.marginLeft = i = p.origMarginLeft, p.marginBottom = n = p.origMarginBottom, p.marginRight = o = p.origMarginRight, p.canvasMarginTop = p.origCanvasTopMargin, p.canvasMarginLeft = p.origCanvasLeftMargin, p.canvasMarginBottom = p.origCanvasBottomMargin, p.canvasMarginRight = p.origCanvasRightMargin, p.canvasHeight = r = p.height - p.marginTop - p.marginBottom, p.canvasWidth = l = p.width - p.marginLeft - p.marginRight, p.availableHeight = r - t, p.availableWidth = l - e, r < s && (h = m - s, p.canvasHeight = s, u = a + n, p.marginTop = h * a / u, p.marginBottom = h * n / u, p.availableHeight = s - t), l < c && (h = f - c, u = o + i, p.canvasWidth = c, p.marginLeft = h * i / u, p.marginRight = h * o / u, p.availableWidth = c - e), p.canvasLeft = p.marginLeft, p.canvasTop = p.marginTop, g && (g.canvasPaddingLeft = S(g.origCanvasLeftPad, w(.1 * p.height)), g.canvasPaddingRight = S(g.origCanvasRightPad, w(.1 * p.height)), g.canvasPaddingTop = S(g.origCanvasTopPad, w(.1 * p.height)), g.canvasPaddingBottom = S(g.origCanvasBottomPad, w(.1 * p.height))), this._spaceManager() }, t._preDraw = function() { this._mapChildren((function(e) { e.getState("removed") || e.preDraw && e.preDraw() })), this._setAxisLimits && this._setAxisLimits(), this._createToolBoxGantt && this._createToolBoxGantt() }, t._clearTimers = function() { var e, t = this.config && this.config.realTimeConfig,
                        a = this.config.timers,
                        i = a && a.setTimeout,
                        n = a && a.setInterval; for (e in t && (t.refreshIntervalFlag = !1), i) clearTimeout(i[e]); for (e in n) clearInterval(n[e]) }, t.setChartCursor = function() { var e = this.config.link,
                        t = this.getFromEnv("paper").canvas.style;
                    y.svg ? t.cursor = e ? b.POINTER : "default" : this.getFromEnv("paper").canvas.style.cursor = e ? b.HAND : "default" }, t._createLayers = function() { var e, t = this.getFromEnv("animationManager");
                    e = this.getContainer("parentgroup") || this.addContainer("parentgroup", t.setAnimation({ el: "group", attr: { name: "parentgroup" }, component: this })), !this.getChildContainer("backgroundGroup") && this.addChildContainer("backgroundGroup", T({ name: "background" }, e, this)), !this.getChildContainer("axisBottomGroup") && this.addChildContainer("axisBottomGroup", T({ name: "axisbottom" }, e, this)), !this.getChildContainer("belowPlotGroup") && this.addChildContainer("belowPlotGroup", T({ name: "belowplot" }, e, this)), !this.getChildContainer("plotGroup") && this.addChildContainer("plotGroup", T({ name: "plots" }, e, this)), !this.getChildContainer("scrollbarContainer") && this.addChildContainer("scrollbarContainer", T({ name: "scrollbar-container" }, e, this)), !this.getChildContainer("axisTopGroup") && this.addChildContainer("axisTopGroup", T({ name: "axistop" }, e, this)), !this.getChildContainer("sumLabelsLayer") && this.addChildContainer("sumLabelsLayer", T({ name: "sumlabels", "class": "fusioncharts-datalabels" }, e, this)), !this.getChildContainer("datalabelsGroup") && this.addChildContainer("datalabelsGroup", T({ name: "datalabel" }, e, this)), !this.getChildContainer("abovePlotGroup") && this.addChildContainer("abovePlotGroup", T({ name: "aboveplot" }, e, this)), !this.getChildContainer("captionGroup") && this.addChildContainer("captionGroup", T({ name: "caption" }, e, this)), !this.getChildContainer("defaultGroup") && this.addChildContainer("defaultGroup", T({ name: "chartdefault" }, e, this)), !this.getChildContainer("defaultShadowGroup") && this.addChildContainer("defaultShadowGroup", T({ name: "chartdefault-shadow" }, e, this)), !this.getChildContainer("trackerGroup") && this.addChildContainer("trackerGroup", T({ name: "tracker" }, e, this)), !this.getChildContainer("logoGroup") && this.addChildContainer("logoGroup", T({ name: "logo" }, e, this)), !this.getChildContainer("selectorGroup") && this.addChildContainer("selectorGroup", T({ name: "selectorGroup" }, e, this)), this.getChildren("legend") !== b.UNDEF && !this.getChildContainer("legendGroup") && this.addChildContainer("legendGroup", T({ name: "legend" }, e, this)), !this.getChildContainer("toolbar-master") && this.addChildContainer("toolbar-master", T({ name: "toolbar-master" }, e, this)) }, t._setDataLabelStyle = function() { var e = this.config.dataLabelStyle,
                        t = { fontFamily: e.fontFamily, fontSize: e.fontSize, fontWeight: e.fontWeight, fontStyle: e.fontStyle };
                    this.getChildContainer("datalabelsGroup").css(t) }, t._manageCaptionPosition = function() { var e, t, a, i = this.config,
                        n = this.getChildren(),
                        o = n.caption && n.caption[0],
                        r = n.subCaption && n.subCaption[0],
                        l = o.config,
                        s = l.widgetValueHeight || 0,
                        c = r.config,
                        h = i.canvasWidth,
                        u = l.align,
                        d = l.text,
                        g = l.alignWithCanvas,
                        p = l.horizontalPadding,
                        f = i.width,
                        m = i.canvasLeft,
                        v = i.canvasRight,
                        x = i.marginRight,
                        y = i.marginLeft,
                        C = i.marginTop,
                        k = (w(m) || 0) + (0, b.pluckNumber)(h, f) / 2,
                        S = l.height,
                        L = c.height,
                        A = n.legend && n.legend[0] && n.legend[0].config || {},
                        N = A.height || 0,
                        E = A.legendPadding || 0,
                        T = i.legendposition ? i.legendposition.toLowerCase().split("-") : [],
                        F = this.getFromEnv("gLegend") || {},
                        _ = 0,
                        P = !!(F.conf || {}).showLegend,
                        D = this.config.borderWidth,
                        I = n.actionBar,
                        M = 0; switch (A.isActive || (N = 0), P && this.config.gLegendEnabled && (_ = F.getCalculatedLogicalSpace().height), u) {
                        case "end":
                            e = g ? v - p : f - p; break;
                        case "start":
                            e = g ? m + p : p; break;
                        default:
                            e = g ? k : y + .5 * (f - y - x) || f / 2 } l.isOnTop ? t = (D || 0) + (C || 0) : ("left" !== T[0] && "right" !== T[0] && "top" !== T[0] && "absolute" !== T[0] || (E = 0, N = 0, _ = 0), I && I.length && ((M = (I[0].getLogicalSpace && I[0].getLogicalSpace() || {}).height) === b.UNDEF || M === Infinity || M < 0) && (M = 0), t = this.config.height - this.config.marginBottom - S - (L || 0) - (D || 0) - (E || 0) - (N || 0) - _ - s - M), t += l._offsetHeight || 0, o.setDimention({ x: e, y: t }), a = d ? t + S + 2 : t || C || 0, r.setDimention({ x: e, y: a }) }, t.resizeCanvas = function() { var e = this.getFromEnv("paper"),
                        t = this.config,
                        a = this.getFromEnv("animationManager"),
                        i = this.getFromEnv("chartWidth"),
                        n = this.getFromEnv("chartHeight");
                    b.hasSVG || !t._prevWidth && !t._prevHeight || e.setSize(t._prevWidth, t._prevHeight), a.setAnimation({ el: e, attr: { width: i, height: n }, component: this }) }, t._updateVisuals = function() { var e = this.getFromEnv("core-options"),
                        t = this.getFromEnv("paper"),
                        a = this.config,
                        i = this.getFromEnv("chartWidth"),
                        n = this.getFromEnv("chartHeight");
                    e && !e._SVGDefinitionURLUpdated && (/^\s*absolute\s*$/i.test(e.SVGDefinitionURL) && (y._url = (y._g && y._g.win || window).location.href.replace(/#.*?$/, b.BLANKSTRING)), e._SVGDefinitionURLUpdated = !0), t ? this.resizeCanvas() : ((t = new y(this.getFromEnv("chart-container"), i, n)).setHTMLClassName("fusioncharts-div"), this.addToEnv("paper", t), t.setConfig("stroke-linecap", b.ROUND), this.setChartEvents()), a._prevWidth = i, a._prevHeight = n, this.setChartCursor(), this._createLayers(), this._setDataLabelStyle() }, t.allocateDimensionOfChartMenuBar = function() { var e = this.config,
                        t = this.getFromEnv("toolbar"),
                        a = t.config,
                        i = a.hDirection,
                        n = a.vDirection,
                        o = t.getLogicalSpace(),
                        r = t.getDimension(),
                        l = r.y,
                        s = r.x; "t" === e.toolbarVAlign ? (l += e.toolbarVMargin * n + S(0, o.height * n), s += e.toolbarHMargin * i - k(0, o.width * i), s = "l" === e.toolbarHAlign ? s + o.width : s - o.width) : (l = e.height - e.marginBottom - o.height, s = "b" === e.toolbarVAlign && "r" === e.toolbarHAlign ? e.width - e.marginRight - o.width : e.marginLeft), e.toolbarX !== b.UNDEF && (s = e.toolbarX), e.toolbarY !== b.UNDEF && (l = e.toolbarY), t.setDimension({ x: s, y: l, width: o.width, height: o.height }), t.manageSpace() }, t.draw = function() { var e = this.getFromEnv("chartInstance");
                    this.config.hasChartMessage ? (this._hide(), this.resizeCanvas(), this.drawChartMessage(), this.fireChartInstanceEvent("nodatatodisplay", {}, [e.id]), e.jsVars.drawCount += 1, e.__state.dataReady = !1, e.jsVars.hasNativeMessage = !0) : (this._hideChartMessage(), this._clearTimers && this._clearTimers(), this.config.plotOverFlow = !1, this._show(), this._updateVisuals(), this.setState("initiated", !0), e.jsVars.drawCount += 1, e.jsVars.hasNativeMessage = !1) }, t.manageSpace = function() { this.config.hasChartMessage ? this.getChildren("chartMessage")[0].manageSpace() : (this._preDraw(), this.addToolbar && this.addToolbar(), this._manageSpace(), this._postSpaceManagement && this._postSpaceManagement()) }, t._show = function() { this.getContainer("parentgroup") && this.getContainer("parentgroup").show() }, t._manageActionBarSpace = function() { var e = this.config,
                        t = this.getChildren("actionBar"),
                        a = (t && t[0] && t[0].getLogicalSpace() || {}).height || 0; return e.actionBarHeight = a, { bottom: a } }, t._hide = function() { this.getContainer("parentgroup") && this.getContainer("parentgroup").hide() }, a.onContainerMouseMove = function(e) { var t, a = e.data,
                        i = a.getFromEnv("chartInstance"),
                        n = e.originalEvent,
                        o = (0, b.getMouseCoordinate)(a.getFromEnv("chart-container"), n, a);
                    i.ref && (t = (0, b.extend2)({ height: i.args.height, width: i.args.width, pixelHeight: a.getFromEnv("chartHeight"), pixelWidth: a.getFromEnv("chartWidth"), id: i.args.id, renderer: i.args.renderer, container: i.options.containerElement }, o), a.fireChartInstanceEvent("chartMouseMove", t)) }, a.onContainerRollOver = function(e) { var t, a = e.data,
                        i = a.getFromEnv("chartInstance"),
                        n = e.originalEvent,
                        o = (0, b.getMouseCoordinate)(a.getFromEnv("chart-container"), n, a);
                    i.ref && (t = (0, b.extend2)({ height: i.args.height, width: i.args.width, pixelHeight: a.getFromEnv("chartHeight"), pixelWidth: a.getFromEnv("chartWidth"), id: i.args.id, renderer: i.args.renderer, container: i.options.containerElement }, o), a.fireChartInstanceEvent("chartRollOver", t)) }, a.onContainerRollOut = function(e) { var t, a = e.chart,
                        i = a.getFromEnv("chartInstance"),
                        n = e.event,
                        o = (0, b.getMouseCoordinate)(a.getFromEnv("chart-container"), n, a);
                    i.ref && (t = (0, b.extend2)({ height: i.args.height, width: i.args.width, pixelHeight: a.getFromEnv("chartHeight"), pixelWidth: a.getFromEnv("chartWidth"), id: i.args.id, renderer: i.args.renderer, container: i.options.containerElement }, o), a.fireChartInstanceEvent("chartRollOut", t)) }, a.winMouseHover = function(e) { var t = e.originalEvent,
                        i = t.target || t.originalTarget || t.srcElement || t.relatedTarget || t.fromElement,
                        n = e.data,
                        o = n.getFromEnv("paper"),
                        r = { chart: n, event: e.originalEvent };
                    C ? o.getById(i.parentNode.raphaelid) || (a.onContainerRollOut(r), n.config.mouseStateIn = !1, x["default"].unlisten(document, "mouseover", a.winMouseHover)) : i.viewportElement && !e.forceRollOut || (n.config.mouseStateIn = !1, a.onContainerRollOut(r), a.hoverChart = b.UNDEF, x["default"].unlisten(window, "mouseover", a.winMouseHover), e.forceRollOut = !1) }, a }(r["default"]);
            (0, o["default"])(B, "hoverChart", void 0); var V = B;
            t["default"] = V },
        448: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t;
                (0, o.componentFactory)(e, n["default"], "canvas", e.config.showVolumeChart ? 2 : 1), t = e.getChildren("canvas"); for (var a = 0, i = t.length; a < i; a++) t[a].configure() }; var n = i(a(449)),
                o = a(215) },
        449: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(232)),
                o = i(a(229)),
                r = a(230),
                l = a(215),
                s = a(223),
                c = i(a(450)),
                h = Math.max,
                u = l.preDefStr.miterStr,
                d = l.preDefStr.noneStr,
                g = l.preDefStr.ROUND,
                p = function(e, t, a) { return a.getFromEnv("animationManager").setAnimation({ el: "group", attr: { name: e }, container: t, component: a, label: "group" }) };
            (0, s.addDep)({ name: "canvasAnimation", type: "animationRule", extension: c["default"] }); var f = function(e) {
                function t() { var t;
                    t = e.call(this) || this; var a = (0, n["default"])(t); return a.config = {}, a.config.axes = a.config.axes || [], a.setLinkedItem("axes", []), a.setLinkedItem("primaryAxis", {}), a.addToEnv("canvasConfig", t.config), t }(0, o["default"])(t, e); var a = t.prototype; return a.getName = function() { return "canvas" }, a.getType = function() { return "canvas" }, a.createGroup = function() { var e = this.config,
                        t = this.getFromEnv("chart"),
                        a = t.getChildContainer(),
                        i = t.getContainer("parentgroup"),
                        n = this.getEffectiveDimensions(),
                        o = this.getFromEnv("chart-attrib"),
                        r = (0, l.pluckNumber)(o.areaovercolumns, 1),
                        s = this.getChildContainer("axisReferenceVisualsFloor"),
                        c = this.getChildContainer("axisReferenceVisualsBottom"),
                        h = this.getChildContainer("axisReferenceVisualsMiddle"),
                        u = this.getChildContainer("axisReferenceVisualsTop"),
                        d = this.getChildContainer("axisReferenceVisualsCeil"),
                        g = this.getChildContainer("areaGroup"),
                        f = this.getChildContainer("areaShadowGroup"),
                        m = this.getChildContainer("columnGroup"),
                        v = this.getChildContainer("columnShadowGroup"),
                        b = a.plotGroup,
                        x = [n.left, n.top, n.width, n.height].toString();!this.getContainer("canvasGroup") && this.addContainer("canvasGroup", p("canvas", i, this)).insertAfter(a.backgroundGroup), c || (c = this.addChildContainer("axisReferenceVisualsBottom", p("axisReferenceVisualsBottom", i, this)).insertAfter(a.axisBottomGroup)), c.attr({ "clip-rect": e.canvasBorderWidth > 0 ? x : null }), s || (s = this.addChildContainer("axisReferenceVisualsFloor", p("axisReferenceVisualsFloor", i, this)).insertAfter(a.axisBottomGroup)), s.attr({ "clip-rect": x }), !this.getChildContainer("crossline") && this.addChildContainer("crossline", p("crossline", i, this)).insertBefore(a.plotGroup), !this.getChildContainer("crosslineBottom") && this.addChildContainer("crosslineBottom", p("crosslineBottom", i, this)).insertBefore(a.plotGroup), !this.getChildContainer("crosslineTop") && this.addChildContainer("crosslineTop", p("crosslineTop", i, this)).insertBefore(a.abovePlotGroup), !this.getChildContainer("datalabelsGroup") && this.addChildContainer("datalabelsGroup", p("canvasdatalabel", t.getChildContainer("datalabelsGroup"), this)), h || (h = this.addChildContainer("axisReferenceVisualsMiddle", p("axisReferenceVisualsMiddle", i, this)).insertBefore(a.plotGroup)), h.attr({ "clip-rect": x }), u || (u = this.addChildContainer("axisReferenceVisualsTop", p("axisReferenceVisualsTop", i, this)).insertBefore(a.datalabelsGroup)), !this.getChildContainer("quadrantGroup") && this.addChildContainer("quadrantGroup", p("quadrant", i, this)).insertAfter(h), d || this.addChildContainer("axisReferenceVisualsCeil", p("axisReferenceVisualsCeil", i, this)).insertBefore(a.datalabelsGroup), !this.getChildContainer("sumLabelsLayer") && this.addChildContainer("sumLabelsLayer", a.sumLabelsLayer), v || (v = this.addChildContainer("columnShadowGroup", p("column-shadow-group", b, this))), m || (m = this.addChildContainer("columnGroup", p("column", b, this))), f || (f = this.addChildContainer("areaShadowGroup", p("area-shadow-group", b, this))), g || (g = this.addChildContainer("areaGroup", p("area", b, this))), r ? (v.insertBefore(f), m.insertBefore(f)) : (f.insertBefore(v), g.insertBefore(v)), !this.getChildContainer("lineShadowGroup") && this.addChildContainer("lineShadowGroup", p("line-shadow-group", b, this)), !this.getChildContainer("lineGroup") && this.addChildContainer("lineGroup", p("line", b, this)), !this.getChildContainer("defaultShadowGroup") && this.addChildContainer("defaultShadowGroup", p("default-shadow-group", b, this)), !this.getChildContainer("defaultGroup") && this.addChildContainer("defaultGroup", p("default", b, this)) }, a.isWithinCanvas = function(e, t) { var a = this.config,
                        i = a.canvasLeft,
                        n = i + a.canvasWidth,
                        o = a.canvasTop,
                        r = o + a.canvasHeight; return e >= i && e <= n && t >= o && t <= r }, a.setCanvasPadding = function() { var e, t = this.config;
                    e = this.getCanvasPadding(), t.canvasPaddingLeft = h(t.canvasPaddingLeft, e.paddingLeft || 0), t.canvasPaddingRight = h(t.canvasPaddingRight, e.paddingRight || 0), t.canvasPaddingTop = h(t.canvasPaddingTop, e.paddingTop || 0), t.canvasPaddingBottom = h(t.canvasPaddingBottom, e.paddingBottom || 0) }, a.getEffectiveDimensions = function() { var e = this.config; return { left: e.canvasLeft, top: e.canvasTop, width: e.canvasWidth, height: e.canvasHeight, paddingLeft: e.canvasPaddingLeft, paddingTop: e.canvasPaddingTop, paddingRight: e.canvasPaddingRight, paddingBottom: e.canvasPaddingBottom } }, a.setDimension = function(e) { var t = this.config;
                    t.canvasTop = e.top, t.canvasLeft = e.left, t.canvasWidth = e.width, t.canvasHeight = e.height }, a.getCanvasPadding = function() { var e, t, a, i, n = this.getFromEnv("chartConfig").canvasWidth,
                        o = this.config.maxPaddingPercent * n / 100,
                        r = { paddingLeft: 0, paddingRight: 0, paddingTop: 0, paddingBottom: 0 }; return this._mapChildren((function(a) { for (t in e = a.getCanvasPadding && a.getCanvasPadding() || {}) e.hasOwnProperty(t) && (r[t] = h(e[t], r[t])) })), a = r.paddingLeft || 0, i = r.paddingRight || 0, o < a && (r.paddingLeft = o), o < i && (r.paddingRight = o), r }, a.configureAttributes = function(e) { void 0 === e && (e = {}); var t, a, i, n, o, r = this.getLinkedParent(),
                        s = this.getFromEnv("chartConfig"),
                        c = this.config,
                        u = this.getFromEnv("chart-attrib"),
                        d = this.getFromEnv("color-manager"),
                        g = s.is3D,
                        p = g ? l.chartPaletteStr.chart3D : l.chartPaletteStr.chart2D,
                        f = c.isRoundEdges = (0, l.pluckNumber)(u.useroundedges, 0),
                        m = (0, l.pluckNumber)(u.showxaxisline, u.showyaxisline, u.showaxislines, 0) ? 0 : 1;
                    c.canvasBorderRadius = (0, l.pluckNumber)(u.plotborderradius, f ? 2 : 0), i = c.showCanvasBorder = Boolean((0, l.pluckNumber)(u.showcanvasborder, m, t, f ? 0 : 1)), o = c.oriCanvasBorderThickness = h((0, l.pluckNumber)(u.canvasborderthickness, f ? 0 : (0, l.pluckNumber)(r.config.canvasborderthickness, 2), 0)), t = c.canvasBorderWidth = g ? 0 : i ? o : 0, c.canvasBorderColor = (0, l.convertColor)((0, l.pluck)(u.canvasbordercolor, d.getColor(l.canvasBorderColorStr)), (0, l.pluck)(u.canvasborderalpha, d.getColor("canvasBorderAlpha"))), a = c.canBGAlpha = (0, l.pluck)(u.canvasbgalpha, d.getColor(l.canvasBGAlphaStr)), c.canBGColor = { FCcolor: { color: (0, l.pluck)(u.canvasbgcolor, d.getColor(p.canvasBgColor)), alpha: (0, l.pluck)(u.canvasbgalpha, 100), angle: (0, l.pluck)(u.canvasbgangle, 0), ratio: (0, l.pluck)(u.canvasbgratio) } }, n = c.shadow = (0, l.pluckNumber)(u.showshadow, f, 0) && f ? { enabled: !0, opacity: a / 100 } : 0, c.shadowOnCanvasFill = n && n.enabled, c.canvasPadding = (0, l.pluckNumber)(u.canvaspadding, 0), c.origCanvasTopPad = (0, l.pluckNumber)(u.canvastoppadding, 0), c.origCanvasBottomPad = (0, l.pluckNumber)(u.canvasbottompadding, 0), c.origCanvasLeftPad = (0, l.pluckNumber)(u.canvasleftpadding, 0), c.origCanvasRightPad = (0, l.pluckNumber)(u.canvasrightpadding, 0), Object.assign(c, e), this.config.inputComponents = [], this.config.maxPaddingPercent = 12.5, this._mapChildren((function(e) { e.getState("removed") || e.getType && "dataset" === e.getType() || "axisRefVisuals" === e.getType() || e.configure && e.configure() })) }, a.disposeAllInputs = function() { this.config.inputComponents.forEach((function(e) { e.dispose() })), this.config.inputComponents.length = 0 }, a.axisExists = function(e) { var t, a, i = this.getLinkedItem("axes"),
                        n = !1; for (t = 0, a = i.length; t < a; t++)
                        if (i[t].axis === e) { n = !0; break } return n }, a.attachAxis = function(e, t, a) { var i = this.getLinkedItem("axes"),
                        n = t ? "yAxis" : "xAxis",
                        o = this.getFromEnv(n) || []; return this.axisExists(e) || (i.push({ axis: e, isY: t, config: a || {} }), o.push(e), this.addToEnv(n, o)), this }, a.setPrimaryAxis = function(e, t) { this.getLinkedItem("primaryAxis")[e] = this.getLinkedItem("axes").find((function(e) { return e.axis === t })) }, a.getAxes = function() { var e; return Object.keys(e = this.getLinkedItem("primaryAxis")).length ? [e.xAxis, e.yAxis] : this.getLinkedItem("axes").slice(0) }, a.detachAxis = function(e, t) { var a = this.getLinkedItem("axes"),
                        i = Infinity; return t ? a.splice(t, 1) : (a.forEach((function(t, a) { t.axis === e && (i = a) })), a.splice(i, 1)) }, a.preDraw = function() { this._mapChildren((function(e) { e.getState("removed") || e.preDraw && e.preDraw() })) }, a.draw = function() { this.createGroup(), !this.getFromEnv("chart").config.skipCanvasDrawing && this.drawCanvas() }, a.drawCanvas = function() { var e, t, a, i, n, o, r, s = this,
                        c = s.getFromEnv("chart"),
                        p = c.isBar,
                        f = s.getFromEnv("chart-attrib"),
                        m = s.getFromEnv("animationManager"),
                        v = c.config,
                        b = s.config,
                        x = b.clip = {},
                        y = c.getChildContainer("plotGroup"),
                        C = c.getChildContainer("datalabelsGroup"),
                        k = s.getGraphicalElement("canvasBorderElement"),
                        S = s.getGraphicalElement("canvasElement"),
                        w = b.canvasLeft || (b.canvasLeft = v.canvasLeft),
                        L = b.canvasTop || (b.canvasTop = v.canvasTop),
                        A = b.canvasWidth || (b.canvasWidth = v.canvasWidth),
                        N = b.canvasHeight || (b.canvasHeight = v.canvasHeight),
                        E = b.xDepth = v.xDepth || 0,
                        T = b.yDepth = v.yDepth || 0,
                        F = s.getContainer("canvasGroup"),
                        _ = s.getChildContainer("quadrantGroup"),
                        P = b.canvasBorderRadius,
                        D = b.canvasBorderWidth,
                        I = .5 * D,
                        M = b.canvasBorderColor,
                        O = b.canBGColor,
                        R = b.canBGAlpha,
                        B = b.shadow,
                        V = b.showCanvasBG = Boolean((0, l.pluckNumber)(f.showcanvasbg, 1)),
                        G = b.shadowOnCanvasFill,
                        z = b.showCanvasBorder;
                    i = O, n = { x: w - I, y: L - I, width: A + D, height: N + D, r: P, "stroke-width": D, stroke: M, "stroke-linejoin": D > 2 ? g : u }, z ? (k && k.show(), t = m.setAnimation({ el: k || "rect", component: s, attr: { x: w - I, y: L - I, width: A + D, height: N + D, r: P, "stroke-width": D, stroke: M, "stroke-linejoin": D > 2 ? g : u }, label: "rect", container: F }).shadow(B), k || s.addGraphicalElement("canvasBorderElement", t)) : k && (s.removeGraphicalElement(k), m.setAnimation({ el: k, component: s, callback: function() { k.hide() } })), o = z ? 0 : b.oriCanvasBorderThickness, x["clip-canvas"] = [h(0, w - E - o), h(0, L - T - o), h(1, A + 2 * E + 2 * o), h(1, N + T + 2 * o)], x["clip-sum-value"] = [h(0, w - E), p ? L : 0, h(1, p ? v.width - w : A + 2 * E), h(1, p ? N + T : L + N)], x["clip-canvas-init"] = [h(0, w - E), h(0, L - T), 1, h(1, N + 2 * T)], e = x["clip-canvas"].slice(0), r = function(e, t) { m.setAnimation({ el: e, attr: { "clip-rect": t }, label: "container", component: s, state: e.attrs["clip-rect"] ? "updating" : "appearing" }) }, v.skipClipping || (r(y, e), r(C, e), r(_, e), r(s.getChildContainer("sumLabelsLayer"), x["clip-sum-value"])), V ? (n = { x: w, y: L, width: A, height: N, r: P, "stroke-width": 0, stroke: d, fill: (0, l.toRaphaelColor)(i) }, S && S.show(), a = m.setAnimation({ el: S || "rect", attr: n, label: "rect", container: F, component: s }), S || s.addGraphicalElement("canvasElement", a), G ? a.shadow({ opacity: R / 100 }) : a.shadow(!1)) : S && m.setAnimation({ el: S, component: s, callback: function() { S.hide() } }) }, t }(r.ComponentInterface);
            t["default"] = f },
        450: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { "initial.canvas.canvas": function() { return { "rect.appearing": function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "initial" }] }, "*": null } }, "update.canvas.canvas": { "rect.updating": [{ slot: "middle" }] } } },
        451: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t, a = e,
                    l = a.config,
                    s = a.getFromEnv("chart-attrib"),
                    c = "t" === l.toolbarVAlign ? "chartMenuBar" : "actionBar",
                    h = "t" === l.toolbarVAlign ? "actionBar" : "chartMenuBar";
                (0, i.componentFactory)(a, n.ToolBar, h, 0, [s]), (0, i.componentFactory)(a, n.ToolBar, c, 1, [s]), t = a.getChildren(c)[0], a.addToEnv("toolbar", t), o.SymbolStore.register("ContextIcon", (function(e, t, a) { var i = e,
                        n = t,
                        o = 2 * a,
                        l = r(o / 4),
                        s = .7 * r(o / 2),
                        c = i - s,
                        h = i + s,
                        u = n + l,
                        d = n - l; return ["M", c, n, "L", h, n, "M", c, u, "L", h, u, "M", c, d, "L", h, d] })), a.attachMenuButtons() }; var i = a(215),
                n = a(331),
                o = a(336),
                r = Math.round },
        452: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(215),
                r = a(230),
                l = a(223),
                s = i(a(453)),
                c = Math.max,
                h = Math.min,
                u = Math.ceil;
            (0, l.addDep)({ name: "captionAnimation", type: "animationRule", extension: s["default"] }); var d = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "caption" }, a.getName = function() { return "caption" }, a.configure = function() { var e = this.getFromEnv("chart"),
                        t = e.getFromEnv("chart-attrib"),
                        a = this.config || {},
                        i = e.getFromEnv("style"),
                        n = i.outCanfontFamily,
                        r = i.outCancolor,
                        l = i.fontSize,
                        s = ["top", "center"]; switch (this.config.text = (0, o.parseUnsafeString)(t.caption), a.style = { fontFamily: (0, o.pluck)(t.captionfont, n), color: (0, o.convertColor)((0, o.pluck)(t.captionfontcolor, r).replace(/^#? ([a-f0-9]+)/gi, "#$1")), fontSize: (0, o.pluckNumber)(t.captionfontsize, l + 3) + "px", fontWeight: 0 === (0, o.pluckNumber)(t.captionfontbold) ? o.NORMAL : o.BOLD }, a.align || (a.align = o.BLANKSTRING), a.align = (0, o.pluck)(t.captionposition, t.captionalignment, "center"), a.align && ((s = a.align.split("-"))[0] && (s[0] = s[0].toLowerCase()), s[1] && (s[1] = s[1].toLowerCase()), s.length < 2 && (s[1] = s[0])), s[0]) {
                        case "top":
                            a.isOnTop = 1; break;
                        case "bottom":
                            a.isOnTop = 0; break;
                        default:
                            a.isOnTop = (0, o.pluckNumber)(t.captionontop, 1) } switch (s[1]) {
                        case "right":
                            a.align = "end"; break;
                        case "left":
                            a.align = "start"; break;
                        default:
                            a.align = "middle" } a.isOnLeft = !(0, o.pluckNumber)(t.captiononright, 0), a.captionPosition = (0, o.getValidValue)(t.captionposition, "top").toLowerCase(), a.alignWithCanvas = (0, o.pluckNumber)(t.aligncaptionwithcanvas, e.config.alignCaptionWithCanvas, 1), a.horizontalPadding = (0, o.pluckNumber)(t.captionhorizontalpadding, a.alignWithCanvas ? 0 : 15), a.drawCaption = !0, (0, o.setLineHeight)(a.style) }, a.allocatePosition = function() { this.getFromEnv("chart")._manageCaptionPosition() }, a.draw = function() { var e, t = this.getFromEnv("chart"),
                        a = t.config,
                        i = t.getFromEnv("animationManager"),
                        n = t.config.textDirection,
                        r = t.getChildContainer().captionGroup,
                        l = t.getFromEnv("smartLabel"),
                        s = this.getGraphicalElement("captionElement"),
                        c = this.getFromEnv("toolTipController"),
                        h = this.config,
                        u = h.style,
                        d = h.text,
                        g = h.x,
                        p = h.align;
                    d ? (e = { text: h.text, fill: u.color, x: g, y: h.y, "text-anchor": p || "middle", "vertical-align": h.verticalAlign || "top", visibility: h.drawCaption ? o.visibleStr : o.hiddenStr, direction: n }, (s = this.addGraphicalElement("captionElement", i.setAnimation({ el: s || "text", attr: e, container: r, state: void 0, component: this, label: "text" }))).css(u), a.showtooltip ? c.enableToolTip(s, h.originalText) : c.disableToolTip(s), l && (l.useEllipsesOnOverflow(a.useEllipsesWhenOverflow), l.setStyle(u))) : s && i.setAnimation({ el: s, component: this, callback: function() { this.hide() }, doNotRemove: !0 }), a.savedCaption = s }, a.manageSpace = function(e, t) { var a, i, n, r, l, s = this.getFromEnv("chart"),
                        d = s.config,
                        g = s.getChildren("caption")[0],
                        p = s.getChildren("subCaption")[0],
                        f = g.config,
                        m = p.config,
                        v = s.getFromEnv("dataSource").chart,
                        b = s.getFromEnv("smartLabel"),
                        x = e,
                        y = (0, o.parseUnsafeString)(v.caption),
                        C = (0, o.parseUnsafeString)(v.subcaption),
                        k = (0, o.pluckNumber)(v.captionpadding, 10),
                        S = k,
                        w = !1,
                        L = 0,
                        A = 0,
                        N = 0,
                        E = 0,
                        T = 0,
                        F = s.getChildren("canvas"),
                        _ = c(F && F[0].config.canvasBorderThickness, 0),
                        P = 0,
                        D = 0; return x > 3 ? (k < _ && (k = _ + 2), y !== o.BLANKSTRING && (n = f.style, E = u((0, o.pluckNumber)(parseFloat(n.fontHeight, 10), parseFloat(n.lineHeight, 10), 12))), C !== o.BLANKSTRING && (l = m.style, T = (0, o.pluckNumber)(parseInt(l.fontHeight, 10), parseInt(l.lineHeight, 10), 12)), E > 0 || T > 0 ? ((L = E + T + k) > (x = c(x, 0)) ? (w = !0, (A = L - x) < k ? k = c(A, 5) : (A -= k, k = 0, T > A ? (N = T - A + 10, T = 0, m._originalText = m.text, m.text = o.BLANKSTRING) : (A -= T, T = 0, E > A && (N = E - A)))) : N = x - L, b.useEllipsesOnOverflow(d.useEllipsesWhenOverflow), E > 0 && (b.setStyle(n), N = (E += N) - (a = b.getSmartText(y, t, E)).height, f.height = E = a.height, f.text = a.text, f.originalText = !!a.tooltext && a.tooltext, P = a.width), T > 0 && (b.setStyle(l), N = (T += N) - (i = b.getSmartText(C, t, T)).height, T = i.height, m.text = i.text, m.height = i.height, m.originalText = !!i.tooltext && i.tooltext, D = i.width), w && N > 0 && (k += h(S - k, N)), f.captionPadding = k, f.height = E, f.width = P, m.width = D, m.height = T, L = E + T + k) : (f.height = 0, m.height = 0), L > d.canvasHeight ? (L = 0, f.drawCaption = !1) : f.drawCaption = !0, r = f.isOnTop ? { top: L } : { bottom: L, top: 5 }) : (r = { bottom: 0, top: 0 }, f.drawCaption = !1), r }, a.setDimention = function(e) { var t = this.config;
                    t.x = e.x, t.y = e.y }, t }(r.ComponentInterface);
            t["default"] = d },
        453: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { "initial.caption.caption": function() { return { "text.appearing": function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "initial" }] } } } } },
        454: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(215),
                r = i(a(452)),
                l = a(223),
                s = i(a(455)),
                c = Math.max;
            (0, l.addDep)({ name: "subcaptionAnimation", type: "animationRule", extension: s["default"] }); var h = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "caption" }, a.getName = function() { return "subCaption" }, a.configure = function() { var e = this.getFromEnv("chart"),
                        t = e.getFromEnv("chart-attrib"),
                        a = this.config || {},
                        i = e.getFromEnv("style"),
                        n = e.getChildren("caption")[0],
                        r = i.outCanfontFamily,
                        l = i.outCancolor,
                        s = i.fontSize,
                        h = ["top", "center"]; switch (a.text = (0, o.parseUnsafeString)(t.subcaption), a.align || (a.align = o.BLANKSTRING), a.align = (0, o.pluck)(t.captionposition, t.captionalignment, "center"), n.config.align && ((h = n.config.align.split("-"))[0] && (h[0] = h[0].toLowerCase()), h[1] && (h[1] = h[1].toLowerCase()), h.length < 2 && (h[1] = h[0])), h[0]) {
                        case "top":
                            a.isOnTop = 1; break;
                        case "bottom":
                            a.isOnTop = 0; break;
                        default:
                            a.isOnTop = (0, o.pluckNumber)(t.captionontop, 1) } a.alignWithCanvas = (0, o.pluckNumber)(e.aligncaptionwithcanvas, t.aligncaptionwithcanvas, 1), a.horizontalPadding = (0, o.pluckNumber)(t.captionhorizontalpadding, n.config.alignWithCanvas ? 0 : 15), a.style = { fontFamily: (0, o.pluck)(t.subcaptionfont, t.captionfont, r), color: (0, o.convertColor)((0, o.pluck)(t.subcaptionfontcolor, t.captionfontcolor, l).replace(/^#? ([a-f0-9]+)/gi, "#$1")), fontSize: (0, o.pluckNumber)(t.subcaptionfontsize, (0, o.pluckNumber)(c((0, o.pluckNumber)(t.captionfontsize) - 3, -1), s) + (0, o.pluckNumber)(e.subTitleFontSizeExtender, 1)) + "px", fontWeight: 0 === (0, o.pluckNumber)(t.subcaptionfontbold, e.subTitleFontWeight, t.captionfontbold) ? o.NORMAL : o.BOLD }, (0, o.setLineHeight)(a.style) }, a.draw = function() { var e, t = this.getFromEnv("chart"),
                        a = t.getFromEnv("animationManager"),
                        i = t.getChildren("caption")[0],
                        n = t.config,
                        r = n.textDirection,
                        l = t.getChildContainer().captionGroup,
                        s = this.getGraphicalElement("subCaptionElement"),
                        c = this.getFromEnv("toolTipController"),
                        h = this.config,
                        u = h.style,
                        d = h.text,
                        g = i.config.align;
                    d ? (e = { text: h.text, fill: u.color, x: h.x, y: h.y, "text-anchor": g || "middle", "vertical-align": "top", direction: r, visibility: i.config.drawCaption ? o.visibleStr : o.hiddenStr }, (s = this.addGraphicalElement("subCaptionElement", a.setAnimation({ el: s || "text", attr: e, container: l, state: void 0, component: this, hookFn: function() { this.css(u) }, label: "text" }))).css(u), n.showtooltip ? c.enableToolTip(s, h.originalText) : c.disableToolTip(s)) : s && this.removeGraphicalElement(s), n.savedSubCaption = s }, a.setDimention = function(e) { this.config.x = e.x, this.config.y = e.y }, t }(r["default"]);
            t["default"] = h },
        455: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = { "initial.caption.subCaption": i(a(453))["default"]["initial.caption.caption"] };
            t["default"] = n },
        456: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(232)),
                o = i(a(229)),
                r = a(230),
                l = a(215),
                s = a(223),
                c = i(a(457)),
                h = "BackgroundLoaded",
                u = "BackgroundLoadError",
                d = "none";
            (0, s.addDep)({ name: "backgroundAnimation", type: "animationRule", extension: c["default"] }); var g = function(e) {
                function t() { var t, a, i; return (t = e.call(this) || this).config.handler = (a = (0, n["default"])(t), i = a.config, { load: function() { var e = i.bgImageDisplayMode,
                                t = i.bgImageVAlign,
                                n = i.bgImageHAlign,
                                o = i.bgImageScale,
                                r = i.bgSWFAlpha,
                                l = i.bgSWF,
                                s = a.getGraphicalElement("backgroundImage")._.RefImg;
                            a.getFromEnv("chart").fireChartInstanceEvent(h, { url: l, bgImageAlpha: r, bgImageDisplayMode: e, bgImageVAlign: t, bgImageHAlign: n, bgImageScale: o, imageheight: s.height, imagewidth: s.width }) }, error: function(e) { var t = i.bgImageDisplayMode,
                                n = i.bgImageVAlign,
                                o = i.bgImageHAlign,
                                r = i.bgImageScale,
                                l = i.bgSWFAlpha,
                                s = i.bgSWF;
                            a.getFromEnv("chart").fireChartInstanceEvent(u, { url: s, bgImageAlpha: l, error: e, bgImageDisplayMode: t, bgImageVAlign: n, bgImageHAlign: o, bgImageScale: r }) } }), t }(0, o["default"])(t, e); var a = t.prototype; return a.getName = function() { return "background" }, a.getType = function() { return "background" }, a._getBackgroundCosmetics = function() { var e = this.getFromEnv("chart-attrib"),
                        t = this.getFromEnv("color-manager"),
                        a = this.getFromEnv("chartConfig").is3D ? l.chartPaletteStr.chart3D : l.chartPaletteStr.chart2D; return { FCcolor: { color: (0, l.pluck)(e.bgcolor, t.getColor(a.bgColor)), alpha: (0, l.pluck)(e.bgalpha, t.getColor(a.bgAlpha)), angle: (0, l.pluck)(e.bgangle, t.getColor(a.bgAngle)), ratio: (0, l.pluck)(e.bgratio, t.getColor(a.bgRatio)) } } }, a.configureAttributes = function() { var e, t, a, i = this.config,
                        n = this.getFromEnv("chart-attrib"),
                        o = this.getFromEnv("chartConfig"),
                        r = o.is3D,
                        s = this.getFromEnv("color-manager"),
                        c = i.bgImageDisplayMode = (0, l.pluck)(n.bgimagedisplaymode, "none").toLowerCase();
                    i.bgSWF = (0, l.pluck)(n.bgimage, n.bgswf), i.bgSWFAlpha = (0, l.pluckNumber)(n.bgimagealpha, n.bgswfalpha, 100), e = i.showBorder = (0, l.pluckNumber)(n.showborder, o.showBorder, r ? 0 : 1), i.borderWidth = Math.max(e ? (0, l.pluckNumber)(n.borderthickness, 1) : 0, 0), i.borderRadius = (0, l.pluckNumber)(n.borderradius, 0), i.borderDashStyle = (0, l.pluckNumber)(n.borderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(n.borderdashlen, 4), (0, l.pluckNumber)(n.borderdashgap, 2), void 0) : d, i.borderAlpha = (0, l.pluck)(n.borderalpha, r ? "100" : s && s.getColor("borderAlpha")), i.borderColor = (0, l.convertColor)((0, l.pluck)(n.bordercolor, r ? "#666666" : s && s.getColor("borderColor")), i.borderAlpha), i.bgImageVAlign = t = (0, l.getValidValue)(n.bgimagevalign, "").toLowerCase(), i.bgImageHAlign = a = (n.bgimagehalign || "").toLowerCase(), i.bgImageScale = (0, l.pluckNumber)(n.bgimagescale, 100), i.containerBackgroundColor = (0, l.getContainerBackgroundColor)(this.getFromEnv("chartInstance")), i.backgroundColor = this._getBackgroundCosmetics(), "tile" === c || "fill" === c || "fit" === c ? ("top" !== t && "middle" !== t && "bottom" !== t && (i.bgImageVAlign = "middle"), "left" !== a && "middle" !== a && "right" !== a && (i.bgImageHAlign = "middle")) : ("top" !== t && "middle" !== t && "bottom" !== t && (i.bgImageVAlign = "top"), "left" !== a && "middle" !== a && "right" !== a && (i.bgImageHAlign = "left")) }, a.draw = function() { var e, t, a, i, n, o, r = this.getFromEnv("paper"),
                        s = this.getGraphicalElement("backgroundElement"),
                        c = this.getGraphicalElement("borderElement"),
                        h = this.config,
                        u = this.getFromEnv("chart"),
                        d = this.getFromEnv("chartConfig"),
                        g = h.backgroundColor,
                        p = this.getFromEnv("animationManager"),
                        f = this.getGraphicalElement("backgroundImage"),
                        m = h.bgSWF,
                        v = u.getChildContainer("backgroundGroup"),
                        b = d.width,
                        x = d.height,
                        y = h.borderWidth || 0,
                        C = h.borderRadius,
                        k = h.borderDashStyle,
                        S = h.borderColor,
                        w = h.bgSWFAlpha,
                        L = y + "," + y + "," + (b - 2 * y) + "," + (x - 2 * y),
                        A = h.bgImageDisplayMode,
                        N = h.bgImageVAlign,
                        E = h.bgImageHAlign,
                        T = h.bgImageScale;
                    r.canvas.style.backgroundColor = h.containerBackgroundColor, a = { x: y, y: y, width: (o = b - 2 * y) < 0 ? 0 : o, height: (n = x - 2 * y) > 0 ? n : 0, stroke: l.preDefStr.noneStr, fill: (0, l.toRaphaelColor)(g) }, (e = p.setAnimation({ el: s || "rect", attr: a, container: v, component: this, label: "rect" })).show(), s || this.addGraphicalElement("backgroundElement", e), a = { x: y / 2, y: y / 2, width: (o = b - y) < 0 ? 0 : o, height: (n = x - y) > 0 ? n : 0, stroke: S, "stroke-width": y, "stroke-dasharray": k, fill: l.preDefStr.noneStr, r: C || 0 }, (t = p.setAnimation({ el: c || "rect", attr: a, container: v, component: this, label: "rect" })).show(), c || this.addGraphicalElement("borderElement", t), m && !this.getState("removed") ? ((i = p.setAnimation({ el: f || "imagegrid", attr: { imagegrid: [A, N, E, T, y, b, x], src: m, opacity: .01 * w, "clip-rect": L }, container: v, component: this, label: "imagegrid" })).show(), f || (this.addGraphicalElement("backgroundImage", i), i.on("load", h.handler.load), i.on("error", h.handler.error))) : f && this.removeGraphicalElement(f) }, t }(r.ComponentInterface);
            t["default"] = g },
        457: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { "initial.background.background": function() { return { "rect.appearing": function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "initial" }] } } } } },
        458: function(e, t, a) { "use strict"; var i = a(208),
                n = a(212);
            t.__esModule = !0, t["default"] = void 0; var o = a(215),
                r = n(a(459)),
                l = i(a(277));

            function s(e, t) { var a, i, n, r, l, s, c, h, d, g, p, f = u.stringConstants,
                    m = t.replace(/\s/g, f.BLANK).toLowerCase(),
                    v = []; if (m === f.BLANK || null == m) v = [e];
                else
                    for (n = m.split(f.COMMASTRING), r = e.split(f.COMMASTRING), l = Math.max(n.length, r.length, 1), s = n[0], c = r[0], g = /[\{\}]/gi, p = 0; p < l; p++) h = (n[p] || s).replace(g, ""), d = r[p] || c, "color" === h ? v.push(d) : "light" === h.substr(0, 5) ? (i = 100 - (i = -1 === (a = h.indexOf("-")) ? 1 : h.substr(a + 1, h.length - a)), v.push((0, o.getLightColor)(d, i))) : "dark" === h.substr(0, 4) ? (i = 100 - (i = -1 === (a = h.indexOf("-")) ? 1 : h.substr(a + 1, h.length - a)), v.push((0, o.getDarkColor)(d, i))) : v.push(h); return v }

            function c(e, t) { var a, i, n = e.toString().split(u.stringConstants.COMMASTRING),
                    r = [],
                    l = 100; for (i = 0; i < t; i++) a = (0, o.pluckNumber)(n[i]), u.defined(a) && (l = a), r[i] = l; return r.join() }

            function h(e, t) { var a, i, n = e.split(u.stringConstants.COMMASTRING),
                    o = [],
                    r = 0; for (i = 0; i < t; i++) a = n[i], a = (a = isNaN(a) || void 0 === a ? 0 : Math.abs(Number(a))) > 100 ? 100 : a, o[i] = a, r += a; if (r = r > 100 ? 100 : r, n.length < t)
                    for (i = n.length; i < t; i++) o[i] = (100 - r) / (t - n.length); return o[-1] = 0, o.join() } var u = function() {
                function e(e) { this.parseColorMix = s, this.parseAlphaList = c, this.parseRatioList = h, this.linkedItems = { iapi: e }, this.configure(), this.paletteColors = ["AFD8F8", "F6BD0F", "8BBA00", "FF8E46", "008E8E", "D64646", "8E468E", "588526", "B3AA00", "008ED6", "9D080D", "A186BE", "CC6600", "FDC689", "ABA000", "F26D7D", "FFF200", "0054A6", "F7941C", "CC3300", "006600", "663300", "6DCFF6"] } var t = e.prototype; return t.configure = function() { var t = this,
                        a = e.stringConstants,
                        i = t.linkedItems.iapi,
                        n = i.getFromEnv("dataSource").chart || {},
                        s = t.paletteOptions = (0, o.extend2)((0, o.extend2)({}, r), i.defaultPaletteOptions || {}, !1, !0),
                        c = t.themeEnabled = n.palettethemecolor;
                    t.paletteIndex = (n.palette > 0 && n.palette < 6 ? n.palette : (0, o.pluckNumber)(i.paletteIndex, 1)) - 1, t.iterator = 0, t.paletteColors = s.paletteColors[t.themeEnabled ? 0 : t.paletteIndex], e.defined(n.palettecolors) && n.palettecolors !== a.BLANK && (t.paletteColors = (0, l["default"])(n.palettecolors) ? n.palettecolors.slice() : n.palettecolors.split(/\s*\,\s*/)), t.paletteLen = t.paletteColors.length, t.useFlatColors = (0, o.pluckNumber)(n.useflatdataplotcolor, i.useFlatColor, 0), c && (t.paletteIndex = 5, s.bgColor[5] = (0, o.getLightColor)(c, 35) + a.COMMASTRING + (0, o.getLightColor)(c, 10), s.bgAngle[5] = 270, s.bgRatio[5] = a.BGRATIOSTRING, s.bgAlpha[5] = "50,50", s.canvasBgColor[5] = a.COLOR_WHITE, s.canvasBgAngle[5] = 0, s.canvasBgAlpha[5] = a.HUNDREDSTRING, s.canvasBgRatio[5] = a.BLANK, s.canvasBorderColor[5] = (0, o.getDarkColor)(c, 80), s.canvasBorderAlpha[5] = 100, s.showShadow[5] = 1, s.divLineColor[5] = (0, o.getDarkColor)(c, 20), s.divLineAlpha[5] = 40, s.altHGridColor[5] = (0, o.getLightColor)(c, 20), s.altHGridAlpha[5] = 15, s.altVGridColor[5] = (0, o.getLightColor)(c, 80), s.altVGridAlpha[5] = 10, s.anchorBgColor[5] = a.COLOR_WHITE, s.toolTipBgColor[5] = a.COLOR_WHITE, s.toolTipBorderColor[5] = (0, o.getDarkColor)(c, 80), s.baseFontColor[5] = c.split && c.split(a.COMMASTRING)[0], s.borderColor[5] = (0, o.getDarkColor)(c, 60), s.borderAlpha[5] = 50, s.legendBgColor[5] = a.COLOR_WHITE, s.legendBorderColor[5] = (0, o.getDarkColor)(c, 80), s.plotGradientColor[5] = a.COLOR_WHITE, s.plotBorderColor[5] = (0, o.getDarkColor)(c, 85), s.plotFillColor[5] = (0, o.getDarkColor)(c, 85), s.bgColor3D[5] = a.COLOR_WHITE, s.bgAlpha3D[5] = a.HUNDREDSTRING, s.bgAngle3D[5] = 90, s.bgRatio3D[5] = a.BLANK, s.canvasBgColor3D[5] = (0, o.getLightColor)(c, 20), s.canvasBaseColor3D[5] = (0, o.getLightColor)(c, 40), s.divLineColor3D[5] = (0, o.getDarkColor)(c, 20), s.divLineAlpha3D[5] = 40, s.legendBgColor3D[5] = a.COLOR_WHITE, s.legendBorderColor3D[5] = (0, o.getDarkColor)(c, 80), s.toolTipbgColor3D[5] = a.COLOR_WHITE, s.toolTipBorderColor3D[5] = (0, o.getDarkColor)(c, 80), s.baseFontColor3D[5] = c.split && c.split(a.COMMASTRING)[0], s.anchorBgColor3D[5] = a.COLOR_WHITE, s.tickColor && (s.tickColor[5] = (0, o.getDarkColor)(c, 90)), s.trendDarkColor && (s.trendDarkColor[5] = (0, o.getDarkColor)(c, 90)), s.trendLightColor && (s.trendLightColor[5] = (0, o.getLightColor)(c, s.TrendLightShadeOffset)), s.msgLogColor && (s.msgLogColor[5] = (0, o.getLightColor)(c, 80)), s.dialColor && (s.dialColor[5] = (0, o.getDarkColor)(c, 95) + ",FFFFFF," + (0, o.getDarkColor)(c, 95)), s.dialBorderColor && (s.dialBorderColor[5] = (0, o.getDarkColor)(c, 95) + ",FFFFFF," + (0, o.getDarkColor)(c, 95)), s.pivotColor && (s.pivotColor[5] = (0, o.getLightColor)(c, 95) + ",FFFFFF," + (0, o.getLightColor)(c, 95)), s.pivotBorderColor && (s.pivotBorderColor[5] = (0, o.getDarkColor)(c, 95) + ",FFFFFF," + (0, o.getDarkColor)(c, 95)), s.pointerBorderColor && (s.pointerBorderColor[5] = (0, o.getDarkColor)(c, 75)), s.pointerBgColor && (s.pointerBgColor[5] = (0, o.getDarkColor)(c, 75)), s.thmBorderColor && (s.thmBorderColor[5] = (0, o.getDarkColor)(c, 90)), s.thmFillColor && (s.thmFillColor[5] = (0, o.getLightColor)(c, 55)), s.gaugeBorderColor && (s.gaugeBorderColor[5] = (0, o.getDarkColor)(c, 90)), s.gaugeFillColor && (s.gaugeFillColor[5] = (0, o.getLightColor)(c, 55)), s.cylFillColor && (s.cylFillColor[5] = (0, o.getLightColor)(c, 55)), s.periodColor && (s.periodColor[5] = (0, o.getLightColor)(c, 10)), s.winColor && (s.winColor[5] = "666666"), s.lossColor && (s.lossColor[5] = "CC0000"), s.drawColor && (s.drawColor[5] = "666666"), s.scorelessColor && (s.scorelessColor[5] = "FF0000"), s.gridColor && (s.gridColor[5] = (0, o.getLightColor)(c, 30)), s.categoryBgColor && (s.categoryBgColor[5] = (0, o.getLightColor)(c, 10)), s.dataTableBgColor && (s.dataTableBgColor[5] = (0, o.getLightColor)(c, 10)), s.gridResizeBarColor && (s.gridResizeBarColor[5] = (0, o.getDarkColor)(c, 90)), s.scrollBarColor && (s.scrollBarColor[5] = (0, o.getLightColor)(c, 50))) }, t.getColor = function(e) { return this.paletteOptions[e][this.paletteIndex] }, t.getPlotColor = function(e) { var t = this,
                        a = t.paletteColors,
                        i = t.useFlatColors ? t.getColor("plotFillColor") : a[e % t.paletteLen]; return i || (t.iterator === t.paletteLen && (t.iterator = 0), i = a[t.iterator], t.iterator += 1), i }, e }();
            u.stringConstants = { BLANK: "", COMMASTRING: ",", BGRATIOSTRING: "0,100", COLOR_WHITE: "FFFFFF", HUNDREDSTRING: "100" }, u.defined = function(e) { return null != e }; var d = u;
            t["default"] = d },
        459: function(e, t, a) { "use strict";
            t.__esModule = !0, t.anchorBgColor3D = t.baseFontColor3D = t.toolTipBorderColor3D = t.toolTipbgColor3D = t.legendBorderColor3D = t.legendBgColor3D = t.divLineAlpha3D = t.divLineColor3D = t.canvasBaseColor3D = t.canvasBgColor3D = t.bgRatio3D = t.bgAngle3D = t.bgAlpha3D = t.bgColor3D = t.plotFillColor = t.plotBorderColor = t.plotGradientColor = t.legendBorderColor = t.legendBgColor = t.borderAlpha = t.borderColor = t.baseFontColor = t.toolTipBorderColor = t.toolTipBgColor = t.anchorBgColor = t.altVGridAlpha = t.altVGridColor = t.altHGridAlpha = t.altHGridColor = t.divLineAlpha = t.divLineColor = t.showShadow = t.canvasBorderAlpha = t.canvasBorderColor = t.canvasBgRatio = t.canvasBgAlpha = t.canvasBgAngle = t.canvasBgColor = t.bgAlpha = t.bgRatio = t.bgAngle = t.bgColor = t.paletteColors = void 0; var i = ["AFD8F8", "F6BD0F", "8BBA00", "FF8E46", "008E8E", "D64646", "8E468E", "588526", "B3AA00", "008ED6", "9D080D", "A186BE", "CC6600", "FDC689", "ABA000", "F26D7D", "FFF200", "0054A6", "F7941C", "CC3300", "006600", "663300", "6DCFF6"],
                n = [i, i, i, i, i],
                o = [270, 270, 270, 270, 270],
                r = ["0,100", "0,100", "0,100", "0,100", "0,100"],
                l = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                s = ["100", "100", "100", "100", "100"],
                c = ["", "", "", "", ""],
                h = [100, 100, 100, 90, 100],
                u = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                d = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                g = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                p = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                f = ["333333", "8A8A8A", "FFFFFF", "FFFFFF", "FFFFFF"],
                m = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                v = ["100", "100", "100", "100", "100"],
                b = ["", "", "", "", ""],
                x = [100, 100, 100, 100, 100],
                y = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"],
                C = ["FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF", "FFFFFF"];
            t.anchorBgColor3D = C, t.baseFontColor3D = ["49563A", "4A4A4A", "49351D", "48505A", "681C09"], t.toolTipBorderColor3D = ["49563A", "666666", "49351D", "576373", "681C09"], t.toolTipbgColor3D = y, t.legendBorderColor3D = ["C6CFB8", "C8C8C8", "DFC29C", "CFD5DA", "FAD1C7"], t.legendBgColor3D = ["F0F3ED", "F3F3F3", "F7F0E8", "EEF0F2", "FEF8F5"], t.divLineAlpha3D = x, t.divLineColor3D = ["ACBB99", "A4A4A4", "BE9B6B", "7C8995", "D49B8B"], t.canvasBaseColor3D = ["ACBB99", "BCBCBD", "C8A06C", "96A4AF", "FAC7BC"], t.canvasBgColor3D = ["DDE3D5", "D8D8D7", "EEDFCA", "CFD2D8", "FEE8E0"], t.bgRatio3D = b, t.bgAngle3D = [90, 90, 90, 90, 90], t.bgAlpha3D = v, t.bgColor3D = m, t.plotFillColor = ["767575", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], t.plotBorderColor = f, t.plotGradientColor = p, t.legendBorderColor = ["545454", "545454", "415D6F", "845001", "D55979"], t.legendBgColor = g, t.borderAlpha = [50, 50, 50, 50, 50], t.borderColor = ["767575", "545454", "415D6F", "845001", "68001B"], t.baseFontColor = ["555555", "60634E", "025B6A", "A15E01", "68001B"], t.toolTipBorderColor = ["545454", "545454", "415D6F", "845001", "68001B"], t.toolTipBgColor = d, t.anchorBgColor = u, t.altVGridAlpha = [10, 20, 10, 15, 10], t.altVGridColor = ["767575", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], t.altHGridAlpha = [50, 35, 10, 20, 15], t.altHGridColor = ["EEEEEE", "D8DCC5", "99C4CD", "DEC49C", "FEC1D0"], t.divLineAlpha = [40, 45, 65, 40, 30], t.divLineColor = ["717170", "7B7D6D", "92CDD6", "965B01", "68001B"], t.showShadow = [0, 1, 1, 1, 1], t.canvasBorderAlpha = h, t.canvasBorderColor = ["545454", "545454", "415D6F", "845001", "68001B"], t.canvasBgRatio = c, t.canvasBgAlpha = s, t.canvasBgAngle = [0, 0, 0, 0, 0], t.canvasBgColor = l, t.bgAlpha = ["50,50", "60,50", "40,20", "20,10", "30,30"], t.bgRatio = r, t.bgAngle = o, t.bgColor = ["CBCBCB,E9E9E9", "CFD4BE,F3F5DD", "C5DADD,EDFBFE", "A86402,FDC16D", "FF7CA0,FFD1DD"], t.paletteColors = n },
        460: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { "*.*.*": { "*.disappearing": [{ finalAttr: { opacity: 0 }, slot: "initial", callback: function() { this.hide() } }] } } },
        461: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e, t) { var a = Number(e),
                    i = Number(t) - a; return function(e) { return i * e + a } };
            t["default"] = i },
        462: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t, a, i = e.getChildren("canvas")[0],
                    l = i.getChildren("axisRefVisualCartesian")[0],
                    s = { zoomable: !0, pannable: !0 },
                    c = e._feedAxesRawData(),
                    h = function(e) { var t = e.sender;
                        l.addexplicitDrawItems(t.getId(), t), l.asyncDraw() };
                (0, n.componentFactory)(e, o["default"], "yAxis", 1, c.yAxisConf), (0, n.componentFactory)(e, r["default"], "xAxis", 1, c.xAxisConf), t = e.getChildren("yAxis")[0], a = e.getChildren("xAxis")[0], t.setLinkedItem("canvas", i), a.setLinkedItem("canvas", i), l.setLinkedItem(t.getId(), t), l.setLinkedItem(a.getId(), a), l.addExtEventListener("visiblerangeset", h, a), l.addExtEventListener("visiblerangeset", h, t), i.attachAxis(a, !1, e.zoomX ? s : {}), i.attachAxis(t, !0, e.zoomY ? s : {}), e._setCategories() }; var n = a(215),
                o = i(a(463)),
                r = i(a(510)) },
        463: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(464)),
                r = i(a(467)),
                l = i(a(489)),
                s = i(a(490)),
                c = i(a(491)),
                h = a(498),
                u = a(215),
                d = function(e) {
                    function t() { var t; return (t = e.call(this) || this).config.scale = new r["default"], t }(0, n["default"])(t, e); var a = t.prototype; return a.getName = function() { return "numeric" }, a.generateTicks = function() { var e, t, a, i = this.getScale(),
                            n = this.config,
                            o = n.numDivLines + 1,
                            r = i.getDomain(),
                            c = r[0],
                            h = r[1],
                            u = n.axisRange,
                            d = u.min,
                            g = u.max,
                            p = n.dataLimit; return c === d && h === g ? ((0, s["default"])(p.min, p.max, i, n), n.ticks) : (e = i.ticks(o), t = Math.abs(e[1] - e[0]), c === d && -1 === e.indexOf(d) && e.unshift(d), h === g && -1 === e.indexOf(g) && e.push(g), (a = Math.abs(d % t)) && (d -= a), (a = Math.abs(g % t)) && (g -= a), n._allTicks = (0, l["default"])(d, g, t).concat(g), u.tickInterval = t, e) }, a.setTickValues = function(e) { this.config.userTicks = e || [], this.config.tickValues = { tickValue: [] } }, a._parseTickValues = function(e) { var t, a, i, n, o = this.getFromEnv("chart"),
                            r = this.config,
                            l = e && e.length,
                            s = 0; for (r.tickValues = {}, t = r.tickValues.tickValue = [], i = 0; i < l; i += 1)
                            if (a = (0, u.extend2)({}, e[i]), n = Number(a.x), !a.vline) { if ((0, h.extractStyleInfo)(a, o), !n && 0 !== n) continue;
                                a.x = n, r.irregularCatAxis = !0, t.push(a), t[s].label = (0, u.parseUnsafeString)(t[s].label), s += 1 } r.oriCatLen = s }, a.calculateTicksOnLabelMode = function() { var e, t, a, i, n, o, r, l = this.config,
                            s = l.xAxisLabelMode,
                            c = Object.assign([], l.userTicks),
                            h = this.getFromEnv("number-formatter"); if ("mixed" === s || "auto" === s) { if (t = [], e = h.xAxis, "mixed" === s)
                                for (a = 0, n = c.length; a < n; a += 1) t[c[a].x || c[a].y || a] = !0;
                            else c = []; for (r = this.getAxisConfig(), o = l.ticks, i = 0; i < o.length; ++i) t[a = o[i]] || c.push({ label: u.BLANKSTRING + e.call(h, a), x: a, showverticalline: 0 === a ? r.showZeroPlane : 1, isNumeric: !0, linecolor: 0 === a ? r.zeroPlaneColor : r.divLineColor, linealpha: 0 === a ? r.zeroPlaneAlpha : r.divLineAlpha, linethickness: 0 === a ? r.zeroPlaneThickness : r.divLineThickness, linedashed: r.divLineIsDashed, linedashLen: r.divLineDashLen, linedashgap: r.divLineDashGap }) } this._parseTickValues(c) }, a.getInterval = function() { return this.config.axisRange.tickInterval }, a._setAxisRange = function(e) { var t, a, i, n = e.min,
                            r = e.max,
                            l = this.config,
                            c = l.axisRange,
                            h = l.dataLimit,
                            u = l.dependentInfo; if (!(n > r))
                            if (h.min === n && h.max === r || (a = !0), void 0 === l.visibleMin || l.setPadding || a) { var d = (0, o["default"])([n, r, h.min, h.max]); if (n = d[0], r = d[1], h.min = n, h.max = r, this.fireEvent("dataLimitSet", Object.assign({}, h)), u) { if (u.limit) { if (!(t = u.dataLimit)) return; var g = (0, o["default"])([n, r, t.min, t.max]);
                                        n = g[0], r = g[1], l.isDataLimitSet = !0 } if (u.count && void 0 === u.numDivLines) return }(0, s["default"])(n, r, this.getScale(), l), i = l.isZeroTickForced ? 3 : 2, this.fireEvent("divlinesSet", l.ticks.length - i), l.tickValues && this.calculateTicksOnLabelMode(), this.setVisibleConfig(c.min, c.max) } else l.setPadding = !1 }, a.getTicks = function() { return this.config.ticks }, t }(c["default"]);
            d.prototype.setDataLimit = h.setDataLimit; var g = d;
            t["default"] = g },
        464: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(465)),
                o = i(a(466)),
                r = function(e, t) { return void 0 === e && (e = []), [(0, n["default"])(e, t), (0, o["default"])(e, t)] };
            t["default"] = r },
        465: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e, t) { void 0 === e && (e = []); var a, i, n = e.length,
                    o = -1; if ("function" == typeof t) { for (; ++o < n;)
                        if (null != (a = t(e[o], o, e)) && a <= a)
                            for (i = a; ++o < n;) null != (a = t(e[o], o, e)) && a < i && (i = a) } else
                    for (; ++o < n;)
                        if (null != (a = e[o]) && a <= a)
                            for (i = a; ++o < n;) null != (a = e[o]) && a < i && (i = a); return i };
            t["default"] = i },
        466: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e, t) { void 0 === e && (e = []); var a, i, n = e.length,
                    o = -1; if ("function" == typeof t) { for (; ++o < n;)
                        if (null != (a = t(e[o], o, e)) && a >= a)
                            for (i = a; ++o < n;) null != (a = t(e[o], o, e)) && a > i && (i = a) } else
                    for (; ++o < n;)
                        if (null != (a = e[o]) && a >= a)
                            for (i = a; ++o < n;) null != (a = e[o]) && a > i && (i = a); return i };
            t["default"] = i },
        467: function(e, t, a) { "use strict"; var i = a(212),
                n = a(208);
            t.__esModule = !0, t["default"] = void 0; var o = n(a(229)),
                r = i(a(468)),
                l = i(a(484)),
                s = n(a(461)),
                c = a(485),
                h = function(e) {
                    function t() { return e.call(this, r.deInterpolateLinear, s["default"]) || this }(0, o["default"])(t, e); var a = t.prototype; return a.ticks = function(e) { void 0 === e && (e = 7); var t = this.getDomain(); return this.majorTicks = (0, l["default"])(t[0], t[t.length - 1], e) }, a.tickFormat = function(e, t) { return (0, c.tickFormat)(this.getDomain(), e, t, this._localeConverter) }, a.nice = function(e) { void 0 === e && (e = 7); var t, a = this.getDomain(),
                            i = 0,
                            n = a.length - 1,
                            o = a[i],
                            r = a[n]; return r < o && (t = o, o = r, r = t, t = i, i = n, n = t), (t = (0, l.tickIncrement)(o, r, e)) > 0 ? (o = Math.floor(o / t) * t, r = Math.ceil(r / t) * t, t = (0, l.tickIncrement)(o, r, e)) : t < 0 && (o = Math.ceil(o * t) / t, r = Math.floor(r * t) / t, t = (0, l.tickIncrement)(o, r, e)), t > 0 ? (a[i] = Math.floor(o / t) * t, a[n] = Math.ceil(r / t) * t, this.setDomain(a)) : t < 0 && (a[i] = Math.ceil(o * t) / t, a[n] = Math.floor(r * t) / t, this.setDomain(a)), this }, a.copy = function() { return (0, r.copyScale)(this, new t) }, a.minorTicks = function(e, t) { void 0 === e && (e = 4), void 0 === t && (t = this.majorTicks || this.ticks()); var a, i, n, o, r = t.length,
                            l = t[1] - t[0],
                            s = []; for (o = 0; o < r - 1; ++o)
                            for (n = t[o], i = l / (Number(e) + 1), a = 1; a <= e; a += 1) s.push(n + i * a); return s }, a.contextTicks = function() { return this.contextTicksArr || [] }, a.getType = function() { return "linear" }, t }(r["default"]);
            t["default"] = h },
        468: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t.copyScale = function(e, t) { return t.setInterpolate(e.getInterpolate()).setClamp(e.getClamp()).setDomain(e.getDomain()).setRange(e.getRange()) }, t.deInterpolateLinear = d, t.bimap = u, t["default"] = void 0; var n = i(a(469)),
                o = i(a(471)),
                r = i(a(470)),
                l = i(a(472)),
                s = a(473),
                c = 0,
                h = [0, 1];

            function u(e, t, a, i) { var n, o; return e[0] > e[1] ? (n = a(e[1], e[0]), o = i(t[1], t[0])) : (n = a(e[0], e[1]), o = i(t[0], t[1])),
                    function(e) { return o(n(e)) } }

            function d(e, t) { var a = Number(e),
                    i = Number(t) - a; return i ? function(e) { return (e - a) / i } : (0, r["default"])(i) } var g = function() {
                function e(e, t) { this.domain = h, this.range = h, this.deInterpolate = e, this.reInterpolate = t, this.interpolate = n["default"], this.clamp = !1, this.input = null, this.output = null, this.locale = l["default"], this._localeConverter = new s.NumberConverter(l["default"]), this._rescale(), this._id = "scale_" + c++ } var t = e.prototype; return t._rescale = function() { return this.input = null, this.output = null, this }, t.setDomain = function(e) { return void 0 === e && (e = h), this.domain = e.map(Number), this._rescale() }, t.getDomain = function() { return this.domain.slice() }, t.setRange = function(e) { return void 0 === e && (e = h), this.range = e.slice(), this._rescale() }, t.getRange = function() { return this.range.slice() }, t.setInterpolate = function(e) { return void 0 === e && (e = n["default"]), this.interpolate = e, this._rescale() }, t.getInterpolate = function() { return this.interpolate }, t.setClamp = function(e) { return void 0 === e && (e = !1), this.clamp = !!e, this._rescale() }, t.getClamp = function() { return this.clamp }, t.rangeRound = function(e) { return void 0 === e && (e = h), this.range = e.slice(), this.interpolate = o["default"], this._rescale() }, t.getRangeValue = function(e) { var t = null !== e ? e : void 0,
                        a = this.getClamp() ? function(e) { return function(t, a) { var i = Number(t),
                                    n = Number(a),
                                    o = e(i, n); return function(e) { return e <= i ? 0 : e >= n ? 1 : o(e) } } }(this.deInterpolate) : this.deInterpolate; return this.output || (this.output = u(this.getDomain(), this.getRange(), a, this.interpolate)), this.output(Number(t)) }, t.getDomainValue = function(e) { var t = this.getClamp() ? function(e) { return function(t, a) { var i = Number(t),
                                n = Number(a),
                                o = e(i, n); return function(e) { return e <= 0 ? i : e >= 1 ? n : o(e) } } }(this.reInterpolate) : this.reInterpolate; return this.input || (this.input = u(this.getRange(), this.getDomain(), d, t)), this.input(Number(e)) }, t.setLocale = function(e) { return void 0 === e && (e = l["default"]), this.locale = e, this._localeConverter = new s.NumberConverter(e), this }, t.getLocale = function() { return this.locale }, t.getId = function() { return this._id }, e }();
            t["default"] = g },
        469: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(461)),
                o = i(a(470));

            function r(e) { return null != e } var l = function(e, t) { var a = n["default"]; return r(t) && r(e) && "boolean" != typeof t ? a(e, t) : (0, o["default"])(t) };
            t["default"] = l },
        470: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e) { return function() { return e } };
            t["default"] = i },
        471: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e, t) { var a = Number(e),
                    i = Number(t) - a; return function(e) { return Math.round(i * e + a) } };
            t["default"] = i },
        472: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = { decimal: ".", thousands: ",", grouping: [3], prefix: "$", suffix: "" };
            t["default"] = i },
        473: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = t.NumberConverter = void 0; var n = i(a(472)),
                o = i(a(474)),
                r = i(a(476)),
                l = i(a(482)),
                s = i(a(483)),
                c = i(a(477)),
                h = function(e) { return e },
                u = function() {
                    function e(e) { this.localeInfo = { group: e.grouping && e.thousands ? (0, l["default"])(e.grouping, e.thousands) : h, prefix: e.prefix, suffix: e.suffix, decimal: e.decimal, numerals: e.numerals ? (0, s["default"])(e.numerals) : h, percent: e.percent || "%", prefixes: e.prefixes || ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"] } } var t = e.prototype; return t.formatter = function(e) { return new r["default"](e, this.localeInfo) }, t.formatPrefix = function(e, t) { var a = new c["default"](e);
                        a.type = "f"; var i = this.localeInfo.prefix,
                            n = this.localeInfo.suffix,
                            l = Object.assign({}, this.localeInfo, { prefix: "", suffix: "" }),
                            s = new r["default"](a, l),
                            h = 3 * Math.max(-8, Math.min(8, Math.floor((0, o["default"])(t) / 3))),
                            u = Math.pow(10, -h),
                            d = this.localeInfo.prefixes[8 + h / 3]; return { format: function(e) { return i + s.format(u * e) + d + n }, setCustomPrefix: function(e) { return s.setCustomPrefix(e), this }, getCustomPrefix: function(e) { return s.getCustomPrefix(e) }, setCustomSuffix: function(e) { return s.setCustomSuffix(e), this }, getCustomSuffix: function(e) { return s.getCustomSuffix(e) } } }, e }();
            t.NumberConverter = u; var d = new u(n["default"]);
            t["default"] = d },
        474: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(475)),
                o = function(e) { var t = (0, n["default"])(Math.abs(e)); return t ? t[1] : NaN };
            t["default"] = o },
        475: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e, t) { var a, i, n; return (a = (n = t ? e.toExponential(t - 1) : e.toExponential()).indexOf("e")) < 0 ? null : [(i = n.slice(0, a)).length > 1 ? i[0] + i.slice(2) : i, +n.slice(a + 1)] };
            t["default"] = i },
        476: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(477)),
                o = i(a(478)),
                r = i(a(481)),
                l = a(479),
                s = function(e) { return null == e },
                c = function() {
                    function e(e, t) { this.specifier = new n["default"](e), this.localeInfo = t; var a = this.specifier.symbol;
                        this.fill = this.specifier.fill, this.align = this.specifier.align, this.sign = this.specifier.sign, this.zero = this.specifier.zero, this.width = this.specifier.width, this.comma = this.specifier.comma, this.precision = this.specifier.precision, this.trim = this.specifier.trim, this.type = this.specifier.type, "n" === this.type ? (this.comma = !0, this.type = "g") : o["default"][this.type] || (s(this.precision) && (this.precision = 12), this.trim = !0, this.type = "g"), (this.zero || "0" === this.fill && "=" === this.align) && (this.zero = !0, this.fill = "0", this.align = "="), "$" === a ? this.prefix = this.localeInfo.prefix : "#" === a && /[boxX]/.test(this.type) ? this.prefix = "0" + this.type.toLowerCase() : this.prefix = "", "$" === a ? this.suffix = this.localeInfo.suffix : /[%p]/.test(this.type) ? this.suffix = this.localeInfo.percent : this.suffix = "", this.formatType = o["default"][this.type], this.mayHaveSuffix = /[defgprs%]/.test(this.type), s(this.precision) ? this.precision = 6 : /[gprs]/.test(this.type) ? this.precision = Math.max(1, Math.min(21, this.precision)) : this.precision = Math.max(0, Math.min(20, this.precision)), this.setCustomPrefix(""), this.setCustomSuffix("") } var t = e.prototype; return t.format = function(e) { var t, a, i, n, o, s, c = this.prefix,
                            h = this.suffix,
                            u = this.formatType,
                            d = e; if ("c" === this.type) h = u(d) + h, d = "";
                        else if (t = (d = +d) < 0, d = u(Math.abs(d), this.precision), this.trim && (d = (0, r["default"])(d)), t && 0 == +d && (t = !1), c = t ? ("(" === this.sign ? this.sign : "-") + c : "-" === this.sign || "(" === this.sign ? "" + c : this.sign + c, h = "s" === this.type ? this.localeInfo.prefixes[8 + l.prefixExponent / 3] + h : "" + h, h += t && "(" === this.sign ? ")" : "", this.mayHaveSuffix)
                            for (n = -1, o = d.length; ++n < o;)
                                if ((s = d.charCodeAt(n)) < 48 || s > 57) { h = (46 === s ? this.localeInfo.decimal + d.slice(n + 1) : d.slice(n)) + h, d = d.slice(0, n); break } switch (this.comma && !this.zero && (d = this.localeInfo.group(d, Infinity)), i = (a = c.length + d.length + h.length) < this.width ? new Array(this.width - a + 1).join(this.fill) : "", this.comma && this.zero && (d = this.localeInfo.group(i + d, i.length ? this.width - h.length : Infinity), i = ""), this.align) {
                            case "<":
                                d = c + d + h + i; break;
                            case "=":
                                d = c + i + d + h; break;
                            case "^":
                                a = i.length / 2, d = i.slice(0, a) + c + d + h + i.slice(a); break;
                            default:
                                d = i + c + d + h } return this.getCustomPrefix() + this.localeInfo.numerals(d) + this.getCustomSuffix() }, t.setCustomPrefix = function(e) { return this._customPrefix = e + "", this }, t.getCustomPrefix = function() { return this._customPrefix }, t.setCustomSuffix = function(e) { return this._customSuffix = e + "", this }, t.getCustomSuffix = function() { return this._customSuffix }, t.toString = function() { return this.specifier.toString() }, e }();
            t["default"] = c },
        477: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = /^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i,
                n = function(e) { return null == e },
                o = function() {
                    function e(e) { var t = i.exec(e); if (!t) throw new Error("Invalid number format specifier: " + e);
                        this.fill = t[1] || " ", this.align = t[2] || ">", this.sign = t[3] || "-", this.symbol = t[4] || "", this.zero = Boolean(t[5]), this.width = t[6] && Number(t[6]), this.comma = Boolean(t[7]), this.precision = t[8] && Number(t[8].slice(1)), this.trim = Boolean(t[9]), this.type = t[10] || "" } return e.prototype.toString = function() { return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (n(this.width) ? "" : Math.max(1, 0 | this.width)) + (this.comma ? "," : "") + (n(this.precision) ? "" : "." + Math.max(0, 0 | this.precision)) + (this.trim ? "~" : "") + this.type }, e }();
            t["default"] = o },
        478: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(479)),
                o = i(a(480)),
                r = { "%": function(e, t) { return (100 * e).toFixed(t) }, b: function(e) { return Math.round(e).toString(2) }, c: function(e) { return e + "" }, d: function(e) { return Math.round(e).toString(10) }, e: function(e, t) { return e.toExponential(t) }, f: function(e, t) { return e.toFixed(t) }, g: function(e, t) { return e.toPrecision(t) }, o: function(e) { return Math.round(e).toString(8) }, p: function(e, t) { return (0, o["default"])(100 * e, t) }, r: o["default"], s: n["default"], X: function(e) { return Math.round(e).toString(16).toUpperCase() }, x: function(e) { return Math.round(e).toString(16) } };
            t["default"] = r },
        479: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = t.prefixExponent = void 0; var n, o = i(a(475));
            t.prefixExponent = n; var r = function(e, a) { var i, r, l, s, c = (0, o["default"])(e, a); return c ? (i = c[0], (l = (r = c[1]) - (t.prefixExponent = n = 3 * Math.max(-8, Math.min(8, Math.floor(r / 3)))) + 1) === (s = i.length) ? i : l > s ? i + new Array(l - s + 1).join("0") : l > 0 ? i.slice(0, l) + "." + i.slice(l) : "0." + new Array(1 - l).join("0") + (0, o["default"])(e, Math.max(0, a + l - 1))[0]) : e + "" };
            t["default"] = r },
        480: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(475)),
                o = function(e, t) { var a, i, o = (0, n["default"])(e, t); return o ? (a = o[0], i = o[1], Number(i) < 0 ? "0." + new Array(-i).join("0") + a : a.length > i + 1 ? a.slice(0, i + 1) + "." + a.slice(i + 1) : a + new Array(i - a.length + 2).join("0")) : e + "" };
            t["default"] = o },
        481: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e) { for (var t, a = e.length, i = 1, n = -1; i < a; ++i)
                    if ("." === e[i]) n = t = i;
                    else if ("0" === e[i]) 0 === n && (n = i), t = i;
                else if (n > 0) { if (!+e[i]) break;
                    n = 0 } return n > 0 ? e.slice(0, n) + e.slice(t + 1) : e };
            t["default"] = i },
        482: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e, t) { return function(a, i) { for (var n = a.length, o = [], r = 0, l = e[0], s = 0; n > 0 && l > 0 && (s + l + 1 > i && (l = Math.max(1, i - s)), o.push(a.substring(n -= l, n + l)), !((s += l + 1) > i));) l = e[r = (r + 1) % e.length]; return o.reverse().join(t) } };
            t["default"] = i },
        483: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e) { return function(t) { return t.replace(/[0-9]/g, (function(t) { return e[+t] })) } };
            t["default"] = i },
        484: function(e, t, a) { "use strict";
            t.__esModule = !0, t.tickIncrement = l, t.tickStep = function(e, t, a) { void 0 === e && (e = 0);
                void 0 === t && (t = 1);
                void 0 === a && (a = 7); var r = Math.abs(t - e) / Math.max(0, a),
                    l = Math.floor(Math.log(r) / Math.LN10),
                    s = Math.pow(10, l),
                    c = r / s;
                c >= i ? s *= 10 : c >= n ? s *= 5 : c >= o && (s *= 2); return t < e ? -s : s }, t["default"] = void 0; var i = Math.sqrt(50),
                n = Math.sqrt(10),
                o = Math.sqrt(2);

            function r(e) { return e >= i ? 10 : e >= n ? 5 : e >= o ? 2 : 1 }

            function l(e, t, a) { void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7); var i = (t - e) / Math.max(0, a),
                    n = Math.floor(Math.log(i) / Math.LN10),
                    o = i / Math.pow(10, n); return n >= 0 ? r(o) * Math.pow(10, n) : -Math.pow(10, -n) / r(o) } var s = function(e, t, a) { void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7); var i, n, o, r = -1,
                    s = [],
                    c = +t,
                    h = +e,
                    u = +a; if (h === c && u > 0) return [h]; if ((i = c < h) && (n = h, h = c, c = n), 0 === (o = l(h, c, u)) || !isFinite(o)) return []; if (o > 0)
                    for (h = Math.ceil(h / o), c = Math.floor(c / o), n = Math.ceil(c - h + 1); ++r < n;) s[r] = (h + r) * o;
                else
                    for (h = Math.floor(h * o), c = Math.ceil(c * o), n = Math.ceil(h - c + 1); ++r < n;) s[r] = (h - r) / o; return i && s.reverse(), s };
            t["default"] = s },
        485: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t.tickIncrement = p, t.tickStep = f, t.tickFormat = function(e, t, a, i) { void 0 === i && (i = n["default"]); var c, h, u, g = e[0],
                    p = e[e.length - 1],
                    m = f(g, p, d(t) ? 7 : t); switch ((u = new l["default"](d(a) ? ",f" : a)).type) {
                    case "s":
                        return h = Math.max(Math.abs(g), Math.abs(p)), c = (0, s["default"])(m, h), d(u.precision) && !isNaN(c) && (u.precision = c),
                            function(e) { return i.formatPrefix(u, h).format(e) };
                    case "":
                    case "e":
                    case "g":
                    case "p":
                    case "r":
                        c = (0, r["default"])(m, Math.max(Math.abs(g), Math.abs(p))), d(u.precision) && !isNaN(c) && (u.precision = c - ("e" === u.type)); break;
                    case "f":
                    case "%":
                        c = (0, o["default"])(m), d(u.precision) && !isNaN(c) && (u.precision = c - 2 * ("%" === u.type)) } return function(e) { return i.formatter(u).format(e) } }, t["default"] = void 0; var n = i(a(473)),
                o = i(a(486)),
                r = i(a(487)),
                l = i(a(477)),
                s = i(a(488)),
                c = Math.sqrt(50),
                h = Math.sqrt(10),
                u = Math.sqrt(2),
                d = function(e) { return null == e };

            function g(e) { return e >= c ? 10 : e >= h ? 5 : e >= u ? 2 : 1 }

            function p(e, t, a) { void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7); var i = (t - e) / Math.max(0, a),
                    n = Math.floor(Math.log(i) / Math.LN10),
                    o = i / Math.pow(10, n); return n >= 0 ? g(o) * Math.pow(10, n) : -Math.pow(10, -n) / g(o) }

            function f(e, t, a) { void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7); var i = Math.abs(t - e) / Math.max(0, a),
                    n = Math.floor(Math.log(i) / Math.LN10),
                    o = Math.pow(10, n),
                    r = i / o; return r >= c ? o *= 10 : r >= h ? o *= 5 : r >= u && (o *= 2), t < e ? -o : o } var m = function(e, t, a) { void 0 === e && (e = 0), void 0 === t && (t = 1), void 0 === a && (a = 7); var i, n, o, r, l, s, c = -1,
                    h = []; if (s = +a, (r = +e) === (l = +t) && s > 0) return [r]; if ((i = l < r) && (n = r, r = l, l = n), 0 === (o = p(r, l, s)) || !isFinite(o)) return []; if (o > 0)
                    for (r = Math.ceil(r / o), l = Math.floor(l / o), n = Math.ceil(l - r + 1); ++c < n;) h[c] = (r + c) * o;
                else
                    for (r = Math.floor(r * o), l = Math.ceil(l * o), n = Math.ceil(r - l + 1); ++c < n;) h[c] = (r - c) / o; return i && h.reverse(), h };
            t["default"] = m },
        486: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(474)),
                o = function(e) { return Math.max(0, -(0, n["default"])(Math.abs(e))) };
            t["default"] = o },
        487: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(474)),
                o = function(e, t) { var a = Math.abs(e),
                        i = Math.abs(t) - a; return Math.max(0, (0, n["default"])(i) - (0, n["default"])(a)) + 1 };
            t["default"] = o },
        488: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(474)),
                o = function(e, t) { return Math.max(0, 3 * Math.max(-8, Math.min(8, Math.floor((0, n["default"])(t) / 3))) - (0, n["default"])(Math.abs(e))) };
            t["default"] = o },
        489: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function() { var e, t, a, i, n, o = []; if (arguments.length > 2 ? (e = arguments.length <= 0 ? undefined : arguments[0], t = arguments.length <= 1 ? undefined : arguments[1], a = arguments.length <= 2 ? undefined : arguments[2]) : 1 === arguments.length ? (e = 0, t = arguments.length <= 0 ? undefined : arguments[0], a = 1) : (e = arguments.length <= 0 ? undefined : arguments[0], t = arguments.length <= 1 ? undefined : arguments[1], a = 1), i = Math.floor(Math.max(0, Math.ceil((t - e) / a))), isFinite(i))
                    for (n = 0; n < i; ++n) o.push(a * n + e); return o };
            t["default"] = i },
        490: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(489)),
                o = a(468),
                r = i(a(461)),
                l = i(a(465)),
                s = a(215),
                c = (0, o.bimap)([2, 100], [80, 20], o.deInterpolateLinear, r["default"]),
                h = function(e, t, a, i) { var o, r, h, u, d, g, p, f, m, v, b, x, y, C, k, S, w, L, A, N, E, T, F, _ = t,
                        P = e,
                        D = i.isPercent ? 0 : i.axisMinValue,
                        I = i.isPercent ? 100 : i.axisMaxValue,
                        M = !!i.adjustDiv,
                        O = i.numDivLines,
                        R = !!i.setAdaptiveMin,
                        B = i.axisRange,
                        V = Math.pow(2, -24),
                        G = !0,
                        z = .2,
                        H = !0,
                        W = i.xAxisLabelMode,
                        j = i.dependentInfo; if (o = i.majorTMNumber !== s.UNDEF ? Math.max(0, O - 2) : O, j && j.count && !j.limit && j.numDivLines !== s.UNDEF && (o = O = j.numDivLines, M = !1), r = o + 1, P === s.UNDEF && _ === s.UNDEF && (P = 0, _ = 1, G = !1), _ === P && 0 === _ && (_ = 1, G = !1), "categories" !== W && "mixed" !== W || (G = !1), G ? (u = Math.floor(Math.log(Math.abs(_)) / Math.LN10), h = Math.floor(Math.log(Math.abs(P)) / Math.LN10), d = Math.max(h, u), g = Math.pow(10, d), Math.abs(_) / g < 2 && Math.abs(P) / g < 2 && (d--, g = Math.pow(10, d)), x = Math.floor(Math.log(_ - P) / Math.LN10), y = Math.pow(10, x), _ - P > 0 && g / y >= 10 && (g = y, d = x), f = (Math.floor(_ / g) + 1) * g, m = P < 0 ? (Math.floor(Math.abs(P / g)) + 1) * g * -1 : R ? (m = Math.floor(Math.abs(P / g) - 1) * g) < 0 ? 0 : m : 0, !R && _ <= 0 && (f = 0), v = !(!I && 0 !== I), b = !(!D && 0 !== D), i.freezeLimit || (!1 === v || !0 === v && Number(I) < _ && _ - Number(I) > V ? (_ = f, v = !1) : _ = Number(I), !1 === b || !0 === b && Number(D) > P && Number(D) - P > V ? (P = m, b = !1) : P = Number(D))) : (b = !(!D && 0 !== D), !0 === (v = !(!I && 0 !== I)) && (Number(I) >= _ || t === s.UNDEF) ? _ = Number(I) : v = !1, !0 === b && (Number(D) <= P || e === s.UNDEF) ? P = Number(D) : b = !1), b && !v && t === s.UNDEF && (_ = P < 0 ? 0 : P + 1), v && !b && e === s.UNDEF && (P = _ > 0 ? 0 : _ - 1), w = [P, _], a.setDomain(w), M && !i.freezeLimit) v || b ? (E = (C = (N = function(e, t, a, i, n, o) { for (var r, l, c, h, u, d, g, p, f, m, v, b, x = t - e, y = e, C = Math.ceil(a * (1 - i)), k = Math.floor(a * (1 + i)), S = [], w = -1, L = function(e) { return function(e) { var t, a, i = [10, 5, 2, 1],
                                        n = i.length; for (t = 0; t < n; ++t)
                                        if (e % i[t] % 1 == 0) { a = !0; break } return a }(r = x / (e + 1)) ? e : s.UNDEF }; !(m && v || ((b = a + ++w) >= k && (v = !0), h = L(b)) || ((b = a - w) <= C && (m = !0), h = L(b)));); for (e < 0 && t > 0 && n && (c = !0), l = 0; l < h; l++) c && y < 0 && y + r > 0 && (S.push(0), u = !0), y += r, S.push(y); return h === s.UNDEF && n && ((g = (S = o.ticks(a)).length) > 1 ? (d = .2 * (r = Math.abs(S[0] - S[1])), p = S[0], f = S[g - 1], Math.abs(e - p) <= d && 0 !== p && S.shift(), Math.abs(t - f) <= d && 0 !== f && S.pop(), 0 !== p && 0 !== f || (u = !0)) : 0 === S[0] && (u = !0)), c && !u && -1 === S.indexOf(0) && (e < 0 && S[0] > 0 ? S = [0].concat(S) : t > 0 && S[S.length - 1] < 0 ? S.push(0) : S = [0], u = !0), { output: S, interval: r, isZeroTickForced: u } }(P, _, o, z = (F = o) >= 100 ? .2 : F <= 1 ? 0 : c(F) / 100, i.forceZeroTick, a)).output).length, T = N.isZeroTickForced, Math.abs((o - E + (T ? 1 : 0)) / o) > z ? p = (_ - P) / r : (p = 0 === E || 1 === E && T ? _ - P : N.interval, i.isZeroTickForced = T, i.ticks = T && 0 === P ? C.concat(_) : [P].concat(C, _), H = !1)) : (i.ticks = o ? a.nice(r).ticks(r) : a.getDomain(), p = Math.abs(i.ticks[1] - i.ticks[0]), H = !1);
                    else if (v || b || i.freezeLimit) p = (_ - P) / r;
                    else { var U = a.nice(r).getDomain();
                        ((S = (k = U[0]) + (p = function(e) { if (e <= 1) return 1; var t = [],
                                a = Math.ceil(e); return t[2] = a % 2, t[5] = a % 5, t[10] = a % 10, (0, l["default"])(t) + a }(g = ((S = U[1]) - k) / r)) * r) - _) / _ > z || (k - P) / P > z ? (a.setDomain([P, _]), p = (_ - P) / r) : (P = k, _ = S, a.setDomain([P, _])) } H && (P < 0 && _ > 0 && i.forceZeroTick ? (0 === (A = (L = (0, n["default"])(P, 0, p))[L.length - 1] + p) ? A += p : i.isZeroTickForced = !0, i.ticks = L.concat(0, (0, n["default"])(A, _, p), _)) : i.ticks = (0, n["default"])(P, _, p).concat(_)); var q = a.getDomain();
                    P = q[0], _ = q[1], i._allTicks = i.ticks.slice(), B.tickInterval = p, B.min = P, B.max = _ };
            t["default"] = h },
        491: function(e, t, a) { "use strict"; var i = a(212),
                n = a(208);
            t.__esModule = !0, t["default"] = void 0; var o = n(a(229)),
                r = i(a(492)),
                l = a(215),
                s = a(498),
                c = n(a(466)),
                h = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, o["default"])(t, e); var a = t.prototype; return a._getHMaxLabelDimention = function(e) { var t, a, i, n, o, s, h, u, d, g, p, f, m, v, b, x, y, C, k, S, w, L, A, N, E, T, F, _, P, D, I, M, O, R, B, V = this,
                            G = e,
                            z = V.config,
                            H = V.getFromEnv("chart"),
                            W = H.config,
                            j = H.getFromEnv("smartLabel"),
                            U = z.axisRange,
                            q = z.labels,
                            Y = z.labelDisplay,
                            X = z.slantLabel,
                            K = q.style,
                            Z = z.maxLabelHeight,
                            J = V.getInterval(),
                            $ = z.staggerLines,
                            Q = z.labelStep,
                            ee = W.canvasLeft,
                            te = W.canvasRight,
                            ae = $ - 2,
                            ie = U.max,
                            ne = U.min,
                            oe = 0,
                            re = z.tickValues && z.tickValues.tickValue,
                            le = re && re.length,
                            se = H.distributedColumns,
                            ce = 0,
                            he = { text: l.UNDEF, width: 0, style: l.UNDEF },
                            ue = 0,
                            de = 4,
                            ge = l.stubFN,
                            pe = l.stubFN,
                            fe = l.stubFN,
                            me = {},
                            ve = 0,
                            be = !1,
                            xe = 0,
                            ye = !1,
                            Ce = Number.POSITIVE_INFINITY,
                            ke = z.ticks,
                            Se = Number.POSITIVE_INFINITY; if (se)
                            for (x = 0; x < le; x++) re[x + 1] ? re[x].x && (re[x].plotWidth = V.getPixel(re[x + 1].x - re[x].x) - V.getPixel(0)) : re[x].plotWidth = V.getPixel(W.canvasRight - re[x].x) - V.getPixel(0); if (z.tickValues && (!re || 0 === re.length)) return { width: 0, height: 0 };

                        function we(e, t) { switch (t.toLowerCase()) {
                                case "left":
                                    return Math.abs(V._getCustomPixel(e));
                                case "right":
                                    return Math.abs(W.width - V._getCustomPixel(e)) } } if ("rotate" === Y && (z.rotateLabels = 1), z.tickValues || (z.irregularCatAxis = !1), z.sWidthAdjstFactor = a = 0 === ae ? 1 : 1 === ae ? 1.5 : ae, j.useEllipsesOnOverflow(W.useEllipsesWhenOverflow), j.setStyle({ fontSize: K.fontSize, fontFamily: K.fontFamily, lineHeight: K.lineHeight, fontWeight: K.fontWeight }), z.irregularCatAxis) { for (re.sort((function(e, t) { return e.x - t.x })), x = 0, ce = re.length; x < ce; x++) { if (o = re[x], void 0 !== L) { if (Se = Math.abs(o.x - L), N = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + Se)), j.setStyle(Object.assign({}, o.style)), N < 1.2 * j.getOriSize("W").width) { o.label = l.BLANKSTRING, Se = Ce; continue } E._individualIWR = N, o._individualIWL = N, Ce = Se } E = o, L = o.x } for (Se === Number.POSITIVE_INFINITY && (Se = Math.floor(Math.min(o.x, ie - o.x)), Se = Math.max(Se, 4)), x = 0, ce = re.length; x < ce; x++) o = re[x], x || (o._individualIWL = Infinity), x === ce - 1 && (o._individualIWR = Infinity), o.individualIW = Math.min(o._individualIWL, o._individualIWR);
                            h = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + Se)), h = Math.min(2 * we(re[0].x, "left"), 2 * we(re[ce - 1].x, "right"), h) } else h = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + J)); if (G = Z || G, me.__root__ = { getHeight: function(e) { var t = re[e]._ovrStyle.lineHeight; return parseInt(t.replace(/(\d+)px/, "$1"), 10) }, getWidth: function() { return G }, getCalculatedLabelStep: function(e) { var t, a, i, n, o, r, d, g, p, f, m, v = 0,
                                        b = e.length,
                                        x = Number.NEGATIVE_INFINITY,
                                        y = {},
                                        C = 0,
                                        k = z.rotateLabels,
                                        S = "wrap" === Y || "auto" === Y; for (v = 0; v < b; v++)(n = e[v]).style = n.style || {}; if (z.irregularCatAxis) return z.labelStep; for (v = 0; v < b; v++)(n = e[v]) && (n.label || (n.label = ""), o = n.oriLabel || n.label, s = { fontSize: K.fontSize, fontFamily: K.fontFamily, lineHeight: K.lineHeight, fontWeight: K.fontWeight }, C++, n.style = n.style || {}, (0, l.extend2)(s, n.style), y[t = s.fontSize + s.fontFamily + s.lineHeight + s.fontWeight] ? o.length > y[t].label.length && (y[t].label = o) : y[t] = { label: o, style: s }); for (r in y) y.hasOwnProperty(r) && (a = y[r].style, i = y[r].label, a.lineHeight = (0, l.setLineHeight)(a), j.setStyle(a), k && (p = parseInt(a.lineHeight, 10)), u = j.getSmartText(i, l.UNDEF, p), (g = 0 === k ? u.width > 60 ? 60 : u.width : u.height) > x && (x = g, f = y[r])); if ((S && (x = Math.min(R, x)), d = Math.floor(Math.abs(V._getCustomPixel(ie) - V._getCustomPixel(ne)) / x), m = Math.max(Math.ceil(C / d), z.labelStep), h = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + m)), S && 0 === k) && (j.setStyle(f.style), (0, c["default"])(Object.values(j.getOriSize(f.label).detailObj)) > h - 2 * de)) return m += 1, h = Math.abs(V._getCustomPixel(ne) - V._getCustomPixel(ne + m)), m; return C <= d ? z.labelStep : m } }, me._inProp = {}, me.getCopyById = function(e) { var t, a = this._inProp,
                                    i = this.__root__,
                                    n = a.copyStore; return (t = (n = n || {})[e]) || (0, l.extend2)(t = n[e] = {}, i), t }, z.tickValues) { switch (Y) {
                                case "rotate":
                                    q.rotation = X ? 300 : 270, p = me.getCopyById("rotate"); break;
                                case "stagger":
                                    (p = me.getCopyById("stagger")).getHeight = function(e) { var t, a; return a = (t = z.tickValues.tickValue[e]) && t.style || (t.style = {}), s = { fontSize: K.fontSize, fontFamily: K.fontFamily, lineHeight: K.lineHeight, fontWeight: K.fontWeight }, (0, l.extend2)(s, a), j.setStyle(s), j.getOriSize(t.label).height }, p.getWidth = function(e) { return de = 1, e.individualIW ? e.individualIW : 2 * h * a - de }, fe = function(e) { var t, a, i, n, o, r, l = e.length,
                                            s = 0; if (j.setStyle(K), i = j.getOriSize("WWW").height, a = e[l - 1], Math.floor(a._cumulativeSum) <= Math.ceil(l * (i + 2))) o = Math.floor(G / i), $ = o - $ < 0 ? o : $;
                                        else { o = Math.floor(G / (i + 4));
                                            do { for (s = 0, n = (r = o) - 1, l = e.length; n < l;) { if (l - n < o && (n = l - 1), ~~((t = e[n])._cumulativeSum - s) > -~G) { be = !0; break } be = !1, s = t._cumulativeSum, n += r } } while (o-- && be);
                                            o++, $ = Math.min($, o) } z.drawnStaggerLines = $ }, ge = function(e) { var t, a, n, o, r = 0; for (o = 0, a = e.length; o < a; o++)(t = e[o]).stepSkipped || ((n = (t && t.style || {}).lineHeight) || (n = K.lineHeight), i = r++ % $, t.labelPadding = i ? n.replace(/px/i, "") * i : 0) }; break;
                                case "none":
                                    (p = me.getCopyById("none")).getHeight = l.stubFN, p.getWidth = l.stubFN, pe = l.stubFN, z.rotateLabels && (q.rotation = X ? 300 : 270, A = G), p.getCalculatedLabelStep = function() { return z.labelStep }; break;
                                default:
                                    (p = me.getCopyById("auto")).getHeight = function() { return G }, p.getWidth = function(e) { return e.individualIW ? e.individualIW : h - 2 * de }, j.setStyle(he.style), B = j.getOriSize("WWW"), R = B.width, pe = function(e, t) { var a, i, n, o; if (!z.irregularCatAxis && (j.setStyle(e), B = j.getOriSize("WWW"), (R = B.width) >= h && 0 !== z.rotateLabels)) { for (q.rotation = X ? 300 : 270, q.forceRotate = !0, p = me.getCopyById("rotate"), d = p.getWidth, g = p.getHeight, he.width = 0, a = 0, i = t.length; a < i; a++)(n = t[a]) && (n.label || n.oriLabel) && 0 !== (0, l.pluckNumber)(n.showlabel, z.showLabels, 1) && !0 !== n.stepSkipped && (o = n._ovrStyle, j.setStyle({ fontSize: o.fontSize, fontFamily: o.fontFamily, lineHeight: o.lineHeight, fontWeight: o.fontWeight }), u = j.getSmartText(n.oriLabel, d(n), g(a)), n.label = u.text, n.labelTooltext = u.tooltext, n._sLabel = u, he.width < u.width && (he.text = u.text, he.width = u.width, he.height = u.height, he.style = o));
                                            f = he.text } } } for (d = p.getWidth, g = p.getHeight, Q = z.labels.step = z.labelStep = z._oriLabelStep, Q = z.labels.step = z.labelStep = p.getCalculatedLabelStep(re), x = (0, r.minimumEnquiry)(re), m = 0, y = 0, ce = re.length; x < ce; x++, m++)(o = re[x]) && (o.label || o.oriLabel) && 0 !== (0, l.pluckNumber)(o.showlabel, z.showLabels, 1) && (ye = !0, s = { fontSize: K.fontSize, fontFamily: K.fontFamily, lineHeight: K.lineHeight, fontWeight: K.fontWeight }, (0, l.extend2)(s, o.style), s.lineHeight = (0, l.setLineHeight)(s), (I = s.fontSize + s.fontFamily + s.lineHeight + s.fontWeight) !== D && (j.setStyle(s), D = I), m % Q ? (o.stepSkipped = !0, o.appliedSmartLabel = !1, xe++) : (o.appliedSmartLabel = !0, o.stepSkipped = !1, o._ovrStyle = s, re[x].plotWidth ? t = Math.max("rotate" === Y ? re[x].plotWidth - 6 : 0, g(x)) : ("rotate" === Y ? x < ce - 1 && (n = V.getPixel(x + 1) - V.getPixel(x) - 10) : n = 0, "rotate" === Y && isNaN(+n) && (n = W.canvasWidth / V.getVisibleLength() - 3), t = Math.max(n, g(x))), ve += (u = j.getSmartText(o.oriLabel || o.label, d(o), t)).height + 2, V.components.labels[y++] = { config: { width: u.width, height: u.height, props: { label: {} } } }, o._cumulativeSum = ve, o.oriLabel = o.oriLabel || o.label, o.label = u.text, o.labelTooltext = u.tooltext, o._sLabel = u, he.width < u.width && ((0, l.extend2)(he, u), he.style = s), ue < u.height && (ue = u.height))); if (!ye) return { height: 0, width: 0 }; if (fe(re, xe), ge(re, xe), pe(he.style, re), f = he.text || "", "mixed" === z.xAxisLabelMode)
                                for (S = z.isPercent ? H.getFromEnv("number-formatter").percentValue : H.getFromEnv("number-formatter").xAxis, oe = f.length, x = 0, M = ke && ke.length; x < M; ++x) k = ke[x], (C = "" + S.call(H.getFromEnv("number-formatter"), k, z.axisIndex)).length > oe && (f = C, oe = C.length); for (he.height = Math.max(ue, he.height || 0), _ = re.length, x = 0, ce = re.length; x < ce && !(T = re[x])._sLabel; x++); for (x = (ce = re.length) - 1; x >= 0 && !(F = re[x])._sLabel; x--);
                            P = 1 !== V.getZoom(), q.rotation || P || !T._sLabel ? (z.axisEndLabelDisplaySpace.left = 0, z.axisEndLabelDisplaySpace.right = 0) : (z.axisEndLabelDisplaySpace.left = Math.max(ee - (V._getCustomPixel(T.x || 0) - T._sLabel.width / 2), 0), z.axisEndLabelDisplaySpace.right = Math.max(V._getCustomPixel(F.x || _ - 1) + F._sLabel.width / 2 - te, 0)), w = he } else { for (S = z.numberFormatterFn ? H.getFromEnv("number-formatter")[z.numberFormatterFn] : z.isPercent ? H.getFromEnv("number-formatter").percentValue : H.getFromEnv("number-formatter").xAxis, x = 0, M = ke && ke.length; x < M; ++x) O = ke[x], k = (0, l.toPrecision)(O, 10), C = "" + S.call(H.getFromEnv("number-formatter"), k, z.axisIndex), O === ne && (v = C), O === ie && (b = C), w = j.getOriSize(C), V.components.labels[x] = { config: { width: w.width, height: w.height, props: { label: {} } } }, C.length > oe && (f = C, oe = C.length);
                            j.setStyle({ fontSize: K.fontSize, fontFamily: K.fontFamily, lineHeight: K.lineHeight, fontWeight: K.fontWeight }), w = j.getOriSize(f || ""), "rotate" === Y && (q.rotation = 270), z.rotateLabels && (q.rotation = X ? 300 : 270), q.rotation || (v = j.getOriSize(v || ""), b = j.getOriSize(b || ""), z.axisEndLabelDisplaySpace.left = v.width / 2 + 2, z.axisEndLabelDisplaySpace.right = b.width / 2 + 2) } return z.tickValues && "stagger" === Y && (w.height = $ * he.height), w.width = A ? Math.min(A, w.width) : w.width, w.width = (0, l.pluckNumber)(w.width), w.maxWidth = (0, l.pluckNumber)(w.maxWidth), w }, a._getVMaxLabelDimention = function(e) { var t, a, i, n, o, r, s, c, h, u, d, g, p, f, m = e,
                            v = this.config,
                            b = this.getFromEnv("chart"),
                            x = b.config,
                            y = b.getFromEnv("smartLabel"),
                            C = v.labels.style,
                            k = v.useEllipsesWhenOverflow,
                            S = v.maxLabelWidthPercent,
                            w = v.minLabelWidthPercent,
                            L = 0,
                            A = b.getFromEnv("dataSource").categories,
                            N = { height: 0, width: 0 },
                            E = v.ticks,
                            T = {}; if (y.useEllipsesOnOverflow(x.useEllipsesWhenOverflow), y.setStyle({ fontSize: C.fontSize, fontFamily: C.fontFamily, lineHeight: C.lineHeight, fontWeight: C.fontWeight }), v.tickValues) { for (A && (T = { fontFamily: A[0].font, fontSize: A[0].fontsize, color: A[0].fontcolor }), S && (a = S / 100 * x.width) < m && (m = a), w && (i = w / 100 * x.width) > m && (m = i), n = 0, h = (c = v.tickValues.tickValue).length; n < h; n++) u = c[n], 0 !== (0, l.pluckNumber)(u.showlabel, v.showLabels) && (p = { fontFamily: (0, l.pluck)(u.font, u.labelfont, T.fontFamily, C.fontFamily), fontSize: (0, l.pluck)(u.fontsize, u.labelfontsize, T.fontSize, C.fontSize).toString().replace(/px/i, "") + "px", fontWeight: "normal" === C.fontWeight ? (0, l.pluckNumber)(u.fontbold, u.labelfontbold, 0) ? "bold" : "normal" : C.fontWeight, fontStyle: "normal" === C.fontStyle ? (0, l.pluckNumber)(u.fontitalic, u.labelfontitalic, 0) ? "italic" : "normal" : C.fontStyle }, (f = { fontFamily: (0, l.pluck)(p.fontFamily, T.fontFamily, C.fontFamily), fontSize: (0, l.pluck)(p.fontSize, T.fontSize, C.fontSize), fontWeight: (0, l.pluck)(p.fontWeight, C.fontWeight), fontStyle: (0, l.pluck)(p.fontStyle, C.fontStyle) }).lineHeight = (0, l.setLineHeight)(f), y.setStyle(f), d = y.getSmartText(u.oriLabel || u.label, m, C.lineHeight, k), this.components.labels[n] = { config: { width: d.width, height: d.height, props: { label: {} } } }, u.oriLabel = u.oriLabel || u.label, u.label = s = d.text, u.labelTooltext = d.tooltext, d.width > L && (N = d, L = d.width)); return N } for (g = v.numberFormatterFn ? b.getFromEnv("number-formatter")[v.numberFormatterFn] : v.isPercent ? b.getFromEnv("number-formatter").yAxisPercentValue : b.getFromEnv("number-formatter").yAxis, n = 0, o = E && E.length; n < o; ++n) r = (0, l.toPrecision)(E[n], 10), s = "" + g.call(b.getFromEnv("number-formatter"), r, v.axisIndex), d = y.getSmartText(s), this.components.labels[n] = { config: { width: d.width, height: d.height, props: { label: {} } } }, s.length > L && (t = s, L = s.length); return y.getOriSize(t) }, a.getCleanValue = function(e, t) { return this.getFromEnv("number-formatter").getCleanValue(e, t) }, a.generateMinorTicks = function() { if (this) return [] }, a.setCanvas = function(e) { this.config.canvas = e }, a._adjustNumberFormatter = function(e) { var t, a, i = this.config,
                            n = i.axisIndex,
                            o = i.isVertical,
                            r = this.getFromEnv("chart").getFromEnv("number-formatter"),
                            s = i._defaultDecimalPrecision,
                            c = i._defaultForceDecimal,
                            h = 0;
                        a = o || "yAxis" === i.numberFormatterFn ? (r.Y[n] || r.Y[0]).yAxisLabelConf : r.paramX, s !== l.UNDEF ? a.decimalprecision = s : i._defaultDecimalPrecision = a.decimalprecision, c !== l.UNDEF ? a.forcedecimals = c : i._defaultForceDecimal = a.forcedecimals, parseInt(e, 10) > 0 || (t = e.toString().split(".")[1]) && ((h = t.match(/^[0]*/)[0].length + 1) > a.decimalprecision && (a.forcedecimals = 1), a.decimalprecision = Math.max(h, a.decimalprecision)) }, a.setLabelConfig = function(e) { var t, a = this.config.labels; for (t in e) e.hasOwnProperty(t) && (a[t] = e[t]) }, t }(r["default"]);
            h.prototype._parseLabel = s._parseLabel, h.prototype._drawLabel = s._drawLabel, h.prototype.getTrendLineLimits = s.getTrendLineLimits, h.prototype.setAxisPadding = s.setAxisPadding, h.prototype.getLabel = s.getLabel; var u = h;
            t["default"] = u },
        492: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t.minimumEnquiry = t.getCrispPath = t["default"] = void 0; var n = i(a(229)),
                o = i(a(493)),
                r = a(215),
                l = i(a(494)),
                s = i(a(495)),
                c = i(a(496)),
                h = a(223),
                u = a(498),
                d = function(e, t) { var a, i, n = !1,
                        o = t % 2; return e[1] === e[4] && (a = e[1], i = Math.round(a), e[1] = e[4] = o ? i > a ? i - .5 : i + .5 : i, n = !0), e[2] === e[5] && (a = e[2], i = Math.round(a), e[2] = e[5] = o ? i > a ? i - .5 : i + .5 : i, n = !0), { path: e, isCrisped: n } },
                g = function(e) { return function(t, a) { return !!(e.minValue <= t && e.maxValue >= t || e.minValue <= a && e.maxValue >= a) } },
                p = function(e) { return function(t) { return !!(e.minValue <= t && e.maxValue >= t) } },
                f = { wrtVisible: !0 },
                m = function(e) { for (var t = 0, a = e.length; t < a; t++)
                        if (e[t].label || e[t].oriLabel) return t };
            t.minimumEnquiry = m, t.getCrispPath = d, (0, h.addDep)({ name: "cartesianAxisAnimation", type: "animationRule", extension: l["default"] }); var v = function(e) {
                function t() { var t; return (t = e.call(this) || this).config.referenceInfo = [], t.config.prevTicks = [], t.config.prevIntervalArr = [], t.config.prevTrendLabels = [], t.config.prevCategoryIntervalArr = [], t }(0, n["default"])(t, e); var a = t.prototype; return a.placeAxis = function(e) { var t = this.getScale(),
                        a = this.getFromEnv("chart"),
                        i = this.config.isVertical,
                        n = this.config.isReverse,
                        o = a.config; return i ? (n ? t.setRange([o.canvasBottom, o.canvasTop]) : t.setRange([o.canvasTop, o.canvasBottom]), this._placeVerticalAxis(e)) : (n ? t.setRange([o.canvasRight, o.canvasLeft]) : t.setRange([o.canvasLeft, o.canvasRight]), this._placeHorizontalAxis(e)) }, a._placeVerticalAxis = function(e) { var t, a, i, n, o, l, s, c, h, u, d, g, p, f, m, v, b, x, y = e,
                        C = this.config,
                        k = this.getFromEnv("chart"),
                        S = k.config,
                        w = k.getFromEnv("smartLabel"),
                        L = C.axisRange,
                        A = C.minLabelWidthPercent,
                        N = C.name,
                        E = C.isOpposit,
                        T = this.getFromEnv("number-formatter"),
                        F = S.canvasHeight,
                        _ = C.labelPadding = (0, r.pluckNumber)(C.rawAttr.axisValuePadding, 4),
                        P = (0, r.pluckNumber)(C.rawAttr.axisNamePadding, 5),
                        D = C.useEllipsesWhenOverflow,
                        I = C.name.style,
                        M = C.trend.trendStyle,
                        O = C.axisName,
                        R = C.trendLines,
                        B = C.drawLabelsOpposit,
                        V = C.drawAxisNameOpposit,
                        G = 0,
                        z = 0,
                        H = 0,
                        W = 0,
                        j = 0,
                        U = 0,
                        q = { left: 0, right: 0 },
                        Y = r.BLANKSTRING,
                        X = r.BLANKSTRING,
                        K = 0,
                        Z = -1; if (A && (Z = A / 100 * S.width), C.oriCanvasHeight = F, _ < 0 && (C.labelPadding = 2), v = C.drawTick && C.tickLength ? C.axisLineThickness + C.tickLength : C.axisLineThickness, C.showAxisLine ? (C.labelPadding = (0, r.pluckNumber)(_, 2) + v, C.labelPadding < 0 && (C.labelPadding = (C.axisLineThickness < 0 ? 0 : v) + 2), y -= C.axisLineThickness) : (C.labelPadding = (0, r.pluckNumber)(_, 2), C.labelPadding < 0 && (C.labelPadding = 2)), h = L.max, u = L.min, C.name.rotation = 0, C.labels.step = C.labelStep, C.labels.isDraw = 1, C.labels.drawNormalVal = C.showDivLineValues, C.labels.drawLimitVal = C.showLimits, K = I.lineHeight, K = Number(K.replace(/px/i, "")), O && K < y && (y -= K), 1 !== C.showLimits && 1 !== C.showDivLineValues && (C.labels.isDraw = 0), ((g = C.drawLabels ? this._getVMaxLabelDimention(y - C.labelPadding) : { width: 0, height: 0 }).width + C.labelPadding > y && !C.tickValues || 0 === g.width) && (C.labels.isDraw = 0), C.labels.isDraw && (C.labelMaxW = g.width > Z ? g.width : Z, C.labelMaxH = g.height, H = G = C.labelMaxW + C.labelPadding), C.drawTrendLines && C.drawTrendLabels && R && R.length) { for (n = C.isPercent ? T.percentValue : C.isVertical ? T.yAxis : T.xAxis, w.useEllipsesOnOverflow(S.useEllipsesWhenOverflow), w.setStyle({ fontSize: M.fontSize, fontFamily: M.fontFamily, lineHeight: M.lineHeight, fontWeight: M.fontWeight }), t = 0, a = R.length; t < a; t += 1)
                            for (c = 0, p = R[t].line && R[t].line.length; c < p; c += 1) f = R[t].line[c], b = T.getCleanValue((0, r.pluck)(f.startvalue, f.value, 0)), x = (0, r.pluckNumber)(f.endvalue, b), b <= h && b >= u && x <= h && x >= u && (s = 1 === (m = (0, r.pluckNumber)(f.valueonright, E ? 1 : 0)) ? f.endvalue || f.startvalue : f.startvalue || f.endvalue, (d = (0, r.parseUnsafeString)(f.origText || f.displayvalue || s || "")) === s && (d = "" + n.call(T, d)), m ? d.length > X.length && (X = d) : d.length > Y.length && (Y = d)); for (U = (g = w.getOriSize(X)).width ? g.width + C.labelPadding : 0, j = (g = w.getOriSize(Y)).width ? g.width + C.labelPadding : 0, E ? (U > H && U > y && (U = y), j > y - (H = Math.max(H, U + C.labelPadding)) && (j = Math.min(j, y - H))) : (j > H && j > y && (j = y), U > y - (H = Math.max(H, j + C.labelPadding)) && (U = Math.min(U, y - H))), t = 0, a = R.length; t < a; t += 1)
                            for (c = 0, p = R[t].line && R[t].line.length; c < p; c += 1) f = R[t].line[c], b = T.getCleanValue((0, r.pluck)(f.startvalue, f.value, 0)), x = (0, r.pluckNumber)(f.endvalue, b), d = 1 === Number(f.valueonright) ? f.origText || f.displayvalue || "" + x || "" : f.origText || f.displayvalue || "" + b || "", (d = (0, r.parseUnsafeString)("" + d)) !== f.endvalue && d !== f.startvalue || (d = "" + n.call(T, d)), f.origText = d, l = (m = (0, r.pluckNumber)(f.valueonright, E ? 1 : 0)) ? w.getSmartText(d, U, k.config.canvasHeight, D) : w.getSmartText(d, j, k.config.canvasHeight, D), (i = C.parsedTrendLabels[z++]) && (i.attr.text = f.displayvalue = l.text), l.tooltext ? (f.valueToolText = l.tooltext, i && (i.valueToolText = f.valueToolText)) : (delete f.valueToolText, i && delete i.valueToolText) } return y += K, !C.drawAxisName || y - H - U <= 0 || "" === O ? (N.isDraw = !1, N.value = r.BLANKSTRING) : (w.setStyle({ fontSize: I.fontSize, fontFamily: I.fontFamily, lineHeight: I.lineHeight, fontWeight: I.fontWeight }), N.isDraw = !0, C.rotateAxisName ? (C.name.rotation = E ? 90 : 270, o = w.getSmartText(O, F, y - H - U), N.value = O, C.nameMaxW = Math.min(o.height), W = C.nameMaxW + P) : (o = w.getSmartText(O, y - H - U, F), N.value = O, C.nameMaxW = Math.min(o.width, y - H), C.nameMaxH = o.height, C.axisNameWidth >= 0 && (C.nameMaxW = Math.min(C.nameMaxW, C.axisNameWidth)), W = C.nameMaxW + P)), E ? (B ? (q.left += Math.max(G, j), q.right += U) : (q.left += j, q.right += Math.max(G, U)), V ? (C.axisNamePadding = q.left + P, q.left += W) : (C.axisNamePadding = q.right + P, q.right += W)) : (B ? (q.left += j, q.right += Math.max(G, U)) : (q.left += Math.max(G, j), q.right += U), V ? (C.axisNamePadding = q.right + P, q.right += W) : (C.axisNamePadding = q.left + P, q.left += W)), N.isDraw && C.axisNamePadding + C.nameMaxW > y && (C.axisNamePadding = y - C.nameMaxW, W = C.nameMaxW + C.axisNamePadding - H), q }, a._placeHorizontalAxis = function(e) { var t, a, i, n, o, l, s, c, h, u, d, g, p, f, m, v, b, x, y = e,
                        C = this.config,
                        k = this.getFromEnv("chart"),
                        S = k.config,
                        w = k.getFromEnv("smartLabel"),
                        L = C.axisRange,
                        A = C.name,
                        N = C.isOpposit,
                        E = k.getFromEnv("number-formatter"),
                        T = C.drawLabelsOpposit,
                        F = C.drawAxisNameOpposit,
                        _ = 0,
                        P = S.canvasWidth,
                        D = C.labelPadding = (0, r.pluckNumber)(C.rawAttr.axisValuePadding, 4),
                        I = (0, r.pluckNumber)(C.rawAttr.axisNamePadding, 5),
                        M = C.useEllipsesWhenOverflow,
                        O = C.name.style,
                        R = C.trend.trendStyle,
                        B = C.axisName,
                        V = C.vTrendLines,
                        G = 0,
                        z = 0,
                        H = 0,
                        W = { top: 0, bottom: 0 },
                        j = 0,
                        U = 0; if (D < 0 && (C.labelPadding = 2), v = C.drawTick && C.tickLength ? C.axisLineThickness + C.tickLength : C.axisLineThickness, C.showAxisLine ? (C.labelPadding = (0, r.pluckNumber)(D, 2) + v, C.labelPadding < 0 && (C.labelPadding = (C.axisLineThickness < 0 ? 0 : v) + 2), y -= C.axisLineThickness) : (C.labelPadding = (0, r.pluckNumber)(D, 2), C.labelPadding < 0 && (C.labelPadding = 2)), s = L.max, c = L.min, C.labels.rotation = 0, C.labels.step = C.labelStep, C.labels.isDraw = 1, C.labels.drawNormalVal = C.showDivLineValues, C.labels.drawLimitVal = C.showLimits, U = O.lineHeight, U = Number(U.replace(/px/i, "")), B && U < y && (y -= U), C.rotateLabels && "stagger" !== C.labelDisplay && "none" !== C.labelDisplay && (C.labelDisplay = "rotate"), 1 !== C.showLimits && 1 !== C.showDivLineValues && (C.labels.isDraw = 0), f = C.drawLabels ? this._getHMaxLabelDimention(y - C.labelPadding) : { width: 0, height: 0 }, C.labels.rotation ? f.width + C.labelPadding > y && !C.tickValues && (C.labels.isDraw = 0) : f.height + C.labelPadding > y && !C.tickValues && (C.labels.isDraw = 0), C.labels.isDraw && (C.labels.rotation ? (C.labelMaxW = f.height, C.labelMaxH = f.width, _ = f.width + C.labelPadding) : (C.labelMaxW = f.width, C.labelMaxH = f.height, _ = f.height + C.labelPadding), G = _), d = (G = Math.max(G, C.labelPadding)) <= y ? y - G : y, C.drawTrendLines && C.drawTrendLabels && V && C.isActive)
                        for (m = C.isPercent ? this.getFromEnv("number-formatter").percentValue : C.isVertical ? this.getFromEnv("number-formatter").yAxis : this.getFromEnv("number-formatter").xAxis, w.useEllipsesOnOverflow(S.useEllipsesWhenOverflow), w.setStyle({ fontSize: R.fontSize, fontFamily: R.fontFamily, lineHeight: R.lineHeight, fontWeight: R.fontWeight }), a = 0, i = V.length; a < i; a += 1)
                            for (l = 0, u = V[a].line && V[a].line.length; l < u; l += 1) g = V[a].line[l], b = E.getCleanValue((0, r.pluck)(g.startvalue, g.value, 0)), x = (0, r.pluckNumber)(g.endvalue, b), b <= s && b >= c && x <= s && x >= c && (t = 1 === (0, r.pluckNumber)(g.valueonright, 0) ? g.endvalue || g.startvalue : g.startvalue || g.endvalue, (h = (0, r.parseUnsafeString)(g.origText || g.displayvalue || t || "")) === t && (h = "" + m.call(k.getFromEnv("number-formatter"), h)), g.origText = h, d - ((p = w.getSmartText(h, k.canvasWidth, R.lineHeight, M)).height + 2) < 0 ? g.displayvalue = r.BLANKSTRING : ((n = C.parsedTrendLabels[z++]) && (n.attr.text = g.displayvalue = p.text), j = j < p.height ? p.height : j), p.tooltext ? (g.valueToolText = p.tooltext, n && (n.valueToolText = g.valueToolText)) : (delete g.valueToolText, n && delete n.valueToolText)); return d -= j, G += N ? 0 : j, d += U, y += U, !C.drawAxisName || d <= 0 || "" === B ? (A.isDraw = !1, A.value = r.BLANKSTRING) : (w.setStyle({ fontSize: O.fontSize, fontFamily: O.fontFamily, lineHeight: O.lineHeight, fontWeight: O.fontWeight }), A.isDraw = !0, o = w.getSmartText(B, P, d), A.value = B, C.nameMaxW = P, C.nameMaxH = o.height, H = o.height + I, C.axisNamePadding = I + G, C.axisNamePadding + o.height > y && (C.axisNamePadding = y - o.height, H = o.height + C.axisNamePadding - G)), N ? (T ? W.bottom += _ + j : (W.top += _, W.bottom += j), C.trendBottomPadding = W.bottom - j + 2, F ? W.bottom += H : W.top += H) : (T ? (W.top += _, W.bottom += j) : W.bottom += _ + j, C.trendBottomPadding = W.bottom - j + 2, F ? W.top += H : W.bottom += H), W }, a._parseCategoryPlotLine = function() { var e, t, a, i = this.config,
                        n = i.axisRange,
                        o = i.tickValues.tickValue,
                        l = (0, r.convertColor)(i.divLineColor, i.divLineAlpha),
                        s = i.divLineThickness,
                        c = i.divLineIsDashed ? (0, r.getDashStyle)(i.divLineDashLen, i.divLineDashGap, s) : r.DASH_DEF,
                        h = p(this.getVisibleConfig()),
                        u = i._allTicks,
                        d = u.length; if (e = { stroke: l, "stroke-width": s, "stroke-dasharray": c }, (!o[0] || o[0].x === r.UNDEF && o[0].y === r.UNDEF) && i.lines.isDraw && i.categoryNumDivLines)
                        for (t = 0; t < d; ++t) h(a = u[t]) && a !== n.min && a !== n.max && this.setReferenceInfo({ from: a, type: "line", layer: 1, attr: e }) }, a._drawComponents = function() { var e = this.config;
                    e.drawAxisName && this._drawAxisName(), e.drawAxisLine && this._drawAxisLine(), e.tickValues ? e.drawLabels && this._drawCategory() : e.drawLabels && this._drawLabel(), e.drawTrendLines && this.drawTrendLabel() }, a.drawTrendLabel = function() { var e, t, a, i, n, o, l, s, h, u, d, g, p, m, v, b, x = this.config,
                        y = x.parsedTrendLabels,
                        C = this.getFromEnv("animationManager"),
                        k = this.getFromEnv("toolTipController"),
                        S = x.axisTrendLabelContainer,
                        w = x.isOpposit,
                        L = x.labelPadding,
                        A = x.vTrendLines,
                        N = x.trendLines,
                        E = x.axisDimention,
                        T = this.getVisibleConfig(),
                        F = T.minValue,
                        _ = T.maxValue,
                        P = !0; for (v = 0, b = y.length; v < b; v++) y[v].id = v + "_trend"; for (A ? i = w ? E.opposite + (x.trendBottomPadding || 0) : E.y + (x.trendBottomPadding || 0) : (i = w ? E.opposite - (L || 0) : E.x - (L || 0), n = w ? E.x + (L || 0) : E.opposite + (L || 0)), v = 0, b = (p = (0, c["default"])((function(e, t) { return e.attr.text === t.attr.text }), x.prevTrendLabels, y)).length; v < b; v++)(g = this.getGraphicalElement(p[v].id)) && this.removeGraphicalElement(g); if (x.prevTrendLabels = (0, r.extend2)([], y), x.drawTrendLabels)
                        for (v = 0, b = y.length; v < b; v++) t = y[v], a = this.getGraphicalElement(v + "_trend"), l = +t.from, h = +t.to, P = !0, (m = !isNaN(h)) ? (F > (s = l + (h - l) / 2) || _ < s) && (P = !1) : (F > l || _ < l) && (P = !1), P ? (A ? (u = this.getPixel(l, f), d = h ? this.getPixel(h, f) : 0, o = (0, r.pluckNumber)(t.isTrendZone, x.isTrendZone, 1), m && h !== l && o ? (t.attr.x = u + (d - u) / 2, t.attr.y = i) : (t.attr.x = h ? d : u, t.attr.y = i)) : N && (u = this.getPixel(l, f), d = h ? this.getPixel(h, f) : 0, e = (0, r.pluckNumber)(t.valueOnRight, x.isOpposit ? 1 : 0), o = (0, r.pluckNumber)(t.isTrendZone, x.isTrendZone, 0), m && h !== l && o ? (t.attr.x = e ? n : i, t.attr.y = u + (d - u) / 2) : (t.attr.x = e ? n : i, t.attr.y = h && e ? d : u)), a = this.addGraphicalElement(v + "_trend", C.setAnimation({ container: S, el: a || "text", attr: t.attr, css: t.css, data: { value: s || l }, component: this, label: "text" })), x.showTooltip && t.valueToolText ? k.enableToolTip(a, t.valueToolText) : k.disableToolTip(a)) : a && this.removeGraphicalElement(a);
                    else
                        for (v = 0, b = y.length; v < b; v++)(g = this.getGraphicalElement(y[v].id)) && this.removeGraphicalElement(g) }, a._drawAxisName = function() { var e, t, a, i, n, o, l = this.config,
                        s = this.getFromEnv("toolTipController"),
                        c = this.getLinkedItem("canvas").getEffectiveDimensions(),
                        h = this.getFromEnv("animationManager"),
                        u = c.left,
                        d = c.top,
                        g = c.width,
                        p = c.height,
                        f = d + p,
                        m = u + g,
                        v = this.getFromEnv("chart").config,
                        b = l.name.style,
                        x = l.name.value,
                        y = l.isOpposit,
                        C = l.isVertical,
                        k = this.getFromEnv("smartLabel"),
                        S = l.axisNameContainer,
                        w = l.axisNamePadding,
                        L = l.nameMaxH,
                        A = l.nameMaxW,
                        N = l.axisDimention,
                        E = C ? N.x : N.y,
                        T = N.opposite,
                        F = this.getGraphicalElement("axisName"),
                        _ = (0, r.pluckNumber)(l.name.rotation, C ? 90 : 270),
                        P = this.getFromEnv("paper"),
                        D = { fontFamily: b.fontFamily, fontSize: b.fontSize, lineHeight: b.lineHeight, fontWeight: b.fontWeight, fontStyle: b.fontStyle };
                    l.name.isDraw ? (e = { fontFamily: b.fontFamily, fill: b.color, "vertical-align": "middle", "font-size": b.fontSize, "line-height": b.lineHeight }, k.useEllipsesOnOverflow(v.useEllipsesWhenOverflow), k.setStyle({ fontSize: b.fontSize, fontFamily: b.fontFamily, lineHeight: b.lineHeight, fontWeight: b.fontWeight }), l.drawAxisNameOpposit && (y = !y, E = T), C ? (w = Math.max(w, function(e, t) { var a = 0; return e.relativeAxis && e.relativeAxis.config && e.relativeAxis.config.axisNamePadding && (a = Math.max(e.relativeAxis.config.axisNamePadding, a)), e.isOpposit && t.canvasMarginRight && (a = Math.max(a, t.canvasMarginRight - t.marginLeft - e.nameMaxW)), !e.isOpposit && t.canvasMarginLeft && (a = Math.max(a, t.canvasMarginLeft - t.marginRight - e.nameMaxW)), a }(l, v)), i = l.axisNameAlignCanvas || v.captionalignment && "left" === v.captionalignment ? p : Math.max(p, l.oriCanvasHeight || 0), _ ? (a = (t = k.getSmartText(x, i, A)).tooltext, n = t.width) : (a = (t = k.getSmartText(x, A, i)).tooltext, n = t.height), o = l.drawAxisNameFromBottom ? f - n / 2 : n > p ? v.height / 2 : d + p / 2, e.text = t.text, e.x = y ? (E || m) + w + A / 2 : (E || u) - w - A / 2, e.y = o) : (a = (t = k.getSmartText(x, g, L)).tooltext, y && v.canvasMarginTop && (w = Math.max(w, v.canvasMarginTop - v.marginTop - L)), !y && v.canvasMarginBottom && (w = Math.max(w, v.canvasMarginBottom - v.marginBottom - L)), e.text = t.text, e.x = u + g / 2, e.y = y ? (E || d) - w - L / 2 : (E || f) + w + L / 2), e["text-bound"] = "" === t.text ? [] : [b.backgroundColor, b.borderColor, b.borderColor ? b.borderThickness : 0, b.borderPadding, b.borderRadius, b.borderDash], e.transform = P.getSuggestiveRotation(C ? _ : 0, e.x, e.y), F = this.addGraphicalElement("axisName", h.setAnimation({ css: D, el: F || "text", attr: e, container: S, component: this, label: "text" })), l.showTooltip ? s.enableToolTip(F, a) : s.disableToolTip(F)) : F && this.removeGraphicalElement(F) }, a._drawAxisLine = function() { var e, t, a, i, n, o, l, c, h, u, g, p, m, v, b, x, y, C, k = this.config,
                        S = k.isVertical,
                        w = k.isOpposit,
                        L = this.getFromEnv("chart"),
                        A = this.getLinkedItem("canvas").getEffectiveDimensions(),
                        N = this.getFromEnv("animationManager"),
                        E = A.top,
                        T = A.left,
                        F = E + A.height,
                        _ = T + A.width,
                        P = k.axisDimention,
                        D = S ? P.x : P.y,
                        I = k.drawAxisLineWRTCanvas,
                        M = L.getFromEnv("chart-attrib"),
                        O = k.axisAxisLineContainerBottom,
                        R = this.getGraphicalElement("axisLine"),
                        B = []; if (i = 1 === (0, r.pluckNumber)(M.showyaxisline, M.showyaxisline) ? (0, r.pluckNumber)(M.yaxislinethickness, M.pyaxislinethickness, 1) : 0, k.showAxisLine) { if (S ? (n = w ? (D = I ? _ : D) + k.axisLineThickness / 2 : (D = I ? T : D) - k.axisLineThickness / 2, a = (x = d(["M", n, F, "L", n, E], k.axisLineThickness)).path) : (n = w ? (D = I ? E : D) - k.axisLineThickness / 2 : (D = I ? F : D) + k.axisLineThickness / 2, a = (x = d(["M", T - i, n, "L", _, n], k.axisLineThickness)).path), c = { path: a, stroke: k.axisLineColor, "stroke-linecap": "butt", "stroke-width": k.axisLineThickness, "shape-rendering": x.isCrisped ? "crisp" : r.UNDEF }, k.drawTick && k.tickLength)
                            for (e = { stroke: k.tickColor, "stroke-width": k.tickWidth }, o = S ? w ? n + k.tickLength : n - k.tickLength : w ? n - k.tickLength : n + k.tickLength, b = 0, C = (y = k.tickValues ? k.tickValues.tickValue.map((function(e) { return S ? e.y : e.x })) : k.ticks).length; b < C; b += 1) m = (p = y[b]) + "_tick", u = this.getGraphicalElement(m), l = this.getPixel(p, f), e.path = d(S ? ["M", n, l, "L", o, l] : ["M", l, n, "L", l, o], k.tickWidth).path, h = N.setAnimation({ el: u || "path", attr: e, data: { value: p, path: e.path }, container: O, component: this, label: "path" }), u || this.addGraphicalElement(m, h), B.push(m);
                        t = N.setAnimation({ el: R || "path", attr: c, container: O, component: this, label: "path" }), R || this.addGraphicalElement("axisLine", t), B.push("axisLine") } for (b = 0, C = (v = (0, s["default"])(k.prevTicks, B)).length; b < C; b++)(g = this.getGraphicalElement(v[b])) && this.removeGraphicalElement(g);
                    k.prevTicks = B }, a._parseCategory = function() { var e, t, a, i, n, o, l, s, c, h, u, d, g, p, m, v, b, x, y, C, k, S, w, L, A, N, E, T, F, _ = this.config,
                        P = _.axisDimention || {},
                        D = this.getFromEnv("chart"),
                        I = D.getFromEnv("smartLabel"),
                        M = this.components,
                        O = M.labels,
                        R = this.getLinkedItem("canvas").getEffectiveDimensions(),
                        B = D.config,
                        V = _.isOpposit,
                        G = _.labels,
                        z = G.style,
                        H = _.isVertical,
                        W = R.top,
                        j = R.left,
                        U = W + R.height,
                        q = j + R.width,
                        Y = _.labelPadding,
                        X = H ? P.x : P.y,
                        K = P.opposite,
                        Z = D.getFromEnv("dataSource").categories,
                        J = {},
                        $ = _.tickValues.tickValue,
                        Q = _.axisRange.min,
                        ee = _.drawnStaggerLines,
                        te = (_.labelStep !== _.labels.step || 1 !== this.getZoom()) && "stagger" === _.labelDisplay; if (_.labels.isDraw)
                        for (H && (A = Math.abs(this.getPixel(0, f) - this.getPixel(0 + _.axisRange.tickInterval, f)), _.labelMaxH > A && (k = Math.ceil(_.labelMaxH / A)), k > _.labels.step && (_.labels.step = k)), te && (L = 2 * Math.abs(this.getPixel(Q, f) - this.getPixel(Q + _.labels.step, f)) * _.sWidthAdjstFactor - 1), E = (i = _.labels.rotation) ? _.labelMaxH : _.labelMaxW, T = i ? _.labelMaxW : _.labelMaxH, _.drawLabelsOpposit && (V = !V, X = K), Z && Z[0] && "auto" !== _.xAxisLabelMode && (J.fontFamily = Z[0].font, J.fontSize = Z[0].fontsize, J.color = Z[0].fontcolor), _.ParentCss = g = { fontFamily: (0, r.pluck)(J.fontFamily, z.fontFamily), fontSize: (0, r.pluck)(J.fontSize, z.fontSize), fontWeight: (0, r.pluck)(z.fontWeight), fontStyle: (0, r.pluck)(z.fontStyle) }, g.lineHeight = (0, r.setLineHeight)(g), y = this._getCategoryArr(), M.labelIndexArr = [], e = 0, C = y.length; e < C; e += 1) t = $[F = y[e].index], b = y[e].value, M.labelIndexArr.push(F), c = (0, r.pluck)(t.font, t.labelfont), h = (0, r.pluck)(t.fontsize, t.labelfontsize), u = (0, r.pluck)(t.fontbold, t.labelfontbold) ? (0, r.pluckNumber)(t.fontbold, t.labelfontbold, 0) ? "bold" : r.NORMAL : r.UNDEF, d = (0, r.pluck)(t.fontitalic, t.labelfontitalic) ? (0, r.pluckNumber)(t.fontitalic, t.labelfontitalic, 0) ? "italic" : r.NORMAL : r.UNDEF, m = (0, r.convertColor)((0, r.pluck)(t.fontcolor, t.labelfontcolor, J.color, z.color), (0, r.pluckNumber)(t.labelalpha, _.rawAttr.labelAlpha, D.config.singleseries ? r.UNDEF : t.alpha, 100)), c || h || u || d ? (s = {}, c && (s.fontFamily = c), h && (s.fontSize = h), u && (s.fontWeight = u), d && (s.fontStyle = d), s.lineHeight = h ? (0, r.setLineHeight)(s) : g.lineHeight) : s = r.UNDEF, (s || g) && -1 !== (o = (s || g).lineHeight).indexOf("px") && (n = o.replace(/px/i, ""), n = parseFloat(n)), !1 === t.appliedSmartLabel && (I.setStyle(t._ovrStyle || g), N = I.getSmartText(t.oriLabel || t.label, E, T), t.oriLabel = t.oriLabel || t.label, t.label = N.text, t.labelTooltext = N.labelTooltext, t.appliedSmartLabel = !0), v = this.getPixel(b, f), H ? (a = t.label || "", l = Number(t.labelPadding) || 0, p = { fill: m, "line-height": n, opacity: 1, "text-anchor": V ? r.POSITION_START : r.POSITION_END, text: a, cursor: !B.singleseries && t.link || t.labellink || z.labelLink ? r.POINTER : "", x: V ? (X || q) + Y : (X || j) - Y, y: l ? v + l : v }) : (a = t.label || "", l = Number(t.labelPadding) || 0, p = { fill: m, "line-height": n, opacity: 1, text: a, cursor: !B.singleseries && t.link || t.labellink || z.labelLink ? r.POINTER : "", x: v, y: V ? (X || W) - Y : (X || U) + Y }, i ? (p["text-anchor"] = V ? r.POSITION_START : r.POSITION_END, p["vertical-align"] = r.POSITION_MIDDLE) : (p["text-anchor"] = r.POSITION_MIDDLE, p["vertical-align"] = V ? r.POSITION_BOTTOM : r.POSITION_TOP), te ? ((S = t.labelCount % ee) && ((n = t.style.lineHeight) || (n = _.labels.style.lineHeight), w = n.replace(/px/i, "") * S, p.y = V ? p.y - w : p.y + w), I.setStyle(t._ovrStyle || g), N = I.getSmartText(t.oriLabel || t.label, L, T), t.oriLabel = t.oriLabel || t.label, p.text = t.label = N.text, t.labelTooltext = N.labelTooltext, t.appliedSmartLabel = !0) : l && (V ? p.y -= l : p.y += l)), x = { label: t.label, lineHeight: o, border: (0, r.pluckNumber)(t.borderthickness, t.labelborderthickness) ? (0, r.pluckNumber)(t.borderthickness, t.labelborderthickness, 1) + "px solid" : "", borderColor: t.bordercolor || t.labelbordercolor ? (0, r.convertColor)(t.bordercolor || t.labelbordercolor, (0, r.pluckNumber)(t.borderalpha, t.labelborderalpha, t.alpha, t.labelalpha, 100)) : r.BLANKSTRING, borderThickness: (0, r.pluckNumber)(t.borderthickness, t.labelborderthickness), borderPadding: (0, r.pluckNumber)(t.borderpadding, t.labelborderpadding), borderRadius: (0, r.pluckNumber)(t.borderradius, t.labelborderradius), backgroundColor: t.bgcolor || t.labelbgcolor ? (0, r.convertColor)(t.bgcolor || t.labelbgcolor, (0, r.pluckNumber)(t.bgalpha, t.labelbgalpha, t.alpha, t.labelalpha, _.rawAttr.labelAlpha, 100)) : r.BLANKSTRING, borderDash: (0, r.pluckNumber)(t.borderdashed, t.labelborderdashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(t.borderdashlen, t.labelborderdashlen, 4), (0, r.pluckNumber)(t.borderdashgap, t.labelborderdashgap, 2)) : 0 === (0, r.pluckNumber)(t.borderdashed, t.labelborderdashed) ? r.DASH_DEF : z.borderDash }, t.label ? p["text-bound"] = [(0, r.pluck)(x.backgroundColor, z.backgroundColor), (0, r.pluck)(x.borderColor, z.borderColor), (0, r.pluck)(x.borderThickness, z.borderThickness), (0, r.pluck)(x.borderPadding, z.borderPadding), (0, r.pluck)(x.borderRadius, z.borderRadius), (0, r.pluck)(x.borderDash, z.borderDash)] : p["text-bound"] = [], G.shiftX && (p.x += G.shiftX), G.shiftY && (p.y += G.shiftY), p.transform = (0, r.getSuggestiveRotation)(i, p.x, p.y), O[F] = O[F] || { config: { props: { label: {} } } }, O[F].config.props.label.attr = p, O[F].config.props.label.css = s }, a.allocatePosition = function() { var e = this.config;
                    e.tickValues ? e.drawLabels && this._parseCategory() : e.drawLabels && this._parseLabel() }, a._drawCategory = function() { var e, t, a, i, n, o, l, s, h, u, d, g = this.config,
                        p = this.getFromEnv("chart"),
                        f = p.config,
                        m = g.labels,
                        v = this.getFromEnv("animationManager"),
                        b = m.style,
                        x = this.getFromEnv("toolTipController"),
                        y = g.axisContainer,
                        C = this.config.categoryLabel || (this.config.categoryLabel = []),
                        k = function(e) { return function(t) { p.plotEventHandler(this, t, e) } },
                        S = g.tickValues.tickValue,
                        w = []; if (g.labels.isDraw) { for (y.css(g.ParentCss), o = this._getCategoryArr(), e = 0, s = (n = (0, c["default"])((function(e, t) { return e.value === t.value }), g.prevCategoryIntervalArr, o)).length; e < s; e++)(u = this.getGraphicalElement(n[e].value + "_label")) && this.removeGraphicalElement(u); for (g.prevCategoryIntervalArr = (0, r.extend2)([], o), e = 0, s = o.length; e < s; e += 1) w[e] = o[e].value + "_label"; for (e = 0, s = o.length; e < s; e += 1) t = S[d = o[e].index], i = (h = this.components.labels[d].config).props.label.attr, l = this.getGraphicalElement(w[e]), a = v.setAnimation({ el: l || "text", attr: i, container: y, data: { value: void 0 }, component: this, label: "text", css: h.props.label.css }), l || (this.addGraphicalElement(w[e], a), a.on("fc-click", k("dataLabelClick")).hover(k("dataLabelRollOver"), k("dataLabelRollOut"))), a.data("eventArgs", { link: !f.singleseries && t.link || t.labellink || b.labelLink, text: i.text, index: d }), t.labelTooltext ? x.enableToolTip(a, t.labelTooltext) : x.disableToolTip(a), C[d] = a } else
                        for (e = 0, s = g.prevCategoryIntervalArr.length; e < s; e++)(u = this.getGraphicalElement(g.prevCategoryIntervalArr[e].value + "_label")) && this.removeGraphicalElement(u) }, a._getCategoryArr = function() { var e, t, a, i, n, o, l, s, c, h, u = this.config,
                        d = u.isVertical,
                        g = 0,
                        p = 0,
                        v = []; for (e = u.tickValues.tickValue, i = m(e), a = e ? e.length - 1 : 0, d && (c = Math.abs(this.getPixel(0, f) - this.getPixel(1, f)), u.labelMaxH > c && (g = Math.ceil(u.labelMaxH / c)), g > u.labels.step && (u.labels.step = g)), s = u.labels.step > 0 ? u.labels.step : 1, h = 1 !== this.getZoom(), o = this.getVisibleConfig(), t = i; t <= a; t += s)(n = e[t]) && (l = (0, r.pluckNumber)(n.x, n.y, t), 0 !== (0, r.pluckNumber)(n.showlabel, u.showLabels, 1) && (h && (l < o.minValue || l > o.maxValue) ? n.labelCount = p++ : ("auto" !== u.xAxisLabelMode && "mixed" !== u.xAxisLabelMode || 0 !== u.showZeroPlane && 0 !== u.showZeroPlaneValue || 0 !== l) && (u.labels.drawNormalVal || u.labels.drawLimitVal && (t === i || t === a)) && (u.labels.drawNormalVal || t === i || t === a) && (u.labels.drawLimitVal || t !== i && t !== a) && (n.labelCount = p++, v.push({ index: t, value: l })))); return v }, a.getValue = function(e, t) { void 0 === t && (t = { wrtVisible: !1 }); var a = this.getScale(),
                        i = this.getTranslation(); return a.getDomainValue(t.wrtVisible ? e : e - i) }, a.getPixel = function(e, t) { void 0 === t && (t = { wrtVisible: !1 }); var a = this.getScale(),
                        i = this.getTranslation(),
                        n = a.getRangeValue(e); return t.wrtVisible ? n : n + i }, a._getCustomPixel = function(e, t, a) { if (void 0 === a && (a = { wrtVisible: !1 }), !t) return this.getPixel(e, a); var i = this.getScale().copy(),
                        n = i.getRange(),
                        o = n[0],
                        r = n[1],
                        l = Math.min(o, r),
                        s = i.getRangeValue(e),
                        c = this.getTranslation(); return i.setRange([l, l + t]), a.wrtVisible ? s : s + c }, a.getTranslation = function() { return this.config.translation || 0 }, a.setVisibleConfig = function(e, t) { var a, i = this.config,
                        n = this.getZoom(),
                        o = this.getScale(); return !(e >= t || e < i.axisRange.min || t > i.axisRange.max) && (a = o.setDomain([e, t]).getDomain(), i.visibleMin = a[0], i.visibleMax = a[1], i.zoom = this._computeZoom(), i.translation = this._computeTranslation(), 1 === n && 1 === this.getZoom() || (i.ticks = this.generateTicks(), i.minorTicks = this.generateMinorTicks(), i.tickValues && this.calculateTicksOnLabelMode && this.calculateTicksOnLabelMode()), this.clearReferenceInfo(), this._parseReferenceVisuals(), this.fireEvent("visiblerangeset", { minValue: e, maxValue: t }), this.asyncDraw(), !0) }, a.hide = function() { var e = this.config;
                    e.axisContainer && (e.axisLabelContainerTop.hide(), e.axisContainer.hide(), e.axisNameContainer.hide(), e.axisTrendLabelContainer.hide(), e.axisAxisLineContainer.hide(), e.axisAxisLineContainerBottom.hide()) }, a.show = function() { var e = this.config;
                    e.axisContainer && (e.axisLabelContainerTop.show(), e.axisContainer.show(), e.axisNameContainer.show(), e.axisTrendLabelContainer.show(), e.axisAxisLineContainer.show(), e.axisAxisLineContainerBottom.show()) }, a.getZoom = function() { return this.config.zoom || 1 }, a._computeTranslation = function() { var e = this.config,
                        t = this.getVisibleConfig(),
                        a = (0, r.pluckNumber)(t.minValue, e.axisRange.min, 0),
                        i = (0, r.pluckNumber)(e.axisRange.min, t.minValue, 0); return this.getPixel(a) - this.getPixel(i) }, a._computeZoom = function() { var e = this.config,
                        t = this.getVisibleConfig(),
                        a = (0, r.pluckNumber)(t.minValue, e.axisRange.min, 0),
                        i = (0, r.pluckNumber)(t.maxValue, e.axisRange.max, 1),
                        n = (0, r.pluckNumber)(e.axisRange.min, t.minValue, 0),
                        o = (0, r.pluckNumber)(e.axisRange.max, t.maxValue, 1),
                        l = e.maxZoomLimit,
                        s = (o - n) / (i - a); return s > l ? l : s }, a.getTickValues = function() { var e = this.config.tickValues; return e && e.tickValue || [] }, a.dataLabels = function(e) { var t = this.config.axisIndex; return this.getFromEnv("number-formatter").dataLabels(e, t) }, a.getAxisBase = function() { var e = this.getVisibleConfig(),
                        t = e.minValue,
                        a = e.maxValue; return t < 0 && a > 0 ? 0 : a <= 0 ? a : t }, a._parseReferenceVisuals = function() { var e, t, a = this.config,
                        i = this.getTickValues(),
                        n = i.length,
                        o = this.getFromEnv("chartConfig").is3D;
                    a.isActive || (e = a.lines.isDraw, t = a.band.isDraw, a.lines.isDraw = 0, a.band.isDraw = 0), a.tickValues ? a.drawLabels && this._parseCategoryLine(i, 0, n) : a.drawPlotlines && this._parsePlotLine(), a.tickValues && "auto" !== a.xAxisLabelMode ? (a.drawPlotlines && !o && this._parseCategoryPlotLine(), a.drawPlotBands && !o && this._parseCategoryPlotBand(), "mixed" === a.xAxisLabelMode && a.drawPlotBands && !o && this._parsePlotBand()) : a.drawPlotBands && !o && this._parsePlotBand(), a.isActive || (a.lines.isDraw = e, a.band.isDraw = t), a.drawTrendLines && this._parseTrendLine() }, a._parseCategoryPlotBand = function() { var e, t, a, i, n, o = this.config,
                        l = o.tickValues.tickValue,
                        s = o.showAlternateGridColor,
                        c = o.alternateGridColor,
                        h = o.alternateGridAlpha,
                        u = o._allTicks,
                        d = this.getLimit(),
                        p = d.min,
                        f = d.max,
                        m = g(this.getVisibleConfig()); if ((!l[0] || l[0].x === r.UNDEF && l[0].y === r.UNDEF) && s && o.band.isDraw && o.categoryNumDivLines)
                        for (e = { fill: (0, r.toRaphaelColor)((0, r.convertColor)(c, h)), "stroke-width": 0 }, t = 0, n = 0; n < u.length; ++t, ++n) m(u[n], u[n + 1]) && (a = u[n], t % 2 == 0 && (i = u[n + 1]) !== r.UNDEF && (a === p && (a = "canvasStart"), i === f && (i = "canvasEnd"), this.setReferenceInfo({ from: a, to: i, layer: 0, type: "band", attr: e }))) }, a._parseTrendLine = function() { var e, t, a, i, n, o, l, s, c, h, u, d, g, p, f, m, v, b, x, y, C = this.config,
                        k = C.isVertical,
                        S = C.axisIndex,
                        w = this.getFromEnv("chart-attrib"),
                        L = this.getFromEnv("number-formatter"),
                        A = C.axisRange,
                        N = A.max,
                        E = A.min,
                        T = C.trend.trendStyle,
                        F = { fontFamily: T.fontFamily, fontSize: T.fontSize, lineHeight: T.lineHeight, fontWeight: T.fontWeight, fontStyle: T.fontStyle },
                        _ = C.vTrendLines,
                        P = C.trendLines,
                        D = 0; if (l = P || _)
                        for (a = 0, i = l.length; a < i; a += 1)
                            for (e = 0, t = l[a].line && l[a].line.length; e < t; e += 1) v = k ? "yAxis" : "xAxis", (u = l[a].line[e]).startvalue || u.value || 0, p = L.getCleanValue((0, r.pluck)(u.startvalue, u.value, 0)), f = Number(u.endvalue) || r.UNDEF, n = (0, r.getValidValue)((0, r.parseUnsafeString)((0, r.pluck)(l[a].line[e].tooltext, l[0].tooltext, C.trendlineToolText), !1)), n = (0, r.parseTooltext)(n, [7, 15, 16, 17, 18, 19], { startValue: p, startDataValue: L[v](p, S), endValue: f || p, endDataValue: L[v](f || p, S), axisName: C.axisName }, u), p > N || p < E || f > N || f < E || (_ ? (d = (0, r.parseUnsafeString)(u.displayvalue || ""), s = (0, r.pluckNumber)(u.istrendzone, C.isTrendZone, 1), f !== r.UNDEF && "" !== f && f !== p && s ? (c = { fill: (0, r.convertColor)((0, r.pluck)(u.color, C.trendlineColor), (0, r.pluck)(u.alpha, C.trendlineAlpha, 40)), "stroke-width": 0 }, h = { fill: (0, r.convertColor)((0, r.pluck)(u.color, T.color), (0, r.pluck)(T.valueAlpha, u.alpha, C.trendlineAlpha, 99)), "vertical-align": r.POSITION_TOP, text: d }) : (m = (0, r.pluckNumber)(u.thickness, C.trendlineThickness, 1), c = { stroke: (0, r.convertColor)((0, r.pluck)(u.color, C.trendlineColor), (0, r.pluck)(u.alpha, C.trendlineAlpha, 99)), "stroke-width": m, "stroke-dasharray": (0, r.pluck)(u.dashed, C.trendlinesAreDashed) === r.ONESTRING ? (0, r.getDashStyle)((0, r.pluckNumber)(u.dashlen, C.trendlinesDashLen), (0, r.pluckNumber)(u.dashgap, C.trendlinesDashGap)) : r.DASH_DEF }, h = { fill: (0, r.convertColor)((0, r.pluck)(u.color, T.color), (0, r.pluck)(T.valueAlpha, u.alpha, C.trendlineAlpha, 99)), "vertical-align": r.POSITION_TOP, text: d })) : P && (d = (0, r.pluck)((0, r.parseUnsafeString)(u.displayvalue), u.startvalue, ""), g = (0, r.pluckNumber)(u.valueonright, C.isOpposit ? 1 : 0), s = (0, r.pluckNumber)(u.istrendzone, C.isTrendZone, 0), f !== r.UNDEF && "" !== f && f !== p && s ? (c = { fill: (0, r.convertColor)((0, r.pluck)(u.color, C.trendlineColor), (0, r.pluck)(u.alpha, C.trendlineAlpha, 40)), "stroke-width": 0 }, h = { "text-anchor": g ? r.POSITION_START : r.POSITION_END, fill: (0, r.convertColor)((0, r.pluck)(u.color, T.color), (0, r.pluck)(T.valueAlpha, u.alpha, C.trendlineAlpha, 99)), text: d }) : (m = (0, r.pluckNumber)(u.thickness, C.trendlineThickness, 1), c = { stroke: (0, r.convertColor)((0, r.pluck)(u.color, C.trendlineColor), (0, r.pluck)(u.alpha, C.trendlineAlpha, 99)), "stroke-width": m, "stroke-dasharray": (0, r.pluck)(u.dashed, C.trendlinesAreDashed) === r.ONESTRING ? (0, r.getDashStyle)((0, r.pluckNumber)(u.dashlen, C.trendlinesDashLen), (0, r.pluckNumber)(u.dashgap, C.trendlinesDashGap)) : r.DASH_DEF }, h = { "text-anchor": g ? r.POSITION_START : r.POSITION_END, fill: (0, r.convertColor)((0, r.pluck)(u.color, T.color), (0, r.pluck)(T.valueAlpha, u.alpha, C.trendlineAlpha, 99)), text: d })), h["text-bound"] = h.text ? [T.backgroundColor, T.borderColor, T.borderThickness, T.borderPadding, T.borderRadius, T.borderDash] : [], C.showTooltip && n || (n = r.BLANKSTRING), o = C.forceTrendBelow ? 0 : (0, r.pluckNumber)(u.showontop, w.showtrendlinesontop, 0), k ? (b = p, y = f !== r.UNDEF ? f : p) : (b = f !== r.UNDEF ? f : p, y = p), x = s && b !== y ? "band" : "line", b !== r.UNDEF && this.setReferenceInfo({ from: b, to: y, toolText: n, attr: c, layer: o ? 3 : 2, type: x, id: "trend" + D + x }), C.parsedTrendLabels.push({ css: F, valueOnRight: g, isTrendZone: s, from: p, to: f, attr: h }), D += 1) }, a._parsePlotLine = function() { var e, t, a, i, n, o = this.config,
                        l = o.axisRange,
                        s = l.max,
                        c = l.min,
                        h = p(this.getVisibleConfig()),
                        u = o.showCanvasBorder,
                        d = (0, r.convertColor)(o.divLineColor, o.divLineAlpha),
                        g = o.divLineThickness,
                        f = o.divLineIsDashed ? (0, r.getDashStyle)(o.divLineDashLen, o.divLineDashGap) : r.DASH_DEF,
                        m = (0, r.convertColor)(o.zeroPlaneColor, o.zeroPlaneAlpha),
                        v = o.zeroPlaneThickness,
                        b = o._allTicks,
                        x = b.length,
                        y = o.showZeroPlaneOnTop,
                        C = o.minorTicks,
                        k = C && C.length; if (o.lines.isDraw)
                        for (t = 0; t < x; ++t) h(e = b[t]) && (i = { "stroke-dasharray": f }, 0 === o.showZeroPlane && 0 === e || u && (e === s || e === c) || (0 === e && e !== c && e !== s ? (i.stroke = m, i["stroke-width"] = v, y = o.showZeroPlaneOnTop) : (y = 0, i.stroke = d, i["stroke-width"] = g), this.setReferenceInfo({ type: "line", from: e, layer: 0 === e && y ? 3 : 1, attr: i }))); for (n = { stroke: o.minorDivlinecolor, "stroke-width": o.minorDivLineThickness, "stroke-dasharray": f }, t = 0; t < k; ++t) a = C[t], this.setReferenceInfo({ type: "line", from: a, layer: 1, attr: n }) }, a._parseCategoryLine = function(e, t, a) { var i, n, o, l, s, c, h = t,
                        u = a,
                        d = this.config,
                        g = this.getFromEnv("color-manager"),
                        p = this.getFromEnv("chartInstance").getJSONData().categories,
                        f = {}; if (h = h || 0, u = u || e ? e.length - 1 : 0, d.drawPlotlines)
                        for (c = 1 !== this.getZoom(), o = this.getVisibleConfig(), p && p[0] && (f.verticalLineColor = p[0].verticallinecolor, f.verticalLineAlpha = p[0].verticallinealpha, f.verticalLineThickness = p[0].verticallinethickness, f.verticalLineDashed = p[0].verticallinedashed, f.verticalLineDashLen = p[0].verticallinedashlen, f.verticalLineDashGap = p[0].verticallinedashgap), i = h; i <= u; i += 1)(n = e[i]) && (s = (0, r.pluckNumber)(n.x, n.y, i), 1 === Number(n.showverticalline) && (c && (s < o.minValue || s > o.maxValue) || ((l = { stroke: (0, r.convertColor)((0, r.pluck)(n.linecolor, f.verticalLineColor, d.divLineColor, g.getColor("divLineColor")), (0, r.pluck)(n.linealpha, f.verticalLineAlpha, g.getColor("divLineAlpha"))), "stroke-width": (0, r.pluckNumber)(n.linethickness, f.verticalLineThickness, 1) })["stroke-dasharray"] = (0, r.pluckNumber)(n.linedashed, f.verticalLineDashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(n.linedashLen, f.verticalLineDashLen, 4), (0, r.pluckNumber)(n.linedashgap, f.verticalLineDashGap, 2), l["stroke-width"]) : r.DASH_DEF, this.setReferenceInfo({ type: "line", from: s, layer: 1, attr: l })))) }, a._parsePlotBand = function() { var e, t, a, i, n, o, l = this.config,
                        s = l.showAlternateGridColor,
                        c = l.alternateGridColor,
                        h = l.alternateGridAlpha,
                        u = l._allTicks,
                        d = g(this.getVisibleConfig()),
                        p = l.isReverse; if (s && l.band.isDraw)
                        for (t = 1, e = { fill: (0, r.toRaphaelColor)((0, r.convertColor)(c, h)), "stroke-width": 0 }, i = 0, a = u.length; i < a; ++i, ++t) d(u[i], u[i + 1]) && t % 2 == 0 && u[i + 1] !== r.UNDEF && (o = p ? Math.max(u[i], u[i + 1]) : Math.min(u[i], u[i + 1]), n = p ? Math.min(u[i], u[i + 1]) : Math.max(u[i], u[i + 1]), this.setReferenceInfo({ from: o, to: n, type: "band", layer: 0, attr: e })) }, a.getReferenceInfo = function() { return this.config.referenceInfo }, a.setReferenceInfo = function(e) { this.config.referenceInfo.push(e) }, a.clearReferenceInfo = function() { var e = this.config;
                    e.referenceInfo = [], e.parsedTrendLabels = [], e.parsedVlineInfo = [] }, a.resetStoredLimits = function() { this.config.dataLimit = {} }, a.getAxisDimension = function() { var e = this.config.axisDimention; return { x: e.x, y: e.y, opposite: e.opposite, axisLength: e.axisLength } }, t }(o["default"]);
            v.prototype.setAxisDimention = u.setAxisDimention, v.prototype.shiftLabels = u.shiftLabels, v.prototype._createContainer = u._createContainer; var b = v;
            t["default"] = b },
        493: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(230),
                r = a(215),
                l = function(e, t) { return e < t ? t : e },
                s = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "axis" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.components = { labels: [] }; var t = this.config;
                        t.setAdaptiveMin = 0, t.adjustDiv = 1, t.axisNameWidth = r.UNDEF, t.rotateAxisName = 0, t.useEllipsesWhenOverflow = 1, t.divLineColor = r.UNDEF, t.divLineAlpha = r.UNDEF, t.divLineThickness = r.UNDEF, t.divLineIsDashed = r.UNDEF, t.divLineDashLen = r.UNDEF, t.divLineDashGap = r.UNDEF, t.showAlternateGridColor = r.UNDEF, t.alternateGridColor = r.UNDEF, t.alternateGridAlpha = r.UNDEF, t.showZeroPlane = 1, t.zeroPlaneAlpha = 80, t.showZeroPlaneValue = 1, t.showZeroPlaneOnTop = 1, t.showAxisLine = r.UNDEF, t.axisLineThickness = r.UNDEF, t.axisLineAlpha = r.UNDEF, t.tickLength = 0, t.trendlineToolText = r.UNDEF, t.trendlineColor = "333333", t.trendlineThickness = 1, t.trendlineAlpha = r.UNDEF, t.showTrendlinesOnTop = 0, t.trendlinesAreDashed = 0, t.trendlinesDashLen = 5, t.trendlinesDashGap = 2, t.isTrendZone = r.UNDEF, t.showTrendlines = 1, t.showTrendlineLabels = 1, t.showLabels = 1, t.maxLabelHeight = r.UNDEF, t.rotateLabels = r.UNDEF, t.slantLabel = 0, t.showAxisValues = 1, t.showTooltip = 1, t.isActive = !0, t.drawLabels = !0, t.drawOnlyCategoryLine = !1, t.drawLabelsOpposit = !1, t.drawPlotlines = !0, t.drawAxisLine = !0, t.drawPlotBands = !0, t.drawAxisName = !0, t.drawAxisNameOpposit = !1, t.axisNameAlignCanvas = !1, t.drawAxisNameFromBottom = !1, t.drawTrendLines = !0, t.drawTrendLabels = !0, t.drawTick = !0, t.drawTickMinor = !0, t.animateAxis = !0, t.drawAxisLineWRTCanvas = !0, t.isRelativeAxisInverse = !1, t.axisIndex = 0, t.uniqueClassName = 0, t.viewPortRatio = {}, t.canvas = {}, t.axisRange = {}, t.drawnStaggerLines = r.UNDEF, t.axisDimention = {}, t.forceZeroTick = !0, t.isZeroTickForced = !1, t.extremeLabels = { firstLabel: {}, lastLabel: {} }, t._setRangeAgain = !1, t._defaultForceDecimal = r.UNDEF, t._defaultDecimalPrecision = r.UNDEF, t.rangeChanged = !1, t.dimensionChanged = !1, t.apparentScrollPos = 0, t.visibleMin = r.UNDEF, t.visibleMax = r.UNDEF, t.setPadding = !1, t.trendLimits = r.UNDEF }, a.configureAttributes = function(e) { var t, a, i, n, o = this.config,
                            s = this.getFromEnv("chart"),
                            c = this.getFromEnv("dataSource"),
                            h = s.config.is3D,
                            u = c.chart,
                            d = this.getFromEnv("number-formatter");
                        t = o.rawAttr = e, o.referenceInfo = [], o.parsedTrendLabels = [], o.parsedVlineInfo = [], o.trendLines = t.trendlines, o.vTrendLines = t.vtrendlines, (0, r.parseConfiguration)(t, o), o.axisName = (0, r.parseUnsafeString)(t.axisName), o.axisValuePadding = o.axisNamePadding || (0, r.pluckNumber)(t.axisValuePadding, 4), o.axisNamePadding = o.axisNamePadding || (0, r.pluckNumber)(t.axisNamePadding, 5), o.maxLabelWidthPercent = (0, r.pluckNumber)(t.maxLabelWidthPercent), o.maxLabelWidthPercent = Math.abs(o.maxLabelWidthPercent), o.minLabelWidthPercent = Math.abs((0, r.pluckNumber)(t.minLabelWidthPercent)), o.numDivLines = (0, r.pluckNumber)(t.numDivLines, 4), o.numDivLines = l(o.numDivLines, 0), o.categoryNumDivLines = (0, r.pluckNumber)(t.numDivLines, 0), o.axisValuePadding = l(o.axisValuePadding, 0), o.isReverse = (0, r.pluckNumber)(t.isReverse, 0), o.isOpposit = (0, r.pluckNumber)(t.isOpposit, 0), o.isVertical = (0, r.pluckNumber)(t.isVertical, 0), o.categoryDivLinesFromZero = 1, o.axisMinValue = d.getCleanValue(t.axisMinValue), o.axisMaxValue = d.getCleanValue(t.axisMaxValue), o.zeroPlaneColor = (0, r.pluck)(t.zeroPlaneColor, t.divLineColor), o.zeroPlaneThickness = (0, r.pluck)(t.zeroPlaneThickness, t.divLineThickness), o.axisLineColor = (0, r.convertColor)(t.axisLineColor, t.axisLineAlpha), o.tickAlpha = (0, r.pluckNumber)(t.tickAlpha, o.axisLineAlpha), o.tickColor = (0, r.convertColor)((0, r.pluck)(t.tickColor, t.axisLineColor), o.tickAlpha), o.tickWidth = (0, r.pluckNumber)(t.tickWidth, o.axisLineThickness), o.maxZoomLimit = (0, r.pluckNumber)(u.maxzoomlimit, s.maxzoomlimit, 1e3), o.showVLines = (0, r.pluckNumber)(u.showvlines, 1), o.showVLinesOnTop = (0, r.pluckNumber)(u.showvlinesontop, 0), o.showVLineLabels = (0, r.pluckNumber)(u.showvlinelabels, this.showVLineLabels, 1), o.showVLineLabelBorder = (0, r.pluckNumber)(u.showvlinelabelborder, 1), o.rotateVLineLabels = (0, r.pluckNumber)(u.rotatevlinelabels, 0), o.vLineColor = (0, r.pluck)(u.vlinecolor, "333333"), o.vLineLabelColor = (0, r.pluck)(u.vlinelabelcolor), o.vLineThickness = (0, r.pluck)(u.vlinethickness, 1), o.vLineAlpha = (0, r.pluckNumber)(u.vlinealpha, 80), o.vLineLabelBgColor = (0, r.pluck)(u.vlinelabelbgcolor, "ffffff"), o.vLineLabelBgAlpha = (0, r.pluckNumber)(u.vlinelabelbgalpha, h ? 50 : 100), o.staggerLines = Math.max((0, r.pluckNumber)(u.staggerlines, 2), 2), o.staggerLines = l(o.staggerLines, 1), o.trendlineValuesOnOpp = (0, r.pluck)(t.trendlineValuesOnOpp, t.trendlineValuesOnOpp, 0), o.labelDisplay = (0, r.pluck)(t.labelDisplay, "auto").toLowerCase(), o.labelStep = (0, r.pluckNumber)(t.labelStep, 1), o.labelStep = Math.round(o.labelStep), o.labelStep = l(o.labelStep, 1), o.startPad = 0, o.endPad = 0, o._oriLabelStep = o.labelStep, o.showLimits = (0, r.pluckNumber)(t.showLimits, o.showAxisValues), o.showUpperLimit = t.showLimits, o.showDivLineValues = (0, r.pluckNumber)(t.showDivLineValues, o.showAxisValues), o.showCanvasBorder = s.getChildren("canvas")[0].config.showCanvasBorder ? 1 : 0, o.axisBreak = t.axisBreaks, o.isBreak = !!o.axisBreak, o.isBreak && this._processAxisBreak(), a = (a = (0, r.getFirstValue)(t.axisNameBorderColor, r.BLANKSTRING)) ? (0, r.convertColor)(a, (0, r.pluckNumber)(t.axisNameBorderAlpha, t.axisNameAlpha, 100)) : r.BLANKSTRING, o.name = o.name || {}, o.name.style = { fontFamily: (0, r.pluck)(t.axisNameFont, t.outCanfontFamily), fontSize: (0, r.pluck)(t.axisNameFontSize, (0, r.pInt)(t.outCanfontSize)) + r.PXSTRING, color: (0, r.convertColor)((0, r.pluck)(t.axisNameFontColor, t.outCancolor), (0, r.pluckNumber)(t.axisNameFontAlpha, t.axisNameAlpha, 100)), fontWeight: (0, r.pluckNumber)(t.axisNameFontBold, 1) ? "bold" : r.NORMAL, fontStyle: (0, r.pluckNumber)(t.axisNameFontItalic) ? "italic" : r.NORMAL, border: a || t.axisNameBgColor ? (0, r.pluckNumber)(t.axisNameBorderThickness, 1) + "px solid" : r.UNDEF, borderColor: a, borderThickness: (0, r.pluckNumber)(t.axisNameBorderThickness, 1), borderPadding: (0, r.pluckNumber)(t.axisNameBorderPadding, 2), borderRadius: (0, r.pluckNumber)(t.axisNameBorderRadius, 0), backgroundColor: t.axisNameBgColor ? (0, r.convertColor)(t.axisNameBgColor, (0, r.pluckNumber)(t.axisNameBgAlpha, t.axisNameAlpha, 100)) : r.BLANKSTRING, borderDash: (0, r.pluckNumber)(t.axisNameBorderDashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(t.axisNameBorderDashLen, 4), (0, r.pluckNumber)(t.axisNameBorderDashGap, 2)) : r.DASH_DEF }, o.name.style.lineHeight = (0, r.setLineHeight)(o.name.style), i = (i = (0, r.getFirstValue)(u.trendvaluebordercolor, r.BLANKSTRING)) ? (0, r.convertColor)(i, (0, r.pluckNumber)(u.trendvalueborderalpha, u.trendvaluealpha, 100)) : r.BLANKSTRING, o.trend = o.trend || {}, o.trend.trendStyle = { fontFamily: (0, r.pluck)(u.trendvaluefont, t.outCanfontFamily), color: (0, r.pluck)(u.trendvaluefontcolor, t.trendlineColor, t.outCancolor, "333333"), valueAlpha: u.trendvaluealpha, fontSize: (0, r.pluckFontSize)(u.trendvaluefontsize, (0, r.pInt)(t.outCanfontSize)) + r.PXSTRING, fontWeight: (0, r.pluckNumber)(u.trendvaluefontbold) ? "bold" : r.NORMAL, fontStyle: (0, r.pluckNumber)(u.trendvaluefontitalic) ? "italic" : r.NORMAL, border: i || u.trendvaluebgcolor ? (0, r.pluckNumber)(u.trendvalueborderthickness, 1) + "px solid" : "", borderColor: i, borderThickness: (0, r.pluckNumber)(u.trendvalueborderthickness, 1), borderPadding: (0, r.pluckNumber)(u.trendvalueborderpadding, 2), borderRadius: (0, r.pluckNumber)(u.trendvalueborderradius, 0), backgroundColor: u.trendvaluebgcolor ? (0, r.convertColor)(u.trendvaluebgcolor, (0, r.pluckNumber)(u.trendvaluebgalpha, u.trendvaluealpha, 100)) : r.BLANKSTRING, borderDash: (0, r.pluckNumber)(u.trendvalueborderdashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(u.trendvalueborderdashlen, 4), (0, r.pluckNumber)(u.trendvalueborderdashgap, 2)) : r.DASH_DEF }, o.trend.trendStyle.lineHeight = (0, r.setLineHeight)(o.trend.trendStyle), o.labels = o.labels || {}, o.lines = o.lines || {}, o.band = o.band || {}, n = (n = (0, r.getFirstValue)(t.labelBdrColor, r.BLANKSTRING)) ? (0, r.convertColor)(n, (0, r.pluckNumber)(t.labelBdrAlpha, t.labelAlpha, 100)) : r.BLANKSTRING, o.labels.style = { fontFamily: (0, r.pluck)(t.labelFont, t.outCanfontFamily), fontSize: (0, r.pluckNumber)(t.labelFontSize, (0, r.pInt)(t.outCanfontSize)) + r.PXSTRING, fontWeight: (0, r.pluckNumber)(t.labelFontBold) ? "bold" : r.NORMAL, fontStyle: (0, r.pluckNumber)(t.labelFontItalic) ? "italic" : r.NORMAL, color: (0, r.convertColor)((0, r.pluck)(t.labelFontColor, t.outCancolor), (0, r.pluckNumber)(t.labelAlpha, 100)), labelLink: t.labelLink, border: n || t.labelBgColor ? (0, r.pluckNumber)(t.labelBdrThickness, 1) + "px solid" : "", borderColor: n, borderThickness: (0, r.pluckNumber)(t.labelBdrThickness, 1), borderPadding: (0, r.pluckNumber)(t.labelBdrPadding, 2), borderRadius: (0, r.pluckNumber)(t.labelBdrRadius, 0), backgroundColor: t.labelBgColor ? (0, r.convertColor)(t.labelBgColor, (0, r.pluckNumber)(t.labelBgAlpha, t.labelAlpha, 100)) : r.BLANKSTRING, borderDash: (0, r.pluckNumber)(t.labelBdrDashed, 0) ? (0, r.getDashStyle)((0, r.pluckNumber)(t.labelBdrDashLen, 4), (0, r.pluckNumber)(t.labelBdrDashGap, 2)) : r.DASH_DEF }, o.labels.style.lineHeight = (0, r.setLineHeight)(o.labels.style), o.numberFormatterFn = (0, r.pluck)(t.numberFormatterFn), o.apparentScrollPos = t.apparentScrollPos || o.apparentScrollPos, o.axisRange = {}, o.dataLimit = {}, o.axisEndLabelDisplaySpace = { left: 0, right: 0, top: 0, bottom: 0 }, o.isConfigured = !0, o._defaultForceDecimal = r.UNDEF, o._defaultDecimalPrecision = r.UNDEF, o.lines.isDraw = (0, r.pluckNumber)(t.lines && t.lines.isDraw, 1), o.band.isDraw = (0, r.pluckNumber)(t.band && t.band.isDraw, 1) }, a.createContainer = function(e, t, a) { var i = this.getFromEnv("animationManager"); return this.addContainer(e, i.setAnimation({ container: a, attr: t, el: this.getContainer(e) || "group", component: this, label: "group" })) }, a.createGroup = function(e, t, a, i) { return void 0 === i && (i = "group"), this.getFromEnv("animationManager").setAnimation({ container: a, attr: t, el: this.config[e] || "group", component: this, label: i }) }, a.getValuePadding = function() { var e = this.config; return { left: e.startPad, right: e.endPad } }, a.draw = function() { var e, t, a, i, n = this.config,
                            o = this.getFromEnv("chart").config,
                            r = n.isVertical,
                            l = o.viewPortConfig,
                            s = this.getChildren().limitUpdater,
                            c = n.viewPortRatio || {};
                        this._createContainer(), a = l.y * l.scaleY, i = l.x * l.scaleX, c.scaleX && c.scaleY && (c.scaleX !== l.scaleX || c.scaleY !== l.scaleY) ? (c.scaleX = l.scaleX, c.scaleY = l.scaleY, this._drawComponents()) : (r ? (t = a - l.y * l.scaleY, n.axisContainer.transform("t0," + t), n.axisLabelContainerTop.transform("t0," + t)) : (e = i - l.x * l.scaleX, n.axisContainer.transform("t" + e + ",0"), n.axisLabelContainerTop.transform("t" + e + ",0")), this._drawComponents()), this.addExtEventListener("animationcomplete", (function() { s && s.forEach((function(e) { e.draw() })) }), this.getFromEnv("animationmanager")), this.addToEnv("prevScale", this.getScale().copy()) }, a.setScale = function(e) { this.config.scale = e }, a.getScale = function() { return this.config.scale }, a.getLimit = function() { var e = this.config.axisRange; return { min: e.min, max: e.max, tickInterval: e.tickInterval } }, a.getVisibleConfig = function() { var e = this.config; return { minValue: e.visibleMin, maxValue: e.visibleMax } }, a.setAxisConfig = function(e) { var t, a = this.config; for (t in e) e.hasOwnProperty(t) && (a[t] = e[t]) }, a.getAxisConfig = function(e) { var t = this.config; return e ? t[e] : t }, a.getVisibleLength = function() { var e = this.getVisibleConfig(); return Math.abs(e.maxValue - e.minValue) }, a.getAxisEndLabelDisplaySpace = function() { return this.config.axisEndLabelDisplaySpace || {} }, a.getTicksLen = function() { var e = this.config.tickValues; return e && e.tickValue.length || 0 }, t }(o.ComponentInterface);
            t["default"] = s },
        494: function(e, t, a) { "use strict";
            t.__esModule = !0, t.axisAnimationFinal = t.axisAnimationAxis = t.appearingFinal = t.appearingAxis = t["default"] = void 0; var i = [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "axis" }],
                n = [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }],
                o = { "text.appearing": n, "path.appearing": n, "rect.appearing": n },
                r = { "text.appearing": i, "path.appearing": i, "rect.appearing": i, "scrollbar.appearing": i };
            t.axisAnimationAxis = r, t.axisAnimationFinal = o, t.appearingFinal = n, t.appearingAxis = i; var l = { "initial.axis.numeric": r, "initial.axis.category": r, "initial.axis.log": r, "update.axis.numeric": o, "update.axis.category": o, "update.axis.log": o };
            t["default"] = l },
        495: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e, t) { return e.filter((function(e) { return t.indexOf(e) < 0 })) };
            t["default"] = i },
        496: function(e, t, a) { var i = a(497),
                n = a(311)((function(e, t, a) { for (var n = [], o = 0, r = t.length; o < r;) i(e, t[o], a) || i(e, t[o], n) || n.push(t[o]), o += 1; return n }));
            e.exports = n },
        497: function(e, t) { e.exports = function(e, t, a) { for (var i = 0, n = a.length; i < n;) { if (e(t, a[i])) return !0;
                    i += 1 } return !1 } },
        498: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t._parseLabel = t.extractStyleInfo = t.getLabel = t.setAxisPadding = t._createContainer = t.shiftLabels = t.setTickValues = t._drawLabel = t.getPixel = t.getTrendLineLimits = t.setDataLimit = t.setAxisDimention = void 0; var n = i(a(499)),
                o = i(a(464)),
                r = a(215),
                l = { wrtVisible: !0 },
                s = function(e, t) { var a, i, n, o, l, s, c, h = { labelfont: ["fontFamily"], labelfontcolor: ["fontColor"], labelfontsize: ["fontSize", function(e) { return e ? (0, r.pluckNumber)(e) + "px" : r.UNDEF }], labelfontbold: ["fontWeight", function(e) { return e ? "bold" : "normal" }], labelfontitalic: ["fontStyle", function(e) { return e ? "italic" : "normal" }], labelfontalpha: ["fontAlpha"] },
                        u = t.getFromEnv("dataSource").categories,
                        d = u && u[0] || {},
                        g = function(e) { return e },
                        p = !1,
                        f = {}; for (a in d) "category" === a || a in e || (i = d[a], e[a] = i); for (a in h) l = (o = h[a])[0], s = o[1] || g, i = e[a], n = e[l.toLowerCase()], i === r.UNDEF && n === r.UNDEF || (c = s(i)) === r.UNDEF && (c = s(n)) === r.UNDEF || (f[l] = c, p = !0), p && (e.style = f) };
            t.getLabel = function(e) { var t = this.config,
                    a = t.tickValues && t.tickValues.tickValue[e],
                    i = {}; return a && a.tooltext && (i.label = a.label, a.tooltext = (0, r.parseTooltext)(a.tooltext, [3], i)), { label: a && (a.oriLabel || a.label), tooltext: a && a.tooltext } }, t.setAxisPadding = function(e, t) { void 0 === e && (e = 0), void 0 === t && (t = 0); var a, i = this.config,
                    n = e,
                    o = t,
                    r = this.getScale().getDomain(),
                    l = r[0],
                    s = r[1];
                1 === i.oriCatLen && (0 === n && (n = .5), 0 === o && (o = .5)), a = n - i.startPad, i.startPad = Math.max(i.startPad, n), i.endPad = Math.max(i.endPad, o), a > 0 && (i.setPadding = !0, this._setAxisRange({ min: l - a, max: s + a })), i.tickValues || i.originalMax && i.originalMin && this.setDataLimit(i.originalMax, i.originalMin) }, t._createContainer = function() { var e, t, a, i, n, o = this.config,
                    r = o.isVertical,
                    l = this.getLinkedParent().getChildContainer(),
                    s = l.axisBottomGroup,
                    c = l.axisTopGroup,
                    h = -this.getTranslation(),
                    u = r ? "T0," + h : "T" + h + ",0";
                t = this.createContainer("axisNameGroup", { name: "dataset-Name-group" }, s), e = this.createContainer("axisLineGroup", { name: "axis-Line-group" }, c), a = this.createContainer("axisTrendGroupTop", { name: "dataset-Trend-group-top" }, c), i = this.createContainer("axisLabelGroup", { name: "dataset-Label-group" }, s), n = this.createContainer("axisLabelGroupTop", { name: "dataset-Label-group" }, c), o.axisContainer = this.createGroup("axisContainer", { name: "dataset-axis", transform: u }, i), o.axisLabelContainerTop = this.createGroup("axisLabelContainerTop", { name: "dataset-top-label", transform: u }, n), o.axisAxisLineContainer = this.createGroup("axisAxisLineContainer", { name: "axis-line-tick" }, e), o.axisTrendLabelContainer = this.createGroup("axisTrendLabelContainer", { name: "dataset-axis-trend-label" }, a), o.axisNameContainer = this.createGroup("axisNameContainer", { name: "dataset-axis-name" }, t), o.axisAxisLineContainerBottom = this.createGroup("axisAxisLineContainerBottom", { name: "axis-line-tick-bottom" }, s) }, t.shiftLabels = function(e, t) { var a = this.config.labels;
                a.shiftX = e, a.shiftY = t }, t.setTickValues = function(e) { var t, a, i, n = e && e.length,
                    o = this.config,
                    l = o.startPad || 0,
                    c = this.getFromEnv("chart"),
                    h = 0,
                    u = o.tickValues = {},
                    d = u.tickValue = [],
                    g = u.vline = [],
                    p = u.tickIdMap = {},
                    f = o.endPad || 0; for (o.hasCategory = 1, t = 0; t < n; t += 1) i = (a = (0, r.extend2)({}, e[t])).id || "" === a.id, a.vline ? (a.startIndex = d.length - 1, g.push(a)) : (i && (p[a.id.toLowerCase()] = { tickObj: a, index: h }), (o.mapTickValuesById && i || !o.mapTickValuesById) && (s(a, c), d.push(a), d[h].label = (0, r.parseUnsafeString)(d[h].label), h += 1));
                o.oriCatLen = h, this._setAxisRange({ max: Number((0, r.toPrecision)(h - 1 + f, 10)), min: Number((0, r.toPrecision)(0 - l, 10)), tickInterval: Number((0, r.toPrecision)(1, 10)) }) }, t._parseLabel = function() { var e, t, a, i, n, o, s, c, h, u, d, g, p, f, m, v, b = this,
                    x = b.config,
                    y = b.getLinkedItem("canvas").getEffectiveDimensions(),
                    C = x.axisDimention,
                    k = b.getFromEnv("chart"),
                    S = k.config,
                    w = x.axisRange,
                    L = x.isOpposit,
                    A = x.labels,
                    N = b.components,
                    E = N.labels,
                    T = A.style,
                    F = k.getFromEnv("smartLabel"),
                    _ = x.isVertical,
                    P = w.max,
                    D = w.min,
                    I = b.getFromEnv("number-formatter"),
                    M = y.top,
                    O = y.left,
                    R = M + y.height,
                    B = O + y.width,
                    V = x.labelPadding,
                    G = x.extremeLabels,
                    z = _ ? C.x : C.y,
                    H = C.opposite,
                    W = x.labelMaxH,
                    j = x.labelMaxW,
                    U = w.tickInterval,
                    q = Math.abs(b.getPixel(D, l) - b.getPixel(D + U, l)),
                    Y = [],
                    X = x.ticks,
                    K = 0,
                    Z = x.isReverse,
                    J = (0, r.pluckNumber)(b.getFromEnv("chart-attrib").showzeroplanevalue),
                    $ = !0,
                    Q = b.getLimit(); if (F.useEllipsesOnOverflow(S.useEllipsesWhenOverflow), F.setStyle({ fontSize: T.fontSize, fontFamily: T.fontFamily, lineHeight: T.lineHeight, fontWeight: T.fontWeight }), (i = T.lineHeight) && -1 !== i.indexOf("px") && (i = parseFloat(i.replace("px", ""))), 0 === J && ($ = !1), x.labels.isDraw) { var ee; if (x.drawLabelsOpposit && (L = !L, z = H), h = { fill: T.color, "line-height": i, "font-size": T.fontSize, opacity: 1, cursor: T.labelLink ? "pointer" : "" }, a = x.labels.rotation, _ ? (x.labelMaxH > q && !x.tickValues && (s = Math.ceil(x.labelMaxH / q)), h["text-anchor"] = L ? r.POSITION_START : r.POSITION_END) : (x.labelMaxW > q && !x.tickValues && (s = Math.ceil(x.labelMaxW / q)), a ? (h["text-anchor"] = L ? r.POSITION_START : r.POSITION_END, h["vertical-align"] = "middle") : h["vertical-align"] = L ? r.POSITION_BOTTOM : r.POSITION_TOP, d = O, g = S.width - B), s > x.labels.step && (x.labels.step = s), c = x.numberFormatterFn ? I[x.numberFormatterFn] : x.isPercent ? I.yAxisPercentValue : _ ? I.yAxis : I.xAxis, G.firstLabel = {}, G.lastLabel = {}, v = X.filter((function(e, t, a) { return 0 !== e || x.showZeroPlaneValue ? !(!_ && (x.isReverse ? 0 !== t : t !== a.length - 1) && b.getPixel(e, l) + x.labelMaxW > B) && !(t % x.labels.step != 0 && (!x.labels.drawLimitVal || 0 !== t && t !== a.length - 1) || (Y[K++] = t, 0)) : !(!$ || $ && Q.max !== e && Q.min !== e) && (Y[K++] = t, !0) })), x.isZeroTickForced && -1 !== v.indexOf(0)) K = 0, Y = [], m = b.getPixel(0), v = v.filter((function(e, t, a) { return ee = b.getPixel(e), 0 === a[t + 1] || 0 === a[t - 1] ? _ ? !(ee + W >= m && m >= ee - W) && (Y[K++] = t, !0) : !(ee + j >= m && m >= ee - j) && (Y[K++] = t, !0) : (Y[K++] = t, !0) })); for (n = (_ ? j : q / 2) * x.labels.step, o = _ ? q / 2 : W, N.labelIndexArr = Y.slice(), e = 0, t = v.length; e < t; e += 1) p = v[e], E[Y[e]] = E[Y[e]] || { config: { props: { label: {} } } }, u = Object.assign({}, h), f = r.UNDEF, (x.labels.drawNormalVal || p === D || p === P) && (x.labels.drawLimitVal || p !== D && p !== P) ? p === D && x.lowerLimitDisplay && x.labels.drawLimitVal ? (f = F.getSmartText(x.lowerLimitDisplay, n, o + i / 2), u.text = f.text, u.tooltext = f.tooltext) : p === P && x.upperLimitDisplay && x.labels.drawLimitVal ? (f = F.getSmartText(x.upperLimitDisplay, n, o + i / 2), u.text = f.text, u.tooltext = f.tooltext) : (u.text = r.BLANKSTRING + c.call(I, p, x.axisIndex), f = F.getOriSize(u.text)) : u.text = r.BLANKSTRING, _ ? (u.x = L ? (z || B) + V : (z || O) - V, u.y = b.getPixel(p, l), (Z && p === D && x.lowerLimitDisplay || !Z && p === P && x.upperLimitDisplay) && f && f.height > i && (u["vertical-align"] = r.POSITION_BOTTOM), (Z && p === P && x.upperLimitDisplay || !Z && p === D && x.lowerLimitDisplay) && f && f.height > i && (u["vertical-align"] = r.POSITION_TOP), x.placeValuesInside && (u["text-anchor"] = L ? r.POSITION_END : r.POSITION_START)) : (u.x = b.getPixel(p, l), u.y = L ? (z || M) - V : (z || R) + V, (!Z && p === D || Z && p === P) && f && f.width > 2 * d && (u["text-anchor"] = r.POSITION_START), (!Z && p === P || Z && p === D) && f && f.width > 2 * g && (u["text-anchor"] = r.POSITION_END), x.placeValuesInside ? u["vertical-align"] = L ? r.POSITION_TOP : r.POSITION_BOTTOM : u["vertical-align"] = L ? r.POSITION_BOTTOM : r.POSITION_TOP), u["text-bound"] = void 0 === p ? [] : [(0, r.pluck)(T.backgroundColor, r.BLANKSTRING), (0, r.pluck)(T.borderColor, r.BLANKSTRING), (0, r.pluck)(T.borderThickness, r.BLANKSTRING), (0, r.pluck)(T.borderPadding, 0), (0, r.pluck)(T.borderRadius, 0), (0, r.pluck)(T.borderDash, "none")], A.shiftX && (u.x += A.shiftX), A.shiftY && (u.y += A.shiftY), u.transform = (0, r.getSuggestiveRotation)(a, u.x, u.y), E[Y[e]].config.props.label.attr = u } }, t._drawLabel = function() { var e, t, a, i, o, r, l, s, c, h, u, d = this.config,
                    g = this.getFromEnv("animationManager"),
                    p = this.getFromEnv("toolTipController"),
                    f = d.axisRange,
                    m = d.labels.style,
                    v = this.components,
                    b = f.max,
                    x = f.min,
                    y = d.axisContainer,
                    C = d.extremeLabels,
                    k = d.ticks,
                    S = [],
                    w = { fontFamily: m.fontFamily, fontSize: m.fontSize, fontWeight: m.fontWeight, fontStyle: m.fontStyle, lineHeight: m.lineHeight }; if (d.labels.isDraw)
                    for (u = v.labels, h = v.labelIndexArr, y.css(w), t = 0, a = h && h.length; t < a; t += 1) o = (s = k[e = h[t]]) + "_label", i = this.getGraphicalElement(o), l = u[e].config.props.label.attr, i = this.addGraphicalElement(o, g.setAnimation({ el: i || "text", attr: l, container: y, data: { value: s }, component: this, label: "text" })), l.tooltext ? p.enableToolTip(i, l.tooltext) : p.disableToolTip(i), s === b ? C.lastLabel.graphic = i : s === x && (C.firstLabel.graphic = i), S.push(o); for (e = 0, a = (c = (0, n["default"])(d.prevIntervalArr, S)).length; e < a; e++)(r = this.getGraphicalElement(c[e])) && this.removeGraphicalElement(r);
                d.prevIntervalArr = S }, t.getPixel = function(e) { return this.getScale().getRangeValue(e) }, t.getTrendLineLimits = function() { var e, t, a, i, n = this.config,
                    l = n.trendLines || n.vTrendLines || n.trendPoints,
                    s = l && l[0] && l[0].line || l && l.point; if (n.trendLimits) return n.trendLimits; var c = (0, o["default"])(s, (function(e) { return "" === e.startvalue ? r.UNDEF : Number(e.startvalue) }));
                e = c[0], t = c[1]; var h = (0, o["default"])(s, (function(e) { return "" === e.endvalue ? r.UNDEF : Number(e.endvalue) })); return a = h[0], i = h[1], n.trendLimits = (0, o["default"])([e, t, a, i], (function(e) { return Number(e) })), n.trendLimits }, t.setDataLimit = function(e, t) { var a, i, n, l, s = e,
                    c = t,
                    h = this.config,
                    u = this.getFromEnv("dataSource").categories,
                    d = u && u[0] && u[0].category,
                    g = h.startPad || 0,
                    p = h.endPad || 0,
                    f = h.xAxisLabelMode; if ("categories" === f || "mixed" === f) { var m = (0, o["default"])(d, (function(e) { return Number(e.x) }));
                    a = m[0], i = m[1] } var v = this.getTrendLineLimits();
                n = v[0], l = v[1]; var b = (0, o["default"])([n, l, a, i, c, s], (function(e) { return Number(e) }));
                c = b[0], s = b[1], h.originalMax = s, h.originalMin = c, s = h.isPercent ? 100 : s + p, c = h.isPercent ? 0 : c - g, this._setAxisRange({ min: c, max: s }), h.axisRange.tickInterval !== r.UNDEF && this._adjustNumberFormatter(h.axisRange.tickInterval) }, t.setAxisDimention = function(e) { var t = this.getScale(),
                    a = this.config,
                    i = this.getFromEnv("chart").config,
                    n = a.axisDimention || (a.axisDimention = {}),
                    o = a.isReverse;
                n.opposite = (0, r.pluckNumber)(e.opposite, n.opposite), n.x = (0, r.pluckNumber)(e.x, n.x, i.canvasLeft), n.y = (0, r.pluckNumber)(e.y, n.y, i.canvasTop), n.axisLength = (0, r.pluckNumber)(e.axisLength, n.axisLength), a.isVertical ? o ? t.setRange([n.y + n.axisLength, n.y]) : t.setRange([n.y, n.y + n.axisLength]) : o ? t.setRange([n.x + n.axisLength, n.x]) : t.setRange([n.x, n.x + n.axisLength]), a.translation = this._computeTranslation() }, t.extractStyleInfo = s },
        499: function(e, t, a) { var i = a(500),
                n = a(307)((function(e, t) { for (var a = [], n = 0, o = e.length; n < o;) i(e[n], t) || i(e[n], a) || (a[a.length] = e[n]), n += 1; return a }));
            e.exports = n },
        500: function(e, t, a) { var i = a(501);
            e.exports = function(e, t) { return i(t, e, 0) >= 0 } },
        501: function(e, t, a) { var i = a(502);
            e.exports = function(e, t, a) { var n, o; if ("function" == typeof e.indexOf) switch (typeof t) {
                    case "number":
                        if (0 === t) { for (n = 1 / t; a < e.length;) { if (0 === (o = e[a]) && 1 / o === n) return a;
                                a += 1 } return -1 } if (t != t) { for (; a < e.length;) { if ("number" == typeof(o = e[a]) && o != o) return a;
                                a += 1 } return -1 } return e.indexOf(t, a);
                    case "string":
                    case "boolean":
                    case "function":
                    case "undefined":
                        return e.indexOf(t, a);
                    case "object":
                        if (null === t) return e.indexOf(t, a) }
                for (; a < e.length;) { if (i(e[a], t)) return a;
                    a += 1 } return -1 } },
        502: function(e, t, a) { var i = a(307),
                n = a(503),
                o = i((function(e, t) { return n(e, t, [], []) }));
            e.exports = o },
        503: function(e, t, a) { var i = a(504),
                n = a(497),
                o = a(505),
                r = a(314),
                l = a(506),
                s = a(507),
                c = a(509);

            function h(e, t, a, o) { var r = i(e),
                    l = i(t);

                function s(e, t) { return u(e, t, a.slice(), o.slice()) } return !n((function(e, t) { return !n(s, t, e) }), l, r) }

            function u(e, t, a, i) { if (l(e, t)) return !0; var n = c(e); if (n !== c(t)) return !1; if (null == e || null == t) return !1; if ("function" == typeof e["fantasy-land/equals"] || "function" == typeof t["fantasy-land/equals"]) return "function" == typeof e["fantasy-land/equals"] && e["fantasy-land/equals"](t) && "function" == typeof t["fantasy-land/equals"] && t["fantasy-land/equals"](e); if ("function" == typeof e.equals || "function" == typeof t.equals) return "function" == typeof e.equals && e.equals(t) && "function" == typeof t.equals && t.equals(e); switch (n) {
                    case "Arguments":
                    case "Array":
                    case "Object":
                        if ("function" == typeof e.constructor && "Promise" === o(e.constructor)) return e === t; break;
                    case "Boolean":
                    case "Number":
                    case "String":
                        if (typeof e != typeof t || !l(e.valueOf(), t.valueOf())) return !1; break;
                    case "Date":
                        if (!l(e.valueOf(), t.valueOf())) return !1; break;
                    case "Error":
                        return e.name === t.name && e.message === t.message;
                    case "RegExp":
                        if (e.source !== t.source || e.global !== t.global || e.ignoreCase !== t.ignoreCase || e.multiline !== t.multiline || e.sticky !== t.sticky || e.unicode !== t.unicode) return !1 } for (var d = a.length - 1; d >= 0;) { if (a[d] === e) return i[d] === t;
                    d -= 1 } switch (n) {
                    case "Map":
                        return e.size === t.size && h(e.entries(), t.entries(), a.concat([e]), i.concat([t]));
                    case "Set":
                        return e.size === t.size && h(e.values(), t.values(), a.concat([e]), i.concat([t]));
                    case "Arguments":
                    case "Array":
                    case "Object":
                    case "Boolean":
                    case "Number":
                    case "String":
                    case "Date":
                    case "Error":
                    case "RegExp":
                    case "Int8Array":
                    case "Uint8Array":
                    case "Uint8ClampedArray":
                    case "Int16Array":
                    case "Uint16Array":
                    case "Int32Array":
                    case "Uint32Array":
                    case "Float32Array":
                    case "Float64Array":
                    case "ArrayBuffer":
                        break;
                    default:
                        return !1 } var g = s(e); if (g.length !== s(t).length) return !1; var p = a.concat([e]),
                    f = i.concat([t]); for (d = g.length - 1; d >= 0;) { var m = g[d]; if (!r(m, t) || !u(t[m], e[m], p, f)) return !1;
                    d -= 1 } return !0 } e.exports = u },
        504: function(e, t) { e.exports = function(e) { for (var t, a = []; !(t = e.next()).done;) a.push(t.value); return a } },
        505: function(e, t) { e.exports = function(e) { var t = String(e).match(/^function (\w*)/); return null == t ? "" : t[1] } },
        506: function(e, t, a) { var i = a(307)((function(e, t) { return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t }));
            e.exports = i },
        507: function(e, t, a) { var i = a(308),
                n = a(314),
                o = a(508),
                r = !{ toString: null }.propertyIsEnumerable("toString"),
                l = ["constructor", "valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"],
                s = function() { "use strict"; return arguments.propertyIsEnumerable("length") }(),
                c = function(e, t) { for (var a = 0; a < e.length;) { if (e[a] === t) return !0;
                        a += 1 } return !1 },
                h = i("function" != typeof Object.keys || s ? function(e) { if (Object(e) !== e) return []; var t, a, i = [],
                        h = s && o(e); for (t in e) !n(t, e) || h && "length" === t || (i[i.length] = t); if (r)
                        for (a = l.length - 1; a >= 0;) n(t = l[a], e) && !c(i, t) && (i[i.length] = t), a -= 1; return i } : function(e) { return Object(e) !== e ? [] : Object.keys(e) });
            e.exports = h },
        508: function(e, t, a) { var i = a(314),
                n = Object.prototype.toString;
            e.exports = function() { return "[object Arguments]" === n.call(arguments) ? function(e) { return "[object Arguments]" === n.call(e) } : function(e) { return i("callee", e) } } },
        509: function(e, t, a) { var i = a(308)((function(e) { return null === e ? "Null" : e === undefined ? "Undefined" : Object.prototype.toString.call(e).slice(8, -1) }));
            e.exports = i },
        510: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(491)),
                r = i(a(489)),
                l = i(a(511)),
                s = a(215),
                c = a(498),
                h = s.preDefStr.POSITION_START,
                u = s.preDefStr.POSITION_MIDDLE,
                d = s.preDefStr.POSITION_TOP,
                g = s.preDefStr.POSITION_BOTTOM,
                p = s.preDefStr.POSITION_END,
                f = { wrtVisible: !0 },
                m = function(e) {
                    function t() { var t; return (t = e.call(this) || this).config.scale = new l["default"], t }(0, n["default"])(t, e); var a = t.prototype; return a.getName = function() { return "category" }, a.getCategoryFromId = function(e) { var t = this.config.tickValues; return (t && t.tickIdMap)[e] || {} }, a.generateTicks = function() { var e = this.getScale(),
                            t = this.config,
                            a = e.getDomain(),
                            i = t.categoryNumDivLines + 1,
                            n = (a[1] - a[0]) / i,
                            o = t.axisRange,
                            l = o.min,
                            s = o.max,
                            c = (s - l) / i; return t._allTicks = (0, r["default"])(l, s, c).concat(s), o.tickInterval = c, (0, r["default"])(a[0], a[1], n).concat(a[1]) }, a._parseCategoryVline = function() { var e, t, a, i, n, o, r, l, c, f, m, v, b, x, y, C, k, S, w, L, A, N, E, T, F, _, P, D, I, M, O = this.config,
                            R = O.axisRange,
                            B = R.min,
                            V = R.max,
                            G = this.getFromEnv("chart").config,
                            z = G.style || {},
                            H = O.isVertical,
                            W = { fontFamily: G.style.inCanfontFamily, fontSize: G.style.inCanfontSize, color: G.style.inCancolor, lineHeight: G.style.inCanLineHeight }; for (a = (t = O.tickValues.vline).length, P = 1 !== this.getZoom(), D = this.getVisibleConfig(), o = 0; o < a; o++) i = t[o], n = (0, s.parseUnsafeString)(i.label), r = Boolean((0, s.pluckNumber)(i.showlabelborder, O.showVLineLabelBorder, 1)), e = Boolean((0, s.pluckNumber)(i.showlabelbackground, 1)), "center" === (l = (0, s.pluck)(i.labelhalign, H ? h : u)) ? l = u : "left" === l ? l = h : "right" === l && (l = p), (c = (0, s.pluck)(i.labelvalign, H ? u : g).toLowerCase()) === u ? c = u : c === d ? c = g : c === g && (c = d), f = (0, s.pluckNumber)(i.labelposition, 0), m = (0, s.pluckNumber)(i.lineposition, .5), v = (0, s.pluckNumber)(i.showvlines, O.showVLines, 1), b = (0, s.pluckNumber)(i.alpha, O.vLineAlpha, 80), x = (0, s.pluck)(i.color, O.vLineColor).replace(/^#?/, "#"), y = e ? (0, s.pluck)(i.labelbgcolor, O.vLineLabelBgColor, "333333").replace(/^#?/, "#") : s.BLANKSTRING, T = (0, s.pluck)(i.labelcolor, O.vLineLabelColor, i.color, z.inCancolor, O.vLineColor).replace(/^#?/, "#"), C = (0, s.pluckNumber)(i.thickness, O.vLineThickness, 1), 2, k = Boolean(Number((0, s.pluck)(i.dashed, 0))), S = (0, s.pluckNumber)(i.dashlen, 5), L = (0, s.pluckNumber)(i.dashgap, 2), w = W.fontSize, w = parseInt(w.replace(/px/i, ""), 10), F = (0, s.pluckNumber)(i.rotatelabel, O.rotateVLineLabels) ? 270 : 0, m = m < 0 || m > 1 ? .5 : m, f = f < 0 || f > 1 ? 0 : f, x = (0, s.convertColor)(x, v ? b : "0"), M = i.animate && !H ? i.startIndex + 1 : i.startIndex, _ = this._getVlinePos(M, m) - (i.animate ? i.leftShift : 0), P && (_ < D.minValue || _ > D.maxValue) || _ < B || _ > V || (A = { opacity: 1, stroke: x, "stroke-width": C, "stroke-dasharray": k ? (0, s.getDashStyle)(S, L) : "none" }, E = { opacity: 1, text: n, "text-anchor": l, "vertical-align": c, "text-bound": [] }, N = { fontSize: W.fontSize, fontFamily: W.fontFamily, lineHeight: W.lineHeight }, I = { from: _, layer: (0, s.pluckNumber)(i.showontop, O.showVLinesOnTop, 0) ? 3 : 2, attr: A, type: "line", startIndex: i.startIndex, linePosition: m }, n && (E["text-bound"] = [y, v && r ? x : s.BLANKSTRING, v && r ? 1 : 0, 2, s.UNDEF, v && r ? "solid" : s.BLANKSTRING], E.fill = v ? T : x, I.text = { label: n, attr: E, layer: 4, labelRotation: F, labelPosition: f, css: N }), this.setReferenceInfo(I), this.config.parsedVlineInfo.push(I)) }, a._parseReferenceVisuals = function() { e.prototype._parseReferenceVisuals.call(this), this.config.drawPlotlines && this._parseCategoryVline() }, a.categoryInsert = function(e, t, a) { var i, n, o, r, l, c = e,
                            h = this.config,
                            u = h.axisRange.min,
                            d = t.length,
                            g = h.endPad || 0; for (i = h.tickValues.tickValue, o = h.tickValues.tickIdMap, n = h.tickValues.vline, r = 0; r < d; r += 1) "true" !== (l = (0, s.extend2)({}, t[r])).vline && !0 !== l.vline && 1 !== l.vline && "1" !== l.vline ? (l.id && (o[l.id] = { tickObj: l, i: c }), i.splice(c, 0, l), c += 1) : (l.startIndex = c - 2, n.push(l));
                        a && this._setAxisRange({ min: u, max: Number((0, s.toPrecision)(i.length - 1 + g, 10)) }) }, a.categoryDelete = function(e, t, a) { var i, n, o, r = this.config,
                            l = r.axisRange,
                            s = l.min; for (n = 0, o = (i = r.tickValues.vline).length; n < o; n++) i[n].animate = !0, i[n].leftShift = t;
                        r.tickValues.tickValue.splice(e, t), this._shiftVline(e, t, "left"), a && this._setAxisRange({ min: s, max: l.max - t }) }, a._shiftVline = function(e, t, a) { var i, n, o = this.config,
                            r = o.tickValues.vline,
                            l = o.tickValues.tickValue.length,
                            s = r.length; for (i = 0; i < s; i += 1)(n = r[i]).startIndex >= e && ("right" === a ? n.startIndex += t : n.startIndex -= t, (n.startIndex < 0 || n.startIndex >= l) && (r.splice(i, 1), s -= 1, i -= 1)) }, a.categoryTranslate = function(e) { var t, a = e,
                            i = this.config;
                        a = (a || 0) * (this.getPixel(1, f) - this.getPixel(0, f)), i.isReverse && (a = -a), t = ["T", a, ",", "0"].join(""), this.realTimeTranslatableGroups = [{ group: i.axisContainer, translationStr: t }, { group: i.axisTrendLabelContainer, translationStr: t }] }, a.updateTicksValues = function(e, t) { var a, i, n, o, r, l, s, c = this.config,
                            h = c.parsedVlineInfo; if ((a = c.tickValues.tickValue)[e])
                            for (s in t) t.hasOwnProperty(s) && ("x" === s && (i = !0), a[e][s] = t[s]); if (i)
                            for (o = 0, r = h.length; o < r; ++o)
                                if ((l = (n = h[o]).startIndex) === e) n.from = this._getVlinePos(l, n.linePosition);
                                else if (l + 1 === e) { n.from = this._getVlinePos(l, n.linePosition); break } }, a._getVlinePos = function(e, t) { var a, i, n, o = this.getTickValues(),
                            r = this.config,
                            l = this.getLimit(),
                            c = l.min,
                            h = l.max,
                            u = o[e],
                            d = o[e + 1]; return u ? d || (a = o[0] && o[0].x ? h : r.oriCatLen - 1, n = !0) : (a = o[0] && o[0].x ? c : -1, n = !0), i = n ? t : ((a = (0, s.pluckNumber)(u.x, u.y, e)) - (0, s.pluckNumber)(d.x, d.y, e + 1)) * t, a + Math.abs(i) }, a.getInterval = function() { if (this) return 1 }, a._setAxisRange = function(e) { var t, a, i = e.min,
                            n = e.max,
                            o = this.config,
                            l = o.axisRange,
                            c = o.periodLength,
                            h = o.dataLimit,
                            u = h.max,
                            d = h.min;
                        i > n || (u === n && d === i || (t = !0), o.visibleMin === s.UNDEF || o.setPadding || t ? (h.max = n, h.min = i, c && (o.categoryNumDivLines = (n - i) / c - 1), a = (n - i) / (o.categoryNumDivLines + 1), this.getScale().setDomain([i, n]), o.ticks = (0, r["default"])(i, n, a).concat(n), o._allTicks = o.ticks.slice(), l.min = i, l.max = n, l.tickInterval = a, this.setVisibleConfig(l.min, l.max)) : o.setPadding = !1) }, t }(o["default"]);
            m.prototype.setTickValues = c.setTickValues; var v = m;
            t["default"] = v },
        511: function(e, t, a) { "use strict"; var i = a(212),
                n = a(208);
            t.__esModule = !0, t["default"] = void 0; var o = n(a(229)),
                r = i(a(468)),
                l = n(a(461)),
                s = function(e) {
                    function t() { return e.call(this, r.deInterpolateLinear, l["default"]) || this } return (0, o["default"])(t, e), t.prototype.copy = function() { return (0, r.copyScale)(this, new t) }, t }(r["default"]);
            t["default"] = s },
        512: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t, a = e._parseCanvasCosmetics && e._parseCanvasCosmetics(); if ((0, r.componentFactory)(e, n["default"], "canvas", e.config.showVolumeChart ? 2 : 1), t = e.getChildren("canvas"))
                    for (var i = 0, l = t.length; i < l; i++) t[i].configure(a), (0, r.componentFactory)(t[i], o["default"], "axisRefVisualCartesian") }; var n = i(a(449)),
                o = i(a(513)),
                r = a(215) },
        513: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(230),
                r = i(a(461)),
                l = i(a(495)),
                s = a(492),
                c = i(a(514)),
                h = a(223);
            (0, h.addDep)({ name: "cartesianAxisRefAnimation", type: "animationRule", extension: c["default"] }); var u = function(e) {
                function t() { var t; return (t = e.call(this) || this).config.map = {}, t.config.explicitDrawItems = {}, t }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "axisRefVisuals" }, a.getName = function() { return "axisRefVisualsCartesian" }, a.draw = function() { var e, t, a, i, n, o, r, l = this.getDrawingInfo(),
                        s = this.getexplicitDrawItems(),
                        c = this.config,
                        h = c.map,
                        u = {},
                        d = this.getLinkedParent(),
                        g = d.getAxes(),
                        p = [],
                        f = d.getChildContainer("axisReferenceVisualsFloor"),
                        m = d.getChildContainer("axisReferenceVisualsBottom"),
                        v = d.getChildContainer("axisReferenceVisualsMiddle"),
                        b = d.getChildContainer("axisReferenceVisualsTop"),
                        x = d.getChildContainer("axisReferenceVisualsCeil"); for (d.config.trendlines = [], d.config.vtrendlines = [], t = 0; t < g.length; ++t) p.push(g[t].axis.getId()); for (i in c.containers = [f, m, v, b, x], l)
                        if (l.hasOwnProperty(i) && (n = this.getLinkedItem(i), p.indexOf(n.getId()) >= 0))
                            for ((o = u[i]) || (o = u[i] = []), e = l[i], t = 0; t < e.length; ++t) "band" === (a = (r = e[t]).type) ? o.push.apply(o, this.createBand(r, n)) : "line" === a && o.push.apply(o, this.createLine(r, n)); if (c.isSmartDrawing)
                        for (i in h) h.hasOwnProperty(i) && !s[i] && this.getLinkedItem(i) && (u[i] = h[i]);
                    this.resetexplicitDrawItems(), this.removeExtraElements(u) }, a.getDrawingInfo = function() { var e, t, a = {},
                        i = this.getexplicitDrawItems(),
                        n = this.isCanvasChnaged(),
                        o = (this.config.isSmartDrawing = Object.keys(i).length && !n) ? i : this.getLinkedItem(); for (e in o) o.hasOwnProperty(e) && (t = o[e], a[e] = t.getReferenceInfo()); return a }, a.createLine = function(e, t) { var a, i, n, o, l = this.config.containers,
                        c = l[e.layer],
                        h = t.config,
                        u = this.getFromEnv("paper"),
                        d = this.getFromEnv("chart").getName(),
                        g = this.getLinkedParent(),
                        p = this.getFromEnv("animationManager"),
                        f = this.getFromEnv("toolTipController"),
                        m = g.config,
                        v = m.trendlines,
                        b = h.isVertical,
                        x = m.canvasLeft,
                        y = m.canvasTop,
                        C = y + m.canvasHeight,
                        k = x + m.canvasWidth,
                        S = (0, r["default"])(x, k),
                        w = (0, r["default"])(y, C),
                        L = t.getScale(),
                        A = L.getRangeValue(e.from),
                        N = void 0 !== e.to && L.getRangeValue(e.to) || A,
                        E = b ? ["M", x, A, "L", k, N] : ["M", A, C, "L", N, y],
                        T = e.attr,
                        F = e.text,
                        _ = F && F.attr,
                        P = F && F.labelPosition || 0,
                        D = t.getId(),
                        I = e.id || e.from,
                        M = D + "_" + I,
                        O = this.getGraphicalElement(M),
                        R = e.handlers,
                        B = { start: e.from, end: e.to }; for (n in T.path = (0, s.getCrispPath)(E, (o = T["stroke-width"], null !== o ? T["stroke-width"] : 1)).path.toString(), /trend/.test(e.id) && v.push({ x1: E[1], y1: E[2], x2: E[4], y2: E[5], tooltext: e.toolText, tolerance: T["stroke-width"] < 5 ? 2.5 : T["stroke-width"] / 2 }), T["stroke-linecap"] = "butt", (O = this.addGraphicalElement(M, p.setAnimation({ container: c, el: O || "path", attr: T, component: this, axis: t, data: { value: B, path: E }, label: "path" }))).data("data", B), F && (a = D + "_" + I + _.text, i = this.getGraphicalElement(a), b ? (_.x = S(P), _.y = A) : (_.x = A, _.y = w(P)), _.text = F.label, _.transform = u.getSuggestiveRotation(F.labelRotation, _.x, _.y), (i = this.addGraphicalElement(a, p.setAnimation({ container: l[F.layer], el: i || "text", attr: _, component: this, axis: t, data: { value: e.from }, label: "text", css: F.css }))).data("data", e.from)), /zoomscatter/i.test(d) || (e.toolText ? f.enableToolTip(O, e.toolText) : f.disableToolTip(O)), R) R.hasOwnProperty(n) && (O.on(n, R[n].bind(t)), i && i.on(n, R[n].bind(t))); return F ? [M, a] : [M] }, a.createBand = function(e, t) { var a, i, n, o, r, l, s = this.config.containers[e.layer],
                        c = t.config,
                        h = this.getFromEnv("animationManager"),
                        u = this.getFromEnv("toolTipController"),
                        d = this.getLinkedParent(),
                        g = this.getFromEnv("chart").getName(),
                        p = d.config,
                        f = c.isVertical,
                        m = p.canvasLeft,
                        v = p.canvasTop,
                        b = v + p.canvasHeight,
                        x = m + p.canvasWidth,
                        y = t.getScale(),
                        C = e.from,
                        k = void 0 !== e.to ? e.to : C,
                        S = t.getId(),
                        w = e.attr,
                        L = e.handlers; for (r in a = "canvasStart" === C ? f ? v : m : y.getRangeValue(C), i = "canvasEnd" === k ? f ? b : x : y.getRangeValue(k), l = Math.abs(a - i), f ? (w.x = m, w.y = Math.min(a, i), w.width = x - m, w.height = l) : (w.x = Math.min(a, i), w.y = v, w.width = l, w.height = b - v), n = S + "_" + (e.id || w.x + "_" + w.y), o = this.getGraphicalElement(n), /trend/.test(e.id) && d.config.vtrendlines.push({ x1: w.x, y1: w.y, x2: w.x + w.width, y2: w.y + w.height, tooltext: e.toolText, tolerance: w["stroke-width"] < 5 ? 2.5 : w["stroke-width"] / 2, isTrendZone: 1 }), o = this.addGraphicalElement(n, h.setAnimation({ container: s, el: o || "rect", attr: w, component: this, label: "rect" })), /zoomscatter/i.test(g) || (e.toolText ? u.enableToolTip(o, e.toolText) : u.disableToolTip(o)), L) L.hasOwnProperty(r) && o.on(r, L[r].bind(t)); return [n] }, a.removeExtraElements = function(e) { var t, a, i, n, o, r, s = this.config.map; for (t in s)
                        if (e[t])
                            for (n = (r = (0, l["default"])(s[t], e[t])).length, i = 0; i < n; ++i)(o = this.getGraphicalElement(r[i])) && this.removeGraphicalElement(o);
                        else
                            for (n = (a = s[t]).length, i = 0; i < n; ++i)(o = this.getGraphicalElement(a[i])) && this.removeGraphicalElement(o);
                    this.config.map = e }, a.setLinkedItem = function(t, a) { e.prototype.setLinkedItem.call(this, t, a); var i, n = this; "axis" === a.getType() && n.addExtEventListener("predraw", (function(e) {
                        (i = e.sender).getState("removed") && (n.removeLinkedItem(i.getId()), n.asyncDraw()) }), a) }, a.addexplicitDrawItems = function(e, t) { this.config.explicitDrawItems[e] = t }, a.getexplicitDrawItems = function() { return this.config.explicitDrawItems }, a.resetexplicitDrawItems = function() { this.config.explicitDrawItems = {} }, a.isCanvasChnaged = function() { var e, t = this.getLinkedParent().getEffectiveDimensions(),
                        a = this.config; return e = JSON.stringify(t) !== JSON.stringify(a.canvasDim), a.canvasDim = t, e }, t }(o.ComponentInterface);
            t["default"] = u },
        514: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = a(494),
                n = { "initial.axisRefVisuals.axisRefVisualsCartesian": i.axisAnimationAxis, "update.axisRefVisuals.axisRefVisualsCartesian": i.axisAnimationFinal };
            t["default"] = n },
        515: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t, a, i, r, l, s, c, h = e.getChildren("canvas"),
                    u = h.length,
                    d = [],
                    g = []; for (r = 0; r < u; r++, d = [], g = [])
                    if (!(t = h[r]).getState("removed")) { for (i = t.getFromEnv("xAxis"), s = 0; s < (i && i.length); s++) i[s].getState("removed") || d.push(i[s]); for (i = t.getFromEnv("yAxis"), s = 0; s < (i && i.length); s++) i[s].getState("removed") || g.push(i[s]); for ((0, o.componentFactory)(t, n["default"], "vCanvas", d.length * g.length), a = t.getChildren("vCanvas"), l = 0, s = 0; l < (d && d.length); l++)
                            for (c = 0; c < (g && g.length); c++, s++) a[s].xAxis(d[l]).yAxis(g[c]).canvas(t), a[s].configure(), a[s].addToEnv("vCanvas", a[s]) } }; var n = i(a(516)),
                o = a(215) },
        516: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(230),
                r = a(215),
                l = function(e, t) { var a = e; return a = "comp_" + a, t && (this.config[a] = t), (t || !this.config[a]) && this || this.config[a] },
                s = function(e, t) { return ["T", e, ",", t].join("") },
                c = function(e) { return -e.getTranslation() },
                h = function(e, t) { return { h: e, v: t } },
                u = ["columnShadowVcanvasGroup", "columnVcanvasGroup", "areaShadowVcanvasGroup", "areaVcanvasGroup", "lineShadowVcanvasGroup", "lineVcanvasGroup", "defaultShadowVcanvasGroup", "defaultVcanvasGroup", "sumLabelsLayer", "vcanvasLabelGroup"],
                d = function(e, t, a) { return a.getFromEnv("animationManager").setAnimation({ el: "group", attr: { name: e }, container: t, state: "appearing", component: a, label: "group" }) },
                g = function(e) { return !/category/i.test(e.getName()) },
                p = function(e) {
                    function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getName = function() { return "virtualCanvas" }, a.getType = function() { return "canvas" }, a.xAxis = function(e) { var t = l.call(this, "xAxis", e); return e && this.listenToAxis(e), e && this.addToEnv("xAxis", e), t }, a.yAxis = function(e) { var t = l.call(this, "yAxis", e); return e && this.listenToAxis(e), e && this.addToEnv("yAxis", e), t }, a.paper = function(e) { return l.call(this, "paper", e) }, a.canvas = function(e) { return l.call(this, "canvas", e) }, a.configure = function(e) { void 0 === e && (e = {}); var t = this.getFromEnv("chartConfig"),
                            a = this.config;
                        Object.assign(a, e), a.transposeAxis = t.transposeAxis, this._mapChildren((function(e) { e.getState("removed") || "dataset" === e.getType() || e.configure && e.configure() })) }, a.getHorizontalVerticalAxes = function() { var e = this.xAxis(),
                            t = this.yAxis(); return t.config.isVertical ? h(e, t) : h(t, e) }, a.preDraw = function() { this._mapChildren((function(e) { e.getState("removed") || "dataset" === e.getType() || e.setVisibility && e.setVisibility() })); var e, t = this.config.transposeAxis,
                            a = this.getFromEnv("chart"),
                            i = this.getAxisValuePadding(),
                            n = i.left,
                            o = i.right,
                            r = i.top,
                            l = i.bottom;
                        (e = this.getDataLimits(!t)).min !== Infinity || e.max !== -Infinity ? (this._setYAxisLimits(e.min, e.max), a._storeIntialLimit && a._storeIntialLimit(e.min, e.max)) : (this._setYAxisLimits(void 0, void 0), a._storeIntialLimit && a._storeIntialLimit(void 0, void 0)), this._setXAxisLimits(e.xMin, e.xMax), this._setAxisValuePadding(n, o, r, l) }, a.childChanged = function(e) { void 0 === e && (e = {}); var t, a = this.config,
                            i = a.transposeAxis;!1 !== e.dataLimitChanged && (t = this.getDataLimits(!i), !i || t.min === a.range.min && t.max === a.range.max || (a.range.min = t.min, a.range.max = t.max, this.getFromEnv("yAxis").resetStoredLimits(), t.min !== Infinity || t.max !== -Infinity ? this._setYAxisLimits(t.min, t.max) : this._setYAxisLimits(void 0, void 0)), t.xMin === a.range.xMin && t.xMax === a.range.xMax || (a.range.xMin = t.xMin, a.range.xMax = t.xMax, this.getFromEnv("xAxis").resetStoredLimits(), this._setXAxisLimits(t.xMin, t.xMax))), this.asyncDraw() }, a._setAxisValuePadding = function(e, t, a, i) { this.getFromEnv("xAxis").setAxisPadding(e, t), a && i && this.getFromEnv("yAxis").setAxisPadding(e, t) }, a.getAxisValuePadding = function() { var e = {},
                            t = -Infinity,
                            a = -Infinity,
                            i = -Infinity,
                            n = -Infinity; return this._mapChildren((function(o) { o.getState("removed") || (e = o.getAxisValuePadding && o.getAxisValuePadding() || {}, t = Math.max(t, e.left || -Infinity), a = Math.max(a, e.right || -Infinity), i = Math.max(i, e.top || -Infinity), n = Math.max(n, e.bottom || -Infinity)) })), t === -Infinity && (t = 0), a === -Infinity && (a = 0), i === -Infinity && (i = 0), n === -Infinity && (n = 0), this.config.padding || (this.config.padding = {}, this.config.padding.left = t, this.config.padding.right = a, this.config.padding.top = i, this.config.padding.bottom = n), { left: t, right: a, top: i, bottom: n } }, a._setYAxisLimits = function(e, t) { var a = this.getFromEnv("yAxis");
                        g(a) && a.setDataLimit(t, e) }, a._setXAxisLimits = function(e, t) { var a = this.getFromEnv("xAxis");
                        g(a) && (t !== -Infinity || e !== +Infinity ? a.setDataLimit(t, e) : a.setDataLimit(void 0, void 0)) }, a.getDataLimits = function(e) { var t, a, i, n = this.getFromEnv("chart"),
                            o = -Infinity,
                            l = +Infinity,
                            s = o,
                            c = l,
                            h = l,
                            u = o; return this._mapChildren((function(n) { var d;
                            n.getDataLimits && !n.getState("removed") && (e || n.getState("visible")) && (t = n.getDataLimits(e), d = t, a = (0, r.pluck)(d.xMax, o), i = (0, r.pluck)(d.xMin, l), s = Math.max(s, d.max), c = Math.min(c, d.min), u = Math.max(u, a), h = Math.min(h, i)) })), this.config.range || (this.config.range = {}, this.config.range.min = c, this.config.range.max = s, this.config.range.xMin = h, this.config.range.xMax = u), n.config.yMax = s, n.config.yMin = c, { min: c, max: s, xMin: h, xMax: u } }, a.listenToAxis = function(e) { var t, a = this;
                        t = function() { a.getState("drawn") && a.asyncDraw() }, this.getState("visiblerangeset" + e.getId()) || (this.setState("visiblerangeset" + e.getId(), !0), a.addExtEventListener("visiblerangeset", t, e)) }, a.createContainer = function() { var e = this.getLinkedParent();!this.getChildContainer("columnShadowVcanvasGroup") && this.addChildContainer("columnShadowVcanvasGroup", d("vcanvas-column-shadow", e.getChildContainer("columnShadowGroup"), this)), !this.getChildContainer("columnVcanvasGroup") && this.addChildContainer("columnVcanvasGroup", d("vcanvas-column-plot", e.getChildContainer("columnGroup"), this)), !this.getChildContainer("areaShadowVcanvasGroup") && this.addChildContainer("areaShadowVcanvasGroup", d("vcanvas-area-shadow", e.getChildContainer("areaShadowGroup"), this)), !this.getChildContainer("areaVcanvasGroup") && this.addChildContainer("areaVcanvasGroup", d("vcanvas-area-plot", e.getChildContainer("areaGroup"), this)), !this.getChildContainer("lineShadowVcanvasGroup") && this.addChildContainer("lineShadowVcanvasGroup", d("vcanvas-line-shadow", e.getChildContainer("lineShadowGroup"), this)), !this.getChildContainer("lineVcanvasGroup") && this.addChildContainer("lineVcanvasGroup", d("vcanvas-line-plot", e.getChildContainer("lineGroup"), this)), !this.getChildContainer("defaultShadowVcanvasGroup") && this.addChildContainer("defaultShadowVcanvasGroup", d("vcanvas-default-shadow", e.getChildContainer("defaultShadowGroup"), this)), !this.getChildContainer("defaultVcanvasGroup") && this.addChildContainer("defaultVcanvasGroup", d("vcanvas-default-plot", e.getChildContainer("defaultGroup"), this)), !this.getChildContainer("vcanvasLabelGroup") && this.addChildContainer("vcanvasLabelGroup", d("vcanvas-label", e.getChildContainer("datalabelsGroup"), this)), !this.getChildContainer("columnTrendGroup") && this.addChildContainer("columnTrendGroup", d("columnTrendGroup", this.getChildContainer("columnVcanvasGroup"), this)), !this.getChildContainer("sumLabelsLayer") && this.addChildContainer("sumLabelsLayer", d("vcanvas-sumLabelsLayer", e.getChildContainer("sumLabelsLayer"), this)) }, a.applyTranslation = function() { var e = this,
                            t = function(e) { return s(c(e.h), c(e.v)) }(e.getHorizontalVerticalAxes());
                        e.createContainer(), u.forEach((function(a) { var i;
                            i = a, (i = e.getChildContainer(i)).attr({ transform: t }) })) }, a.draw = function() { this.applyTranslation(), this.setState("drawn", !0) }, a.getCanvasPadding = function() { var e, t, a = { paddingLeft: 0, paddingRight: 0, paddingTop: 0, paddingBottom: 0 }; return this._mapChildren((function(i) { if (i.getCanvasPadding && !i.getState("removed") && i.getState("visible"))
                                for (t in e = i.getCanvasPadding() || {}) e.hasOwnProperty(t) && (a[t] = Math.max(e[t], a[t])) })), a }, a.rtShiftAnim = function(e, t) { var a, i = this,
                            n = e,
                            o = t,
                            r = i.getFromEnv("xAxis"),
                            l = i.getFromEnv("yAxis"),
                            c = r.getPixel(1) - r.getPixel(0),
                            h = l.getPixel(1) - l.getPixel(0),
                            d = i.getFromEnv("animationManager");
                        a = s(n = (n || 0) * c, o = (o || 0) * h), u.forEach((function(e) { i.getChildContainer(e).attr({ transform: a }), d.setAnimation({ el: i.getChildContainer(e), attrs: { transform: "T0,0" } }) })) }, t }(o.ComponentInterface);
            t["default"] = p },
        517: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t;
                e.config.enablemousetracking ? ((0, o.componentFactory)(e, n["default"], "mouseTracker"), t = e.getChildren("mouseTracker")[0], e.config.mouseTrackerEventAdded || (t.addEvents(), e.config.mouseTrackerEventAdded = !0)) : ((t = e.getChildren("mouseTracker") && e.getChildren("mouseTracker")[0]) && t._removeListners(), e.config.mouseTrackerEventAdded = !1) }; var n = i(a(518)),
                o = a(215) },
        518: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(232)),
                o = i(a(229)),
                r = a(230),
                l = function(e) {
                    function t() { var t, a; return (t = e.call(this) || this).pIndex = 1, t.handler = (a = (0, n["default"])(t), function(e) { e.originalEvent && a.getFromEnv("chart")._mouseEvtHandler(e, a.config.evtData) }), t.eventsList = ["fc-mousedown", "fc-mouseup", "fc-mousemove", "fc-click", "fc-mouseover"], t.config = {}, t.config.evtData = {}, t }(0, o["default"])(t, e); var a = t.prototype; return a.getMouseEvents = function(e, t, a) { var i = this._lastDatasetIndex,
                            n = this._lastPointIndex,
                            o = { fireOut: !1, events: [] }; switch (e.type) {
                            case "fc-click":
                                o.events.push("fc-click"); break;
                            case "fc-mousemove":
                                i === t && n === a ? (clearTimeout(this.mouseoutTimer), o.events.push("fc-mousemove")) : (o.events.push("fc-mouseover"), o.fireOut = !0); break;
                            case "fc-mousedown":
                                i === t && n === a || (o.fireOut = !0, o.events.push("fc-mouseover")), o.events.push("fc-mousedown"); break;
                            case "fc-mouseover":
                                i === t && n === a ? clearTimeout(this.mouseoutTimer) : (o.fireOut = !0, o.events.push("fc-mouseover")); break;
                            case "fc-mouseup":
                                this.hasTouchEvent = !1, o.events.push("fc-mouseup"); break;
                            case "fc-mouseout":
                                o.fireOut = !0 } return o }, a.addEvents = function() { var e, t, a, i = this.getFromEnv("chart"),
                            n = i.getChildren("canvas"),
                            o = this.config.evtData,
                            r = this.eventsList; for (i.config.enableMouseOutEvent && r.push("fc-mouseout"), this._removeListners(), o.chart = i, o.mouseTracker = this, t = 0; t < n.length; t++)
                            for (a in e = n[t], r) e.addEventListener(r[a], this.handler) }, a._removeListners = function() { var e, t, a, i = this.getFromEnv("chart").getChildren("canvas"),
                            n = this.eventsList; for (a = 0; a < i.length; a++)
                            for (t in e = i[a], n) e.removeEventListener(n[t], this.handler);
                        this._removeDocEvents() }, a._removeDocEvents = function() { this.eventOutput && this.eventOutput.unlisten(), this.eventOutput = void 0 }, a._dispose = function() { this._removeListners(), e.prototype._dispose.call(this) }, t }(r.ComponentInterface);
            t["default"] = l },
        519: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t, a, i = e.getChildren(),
                    n = i.canvas && i.canvas[0],
                    l = n && n.getChildren("vCanvas"),
                    h = l && l[0] || n || e,
                    u = e.getFromEnv("dataSource"),
                    d = u.dataset,
                    g = (0, r["default"])(d) && d[0].data,
                    p = u.data || g;
                a = g ? s(s({}, d[0]), c(p)) : c(p); if (!p || 0 === p.length) return void e.setChartMessage();
                t = e.getDSdef(), (0, o.datasetFactory)(h, t, "dataset", 1, [a]) }; var n = i(a(214)),
                o = a(215),
                r = i(a(359));

            function l(e, t) { var a = Object.keys(e); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), a.push.apply(a, i) } return a }

            function s(e) { for (var t = 1; t < arguments.length; t++) { var a = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? l(Object(a), !0).forEach((function(t) {
                        (0, n["default"])(e, t, a[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : l(Object(a)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t)) })) } return e } var c = function(e) { var t = [],
                    a = []; return (0, o.fcEach)(e, (function(e, i) { "true" !== e.vline && !0 !== e.vline && 1 !== e.vline && "1" !== e.vline ? t.push(e) : a.push({ index: i, data: e }) })), { catData: a, data: t } } },
        520: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = t._removePlots = void 0; var n, o = i(a(232)),
                r = i(a(229)),
                l = a(215),
                s = a(230),
                c = a(223),
                h = i(a(521)),
                u = a(227),
                d = l.hasTouch ? l.TOUCH_THRESHOLD_PIXELS : l.CLICK_THRESHOLD_PIXELS,
                g = l.regex.dropHash,
                p = l.preDefStr.DEFAULT,
                f = l.preDefStr.showHoverEffectStr,
                m = l.preDefStr.setRolloverAttrStr,
                v = l.preDefStr.setRolloutAttrStr,
                b = Math,
                x = b.min,
                y = b.max,
                C = b.abs,
                k = { top: !0 },
                S = { right: !0 },
                w = { left: !0 },
                L = { bottom: !0 },
                A = b.ceil,
                N = b.round,
                E = function(e, t) { if (void 0 === e && (e = {}), "function" == typeof t) { var a = function(a) { if (e.hasOwnProperty(a)) { var i = e[a];
                                Array.isArray(i) ? i.forEach((function(e) { return t(e, a) })) : e[a] && t(e[a], a) } }; for (var i in e) a(i) } },
                T = function(e, t, a) { return a.getFromEnv("animationManager").setAnimation({ el: "group", attr: { name: e }, container: t, state: "appearing", component: a, label: "group" }) },
                F = function(e, t) { void 0 === e && (e = []), e.forEach((function(e) { return E(e && e.graphics, t) })), e.length = 0 };
            t._removePlots = F, (0, c.addDep)({ name: "columnAnimation", type: "animationRule", extension: h["default"] }); var _ = function(e) {
                function t() { var t;
                    t = e.call(this) || this; var a = (0, o["default"])(t); return a.components = {}, a.components.removeDataArr = [], a.__hideElem = function(e, t) { a._setRemoveAnim(e, "label" === t ? "plotLabel" : "rect") }, a.__removeElem = function(e, t) { a.__hideElem(e, t) }, a.config.primitiveType = "column", t }(0, r["default"])(t, e); var a = t.prototype; return a.getType = function() { return "dataset" }, a.getName = function() { return "column" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                    t.showvalues = n, t.includeinlegend = 1, t.plotfillalpha = n, t.plotfillangle = n, t.ratio = n }, a.preConfigure = function(t) { if (!t) return !1;
                    this.trimData(t), this.config.JSONData = t, e.prototype.preConfigure.call(this, t) }, a.setSkippingInfo = function(e) { this.addToEnv("skipInfo", e || { plotsPerBin: 1, drawOnlyMap: [], draw: [], hide: [], skippingApplied: !1, dragHashMap: [] }) }, a.getSkippingInfo = function() { return this.getFromEnv("skipInfo") || { plotsPerBin: 1, drawOnlyMap: [], draw: [], hide: [], skippingApplied: !1, dragHashMap: [] } }, a.configure = function(t) { if (!t) return !1;
                    e.prototype.configure.call(this, t) }, a.configureAttributes = function() { var e = this.getFromEnv("chart"),
                        t = this.config;
                    this.parseAttributes(), this._setConfigure(), this.getState("visible") && !1 === t.oldVisible && (t.appearing = !0), t.oldVisible = this.getState("visible"), this._realTimeConfigure && this._realTimeConfigure(), !1 !== e.config.hasLegend && e.config.showLegend && this._addLegend(), this.ErrorValueConfigure && this.ErrorValueConfigure(), this.config.YForStackUpdated = !1, this.setState("dirty", !0) }, a.parseAttributes = function() { var e, t, a, i = this.getFromEnv("chart"),
                        n = i.getChildren("yAxis")[0].config.isReverse,
                        o = this.config,
                        r = this.config.JSONData,
                        s = i.config.singleseries,
                        c = i.config,
                        h = i.getFromEnv("chart-attrib"),
                        u = this.getFromEnv("color-manager"),
                        d = this.getJSONIndex(),
                        g = o.plotColor = u.getPlotColor(d),
                        p = (0, l.pluckNumber)(r.dashed, h.plotborderdashed, 0),
                        f = (0, l.pluckNumber)(h.useplotgradientcolor, 1),
                        m = i.isBar,
                        v = i.config.is3D,
                        b = i.config.isdual;
                    o.showTextOutline = (0, l.pluckNumber)(h.textoutline, 0), o.dashed = p, o.parentYAxis = b && "s" === (0, l.pluck)(r.parentyaxis && r.parentyaxis.toLowerCase(), "p") ? 1 : 0, o.maxValue = -Infinity, o.minValue = Infinity, o.defaultPadding = { left: .5, right: .5 }, (0, l.parseConfiguration)(r, o, c, { data: !0 }), o.seriesname = (0, l.parseUnsafeString)(r.seriesname), o.showValues = (0, l.pluckNumber)(r.showvalues, h.showvalues, 1), o.minplotheightforvalue = (0, l.pluckNumber)(r.minplotheightforvalue, h.minplotheightforvalue, 0), o.showplotborder = (0, l.pluckNumber)(h.showplotborder, v ? 0 : 1), e = c.plotborderdashlen, t = c.plotborderdashgap, o.plotfillangle = (0, l.pluckNumber)(360 - h.plotfillangle, m ? 180 : n ? 90 : 270), o.plotfillalpha = a = (0, l.pluck)(r.alpha, h.plotfillalpha, l.HUNDREDSTRING), o.plotColor = g = (0, l.pluck)(r.color, g), o.legendSymbolColor = (0, l.getFirstColor)(o.plotColor), o.plotgradientcolor = (0, l.getDefinedColor)(h.plotgradientcolor, u.getColor("plotGradientColor")), !f && (o.plotgradientcolor = ""), o.plotborderalpha = (0, l.pluck)(h.plotborderalpha, a, l.HUNDREDSTRING), o.plotbordercolor = (0, l.pluck)(h.plotbordercolor, v && !s ? "#ffffff" : u.getColor("plotBorderColor")), o.plotborderdashstyle = p ? (0, l.getDashStyle)(e, t, void 0) : "none", o.showShadow = v ? (0, l.pluckNumber)(h.showshadow, 1) : (0, l.pluckNumber)(h.showshadow, u.getColor("showShadow")), o.definedGroupPadding = y(c.plotSpacePercent, 0), o.includeinlegend = (0, l.pluckNumber)(r.includeinlegend, o.seriesname ? 1 : 0), this.setState("visible", 1 === (0, l.pluckNumber)(r.visible, !Number(r.initiallyhidden), 1)), !0 === this.getState("visible") ? this._conatinerHidden = !1 : this._containerHidden = !0, o.legendInteractivity = !1, this.setState("visible", 1 === (0, l.pluckNumber)(this.getState("visible"), o.JSONData.visible, !Number(o.JSONData.initiallyhidden), 1)) }, a.trimData = function(e) { if (this.components || !this.components.data || !this.components.data.length) { var t, a, i = this.components,
                            n = this.config,
                            o = n && n.context,
                            r = this.getFromEnv("chart").isRealTime,
                            l = o && o.prevCatlen,
                            s = this.getFromEnv("xAxis"),
                            c = r ? 0 : s.getTicksLen(),
                            h = l - c,
                            u = i && i.data,
                            d = u && u.length,
                            g = e.data && e.data.length || 0,
                            p = d - g;
                        h > p ? (t = h, a = c) : (t = p, a = g), t > 0 && this.removeData(a, t, !1) } }, a.hidePlots = function() { var e, t = this,
                        a = t.components.data,
                        i = t.getSkippingInfo(),
                        n = i.hide,
                        o = i.hideLabel;
                    n.forEach((function(i) {
                        (e = a[i]) && e.graphics && (E(e.graphics, t.__removeElem), e && (e.graphics = {})) })), o.forEach((function(i) {
                        (e = a[i]) && e.graphics && (E(e.graphics, t.__removeElem), e && (e.graphics = {})) })) }, a._setConfigure = function(e, t) { var a, i, o, r, s, c, h, g, p = this,
                        f = p.getFromEnv("chart"),
                        m = f.config,
                        v = p.config,
                        b = p.getFromEnv("xAxis"),
                        x = f.isRealTime,
                        y = m.realTimeConfig && m.realTimeConfig.numDisplaySets,
                        C = p.getFromEnv("dataSource").categories && p.getFromEnv("dataSource").categories[0] && p.getFromEnv("dataSource").categories[0].category,
                        k = v.initCatLen = x ? C && Array.isArray(C) && C.filter((function(e) { return !e.vline })).length || 0 : b.getTicksLen(),
                        S = v.JSONData || [],
                        w = e || S.data,
                        L = e && e.data.length,
                        A = v.showplotborder,
                        N = m.plotborderthickness,
                        E = p.components.data,
                        T = m.isDrag,
                        F = p.getSkippingInfo && p.getSkippingInfo(),
                        _ = F && F.draw || [],
                        P = F && F.skippingApplied; for (h = L === n && k > y ? k - y : 0, a = x ? (0, l.pluckNumber)(L, k) : Math.min(k, w && w.length), m.dragTolerance = T ? (A && N > 5 ? N / 2 + 1 : 5) + d : 0, E || (E = p.components.data = []), P && (a = _.length), c = h; c < a; c++) s = _[c] || c, e ? (i = e && e.data[s] || {}, r = t !== n ? E[g = t + s] : E[g = E.length - a + s], o = g) : (i = w && w[s] || {}, r = E[s -= h], o = s), r || (r = E[o] = {}), r.config || (r.config = {}, r.graphics = {}), p._plotConfigure(o, i, L), g && g++;
                    P && p.addJob("configureRestID", (function() { p._configureRestData() }), u.priorityList.postRender) }, a._configureRestData = function() { var e, t, a, i, o, r = this.config,
                        s = this.config.JSONData,
                        c = s.data,
                        h = this.getFromEnv("chart-attrib"),
                        u = this.getFromEnv("xAxis").getTicksLen(),
                        d = (this.getSkippingInfo && this.getSkippingInfo()).drawOnlyMap,
                        g = this.components.data; for (g || (g = this.components.data = []), r.maxValue = -Infinity, r.minValue = Infinity, i = 0; i < u; i++) d[i] || (a = g[i], t = i, (e = c && c[i] || {}).tooltext !== n && (e.tooltext = (0, l.parseTooltext)(e.tooltext, [3], { label: e.label }, e, h, s)), a || (a = g[i] = {}), a.config || (g[i].config = {}), this._plotConfigure(t, e), o && o++) }, a._plotConfigure = function(e, t, a) { var i, o, r, s, c, h, u, d, g, p, f, m, v, b, C, k, S, w, L, A, N, E, T, F, _, P, D, I, M, O, R, B, V, G, z = this.getFromEnv("chart"),
                        H = z.config,
                        W = this.config,
                        j = W.JSONData,
                        U = z.config.singleseries,
                        q = this.getFromEnv("yAxis"),
                        Y = this.getFromEnv("xAxis"),
                        X = this.components.data[e],
                        K = z.getFromEnv("dataSource").chart,
                        Z = this.getFromEnv("color-manager"),
                        J = W.showplotborder,
                        $ = W.plotColor,
                        Q = H.showtooltip,
                        ee = H.yaxisname,
                        te = H.xaxisname,
                        ae = H.tooltipsepchar,
                        ie = H.seriesnameintooltip,
                        ne = H.plotborderdashlen,
                        oe = H.plotborderdashgap,
                        re = H.plotborderthickness,
                        le = (0, l.pluckNumber)(H.useroundedges, 0),
                        se = H.plothovereffect,
                        ce = W.plotfillangle,
                        he = W.plotborderdashstyle,
                        ue = X.config,
                        de = z.isBar,
                        ge = z.config.is3D,
                        pe = H.use3dlighting,
                        fe = H.realTimeConfig && H.realTimeConfig.numDisplaySets,
                        me = fe - W.initCatLen,
                        ve = fe && me >= 0 ? me : 0,
                        be = H.usedataplotcolorforlabels;
                    G = Y.getLabel(a ? e - a : ve + e), ue.origLabel = V = (0, l.getValidValue)((0, l.parseUnsafeString)(G.label)), v = ue.label = (0, l.getValidValue)((0, l.parseUnsafeString)(G.tooltext)) || V, t.tooltext !== n && (t.tooltext = (0, l.parseTooltext)(t.tooltext, [3], { label: G.label }, t, K, j)), ue.dataLabelStyle = this._configureDataLabelStyle(t), ue.minplotheightforvalue = (0, l.pluckNumber)(t.minplotheightforvalue, W.minplotheightforvalue), ue.showValue = (0, l.pluckNumber)(t.showvalue, W.showValues), ue.givenPlotShowValue = (0, l.pluckNumber)(t.showvalue), ue.setValue = m = q.getCleanValue(t.value, (0, l.pluckNumber)(H.stack100percent)), ue.setLink = (0, l.pluck)(t.link), ue.toolTipValue = I = q.dataLabels(m), ue.setDisplayValue = M = (0, l.parseUnsafeString)(t.displayvalue), ue.displayValue = (0, l.pluck)(M, I), ue.dashed = O = (0, l.pluckNumber)(t.dashed, W.dashed), R = (0, l.pluckNumber)(t.dashlen, ne), B = oe = (0, l.pluckNumber)(t.dashgap, oe), null !== m && (W.maxValue = y(W.maxValue, m), W.minValue = x(W.minValue, m)), ue.plotBorderDashStyle = f = 1 === O ? (0, l.getDashStyle)(R, B) : 0 === O ? "none" : he, U ? ($ = Z.getPlotColor((0, l.pluckNumber)(e - a, e)), $ = (0, l.pluck)(t.color, $), be && Y.updateTicksValues(e, { labelfontcolor: (0, l.convertColor)($) }), p = (0, l.pluck)(t.alpha, t.borderalpha, W.plotborderalpha, d).toString()) : ($ = (0, l.pluck)(t.color, W.plotColor), p = (0, l.pluck)(t.alpha, W.plotborderalpha, d).toString()), g = (0, l.pluck)(t.ratio, W.ratio), d = (0, l.pluck)(t.alpha, W.plotfillalpha), ue.plotFillAlpha = d, ue.plotBorderAlpha = p, ue.shadow = { opacity: W.showShadow ? d / 100 : 0 }, m < 0 && !le && (h = W.plotfillangle, ce = de ? 180 - ce : 360 - ce), ue.colorArr = b = (0, l.getColumnColor)($ + "," + W.plotgradientcolor, d, g, ce, le, W.plotbordercolor, p, de ? 1 : 0, !!ge), ue.originalPlotColor = $, 0 !== se && (C = (0, l.pluck)(t.hovercolor, j.hovercolor, K.plotfillhovercolor, K.columnhovercolor, $), k = (0, l.pluck)(t.hoveralpha, j.hoveralpha, K.plotfillhoveralpha, K.columnhoveralpha, d), !(S = (0, l.pluck)(t.hovergradientcolor, j.hovergradientcolor, K.plothovergradientcolor, W.plotgradientcolor)) && (S = ""), w = (0, l.pluck)(t.hoverratio, j.hoverratio, K.plothoverratio, g), L = (0, l.pluckNumber)(360 - t.hoverangle, 360 - j.hoverangle, 360 - K.plothoverangle, ce), A = (0, l.pluck)(t.borderhovercolor, j.borderhovercolor, K.plotborderhovercolor, W.plotbordercolor), N = (0, l.pluck)(t.borderhoveralpha, j.borderhoveralpha, K.plotborderhoveralpha, K.plotfillhoveralpha, K.columnhoveralpha, p, d), E = (0, l.pluckNumber)(t.borderhoverthickness, j.borderhoverthickness, K.plotborderhoverthickness, W.showplotborder && re), T = t.borderhoverdashed || j.borderhoverdashed || K.plotborderhoverdashed, F = (0, l.pluckNumber)(t.borderhoverdashgap, j.borderhoverdashgap, K.plotborderhoverdashgap, ne), _ = (0, l.pluckNumber)(t.borderhoverdashlen, j.borderhoverdashlen, K.plotborderhoverdashlen, oe), P = T !== n ? Number(T) ? (0, l.getDashStyle)(_, F) : "" : f, (H.drawTrendRegion && !ge || 1 === se && C === $) && (C = (0, l.getLightColor)(C, 70)), D = (0, l.getColumnColor)(C + "," + S, k, w, L, le, A, N.toString(), de ? 1 : 0, !!ge), ue.setRolloutAttr = { fill: ge ? [(0, l.toRaphaelColor)(b[0]), !pe] : (0, l.toRaphaelColor)(b[0]), stroke: J ? (0, l.toRaphaelColor)(b[1]) : l.TRACKER_FILL, "stroke-width": J ? re : 0, "stroke-dasharray": f }, ue.setRolloverAttr = { fill: ge ? [(0, l.toRaphaelColor)(D[0]), !pe] : (0, l.toRaphaelColor)(D[0]), stroke: A ? (0, l.toRaphaelColor)(D[1]) : l.TRACKER_FILL, "stroke-width": E, "stroke-dasharray": P }, ue.hoverColor = C, ue.hoverAlpha = k, ue.hoverBorderColor = A, ue.hoverBorderAlpha = N), i = ue.toolTipValue, ue.origToolText = r = (0, l.getValidValue)((0, l.parseUnsafeString)((0, l.pluck)(t.tooltext, j.plottooltext, K.plottooltext), !1)), Q ? null === i ? u = !1 : r !== n ? (c = [1, 2, 3, 4, 5, 6, 7], o = { yaxisName: ee, xaxisName: te, formattedValue: i, label: v }, u = (0, l.parseTooltext)(r, c, o, t, K, j)) : (ie && (s = (0, l.getFirstValue)(j && j.seriesname)), u = s ? s + ae : "", u += v ? v + ae : "") : u = !1, ue.toolText = u, ue.setTooltext = u, h && (ce = h), ue._x = e, ue._y = m }, a.updateYForStack = function() { var e, t, a, i, o, r, s = this.getFromEnv("chartConfig"),
                        c = (0, l.pluckNumber)(s.showpercentvalues),
                        h = (0, l.pluckNumber)(s.showpercentintooltip),
                        u = this.config.JSONData,
                        d = this.getFromEnv("chart-attrib"),
                        g = this.getFromEnv("xAxis").getTicksLen(),
                        p = this.components.data,
                        f = this.getFromEnv("stackValues"),
                        m = c || h ? -1 : 1,
                        v = this.getSkippingInfo && this.getSkippingInfo(),
                        b = v && v.skippingApplied,
                        x = v && v.draw || [],
                        y = x && x.length; for (b && (g = y), i = 0; i < g; i++) t = (e = p[a = x[i] || i]) && e.config, e !== n && (o = (0, l.getValidValue)((0, l.parseUnsafeString)((0, l.pluck)(t.origToolText, u.plottooltext, d.plottooltext), !1)), r = f[a] && f[a].positive + m * f[a].negative || 0, t._b = this._parseValues(a, t._b, r, o), s.stack100percent && (t._y = t.value + t._b)) }, a._parseValues = function(e, t, a, i) { var n, o, r = t,
                        s = this.getFromEnv("chartConfig"),
                        c = this.components.data[e].config,
                        h = (0, l.pluckNumber)(s.showpercentvalues),
                        u = (0, l.pluckNumber)(s.showpercentintooltip),
                        d = this.getState("visible"),
                        g = c.setValue,
                        p = (0, l.pluckNumber)(s.stack100percent),
                        f = this.getFromEnv("number-formatter"),
                        m = this.getFromEnv("yAxis"),
                        v = c.setDisplayValue; return o = (d && g || 0) / (a || 1) * 100, n = f.percentValue(o), p && (c.value = o, r = (r || 0) / (a || 1) * 100), u && (c.toolTipValue = n), h && !v && (c.displayValue = n), i && (c.toolText = (0, l.parseTooltext)(c.setTooltext, [14, 24, 25, 112], { percentValue: n, sum: m.dataLabels(a), unformattedSum: a })), r }, a._addLegend = function() { var e, t, a, i = this.getFromEnv("chart").isBar,
                        n = this.getFromEnv("chart-attrib"),
                        o = this.config,
                        r = (0, l.getFirstColor)(o.legendSymbolColor),
                        s = this.getFromEnv("legend"),
                        c = (0, l.pluckNumber)(n.use3dlighting, n.useplotgradientcolor, 1),
                        h = (0, l.getLightColor)(r, 60).replace(g, l.HASHSTRING);
                    o.includeinlegend ? (e = c ? { FCcolor: { color: r + "," + r + "," + (0, l.getLightColor)(r, 40) + "," + r + "," + r, ratio: "0,30,30,30,10", angle: i ? 0 : 270, alpha: "100,100,100,100,100" } } : { FCcolor: { color: r, angle: i ? 0 : 270, ratio: "0", alpha: "100" } }, a = s.getItem(this.config.legendItemId), t = { type: this.getName(), index: this.getJSONIndex(), label: (0, l.getFirstValue)(this.config.JSONData.seriesname) }, a || (this.config.legendItemId = s.createItem(this), a = s.getItem(this.config.legendItemId), this.addExtEventListener("fc-click", (function() { a.itemClickFn() }), a)), a.configure(t), a.setStateCosmetics("default", { symbol: { fill: (0, l.toRaphaelColor)(e), rawFillColor: r, stroke: (0, l.toRaphaelColor)(h) } }), this.getState("visible") ? a.removeLegendState("hidden") : a.setLegendState("hidden")) : this.config.legendItemId && s.disposeItem(this.config.legendItemId) }, a.legendInteractivity = function(e) { var t = e.getLinkedParent().getFromEnv("chart"),
                        a = this.getState("visible"),
                        i = this.config; if (t.getFromEnv("animationManager").setAnimationState("legendInteraction"), i.legendInteractivity = !0, a ? this.hide() : this.show(), l.isFirefox) { var n = t.getChildContainer("plotGroup");
                        n.attrs["clip-rect"] && n.attr({ "clip-rect": n.attrs["clip-rect"] }) } i.drawnEvtListenerAttached || (i.drawnEvtListenerAttached = !0, this.addEventListener("drawn", (function() { i.legendInteractivity = !1 }))) }, a.createPinElem = function() { var e, t, a, i = this,
                        n = i.getFromEnv("chart"),
                        o = arguments[1].group,
                        r = i.components.data,
                        l = i.graphics.pinElems || (i.graphics.pinElems = []),
                        s = i.getLinkedParent().getChildContainer().columnVcanvasGroup; for (e = l.length - 1; e >= 0; e--) l[e].remove(), l.pop(); if (i.getState("visible"))
                        for (e = i.config.scrollMinVal; e < i.config.scrollMaxVal; e++)(a = r[e]) && a.graphics && (t = a.graphics.element.clone().attr({ transform: ["T", -(n.config._visx + C(s.transform()[0][1])), -n.config.canvasBottom] }), o.appendChild(t), l.push(t)) }, a._checkPointerOverColumn = function(e, t, a) { var i, o, r, l, s, c, h, u, g, p = this.getFromEnv("chart").config,
                        f = p.plotborderthickness,
                        m = p.showplotborder,
                        v = this.components.data,
                        b = v && v.length,
                        x = 0,
                        y = 0,
                        C = p.dragTolerance || 0,
                        k = (this.getSkippingInfo && this.getSkippingInfo()).plotsPerBin; for (h = g = (g = (u = (A(e / k) - 1) * k + 1) + k - 1) < b ? g : b; h >= u; h--) { if (!(i = v[h])) return; if (i._height < d && (x = d), i._width < d && (y = d), (i._xPos || i._yPos) && (o = i.config.setValue, m && f !== n ? c = f / 2 : f = c = 0, null !== o && (r = t - i._xPos + c, l = a - i._yPos + c + (o >= 0 ? C : 0), s = r >= -y / 2 && r <= (y || i._width) + f && l >= -x / 2 && l <= (x || i._height) + f + (o < 0 ? 2 * C : C)))) return { pointIndex: h, hovered: s, pointObj: v[h] } } }, a._getHoveredPlot = function(e, t) { var a, i, n = e,
                        o = t,
                        r = this.getFromEnv("chart").isBar,
                        l = this.getFromEnv("xAxis"); return r ? o += l.getTranslation() : n += l.getTranslation(), a = l.getValue(r ? o : n), (i = Math.round(a)) - a > 0 ? this._checkPointerOverColumn(i, n, o) || this._checkPointerOverColumn(i - 1, n, o) : this._checkPointerOverColumn(i + 1, n, o) || this._checkPointerOverColumn(i, n, o) }, a.getPlotInCategoryAt = function(e, t) { void 0 === e && (e = 0), void 0 === t && (t = 0); var a, i, n, o, r = this.components.data,
                        l = this.getFromEnv("xAxis"),
                        s = this.getFromEnv("yAxis"),
                        c = l.getTranslation() || 0,
                        h = s.getTranslation() || 0,
                        u = this.getState("visible"),
                        d = e + c,
                        g = t + h; if ("category" === l.getName() && l.config.hasCategory) i = l;
                    else { if ("category" !== s.getName() || !s.config.hasCategory) return !1;
                        i = s } return null != (n = i.config.isVertical) && (a = r[Math.round(i.getValue(n ? g : d))], o = this._getHoveredPlot(e, t), u && o ? o : !(!u || !a) && { pointIndex: a._index, hovered: !1, pointObj: a }) }, a._decideTooltipType = function(e, t) { var a = this.getFromEnv("chart").config.drawTrendRegion,
                        i = this.components,
                        n = this.getFromEnv("toolTipController"),
                        o = i.data[e],
                        r = o && (o.config.finalTooltext || o.config.toolText),
                        l = this.config.currentToolTip,
                        s = t.originalEvent;
                    r && !a && (l ? n.draw(s, r, l) : l = this.config.currentToolTip = n.draw(s, r)) }, a._firePlotEvent = function(e, t, a) { var i, o = this.getFromEnv("chart"),
                        r = this.components,
                        l = this.getFromEnv("toolTipController"),
                        s = r.data[t],
                        c = s.graphics && s.graphics.element,
                        h = s.graphics && s.graphics.label,
                        u = this.config.currentToolTip; if (c) switch (i = s.config.setLink, e) {
                        case "fc-mouseover":
                            this._decideTooltipType(t, a),
                                function(e, t, a, i, n) { var o = t.graphics,
                                        r = o && o.element,
                                        l = e.getFromEnv("animationManager"),
                                        s = r && r.getData();!0 !== s.draged && (r && 0 !== s.showHoverEffect && (l.setAnimationState("mouseOver"), l.setAnimation({ el: r, label: "rect", component: n, attr: r.getData().setRolloverAttr })), !i && r && e.plotEventHandler(r, a, "DataPlotRollOver")) }(o, s, a, n, this), i && (c.css({ cursor: "pointer" }), h && h.css({ cursor: "pointer" })); break;
                        case "fc-mouseout":
                            l.hide(u),
                                function(e, t, a, i, n) { var o = t.graphics,
                                        r = o && o.element,
                                        l = e.getFromEnv("animationManager"),
                                        s = r && r.getData();!0 !== s.draged && (r && 0 !== s.showHoverEffect && (l.setAnimationState("mouseOut"), l.setAnimation({ el: r, label: "rect", component: n, attr: r.getData().setRolloutAttr })), !i && r && e.plotEventHandler(r, a, "DataPlotRollOut")) }(o, s, a, n, this), i && (c.css({ cursor: p }), h && h.css({ cursor: p })); break;
                        case "fc-click":
                            o.plotEventHandler(c, a); break;
                        case "fc-mousemove":
                            this._decideTooltipType(t, a) } }, a.createContainer = function() { var e, t, a, i, n, o = this.getType(),
                        r = this.getFromEnv("chart"),
                        l = this.getLinkedParent(),
                        s = this.config.primitiveType || o;!l.getChildContainer(s + "VcanvasGroup") && (s = "default"), e = l.getChildContainer(s + "VcanvasGroup"), n = l.getChildContainer(s + "ShadowVcanvasGroup"), t = l.getChildContainer("commonElemGroup") || e, i = l.getChildContainer("commonElemGroupLine"), a = l.getChildContainer("anchorGroup") || e, !this.getContainer("shadowGroup") && this.addContainer("shadowGroup", T("shadow-group", n, this)), !this.getContainer("errorShadowGroup") && this.addContainer("errorShadowGroup", T("error-shadow-group", n, this)), !this.getContainer("commonElemsGroup") && this.addContainer("commonElemsGroup", T("common-elems-group", t, this)), i ? !this.getContainer("commonElemsGroupLine") && this.addContainer("commonElemsGroupLine", T("common-elems-group", i, this)) : this.removeContainer("commonElemsGroupLine"), !this.getContainer("plotGroup") && this.addContainer("plotGroup", T("plot-group", a, this)), !this.getContainer("errorPlotGroup") && this.addContainer("errorPlotGroup", T("error-plot-group", e, this)), r.hasAnchor && this.getContainer("errorPlotGroup").insertBefore(this.getContainer("plotGroup")), !this.getContainer("labelGroup") && this.addContainer("labelGroup", T("label-group", l.getChildContainer("vcanvasLabelGroup"), this).attr("class", "fusioncharts-datalabels")) }, a.createCoordinates = function() { var e, t, a, i, o, r, l, s, c, h, u = this.config,
                        d = this.components.data,
                        g = this.getFromEnv("chart"),
                        p = g.isBar,
                        f = this.getFromEnv("yAxis"),
                        m = this.getFromEnv("xAxis"),
                        v = f.getAxisBase(),
                        b = f.getPixel(v),
                        x = m.config.isVertical,
                        y = g.config.xDepth || 0,
                        C = g.config.yDepth || 0,
                        k = d.length,
                        S = this.components,
                        w = this.getLinkedParent(),
                        L = w.getstackConf && w.getstackConf(),
                        A = S.data,
                        N = this.getSkippingInfo && this.getSkippingInfo(),
                        E = N && N.skippingApplied,
                        T = N && N.draw || [],
                        F = T && T.length; for (!p && (y = -y), p && (C = -C), E && (k = F), o = 0; o < k; o++) t = (e = A[i = T[o] || o]) && e.config, e !== n && (a = t._b, c = m.getPixel(L && L[i] && L[i].x || t._x), r = (isFinite(c) ? c : 0) + y, h = f.getPixel(t._y), l = (isFinite(h) ? h : 0) + C, s = (a ? f.getPixel(a) : b) + C, x ? (t._Px = l, t._Py = r, t._Pby = r, t._Pbx = s) : (t._Px = r, t._Py = l, t._Pby = s, t._Pbx = r), 0 === t.givenPlotShowValue ? t.showValue = 0 : 1 === t.givenPlotShowValue ? t.showValue = 1 : 1 !== t.givenPlotShowValue && u.showValues && (Math.sqrt((s - l) * (s - l)) < t.minplotheightforvalue ? t.showValue = 0 : t.showValue = 1), this.getLineShift && (t._Py += this.getLineShift("y"))) }, a.setContainerVisibility = function(e) { var t, a = this.getContainer(); for (t in a) a.hasOwnProperty(t) && (!1 !== this.getState("visible") || !1 !== this._conatinerHidden && this._conatinerHidden !== n || e ? (a[t].show(), this._conatinerHidden = !1) : (a[t].hide(), this._conatinerHidden = !0)) }, a.plotAnimManager = function(e, t, a, i) { var n, o, r, l, s, c, h = this.getFromEnv("chart"),
                        u = h.getFromEnv("animationManager"),
                        d = h.config.is3D,
                        g = h.config,
                        p = this.getState("visible"),
                        f = t.x,
                        m = this.getSkippingInfo && this.getSkippingInfo(),
                        v = m && m.draw || [],
                        b = this.getFromEnv("plotGroup3d");
                    c = ((r = e && e.config) && r.setValue) < 0, s = d ? (o = c ? b.negativeGroupArray : b.positiveGroupAarray)[h.isBar ? o.length - 1 - a : a] : this.getContainer("plotGroup"), l = { el: (n = e.graphics.element) || (d ? "cubepath" : "rect"), container: s, attr: p && t, doNotRemove: !0, props: { originalIndex: v[a] || a }, index: a, length: i, component: this, label: "rect" }, p || (l.callback = function() { this.hide() }), e.graphics.element = n = u.setAnimation(l), d && (n.appendTo(s), (g.isstacked && c || !g.isstacked && h.isBar) && n.toBack()), null !== e.config.setValue ? this.getState("visible") && n.show() : (n.remove(), delete e.graphics.element), r._oldPx = r._Px, r._oldX = f, p && (e.oldPrevDataObj = e.prevDataObj) }, a.flushOnScroll = function(e, t) { for (var a, i = this.components.data, n = e, o = t - 1; n <= o; n++)(a = i[n]) && a.graphics && (E(a.graphics, this.__removeElem), a.graphics = {}) }, a.removingDraw = function() { var t = this;
                    t.components.data.forEach((function(e) { E(e.graphics, t.__removeElem), delete e.graphics })), e.prototype.removingDraw.call(this) }, a._contextChanged = function() { var e;
                    this.config.context || (this.config.context = {}); var t, a = this.config.context,
                        i = a.shift,
                        n = this.getFromEnv("xAxis"),
                        o = this.getFromEnv("yAxis"),
                        r = a.axisLimit,
                        l = !1,
                        s = { yAxis: { limit: o.getVisibleConfig() }, xAxis: { limit: n.getVisibleConfig() } }; return s.yAxis.limitPixel = { min: o.getPixel(s.yAxis.limit.minValue), max: o.getPixel(s.yAxis.limit.maxValue) }, s.xAxis.limitPixel = { min: n.getPixel(s.xAxis.limit.minValue), max: n.getPixel(s.xAxis.limit.maxValue) }, r !== (t = JSON.stringify(s)) && (a.axisLimit = t, l = !0), i !== this.getFromEnv("shift") && (a.shift = this.getFromEnv("shift"), l = !0), a.prevColNum !== this.getFromEnv("numOfColumns") && (a.prevColNum = this.getFromEnv("numOfColumns"), l = !0), n.getProcessLen ? e = n.getProcessLen() : n.getTicksLen && (e = n.getTicksLen()), a.prevCatlen !== e && (a.prevCatlen = e, l = !0), !!this.getFromEnv("chart").isRealTime || l }, a.calculateScrollRange = function() { var e, t = this.config,
                        a = this.getFromEnv("xAxis"),
                        i = a.getTicksLen(),
                        n = this.getSkippingInfo && this.getSkippingInfo() || {},
                        o = n.skippingApplied,
                        r = n.draw || [],
                        l = n.labelDraw || [],
                        s = r.length;
                    e = o ? s - 1 : i, t.scrollMinVal = y(N(a.getVisibleConfig().minValue), 0) - 1, t.scrollMaxVal = x(N(a.getVisibleConfig().maxValue) + 1, e) + 1, e = o ? l.length - 1 : i, t.scrollMinValForLabel = y(N(a.getVisibleConfig().minValue), 0) - 1, t.scrollMaxValForLabel = x(N(a.getVisibleConfig().maxValue) + 1, e) + 1 }, a.drawPlots = function() { var e, t, a, i, n, o, r, l, s, c = this.getFromEnv("chart"),
                        h = this.config,
                        u = c.config.plothovereffect,
                        d = this.components.data,
                        g = this.getContainer("shadowGroup"),
                        p = h._oldStartIndex,
                        b = h._oldEndIndex,
                        x = this.getSkippingInfo && this.getSkippingInfo(),
                        y = x && x.draw; for (r = h.scrollMinVal, l = h.scrollMaxVal, r > p && this.flushOnScroll(p, r > b ? b : r), l < b && this.flushOnScroll(l < p ? p : l, b), h._oldStartIndex = r, h._oldEndIndex = l, e = r, s = l - 1; e < l; e++, s--)(t = d[y[e] || e]) && (o = (i = t.config).props.element.attr, this.plotAnimManager(t, o, e, l), n = t.trackerConfig, (a = t.graphics.element) && (a.shadow(i.shadow, g).data("BBox", void 0), c.config.enablemousetracking && a.data("eventArgs", n.eventArgs).data(f, u).data(m, i.setRolloverAttr || {}).data(v, i.setRolloutAttr || {})));
                    h.appearing && (h.appearing = !1) }, a.setColumnPosition = function() { var e, t; if ((e = this.getFromEnv("plotWidth")) === n) { var a, i, o = this.getFromEnv("xAxis"),
                            r = this.getFromEnv("chartConfig"),
                            s = this.getSkippingInfo().plotsPerBin,
                            c = y(r.plotSpacePercent, 0),
                            h = y((0, l.pluckNumber)(c, 20) % 100, 0),
                            u = 1 === s ? h / 200 : 0,
                            d = o.getPixel(0),
                            g = o.getPixel(s),
                            p = this.getFromEnv("chart"),
                            f = p.isBar ? p.config.maxBarHeight : p.config.maxColWidth,
                            m = C(g - d),
                            v = !0;
                        e = (a = (1 - .01 * c) * m || x(m * (1 - 2 * u), 1 * f)) / 1, g - (i = a / 2) - (d - i + a) < 4 && (v = !1), 0 === h && (v = !0), this.addToEnv("isCrisp", v) } this.addToEnv("columnWidth", e), t = this.getFromEnv("shift") || 0, this.addToEnv("columnXShift", t - this.getFromEnv("columnWidth") / 2) }, a.addDatasetSpecificEvtArgs = function(e) { var t = this.config,
                        a = e,
                        i = a.config,
                        n = this.getFromEnv("chart").config,
                        o = a.trackerConfig.eventArgs;
                    Object.assign(o, { color: i.originalPlotColorl, gradientColor: t.plotgradientcolor, alpha: i.plotFillAlpha, borderColor: i.plotbordercolor || t.plotbordercolor, borderAlpha: i.plotBorderAlpha, borderThickness: n.plotborderthickness, borderDashed: i.dashed, hoverColor: i.hoverColor, hoverAlpha: i.hoverAlpha, borderHoverColor: i.hoverBorderColor, borderHoverAlpha: i.hoverBorderAlpha }) }, a.parsePlotAttributes = function(e, t) { var a, i, n, o, r, s, c, h, u, g, p, f, m, v, b, y, A, N, E, T, F, _, P, D, I = this.config,
                        M = this.config.JSONData,
                        O = this.getFromEnv("chart"),
                        R = O.getFromEnv("dataSource").chart,
                        B = O.config.isstacked,
                        V = this.config,
                        G = this.groupManager,
                        z = this.getJSONIndex(),
                        H = t,
                        W = this.getState("visible"),
                        j = O.config,
                        U = O.config.is3D,
                        q = O.isBar,
                        Y = j.xDepth || 0,
                        X = j.yDepth || 0,
                        K = this.getFromEnv("yAxis"),
                        Z = this.getFromEnv("xAxis"),
                        J = j.showtooltip,
                        $ = !1 !== this.getState("visible"),
                        Q = this.components.data,
                        ee = e.config,
                        te = K.getAxisBase(),
                        ae = K.yBasePos = K.getPixel(te),
                        ie = (0, l.pluckNumber)(V.plotborderthickness, j.plotborderthickness),
                        ne = (0, l.pluckNumber)(j.useroundedges, 0),
                        oe = V.use3dlighting,
                        re = x(I.yAxisMinPixel, I.yAxisMaxPixel),
                        le = G && G.stackConf,
                        se = this.getFromEnv("columnXShift"),
                        ce = O.config.viewPortConfig,
                        he = ce.x,
                        ue = ce.scaleX,
                        de = (0, l.pluckNumber)(j.showplotborder);
                    m = ee.setLink, b = ee.colorArr || [], Z.config.isVertical ? (h = this.getFromEnv("columnWidth"), c = se) : (r = this.getFromEnv("columnWidth"), s = se), e.graphics || (Q[H].graphics = {}), v = ee.displayValue, !$ && (ee._Py = ee._Pby), E = x(ee._Px, ee._Pbx) + (s || 0) + he * ue, T = x(ee._Py, ee._Pby) + (c || 0), le && (E -= r / 2), F = r || C(ee._Px - ee._Pbx), _ = h || C(ee._Py - ee._Pby), a = q ? ee._Px - ee._Pbx > 0 ? S : w : ee._Py - ee._Pby > 0 ? L : k, f = (0, l.getValidValue)((0, l.parseUnsafeString)((0, l.pluck)(ee.origToolText, M.plottooltext, R.plottooltext), !1)), this.fineTunePlotDimension && (E = (D = this.fineTunePlotDimension(E, T, _, F, H)).xPos, T = D.yPos, F = D.width, _ = D.height), i = E, n = T, u = F, g = _, o = Z.getPixel(1) - Z.getPixel(0) - (q ? g : u), !isFinite(g) && (g = 0), W && (o < 5 && this.getFromEnv("columnWidth") < 5 || (A = (0, l.crispBound)(E, T, u, g, ie, a, B)), A ? (i = A.x, n = A.y, ie = A["stroke-width"], u = A.width, g = A.height || 1) : (i = E, n = T), Z.config.isVertical ? i === re && (i -= ie, u += ie) : n + g === re ? g += ie : n === re && (n -= ie, g += ie), ee.setRolloutAttr && (ee.setRolloutAttr["stroke-width"] = I.showplotborder ? ie : 0)), p = ee.finalTooltext = !1 !== ee.toolText ? ee.toolText + (f ? "" : ee.toolTipValue) : "", y = ee.plotBorderDashStyle, (N = e.trackerConfig = {}).eventArgs = { index: H, link: m, value: ee.setValue, displayValue: v, categoryLabel: ee.origLabel, toolText: p, id: "", datasetIndex: z, datasetName: M.seriesname, visible: W }, this.addDatasetSpecificEvtArgs(e), P = ae === n + 0, ee.props = { element: { attr: { x: i || 0, width: u || 0, height: g || 0, y: n || 0, r: ne, fill: (0, l.toRaphaelColor)(b[0]) || "", stroke: de ? (0, l.toRaphaelColor)(b[1]) || "" : l.TRACKER_FILL, "stroke-width": de ? ie : 0, "stroke-dasharray": y, "stroke-linejoin": "miter", visibility: W, cursor: m ? "pointer" : "" } } }, U && (ee.props.element.attr.noGradient = !oe, ee.props.element.attr.xDepth = Y, ee.props.element.attr.yDepth = X), e._xPos = i + Y, e._width = u, e._yPos = n - X, e._height = g, e._index = H, e._plotBorderThickness = ie, (m || J) && (g < d && (n -= (d - g) / 2, g = d), N.attr = { x: i, y: n, width: u, height: g, r: ne, cursor: m ? "pointer" : "", stroke: l.TRACKER_FILL, "stroke-width": de ? ie : 0, fill: l.TRACKER_FILL, visibility: W }), ee.oldValue = void 0, e._oldYBaseTouched = P }, a.parseLabelAttributes = function(e) { var t, a, i, o, r, l, s, c, h, u, d, g, p, f = this.getFromEnv("chart"),
                        m = f.config,
                        v = f.getFromEnv("smartLabel"),
                        b = f.config.dataLabelStyle,
                        x = this.config.legendInteractivity,
                        y = this.getState("visible"),
                        C = m.rotatevalues ? 270 : 0; if (u = (d = e && e.config) && d.setValue, e === n || u === n || null === u || !0 === d.labelSkip) return d && delete d.labelSkip, void((p = e && e.graphics) && p.label && p.label.hide());
                    (r = e.graphics) && (c = e._yPos, h = e._xPos, i = d.displayValue, d.showValue && null !== u ? (x && d._state || (v.setStyle(b), o = v.getOriSize(i), d._state = C ? { labelWidth: o.height, labelHeight: o.width } : { labelWidth: o.width, labelHeight: o.height }), s = (g = this._getValuePosition({ labelWidth: d._state.labelWidth, labelHeight: d._state.labelHeight, width: e._width, height: e._height, yPos: c, xPos: h, value: u })).textX, l = g.textY, d.props || (d.props = {}), t = d.dataLabelStyle, d.props.label = { attr: { x: s, y: l, text: i, "text-bound": [t.backgroundColor, t.borderColor, b.borderThickness, b.borderPadding, b.borderRadius, b.borderDash], opacity: y ? 1 : 0 } }, a = d.props.label.attr, x || (a["line-height"] = b.lineHeight, a.fill = t.color)) : r.label && (r.label.attr({ "text-bound": [] }), r.label.hide())) }, a.allocatePosition = function() { var e, t, a, i, n, o, r, l, s = this.getFromEnv("chart"),
                        c = s.config,
                        h = this.config,
                        u = this.components.data.length,
                        d = this.getFromEnv("yAxis"),
                        g = this.components.data,
                        p = c.isstacked,
                        f = this.getSkippingInfo && this.getSkippingInfo(),
                        m = f && f.draw; for (this.deleteFromEnv("columnWidth"), this.setColumnPosition(), this.calculateScrollRange(), p && this.updateYForStack(), this.createCoordinates(), i = d.getLimit(), r = d.getPixel(i.max), l = d.getPixel(i.min), n = h.scrollMinVal, o = h.scrollMaxVal, r > l ? (h.yAxisMaxPixel = r, h.yAxisMinPixel = l) : (h.yAxisMaxPixel = l, h.yAxisMinPixel = r), t = 0; t < u; t++) e = m[t] || t, s.hasScroll && (e < n || e > o) || (a = g[e]) && (this.parsePlotAttributes(a, e), this.parseLabelAttributes(a)) }, a.draw = function() { var e, t, a = this,
                        i = a.config,
                        n = a.getState("visible"),
                        o = a.getFromEnv("xAxis"),
                        r = o.getPixel(0),
                        l = o.getPixel(1),
                        s = a.getFromEnv("groupMaxWidth"),
                        c = a.getFromEnv("chart").config.xDepth || 0,
                        h = a.getFromEnv("yAxis"),
                        d = i.drawn,
                        g = h.getLimit(),
                        p = g.max,
                        f = g.min,
                        m = p > 0 && f < 0,
                        v = a._contextChanged(),
                        b = (a.getSkippingInfo && a.getSkippingInfo() || {}).skippingApplied;
                    s || (s = C(l - r), a.addToEnv("groupMaxWidth", s)), (a.getState("removed") || a.getState("dirty") || v && n) && (!d && a.createContainer(), a.setContainerVisibility(!0), b && a.hidePlots(), a.drawPlots(), a.drawCommonElements && !a.config.skipCommonElements && a.drawCommonElements(), e = i.scrollMinValForLabel, t = i.scrollMaxValForLabel, i.drawn ? a.drawLabel(e, t) : a.addJob("labelDrawID", (function() { a.drawLabel(e, t) }), u.priorityList.label), i.drawn = !0, a.removePlots(), i.oldGroupMaxWidth = s, i.oldDataIsPositiveNegative = m, i.oldZeroAxisPos = h.getPixel(h.getAxisBase()) + c, a.drawErrorValue && a.drawErrorValue(), i.prevVisible = n, i.catDiff = 0) }, a.show = function() { var e = this.getLinkedParent(),
                        t = this.getFromEnv("legend");
                    t && t.getItem(this.config.legendItemId) && t.getItem(this.config.legendItemId).removeLegendState("hidden"), this.setState("visible", !0), this.config.appearing = !0, this._conatinerHidden = !1, this.setState("dirty", !0), e.childChanged(), this.config.appearing = !1, this.asyncDraw() }, a.hide = function() { var e = this.getLinkedParent(),
                        t = this.getFromEnv("legend");
                    t && t.getItem(this.config.legendItemId) && t.getItem(this.config.legendItemId).setLegendState("hidden"), this.setState("dirty", !0), this.setState("visible", !1), e.childChanged(), this.asyncDraw() }, a.drawLabel = function(e, t) { var a, i, o, r, s, c, h, u, d, g, p, f, m = this.getFromEnv("chart"),
                        v = this.getFromEnv("animationManager"),
                        b = m.config,
                        x = this.getFromEnv("xAxis"),
                        y = this.getFromEnv("paper"),
                        C = this.getState("visible"),
                        k = m.getFromEnv("smartLabel"),
                        S = m.config.dataLabelStyle,
                        w = this.config,
                        L = x.getTicksLen(),
                        A = this.components,
                        N = A.data,
                        E = A.pool,
                        T = b.rotatevalues ? 270 : 0,
                        F = w.labelDrawn,
                        _ = this.getSkippingInfo && this.getSkippingInfo(),
                        P = _ && _.skippingApplied,
                        D = _ && _.labelDraw || [],
                        I = D.length,
                        M = (0, l.pluckNumber)(e, 0),
                        O = (0, l.pluckNumber)(t, P ? I : L),
                        R = I === Math.abs(O - (M + 1)),
                        B = function() { this.attr({ "text-bound": [] }), this.hide() }; for ((f = this.getContainer("labelGroup")).css({ fontFamily: S.fontFamily, fontSize: S.fontSize, fontWeight: S.fontWeight, fontStyle: S.fontStyle }), f.show(), k.useEllipsesOnOverflow(m.config.useEllipsesWhenOverflow), k.setStyle(S), r = M; r < O; r++) h = (u = (a = N[o = P && R ? D[r] : r]) && a.config) && u.setValue, a !== n && h !== n && null !== h && !0 !== u.labelSkip ? (s = a.graphics) && (u.showValue && null !== h ? (i = u.props.label.attr, c = a._xPos, !s.label && F && m.isRealTime && ((d = (0, l.extend2)({}, i)).x = i.x - c + (a._newXPos || 0), d.transform = y.getSuggestiveRotation(T, d.x, i.y), E && E.label[0] && (s.label = E.label[0], E.label.splice(0, 1))), i.transform = y.getSuggestiveRotation(T, i.x, i.y), (g = s.label) || E && E.label[0] && (g = s.label = E.label[0], E.label.splice(0, 1)), (g = v.setAnimation({ el: s.label || "text", attr: i, component: this, label: "plotLabel", index: o, container: f, callback: !C && B })) && g.show(), g && g.outlineText(w.showTextOutline, i.fill), s.label || (s.label = this.addGraphicalElement("plotLabel", g, !0))) : s.label && (s.label.attr({ "text-bound": [] }), s.label.hide())) : (u && delete u.labelSkip, (p = a && a.graphics) && p.label && p.label.hide());
                    w.labelDrawn = !0 }, a._getValuePosition = function(e) { var t, a, i, n, o, r, s, c, h, u = this.getFromEnv("chart"),
                        d = u.getChildren(),
                        g = u.config,
                        p = d.yAxis[0],
                        f = g.xDepth || 0,
                        m = g.yDepth || 0,
                        v = g.canvasTop,
                        b = g.canvasHeight + m,
                        C = e.yPos,
                        k = u.config.is3D,
                        S = u.config.isstacked,
                        w = g.valuepadding + 2,
                        L = e.height,
                        A = e.width,
                        N = g.placevaluesinside,
                        E = e.labelHeight,
                        T = p.getAxisConfig("isReverse"),
                        F = e.value; return T || (c = !(F < 0)), r = h = E + w, n = L, i = C - (s = .5 * h + w), a = e.xPos + .5 * A, (o = (0, l.pluck)(c, F < 0)) ? (t = v + b - (C + L + m), i = C) : t = C - v, S ? (i = x(v + b - .5 * r, i = C + .5 * L + (m || 0)), i = y(v + .5 * r, i), a -= f) : N ? n >= r ? (i = C + (o ? L - s : s), k && (a -= f, i += m)) : t >= r ? (i = C + (o ? L + s : -s), k && o && (a -= f, i += m)) : (i = C + (o ? L - s : s), k && (a -= f, i += m)) : t >= r ? (i = C + (o ? L + s : -s), k && (o ? (a -= f, i += m) : a -= f / 2)) : (i = C + (o ? L - s : s), k && (a -= f, i += m)), { textX: a, textY: i } }, a.getDataLimits = function() { return { max: this.config.maxValue, min: this.config.minValue } }, a.addData = function(e, t, a) { var i, o = this.components,
                        r = o.data,
                        l = e.data.length; for (o.addDataArr = e.data, 0 === t ? this.startPosition = !0 : t + l !== r.length && t !== n || (this.startPosition = !1), i = 0; i < l; i++) t !== n ? r.splice(t + i, 0, { config: {} }) : r.push({ config: {} });
                    this._setConfigure(e, t), a && this.asyncDraw() }, a.removeData = function(e, t, a) { var i, o, r = e,
                        l = t,
                        s = this.getFromEnv("chart"),
                        c = this.components,
                        h = c.data,
                        u = c.removeDataArr || (c.removeDataArr = []); for (l === n && (l = 1), (r = r || 0) + l !== h.length && s.isRealTime ? 0 !== r && r !== n || (this.endPosition = !1) : this.endPosition = !0, c.removeDataArr = u = u.concat(h.splice(r, l)), i = (o = u.length) - 1; i >= 0; i--) u[i] || u.splice(i, 1);
                    this.removeDataLen = o, a && this.asyncDraw() }, a.updateData = function(e, t, a) { var i = this.config,
                        n = i.maxValue,
                        o = i.prevMin,
                        r = this.getFromEnv("chart"),
                        l = this.groupManager || this,
                        s = r.getFromEnv("xAxis"),
                        c = r.getFromEnv("yAxis");
                    this._setConfigure(e, t), this.getDataLimits(), i.maxValue === n && i.minValue === o || (this.maxminFlag = !0), a && (r._setAxisLimits(), s && s[0].asyncDraw(), c && c[0].asyncDraw(), l.asyncDraw()) }, a.removePlots = function() { var e = this.components,
                        t = e && e.removeDataArr;
                    F(t, this.__removeElem) }, a.removeGraphicElem = function(e, t) { this.__removeElem(e, t) }, a.getAxisValuePadding = function() { return this.config.defaultPadding }, a.getCanvasPadding = function() { var e, t, a, i, o, r, s = this.config || (this.config = {}),
                        c = this.components || {},
                        h = this.getFromEnv("chart"),
                        u = h.config.rotatevalues,
                        d = this.getFromEnv("xAxis"),
                        g = this.getFromEnv("yAxis"),
                        p = h.config.dataLabelStyle,
                        f = this.getSkippingInfo(),
                        m = f.skippingApplied,
                        v = f.draw,
                        b = c.data || [],
                        x = m ? v[0] : 0,
                        C = m ? v[v.length - 1] : b.length - 1,
                        k = s.leftMostData || b[x],
                        S = s.rightMostData || b[C],
                        w = {},
                        L = {},
                        A = 0,
                        N = 0,
                        E = 0,
                        T = d.getPixel(0),
                        F = this.getFromEnv("smartLabel"),
                        _ = { paddingLeft: 0, paddingRight: 0, paddingTop: 0, paddingBottom: 0 },
                        P = 0,
                        D = d.getValuePadding(),
                        I = s.topMostData,
                        M = s.bottomMostData; return this.setColumnPosition(), r = { xPosOffset: this.getFromEnv("columnXShift"), columnWidth: this.getFromEnv("columnWidth"), height: n }, k && (i = (e = k.config).showValue, a = e && e.anchorProps || {}, i && (t = e.displayValue, F.useEllipsesOnOverflow(h.config.useEllipsesWhenOverflow), F.setStyle(p), L = F.getOriSize(t), P = u ? L.height : L.width), null !== e.setValue && (o = d.getPixel(D.left), (E = (A = a.enabled && (0, l.pluckNumber)(a.radius, 0) + (0, l.pluckNumber)(a.borderThickness, 0) / 2 || 0) - (o - T)) < 0 && (E = 0), (N = (P || 0) / 2 - (o - T) - (r && r.xPosOffset + r.columnWidth / 2 || 0)) < 0 && (N = 0)), _.paddingLeft = y(E, N)), E = N = 0, S && (i = (e = S.config).showValue, a = e && e.anchorProps || {}, i && !u && (t = e.displayValue, F.setStyle(p), w = F.getOriSize(t), P = u ? w.height : w.width), null !== e.setValue && (o = d.getPixel(D.right), (E = (A = a.enabled && (0, l.pluckNumber)(a.radius, 0) + (0, l.pluckNumber)(a.borderThickness, 0) / 2 || 0) - (o - T)) < 0 && (E = 0), (N = (P || 0) / 2 - (o - T) + (r && r.xPosOffset + r.columnWidth / 2 || 0)) < 0 && (N = 0)), _.paddingRight = y(E, N)), I && (i = (e = I.config).showValue, a = e && e.anchorProps || {}, null !== e.setValue && (A = (0, l.pluckNumber)(a.radius, 0) + (0, l.pluckNumber)(a.borderThickness, 0) / 2, N = Math.max(A - (g.getPixel(e.setValue.y) - g.getPixel(g.getLimit().max)), 0)), _.paddingTop = N), M && (a = (e = M.config) && e.anchorProps || {}, null !== e.setValue && (A = (0, l.pluckNumber)(a.radius, 0) + (0, l.pluckNumber)(a.borderThickness, 0) / 2, N = Math.max(A - (g.getPixel(g.getLimit().min) - g.getPixel(e.setValue.y)), 0)), _.paddingBottom = N), _ }, a.getEventArgs = function() { var e = this.config || {}; return { datasetName: (this.config.JSONData || {}).seriesname, datasetIndex: this.getJSONIndex(), id: e.userID, visible: !this.getState("visible") } }, a.getData = function() { return this.components.data }, a.setJSONIndex = function(e) { this.config.index = e }, a.getJSONIndex = function() { return this.config.index || 0 }, a.remove = function(t) { var a = this.config.legendItemId,
                        i = this.getFromEnv("chart").getChildren("legend"),
                        n = this.getFromEnv("legend");
                    i && i.length && n && a && n.disposeItem(a), e.prototype.remove.call(this, t) }, a.setMaxMin = function(e) { var t, a, i, o = this.components,
                        r = o.data,
                        l = o.removeDataArr,
                        s = this.config,
                        c = r.length,
                        h = -Infinity,
                        u = +Infinity,
                        d = s.maxValue,
                        g = s.minValue,
                        p = l.length,
                        f = !1; if (e) f = d === e.startValue || g === e.startValue || d < e.config.setValue || g > e.config.setValue;
                    else if (p)
                        for (t = 0; t < p; ++t)
                            if (d === (i = l[t] && l[t].config && l[t].config.setValue) || g === i) { f = !0; break } if (f) { for (t = 0; t < c; t++) r[t] && (a = r[t].config.setValue) !== n && (h = y(h, a), u = x(u, a));
                        s.maxValue = h, s.minValue = u } }, t }(s.ComponentInterface);
            _.prototype._configureDataLabelStyle = l.configureDataLabelStyle; var P = _;
            t["default"] = P },
        521: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = a(215),
                n = { "initial.dataset.column": function() { var e = this,
                            t = e.getFromEnv("chart"),
                            a = t.config.yDepth || 0,
                            n = "y",
                            o = "height",
                            r = "x",
                            l = "width",
                            s = e.getFromEnv("yAxis"),
                            c = e.getFromEnv("xAxis"),
                            h = function(i, c) { var h, u, d, g, p = e.config,
                                    f = c && c.graphics && c.graphics.element,
                                    m = i.attr,
                                    v = s.getPixel(s.getAxisBase()) + (t.isBar ? -a : a),
                                    b = {},
                                    x = p.oldZeroAxisPos; if (h = f.attr(), b[n] = u = h[n], b[o] = h[o], b[r] = h[r], b[l] = h[l], d = h[n] + h[o], v !== x && (x - v >= 0 ? (u > v && u <= x + .7 && (b[n] = v, d > x && (b[o] = d - b[n])), d > v && d <= x + .7 && (b[o] = v - (b[n] || 0 === b[n] ? b[n] : u))) : (u < v && u >= x - .7 && (b[n] = v, d > v && (b[o] = d - b[n])), d < v && d >= x - .7 && (b[o] = v - (b[n] || 0 === b[n] ? b[n] : u))), g = !0), e.config.catDiff && (b[r] = m[r], b[l] = m[l], g = !0), c._plot_1Start = b, g) return { finalAttr: b, slot: "axis" } }; return { "rect.appearing": function(h) { var u, d, g, p, f = s.getPixel(s.getAxisBase()) + (t.isBar ? -a : a),
                                    m = h.props && h.props.originalIndex || h.index,
                                    v = e.components.data[m],
                                    b = h.attr; return c.config.isVertical && (n = "x", o = "width", r = "y", l = "height"), u = b[n], d = b[o], p = Math.sign(u + d / 2 - f), g = 1 === p ? u : u + d, v._posWRT0 = p, [{ initialAttr: function() { var e = {}; return e[n] = g, e.opacity = 0, e[o] = 0, e }, finalAttr: { opacity: 1 }, startEnd: function() { var t = h.length; return i.animHelperFN.getTimeByValue(i.animHelperFN.animByWeight(h.index, t, .6), { startPx: f, endPx: 1 === p ? e.config.yAxisMaxPixel : e.config.yAxisMinPixel }, { startPx: g, endPx: 1 === p ? b[n] + b[o] : b[n] }) }, hookFn: function() { this.attr({ opacity: 1 }) }, effect: "linear", slot: "plot" }] }, "rect.updating": function(i) { var u, d, g, p, f, m, v, b, x, y, C, k, S, w, L, A, N, E, T, F, _, P, D, I, M, O, R, B, V = [],
                                    G = e.components.data[i.props && i.props.originalIndex || i.index],
                                    z = i.attr,
                                    H = G && G.graphics && G.graphics.element,
                                    W = s.getPixel(s.getAxisBase()) + (t.isBar ? -a : a),
                                    j = 0,
                                    U = e.getFromEnv("numColDiff"); return c.config.isVertical && (n = "x", o = "width", r = "y", l = "height"), (B = h(i, G)) && V.push(B), S = (k = G.prevDataObj) && k._plot_1Start, T = k && k._plot_1End, w = k && k._plot_2Start, L = G.oldPrevDataObj, A = G.oldPrevDataObj && G.oldPrevDataObj._plot_1End, g = (u = (b = G._plot_1Start)[n]) + (d = b[o]), p = u + d / 2, v = (f = z[n]) + (m = z[o]) / 2, N = (g + (f + m)) / 2, F = Math.sign(p - W), _ = Math.sign(v - W), (C = {})[n] = (y = {})[n] = (u + f) / 2, C[o] = y[o] = (d + m) / 2, d ? F !== _ ? (C[o] = y[o] = 0, y[n] = L && L._oldPosWRT0 === F ? A[n] + (1 === F ? A[o] : 0) : W, C[n] = w ? w[n] + (1 === _ ? w[o] : 0) : W, E = x = !0) : k !== L && (D = (P = A || !(!T || Math.sign(T[n] + T[o] / 2 - W) !== F) && T) ? P[n] + (1 === F ? P[o] : 0) : W, 1 === F ? (C[n] = y[n] = D, C[o] = y[o] = N - y[n]) : C[o] = y[o] = D - y[n], x = !0) : k && k._oldPosWRT0 === _ || 0 === e.stackIndex ? ((O = {})[o] = 0, O[n] = S ? S[n] + (k._posWRT0 > 0 ? S[o] : 0) : W, G._posWRT0 = _, G._plot_1Start = O, C[n] = y[n] = (O[n] + f) / 2, C[o] = y[o] = m / 2) : p === W && (_ !== G._posWRT0 ? j = .5 : (x = !0, y[n] = 1 === _ ? W : W - y[o])), U < 0 ? (y[r] = z[r], y[l] = z[l], x = !0) : U > 0 ? j = .5 : b[r] === z[r] && b[l] === z[l] || (.5 === j ? ((O = {})[r] = z[r], O[l] = z[l], I = function() { E && H.attr(C), H.attr(O) }) : (y[r] = z[r], y[l] = z[l], x = !0, I && (M = function() { H.attr(O) }, I = void 0))), x && (V.push({ finalAttr: y, startEnd: { start: 0, end: .5 }, hookFn: M, slot: "plot" }), j = .5), !I && (I = function() { E && H.attr(C) }), V.push({ effect: "linear", startEnd: { start: j, end: 1 }, finalAttr: { x: z.x, y: z.y, width: z.width, height: z.height }, callback: function() { null !== G.config.setValue && void 0 !== G.config.setValue || this.hide() }, hookFn: I, slot: "plot" }), delete(R = Object.assign({}, z)).x, delete R.y, delete R.width, delete R.height, V.push({ finalAttr: R, effect: "linear", slot: "plot" }), G._plot_1End = y, G._plot_2Start = C, G._oldPosWRT0 = G._posWRT0, G._posWRT0 = _, V }, "rect._disappearing": function(i) { var r, l, c, u, d, g = s.getPixel(s.getAxisBase()) + (t.isBar ? -a : a),
                                    p = e.components.removeDataArr,
                                    f = p && p[i.props && i.props.originalIndex || i.index] || e.components.data[i.props && i.props.originalIndex || i.index],
                                    m = f && f.graphics && f.graphics.element,
                                    v = f.oldPrevDataObj && f.oldPrevDataObj._plot_1End,
                                    b = []; if (m) return (u = h(i, f)) && b.push(u), s.config.isVertical || (n = "x", o = "width"), r = (l = (d = f._plot_1Start)[n]) + d[o] / 2 > g ? v ? v[n] + v[o] : l : v ? v[n] : g, (c = {})[n] = r, c[o] = 0, c.width = f._width, c.x = f._xPos, b.push({ startEnd: { start: 0, end: e.getFromEnv("numOfColumns") < 1 ? 1 : .5 }, finalAttr: c, slot: "plot" }), f._plot_1End = i.finalAttr, b }, "plotLabel.appearing": [{ initialAttr: { opacity: 0 }, slot: "final" }], "plotLabel._disappearing": [{ hookFn: function() { this.hide() }, slot: "initial" }], "plotLabel.updating": [{ hookFn: function() { this.hide() }, slot: "initial" }, { hookFn: function() { this.show() }, initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }], "group.appearing": function(e) { return "label-group" === e.attr.name ? [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }] : [{ initialAttr: { opacity: 1 }, finalAttr: { opacity: 1 }, slot: "final" }] }, "*": null } } };
            t["default"] = n },
        537: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(538)),
                r = a(215),
                l = a(223),
                s = i(a(540)),
                c = Math.abs;
            (0, l.addDep)({ name: "lineAnimation", type: "animationRule", extension: s["default"] }); var h = function(e) {
                function t() { var t; return (t = e.call(this) || this).updateYForStack = r.stubFN, t.config.primitiveType = "line", t }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "dataset" }, a.getName = function() { return "line" }, a.createPinElem = function() { var e, t, a, i = this,
                        n = i.getFromEnv("chart"),
                        o = arguments[1].group,
                        r = i.config.lineOb,
                        l = i.getGraphicalElement("pinElems") || i.addGraphicalElement("pinElems", []),
                        s = i.getFromEnv("paper"),
                        h = i.getLinkedParent().getChildContainer("lineVcanvasGroup"); for (t = l.length - 1; t >= 0; t--) l[t].remove(), l.pop(); if (i.getState("visible"))
                        for (a in r) e = r[a].el, l.push(s.path(o).attr({ path: e.attrs.path, transform: ["T", -(n.config._visx + c(h.transform()[0][1])), -n.config.canvasBottom] }).attr(i.config.pin)) }, a._addLegend = function() { var e, t, a, i = this.getFromEnv("chart"),
                        n = this.config,
                        o = i.getChildren("legend")[0],
                        l = (0, r.pluckNumber)(n.drawanchors, 1);
                    n.includeinlegend ? (a = { enabled: n.includeinlegend, type: this.getName(), drawLine: (0, r.pluck)(n.drawLine, !0), index: this.getJSONIndex(), anchorSide: l ? n.anchorsides : 0, label: (0, r.getFirstValue)(this.config.JSONData.seriesname) }, (e = o.getItem(this.config.legendItemId)) || (this.config.legendItemId = o.createItem(this), e = o.getItem(this.config.legendItemId), this.addExtEventListener("fc-click", (function() { e.itemClickFn() }), e)), t = { symbol: { fill: (0, r.toRaphaelColor)({ color: n.anchorbgcolor, alpha: n.anchorbgalpha }), rawFillColor: n.anchorbgcolor, rawStrokeColor: n.anchorbordercolor, stroke: (0, r.toRaphaelColor)({ color: n.anchorbordercolor, alpha: "100" }), "stroke-width": n.anchorborderthickness, lineWidth: n.linethickness } }, e.setStateCosmetics("default", t), this.getState("visible") ? e.removeLegendState("hidden") : e.setLegendState("hidden"), e.configure(a)) : this.config.legendItemId && o.disposeItem(this.config.legendItemId) }, a._getDataLimits = function() { var e = this.config,
                        t = this.getFromEnv("chart").config,
                        a = e.maxValue,
                        i = e.minValue,
                        n = -Infinity,
                        o = +Infinity,
                        r = t.transposeAxis; return !1 === this.getState("visible") && r && (a = n, i = o), { max: a, min: i } }, a._drawCommonElementsHelper = function(e) { var t, a, i, n = this,
                        o = r.BLANKSTRING,
                        l = {},
                        s = n.getFromEnv("animationManager"),
                        c = n.config,
                        h = c.shadow,
                        u = c.linethickness,
                        d = n.getContainer("commonElemsGroup"),
                        g = function() {!1 === n.getState("visible") && this.hide() }; for (o in e) { for (t = ["M0,0"], a = 0, i = (l = e[o]).path && l.path.length; a < i; ++a) t = t.concat(l.path[a].getPathArr());
                        n.config.drawLine ? (l.el = s.setAnimation({ el: l.el || "path", container: d, component: n, attr: !1 !== n.getState("visible") && Object.assign({ path: t }, l.attr), label: "line", callback: g }), n.getState("visible") && l.el && l.el.show()) : l.el && (l.el = s.setAnimation({ el: l.el, component: n, doNotRemove: !0, callback: function() { this.hide() } })), !l.used && delete e[o], l.el && (u ? l.el.shadow(h, d) : l.el.shadow({ opacity: 0 }, d), l.el.toFront()), l.old = !0, l.used = !1, l.prevPath = l.path, l.attrs = void 0, l.path = void 0 } }, a.getLineShift = function(e) { var t = this.getFromEnv("chart"),
                        a = t.config.is3D,
                        i = t.config.use3dlineshift; return "y" === e ? a ? i ? 0 : -10 : 0 : a ? 10 : 0 }, a.drawCommonElements = function() { var e, t, a, i, n, o, l, s, c, h, u = this.components.data,
                        d = this.config,
                        g = this.getFromEnv("xAxis"),
                        p = this.getFromEnv("yAxis"),
                        f = d.lineDashStyle,
                        m = d.linethickness,
                        v = { color: d.linecolor, alpha: d.alpha },
                        b = [(0, r.toRaphaelColor)(v), f].join(":"),
                        x = b,
                        y = { x: g.getLimit(), y: p.getLimit() },
                        C = u.length,
                        k = this.config.lineOb || {},
                        S = 0,
                        w = !1,
                        L = this.getSkippingInfo && this.getSkippingInfo(),
                        A = L && L.draw || [],
                        N = A.length,
                        E = L && L.skippingApplied,
                        T = function(e, t, a) { var i = k[e];
                            i || (i = k[e] = {}), e !== x && (i.hasDifferentColor = !0), i.used = !0, i.pathWithNull = a, i.path = i.path || [], i.stroke = e.split(":")[0], i.dashStyle = e.split(":")[1], i.path.push(t), i.dashStyle = i.dashStyle && i.dashStyle.split(","), i.attr = { "stroke-dasharray": i.dashStyle, "stroke-width": m, stroke: i.stroke, "stroke-linecap": "round", "stroke-linejoin": m > 2 ? "round" : "miter" } },
                        F = []; for (y.x.minPixel = g.getPixel(y.x.min), y.x.maxPixel = g.getPixel(y.x.max), y.y.minPixel = p.getPixel(y.y.min), y.y.maxPixel = p.getPixel(y.y.max), y.y.base = p.getPixel(0), y.x.base = g.getPixel(0), E && (C = N), i = 0; i < C; ++i)(n = u[a = A[i] || i]) && ((l = n.config || {})._Pbx = void 0, l._Pby = void 0, F[a] = { config: { _Px: l._Px, _Py: l._Py, setValue: l.setValue } }, t = { color: l.setColor, alpha: l.setAlpha }, e = l.dashStyle, b !== (o = [(0, r.toRaphaelColor)({ color: (0, r.pluck)(t.color, v.color), alpha: (0, r.pluck)(t.alpha, v.alpha) }), e || f].join(":")) && null !== n._yVal && (w = !0, s = a, c = this.getLinePath(u, { begin: S, end: s + 1 }), h = this.getLinePath(u, { begin: S, end: s + 1 }, void 0), l.connStartIndex = S, l.connEndIndex = s, T(b, c, h.getPathArr()), b = o, S = a, s = null), null !== n._yVal && (b = o));
                    o || (o = r.BLANKSTRING), d.pathStartIndex = S, d.pathEndIndex = s, T(o, c = this.getLinePath(u, { begin: w ? S : d.scrollMinVal, end: w ? s : d.scrollMaxVal }), (h = this.getLinePath(u, { begin: S, end: s }, void 0)).getPathArr()), this._drawCommonElementsHelper(k), this.config.lineOb = k, d.prevLim = y, d.prevDataStore = F }, a.show = function() { e.prototype.show.call(this), this.fireEvent("datasetVisibilityChanged", { dataset: this, state: "show" }) }, a.hide = function() { e.prototype.hide.call(this), this.fireEvent("datasetVisibilityChanged", { dataset: this, state: "hide" }) }, t }(o["default"]);
            t["default"] = h },
        538: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n, o = i(a(232)),
                r = i(a(229)),
                l = i(a(520)),
                s = a(215),
                c = a(227),
                h = a(223),
                u = i(a(539)),
                d = !s.hasSVG,
                g = "DataPlotRollOver",
                p = "DataPlotRollOut",
                f = "L",
                m = "Z",
                v = s.hasTouch ? s.TOUCH_THRESHOLD_PIXELS : s.CLICK_THRESHOLD_PIXELS,
                b = s.preDefStr.DEFAULT,
                x = s.preDefStr.setRolloverAttrStr,
                y = s.preDefStr.setRolloutAttrStr,
                C = function(e) { void 0 === e && (e = "full"); var t = this.pathMap,
                        a = this.path2Map,
                        i = [],
                        n = [],
                        o = !0; switch (e) {
                        case "detailed":
                            for (var r in t)
                                if (t.hasOwnProperty(r) && (i.push(t[r]), a[r].length)) { var l = t[r],
                                        s = Object.assign([], a[r]); if (s[s.length - 1] === m && s.pop(), s.length) { var c = Object.assign([], l[l.length - 1]),
                                            h = Object.assign([], l[0]);
                                        c[0] = "M", h[0] = f, s.unshift(c), s.push(h) } n.push(s) } return (i = i.flat()).length ? { top: i, bottom: n.flat() } : { top: ["M0,0"], bottom: ["M0,0"] };
                        case "top":
                            o = !1;
                        default:
                            for (var u in t) t.hasOwnProperty(u) && (i.push(t[u]), o && i.push(a[u])); return (i = i.flat()).length ? i : ["M0,0"] } },
                k = function(e) { return e !== n && null !== e && "" !== e },
                S = Math,
                w = S.min,
                L = S.max,
                A = S.ceil,
                N = function(e, t) { var a, i, n, o, r, l, c, h, u, g, p, f, m, v, b, C, k = e.getFromEnv("chart").config,
                        S = t.config,
                        A = t.graphics,
                        N = A.image || A.element,
                        E = S.eventArgs,
                        T = N._.RefImg,
                        F = t._xPos,
                        _ = t._yPos,
                        P = S.anchorProps,
                        D = e.getContainer("shadowGroup"),
                        I = S.hoverEffects,
                        M = S.setLink,
                        O = P.imageScale,
                        R = P.imageAlpha,
                        B = I.imageHoverAlpha,
                        V = I.imageHoverScale,
                        G = T.height * O * .01,
                        z = T.width * O * .01,
                        H = T.width * V * .01,
                        W = T.height * V * .01;
                    v = P.isAnchorRadius, P.markerRadius = i = P.radius = v ? P.radius : w(z, G) / 2, d ? (f = { x: F - T.width * O * .005, y: _ - T.height * O * .005, width: z, height: G }, p = { x: F - T.width * V * .005, y: _ - T.height * V * .005, width: H, height: T.height * V * .01, alpha: B }, S.isAnchorsDrawn = !0, k.dragTolerance = k.dragTolerance < G ? G + .5 : k.dragTolerance, N.data("alwaysInvisible", !O).data("setRolloverProperties", I).data("hoverEnabled", I).data(x, p).data(y, f).data("imgRef", T).data("anchorRadius", O).data("anchorHoverRadius", V), N.attr(f), f.alpha = R) : (a = P.symbol[1], b = I.isAnchorHoverRadius, n = P.shadow, h = P.imagePadding, I.radius = b ? I.anchorRadius : i + 1, r = I.radius - h - .5 * I.anchorBorderThickness, c = i - h - .5 * P.borderThickness, p = f = {}, k.dragTolerance = k.dragTolerance < i ? i + .5 : k.dragTolerance, C = { fill: (0, s.toRaphaelColor)({ color: P.bgColor, alpha: P.bgAlpha }), "stroke-width": P.borderThickness, stroke: (0, s.toRaphaelColor)({ color: P.borderColor, alpha: P.borderAlpha }) }, f = (0, s.extend2)({ path: (0, s.polyPathToPath)([a || 2, F, _, i, P.startAngle, void 0]) }, C), I && (p = { path: (0, s.polyPathToPath)([I.anchorSides || 2, F, _, I.radius, I.startAngle, I.dip]), fill: (0, s.toRaphaelColor)({ color: I.anchorColor, alpha: I.anchorBgAlpha }), "stroke-width": I.anchorBorderThickness, stroke: (0, s.toRaphaelColor)({ color: I.anchorBorderColor, alpha: I.anchorBorderAlpha }) }, B > (g = L(I.anchorAlpha, I.anchorBorderAlpha)) && (B = g)), P.bgAlpha && P.borderAlpha && R > (u = L(P.bgAlpha, P.borderAlpha)) && (R = u), (m = A.element).attr(Object.assign(C, { path: f.path })), m.attr({ cursor: M ? "pointer" : "" }).data("alwaysInvisible", !i).data("setRolloverProperties", I).data("hoverEnabled", I.enabled).data(x, p).data(y, f).data("anchorRadius", i).data("anchorHoverRadius", I && I.radius).data("eventArgs", E).shadow(n, D), l = (0, s.polyPathToPath)([a || 2, F, _, c > 0 ? c : 0, P.startAngle, void 0]), o = (0, s.polyPathToPath)([a || 2, F, _, r > 0 ? r : 0, I.startAngle, I.dip]), P.imgRefWidth = T.width, P.imgRefHeight = T.height, P.imgRefScale = O, P.rolloutClipRadius = c, f = { x: F - T.width * O * .005, y: _ - T.height * O * .005, width: z, height: G, "clip-path": l }, p = { x: F - T.width * V * .005, y: _ - T.height * V * .005, width: H, height: W, alpha: B, "clip-path": o }, N.attr({ x: f.x, y: f.y, width: f.width, height: f.height, "clip-path": f["clip-path"] }).data("alwaysInvisible", !O).data("setRolloverProperties", I).data(x, p).data(y, f).data("anchorRadius", O).data("imgRef", T).data("anchorHoverRadius", V), S.isAnchorsDrawn = !0, i = L(i, I && I.anchorRadius || 0, 2)), t._xPos = F, t._yPos = _, e.parseLabelAttributes(t, t._index) };
            (0, h.addDep)({ name: "areaAnimation", type: "animationRule", extension: u["default"] }); var E = function(e) {
                function t() { var t;
                    t = e.call(this) || this; var a = (0, o["default"])(t); return a.__removeElem = function(e, t) { a._setRemoveAnim(e, "element" === t || "image" === t ? "anchor" : "label") }, a.config.primitiveType = "area", t }(0, r["default"])(t, e); var a = t.prototype; return a.getType = function() { return "dataset" }, a.getName = function() { return "area" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                    t.valueposition = n, t.plotborderdashlen = n, t.plotborderdashgap = n, t.plotborderdashstyle = n, t.plotborderthickness = n, t.linethickness = n, t.linedashlen = n, t.linedashgap = n, t.dashed = n, t.linedashstyle = n, t.linecolor = n, t.linealpha = n, t.anchorbgcolor = n, t.anchorbordercolor = n, t.anchorradius = n, t.anchoralpha = n, t.anchorimageurl = n, t.anchorsides = n, t.anchorbgalpha = n, t.anchorborderthickness = n, t.anchorshadow = n, t.anchorstartangle = n, t.anchorimagealpha = n, t.anchorimagescale = n, t.anchorimagepadding = n, t.alpha = n, t.parentyaxis = n, t.inheritplotbordercolor = n }, a._getHoveredPlot = function(e, t) { var a, i, n, o, r, l, s = e,
                        c = this.getFromEnv("xAxis"),
                        h = this.components.data,
                        u = h.length,
                        d = this.config,
                        g = this.getFromEnv("chartConfig").viewPortConfig.step || 1,
                        p = d && d.radius || 0,
                        f = (this.getSkippingInfo && this.getSkippingInfo()).plotsPerBin; for (s += c.getTranslation(), i = Math.floor(Math.max(c.getValue(s - p), 0)), n = Math.ceil(Math.min(c.getValue(s + p), u - 1)), r + f - 1, f > 1 && (i = r = (A(i / f) - 1) * f + 1, n = A(n / f) * f), l = n; l >= i && (!(a = h[l]) || l % g || !(o = this.isWithinShape(a, l, s, t))); l--); return o }, a.getClip = function(e) { var t = this.getFromEnv("xAxis"),
                        a = this.getFromEnv("yAxis"),
                        i = a.getLimit(),
                        n = t.getLimit(),
                        o = t.getPixel(n.min),
                        r = a.getPixel(i.min),
                        l = a.getPixel(i.max),
                        s = Math.abs(t.getPixel(n.max) - o),
                        c = r - l,
                        h = []; return h.push(o), h.push(c < 0 ? r : l), "init" === e ? h.push(0) : "canvas" === e && h.push(s), h.push(Math.abs(c)), h }, a.isWithinShape = function(e, t, a, i, n) { var o, r, l, c, h, u, d, g, p, f, m, b, x, y, C = n; if (e && ((C = e.config.setValue) || 0 === C)) return o = e.config.anchorProps, r = e.config, c = o && o.borderThickness, this, h = this.getFromEnv("chart").config.viewPortConfig, u = this.components.data, d = (0, s.pluckNumber)(r.dragTolerance, 0), y = h ? h.x * h.scaleX : 0, g = e._xPos - y, null !== (p = e._yPos) ? (x = e.config.hoverEffects, (l = Math.max(o && o.radius, x && x.anchorRadius || 0, v) + c / 2) || (l = 3), f = a - g, m = i - p, ((b = Math.sqrt(Math.pow(f, 2) + Math.pow(m, 2))) <= l || b <= d) && { pointIndex: t, hovered: !0, pointObj: u[t] }) : void 0 }, a._parseShadowOptions = function() { var e = this.getFromEnv("chart"),
                        t = this.config,
                        a = e.getFromEnv("dataSource").chart,
                        i = this.getFromEnv("color-manager"),
                        n = (0, s.pluckNumber)(e.defaultPlotShadow, i.getColor("showShadow")); return { opacity: (0, s.pluckNumber)(a.showshadow, n) ? t.alpha / 100 : 0 } }, a._firePlotEvent = function(e, t, a) { var i, o, r, l = this.getFromEnv("chart"),
                        s = this.components,
                        c = this.getFromEnv("toolTipController"),
                        h = s.data[t] || {},
                        u = this.getGraphicalElement("sharedAnchor"),
                        d = h.graphics && h.graphics.element || (h.config && h.config.setValue) !== n && u,
                        g = this.config.currentToolTip,
                        p = l.getFromEnv("paper").canvas.style; if (d) switch (r = (i = h.config).setLink, o = i.eventArgs, e) {
                        case "fc-mouseover":
                            this._decideTooltipType(t, a), this._rolloverResponseSetter(l, h, a), r && (p.cursor = "pointer"); break;
                        case "fc-mouseout":
                            c.hide(g), this._rolloutResponseSetter(l, h, a), p.cursor = b; break;
                        case "fc-click":
                            l.plotEventHandler(d, a, "dataplotclick", o); break;
                        case "fc-mousemove":
                            this._decideTooltipType(t, a) } }, a._rolloverResponseSetter = function(e, t, a, i) { var n = t.graphics,
                        o = n && (n.element || this.getAnchor(t)),
                        r = o && o.data("draged"),
                        l = o && o.data("hoverEnabled");!0 !== r && (this._hoverFunc(t, g, l, e.getFromEnv("dataSource").chart), !i && o && e.plotEventHandler(o, a, g)) }, a._rolloutResponseSetter = function(e, t, a, i) { var n = t.graphics,
                        o = n && (n.element || this.getAnchor(t)),
                        r = o && o.data("draged"),
                        l = o && o.data("hoverEnabled"),
                        s = this.type,
                        c = t.config,
                        h = c.anchorProps,
                        u = h.radius && h.anchorAlpha;!0 !== r && (this._hoverFunc(t, p, l, e.getFromEnv("dataSource").chart), !i && o && e.plotEventHandler(o, a, p)), c.isAnchorsDrawn && !u && "area" === s && o && o.hide() }, a.getAnchor = function(e) { void 0 === e && (e = {}); var t, a, i, n, o, r, l, s, c, h = this.getFromEnv("animationManager"),
                        u = this.getGraphicalElement("sharedAnchor"),
                        d = e.config; return u ? (t = d.anchorProps, a = d.eventArgs, (r = (o = d.hoverEffects).enabled) && (i = o.attrs && o.attrs.setRolloutAttr, n = o.attrs && o.attrs.setRolloverAttr), l = t.radius, s = t.shadow, c = this.getFromEnv("chartConfig").prevAnchorHovered, o.anchorAnimation = 0, e._index !== c && (u.shadow(s, this.getContainer("shadowGroup")).data("anchorRadius", l).data("anchorHoverRadius", o.anchorRadius).data("hoverEnabled", r).data("eventArgs", a), r && u.data(x, n).data(y, i)), this.getFromEnv("chartConfig").prevAnchorHovered = e._index, u) : (u = h.setAnimation({ el: "path", container: this.getContainer("plotGroup"), label: "anchor", doNotRemove: !0, component: this }), this.addGraphicalElement("sharedAnchor", u), u) }, a.configureAttributes = function(e) { if (!e) return !1;
                    this.trimData(e); var t = this.getFromEnv("chart");
                    this.config.JSONData = e, this.parseAttributes(), this._setConfigure(), this._realTimeConfigure && this._realTimeConfigure(), !1 !== t.config.hasLegend && t.config.showLegend && this._addLegend(), this.setState("dirty", !0) }, a.parseAttributes = function() { var e, t, a = this.getFromEnv("chart"),
                        i = a.config,
                        o = this.config,
                        r = this.getName(),
                        l = this.config.JSONData,
                        c = a.getFromEnv("chart-attrib"),
                        h = a.config.singleseries,
                        u = this.getFromEnv("color-manager"),
                        d = Math.floor(this.getJSONIndex()),
                        g = (0, s.pluckNumber)(l.showplotborder, c.showplotborder || 1),
                        p = (0, s.getFirstColor)(!h || (0, s.getValidValue)(c.palettecolors) ? u.getPlotColor(d) : u.getColor("plotFillColor").split(/\s*\,\s*/)[0]),
                        f = i.isdual,
                        m = i.haslineset;
                    o.showTextOutline = (0, s.pluckNumber)(c.textoutline, 0), o.maxValue = -Infinity, o.minValue = Infinity, (0, s.parseConfiguration)(l, o, a.config, { data: !0 }), o.inheritplotbordercolor = (0, s.pluckNumber)(l.inheritplotbordercolor, c.inheritplotbordercolor, 0), o.showValues = (0, s.pluckNumber)(l.showvalues, c.showvalues, "radar" === r ? 0 : 1), o.anchorimageurl = (0, s.pluck)(l.anchorimageurl, c.anchorimageurl, n), o.plotColor = p, o.parentYAxis = f && (m || "s" === (0, s.pluck)(l.parentyaxis && l.parentyaxis.toLowerCase(), "p")) ? 1 : 0, o.valueposition = o.valueposition.toLowerCase(), o.plotfillcolor = (0, s.pluck)(l.color, c.plotfillcolor, p), o.seriesname = (0, s.parseUnsafeString)(l.seriesname), e = i.useplotgradientcolor, o.plotgradientcolor = 0 !== e ? (0, s.getDefinedColor)(c.plotgradientcolor, u.getColor("plotGradientColor")) : "", o.plotfillalpha = (0, s.pluck)(l.alpha, i.plotfillalpha), o.fillColor = { color: o.plotfillcolor + (o.plotgradientcolor ? "," + o.plotgradientcolor : ""), alpha: o.plotfillalpha, angle: o.plotfillangle }, o.plotborderalpha = g ? (0, s.pluck)(l.plotborderalpha, c.plotborderalpha, l.alpha, o.inheritplotbordercolor ? "100" : c.plotfillalpha, "95") : 0, o.plotbordercolor = (0, s.pluck)(l.plotbordercolor, c.plotbordercolor, c.areabordercolor, o.inheritplotbordercolor ? o.fillColor.color : h ? (0, s.getValidValue)(c.palettecolors) ? u.getPlotColor(0) : u.getColor("plotBorderColor").split(/\s*\,\s*/)[0] : "666666"), o.plotborderColorObject = { color: o.plotbordercolor, alpha: o.plotborderalpha, angle: o.plotfillangle }, o.drawLine = (0, s.pluckNumber)(l.drawline, c.drawlines, 1), o.plotborderdashstyle = o.dashed ? (0, s.getDashStyle)(o.plotborderdashlen, o.plotborderdashgap) : "none", o.linecolor = (0, s.pluck)(l.color, c.linecolor, o.plotColor), o.legendSymbolColor = "line" === this.type ? o.linecolor : o.plotfillcolor, o.includeinlegend = (0, s.pluckNumber)(l.includeinlegend, o.seriesname ? 1 : 0), t = (0, s.getDashStyle)(o.linedashlen, o.linedashgap), o.lineDashStyle = o.dashed ? t : "none", o.defaultPadding = { left: 0, right: 0 }, o.shadow = this._parseShadowOptions(), o.drawanchors = (0, s.pluckNumber)(l.drawanchors, l.showanchors, c.showanchors, c.drawanchors), o.anchorbgcolor = (0, s.getFirstColor)((0, s.pluck)(l.anchorbgcolor, i.anchorbgcolor, u.getColor("anchorBgColor"))), o.anchorbordercolor = (0, s.getFirstColor)((0, s.pluck)(l.anchorbordercolor, i.anchorbordercolor, o.linecolor, o.plotColor)), this.setState("visible", 1 === (0, s.pluckNumber)(l.visible, !Number(l.initiallyhidden), 1) && o.drawLine) }, a._setConfigure = function(e, t) { var a, i, o, r, l, h, u, d, g, p = this.getFromEnv("chart"),
                        f = this.config,
                        m = p.config,
                        b = this.config.JSONData || [],
                        x = this.getFromEnv("xAxis"),
                        y = p.isRealTime,
                        C = m.realTimeConfig && m.realTimeConfig.numDisplaySets,
                        k = this.getFromEnv("dataSource").categories && this.getFromEnv("dataSource").categories[0] && this.getFromEnv("dataSource").categories[0].category,
                        S = f.initCatLen = y ? k && Array.isArray(k) && k.filter((function(e) { return !e.vline })).length || 0 : x.getTicksLen(),
                        w = e || b.data,
                        L = e && e.data.length,
                        A = m.isDrag,
                        N = this.getSkippingInfo && this.getSkippingInfo(),
                        E = N && N.draw || [],
                        T = E.length,
                        F = N && N.skippingApplied; for (g = L === n && S > C ? S - C : 0, o = y ? (0, s.pluckNumber)(L, S) : Math.min(S, w && w.length), f.imageCount = 0, (r = this.components.data) || (r = this.components.data = []), f.maxRadius = -Infinity, m.dragTolerance = m.dragTolerance || -Infinity, F && (o = T), h = g; h < o; h++) l = E[h] || h, e ? (a = e && e.data[l] || {}, i = t !== n ? r[d = t + l] : r[d = r.length - o + l], u = d) : (a = w && w[l] || {}, i = r[l -= g], u = l), i || (i = r[u] = {}), i.config || (i.config = {}), i.graphics || (i.graphics = {}), this._plotConfigure(u, a, L), d && d++;
                    F && this.addJob("configureRestID", this._configureRestData.bind(this), c.priorityList.postRender), m.dragTolerance = A ? (m.dragTolerance > 5 ? m.dragTolerance : 5.5) + v : 0, this.ErrorValueConfigure && this.ErrorValueConfigure() }, a._configureRestData = function() { var e, t, a, i, n, o, r = this.getFromEnv("chart"),
                        l = this.config,
                        s = r.config,
                        c = this.config.JSONData.data || [],
                        h = (this.getSkippingInfo && this.getSkippingInfo()).drawOnlyMap,
                        u = this.getFromEnv("xAxis").getTicksLen(); for (l.imageCount = 0, (a = this.components.data) || (a = this.components.data = []), l.maxRadius = -Infinity, s.dragTolerance = s.dragTolerance || -Infinity, l.maxValue = -Infinity, l.minValue = Infinity, i = 0; i < u; i++) h[i] || (t = a[i], e = c && c[i] || {}, n = i, t || (t = a[i] = {}), t.config || (a[i].config = {}), t.graphics || (t.graphics = {}), this._plotConfigure(n, e), o && o++) }, a._plotConfigure = function(e, t, a) { var i, o, r, l, c, h, u, d, g, p, f = this.getFromEnv("chart"),
                        m = this.config,
                        b = f.config,
                        x = this.config.JSONData,
                        y = f.getFromEnv("dataSource").chart,
                        C = this.components.data[e],
                        k = this.getFromEnv("xAxis"),
                        S = this.getFromEnv("yAxis"),
                        A = b.isDrag,
                        N = C && C.config,
                        E = (0, s.parseUnsafeString)(b.yaxisname),
                        T = (0, s.parseUnsafeString)(b.xaxisname),
                        F = b.tooltipsepchar,
                        _ = m.dashed,
                        P = b.realTimeConfig && b.realTimeConfig.numDisplaySets,
                        D = P - m.initCatLen,
                        I = P && D >= 0 ? D : 0;
                    g = k.getLabel(a ? e - a : I + e), N.label = (0, s.getValidValue)((0, s.parseUnsafeString)(g.tooltext || g.label)), t.tooltext !== n && (t.tooltext = (0, s.parseTooltext)(t.tooltext, [3], { label: g.label }, t, y, x)), N.dataLabelStyle = this._configureDataLabelStyle(t), N.setValue = r = S.getCleanValue(t.value, m.stack100percent), N.setLink = (0, s.pluck)(t.link), N.anchorProps = this._parseAnchorProperties(e), m.maxRadius = L(N.anchorProps.radius + N.anchorProps.borderThickness / 2, m.maxRadius), p = N.anchorProps.radius + N.anchorProps.borderThickness / 2, N.dragTolerance = A ? (p < 6 ? 5.5 : p + .5) + v : 0, N.label = (0, s.getValidValue)((0, s.parseUnsafeString)(g.tooltext || g.label)), N.showValue = (0, s.pluckNumber)(t.showvalue, m.showValues), N.givenPlotShowValue = (0, s.pluckNumber)(t.showvalue), N.dashed = (0, s.pluckNumber)(t.dashed, _), N.dashStyle = N.dashed ? (0, s.getDashStyle)(m.linedashlen, m.linedashgap) : "none", N.color = (0, s.pluck)(t.color, m.linecolor), N.setColor = t.color, N.setAlpha = t.alpha, N.setDashed = t.dashed, N.alpha = (0, s.pluck)(t.alpha, t.linealpha, m.alpha, m.linealpha), N.origLabel = (0, s.getValidValue)((0, s.parseUnsafeString)(g.label)), null !== r && (m.maxValue = L(m.maxValue, r), m.minValue = w(m.minValue, r)), N.setTooltext = (0, s.parseUnsafeString)(t.toolText, !1), N.toolTipValue = o = S.dataLabels(r), N.setDisplayValue = l = (0, s.parseUnsafeString)(t.displayvalue), N.displayValue = (0, s.pluck)(l, o), N.formatedVal = u = N.toolTipValue, N.setTooltext = (0, s.getValidValue)((0, s.parseUnsafeString)((0, s.pluck)(t.tooltext, x.plottooltext, y.plottooltext), !1)), N.valuePosition = (0, s.pluck)(t.valueposition, m.valueposition), N.valuePosition && (N.valuePosition = N.valuePosition.toLowerCase()), b.showtooltip ? null === u ? i = !1 : N.setTooltext !== n ? (c = [1, 2, 3, 4, 5, 6, 7], h = { yaxisName: E, xaxisName: T, formattedValue: u, label: N.label }, i = (0, s.parseTooltext)(N.setTooltext, c, h, t, y, x)) : (b.seriesnameintooltip && (d = (0, s.getFirstValue)(x && x.seriesname)), i = d ? d + F : "", i += N.label ? N.label + F : "", i += N.setTooltext ? "" : N.toolTipValue) : i = !1, N.toolText = i, N.setTooltext = i, N.setLevelTooltext = N.setTooltext, N._x = t.index === n ? e : t.index, N._y = r, N.finalTooltext = N.setTooltext = i, N.hoverEffects = this._parseHoverEffectOptions(C, t), N.anchorProps.isAnchorHoverRadius = N.hoverEffects.anchorRadius, b.dragTolerance = L(b.dragTolerance, m.maxRadius, N.hoverEffects.anchorRadius) }, a.drawCommonElements = function() { var e, t, a, i, o, r, l, c, h, u, d, g, p, f = this,
                        m = f.components.data,
                        v = f.getFromEnv("chart"),
                        b = f.config,
                        x = v.config,
                        y = f.getLinkedParent(),
                        C = f.getJSONIndex(),
                        k = y.config.firstDataSetIndex,
                        S = f.getFromEnv("xAxis"),
                        w = f.getFromEnv("yAxis"),
                        L = b.scrollMinVal,
                        A = b.scrollMaxVal,
                        N = !x.drawfullareaborder,
                        E = b.plotborderColorObject,
                        T = b.plotborderdashstyle,
                        F = b.plotborderthickness,
                        _ = b.fillColor,
                        P = f.getFromEnv("animationManager"),
                        D = { x: S.getLimit(), y: w.getLimit() },
                        I = [],
                        M = b.shadow,
                        O = f.getContainer("shadowGroup"),
                        R = S.getState("scrolling"),
                        B = f.getSkippingInfo && f.getSkippingInfo(),
                        V = B && B.draw || [],
                        G = V.length,
                        z = B && B.skippingApplied; for (D.x.minPixel = S.getPixel(D.x.min), D.x.maxPixel = S.getPixel(D.x.max), D.y.minPixel = w.getPixel(D.y.min), D.y.maxPixel = w.getPixel(D.y.max), D.y.base = w.getPixel(0), D.x.base = S.getPixel(0), z && (L = 0, A = G), g = L; g < A; g++) m[d = V[g] || g] && m[d].config && (I[d] = { config: { _Px: m[d].config._Px, _Pbx: m[d].config._Pbx, _Py: m[d].config._Py, _Pby: m[d].config._Pby, setValue: m[d].config.setValue } }); if (p = { begin: L, end: A }, r = { path: (a = this.getLinePath(m, R ? p : null, !f.getState("visible") && "base")).getPathArr(), stroke: "none", fill: (0, s.toRaphaelColor)(_) }, t = f.getGraphicalElement("lineElement"), e = P.setAnimation({ el: t || "path", container: f.getContainer("commonElemsGroup"), attr: f.getState("visible") && r, component: f, doNotRemove: !0, label: "line", callback: function() {!f.getState("visible") && this.hide() } }), !t && e && f.addGraphicalElement("lineElement", e), f.getState("visible") && e && e.show(), f.getState("visible") && !R && e.shadow(M, O), l = f.getGraphicalElement("connector"), u = f.getGraphicalElement("bottomConnector"), f.getState("visible") && l && l.show(), N) i = a.getPathArr("top"), o = "topBorderPath";
                    else if (k === n || C === k) i = a.getPathArr(), o = "line";
                    else { var H = a.getPathArr("detailed");
                        i = H.top, c = H.bottom, o = "topBorderPath", f.getState("visible") && u && u.show(), h = f.addGraphicalElement("bottomConnector", P.setAnimation({ attr: { path: c, stroke: (0, s.toRaphaelColor)(E), "stroke-width": F, "stroke-linecap": "round", "stroke-linejoin": F > 2 ? "round" : "miter", "stroke-dasharray": T }, el: u || "path", container: f.getContainer("commonElemsGroup"), component: f, label: "bottomPath", callback: function() {!f.getState("visible") && this.hide() } })) } u && !h && f.removeGraphicalElement(u), l = f.addGraphicalElement("connector", P.setAnimation({ attr: { path: i, stroke: (0, s.toRaphaelColor)(E), "stroke-width": F, "stroke-linecap": "round", "stroke-linejoin": F > 2 ? "round" : "miter", "stroke-dasharray": T }, el: l || "path", container: f.getContainer("commonElemsGroupLine") || f.getContainer("commonElemsGroup"), component: f, label: o, callback: function() {!f.getState("visible") && this.hide() } })), b.prevLim = D, b.prevDataStore = I, "realTimeUpdate" === v.state && (f.realTimeUpdated = !0), x.connectnulldataOld = x.connectnulldata }, a.addDatasetSpecificEvtArgs = function(e) { var t = e.config,
                        a = t.anchorProps,
                        i = t.eventArgs,
                        n = t.hoverEffects;
                    Object.assign(i, { color: t.color, alpha: t.alpha, anchorBgColor: a.bgColor, anchorBgAlpha: a.anchorBgAlpha, anchorAlpha: a.anchorAlpha, anchorBorderColor: a.borderColor, anchorBorderThickness: a.borderThickness, anchorRadius: a.radius, anchorSides: a.sides, anchorStartAngle: a.startAngle, anchorHoverColor: n.anchorColor, anchorHoverAlpha: n.anchorAlpha, anchorHoverSides: n.anchorSides, dashed: t.dashed, valuePosition: t.valuePosition }) }, a.parsePlotAttributes = function(e, t) { var a, i, n, o, r, l, c, h, u, d, g, p = this.getJSONIndex(),
                        f = this.getState("visible"),
                        m = this.config,
                        v = this.config.JSONData,
                        b = t,
                        C = {},
                        k = {},
                        S = {};
                    h = (g = e.config)._Px, u = g._Py, a = g._x, i = g._y, o = g.setLink, n = g.setValue, C = g.anchorProps, d = g.displayValue, c = g.hoverEffects, l = g.finalTooltext = g.toolText, g.eventArgs = { index: b, link: o, value: n, displayValue: d, categoryLabel: g.origLabel, toolText: l, id: m.userID, datasetIndex: p || 0, datasetName: v.seriesname, visible: f }, this.addDatasetSpecificEvtArgs(e), r = C.symbol, e._xPos = h, e._yPos = u, e._xVal = a, e._yVal = i, e._index = b, null !== i && null !== a ? (g.eventArgs.x = a, g.eventArgs.y = i, c.enabled && (S = { path: (0, s.polyPathToPath)([c.anchorSides || 2, h, u, c.anchorRadius, c.startAngle, c.dip ? c.dip : +("spoke" === m.dip)]), fill: (0, s.toRaphaelColor)({ color: c.anchorColor, alpha: c.anchorBgAlpha }), stroke: (0, s.toRaphaelColor)({ color: c.anchorBorderColor, alpha: c.anchorBorderAlpha }), "stroke-width": c.anchorBorderThickness }, k = { path: (0, s.polyPathToPath)([r[1] || 2, h, u, C.radius, C.startAngle, g.dip || 0]), fill: (0, s.toRaphaelColor)({ color: C.bgColor, alpha: C.bgAlpha }), stroke: (0, s.toRaphaelColor)({ color: C.borderColor, alpha: C.borderAlpha }), "stroke-width": C.borderThickness }, c.attrs = { hoverEnabled: c.enabled, anchorRadius: C.radius, anchorHoverRadius: c.anchorRadius }, c.attrs[x] = S, c.attrs[y] = k, C.isAnchorHoverRadius = c.attrs.anchorRadius), C.imageUrl && (g.anchorImageLoaded = !1), g.props = { element: { attr: { path: (0, s.polyPathToPath)([r[1] || 2, h, u, C.radius, C.startAngle, g.dip || 0]), fill: (0, s.toRaphaelColor)({ color: C.bgColor, alpha: C.bgAlpha }), stroke: (0, s.toRaphaelColor)({ color: C.borderColor, alpha: C.borderAlpha }), "stroke-width": C.borderThickness } } }) : n && (n.isNull = !0) }, a.parseLabelAttributes = function(e, t) { var a, i, o, r, l, s, c, h, u, d, g, p, f, m, v, b, x, y, C, S, w, L, A, N, E = this.getFromEnv("chart"),
                        T = E.config,
                        F = this.getFromEnv("smartLabel"),
                        _ = E.config.dataLabelStyle,
                        P = this.components.data,
                        D = T.stack100percent,
                        I = T.rotatevalues ? 270 : 0,
                        M = T.canvasTop,
                        O = T.canvasHeight,
                        R = E.config.isstacked,
                        B = t; if (L = (m = e && e.config) && m.setValue, e !== n && L !== n && null !== L && !0 !== m.labelSkip) { switch (d = m.anchorProps, b = e._yPos || e.config._Py, v = e._xPos || e.config._Px, w = d.markerRadius || d.radius - 3, o = T.valuepadding + 2 + w, m.valuePosition) {
                            case "above":
                                g = 0; break;
                            case "below":
                                g = 1; break;
                            default:
                                x = P[B - 1] && P[B - 1].config || {}, R && D ? (y = x.value, C = m.value) : (y = x.setValue, C = m.setValue), g = B && y > C ? 1 : 0 } if (a = m.displayValue, S = m.showValue, i = m.dataLabelStyle, k(a) && "" !== a && null !== C && S) { if (N = { text: a, fill: i.color, "text-bound": [i.backgroundColor, i.borderColor, _.borderThickness, _.borderPadding, _.borderRadius, _.borderDash] }, r = F.getOriSize(a), m._state = m._state || {}, I ? (m._state.labelWidth = r.height, m._state.labelHeight = r.width, m._rotated = !0) : (m._state.labelWidth = r.width, m._state.labelHeight = r.height, m._rotated = !1), l = s = m._state.labelHeight, u = .5 * s + o, p = b - M, f = M + O - b, c = b, h = v, A = (l += o) + 4, g ? f > A ? (c += u, m._valueBelowPoint = 1) : p > A && (c -= u, m._valueBelowPoint = 0) : p > A ? (c -= u, m._valueBelowPoint = 0) : f > A && (c += u, m._valueBelowPoint = 1), this.getFromEnv("useImprovedLabelPlacement") && T.showSum && !D) { var V = l + 2;
                                c < M + V + l / 2 ? c = M + V + l / 2 : c > M + O - V - l / 2 + u && (c = M + O - V - l / 2 + u) } N.x = h, N.y = c } m.props = m.props || {}, m.props.label = { attr: N } } else m && delete m.labelSkip }, a.allocatePosition = function() { var e, t, a = this,
                        i = a.config,
                        o = a.getFromEnv("chart"),
                        r = o.config,
                        l = a.components,
                        s = l.data,
                        c = a.getFromEnv("xAxis"),
                        h = 0,
                        u = 0,
                        d = r.isstacked,
                        g = r.viewPortConfig.step || 1,
                        p = o.hasScroll,
                        f = a.getSkippingInfo && a.getSkippingInfo(),
                        m = f && f.labelDraw || [],
                        v = f && f.draw || []; for (t = l.animAttrs = [], a.calculateScrollRange(), c.getState("scrolling") || d && a.updateYForStack(), a.createCoordinates(), u = i.scrollMinVal; u < i.scrollMaxVal; u += g) h = v[u] || u, p && !r.skipAttr && (h < void 0 || h > void 0) || ((e = s[h]) && e.config ? a.parsePlotAttributes(e, h) : t[h] = n); for (g > 1 && i.skipIgnorerIndices.map((function(e) { return s[e] })).filter((function(e) { return e || e.config })).forEach((function(e) { return a.parsePlotAttributes(e, h) })), u = i.scrollMinValForLabel; u < i.scrollMaxValForLabel; u += g) h = m[u] || u, e = s[h], a.parseLabelAttributes(e, h) }, a.drawPlot = function(e, t) { var a, i, o, r = this.config,
                        l = e.config,
                        s = e.graphics,
                        c = l.anchorProps,
                        h = this.getState("visible"),
                        u = c.radius,
                        d = c.shadow,
                        g = c.anchorAlpha,
                        p = u && g,
                        f = this.getContainer("plotGroup"),
                        m = this.getContainer("shadowGroup"),
                        v = this.getFromEnv("animationManager");
                    null !== l._y && null !== l._x ? (c.imageUrl ? this.drawAnchorImage(e) : (a = s.element, (o = s.image) && o.remove(), delete s.image, (r.drawanchors || p) && h && null !== e.config.setValue ? (a = s.element = v.setAnimation({ el: a || "path", container: f, attr: l.props.element.attr, index: t, length: length, callback: function() { this.show() }, component: this, label: "anchor" })).shadow(d, m) : a && (this.__removeElem(s.element, "element"), delete s.element, a = n)), i = l.hoverEffects, a && (i.enabled ? a.data("hoverEnabled", i.attrs.hoverEnabled).data("anchorRadius", i.attrs.anchorRadius).data("anchorHoverRadius", i.attrs.anchorHoverRadius).data(x, i.attrs[x]).data(y, i.attrs[y]) : a.data("hoverEnabled", !1), a.data("eventArgs", l && l.eventArgs))) : s.element && (s.element = v.setAnimation({ el: s.element, component: this })) }, a.drawPlots = function() { var e, t, a, i = this,
                        o = i.getFromEnv("chart").config,
                        r = i.components,
                        l = i.config,
                        s = r.data,
                        c = 0,
                        h = 0,
                        u = r.animAttrs,
                        d = l._oldStartIndex,
                        g = l._oldEndIndex,
                        p = i.getGraphicalElement("sharedAnchor"),
                        f = o.viewPortConfig.step || 1,
                        m = i.getSkippingInfo && i.getSkippingInfo(),
                        v = m && m.draw || []; for (u = r.animAttrs = [], t = l.scrollMinVal, a = l.scrollMaxVal, t > d && i.flushOnScroll(d, t > g ? g : t), a < g && i.flushOnScroll(a < d ? d : a, g), l._oldStartIndex = t, l._oldEndIndex = a, i.hideAllAnchors && i.hideAllAnchors(), h = t; h < a; h += f) c = v[h] || h, (e = s[c]) && e.config ? i.drawPlot(e, c) : u[c] = n;
                    f > 1 && l.skipIgnorerIndices.map((function(e) { return s[e] })).filter((function(e) { return e || e.config })).forEach((function(e) { return i.drawPlot(e, c) })), 0 === c || l.drawanchors ? p && p.hide() : p ? p.hide() : i.getAnchor() }, a.drawAnchorImage = function(e) { var t, a = this.getContainer("plotGroup"),
                        i = e.graphics,
                        n = this.getFromEnv("animationManager"),
                        o = d ? i.element : i.image,
                        r = e.config.anchorProps,
                        l = r.anchorAlpha && r.radius,
                        s = r.imageAlpha;
                    this.getState("visible") && l ? (d || (i.element = n.setAnimation({ el: i.element || "path", container: a, attr: e.config.props.element.attr, label: "anchor", component: this }).show()), e.config.props.element.attr.opacity = .01 * s, t = n.setAnimation({ el: o || "image", container: a, component: this, label: "anchor", attr: { opacity: .01 * s } }), d ? i.element = t : i.image = t, o ? t.attrs.src !== r.imageUrl ? t.attr("src", r.imageUrl) : t._.RefImg && N(this, e) : (t.on("load", this._onAnchorImageLoad(e)), t.attr("src", r.imageUrl)), t.show()) : (i.image && n.setAnimation({ el: i.image, state: "disappearing", component: this, doNotRemove: !0, callback: function() { this.hide() } }), i.element && n.setAnimation({ el: i.element, state: "disappearing", component: this, doNotRemove: !0, callback: function() { this.hide() } })) }, a.getLineSegment = function(e, t, a) { var i = t._Px,
                        o = t._Py,
                        r = t._Pbx,
                        l = t._Pby,
                        s = this.getFromEnv("yAxis").getPixel(0),
                        c = t.setValue,
                        h = "path-" + e.pathCount,
                        u = this.getFromEnv("chart").config.connectnulldata; return "zero" === a ? (o = s, l = s) : "base" === a && (o = t._Pby), e.pathMap[h] || (e.pathMap[h] = []), e.path2Map[h] || (e.path2Map[h] = []), null === c || c.isNull ? u || (e.pointsJoined > 0 && e.path2Map[h][e.path2Map[h].length - 1] !== m && l !== n && e.path2Map[h].push(m), e.temp = [], e.temp2 = [], e.lastValidValue = !1) : e.lastValidValue ? (e.temp.length && (e.pathMap[h] = e.pathMap[h].concat(e.temp), r !== n && (e.path2Map[h] = e.temp2, e.temp2 = []), e.temp = [], e.pointsJoined++), e.pathMap[h].push([f, i, o]), l !== n && e.path2Map[h].unshift([f, i, l])) : (e.temp.push(["M", i, o]), l !== n && e.temp2.push([f, r, l]), e.pointsJoined = 0, e.lastValidValue = !0, e.pathCount++), e }, a.getLinePath = function(e, t, a) { var i, o, r, l, s, c, h, u, d, g = this,
                        p = g.getFromEnv("chart").config,
                        f = e.length,
                        v = t && t.begin || 0,
                        b = g.getState("visible") ? t && t.end || f : 0,
                        x = p.viewPortConfig.step || 1,
                        y = (g.removeDataLen, []),
                        k = g.getSkippingInfo && g.getSkippingInfo(),
                        S = k && k.draw || [],
                        w = S.length,
                        L = k && k.skippingApplied,
                        A = g.config.skipIgnorerIndices,
                        N = [],
                        E = {},
                        T = 0; for (0, y = y.concat(e), L && (v = 0, b = w), o = v + 0; o < b + 0; o += x)
                        if (s = y[i = S[o] || o])
                            if ((r = s.config).setValue === n || r && !0 === r.isSkipped) r && delete r.isSkipped;
                            else { if (x > 1)
                                    for (; A[T] < o;)(h = y[A[T]]) && ((u = h.config).setValue === n || u && !0 === u.isSkipped ? u && delete u.isSkipped : (N = N.concat(u), T++));
                                N = N.concat(r), l = r._Pby, c = o } if (x > 1)
                        for (i = c + 1; i <= o; i++)(s = y[S[i] || i]) && ((r = s.config).setValue === n || r && !0 === r.isSkipped ? r && delete r.isSkipped : A.includes(i) && (N = N.concat(r), l = r._Pby)); return d = "path-" + (E = N.reduce((function(e, t) { return g.getLineSegment(e, t, a) }), { temp: [], temp2: [], pathMap: {}, path2Map: {}, pointsJoined: 0, lastValidValue: !1, getPathArr: C, pathCount: 0 })).pathCount, E.path2Map[d] && E.path2Map[d][E.path2Map[d].length - 1] !== m && E.pointsJoined > 0 && l !== n && E.path2Map[d].push(m), E }, a._removeDataVisuals = function(e) { var t, a, i, n, o = this.components.pool || (this.components.pool = {}); if (e)
                        for (a in i = e.graphics) t = o[a] || (o[a] = []), (n = i[a]).hide && "function" == typeof n.hide && (n.attr({ "text-bound": [] }), n.hide(), n.shadow && n.shadow(!1)), t.push(i[a]) }, a._parseAnchorProperties = function(e, t) { var a, i, o, r = this.config,
                        l = this.getName(),
                        c = this.getFromEnv("chart"),
                        h = c.config.anchoralpha,
                        u = !c.config.anchoralpha && /area/gi.test(l) ? 0 : 1,
                        d = r.JSONData,
                        g = c.getFromEnv("dataSource").chart,
                        p = (t || d.data || [])[e] || {},
                        f = {}; return i = (0, s.pluck)(p.anchorstartangle, d.anchorstartangle, g.anchorstartangle, p.anchorimagealpha, d.anchorimagealpha, g.anchorimagealpha, p.anchorimagescale, d.anchorimagescale, g.anchorimagescale, p.anchorimagepadding, d.anchorimagepadding, g.anchorimagepadding, p.anchorimageurl, d.anchorimageurl, g.anchorimageurl, p.anchorradius, d.anchorradius, g.anchorradius, p.anchorbgcolor, d.anchorbgcolor, g.anchorbgcolor, p.anchorbordercolor, d.anchorbordercolor, g.anchorbordercolor, p.anchoralpha, d.anchoralpha, g.anchoralpha, p.anchorsides, d.anchorsides, g.anchorsides, p.anchorborderthickness, d.anchorborderthickness, g.anchorborderthickness, n) !== n, o = (0, s.pluckNumber)(p.drawanchors, r.drawanchors), f.enabled = i ? (0, s.pluckNumber)(o, i) : (0, s.pluckNumber)(o, u), f.startAngle = (0, s.pluckNumber)(p.anchorstartangle, r.anchorstartangle), f.imageAlpha = (0, s.pluckNumber)(p.anchorimagealpha, r.anchorimagealpha), f.imageScale = (0, s.pluckNumber)(p.anchorimagescale, r.anchorimagescale), f.imagePadding = (0, s.pluckNumber)(p.anchorimagepadding, r.anchorimagepadding), f.imagePadding < 0 && (f.imagePadding = 0), f.imageUrl = (0, s.pluck)(p.anchorimageurl, r.anchorimageurl), f.imageUrl && r.imageCount++, f.radius = f.enabled ? (0, s.pluckNumber)(p.anchorradius, r.anchorradius) : 0, f.isAnchorRadius = (0, s.pluck)(p.anchorradius, d.anchorradius, g.anchorradius), f.bgColor = (0, s.pluck)(p.anchorbgcolor, r.anchorbgcolor), h = f.enabled ? (0, s.getFirstAlpha)((0, s.pluck)(p.anchoralpha, r.anchoralpha, f.enabled ? s.HUNDREDSTRING : "0")) : 0, f.anchorAlpha = h, f.anchorBgAlpha = (0, s.pluckNumber)(p.anchorbgalpha, r.anchorbgalpha, h), f.bgAlpha = (0, s.getFirstAlpha)(f.anchorBgAlpha) * h / 100, f.imageAlpha = f.imageAlpha * h / 100, f.borderColor = (0, s.pluck)(p.anchorbordercolor, r.anchorbordercolor), f.borderAlpha = h, f.sides = (0, s.pluck)(p.anchorsides, r.anchorsides), f.borderThickness = (0, s.pluck)(p.anchorborderthickness, r.anchorborderthickness), f.symbol = (0, s.mapSymbolName)(f.sides).split("_"), a = (0, s.pluckNumber)(p.anchorshadow, r.anchorshadow) && f.radius >= 1, f.shadow = { opacity: a ? h / 100 : 0 }, f }, a._hideGraphics = function(e) { var t, a; for (a in e)
                        if (e.hasOwnProperty(a)) { if (!(t = e[a])) continue;
                            t.hide ? t.hide() : this._hideGraphics(t) } }, a._parseHoverEffectOptions = function(e, t) { var a = t,
                        i = this.config.JSONData,
                        o = this.getFromEnv("chart"),
                        r = o.getFromEnv("dataSource").chart,
                        l = o.config,
                        c = e.config,
                        h = this.config,
                        u = c.anchorProps || {},
                        d = l.plothovereffect,
                        g = h.drawanchors,
                        p = { enabled: !1 }; return a = a || {}, 0 !== d && 0 !== g && (p.enabled = (0, s.pluck)(a.hovercolor, a.anchorhovercolor, a.hovercolor, i.hovercolor, a.anchorbghovercolor, i.anchorbghovercolor, r.anchorbghovercolor, i.anchorhovercolor, r.anchorhovercolor, a.hoveralpha, a.anchorhoveralpha, i.anchorhoveralpha, r.anchorhoveralpha, a.bghoveralpha, a.anchorbghoveralpha, i.anchorbghoveralpha, r.anchorbghoveralpha, a.anchorborderhovercolor, a.borderhovercolor, i.anchorborderhovercolor, r.anchorborderhovercolor, a.anchorborderhoverthickness, a.borderhoverthickness, i.anchorborderhoverthickness, r.anchorborderhoverthickness, a.anchorborderhoveralpha, a.borderhoveralpha, i.anchorborderhoveralpha, r.anchorborderhoveralpha, a.hoverdip, a.anchorhoverdip, i.anchorhoverdip, r.anchorhoverdip, a.anchorhoverstartangle, i.anchorhoverstartangle, r.anchorhoverstartangle, a.hoversides, a.anchorhoversides, i.anchorhoversides, r.anchorhoversides, a.hoverradius, a.anchorhoverradius, i.anchorhoverradius, r.anchorhoverradius, i.plotfillhovercolor, r.plotfillhovercolor, l.plothovereffect, n) !== n, p.startAngle = (0, s.pluckNumber)(a.anchorhoverstartangle, i.anchorhoverstartangle, r.anchorhoverstartangle, u.startAngle), p.hoverColor = (0, s.pluck)(a.hovercolor, a.anchorhovercolor, i.hovercolor, a.anchorbghovercolor, i.anchorbghovercolor, r.anchorbghovercolor, i.anchorhovercolor, r.anchorhovercolor, r.plotfillhovercolor), p.hoverAlpha = (0, s.pluck)(a.hoveralpha, a.anchorhoveralpha, i.anchorhoveralpha, r.anchorhoveralpha, a.bghoveralpha, a.anchorbghoveralpha, i.anchorbghoveralpha, r.anchorbghoveralpha, i.hoveralpha, r.plotfillhoveralpha), p.anchorSides = (0, s.pluckNumber)(a.hoversides, a.anchorhoversides, i.anchorhoversides, r.anchorhoversides, u.sides), p.anchorRadius = (0, s.pluckNumber)(a.anchorhoverradius, i.anchorhoverradius, r.anchorhoverradius), p.isAnchorHoverRadius = p.anchorRadius, p.anchorRadius = (0, s.pluckNumber)(p.anchorRadius, u.radius + (d ? 2 : 0)), p.anchorScale = (0, s.pluck)(a.hoverscale, i.anchorscale, r.anchorscale), p.imageHoverScale = (0, s.pluckNumber)(a.anchorimagehoverScale, i.anchorimagehoverscale, r.anchorimagehoverscale, 110), p.imageHoverAlpha = (0, s.pluckNumber)(a.anchorimagehoveralpha, i.anchorimaghoverealpha, r.anchorimagehoveralpha), p.anchorAlpha = (0, s.pluck)(a.anchorhoveralpha, a.hoveralpha, i.anchorhoveralpha, r.anchorhoveralpha, u.anchorAlpha), p.anchorColor = (0, s.getFirstColor)((0, s.pluck)(a.hovercolor, a.anchorhovercolor, a.hoverColor, a.anchorbghovercolor, i.anchorbghovercolor, i.anchorhovercolor, i.hovercolor, r.anchorbghovercolor, r.anchorhovercolor, r.plotfillhovercolor, u.bgColor)), p.anchorBgAlpha = (0, s.pluck)(a.bghoveralpha, a.anchorbghoveralpha, i.anchorbghoveralpha, r.anchorbghoveralpha, r.plotfillhoveralpha, u.bgAlpha), p.anchorBgAlpha = p.anchorBgAlpha * p.anchorAlpha / 100, p.anchorBorderColor = (0, s.pluck)(a.borderhovercolor, a.anchorborderhovercolor, i.anchorborderhovercolor, r.anchorborderhovercolor, u.borderColor), p.anchorBorderAlpha = (0, s.pluck)(a.borderhoveralpha, a.anchorborderhoveralpha, i.anchorborderhoveralpha, r.anchorborderhoveralpha, p.anchorAlpha, u.borderAlpha), p.anchorBorderThickness = (0, s.pluckNumber)(a.borderhoverthickness, a.anchorborderhoverthickness, i.anchorborderhoverthickness, r.anchorborderhoverthickness, r.anchorBorderThickness, u.borderThickness), p.dip = (0, s.pluck)(a.hoverdip, a.anchorhoverdip, i.anchorhoverdip, r.anchorhoverdip, u.dip), p.anchorAnimation = (0, s.pluckNumber)(a.anchorhoveranimation, i.anchorhoveranimation, r.anchorhoveranimation, 1)), p }, a._hoverPlotAnchor = function(e, t) { var a, i, n, o, r, l = this.getFromEnv("smartLabel"),
                        s = this.getFromEnv("chart").getChildren("canvas")[0].getEffectiveDimensions(),
                        c = s.top,
                        h = c + s.height,
                        u = e.config._Py,
                        f = this.getFromEnv("animationManager"),
                        m = this.getGraphicalElement("sharedAnchor"),
                        v = e.graphics.element || m,
                        b = e.graphics.label,
                        C = e.config || {},
                        k = C.anchorProps.anchorAlpha,
                        S = C && C.anchorProps.imageUrl,
                        w = d && S ? e.graphics.element : e.graphics.image,
                        L = "image" === v.type,
                        A = v.data("anchorRadius"),
                        N = v.data("anchorHoverRadius"),
                        E = v.data(x) || {},
                        T = v.data(y) || {},
                        F = b && (b.data("isBelow") ? 1 : -1) * (L ? .5 * (E.height - T.height) : N - A),
                        _ = t === g ? E : T,
                        P = !0,
                        D = { path: _.path },
                        I = { fill: _.fill, "stroke-width": _["stroke-width"], stroke: _.stroke },
                        M = b && b.data("rotation") || "";
                    u - 3 * (a = l.getOriSize(C.displayValue).height) / 2 + F < c ? F = c - u + 3 * a / 2 : u + 3 * a / 2 + F > h && (F = h - u - 3 * a / 2), r = { transform: "T0," + (t === g ? F : 0) + M }, f.setAnimationState(t === g ? "mouseOver" : "mouseOut"), w && (n = w.data(x), o = w.data(y), (i = t === g ? n : o).alpha *= .01), L ? D.alpha *= .01 : Object.assign(D, I), (t === g && !N || t === p && !A) && (P = !1), f.setAnimation({ el: v, label: "anchor", component: this, doNotRemove: !0, callback: function() {!P && v.hide() }, attr: P && D }), P && v.show(), w && (f.setAnimation({ el: w, label: "anchor", component: this, attr: P && i }), P && w.show()), (e.graphics && e.graphics.element || m && m.element) && k && b && f.setAnimation({ el: b, label: "label", component: this, doNotRemove: !0, attr: r }) }, a.drawLabel = function(e, t) { var a, i, o, r, l, c, h, u, d, g, p, f, m = this.config,
                        v = this.getFromEnv("chart"),
                        b = v.config,
                        x = this.getFromEnv("smartLabel"),
                        y = v.config.dataLabelStyle,
                        C = this.components.data,
                        S = this.getFromEnv("paper"),
                        w = this.getFromEnv("animationManager"),
                        L = "",
                        A = b.rotatevalues ? 270 : 0,
                        N = this.getContainer("labelGroup"),
                        E = this.getState("visible"),
                        T = C.length,
                        F = this.getSkippingInfo && this.getSkippingInfo(),
                        _ = F && F.skippingApplied,
                        P = F && F.labelDraw || [],
                        D = P.length,
                        I = (0, s.pluckNumber)(e, 0),
                        M = (0, s.pluckNumber)(t, _ ? D : T),
                        O = D === Math.abs(M - (I + 1)); for (h = { "font-weight": y.fontWeight, "font-style": y.fontStyle, "font-family": y.fontFamily, "font-size": y.fontSize, "line-height": y.lineHeight }, x.setStyle(h), d = I; d < M; d++) g = (r = (u = C[_ && O ? P[d] : d]) && u.config) && r.setValue, u !== n && g !== n && null !== g && !0 !== r.labelSkip ? (a = u.graphics, L = r.displayValue, l = r.showValue, c = a.label, p = r.props.label.attr, k(L) && l && E ? (o = r.props.label.attr.x, i = r.props.label.attr.y, p.transform = S.getSuggestiveRotation(A, o, i), a.label = c = w.setAnimation({ el: c || "text", container: N, component: this, attr: p, label: "label" }), c.data("isBelow", r._valueBelowPoint), c.data("rotation", p.transform), c && c.outlineText(m.showTextOutline, p.fill)) : c && (a.label = w.setAnimation({ el: c, component: this, label: "label" }))) : (r && delete r.labelSkip, (f = u && u.graphics) && f.label && (f.label = w.setAnimation({ el: f.label, component: this }))) }, a.getAxisValuePadding = function() { return this.config.defaultPadding }, a._hoverFunc = function(e, t, a, i) { if (a) return this._hoverPlotAnchor(e, t, i) }, a._onAnchorImageLoad = function(e) { var t = this; return function() { var a = e._index;
                        N(t, e), t.config.drawn ? t.drawLabel(a, a + 1) : t.addJob("labelUpdateOnImageLoadID" + a, (function() { t.drawLabel(a, a + 1) }), c.priorityList.label) } }, t }(l["default"]);
            t["default"] = E },
        539: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function(e) { var t = e.component,
                        a = t.components.data,
                        i = t.getFromEnv("chartConfig").isstacked,
                        n = t.getLinePath(a).getPathArr("detailed").bottom,
                        o = t.getState("_total"),
                        r = t.config._childIndex; if (n.length && Array.isArray(n[0])) { var l = n.length;
                        n[0] = Object.assign([], n[1]), n[0][0] = "M", n[l - 1] = Object.assign([], n[l - 2]) } return [{ initialAttr: { opacity: 0, path: n }, finalAttr: { opacity: 1, path: e.attr.path }, startEnd: { start: i ? .5 / o * r : 0, end: i ? .5 / o * (r + 1) : .5 }, slot: "plot", hookFn: function() { this.attr({ opacity: 1 }) } }] },
                n = function(e) { var t = e.component,
                        a = t.components.data,
                        i = t.getFromEnv("chartConfig").isstacked,
                        n = t.getFromEnv("chartConfig").is3D,
                        o = t.getLinePath(a, null, i || n ? "base" : "zero").getPathArr("top"),
                        r = e.attr,
                        l = t.getState("_total"),
                        s = t.config._childIndex; return [{ initialAttr: { opacity: 0, path: o }, finalAttr: { opacity: 1, path: r.path }, startEnd: { start: i ? .5 / l * s : 0, end: i ? .5 / l * (s + 1) : .5 }, slot: "plot", hookFn: function() { this.attr({ opacity: 1 }) } }] },
                o = function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }] },
                r = function(e) { return "label-group" === e.attr.name ? [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }] : "plot-group" === e.attr.name ? [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, startEnd: { start: .5, end: 1 }, slot: "plot" }] : [{ initialAttr: { opacity: 1 }, finalAttr: { opacity: 1 }, slot: "final" }] },
                l = function(e) { var t = e.component,
                        a = t.components.data,
                        i = t.getFromEnv("chartConfig").isstacked,
                        n = t.getFromEnv("chartConfig").is3D,
                        o = t.getLinePath(a, null, i || n ? "base" : "zero"),
                        r = e.attr,
                        l = t.getState("_total"),
                        s = t.config._childIndex; return [{ initialAttr: { opacity: 0, path: o.getPathArr() }, finalAttr: { opacity: 1, path: r.path }, startEnd: { start: i ? .5 / l * s : 0, end: i ? .5 / l * (s + 1) : .5 }, slot: "plot", hookFn: function() { this.attr({ opacity: 1 }) } }] },
                s = { "*.dataset.area": function() { return { "anchor.appearing": [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, startEnd: { start: .5, end: 1 }, slot: "plot" }], "anchor.updating": [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }], "anchor.disappearing": [{ finalAttr: { opacity: 0, "fill-opacity": 0, "stroke-opacity": 0 }, slot: "final" }], "line.appearing": l, "topBorderPath.appearing": n, "bottomPath.appearing": i, "label.appearing": [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }], "label.updating": o, "group.appearing": r, "*": null } } };
            t["default"] = s },
        540: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { "*.dataset.line": function() { var e = this.getClip("canvas"),
                        t = this.getClip("init"); return { "anchor.appearing": function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }] }, "anchor.updating": function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "plot" }] }, "anchor.disappearing": function() { return [{ finalAttr: { opacity: 0, "fill-opacity": 0, "stroke-opacity": 0 }, slot: "plot" }] }, "line.appearing": function() { return [{ initialAttr: { "clip-rect": t }, finalAttr: { "clip-rect": e }, slot: "middle", callback: function() { this.attr({ "clip-rect": null }) } }] }, "line.updating": function() { return [{ initialAttr: { opacity: 1, "clip-rect": t }, finalAttr: { opacity: 1, "clip-rect": e }, slot: "plot" }] }, "label.appearing": [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }], "group.appearing": function(e) { return "label-group" === e.attr.name ? [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }] : "plot-group" === e.attr.name ? [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, startEnd: { start: .5, end: 1 }, slot: "plot" }] : [{ initialAttr: { opacity: 1 }, finalAttr: { opacity: 1 }, slot: "final" }] }, "*": null } } } },
        546: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t.__feedAxesRawData = c, t.__spaceManager = h, t.__postSpaceManagement = u, t["default"] = void 0; var n = i(a(229)),
                o = i(a(547)),
                r = i(a(520)),
                l = a(215),
                s = i(a(334));

            function c() { var e, t, a = this.config,
                    i = this.getFromEnv("color-manager"),
                    n = this.getFromEnv("dataSource"),
                    o = n.chart,
                    r = this.config.is3D,
                    c = r ? l.chartPaletteStr.chart3D : l.chartPaletteStr.chart2D; return e = { isVertical: !0, isReverse: !1, isOpposit: (0, s["default"])(o.xaxisposition, "right"), outCanfontFamily: (0, l.pluck)(o.outcnvbasefont, o.basefont, "Verdana,sans"), outCanfontSize: (0, l.pluckFontSize)(o.outcnvbasefontsize, o.basefontsize, 10), outCancolor: (0, l.pluck)(o.outcnvbasefontcolor, o.basefontcolor, i.getColor(c.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"), axisNamePadding: o.xaxisnamepadding, maxLabelWidthPercent: o.maxlabelwidthpercent, minLabelWidthPercent: o.minlabelwidthpercent, axisValuePadding: o.labelpadding, axisNameFont: o.xaxisnamefont, axisNameFontSize: o.xaxisnamefontsize, axisNameFontColor: o.xaxisnamefontcolor, axisNameFontBold: o.xaxisnamefontbold, axisNameFontItalic: o.xaxisnamefontitalic, axisNameBgColor: o.xaxisnamebgcolor, axisNameBorderColor: o.xaxisnamebordercolor, axisNameAlpha: o.xaxisnamealpha, axisNameFontAlpha: o.xaxisnamefontalpha, axisNameBgAlpha: o.xaxisnamebgalpha, axisNameBorderAlpha: o.xaxisnameborderalpha, axisNameBorderPadding: o.xaxisnameborderpadding, axisNameBorderRadius: o.xaxisnameborderradius, axisNameBorderThickness: o.xaxisnameborderthickness, axisNameBorderDashed: o.xaxisnameborderdashed, axisNameBorderDashLen: o.xaxisnameborderdashlen, axisNameBorderDashGap: o.xaxisnameborderdashgap, axisNameWidth: o.xaxisnamewidth, useEllipsesWhenOverflow: o.useellipseswhenoverflow, divLineColor: (0, l.pluck)(o.vdivlinecolor, o.divlinecolor, i.getColor(c.divLineColor)), divLineAlpha: (0, l.pluck)(o.vdivlinealpha, o.divlinealpha, r ? i.getColor("divLineAlpha3D") : i.getColor("divLineAlpha")), divLineThickness: (0, l.pluckNumber)(o.vdivlinethickness, o.divlinethickness, 1), divLineIsDashed: Boolean((0, l.pluckNumber)(o.vdivlinedashed, o.vdivlineisdashed, o.divlinedashed, o.divlineisdashed, 0)), divLineDashLen: (0, l.pluckNumber)(o.vdivlinedashlen, o.divlinedashlen, 4), divLineDashGap: (0, l.pluckNumber)(o.vdivlinedashgap, o.divlinedashgap, 2), showAlternateGridColor: 0, alternateGridColor: (0, l.pluck)(o.alternatehgridcolor, i.getColor("altHGridColor")), alternateGridAlpha: (0, l.pluck)(o.alternatehgridalpha, i.getColor("altHGridAlpha")), numDivLines: o.numvdivlines, labelFont: o.labelfont, labelFontSize: o.labelfontsize, labelFontColor: o.labelfontcolor, labelAlpha: o.labelalpha, labelFontBold: o.labelfontbold, labelFontItalic: o.labelfontitalic, labelBdrColor: o.labelbordercolor, labelBdrAlpha: o.labelborderalpha, labelLink: o.labellink, labelBgColor: o.labelbgcolor, labelBgAlpha: o.labelbgalpha, labelBdrThickness: o.labelborderthickness, labelBdrPadding: o.labelborderpadding, labelBdrRadius: o.labelborderradius, labelBdrDashed: o.labelborderdashed, labelBdrDashLen: o.labelborderdashlen, labelBdrDashGap: o.labelborderdashgap, axisName: o.xaxisname, axisMinValue: o.xaxisminvalue, axisMaxValue: o.xaxismaxvalue, setAdaptiveMin: o.setadaptivexmin, adjustDiv: o.adjustvdiv, labelDisplay: o.labeldisplay, showLabels: o.showlabels, rotateLabels: o.rotatelabels, slantLabel: (0, l.pluckNumber)(o.slantlabels, o.slantlabel), labelStep: (0, l.pluckNumber)(o.labelstep, o.xaxisvaluesstep), showAxisValues: (0, l.pluckNumber)(o.showxaxisvalues, o.showxaxisvalue), showLimits: o.showvlimits, showDivLineValues: (0, l.pluckNumber)(o.showvdivlinevalues, o.showvdivlinevalues), zeroPlaneColor: o.vzeroplanecolor, zeroPlaneThickness: (0, l.pluckNumber)(o.vzeroplanethickness, o.vdivlinethickness, 2), zeroPlaneAlpha: (0, l.pluckNumber)(o.vzeroplanealpha, o.vdivlinealpha, a.zeroplanealpha), showZeroPlaneValue: o.showvzeroplanevalue, trendlineColor: o.trendlinecolor, trendlineToolText: o.trendlinetooltext, trendlineThickness: o.trendlinethickness, rotateAxisName: (0, l.pluckNumber)(o.rotatexaxisname, 1), trendlineAlpha: o.trendlinealpha, showTrendlinesOnTop: o.showtrendlinesontop, showAxisLine: r ? 0 : (0, l.pluckNumber)(o.showxaxisline, o.showaxislines, o.drawAxisLines, 0), axisLineThickness: (0, l.pluckNumber)(o.xaxislinethickness, o.axislinethickness, 1), axisLineAlpha: (0, l.pluckNumber)(o.xaxislinealpha, o.axislinealpha, 100), axisLineColor: (0, l.pluck)(o.xaxislinecolor, o.axislinecolor, "#000000") }, (t = { isVertical: !1, isReverse: !1, isOpposit: (0, s["default"])(o.yaxisposition, "top"), outCanfontFamily: (0, l.pluck)(o.outcnvbasefont, o.basefont, "Verdana,sans"), outCanfontSize: (0, l.pluckFontSize)(o.outcnvbasefontsize, o.basefontsize, 10), outCancolor: (0, l.pluck)(o.outcnvbasefontcolor, o.basefontcolor, i.getColor(c.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"), axisNamePadding: o.yaxisnamepadding, axisValuePadding: o.yaxisvaluespadding, axisNameFont: o.yaxisnamefont, axisNameFontSize: o.yaxisnamefontsize, axisNameFontColor: o.yaxisnamefontcolor, axisNameFontBold: o.yaxisnamefontbold, axisNameFontItalic: o.yaxisnamefontitalic, axisNameBgColor: o.yaxisnamebgcolor, axisNameBorderColor: o.yaxisnamebordercolor, axisNameAlpha: o.yaxisnamealpha, axisNameFontAlpha: o.yaxisnamefontalpha, axisNameBgAlpha: o.yaxisnamebgalpha, axisNameBorderAlpha: o.yaxisnameborderalpha, axisNameBorderPadding: o.yaxisnameborderpadding, axisNameBorderRadius: o.yaxisnameborderradius, axisNameBorderThickness: o.yaxisnameborderthickness, axisNameBorderDashed: o.yaxisnameborderdashed, axisNameBorderDashLen: o.yaxisnameborderdashlen, axisNameBorderDashGap: o.yaxisnameborderdashgap, axisNameWidth: o.yaxisnamewidth, useEllipsesWhenOverflow: o.useellipseswhenoverflow, axisName: o.yaxisname, divLineColor: (0, l.pluck)(o.divlinecolor, i.getColor(c.divLineColor)), divLineAlpha: (0, l.pluck)(o.divlinealpha, r ? i.getColor("divLineAlpha3D") : i.getColor("divLineAlpha")), divLineThickness: (0, l.pluckNumber)(o.divlinethickness, 1), divLineIsDashed: Boolean((0, l.pluckNumber)(o.divlinedashed, o.divlineisdashed, 0)), divLineDashLen: (0, l.pluckNumber)(o.divlinedashlen, 4), divLineDashGap: (0, l.pluckNumber)(o.divlinedashgap, 2), showAlternateGridColor: (0, l.pluckNumber)(o.showalternatevgridcolor, 1), alternateGridColor: (0, l.pluck)(o.alternatevgridcolor, i.getColor("altVGridColor")), alternateGridAlpha: (0, l.pluck)(o.alternatevgridalpha, i.getColor("altVGridAlpha")), numDivLines: o.numdivlines, axisMinValue: o.yaxisminvalue, axisMaxValue: o.yaxismaxvalue, setAdaptiveMin: o.setadaptiveymin, adjustDiv: o.adjustdiv, labelStep: o.yaxisvaluesstep, showAxisValues: (0, l.pluckNumber)(o.showyaxisvalues, o.showyaxisvalue), showLimits: (0, l.pluckNumber)(o.showyaxislimits, o.showlimits, this.showLimits), showDivLineValues: (0, l.pluckNumber)(o.showdivlinevalues, o.showdivlinevalue), zeroPlaneColor: o.zeroplanecolor, zeroPlaneThickness: (0, l.pluckNumber)(o.zeroplanethickness, o.divlinethickness, 2), zeroPlaneAlpha: (0, l.pluckNumber)(o.zeroplanealpha, o.divlinealpha, a.zeroplanealpha), showZeroPlaneValue: o.showzeroplanevalue, trendlineColor: o.trendlinecolor, trendlineToolText: o.trendlinetooltext, trendlineThickness: o.trendlinethickness, trendlineAlpha: o.trendlinealpha, isTrendZone: 0, showTrendlinesOnTop: o.showtrendlinesontop, showAxisLine: r ? 0 : (0, l.pluckNumber)(o.showyaxisline, o.showaxislines, o.drawAxisLines, 0), axisLineThickness: (0, l.pluckNumber)(o.yaxislinethickness, o.axislinethickness, 1), axisLineAlpha: (0, l.pluckNumber)(o.yaxislinealpha, o.axislinealpha, 100), axisLineColor: (0, l.pluck)(o.yaxislinecolor, o.axislinecolor, "#000000"), numberFormatterFn: "yAxis", showZeroPlaneOnTop: a.showzeroplaneontop, forceTrendBelow: !!a.is3D, labelFont: o.yaxisvaluefont, labelFontSize: o.yaxisvaluefontsize, labelFontColor: o.yaxisvaluefontcolor, labelAlpha: o.yaxisvaluealpha, labelFontBold: o.yaxisvaluefontbold, labelFontItalic: o.yaxisvaluefontitalic, labelBdrColor: o.yaxisvaluebordercolor, labelBdrAlpha: o.yaxisvalueborderalpha, labelBgAlpha: o.yaxisvaluebgalpha, labelLink: o.yaxisvaluelink, labelBgColor: o.yaxisvaluebgcolor, labelBdrThickness: o.yaxisvalueborderthickness, labelBdrPadding: o.yaxisvalueborderpadding, labelBdrRadius: o.yaxisvalueborderradius, labelBdrDashed: o.yaxisvalueborderdashed, labelBdrDashLen: o.yaxisvalueborderdashlen, labelBdrDashGap: o.yaxisvalueborderdashgap }).vtrendlines = n.trendlines, e.trendlines = n.vtrendlines, a.isstacked && (t.isPercent = (0, l.pluckNumber)(a.stack100percent, 0), t.isPercent && delete t.numberFormatterFn), { xAxisConf: [e], yAxisConf: [t] } }

            function h() { var e, t, a, i, n, o, r, s, c, h, u, d, g, p, f, m, v, b, x, y = this.config,
                    C = this.getChildren(),
                    k = C.yAxis && C.yAxis[0],
                    S = C.xAxis && C.xAxis || [],
                    w = l.preDefStr.POSITION_BOTTOM,
                    L = l.preDefStr.POSITION_TOP,
                    A = y.legendposition ? y.legendposition.split("-") : [],
                    N = y.xDepth,
                    E = y.yDepth,
                    T = C.canvas[0],
                    F = y.canvasBgDepth,
                    _ = y.canvasBaseDepth,
                    P = y.canvasBasePadding,
                    D = C.canvas[0].config.canvasBorderWidth,
                    I = y.realTimeConfig && y.realTimeConfig.showRTValue,
                    M = y.borderWidth,
                    O = y.canvasMarginTop,
                    R = y.canvasMarginBottom,
                    B = y.canvasMarginLeft,
                    V = y.canvasMarginRight,
                    G = y.minCanvasHeight,
                    z = y.minCanvasWidth,
                    H = y.minChartWidth,
                    W = y.minChartHeight,
                    j = y.height,
                    U = y.width,
                    q = !1,
                    Y = !1,
                    X = y.origCanvasTopMargin,
                    K = y.origCanvasBottomMargin,
                    Z = y.origCanvasLeftMargin,
                    J = y.origCanvasRightMargin;
                y.canvasWidth - 2 * M < H && (d = (y.canvasWidth - H) / 2), y.canvasHeight - 2 * M < W && (u = (y.canvasHeight - W) / 2), this._allocateSpace({ top: u || M, bottom: u || M, left: d || M, right: d || M }), a = S[0], this._resetViewPortConfig && this._resetViewPortConfig(), this._setAxisScale && this._setAxisScale(), e = .7 * y.availableWidth, this._calculateChartShift("yAxis"), y.yAxisSpaceAllocation = v = a && a.placeAxis(e), a && this._allocateSpace(v), f = .225 * y.availableHeight, p = this._manageActionBarSpace && this._manageActionBarSpace(f) || {}, this._allocateSpace(p), this._manageLegendSpace && this._manageLegendSpace(), t = A[0] === w || A[0] === L ? .6 * y.availableHeight : .6 * y.availableWidth, E && (this._allocateSpace({ left: E }), y.shift = N + P + _), F && this._allocateSpace({ top: F }), y.canvasWidth - 2 * D < z && (m = (y.canvasWidth - z) / 2), this._allocateSpace({ left: m || D, right: m || D }), z > U - B - V && (Y = !0, i = y.canvasWidth - z, x = B + V, B = y.canvasMarginLeft = i * B / x, V = y.canvasMarginRight = i * V / x), r = B > y.canvasLeft ? B - y.canvasLeft : 0, s = V > U - y.canvasRight ? V + y.canvasRight - U : 0, this._allocateSpace({ left: r, right: s }), this._allocateSpace({ left: _ }), Y && (x = Z + J, (h = y.canvasWidth) > z && (r = (i = h - z) * Z / x, s = i * J / x), this._allocateSpace({ left: r, right: s })), y.actualCanvasMarginRight = s, y.actualCanvasMarginBottom = o, this._manageChartMenuBar(t), t = .2 * y.availableHeight, y.sumValueSpace = this._getSumValueSpace(t), this._allocateSpace(y.sumValueSpace), t = .3 * y.availableHeight, y.realtimeEnabled && (I ? this._allocateSpace(this._realTimeValuePositioning(t)) : this._hideRealTimeValue()), t = .6 * y.availableHeight, this._calculateChartShift("xAxis"), y.xAxisSpaceAllocation = b = k && k.placeAxis(t), k && this._allocateSpace(b), t = .3 * y.availableHeight, this._manageScrollbarPosition && this._manageScrollbarPosition(t), y.canvasHeight - 2 * D < G && (g = (y.canvasHeight - G) / 2), this._allocateSpace({ top: g || D, bottom: g || D }), G > j - O - R && (q = !0, i = y.canvasHeight - G, x = O + R, O = y.canvasMarginTop = i * O / x, R = y.canvasMarginBottom = i * R / x), n = O > y.canvasTop ? O - y.canvasTop : 0, o = R > j - y.canvasBottom ? R + y.canvasBottom - j : 0, this._allocateSpace({ top: n, bottom: o }), q && (x = X + K, (c = y.canvasHeight) > G && (n = (i = c - G) * X / x, o = i * K / x), this._allocateSpace({ top: n, bottom: o })), y.actualCanvasMarginTop = n, y.actualCanvasMarginLeft = r, T.setDimension({ top: y.canvasTop, left: y.canvasLeft, width: y.canvasWidth, height: y.canvasHeight }) }

            function u() { var e, t, a, i, n = this.config,
                    o = this.getChildren(),
                    r = o.xAxis && o.xAxis[0],
                    l = o.yAxis && o.yAxis[0],
                    s = o.scrollBar && o.scrollBar[0] && o.scrollBar[0].config,
                    c = o.legend && o.legend[0],
                    h = n.xDepth || 0,
                    u = o.canvas[0].config,
                    d = u.canvasBorderWidth,
                    g = u.canvasPadding,
                    p = u.canvasTop,
                    f = u.canvasLeft,
                    m = p - d,
                    v = p + u.canvasHeight + d,
                    b = f - (n.shift || 0) - d,
                    x = f + u.canvasWidth + d + n.sumValueSpace.right;
                l && this._allocateXAxisLabelSpace(l), e = u.canvasPaddingLeft, t = u.canvasPaddingRight, a = u.canvasPaddingTop, i = u.canvasPaddingBottom, l && l.setAxisDimention({ x: u.canvasLeft + e, y: l.config.isOpposit ? m : v, opposite: l.config.isOpposit ? v : m, axisLength: u.canvasWidth - e - t }), r && r.setAxisDimention({ x: (r.config.isOpposit ? x : b) + (this.isScrollEnabled() && s.isOpposite && n.shift || 0), y: p + h + Math.max(a, g), opposite: r.config.isOpposit ? b : x, axisLength: u.canvasHeight - h - Math.max(a, g) - Math.max(i, g) }), c && c.postSpaceManager(), this.allocateDimensionOfChartMenuBar() } var d = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getName = function() { return "MSBarCartesian" }, t.getName = function() { return "MSBarCartesian" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.config.enablemousetracking = !0 }, a._feedAxesRawData = function() { return c.call(this) }, a._spaceManager = function() { h.call(this) }, a._postSpaceManagement = function() { u.call(this) }, a.getDSdef = function() { return r["default"] }, a.getDSGroupdef = function() {}, t }(o["default"]);
            t["default"] = d },
        547: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(445)),
                r = a(548),
                l = i(a(549)),
                s = i(a(550)),
                c = function(e) {
                    function t() { var t; return (t = e.call(this) || this).registerFactory("dataset", l["default"], ["vCanvas"]), t.registerFactory("legend", s["default"]), t }(0, n["default"])(t, e), t.getName = function() { return "MSCartesian" }; var a = t.prototype; return a.getName = function() { return "MSCartesian" }, a.getType = function() { return "chartAPI" }, a._manageLegendSpace = function() { r._manageLegendSpace.call(this) }, a.manageGradientLegendSpace = function(e) { return r.manageGradientLegendSpace.call(this, e) }, t }(o["default"]);
            t["default"] = c },
        548: function(e, t, a) { "use strict";
            t.__esModule = !0, t._manageLegendSpace = function() { var e, t, a, n, o = this.config,
                    r = this.getChildren("legend") && this.getChildren("legend")[0],
                    l = this.getChildren("gLegend") && this.getChildren("gLegend")[0],
                    s = this.getFromEnv("dataSource").colorrange,
                    c = o.hasLegend,
                    h = {},
                    u = this.hasGradientLegend,
                    d = this.getFromEnv("dataSource").chart,
                    g = (0, i.pluckNumber)(d.mapbycategory, 0);
                u && s && (0, i.pluckNumber)(s.gradient) && !g ? (e = l.conf, u = !0, o.gLegendEnabled = !0, t = e.legendPosition ? e.legendPosition.split("-") : [], n = t[0] === i.POSITION_RIGHT || t[0] === i.POSITION_LEFT ? .4 : .5) : (e = r && r.config, u = !1, o.gLegendEnabled = !1, t = e && e.legendPos ? e.legendPos.split("-") : [i.POSITION_BOTTOM], n = t[0] === i.POSITION_RIGHT || t[0] === i.POSITION_LEFT ? .8 : .4);
                a = t[0] === i.POSITION_ABSOLUTE ? .4 * o.availableHeight : t[0] === i.POSITION_RIGHT || t[0] === i.POSITION_LEFT ? o.availableWidth * n : o.availableHeight * n;
                u ? h = this.manageGradientLegendSpace(a) : !1 !== c && r && !r.getState("removed") && (h = r && r._manageLegendPosition(a));
                h && this._allocateSpace(h) }, t.manageGradientLegendSpace = function(e) { var t, a, n, o = this.config,
                    r = this.getFromEnv("gLegend"),
                    l = r && r.conf,
                    s = { top: 0, bottom: 0, left: 0, right: 0 };
                o.gLegendPadding = (0, i.pluckNumber)(this.getFromEnv("chart-attrib").legendpadding, 10), a = Math.min(o.gLegendPadding, .5 * e), l && (t = l.legendPosition ? l.legendPosition.split("-") : [], n = r.getLogicalSpace(e), t[0] === i.POSITION_BOTTOM ? s.bottom = (n.height || 0) + a : t[0] === i.POSITION_TOP ? s.top = (n.height || 0) + a : t[0] === i.POSITION_LEFT ? s.left = (n.width || 0) + a : t[0] !== i.POSITION_ABSOLUTE && (s.right = (n.width || 0) + a)); return s }; var i = a(215) },
        549: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t, a, n, o, r = e.getFromEnv("dataSource").dataset,
                    l = e.getChildren().canvas[0],
                    s = t = l.getChildren("vCanvas")[0],
                    c = e.config.defaultDatasetType || ""; if (!r) return void e.setChartMessage();
                (n = e.getDSGroupdef()) && ((0, i.componentFactory)(t, n, "datasetGroup_" + c, 1, [r]), o = t.getChildren("datasetGroup_" + c));
                o && (s = o[0]), a = e.getDSdef(), (0, i.datasetFactory)(s, a, "dataset", r.length, r) }; var i = a(215) },
        550: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t;
                (0, n.componentFactory)(e, o["default"], "legend"), (t = e.getChildren("legend")[0]).configure(), e.addToEnv("legend", t), e.config.showLegend || t.remove() }; var n = a(215),
                o = i(a(551)) },
        551: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(214)),
                o = i(a(232)),
                r = i(a(229)),
                l = a(215),
                s = a(230),
                c = i(a(552)),
                h = a(223),
                u = a(331),
                d = i(a(554)),
                g = a(227),
                p = a(555);

            function f(e, t) { var a = Object.keys(e); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), a.push.apply(a, i) } return a }

            function m(e) { for (var t = 1; t < arguments.length; t++) { var a = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? f(Object(a), !0).forEach((function(t) {
                        (0, n["default"])(e, t, a[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : f(Object(a)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t)) })) } return e } var v = { left: l.POSITION_START, right: l.POSITION_END, center: l.POSITION_MIDDLE },
                b = Math,
                x = b.min,
                y = b.max,
                C = b.floor,
                k = b.ceil,
                S = l.preDefStr.NORMAL,
                w = { fontWeight: { 1: l.preDefStr.BOLD, 0: S }, fontStyle: { 1: "italic", 0: S }, textDecoration: { 1: "underline", 0: l.preDefStr.noneStr } };
            (0, h.addDep)({ name: "legendAnimation", type: "animationRule", extension: d["default"] }); var L = function(e) { return Array(e).fill() },
                A = function(e) {
                    function t() { var t;
                        t = e.call(this) || this; var a = (0, o["default"])(t); return a._stateCosmetics = {}, a._legendState = [], a.dragDraw = function() { a.draw() }, a.drawScroll = function() { a.createItemGroup(), a.createCaptionGroup() }, a.config.handlers = function(e) { var t, a; return { dragstart: function() { t = e.config.xL || e.config.xPos, a = e.config.yL || e.config.yPos }, dragmove: function(i) { var n, o, r = i.originalEvent.data[0],
                                        l = i.originalEvent.data[1],
                                        s = e.config,
                                        c = e.getFromEnv("chartConfig"),
                                        h = (s.borderWidth || 0) + 2;
                                    n = x(y(t + r, h), c.width - s.width - h), o = x(y(a + l, h), c.height - s.height - h), s.xPos = s.xL = n, s.yPos = s.yL = o, e.addJob("draw", e.dragDraw, g.priorityList && g.priorityList.draw) } } }(a), t }(0, r["default"])(t, e); var a = t.prototype; return a.createItem = function(e) { var t; return t = new c["default"], this.attachChild(t, "legendItem"), t.setLinkedItem("owner", e), t.addEventListener("mouseover", (function() { t.setLegendState("hover", !0) })), t.addEventListener("mouseout", (function() { t.removeLegendState("hover") })), t.getId() }, a.getItem = function(e) { var t = this.getChildren().legendItem; if (void 0 === e) return !1; if (t)
                            for (var a = 0; a < t.length; a++)
                                if (t[a].getId() === e) return t[a] }, a.getSortedLegendItems = function() { var e, t, a = this.getChildren("legendItem") || [],
                            i = this.config.reverselegend,
                            n = {},
                            o = []; for (e = 0, t = a.length; e < t; e++) void 0 === a[e].config.index ? n[t + e] = a[e] : n[a[e].config.index] = a[e]; return Object.keys(n).sort((function(e, t) { return i ? t - e : e - t })).forEach((function(e) { o.push(n[e]) })), o }, a.disposeItem = function(e) { var t = this.getItem(e);
                        t && t.remove() }, a.getName = function() { return "legend" }, a.getType = function() { return "legend" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.enabled = !0, t.symbolWidth = 12, t.borderRadius = 1, t.lastScrollPos = 0, t.oriSymbolPadding = 3, t.textPadding = 4, t.scrollY = 0, t.scrollX = 0, t.backgroundColor = "#ffffff", t.initialItemX = 0, t.title = { text: l.BLANKSTRING, x: 0, y: 0, padding: 2 }, t.scroll = {}, t.horizontalScroll = {}, t.itemStyle = {} }, a.createLegendGroup = function() { var e, t = this.config,
                            a = this.getFromEnv("chart"),
                            i = a.config,
                            n = this.getFromEnv("animationManager"),
                            o = .5 * (t.borderWidth || 0) + 2,
                            r = this.getContainer("legendGroup");
                        t.xL && (t.xL = x(y(t.xL, o), i.width - t.width - o)), t.yL && (t.yL = x(y(t.yL, o), i.height - t.height - o)), e = n.setAnimation({ el: r || "group", attr: { name: "legendGroup", transform: ["T", t.xL || t.xPos, t.yL || t.yPos] }, container: a.getChildContainer("legendGroup"), component: this }), r || this.addContainer("legendGroup", e) }, a.drawDualScrollRect = function() { var e = this.getGraphicalElement("dualScrollRect"),
                            t = this.getGraphicalElement("scrollbarContainer"),
                            a = this.getFromEnv("animationManager");
                        this.config.scroll.enabled && this.config.horizontalScroll.enabled ? (e = a.setAnimation({ el: e || "rect", attr: { x: this.config.width - 12, y: this.config.height - 12, height: 12, width: 12, fill: this.config.legendScrollBgColor, stroke: "none" }, component: this, container: t }), e = this.addGraphicalElement("dualScrollRect", e)) : e && e.remove() }, a.draw = function() { this.createLegendGroup(), this.drawLegendBox(), this.createItemGroup(), this.createCaptionGroup(), this.drawCaption(), this.createScrollGroup(), this.decideScroll(), this.drawDualScrollRect() }, a.decideScroll = function() { var e = this.config,
                            t = e.scroll.enabled,
                            a = e.horizontalScroll.enabled;
                        t ? this.createScrollBar() : e.hasScroll && (this.getChildren("legendScrollBar")[0].remove(), e.hasScroll = !1), a ? this.createScrollBar(a) : e.hasHorizontalScroll && (this.getChildren("legendHorizontalScrollBar")[0].remove(), e.hasHorizontalScroll = !1) }, a.createCaptionGroup = function() { var e, t = this.getChildContainer("captionGroup"),
                            a = this.getFromEnv("animationManager"),
                            i = this.getContainer("legendGroup"),
                            n = (0, l.pluckNumber)(this.config.padding, 4),
                            o = .5 * n,
                            r = y(this.config.height - n, 0),
                            s = y(this.config.width - n, 0),
                            c = "," + (this.config.horizontalScroll.enabled ? s : this.config.width) + "," + (this.config.scroll.enabled ? r : this.config.height);
                        this.config.horizontalScroll.enabled ? (e = this.addChildContainer("captionGroup", a.setAnimation({ el: t && null !== t[0] ? t : "group", attr: { name: "captionGroup", transform: ["T", 0, this.config.scrollY || 0] }, container: i, component: this })), this.config.scroll.enabled ? e.attr({ "clip-rect": "0," + o + c }) : e.attr({ "clip-rect": null })) : t && t.remove() }, a.createItemGroup = function() { var e, t = this.getFromEnv("animationManager"),
                            a = this.getContainer("legendGroup"),
                            i = this.getChildContainer("itemGroup"),
                            n = (0, l.pluckNumber)(this.config.padding, 4),
                            o = .5 * n,
                            r = y(this.config.height - n, 0),
                            s = y(this.config.width - n, 0),
                            c = "," + (this.config.horizontalScroll.enabled ? s : this.config.width) + "," + (this.config.scroll.enabled ? r : this.config.height); return e = t.setAnimation({ el: i || "group", attr: { name: "item", transform: ["T", this.config.scrollX || 0, this.config.scrollY || 0] }, container: a, component: this }), i || this.addChildContainer("itemGroup", e), this.config.scroll.enabled || this.config.horizontalScroll.enabled ? e.attr({ "clip-rect": "0," + o + c }) : e.attr({ "clip-rect": null }), e }, a.createScrollGroup = function() { var e = this.getFromEnv("animationManager"),
                            t = this.getChildContainer("scrollGroup"),
                            a = this.getContainer("legendGroup");!this.config.scroll.enabled && !this.config.horizontalScroll.enabled || this.getGraphicalElement("scrollbarContainer") || this.addGraphicalElement("scrollbarContainer", e.setAnimation({ el: t || "group", attr: { name: "scrollGroup" }, container: a, component: this, label: "scrollbar" })) }, a.createScrollBar = function(e) { void 0 === e && (e = !1); var t, a, i, n, o, r, s, c, h = this,
                            d = h.config,
                            p = h.getFromEnv("chart-attrib"),
                            f = e ? "legendHorizontalScrollBar" : "legendScrollBar",
                            m = h.getChildren(f) && h.getChildren(f)[0],
                            v = d.borderWidth || 0,
                            b = .5 * v,
                            x = (0, l.pluckNumber)(d.padding, 4),
                            C = d.width,
                            k = d.height;
                        t = { conf: { isHorizontal: e }, handler: { scroll: function(t) { d.lastScrollPos = t, e ? d.scrollX = (n - d.totalWidth) * t : d.scrollY = (i - d.totalHeight) * t, h.addJob("scrollDraw", h.drawScroll, g.priorityList && g.priorityList.draw) }, mousedown: function(e) { e.preventDefault(), e.stopPropagation() } } }, p.legendscrollbgcolor && (t.conf.color = (0, l.convertColor)(p.legendscrollbgcolor)), m || (m = h.attachChild(new u.ScrollBar, f), e ? this.config.hasHorizontalScroll = !0 : this.config.hasScroll = !0), m.configure(t.conf), m.attachEventHandlers(t.handler), a = m.config, e ? (o = b, r = k - m.getLogicalSpace().height - v + .5 * x, c = C - v, this.config.scroll.enabled && this.config.horizontalScroll.enabled && (c -= 12), c = y(c, 0), n = y(C - x, 0), a.scrollRatio = (n + x) / d.totalWidth) : (i = y(k - x, 0), o = C - m.getLogicalSpace().width - v + .5 * x, r = b, s = k - v, this.config.scroll.enabled && this.config.horizontalScroll.enabled && (s -= 12), s = y(s, 0), a.scrollRatio = (i + x) / d.totalHeight), a.startPercent = 0, a.scrollPosition = d.lastScrollPos, a.parentLayer = h.getChildContainer("scrollGroup"), m.setDimension({ x: o, y: r, height: s, width: c }) }, a.drawCaption = function() { var e, t, a, i, n = this.getGraphicalElement("caption"),
                            o = this.config.horizontalScroll.enabled ? this.getChildContainer("captionGroup") : this.getChildContainer("itemGroup"),
                            r = this.getFromEnv("animationManager"),
                            s = this.config,
                            c = (0, l.pluckNumber)(s.padding, 4),
                            h = s.scroll.enabled,
                            u = s.width; if (s.title && s.title.text !== l.BLANKSTRING && s.validLegendItem) { switch (s.title.align) {
                                case l.POSITION_START:
                                    a = c; break;
                                case l.POSITION_END:
                                    a = u - c - (h ? 10 : 0); break;
                                default:
                                    a = .5 * u } t = s.title.style, e = { text: s.title.text, title: s.title.originalText || l.BLANKSTRING, x: a, y: c, fill: s.title.style.color, direction: s.textDirection, "line-height": t.lineHeight, "vertical-align": l.POSITION_TOP, "text-anchor": s.title.align, opacity: 1 }, i = { "font-weight": t.fontWeight, "font-style": t.fontStyle, "font-family": t.fontFamily, "font-size": t.fontSize }, n && n.show(), n && n[0] ? r.setAnimation({ el: n, attr: e, component: this, container: o, css: i }) : (n = r.setAnimation({ el: "text", attr: e, component: this, container: o, css: i }), n = this.addGraphicalElement("caption", n)), this.getFromEnv("toolTipController").enableToolTip(n, s.title.originalText) } else n && r.setAnimation({ el: n, component: this, doNotRemove: !0, callback: function() { n.hide() } }) }, a.drawLegendBox = function() { var e, t = this.getFromEnv("animationManager"),
                            a = this.config,
                            i = this.getContainer("legendGroup"),
                            n = a.width,
                            o = this.getGraphicalElement("box"),
                            r = a.height,
                            l = a.borderRadius,
                            s = a.backgroundColor,
                            c = a.borderColor,
                            h = a.borderAlpha,
                            u = a.backgroundAlpha,
                            d = a.borderWidth || 0; return e = t.setAnimation({ el: o || "rect", attr: { x: 0, y: 0, width: n, height: r, r: l, stroke: c, "stroke-width": d, fill: s || "none", "stroke-opacity": h / 100, "fill-opacity": u / 100, cursor: a.legendAllowDrag ? "move" : "default" }, container: i, component: this, label: "legendGroup" }), o || (this.addGraphicalElement("box", e), e.shadow(a.shadow)), e }, a._calculateTopPosition = function(e) { var t = this.getFromEnv("chart"),
                            a = t.config,
                            i = e,
                            n = t.getChildren("caption") && t.getChildren("caption")[0],
                            o = t.getChildren("subCaption") && t.getChildren("subCaption")[0],
                            r = t.getChildren("chartMenuBar") && t.getChildren("chartMenuBar")[0],
                            s = a.oriTopSpace; return !a.toolbarY && r && r.props && r.props.height && (s > r.props.height + r.props.y || (i = r.props.y + r.props.height)), n && n.config && n.config.text && n.config.text !== l.BLANKSTRING && n.config.height && 1 === n.config.isOnTop && (i = n.config.height + n.config.y + n.config.captionPadding), o && o.config && o.config.height && 1 === o.config.isOnTop && (i = o.config.y + o.config.height + (n && n.config && n.config.captionPadding || 0)), y(i, e) }, a.getPosition = function() { var e, t, a, i, n, o, r, s, c, h, u = this.getFromEnv("chart"),
                            d = u.config,
                            g = this.config,
                            p = u.getChildren("canvas"),
                            f = p && p.length > 1 ? d.height - p[0].config.canvasBottom : d.height - d.canvasBottom,
                            m = d.canvasLeft,
                            v = d.canvasRight,
                            b = d.canvasWidth,
                            x = g.chartMarginLeft || 0,
                            y = g.chartMarginRight || 0,
                            C = g.chartMarginTop || 0,
                            k = g.chartMarginBottom || 0,
                            S = d.actionBarHeight || 0,
                            w = g.actualCanvasMarginLeft || 0,
                            L = d.actualCanvasMarginTop || 0,
                            A = d.actualCanvasMarginBottom || 0,
                            N = d.actualCanvasMarginRight || 0,
                            E = g.alignLegendWithCanvas,
                            T = d.height,
                            F = d.canvasTop,
                            _ = g.width || 0,
                            P = g.height || 0,
                            D = d.borderWidth,
                            I = d.oriCanvasLeft,
                            M = d.oriCanvasRight,
                            O = d.oriTopSpace,
                            R = d.oriBottomSpace,
                            B = 0,
                            V = 0,
                            G = g.borderWidth || 0,
                            z = g.legendPos ? g.legendPos.split("-") : [],
                            H = u.getChildren("caption") && u.getChildren("caption")[0],
                            W = u.getChildren("subCaption") && u.getChildren("subCaption")[0]; return z[0] !== l.POSITION_LEFT && z[0] !== l.POSITION_RIGHT || (g.align = z[0], g.verticalAlign = l.POSITION_MIDDLE, c = g.layout = "vertical"), z[0] === l.POSITION_ABSOLUTE ? (e = g.legendXPosition, t = g.legendYPosition, e > (a = d.width - _ - D) && (e = a), t > (i = d.height - P - D) && (t = i)) : c ? (z[0] === l.POSITION_LEFT ? e = x + w + D : z[0] === l.POSITION_RIGHT && (e = d.width - y - N - _ - D), B = (0, l.pluckNumber)(O, F), V = (0, l.pluckNumber)(R, f), z[1] === l.POSITION_TOP ? (t = B + (g.y || 0), t = this._calculateTopPosition(t)) : z[1] === l.POSITION_BOTTOM ? (t = T - V - P + (g.y || 0), (h = V - (D + k + S + (H && 0 === H.config.isOnTop && H.config.height ? H.config.height + H.config.captionPadding : 0) + (W && 0 === H.config.isOnTop ? W.config.height : 0))) < 0 && (t += h)) : t = B + .5 * (T - V - B - P) + (g.y || 0)) : (r = d.width - (x + w + (y + N)), s = E ? b - _ : r - _, n = E ? (0, l.pluckNumber)(I, m) : x + w, o = E ? d.width - (0, l.pluckNumber)(M, v) : y + N, e = z[1] === l.POSITION_LEFT ? n : z[1] === l.POSITION_RIGHT ? d.width - (_ + o) : n + s / 2, z[0] === l.POSITION_TOP ? (t = C + L, t = this._calculateTopPosition(t)) : t = T - P - A - k - S), (0, l.crispBound)(e, t, _, P, G) }, a.setTranslation = function(e, t) { var a = this.config;
                        a._translateX = e, a._translateY = t, a.translate = "t" + e + "," + t }, a.allocatePosition = function() { var e, t = this.config;
                        e = t.translate ? (0, l.crispBound)(t._translateX, t._translateY, t.width, t.height, t.borderWidth) : this.getPosition(), t.xPos = e.x, t.yPos = e.y, t.width = e.width, t.height = e.height }, a._manageLegendPosition = function(e) { var t, a = this.config,
                            i = a.legendPos ? a.legendPos.split("-") : [],
                            n = { left: 0, right: 0, top: 0, bottom: 0 }; return a.padding = 4, a.textPadding = 4, t = i[0] === l.POSITION_ABSOLUTE ? this._placeLegendBlockBottom(e, .6) : i[0] === l.POSITION_LEFT || i[0] === l.POSITION_RIGHT ? this._placeLegendBlockRight(e) : this._placeLegendBlockBottom(e), i[0] === l.POSITION_LEFT ? n.left = t && t.right || 0 : i[0] === l.POSITION_RIGHT ? n.right = t && t.right || 0 : i[0] === l.POSITION_TOP ? n.top = t && t.bottom || 0 : i[0] !== l.POSITION_ABSOLUTE && (n.bottom = t && t.bottom || 0, n.right = t && t.right || 0), n }, a.setDimension = function(e) { var t, a, i, n, o, r, s, c, h, u, d, g, f, v, b, S, w, A, N, E, T, F, _, P, D, I, M, O = this.config,
                            R = this.getSortedLegendItems(),
                            B = R.length,
                            V = e.width,
                            G = e.height,
                            z = G,
                            H = 0,
                            W = 0,
                            j = 0,
                            U = 0,
                            q = 0,
                            Y = 0,
                            X = 0,
                            K = [],
                            Z = O.padding,
                            J = O.textPadding,
                            $ = this.getFromEnv("smartLabel"),
                            Q = this.getStateCosmetics("default"),
                            ee = parseInt(Q.text["font-size"], 10) || 10,
                            te = O.title,
                            ae = te.padding,
                            ie = 0,
                            ne = O.minimiseWrappingInLegend,
                            oe = O.legendPadding,
                            re = O.legendScale,
                            le = O.alignLegendWithCanvas,
                            se = O.numColumns,
                            ce = O.numRows,
                            he = O.oriSymbolPadding,
                            ue = Number.MAX_SAFE_INTEGER,
                            de = V,
                            ge = !1,
                            pe = !!ce,
                            fe = 0; for (d = { width: 2 * Z, height: 2 * Z }, (u = ee + 1) <= 0 && (u = 1), V = Math.max(V - 2 * Z, 0), he *= re, (u = x(u *= re, V)) <= 0 && (he = u = 0), O.symbolWidth = u, O.textPadding = 4, O.legendHeight = h = u + 2 * he, O.rowHeight = r = y(parseInt(Q.text["line-height"], 10) || 12, h), o = J + he + Z, $.setStyle((0, l.extend2)({}, Q.text)), g = $.getOriSize(l.TESTSTR).height, s = oe + O.borderWidth / 2 + 1, s = y(x(s, G - g - 8), 0), oe = .05 * r, O.initialItemY = 0, O.initialItemX = 0, D = h + oe + J + he + 2 * Z, f = 0; f < B; f += 1) a = t = (n = R[f]).config || (n.config = {}), (i = t.name = (0, l.parseUnsafeString)(a.label)) === l.BLANKSTRING || 0 === a.enabled || !1 === a.enabled || n.getState("removed") ? t.enabled = 0 : (t.enabled = 1, j += 1, T = !0, F = $.getOriSize(i), H = y(H, x(F.width, V - D)), Y = y(Y, x(F.height, z)), t._selfTotalWidth = F.width + D, W += F.width); if (O.validLegendItem = T, U = W / j, W += D * j, O.x = !le && W > de ? 0 : O.x, T) { if (U += D, H += D, te.oriText !== l.BLANKSTRING && (ge = !0, $.setStyle(te.style), F = $.getSmartText(te.oriText, V - 2 * Z), te.text = F.text, F.tooltext && (te.originalText = F.tooltext), ie = F.width + 2 * Z, X = F.height + ae), b = H, ce ? !se && ce ? (fe = 1, j < ce && (ce = j), se = k(j / ce)) : k(j / se) < ce && k(j / ce) < se || j > se * ce ? ce = k(j / se) : se === k(j / ce) && (fe = 1) : W <= V ? b = 1 === (ce = k(j / (se = se || j))) ? W / j : H : !se && V > H && (ne || 1.5 * U > H) ? (j < (se = C(V / H)) && (se = j), b = H) : se && V / se > U ? (b = V / se) > H && (b = H) : !se && V >= 2 * U ? (j < (se = C(V / U)) && (se = j), (b = C(V / se)) > H && (b = H)) : se || (se = 1, b = V), q = pe ? H : b, !pe && 1.5 * U < H && (b = U), ce && !ne) { var me, ve, be = q;
                                H > 1.5 * U && (be = U), ve = x(j, C(V / be)), me = k(j / ve), O.numRows && me !== ce || O.numColumns && ve !== se || 1 === ce && 1 !== me || (q = be, se = ve, ce = me) } for ($.setStyle((0, l.extend2)({}, Q.text)), f = 0; f < B; f++) t = R[f].config, 1 === ce && (q = H > 2.5 * U ? U : t._selfTotalWidth), 0 === (c = Math.ceil(q - D)) ? (t.name = l.BLANKSTRING, t._totalWidth = u + he, t._selfTotalWidth = t._totalWidth, t._selfTotalHeight = r) : (F = $.getSmartText(t.name, c < t._selfTotalWidth - D ? c + J : void 0), t.name = F.text, t._textHeight = F.height, F.tooltext && (t.originalText = F.tooltext), t._selfTotalHeight = F.height + J > r ? J + F.height : r, t._totalWidth = u + o + F.width, t._selfTotalWidth = D + F.width, t._legendTestY = r > F.height ? (r - F.height) / 2 : 0, Y = y(Y, t._textHeight), ue = y(1, x(ue, t._textHeight))); if (S = { style: { display: "grid", justifyItems: "center", alignItems: "start" } }, w = [], ge && w.push({ style: { width: ie, height: X, gridRowStart: 1, gridRowEnd: 2, gridColumnStart: 1, gridColumnEnd: 2 } }), w.push({ style: { display: "grid", justifyItems: "start", alignItems: "start", width: x(W, V, q * se), paddingEnd: Z, paddingTop: Z, gridRowStart: w.length + 1, gridRowEnd: w.length + 2, gridColumnStart: 1, gridColumnEnd: 2 } }), A = [], pe || 1 === ce)
                                for (v = 0, f = 1; v < B; v++) 1 === (t = (n = R[v]).config).enabled && (0 === fe ? (I = k(f / se), M = f % se == 0 ? se : f % se) : (I = f % ce == 0 ? ce : f % ce, M = k(f / ce)), A.push({ style: { width: 1 === ce || M === se ? t._selfTotalWidth : q, height: t._selfTotalHeight, gridRowStart: I, gridRowEnd: I + 1, gridColumnStart: M, gridColumnEnd: M + 1 } }), f += 1);
                            else { for (ce = 0, ue = y(ue, r), v = 0; v < B; v++) 1 === (t = (n = R[v]).config).enabled && (ce += Math.ceil(t._selfTotalHeight / ue));
                                0 === ce && (ce = Math.max(1, Math.ceil(j / se))), K = L(ce).map((function() { return L(se) })); var xe, ye = 0,
                                    Ce = 0; for (v = 0, f = 1; v < B; v++)
                                    if (1 === (t = (n = R[v]).config).enabled) { for (; ye < ce;) { for (; Ce < se;) { if (void 0 === K[ye][Ce]) { M = Ce + 1, I = ye + 1, xe = 1 === se ? 1 : +(t._selfTotalHeight / ue).toFixed(0), K[ye][Ce] = !0; for (var ke = ye; ke < ye + xe; ke++) K[ke][Ce] = !0 } if (Ce++, K[ye][Ce - 1]) break } if (Ce >= se && (Ce = 0, ye++), xe) break } A.push({ style: { width: M === se ? t._selfTotalWidth : b, height: t._selfTotalHeight, gridRowStart: I, gridRowEnd: I + xe, gridColumnStart: M, gridColumnEnd: M + 1 } }), f += 1, xe = void 0 } for (f = ce = 0; f < K.length; f++)
                                    for (v = 0; v < se; v++)
                                        if (K[f][v]) { ce++; break } se > 1 && (w[w.length - 1].style.gridTemplateRows = (ue + " ").repeat(ce).slice(0, -1)) } for (w[w.length - 1].children = A, N = (0, p.computeLayout)(m(m({}, S), {}, { children: w })), O.itemWidth = q, (c = k(q - D)) < 0 && (he = c = J = 0), O.symbolPadding = he, O.textPadding = J, O.width = O.totalWidth = y(N.layout.width, N.children[N.children.length - 1].layout.width), $.setStyle((0, l.extend2)({}, Q.text)), v = 0, f = 0; v < B; v++) t = (n = R[v]).config, 1 === ce && (c = t._selfTotalWidth) < 0 && (he = c = J = 0), 1 === t.enabled && (0 === c && (t.name = l.BLANKSTRING, t._totalWidth = u + he), t._legendX = N.children[N.children.length - 1].children[f].layout.x, t._legendY = N.children[N.children.length - 1].children[f].layout.y, t._legendH = N.children[N.children.length - 1].children[f].layout.height, f += 1); if (E = ce, d.height += E * r + X, O.height = O.totalHeight = N.layout.height + 2 * Z, O.rowHeight = r, O.legendNumColumns = se, O.initialItemX = ge && ie > N.children[N.children.length - 1].layout.width && V > O.width ? N.children[N.children.length - 1].layout.x : 0, O.initialItemY = N.children[N.children.length - 1].layout.y, O.height - 2 * he > G ? (O.height = G, (_ = O.scroll || (O.scroll = {})).enabled = !0, _.flatScrollBars = O.flatScrollBars, _.scrollBar3DLighting = O.scrollBar3DLighting, O.width = O.width + 12 > V ? O.width : O.width + 12) : O.scroll.enabled = !1, O.width > V ? (O.width = V, (P = O.horizontalScroll || (O.horizontalScroll = {})).enabled = !0, P.flatScrollBars = O.flatScrollBars, P.scrollBar3DLighting = O.scrollBar3DLighting, O.height + 12 <= G ? O.height = O.height + 12 : (O.height = G, O.totalHeight += 4, (_ = O.scroll || (O.scroll = {})).enabled = !0, _.flatScrollBars = O.flatScrollBars, _.scrollBar3DLighting = O.scrollBar3DLighting, O.scroll.enabled = !0)) : O.horizontalScroll.enabled = !1, O.totalWidth > O.width && O.totalWidth - O.width <= 4) { for (v = 0, f = 0; v < B; v++) 1 === (t = (n = R[v]).config).enabled && (N.children[N.children.length - 1].children[f].style.gridColumnStart % se != 1 && (t._legendX += 4, 1 === N.children[N.children.length - 1].children[f].style.gridRowStart && (O.totalWidth += 4)), f += 1);
                                O.totalHeight += 4 } s += O.height, O.isActive = !0, O.enabled = !0 } else O.enabled = !1, O.width = 0, s = 0; return { width: O.width, height: s } }, a._placeLegendBlockBottom = function(e, t) { void 0 === t && (t = 1); var a, i, n, o, r, s = this.getFromEnv("chart"),
                            c = s.config,
                            h = s.getFromEnv("chartWidth"),
                            u = s.getFromEnv("chartHeight"),
                            d = c.canvasLeft,
                            g = c.width - (c.canvasRight || 0),
                            p = s.getFromEnv("smartLabel"),
                            f = this.config,
                            m = f.chartMarginLeft,
                            v = f.chartMarginRight,
                            b = f.chartMarginTop,
                            x = f.alignLegendWithCanvas,
                            y = this.getSortedLegendItems().length,
                            C = f.legendPadding,
                            k = c.canvasMarginRight,
                            S = c.canvasMarginLeft,
                            w = s.getChildren("yAxis"),
                            L = w && w[0].config.isVertical ? w : s.getChildren("xAxis"),
                            A = L && L[0],
                            N = L && L[1],
                            E = A && A.config || {},
                            T = N && N.config || {},
                            F = E.nameMaxW,
                            _ = T.nameMaxW,
                            P = E.name && E.name.style || {},
                            D = T.name && T.name.style || {},
                            I = E.axisName || l.BLANKSTRING,
                            M = T.axisName || l.BLANKSTRING,
                            O = c.canvasWidth - c.canvasMarginLeft - c.canvasMarginRight,
                            R = c.width,
                            B = c.height,
                            V = f.legendPos ? f.legendPos.split("-") : []; return f.paddingBottom = c.height - c.canvasBottom, p.useEllipsesOnOverflow(c.useEllipsesWhenOverflow), p.setStyle(P), o = p.getOriSize(I), p.setStyle(D), r = p.getOriSize(M), O < C && (f.padding = C = O = 0), (o || r) && (i = (0, l.pluckNumber)(o.height, 0) > (0, l.pluckNumber)(r.height, 0) ? (n = F) && o.width : (n = _) && r.width), O = x ? O : h - (i + b > u - e ? 2 * n + v + m + k + S : v + m + S + k), V[0] === l.POSITION_ABSOLUTE && (O = R, f.legendMaxWidth < R ? O = f.legendMaxWidth : O *= t), f.showLegend && 0 !== y ? (f.x = (d - m - g + v) / 2, a = this.setDimension({ width: O, height: V[0] === l.POSITION_ABSOLUTE ? f.legendMaxHeight < B ? f.legendMaxHeight : B : e }).height) : (a = 0, f.height = 0, f.width = 0), { bottom: a, right: 0 } }, a._placeLegendBlockRight = function(e) { var t, a = e,
                            i = this.config,
                            n = this.getFromEnv("chart"),
                            o = n.config,
                            r = n.getFromEnv("smartLabel"),
                            s = i.legendPadding,
                            c = this.getStateCosmetics("default"),
                            h = o.canvasHeight,
                            u = {},
                            d = this.getSortedLegendItems().length; return a < s && (i.padding = s = a = 0), r.useEllipsesOnOverflow(o.useEllipsesWhenOverflow), r.setStyle((0, l.extend2)({}, c.text)), i.numColumns || i.numRows || (i.numColumns = 1), i.showLegend && 0 !== d ? (t = this.setDimension({ width: a - s, height: h }).width, u.right = t + s, u.right + 10 <= a && (u.right += 10)) : (u.right = 0, i.height = 0, i.width = 0), u }, a.postSpaceManager = function() { var e = this.config,
                            t = e.legendPos ? e.legendPos.split("-") : [],
                            a = this.getFromEnv("chart").config.canvasHeight;
                        t[0] !== l.POSITION_RIGHT && t[0] !== l.POSITION_LEFT || (e.totalHeight > a ? (e.totalHeight <= e.height && (e.scroll.enabled = !0, e.scroll.flatScrollBars = e.flatScrollBars, e.scroll.scrollBar3DLighting = e.scrollBar3DLighting, e.width += (e.scroll.scrollBarWidth = 10) + (e.scroll.scrollBarPadding = 2)), e.height = a) : e.scroll.enabled = !1) }, a.configureAttributes = function(t) { void 0 === t && (t = {}), e.prototype.configureAttributes.call(this, t); var a, i, n, o, r, s = this.config,
                            c = this.getFromEnv("chart"),
                            h = c.config,
                            u = this.getFromEnv("style"),
                            d = c.getFromEnv("chart-attrib"),
                            g = c.config.is3D,
                            p = this.getFromEnv("color-manager"),
                            f = g ? l.chartPaletteStr.chart3D : l.chartPaletteStr.chart2D,
                            m = s.interactiveLegend = !1 !== c.hasInteractiveLegend && Boolean((0, l.pluckNumber)(d.interactivelegend, 1)),
                            b = (0, l.pluckNumber)(d.useroundedges, 0),
                            x = u.outCancolor,
                            C = t.style && t.style.text,
                            k = (0, l.pluck)(d.legenditemfont, C && C["font-family"], u.outCanfontFamily),
                            S = (0, l.pluckNumber)(d.legendiconscale, 1),
                            L = (0, l.pluckFontSize)(d.legenditemfontsize, C && C["font-size"], u.fontSize) + "px",
                            A = (0, l.pluck)(d.legenditemfontcolor, C && C.color, x).replace(/^#?([a-f0-9]+)/gi, "#$1"),
                            N = (0, l.getFirstColor)((0, l.pluck)(d.legenditemhoverfontcolor, A));
                        s.isActive = !1, s.chartMarginTop = h.origMarginTop, s.chartMarginRight = h.origMarginRight, s.chartMarginBottom = h.origMarginBottom, s.chartMarginLeft = h.origMarginLeft, s.reverselegend = (0, l.pluckNumber)(d.reverselegend, 0), s.showLegend = (0, l.pluckNumber)(d.showlegend, !c.dontShowLegendByDefault, 1), a = (0, l.setLineHeight)({ fontSize: L }), s.legendPos = (0, l.pluck)(d.legendposition, c.legendposition, t.legendPosition, l.POSITION_BOTTOM).toLowerCase(), s.numColumns = (0, l.pluckNumber)(Math.floor(d.legendnumcolumns)), s.numRows = (0, l.pluckNumber)(Math.floor(d.legendnumrows)), s.numColumns < 0 && (s.numColumns = void 0), s.numRows < 0 && (s.numRows = void 0), s.legendXPosition = y((0, l.pluckNumber)(d.legendxposition, c.legendxposition, t.legendXPosition, 0), 0), s.legendYPosition = y((0, l.pluckNumber)(d.legendyposition, c.legendyposition, t.legendYPosition, 0), 0), s.legendMaxWidth = (0, l.pluckNumber)(d.legendmaxwidth, c.legendmaxwidth, t.legendMaxWidth), s.legendMaxHeight = (0, l.pluckNumber)(d.legendmaxheight, c.legendmaxheight, t.legendMaxHeight), s.legendMaxWidth < 0 && (s.legendMaxWidth = void 0), s.legendMaxHeight < 0 && (s.legendMaxHeight = void 0), s.xL = s.yL = 0, (S <= 0 || S > 5) && (S = 1), s.drawCustomLegendIcon = (0, l.pluckNumber)(d.drawcustomlegendicon, t.drawcustomlegendicon, 0), s.legendScale = S, s.legendPadding = (0, l.pluckNumber)(d.legendpadding, 7), s.alignLegendWithCanvas = (0, l.pluckNumber)(t.alignlegendwithcanvas, h.alignLegendWithCanvas), s.title.style = { fontFamily: (0, l.pluck)(d.legendcaptionfont, k), fontSize: (0, l.pluckFontSize)(d.legendcaptionfontsize, u.fontSize) + "px", color: (0, l.pluck)(d.legendcaptionfontcolor, x).replace(/^#?([a-f0-9]+)/gi, "#$1"), fontWeight: w.fontWeight[(0, l.pluckNumber)(d.legendcaptionfontbold, 1)] || l.BLANKSTRING }, r = d.legendcaptionalignment ? d.legendcaptionalignment.toLowerCase() : v.center, s.title.align = v[r] || v.center, s.title.style["text-anchor"] = s.title.align, s.padding = 4, i = (0, l.pluck)(d.legendbordercolor, p.getColor(f.legendBorderColor)), n = s.borderAlpha = (0, l.pluckNumber)(d.legendborderalpha, 100), s.borderColor = (0, l.convertColor)(i, n), s.borderWidth = (0, l.pluckNumber)(d.legendborderthickness, t.legendborderthickness, !b || d.legendbordercolor ? 1 : 0), s.borderRadius = (0, l.pluckNumber)(b, 0), s.backgroundAlpha = o = (0, l.pluckNumber)(d.legendbgalpha, t.legendbgalpha, 100), s.backgroundColor = (0, l.convertColor)((0, l.pluck)(d.legendbgcolor, p.getColor(f.legendBgColor)), o), s.symbol3DLighting = Boolean((0, l.pluckNumber)(d.use3dlighting, d.useplotgradientcolor, 1)), s.shadow = Boolean((0, l.pluckNumber)(d.legendshadow, 1)), s.shadow && (s.shadow = { enabled: s.shadow, opacity: y(n, o) / 100 }), s.prevReversed = Boolean((0, l.pluckNumber)(s.reversed, 0)), s.reversed = Boolean((0, l.pluckNumber)(d.reverselegend, 0)), s.lineWidth = (0, l.pluckNumber)(d.linethickness, 2), s.borderRadius = (0, l.pluckNumber)(d.legendborderradius, b ? 3 : 0), s.legendAllowDrag = Boolean((0, l.pluckNumber)(d.legendallowdrag, 0)), s.title.oriText = (0, l.parseUnsafeString)((0, l.getFirstValue)(d.legendcaption, l.BLANKSTRING)), s.legendScrollBgColor = (0, l.getFirstColor)((0, l.pluck)(d.legendscrollbgcolor, d.scrollcolor, p.getColor("altHGridColor"))), s.legendScrollBarColor = (0, l.pluck)(d.legendscrollbarcolor, i), s.legendScrollBtnColor = (0, l.pluck)(d.legendscrollbtncolor, i), s.minimiseWrappingInLegend = (0, l.pluckNumber)(d.minimisewrappinginlegend, 0), s.flatScrollBars = (0, l.pluckNumber)(d.flatscrollbars, 0), s.scrollBar3DLighting = (0, l.pluckNumber)(d.scrollbar3dlighting, 1), s.orderReversed = !1, this.setStateCosmetics("hidden", { symbol: { fill: (0, l.convertColor)((0, l.pluck)(d.legenditemhiddencolor, "cccccc").replace(/^#?([a-f0-9]+)/gi, "#$1")), stroke: (0, l.convertColor)((0, l.pluck)(d.legenditemhiddencolor, "cccccc").replace(/^#?([a-f0-9]+)/gi, "#$1")) }, text: { fill: (0, l.convertColor)((0, l.pluck)(d.legenditemhiddencolor, "cccccc").replace(/^#?([a-f0-9]+)/gi, "#$1")) } }), this.setStateCosmetics("default", { text: { fill: (0, l.convertColor)(A), "font-family": k, cursor: m ? l.preDefStr.POINTER : "default", "font-size": L, "line-height": a, "vertical-align": l.POSITION_TOP, "text-anchor": l.POSITION_START, direction: "rtl" === h.textDirection ? "rtl" : "initial", "font-weight": w.fontWeight[(0, l.pluckNumber)(d.legenditemfontbold, 0)] || l.BLANKSTRING }, symbol: { bgColor: (0, l.pluck)(d.legendiconbgcolor), cursor: m ? l.preDefStr.POINTER : "default", borderColor: (0, l.pluck)(d.legendiconbordercolor), bgAlpha: (0, l.pluck)(d.legendiconbgalpha, d.legendiconalpha, 100), borderAlpha: (0, l.pluck)(d.legendiconborderalpha, d.legendiconalpha, 100), borderThickness: (0, l.pluckNumber)(d.legendiconborderthickness), startAngle: (0, l.pluckNumber)(d.legendiconstartangle, 45), sides: (0, l.pluckNumber)(d.legendiconsides, t.legendiconsides, 4) } }), this.setStateCosmetics("hover", (function(e, t) { return t.hasState("hidden") || (e.text || (e.text = {}), e.text.fill = (0, l.convertColor)(N.replace(/^#?([a-f0-9]+)/gi, "#$1")), e.text.cursor = "inherit"), e })), s.legendAllowDrag && !s._dragEvtListenerBinded ? (this.addEventListener("fc-dragstart", s.handlers.dragstart), this.addEventListener("fc-dragmove", s.handlers.dragmove), s._dragEvtListenerBinded = !0) : !s.legendAllowDrag && s._dragEvtListenerBinded && (this.removeEventListener("fc-dragstart", s.handlers.dragstart), this.removeEventListener("fc-dragmove", s.handlers.dragmove), s._dragEvtListenerBinded = !1) }, a.getLegendState = function() { return this._legendState }, a.hasState = function(e) { var t, a, i = this.getLegendState(); for (t = 0, a = i.length; t < a; t++)
                            if (i[t] === e) return !0; return !1 }, a.setLegendState = function(e, t) { this.hasState(e) || (t ? this._legendState.push(e) : this._legendState.unshift(e)), this.asyncDraw() }, a.removeLegendState = function(e) { var t, a, i = 1; if (e)
                            for (t = 0, a = this._legendState.length; t < a && i; t++) e === this._legendState[t] && (this._legendState.splice(t, 1), i = 0);
                        else this._legendState.length = 0;
                        this.asyncDraw() }, a.setStateCosmetics = function(e, t) { this._stateCosmetics[e] = t }, a.removeStateCosmetics = function(e) { delete this._stateCosmetics[e] }, a.getStateCosmetics = function(e) { return this._stateCosmetics[e] }, a.hide = function() { var e = this.getFromEnv("chart").getChildContainer("legendGroup");
                        e && e.hide() }, t }(s.ComponentInterface);
            t["default"] = A },
        552: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(215),
                r = a(230),
                l = a(223),
                s = i(a(553)),
                c = o.preDefStr.POINTER,
                h = "M",
                u = "L",
                d = "Z",
                g = function(e, t) { var a = e.config,
                        i = e.getLinkedParent().config,
                        n = .5 * i.symbolWidth,
                        r = (i.initialItemX || 0) + a._legendX,
                        l = (i.initialItemY || 0) + a._legendY,
                        s = r + i.symbolPadding + n,
                        h = l + (a._markerYGutter || 0) + i.symbolPadding + n,
                        u = (0, o.mapSymbolName)(a.anchorSide),
                        d = a.symbol = u && u.split("_") || [],
                        g = "spoke" === d[0] ? 1 : 0; return ("line" === a.type || a.drawLine) && (n *= .6), { path: (0, o.polyPathToPath)([d[1] || 2, s, h, n, a.startAngle, a.spoke || g]), cursor: t.cursor || c, stroke: t.stroke, fill: t.fill, "stroke-width": t["stroke-width"] || .5 } };
            (0, l.addDep)({ name: "legendItemAnimation", type: "animationRule", extension: s["default"] }); var p = function(e) {
                function t() { var t; return (t = e.call(this) || this)._stateCosmetics = {}, t._legendState = [], t }(0, n["default"])(t, e); var a = t.prototype; return a.getName = function() { return "legendItem" }, a.parseLegendCosmetics = function() { var e, t, a, i = this.getLinkedParent(),
                        n = i.getLegendState(),
                        r = this.getLegendState(),
                        l = ["default"],
                        s = {}; for (l = l.concat(n, r), a = 0; a < l.length; a++) e = i.getStateCosmetics(l[a]), t = this.getStateCosmetics(l[a]), e && ("function" == typeof e ? s = e(s, this) : (0, o.extend2)(s, e)), t && ("function" == typeof t ? s = t(s, this) : (0, o.extend2)(s, t)); return s }, a.getType = function() { return "legendItem" }, a.configure = function(e) { var t, a, i = this.config; for (t in e)
                        if (e.hasOwnProperty(t))
                            if ("object" != typeof e[t]) i[t] = e[t];
                            else { var n = i[t] ? i[t] : {}; for (a in e[t]) n[a] = e[t][a];
                                i[t] = n } }, a.itemClickFn = function() { var e = this.getFromEnv("chart-attrib"),
                        t = (0, o.pluckNumber)(e.interactivelegend, 1),
                        a = this.getLinkedItem("owner");
                    t && a.legendInteractivity(this) }, a.dispose = function() { this.removeEventListener("fc-click", this.click), this.removeEventListener("fc-mouseover", this.mouseover), this._dispose() }, a.getLegendState = function() { return this._legendState }, a.hasState = function(e) { var t, a, i = this.getLegendState(); for (t = 0, a = i.length; t < a; t++)
                        if (i[t] === e) return !0; return !1 }, a.setLegendState = function(e, t) { this.hasState(e) || (t ? this._legendState.push(e) : this._legendState.unshift(e)), this.asyncDraw() }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.config.eventArguments = {} }, a.removeLegendState = function(e) { var t, a, i = 1; if (e)
                        for (t = 0, a = this._legendState.length; t < a && i; t++) e === this._legendState[t] && (this._legendState.splice(t, 1), i = 0);
                    else this._legendState.length = 0;
                    this.asyncDraw() }, a.removeStateCosmetics = function(e) { delete this._stateCosmetics[e] }, a.setStateCosmetics = function(e, t) { this._stateCosmetics[e] = t }, a.getStateCosmetics = function(e) { return this._stateCosmetics[e] }, a.draw = function() { var e, t, a, i, n, r, l, s, p, f, m, v, b, x, y, C, k, S, w, L, A, N, E, T, F, _, P, D, I, M, O, R, B, V, G, z, H, W, j = this.getLinkedParent(),
                        U = j.getFromEnv("chart").config,
                        q = this.getFromEnv("animationManager"),
                        Y = this.config,
                        X = j.config,
                        K = X.legendHeight,
                        Z = X.symbolPadding,
                        J = X.symbolWidth,
                        $ = X.interactiveLegend,
                        Q = X.textPadding || 2,
                        ee = X.itemHoverStyle,
                        te = j.getChildContainer("itemGroup"),
                        ae = X.drawCustomLegendIcon,
                        ie = this.hasState("hidden"),
                        ne = {};
                    a = (e = this.parseLegendCosmetics()).symbol, i = X.initialItemX || 0, n = X.initialItemY || 0, p = Y.type, w = e.symbol.stroke || "000000", L = e.symbol.fill, t = e.symbol.lineWidth || X.lineWidth, N = Y.anchorSide, E = Y.drawLine, f = i + Y._legendX, m = n + Y._legendY, O = this.getGraphicalElement("legendItemBackground"), s = this.getGraphicalElement("legendItemText"), v = this.getGraphicalElement("legendItemLine"), x = this.getGraphicalElement("legendItemSymbol"), !($ = (0, o.pluck)(Y.interactiveLegend, $)) && (e.cursor = "default"), R = e.text, H = f + K + Q - 2, W = m + (Y._legendTestY || 0), R.text = Y.name, R.x = H, R.y = W, l = q.setAnimation({ el: s || "text", attr: R, component: this, container: te, label: "icon" }), s || (l = this.addGraphicalElement("legendItemText", l)), l.data("legendItem", Y), B = !1, ae && !1 !== Y.customLegendIcon ? (_ = !ie && a.borderColor, P = (0, o.pluck)(a.borderAlpha), T = !ie && a.bgColor, F = (0, o.pluck)(a.bgAlpha, "100"), D = e.symbol.rawFillColor, L = ie ? e.symbol.fill : T || D, L = (0, o.convertColor)(L, F), I = e.symbol.rawStrokeColor, w = ie ? e.symbol.stroke : _ || I || D, w = (0, o.convertColor)(w, P), y = f + Z + (C = .5 * J), r = m + (Y._markerYGutter || 0) + Z + C, k = "spoke" === (S = (0, o.mapSymbolName)(a.sides) && (0, o.mapSymbolName)(a.sides).split("_") || [])[0] ? 1 : 0, V = { path: (0, o.polyPathToPath)([S[1] || 2, y, r, C, a.startAngle || 0, k]), cursor: e.symbol.cursor || c, stroke: w, fill: L, "stroke-width": (0, o.pluckNumber)(a.borderThickness, 1) }) : "line" === p || E ? (r = m + (Y._markerYGutter || 0) + Z + .5 * J, z = { path: [h, f + Z, r, u, f + Z + J, r] }, B = !0, ne = { opacity: U.legendiconalpha || 1, "stroke-width": t, stroke: w, cursor: e.cursor || c }, N && (V = g(this, e.symbol))) : N ? V = g(this, e.symbol) : "line" !== p && (w = Y.symbolStroke || w, V = { path: function(e, t, a, i, n) { var o, r, l, s, c, g, p, f, m, v = [h]; switch (n) {
                                case "column":
                                case "dragColumn":
                                case "column3D":
                                case "realtimeColumn":
                                case "errorBar2D":
                                    r = .5 * (o = .25 * a), l = .7 * i, s = .4 * i, v = v.concat([e, t + i, "l", 0, -l, o, 0, 0, l, "z", "m", o + r, 0, "l", 0, -i, o, 0, 0, i, "z", "m", o + r, 0, "l", 0, -s, o, 0, 0, s, "z"]); break;
                                case "bar2D":
                                case "bar3D":
                                    o = .3 * a, r = .6 * a, s = (l = i / 4) / 2, v = v.concat([e, t, u, e + r, t, e + r, t + l, e, t + l, d, h, e, t + l + s, u, e + a, t + l + s, e + a, t + l + s + l, e, t + 2 * l + s, d, h, e, t + 2 * (l + s), u, e + o, t + 2 * (l + s), e + o, t + i, e, t + i, d]); break;
                                case "area":
                                case "area3d":
                                case "areaspline":
                                case "dragArea":
                                case "realTimeArea":
                                case "splinearea":
                                    o = .3 * a, r = .6 * a, l = .6 * i, s = .2 * i, c = .8 * i, v = v.concat([e, t + c, u, e, t + l, e + o, t + s, e + r, t + l, e + a, t + s, e + a, t + c, d]); break;
                                case "pie2D":
                                case "pie3d":
                                case "doughnut2D":
                                case "doughnut3D":
                                    r = .9 * (o = .5 * a), 1, 1, g = e + o + 1, f = t + o - 1, p = e + o - 1, m = t + o + 1, v = v.concat([g, f, u, g, f - r + 1, "A", r - 1, r - 1, 0, 0, 1, g + r - 1, f, d, h, p, m, u, p, m - r, "A", r, r, 0, 1, 0, p + r, m, d]); break;
                                case "boxandwhisker2d":
                                    v = v.concat([e, t, u, e + a, t, e + a, t + i, e, t + i, d]); break;
                                default:
                                    v = v.concat([e, t, u, e + a, t, e + a, t + i, e, t + i, d]) } return { path: v } }(f + Z, m + (Y._markerYGutter || 0) + Z, J, J, p).path, "stroke-width": .5, stroke: w, fill: L, cursor: e.cursor || c }), z && B ? (Object.assign(z, ne), v = q.setAnimation({ el: v || "path", attr: z, component: this, callback: function() { this.show() }, container: te }), this.getGraphicalElement("legendItemLine") || (v = this.addGraphicalElement("legendItemLine", v))) : v && v.hide(), V ? (V.opacity = (0, o.pluckNumber)(e.symbol.opacity, 1), b = q.setAnimation({ el: x || "path", attr: V, component: this, callback: function() { this.show() }, container: te, label: "icon" }), x && x.node || (b = this.addGraphicalElement("legendItemSymbol", b)), b.data("legendItem", Y)) : x && x.hide(), A = e.background && e.background.legendBackgroundColor ? (0, o.convertColor)(e.background.legendBackgroundColor, e.background.alpha) : o.TRACKER_FILL, G = { x: f, y: m, width: Y._totalWidth, height: Y._legendH, r: 0, fill: A, opacity: 1, "stroke-width": 1, stroke: "none", cursor: e.symbol.cursor || c }, M = q.setAnimation({ el: O || "rect", attr: G, css: void 0, component: this, label: "background", container: te }), O || this.addGraphicalElement("legendItemBackground", M), M.data("legendItem", this).data("interactive", $).data("itemHoverStyle", ee).data("itemStyle", e) }, t }(r.ComponentInterface);
            t["default"] = p },
        553: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = a(215),
                n = { "*.legendItem.legendItem": function() { return { "icon.appearing": function(e) { return [{ initialAttr: { opacity: 0 }, slot: "plot", startEnd: { start: .5, end: 1 }, finalAttr: { opacity: (0, i.pluckNumber)(e.attr.opacity, 1) } }] }, "background.appearing": function(e) { return [{ initialAttr: { opacity: 0 }, slot: "plot", startEnd: { start: .5, end: 1 }, finalAttr: { opacity: e.attr.opacity } }] }, "icon.disappearing": function() { return [{ finalAttr: { opacity: 0 }, slot: "initial" }] } } } };
            t["default"] = n },
        554: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "plot" }],
                n = [{ slot: "plot", startEnd: { start: 0, end: .5 } }],
                o = [{ slot: "intial" }],
                r = { "*.legend.legend": function() { return { "legendGroup.appearing": i, "legendGroup.updating": n, "legendGroup.disappearing": o, "scrollbar.appearing": i, "scrollbar.updating": n, "scrollbar.disappearing": o } } };
            t["default"] = r },
        555: function(e, t, a) { "use strict";
            t.__esModule = !0, t.computeLayout = void 0; var i = a(556),
                n = a(557),
                o = a(558),
                r = function() {
                    function e() { this.gridLayoutEngine = o.computeGridLayout } return e.prototype.compute = function(e) { switch ((0, i.getDisplayProperty)(e)) {
                            case n.DISPLAY_GRID:
                            case n.DISPLAY_FLEX:
                            default:
                                return this.gridLayoutEngine(e) } }, e }();
            t.computeLayout = function(e) { var t, a = new r,
                    n = (0, i.cloneObject)(e); return n.root = !0, t = a.compute(n), (0, i.attachLayoutInformation)(e, t), e } },
        556: function(e, t, a) { "use strict";
            t.__esModule = !0, t.pluckNumber = t.getDisplayProperty = t.attachLayoutInformation = t.cloneObject = void 0; var i = a(557);
            t.pluckNumber = function() { var e, t, a; for (t = 0, a = arguments.length; t < a; t += 1)
                    if (((e = arguments[t]) || !1 === e || 0 === e) && !isNaN(e = Number(e))) return e }, t.attachLayoutInformation = function n(e, t) { var a, i; for (void 0 === e && (e = {}), void 0 === t && (t = {}), e.layout = t.layout, a = 0, i = (e.children || []).length; a < i; a++) n(e.children[a], t.children[a]) }, t.cloneObject = function o(e) { if (i.ATOMIC_DATA_TYPE.indexOf(typeof e) > -1 || null === e) return e; if (Array.isArray(e)) { var t, a, n = []; for (t = 0, a = e.length; t < a; t++) n.push(o(e[t])); return n } if ("object" == typeof e) { var r, l = {}; for (r in e) l[r] = o(e[r]); return l } }, t.getDisplayProperty = function(e) { return e.style && e.style.display } },
        557: function(e, t, a) { "use strict";
            t.__esModule = !0, t.ATOMIC_DATA_TYPE = t.STRETCH = t.END = t.START = t.CENTER = t.DISPLAY_FLEX = t.DISPLAY_GRID = void 0;
            t.ATOMIC_DATA_TYPE = ["string", "number", "function", "boolean", "undefined"], t.STRETCH = "stretch", t.END = "end", t.START = "start", t.CENTER = "center", t.DISPLAY_FLEX = "flex", t.DISPLAY_GRID = "grid" },
        558: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t.computeGridLayout = function(e, t) { void 0 === t && (t = 1); var a, i, n, r, l = e.style; if (!e || !e.style) return;
                e.userGivenStyles || (e.style.width = isNaN(e.style.width) ? "auto" : e.style.width, e.style.height = isNaN(e.style.height) ? "auto" : e.style.height, l.paddingStart = (0, o.pluckNumber)(l.paddingStart, l.padding, 0), l.paddingEnd = (0, o.pluckNumber)(l.paddingEnd, l.padding, 0), l.paddingTop = (0, o.pluckNumber)(l.paddingTop, l.padding, 0), l.paddingBottom = (0, o.pluckNumber)(l.paddingBottom, l.padding, 0), e.userGivenStyles = { gridTemplateColumns: e.style.gridTemplateColumns, gridTemplateRows: e.style.gridTemplateRows, width: e.style.width, height: e.style.height }); for (e.unResolvedChildren = [], a = 0, i = e.children && e.children.length; a < i; a++) n = e.children[a], (0, o.getDisplayProperty)(n) && (f(n) ? this.compute(n) : e.unResolvedChildren.push(n));
                (r = new y).set("domTree", e).set("parent", this).compute(), t < 2 && this.gridLayoutEngine(function(e, t) { var a, i, n, r, l, s, c, h, u, d, g = e.style,
                        p = t.getConfig("rowTracks"),
                        f = t.getConfig("colTracks"),
                        m = t.getConfig("mapping"),
                        v = g.gridTemplateRows,
                        b = g.gridTemplateColumns; for (e.style.gridTemplateRows = C(v, p), e.style.gridTemplateColumns = C(b, f), i = 0, r = (e.children || []).length; i < r; i++)
                        if (a = e.children[i], (0, o.getDisplayProperty)(a)) { if (a.style.gridTemplateColumns = a.userGivenStyles.gridTemplateColumns, a.style.gridTemplateRows = a.userGivenStyles.gridTemplateRows, isNaN(a.userGivenStyles.width)) { for (u = a.style.gridColumnStart, d = a.style.gridColumnEnd, u = m.col.nameToLineMap[u], d = m.col.nameToLineMap[d], n = u, s = 0; n < d; n++) s += f[n].calculatedStyle.baseSize;
                                a.style.width = s } if (isNaN(a.userGivenStyles.height)) { for (c = a.style.gridRowStart, h = a.style.gridRowEnd, c = m.row.nameToLineMap[c], h = m.row.nameToLineMap[h], n = c, l = 0; n < h; n++) l += p[n].calculatedStyle.baseSize;
                                a.style.height = l } } return e }(e, r), 2); return e }; var n = i(a(214)),
                o = a(556),
                r = i(a(559)),
                l = a(557),
                s = a(560);

            function c(e, t) { var a = Object.keys(e); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), a.push.apply(a, i) } return a }

            function h(e) { for (var t = 1; t < arguments.length; t++) { var a = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? c(Object(a), !0).forEach((function(t) {
                        (0, n["default"])(e, t, a[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : c(Object(a)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t)) })) } return e } var u = ["auto", "none"],
                d = /minmax/,
                g = /(?:[^\s[\]()]+|\[[^[\]]*\]|\([^()]*\))+/g,
                p = function(e) { return e.charAt(0).toUpperCase() + e.slice(1) },
                f = function(e) { var t = e.style || {},
                        a = t.gridTemplateColumns,
                        i = t.gridTemplateRows; return !/repeat\(/g.test(a) && !/repeat\(/g.test(i) },
                m = function(e) { return e.split(/\(|\)/g)[1].split(",").map((function(e) { return e && e.trim() })) },
                v = function(e, t) { var a, i, n = p(t),
                        r = "width" === t ? "col" : "row"; return e.map((function(e) { return a = e.style["gridTemplate" + p("col" === r ? "columns" : "rows")], i = "grid" === (0, o.getDisplayProperty)(e) && /repeat\(/g.test(a) ? m(a)[1] : e.style["min" + n + "Contribution"] || e.style[t] || "auto", { start: e[r + "Start"], end: e[r + "End"], size: i } })) },
                b = function(e, t, a) { var i, n; for (i = t.x; i < a.x; i++)
                        for (n = t.y; n < a.y; n++) e[i][n] = !0 },
                x = function(e, t) { var a = e.gridRowStart,
                        i = e.gridRowEnd,
                        n = e.gridColumnStart,
                        o = e.gridColumnEnd; if (e.gridColumn) { var r = e.gridColumn.split("/").map((function(e) { return e.trim() }));
                        n = r[0], o = r[1], n = t ? t.col.nameToLineMap[n] : 1, /span\s+\d+/g.test(o) && (o = n + +o.match(/span\s+(\d+)/)[1]), o = t ? t.col.nameToLineMap[o] : 1 } if (e.gridRow) { var l = e.gridRow.split("/").map((function(e) { return e.trim() }));
                        a = l[0], i = l[1], a = t ? t.row.nameToLineMap[a] : 1, /span\s\d+/g.test(i) && (i = a + +i.match(/span\s(\d+)/)[1]), i = t ? t.row.nameToLineMap[i] : 1 } return { gridRowStart: a, gridRowEnd: i, gridColumnStart: n, gridColumnEnd: o } },
                y = function() {
                    function e() { this.setup() } var t = e.prototype; return t.setup = function() { return this._tsa = new r["default"], this.props = {}, this._config = { mapping: {} }, this }, t.set = function(e, t) { return this.props[e] = t, this }, t.getProps = function(e) { return this.props[e] }, t.getConfig = function(e) { return this._config[e] }, t.compute = function(e) { var t = e || this.props.domTree;
                        this._sanitizeTracks(t)._sanitizeItems(t)._inflateTracks()._assignCoordinatesToCells(t) }, t._sanitizeTracks = function(e) { void 0 === e && (e = {}); var t, a = e.style,
                            i = a.gridTemplateRows,
                            n = a.gridTemplateColumns,
                            o = this._config,
                            r = function(e) { var t, a = 1,
                                    i = 1; return e.forEach((function(e) { t = x(e.style), i = Math.max(isNaN(+t.gridColumnStart) ? 0 : +t.gridColumnStart, i, isNaN(+t.gridColumnEnd - 1) ? 0 : +t.gridColumnEnd - 1), a = Math.max(isNaN(+t.gridRowStart) ? 0 : +t.gridRowStart, a, isNaN(+t.gridRowEnd - 1) ? 0 : +t.gridRowEnd - 1) })), { maxRow: a, maxColumn: i } }(e.children),
                            l = r.maxColumn,
                            s = r.maxRow; return this.set("maxTracks", s), t = this._fetchTrackInformation(i), o.mapping.row = { nameToLineMap: t.nameToLineMap, lineToNameMap: t.lineToNameMap }, o.rowTracks = t.tracks, this.set("maxTracks", l), t = this._fetchTrackInformation(n), o.mapping.col = { nameToLineMap: t.nameToLineMap, lineToNameMap: t.lineToNameMap }, o.colTracks = t.tracks, this }, t._fetchTrackInformation = function(e) { void 0 === e && (e = "none"); var t, a, i, n, o, r, l = e.match(g),
                            s = [{}],
                            c = {},
                            h = {}; for (i = l.filter((function(e) { return !e || "string" != typeof e || !e.length || (a = e.length, "[" === e[0] && "]" === e[a - 1]) })), n = l.filter((function(e) { return !!e && (a = (e + "").toLowerCase().replace(/px|fr/, ""), !(!(u.indexOf(a) >= 0 || d.test(a)) && isNaN(a))) })).map((function(e) { return function(e) { if ("auto" === (e = e.trim())) return e; if (!isNaN(+e)) return +e; if (d.test(e)) { var t = e.split(/\(|\)/g)[1].split(","); return [t[0].trim(), t[1].trim()] } return e }(e) })), a = n.length, "none" === e && (a = this.getProps("maxTracks")), t = 0; t < a; t++) o = i[t] && i[t].replace(/\[|\]/g, "").split(" ").filter((function(e) { return e.length })).map((function(e) { return e.trim() })) || [t + 1 + ""], r = i[t + 1] && i[t + 1].replace(/\[|\]/g, "").split(" ").filter((function(e) { return e.length })).map((function(e) { return e.trim() })) || [t + 2 + ""], s.push({ start: t + 1, end: t + 2, size: n[t] || "auto" }), h[t + 1] = o, h[t + 2] = r, o.forEach((function(e) { return c[e] = t + 1 })), r.forEach((function(e) { return c[e] = t + 2 })), c[t + 1] = t + 1, c[t + 2] = t + 2; return { tracks: s, nameToLineMap: c, lineToNameMap: h } }, t._sanitizeItems = function(e) { var t, a, i, n, o, r, l, s = e || this.props.domTree,
                            c = s.children || [],
                            u = this._config.mapping,
                            d = s.style.gridAutoFlow || "row",
                            g = Object.keys(u.row.lineToNameMap).length,
                            p = Object.keys(u.col.lineToNameMap).length,
                            f = [],
                            m = [],
                            v = [
                                []
                            ],
                            y = []; for (o = 1; o <= g; o++) v.push([]); for (o = 0, l = c.length; o < l; o++) t = x(c[o].style, u), f.push(h(h({}, c[o]), {}, { rowStart: u.row.nameToLineMap[t.gridRowStart], rowEnd: u.row.nameToLineMap[t.gridRowEnd], colStart: u.col.nameToLineMap[t.gridColumnStart], colEnd: u.col.nameToLineMap[t.gridColumnEnd] })), i = f[o], b(v, { x: i.rowStart, y: i.colStart }, { x: i.rowEnd, y: i.colEnd }); if ((m = f.filter((function(e) { return !e.colStart || !e.rowStart }))) && "row" === d) { for (o = 1; o < g; o++)
                                for (r = 1; r < p; r++) v[o][r] || y.push({ row: o, col: r }); for (; m.length && y.length;) i = m.shift(), a = y.shift(), i.rowStart = a.row, i.colStart = a.col, i.rowEnd = a.row + 1, i.colEnd = a.col + 1; if (n = Math.ceil(m.length / p)) { for (; n--;) s.style.gridTemplateRows += "auto ", u.row.nameToLineMap[g + 1] = g + 1, u.row.nameToLineMap[g + 2] = g + 2, g++, v.push([]); for (s.style.gridTemplateRows = s.style.gridTemplateRows.trim(), y = [], o = 1; o <= g; o++)
                                    for (r = 1; r <= p; r++) v[o][r] || y.push({ row: o, col: r }); for (; m.length;) i = m.shift(), a = y.shift(), i.rowStart = a.row, i.colStart = a.col, i.rowEnd = a.row + 1, i.colEnd = a.col + 1 } } return this._config.sanitizedItems = f, this }, t._inflateTracks = function() { var e, t = this._config,
                            a = t.sanitizedItems,
                            i = t.colTracks,
                            n = t.rowTracks,
                            o = 0,
                            l = 0,
                            s = this.props.domTree,
                            c = s.style || {},
                            h = c.paddingStart,
                            u = c.paddingEnd,
                            d = c.paddingTop,
                            g = c.paddingBottom,
                            p = c.width,
                            f = c.height,
                            m = new r["default"]; return isNaN(+p) || (p -= h + u), e = m.clear().set("tracks", i).set("items", v(a, "width")).set("containerSize", p || "auto").resolveTracks(), i.forEach((function(t, a) { t.calculatedStyle = e[a], l += e[a].baseSize || 0 })), this._solveUnresolvedChildren(), isNaN(+f) || (f -= d + g), e = m.clear().set("tracks", n).set("items", v(a, "height")).set("containerSize", f || "auto").resolveTracks(), n.forEach((function(t, a) { t.calculatedStyle = e[a], o += e[a].baseSize || 0 })), s.style.minHeightContribution = o, s.style.minWidthContribution = l, this }, t._solveUnresolvedChildren = function(e) { var t, a, i, n, o, r, l, c, h = ((e || this.props.domTree).unResolvedChildren || []).filter((function(e) { return /repeat\(/g.test(e.style.gridTemplateColumns) || /repeat\(/g.test(e.style.gridTemplateRows) })),
                            u = this._config,
                            d = u.colTracks,
                            g = u.mapping,
                            p = this.getProps("parent"),
                            f = [0]; if (!h.length) return this; for (a = 1, i = d.length; a < i; a++) f[a] = f[a - 1] + d[a].calculatedStyle.baseSize; return h.forEach((function(e) { r = m(e.style.gridTemplateColumns)[1], l = g.col.nameToLineMap[e.style.gridColumnStart], c = g.col.nameToLineMap[e.style.gridColumnEnd], n = f[c - 1] - f[l - 1], o = { itemWidth: r, width: n }, t = (0, s.repeatResolver)(e, o), e.style.gridTemplateColumns = t.gridTemplateColumns, e.style.gridTemplateRows = t.gridTemplateRows, p.gridLayoutEngine(e) })), this }, t._assignCoordinatesToCells = function(e) { var t, a, i, n, r, s, c, h, u, d = e || this.props.domTree,
                            g = this._config,
                            p = g.sanitizedItems,
                            f = g.rowTracks,
                            m = g.colTracks,
                            v = d.style,
                            b = v.justifyItems,
                            x = v.alignItems,
                            y = v.paddingStart,
                            C = v.paddingTop,
                            k = [y],
                            S = [C]; for (i = 1, a = f.length; i < a; i++) k[i] = k[i - 1] + f[i].calculatedStyle.baseSize; for (i = 1, a = m.length; i < a; i++) S[i] = S[i - 1] + m[i].calculatedStyle.baseSize; return d.layout = { x: 0, y: 0, width: isNaN(d.style.width) ? S[S.length - 1] : d.style.width, height: isNaN(d.style.height) ? k[k.length - 1] : d.style.height }, (d.children || []).forEach((function(e, a) { switch (t = p[a], n = S[t.colEnd - 1] - S[t.colStart - 1], r = k[t.rowEnd - 1] - k[t.rowStart - 1], s = isNaN(+e.style.width) ? n : +e.style.width, c = isNaN(+e.style.height) ? r : +e.style.height, b || e.style.justifySelf) {
                                case l.CENTER:
                                    h = S[t.colStart - 1] + n / 2 - s / 2; break;
                                case l.END:
                                    h = S[t.colEnd - 1] - s; break;
                                case l.STRETCH:
                                    s = n, h = S[t.colStart - 1]; break;
                                default:
                                    h = S[t.colStart - 1] } switch (x || e.style.alignSelf) {
                                case l.CENTER:
                                    u = k[t.rowStart - 1] + r / 2 - c / 2; break;
                                case l.END:
                                    u = k[t.rowEnd - 1] - c; break;
                                case l.STRETCH:
                                    c = r, u = k[t.rowStart - 1]; break;
                                default:
                                    u = k[t.rowStart - 1] } h += (0, o.pluckNumber)(t.style.paddingStart, t.style.padding, 0), u += (0, o.pluckNumber)(t.style.paddingTop, t.style.padding, 0), e.layout = { x: h, y: u, x2: h + s, y2: u + c, width: s, height: c } })), this }, e }(),
                C = function(e, t) { void 0 === e && (e = ""); var a = (e.match(g) || []).filter((function(e) { return e && !!e.trim() })),
                        i = "",
                        n = 1; return a.length && !/repeat\(/.test(e) ? a.forEach((function(e) { u.indexOf(e) > -1 || /[0-9]fr/.test(e) || d.test(e) || !isNaN(e) ? (i += t[n].calculatedStyle.baseSize + " ", n++) : i += e + " " })) : t.forEach((function(e) { isNaN(e.calculatedStyle.baseSize) || (i += e.calculatedStyle.baseSize + " ") })), i.trim() } },
        559: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(214));

            function o(e, t) { var a = Object.keys(e); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), a.push.apply(a, i) } return a }

            function r(e) { for (var t = 1; t < arguments.length; t++) { var a = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? o(Object(a), !0).forEach((function(t) {
                        (0, n["default"])(e, t, a[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : o(Object(a)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t)) })) } return e } var l = function(e) { return +e.replace(/fr/, "") },
                s = function() {
                    function e(e, t, a) { return void 0 === e && (e = []), void 0 === t && (t = []), void 0 === a && (a = 600), this.clear(), this.set("tracks", e), this.set("items", t), this.set("containerSize", a), this } var t = e.prototype; return t.set = function(e, t) { switch (this.props[e] = t, e) {
                            case "tracks":
                                this._initTrackSize(); break;
                            case "items":
                                this._initItems(); break;
                            case "containerSize":
                                this.props[e] = isNaN(+t) ? 0 : +t } return this }, t.get = function(e) { return this.props[e] }, t._initTrackSize = function(e) { var t, a, i, n, o, s, c, h = e || this.props.tracks || [],
                            u = this._config,
                            d = [{}]; for (u.frTracks = [], u.intrinsicTracks = [], t = 1, a = h.length; t < a; t++) i = h[t].size, o = 1, Array.isArray(i) ? (s = +i[0] || 0, i[1].indexOf("fr") > 0 || i[0].indexOf("fr") > 0 ? (c = Infinity, u.frTracks.push(t), n = "minmax") : "auto" === i[1] || "auto" === i[0] ? (c = Infinity, u.intrinsicTracks.push(t), n = "minmax") : isNaN(+i[0]) || isNaN(+i[1]) || (c = Math.max(+i[0], +i[1]), s = Math.min(+i[0], +i[1]), u.intrinsicTracks.push(t), n = "minmax")) : isNaN(+i) ? i.indexOf("fr") > 0 ? (s = 0, c = Infinity, u.frTracks.push(t), n = "flex", o = l(i)) : (s = 0, c = Infinity, n = "intrinsic", u.intrinsicTracks.push(t)) : (s = c = +i, n = "fixed"), d.push(r(r({}, h[t]), {}, { type: n, multiplier: o, baseSize: s, growthLimit: c })); return u.sanitizedTracks = d }, t._initItems = function(e) { var t, a, i, n, o = e || this.props.items || [],
                            l = this._config,
                            s = [],
                            c = 0; for (i = 0, n = o.length; i < n; i++) isNaN(o[i].start) || isNaN(o[i].end) ? l.autoFlow.push(o[i]) : (s.push(r({}, o[i])), a = s[c], c++, a.size = isNaN(a.size) ? this._getParentSize(a) : +a.size); for (s.sort((function(e, t) { var a = e.end - e.start,
                                    i = t.end - t.start; return a === i ? e.start - t.start : a - i })), i = 0, t = n = s.length; i < n; i++)
                            if (s[i].end - s[i].start > 1) { t = i; break } return this._config.nonSpanningItemStartIndex = t, this._config.sanitizedItems = s }, t._getParentSize = function(e) { var t = this._config.sanitizedTracks,
                            a = 0; return t.filter((function(t) { return t.start >= e.start && t.end <= e.end })).forEach((function(e) { return a += e.baseSize })), a || 0 }, t.resolveTracks = function() { return this._placeNonSpanningItems()._placeSpanningItems()._distributeFreeSpace(), this._config.sanitizedTracks }, t._placeNonSpanningItems = function() { var e, t, a = this._config,
                            i = a.sanitizedItems,
                            n = a.sanitizedTracks,
                            o = a.nonSpanningItemStartIndex; return i.slice(0, o).forEach((function(a) { t = a.start, "fixed" !== (e = n[t]).type && (e.baseSize = Math.max(e.baseSize, a.size), e.growthLimit = Math.max(e.growthLimit, e.baseSize)) })), this }, t._placeSpanningItems = function() { var e, t, a, i, n, o, r, l = this._config,
                            s = l.sanitizedItems,
                            c = l.sanitizedTracks,
                            h = l.nonSpanningItemStartIndex,
                            u = l.frTracks,
                            d = s.slice(h),
                            g = [0]; if (!d.length) return this; for (o = 1, r = c.length; o < r; o++) g[o] = g[o - 1] + (c[o].baseSize || 0); return d.forEach((function(r) { if (e = g[r.end - 1] - g[r.start - 1], t = Math.max(0, r.size - e)) { for (o = r.start, n = !1, i = 0; o < r.end; o++) u.indexOf(o) >= 0 && (n = !0), "fixed" !== c[o].type && i++; if (i && !n)
                                    for (a = t / i, o = r.start; o < r.end; o++) "fixed" !== c[o].type && (c[o].baseSize += a) } })), this }, t._distributeFreeSpace = function() { var e = this._config,
                            t = e.frTracks,
                            a = e.intrinsicTracks,
                            i = e.sanitizedTracks,
                            n = this.props.containerSize,
                            o = 0; return i.forEach((function(e) { return o += e.baseSize || 0 })), o < n && (t.length ? (t.forEach((function(e, a) { t[a] = i[e] })), t.forEach((function(e) { return o -= e.baseSize })), function r(e, t, a) { var i, n, o = 0; if (e.length) { if (e.forEach((function(e) { return o += e.multiplier })), i = (a - t) / o, (n = e.filter((function(e) { return e.baseSize <= e.multiplier * i }))).length < e.length) return e.filter((function(e) { return e.baseSize > e.multiplier * i })).forEach((function(e) { return t += e.baseSize })), r(n, t, a);
                                n.forEach((function(e) { return e.baseSize = e.multiplier * i })) } }(t, o, n)) : a.length && (a.forEach((function(e, t) { a[t] = i[e] })), function(e, t, a) { var i, n, o, r, l, s, c, h = 0; if (e.length) { for (i = a - t, (l = e.filter((function(e) { return "minmax" === e.type && e.growthLimit !== Infinity }))).sort((function(e, t) { return e.growthLimit - e.baseSize - (t.growthLimit - t.baseSize) })), r = l.length; h < r && i;)
                                    for (n = i / (l.length - h || 1), o = 0, r = l.length; o < r; o++) s = l[o].growthLimit, i -= (c = Math.min(n + l[o].baseSize, s)) - l[o].baseSize, l[o].baseSize = c, s !== c || l[o].frozen || (l[o].frozen = !0, h++);
                                e = e.filter((function(e) { return "minmax" === e.type && e.growthLimit === Infinity || "minmax" !== e.type })), n = i / e.length, e.forEach((function(e) { return e.baseSize += n })) } }(a, o, n))), this }, t.clear = function() { return this.props = {}, this._config = { frTracks: [], intrinsicTracks: [], autoFlow: [] }, this }, e }();
            t["default"] = s },
        560: function(e, t, a) { "use strict";
            t.__esModule = !0, t.repeatResolver = function(e, t) { var a, i, n, o = e.children,
                    r = 0,
                    l = 0,
                    s = "",
                    c = "",
                    h = 0,
                    u = t.itemWidth,
                    d = t.width; for (d = isNaN(+d) ? 0 : +d, o.forEach((function(e) { return h = Math.max(h, +e.style.height || 0) })), r += u = +u, s += u + " ", l = 1, i = 1, n = o.length; i < n && !(r + u > d); i++) r += u, s += u + " "; for (l = i, a = Math.ceil(n / l); a--;) c += h + " "; return { gridTemplateColumns: s.trim(), gridTemplateRows: c.trim() } } },
        561: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = t.drawLabel = void 0; var n = i(a(229)),
                o = i(a(520)),
                r = a(215),
                l = a(223),
                s = i(a(562)),
                c = r.preDefStr.visibleStr,
                h = r.preDefStr.hiddenStr,
                u = r.preDefStr.POSITION_MIDDLE,
                d = r.preDefStr.POSITION_START,
                g = r.preDefStr.POSITION_END,
                p = Math,
                f = p.min,
                m = p.max,
                v = function(e, t) { var a, i, n, o, l, s, p, v, b, x, y, C, k, S, w, L, A, N, E, T, F, _, P, D = this.getFromEnv("chart"),
                        I = D.config,
                        M = this.config,
                        O = M.JSONData,
                        R = this.getFromEnv("animationManager"),
                        B = D.getChildren("canvas")[0].config,
                        V = D.config.dataLabelStyle,
                        G = O.data,
                        z = D.config.categories,
                        H = D.config.is3D,
                        W = D.config.isstacked,
                        j = z && z.length,
                        U = G && G.length,
                        q = this.getData(),
                        Y = D.getFromEnv("smartLabel"),
                        X = B.yDepth,
                        K = B.xDepth,
                        Z = D.getFromEnv("number-formatter"),
                        J = r.BLANKSTRING,
                        $ = I.placevaluesinside,
                        Q = I.canvasWidth,
                        ee = I.canvasLeft,
                        te = I.valuepadding + 2,
                        ae = this.getContainer("labelGroup"),
                        ie = this.getSkippingInfo && this.getSkippingInfo(),
                        ne = ie && ie.skippingApplied,
                        oe = ie && ie.labelDraw || [],
                        re = oe.length,
                        le = (0, r.pluckNumber)(e, 0),
                        se = (0, r.pluckNumber)(t, ne ? re : j < U ? j : U),
                        ce = re === Math.abs(se - (le + 1)),
                        he = this.getState("visible"),
                        ue = function() { this.hide() }; for (he && ae.show(), Y.setStyle(V), l = le; l < se; l++) L = (T = (i = q[o = ne && ce ? oe[l] : l]) && i.config) && T.setValue, void 0 !== i && null != L && !0 !== T.labelSkip ? (p = i.graphics) && (s = G[o], k = i._yPos, S = i._xPos, L = Z.getCleanValue(s.value), C = (0, r.pluckNumber)(L) < 0, v = i._height, w = i._width, A = W ? u : C ? $ ? d : g : $ ? g : d, J = T.displayValue, _ = p.label, T.showValue && null != J && J !== r.BLANKSTRING && null !== L ? (n = { text: J, fill: (a = T.dataLabelStyle).color, "text-bound": [a.backgroundColor, a.borderColor, V.borderThickness, V.borderPadding, V.borderRadius, V.borderDash], "line-height": V.lineHeight, visibility: this.getState("visible") ? c : h }, N = Y.getOriSize(J).width, N += te, E = te, b = k + .5 * v, x = S + (C ? 0 : w), y = C ? S - ee : ee + Q - (S + w), W ? (x = m(ee + .5 * N, x += .5 * (C ? w : -w)), x = f(ee + Q - .5 * N, x), x -= H ? K : 0, b += H ? X : 0) : $ ? w >= N ? (x += C ? E : -E, H && (b += X, x -= K)) : N < y ? (x += C ? -E : E, A = C ? g : d, H && C && (x -= K)) : (C ? (x = S + w + m(N - S - w + ee, 0) - E, A = g) : (x = S - m(N - (ee + Q - S), 0) + E, A = d), H && (x -= K, b += X)) : y >= N ? (x += C ? -E : E, H && C && (x -= K, b += K)) : (x += C ? E + N : -(E + N), H && (x -= K, b += X)), (x > ee + Q || x < ee) && (x = ee + 4, A = d), n["text-anchor"] = A, n.x = x, n.y = b, n.opacity = he ? 1 : 0, (F = R.setAnimation({ el: _ || "text", container: ae, component: this, attr: n, callback: !he && ue, label: "plotLabel" })).outlineText(M.showTextOutline, n.fill), _ || (p.label = F)) : p.label && (p.label = R.setAnimation({ el: p.label, component: this }))) : ((P = i && i.graphics) && P.label && P.label.hide(), T && delete T.labelSkip);
                    this.config.labelDrawn = !0 };
            t.drawLabel = v, (0, l.addDep)({ name: "barAnimation", type: "animationRule", extension: s["default"] }); var b = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "dataset" }, a.getName = function() { return "bar2D" }, a.drawLabel = function() { var e = this.config;
                    v.call(this, e.scrollMinValForLabel, e.scrollMaxValForLabel) }, t }(o["default"]);
            t["default"] = b },
        562: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = a(215),
                n = { "initial.dataset.bar2D": function() { var e = this,
                            t = e.getFromEnv("chart"),
                            a = t.config.yDepth || 0,
                            n = e.getFromEnv("yAxis"); return { "rect.appearing": function(o) { var r, l, s, c, h = n.getPixel(n.getAxisBase()) + (t.isBar ? -a : a),
                                    u = o.index,
                                    d = e.components.data[u],
                                    g = o.attr; return r = g.x, l = g.width, c = Math.sign(r + l / 2 - h), s = 1 === c ? r : r + l, d._posWRT0 = c, [{ initialAttr: function() { var e = {}; return e.x = s, e.width = 0, e.opacity = 0, e }, finalAttr: { opacity: 1 }, startEnd: function() { var t = o.length; return i.animHelperFN.getTimeByValue(i.animHelperFN.animByWeight(u, t, .6), { startPx: h, endPx: 1 === c ? e.config.yAxisMaxPixel : e.config.yAxisMinPixel }, { startPx: s, endPx: 1 === c ? g.x + g.width : g.x }) }, hookFn: function() { this.attr({ opacity: 1 }) }, effect: "linear", slot: "plot" }] }, "plotLabel.appearing": function() { return [{ initialAttr: { opacity: 0 }, slot: "final" }] }, "*": null } } };
            t["default"] = n },
        570: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t.trimData = X, t.hideFn = t.plotClickHandler = t.labelClickFn = t.plotGraphicClick = t["default"] = void 0; var n, o = i(a(214)),
                r = i(a(232)),
                l = i(a(229)),
                s = i(a(538)),
                c = a(215),
                h = a(223),
                u = i(a(571)),
                d = i(a(300)),
                g = a(227),
                p = i(a(286)),
                f = a(572);

            function m(e, t) { var a = Object.keys(e); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e);
                    t && (i = i.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), a.push.apply(a, i) } return a }

            function v(e) { for (var t = 1; t < arguments.length; t++) { var a = null != arguments[t] ? arguments[t] : {};
                    t % 2 ? m(Object(a), !0).forEach((function(t) {
                        (0, o["default"])(e, t, a[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : m(Object(a)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t)) })) } return e } var b = (0, h.getDep)("redraphael", "plugin"),
                x = window,
                y = x.document,
                C = !c.hasSVG,
                k = "createTouch" in y,
                S = k && !(x.navigator.maxTouchPoints || x.navigator.msMaxTouchPoints),
                w = Math,
                L = w.atan2,
                A = w.sin,
                N = w.cos,
                E = w.max,
                T = w.min,
                F = w.abs,
                _ = w.floor,
                P = w.PI,
                D = 180 / w.PI,
                I = 2 * P,
                M = function(e) { var t, a, i, n = [
                        [],
                        [],
                        [],
                        []
                    ]; for (t = 0, a = e.length; t < a; t++) i = (0, f.getCleanAngle)(e[t].point.config.angle), n[(0, f.getQuadrant)(i)].push({ point: e[t].point, angle: i }); return n },
                O = function(e, t, a) { return a.getFromEnv("animationManager").setAnimation({ el: "group", attr: { name: e }, container: t, component: a, label: "group" }) },
                R = function(e, t) { var a = t ? 1 : n; return (0, c.toRaphaelColor)({ color: (0, c.getFirstColor)(e.color, a), alpha: (0, c.getFirstAlpha)(e.alpha, a) }) },
                B = function(e, t, a, i, n) { return L((t - a[1] - i.top) / n, e - a[0] - i.left) },
                V = function(e, t) { return function(a) {!t.data("plotItem").seriesData.isRotating && e.plotGraphicClick.call(t, a) } },
                G = function(e) { return function(t) { var a, i, n, o, r, l, s, c, h, u, d, g, p, f = this.element || this,
                            m = f.plotItem || f.data("plotItem"),
                            v = f.data("eventArgs") || {},
                            b = m.chart,
                            x = e.getFromEnv("animationManager"),
                            y = m.index,
                            C = e.config,
                            w = C.enableMultiSlicing,
                            L = e.components.data[y],
                            A = L.graphics,
                            N = L.config,
                            E = N.doNotSlice,
                            T = N.slicedTranslation; if (!C.isRotating && t && b.plotEventHandler(f, t), !(C.isRotating || C.singletonCase || E) && b.config && (i = !w && e.sliceInOtherPies(y), !(l = N.sliced) || !i)) { if (k && !S) { if (d = (new Date).getTime(), m.lastSliceTimeStamp && d - m.lastSliceTimeStamp < 400) return;
                                m.lastSliceTimeStamp = d } return n = A.element, h = A.connector, o = A.label || A.dataLabel, r = A.innerLabel, T = "object" == typeof T ? "t" + T : T, u = N.connectorPath, s = (l ? -1 : 1) * N.transX, c = (l ? -1 : 1) * N.transY, g = n.data("eventArgs") || n.data("eventArgs", {}), b.fireChartInstanceEvent("slicingStart", { slicedState: l, dataIndex: "index" in v && v.index, data: e.getPlotData(y, l) }), x.setAnimationState("slicing"), x.setAnimation({ el: n, attr: { transform: l ? "t0,0" : T }, component: e, label: "slice", callback: function() { b.fireChartInstanceEvent("slicingEnd", { slicedState: l, dataIndex: "index" in v && v.index, data: e.getPlotData(y, !l) }) } }), o && o.x && ((a = o.data("textPos")) || (a = o.data("textPos", { x: o.x, y: o.y })), x.setAnimation({ el: o, attr: { x: o.x + (l ? 0 : s), y: o.y + (l ? 0 : c) }, label: "label-sliced", component: e }), a.x = o.x + (l ? 0 : s)), r && x.setAnimation({ el: r, attr: { x: r.x + (l ? 0 : s), y: r.y + (l ? 0 : c) }, label: "label-sliced", component: e }), h && u && ((p = u.slice(0))[1] += s, p[2] += c, p[4] += s, p[5] += c, p[6] += s, p[7] += c, x.setAnimation({ el: h, attr: { path: p }, label: "connector-sliced", component: e }), N.connectorPath = p), g.isSliced = l = N.sliced = !l, l } } },
                z = function(e) { var t = e.getFromEnv("animationManager"); return { plotDragMove: function(t) { var a, i = this.data("plotItem"),
                                n = i.chart,
                                o = t.data,
                                r = o[0],
                                l = o[1],
                                s = o[2],
                                c = o[3],
                                h = i.seriesData,
                                u = e.config;
                            isNaN(r) || isNaN(l) || !u.enableRotation || h.singletonCase || h.isRightClicked || (a = B.call(t, s, c, h.pieCenter, h.chartPosition, 1), h.dragStartAngle === a || h.isRotating || (h.isRotating = !0, n.fireChartInstanceEvent("RotationStart", { startingAngle: h._rotationalStartAngle = n._startingAngle() })), u.startAngle += a - h.dragStartAngle, h.dragStartAngle = a, h.moveDuration = 0, u.updateInited || (u.updateInited = !0, n.addJob("pie_batch_rotate", n._batchRotate || (n._batchRotate = function() { e._rotate(), u.updateInited = !1 }), g.priorityList.draw, { oneInAFrame: !0 }))) }, plotDragStart: function(t) { var a, i = this.data("plotItem"),
                                n = i.chart,
                                o = i.seriesData,
                                r = e.config,
                                l = (0, c.pluckNumber)(t.button, t.originalEvent.button),
                                s = -r.startAngle * D,
                                h = t.data[0],
                                u = t.data[1];
                            o.isRightClicked = !(c.touchEnabled || 0 === l || 1 === l), r.enableRotation && !o.isRightClicked && (o.isRotating = !1, o.chartPosition = function(e, t) { var a, i = { left: 0, top: 0 },
                                    n = e; if (n.getBoundingClientRect) a = n.getBoundingClientRect(), i.top = a.top + (x.pageYOffset || y.scrollTop || 0) - (y.clientTop || 0), i.left = a.left + (x.pageXOffset || y.scrollLeft || 0) - (y.clientLeft || 0);
                                else
                                    for (; n;) i.left += n.offsetLeft || 0, i.top += n.offsetTop || 0, n === y.body || n === y.documentElement || t || (i.left -= n.scrollLeft || 0, i.top -= n.scrollTop || 0), n = n.offsetParent; return i }(n.getFromEnv("chart-container")), a = B.call(t, h, u, o.pieCenter, o.chartPosition, 1), o.dragStartAngle = a, o.startingAngleOnDragStart = s) }, plotDragEnd: function() { var t = this.data("plotItem"),
                                a = t.chart,
                                i = a.getChildren("dataset")[0].config,
                                n = a.config,
                                o = t.seriesData,
                                r = -i.startAngle * D;
                            o.isRightClicked || (n.clicked = !0, a.disposed || e._rotate(), delete n.clicked, o.isRotating && (setTimeout((function() { o.isRotating = !1 }), 0), a.fireChartInstanceEvent("RotationEnd", { startingAngle: (0, c.normalizeAngle)(r, !0), changeInAngle: r - i.startingAngleOnDragStart })), !o.isHovered && e.config.handlersAPI.onPlotHover(this, !1)) }, plotRollOver: function(e) { var t = this.plotItem || this.data("plotItem"),
                                a = t.chart,
                                i = t.seriesData,
                                n = a.getDatasets()[0],
                                o = n.getFromEnv("animationManager");
                            i.isRotating || (a.plotEventHandler(this, e, "DataPlotRollOver"), n.config.handlersAPI.onPlotHover(this, !0, o)), n.fireEvent("datasetrollover", t), i.isHovered = !0 }, plotRollOut: function(e) { var t = this.plotItem || this.data("plotItem"),
                                a = t.chart,
                                i = t.seriesData,
                                n = a.getDatasets()[0];
                            i.isRotating || (a.plotEventHandler(this, e, "DataPlotRollOut"), n.config.handlersAPI.onPlotHover(this, !1)), n.fireEvent("datasetrollout", t), i.isHovered = !1 }, onPlotHover: function(a, i) { var n = a.data("plotItem"),
                                o = n.center,
                                r = n.rolloverProperties || {},
                                l = i ? r.color : n.color,
                                s = i ? r.borderWidth : n.borderWidth,
                                h = i ? r.borderColor : n.borderColor;
                            l && (i && (l.cx = o[0], l.cy = o[1], l.r = n.radius), r.enabled && t.setAnimation({ el: n.graphic, component: e, attr: { fill: (0, c.toRaphaelColor)(l), "stroke-width": s, stroke: h } })) } } },
                H = function(e, t) { return e.point.config.value - t.point.config.value },
                W = function(e, t) { return e.angle - t.angle },
                j = function(e, t) { t && e.getFromEnv("linkClickFN") && e.getFromEnv("linkClickFN").call({ link: t }, !0) },
                U = function() { this.remove() },
                q = [1, 1, -1, -1],
                Y = [1, -1, -1, 1];

            function X(e) { if (this.config.JSONData) { var t, a, i, n, o = this.getFromEnv("legend"),
                        r = this.config.JSONData,
                        l = r.data && r.data.length,
                        s = e.data && e.data.length || 0,
                        c = l - s; for (c > 0 && this.removeData(s, c, !1), t = 0, a = (i = this.components.removeDataArr || []).length; t < a; t++)(n = i[t].config).legendItemId && o.disposeItem(n.legendItemId) } } t.hideFn = function() { this.hide() }, t.labelClickFn = j, t.plotGraphicClick = G, t.plotClickHandler = V, (0, h.addDep)({ name: "pie2dAnimation", type: "animationRule", extension: u["default"] }), (0, d["default"])(b); var K = function(e) {
                function t() { var t; return (t = e.call(this) || this).plotGraphicClick = G((0, r["default"])(t)), t }(0, l["default"])(t, e); var a = t.prototype; return a.getType = function() { return "dataset" }, a.getName = function() { return "pie2D" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.config.doughnutradius = 0 }, a.configureAttributes = function(e) { if (!e) return !1;
                    this.trimData(e), this.config.JSONData = e; var t, a, i, o, r, l = this.getFromEnv("chart"),
                        s = l.config,
                        h = this.config,
                        u = this.config.JSONData,
                        d = this.getFromEnv("chart-attrib"),
                        g = l.config.is3D,
                        p = /pie/.test(this.getName());
                    h.handlersAPI = z(this), this.setState("visible", 1 === (0, c.pluckNumber)(this.config.JSONData.visible, !Number(this.config.JSONData.initiallyhidden), 1)), (0, c.parseConfiguration)({}, this.config, l && l.config), r = h.enableAnimation = (0, c.pluckNumber)(d.animation, d.defaultanimation, 1), h.animation = !!r && { duration: 1e3 * (0, c.pluckNumber)(d.animationduration, d.moveduration, 1) }, h.transposeAnim = !(!r && !(0, c.pluckNumber)(h.transposeanimation, 1)) && { duration: 1e3 * (0, c.pluckNumber)(d.transposeanimduration, .2) }, h.showPlotBorder = (0, c.pluckNumber)(d.showplotborder, 1), h.showHoverEffect = (0, c.pluckNumber)(d.plothovereffect, d.showhovereffect, n), h.showTooltip = (0, c.pluckNumber)(d.showtooltip, 1), h.toolText = (0, c.getValidValue)((0, c.parseUnsafeString)((0, c.pluck)(u.plottooltext, d.plottooltext), !1)), o = h.enableMultiSlicing = (0, c.pluckNumber)(d.enablemultislicing, 1), a = h.use3DLighting = (0, c.pluckNumber)(d.use3dlighting, 1), t = h.radius3D = a ? (0, c.pluckNumber)(d.radius3d, 90) : 100, h.showZeroPies = (0, c.pluckNumber)(d.showzeropies, 1), h.showPercentInToolTip = (0, c.pluckNumber)(d.showpercentintooltip, 1), h.showLabels = (0, c.pluckNumber)(d.showlabels, 1), h.showTextOutline = (0, c.pluckNumber)(d.textoutline, 0), h.labelFontColor = (0, c.pluck)(u.labelfontcolor, d.labelfontcolor, s.labelfontcolor), h.labelFont = (0, c.pluck)(u.labelfont, d.labelfont, s.basefont), h.showValues = (0, c.pluckNumber)(u.showvalues, d.showvalues, 1), h.showPercentValues = (0, c.pluckNumber)(d.showpercentvalues, d.showpercentagevalues, 0), i = h.toolTipSepChar = (0, c.pluck)(d.tooltipsepchar, d.hovercapsepchar, c.COMMASPACE), h.labelSepChar = (0, c.parseUnsafeString)((0, c.pluck)(d.labelsepchar, i)), h.pieBorderColor = (0, c.pluck)(d.plotbordercolor, d.piebordercolor), h.pieBorderAlpha = (0, c.pluckNumber)(d.plotborderalpha, d.pieborderalpha), h.pieBorderThickness = h.showPlotBorder ? (0, c.pluckNumber)(d.plotborderthickness, d.pieborderthickness, s.plotborderthickness, 1) : 0, h.plotDashLen = (0, c.pluckNumber)(d.plotborderdashlen, 5), h.plotDashGap = (0, c.pluckNumber)(d.plotborderdashgap, 4), h.showValueInLegend = (0, c.pluckNumber)(d.showvalueinlegend, 0), h.showLabelInLegend = (0, c.pluckNumber)(d.showlabelinlegend, 1), h.valueBeforeLabelInLegend = (0, c.pluckNumber)(d.valuebeforelabelinlegend, 0), h.showValueAsPercentInLegend = (0, c.pluckNumber)(d.showvalueaspercentinlegend, 1), h.legendSepChar = (0, c.pluck)(d.legendsepchar, ", "), h.showvalues = (0, c.pluckNumber)(d.showvalues, 1), h.chartPosition = (0, c.getPosition)(l.getFromEnv("chart-container"), l), h.timerThreshold = 30, t > 100 && (t = 100), t < 0 && (t = 0), h.showLegend = (0, c.pluckNumber)(d.showlegend, 0), h.reverselegend = !(0, c.pluckNumber)(d.reverselegend, 0), l.config.is3D = g, h.pieYScale = (0, c.pluckNumber)(d.pieyscale, 40), h.pieYScale < 1 && (h.pieYScale = 1), h.pieYScale >= 100 && (h.pieYScale = 80), h.pieYScale /= 100, h.pieSliceDepth = (0, c.pluckNumber)(d.pieslicedepth, 15), h.pieSliceDepth < 1 && (h.pieSliceDepth = 1), h.managedPieSliceDepth = h.pieSliceDepth, h.enableMultiSlicing = !!o, h.startAngle = (0, c.pluckNumber)(d.startingangle, 0) % 360 * (-P / 180), h.usePerPointLabelColor = d.colorlabelsfromplot === c.ONESTRING, h.reversePlotOrder = (0, c.pluckNumber)(d.reverseplotorder, 0), h.animateClockWise = (0, c.pluckNumber)(d.animateclockwise, h.reversePlotOrder), h.showShadow = (0, c.pluckNumber)(d.showshadow, 1), h.innerLabelRadiusPercent = (0, c.pluckNumber)(d.innerlabelradiuspercent, 67) / 100, h.minAngleForValue = (0, c.pluckNumber)(d.minangleforvalue, 0) * (P / 180), h.minAngleForLabel = (0, c.pluckNumber)(d.minangleforlabel, 0) * (P / 180), h.singletonCase = 1 === u.data.length, h.labelPosition = (0, c.pluck)(d.labelposition, h.singletonCase && p ? "inside" : "outside").toLowerCase(), h.valuePosition = (0, c.pluck)(d.valueposition, h.singletonCase && p ? "inside" : "outside").toLowerCase(), h.valueTotal = 0, this._setConfigure(), s.showLegend && this._addLegend() }, a.trimData = function(e) { X.call(this, e) }, a._parseDisplayProperties = function(e, t) { var a, i, o, r, l, s, h, u, d, g, p, f, m = c.BLANKSTRING,
                        v = this.getFromEnv("chart"),
                        b = this.getFromEnv("number-formatter"),
                        x = v.getFromEnv("chart-attrib"),
                        y = this.config,
                        C = (0, c.pluckNumber)(t.y, b.getCleanValue(e.value, !0)),
                        k = y.valueTotal,
                        S = y.showLabels,
                        w = (0, c.parseUnsafeString)((0, c.pluck)(t.seriesName, e.label, e.name, c.BLANKSTRING)),
                        L = y.showPercentValues,
                        A = y.showPercentInToolTip,
                        N = y.labelSepChar,
                        E = y.toolTipSepChar,
                        T = y.showTooltip;
                    a = (0, c.getValidValue)((0, c.parseUnsafeString)((0, c.pluck)(e.tooltext, y.toolText), !1)), i = t.pValue = b.percentValue(C / k * 100), r = t.value = b.dataLabels(C) || c.BLANKSTRING, d = t.showLabel = (0, c.pluckNumber)(e.showlabel, S), g = t.showValue = (0, c.pluckNumber)(e.showvalue, y.showValues), t.labelFontColor = (0, c.pluck)(e.labelfontcolor, y.labelFontColor), t.labelFont = (0, c.pluck)(e.labelfont, y.labelFont), l = t.labelText = 1 === d ? w : c.BLANKSTRING, s = t.valueText = 1 === g ? 1 === L ? i : r : c.BLANKSTRING, o = A ? i : r, h = (0, c.getValidValue)((0, c.parseUnsafeString)(e.displayvalue)), t.labelPosition = (0, c.pluck)(e.labelposition, y.labelPosition).toLowerCase(), t.valuePosition = (0, c.pluck)(e.valueposition, y.valuePosition).toLowerCase(), p = (0, c.pluckNumber)(e.minangleforlabel), isNaN(p) ? t.minAngleForLabel = y.minAngleForLabel : t.minAngleForLabel = p % 360 * (P / 180), f = (0, c.pluckNumber)(e.minangleforvalue), isNaN(f) ? t.minAngleForValue = y.minAngleForValue : t.minAngleForValue = f % 360 * (P / 180), t.innerLabelRadiusPercent = (0, c.pluckNumber)(e.innerlabelradiuspercent, y.innerLabelRadiusPercent), u = (0, c.pluck)(h, w + N + (L ? i : r), c.BLANKSTRING), h !== n && g ? (s = t.labelText = h, t.valueText = c.BLANKSTRING) : s = s !== c.BLANKSTRING && l !== c.BLANKSTRING ? l + N + s : (0, c.pluck)(l, s), T && (m = a !== n ? (0, c.parseTooltext)(a, [1, 2, 3, 5, 6, 7, 14, 24, 25], { formattedValue: r, label: w, yaxisName: (0, c.parseUnsafeString)(x.yaxisname), xaxisName: (0, c.parseUnsafeString)(x.xaxisname), percentValue: i, sum: b.dataLabels(k), unformattedSum: k }, e, x) : (m = w) !== c.BLANKSTRING ? m + E + o : o), t.displayValue = s, t.displayValueArgs = u, t.toolText = m, t.seriesName = w, t.categoryLabel = w }, a._isStyled = function(e) { if (this.getFromEnv("chart").config.usedataplotcolorforlabels || e.labelbordercolor || e.labelbgcolor || e.labelborderthickness || e.labelborderalpha || e.labelalpha || e.labelfont || e.labelfontsize || e.labelfontcolor || e.labelfontalpha || e.labelalpha || e.labelfontbold || e.labelfontitalic || e.labelborderpadding || e.labelborderradius || e.labelbgalpha || e.labelborderdashed || e.labelborderdashlen || e.labelborderdashgap) return !0 }, a._setConfigure = function(e, t) { var a, i, o, r, l, s, h, u, d, g, f, m, v, b, x, y, C, k, S, w = this.components,
                        L = w.removeDataArr = w.removeDataArr || [],
                        A = this.getFromEnv("chart"),
                        N = A.getFromEnv("dataSource").chart,
                        T = A.config,
                        F = this.config,
                        _ = this.config.JSONData,
                        P = (e || _).data,
                        D = P && P.length,
                        I = F.showZeroPies,
                        M = F.valueTotal || 0,
                        O = [],
                        R = (0, c.pluckNumber)(N.plotborderdashed, 0),
                        B = this.components.data || (this.components.data = []),
                        V = this.getFromEnv("number-formatter"),
                        G = this.getFromEnv("color-manager"),
                        z = F.labelInLeg,
                        H = F.valInLeg,
                        W = F.pieBorderThickness,
                        j = F.reversePlotOrder,
                        U = F.radius3D,
                        q = F.enableMultiSlicing,
                        Y = F.lastSlicedid || 0,
                        X = (0, c.pluckNumber)(N.plotBorderDashed, 5),
                        K = (0, c.pluckNumber)(N.plotborderdashgap, 4),
                        Z = (0, c.pluckNumber)(N.valuebeforelabelinlegend, 0),
                        J = (0, c.pluckNumber)(N.showvalueaspercentinlegend, 1),
                        $ = 0,
                        Q = [],
                        ee = (0, c.pluck)(N.legendsepchar, ", "); for (T.dataLabelStyle = (0, c.parsexAxisStyles)({}, {}, N, T.dataLabelStyle, o), a = 0; a < D; a += 1) b = P[a], null === (C = V.getCleanValue(b.value, !0)) || !I && 0 === C ? $ += 1 : (O.push(b), Q.push(a), M += C); if (!F.singletonCase && (F.singletonCase = D - $ == 1), $ && B.length > D - $)
                        for (a = B.length - 1; $ > 0; a -= 1, $ -= 1) B[a] && (k = (b = B[a]).config, L.push(b), k.y = null); for (0 === M && (O = []), F.valueTotal = M, F.dataLabelCounter = 0, T.allPlotSliceEnabled = T.enableslicing, a = (D = O.length) - 1; a >= 0; a -= 1) x = a, e ? (S = O[a], b = t !== n ? B[x = t + a] : B[x = B.length - D + a]) : (b = B[a] || (B[a] = { graphics: {}, config: {} }), S = O[a]), (y = b && b.config) || (y = B[x].config = {}), b.graphics || (B[x].graphics = {}), y.y = C = V.getCleanValue(S.value, !0), y.seriesName = i = (0, c.parseUnsafeString)((0, c.pluck)(S.label, S.name, c.BLANKSTRING)), y.labellink = (0, c.pluck)(S.labellink, N.labellink), o = (0, c.pluck)(S.color, G.getPlotColor(Q[a])), r = (0, c.pluck)(S.alpha, N.plotfillalpha, c.HUNDREDSTRING), s = (l = y.borderConfig = this._parseBorderConfig(o, r, S)).setPlotBorderColor, h = l.setPlotBorderAlpha, u = { opacity: E(r, h) / 100 }, (f = Boolean((0, c.pluckNumber)(S.issliced, N.issliced, 0))) && (q || (-1 !== Y && (B[B.length - Y - 1].sliced = !1), F.lastSlicedid = a), F.preSliced = f), v = (m = (0, c.pluckNumber)(S.dashed, R)) ? (0, c.getDashStyle)((0, c.pluck)(S.dashlen, X), (0, c.pluck)(S.dashgap, K), W) : "none", this._parseDisplayProperties(S, y), d = z ? i : c.BLANKSTRING, H && (g = J ? V.legendPercentValue(C / M * 100) : V.legendValue(C), d = Z ? g + (d && ee + d) : (d && d + ee) + g), F.dataLabelCounter += 1, this._isStyled(S) ? y.style = (0, c.parsexAxisStyles)(S, {}, N, T.dataLabelStyle, o) : y.style && delete y.style, y.showInLegend = d !== c.BLANKSTRING, y.isVisible = !0, y.name = d, y.shadow = u, y.setColor = o, y.setAlpha = r, y.color = (0, p["default"])(o, r, U, F.doughnutradius), y._3dAlpha = r, y.borderColor = (0, c.convertColor)(s, h), y.borderWidth = W, y.link = (0, c.getValidValue)(S.link), y.sliced = f, y.dashStyle = v, y.setBorderDashed = m, (y.doNotSlice = (0, c.pluck)(S.enableslicing, T.enableslicing) !== c.ONESTRING) || T.allPlotSliceEnabled !== c.ZEROSTRING || (T.allPlotSliceEnabled = c.ONESTRING), this._parseHoverEffectOptions(a), y.centerLabelConfig = void 0, y.radius3D = U;
                    j && B && B.reverse(), F.dataArr = O, F.enableRotation = B.length > 1 ? (0, c.pluckNumber)(N.enablerotation, 1) : 0 }, a._parseHoverEffectOptions = function(e) { var t, a, i, o, r, l, s, h, u, d, g = this.getFromEnv("chart").getFromEnv("dataSource").chart,
                        p = this.config,
                        f = this.components.data[e].config,
                        m = this.config.JSONData,
                        v = m.data[e],
                        b = f.setColor,
                        x = f._3dAlpha,
                        y = p.radius3D,
                        C = f.borderConfig,
                        k = C.setPlotBorderAlpha,
                        S = C.setPlotBorderColor,
                        w = p.setBorderWidth,
                        L = (0, c.pluckNumber)(f.hovereffect, p.showHoverEffect),
                        A = f.hoverEffects = { enabled: L }; if (L === n && (L = A.enabled = (0, c.pluck)(v.hovercolor, m.hovercolor, g.plotfillhovercolor, v.hoveralpha, m.hoveralpha, g.plotfillhoveralpha, v.borderhovercolor, m.borderhovercolor, g.plotborderhovercolor, v.borderhoveralpha, m.borderhoveralpha, g.plotborderhoveralpha, g.plotfillhoveralpha, v.borderhoverthickness, m.borderhoverthickness, g.plotborderhoverthickness, n) !== n), L) { if (t = (0, c.pluckNumber)(v.highlightonhover, m.highlight, g.highlight, 1), (a = (0, c.pluck)(v.hovercolor, m.hovercolor, g.plotfillhovercolor)) && t && (t = 0), a = (0, c.pluck)(a, b), i = (0, c.pluck)(v.hoveralpha, m.hoveralpha, g.plotfillhoveralpha, x), o = (0, c.pluck)(v.borderhovercolor, m.borderhovercolor, g.plotborderhovercolor, S), f.hoverBorderColor = o, r = (0, c.pluck)(v.borderhoveralpha, m.borderhoveralpha, g.plotborderhoveralpha, g.plotfillhoveralpha, k), l = (0, c.pluckNumber)(v.borderhoverthickness, m.borderhoverthickness, g.plotborderhoverthickness, w), a.replace(/,+?$/, ""), 1 === t) { for (u = (h = (s = "string" == typeof a) ? a.split(/\s{0,},\s{0,}/) : a.color.split(/\s{0,},\s{0,}/)).length, d = 0; d < u; d++) h[d] = (0, c.getLightColor)(h[d], 70);
                            s ? a = h.join(",") : a.color = h.join(",") } this._setHoverColor(A, a, i, y), A.hoverColor = a, A.alpha = i, A.borderColor = (0, c.convertColor)(o, r), A.borderAlpha = r, A.borderWidth = l } else A.enabled = !1 }, a.organizeDatalabels = function() { var e, t, a, i, n, o = this.config,
                        r = this.components.data,
                        l = [],
                        s = [],
                        c = r.length; for (e = 0; e < c; e++) i = (t = r[e].config).labelPosition, n = t.valuePosition, null !== t.y && "undefined" != typeof t.y && !1 !== t.isVisible && ("outside" === i && "outside" === n ? l.push({ point: r[e] }) : ("inside" === i && "inside" === n || l.push({ point: r[e] }), s.push({ point: r[e] })));
                    a = M(l), o.labelsPlacedOutside = this.skipOverlappingLabels(a), o.labelsPlacedInside = s, this.rotateDataLabels() }, a.skipOverlappingLabels = function(e) { var t, a, i, n, o, r, l = e,
                        s = this.config,
                        c = s.dataLabelOptions,
                        h = c.distance + s.pieMinRadius,
                        u = []; for (o = s.labelLineHeight = parseInt(c.style.fontSize, 10), s.labelsMaxInQuadrant = r = _(h / o), a = 0; a < 4; a++)
                        if (c.skipOverlapLabels && (t = l[a].length - r) > 0)
                            for (l[a].sort(H), i = 0, n = (t = l[a].splice(0, t)).length; i < n; i++) this.disposeLabelAndConnector(t[i].point.graphics, [{ el: "label", animLabel: "label" }, { el: "innerLabel", animLabel: "label" }, { el: "connector", animLabel: "connector" }]); for (a = 0; a < 4; a++)
                        for (i = 0, n = l[a].length; i < n; i++) u.push(l[a][i]); return u }, a.rotateDataLabels = function() { this.rotateOuterLabels(), this.rotateInnerLabels() }, a.rotateOuterLabels = function() { var e, t, a, i, n, o, r, l, s, h, u, d, g, p, m, b, x, y, C, k, S, w, L, _, P, D = this.config,
                        I = this.getFromEnv("chart"),
                        O = I.getFromEnv("animationManager"),
                        R = I.getChildren("legend")[0],
                        B = R && R.config || {},
                        G = this.getFromEnv("smartLabel"),
                        z = I.config,
                        H = D.dataLabelOptions,
                        U = D.labelLineHeight,
                        X = D.pieMinRadius,
                        K = I.config,
                        Z = K.canvasLeft,
                        J = K.canvasWidth,
                        $ = K.useEllipsesWhenOverflow,
                        Q = H.connectorPadding,
                        ee = H.manageLabelOverflow,
                        te = H.distance,
                        ae = H.enableSmartLabels,
                        ie = M(D.labelsPlacedOutside),
                        ne = te + X,
                        oe = E(ie[0].length, ie[1].length, ie[2].length, ie[3].length),
                        re = Z + .5 * J,
                        le = z.canvasTop + .5 * z.canvasHeight,
                        se = D.handlersAPI,
                        ce = se.plotDragStart,
                        he = se.plotDragEnd,
                        ue = se.plotDragMove,
                        de = se.plotRollOver,
                        ge = se.plotRollOut,
                        pe = [],
                        fe = [],
                        me = this.getFromEnv("toolTipController"),
                        ve = this.getContainer("label-group"); for (t = E(T(oe, D.labelsMaxInQuadrant) * U, ne + U), a = 0; a < 4; a++) ie[a].sort(W); for (ie[0].reverse(), ie[2].reverse(), i = 0; i < 4; i++) { for (k = t, C = ie[i].length * U, pe = [], a = 0, n = ie[i].length; a < n; a++) x = ie[i][a], (r = F(t * A(x.angle))) > k ? r = k : r < C && (r = C), C -= U, k = r - U, pe.push(r); for (C = 0, k = t - (n - 1) * U, fe = [], a = ie[i].length - 1; a >= 0; a--) x = ie[i][a], (r = F(t * A(x.angle))) < C ? r = C : r > k && (r = k), C = r + U, k += U, fe.push(r); for (a = 0; a < n; a++) r = T(t, (pe[a] + fe[n - 1 - a]) / 2), l = t * N(Math.asin(r / t)), g = (o = (x = ie[i][a]).point).config, p = o.graphics, m = g.props.connector.attr, d = c.BLANKSTRING, (S = Object.assign({}, g.props.label.attr))["text-anchor"] = 0 === i || 3 === i ? "start" : "end", S.y = h = le + q[i] * r, S.x = s = re + Y[i] * (l + 2 * Q), g.sliced && (S.y += g.transY, S.x += g.transX), "outside" === g.labelPosition && "outside" === g.valuePosition ? this.disposeLabelAndConnector(p, [{ el: "innerLabel", animLabel: "label" }]) : S.text = "outside" === g.labelPosition ? g.labelText : g.valueText, S.text ? (y = { x: re + X * N(x.angle), y: le + X * A(x.angle) }, b = g.connectorPath = (0, f.getConnectorPath)(y, { x: re + Y[i] * l, y: le + q[i] * r }, { isSlanted: H.isSmartLineSlanted, padding: Q, quadrant: i, transX: g.sliced ? g.transX : 0, transY: g.sliced ? g.transY : 0 }), ee && (u = 1 === i || 2 === i ? S.x - Z : Z + J - S.x, "right" !== B.align && "left" !== B.align || (u -= B.symbolWidth + 2 * B.borderWidth), G.useEllipsesOnOverflow($), G.setStyle(g.style), e = G.getSmartText(S.text, u, parseFloat(G.style.lineHeight)), S.text = e.text, d = e.tooltext), P = p.label, p.label = _ = O.setAnimation({ el: P || "text", attr: S, css: g.props.label.css, component: this, container: ve, label: "label" }), _.outlineText(D.showTextOutline, S.fill), P || _.on("fc-dragstart", ce).on("fc-dragmove", ue).on("fc-dragend", he).on("fc-click", j.bind(_, I, g.labellink)).on("fc-click", V(this, _)).on("fc-mouseover", de).on("fc-mouseout", ge), d ? d && me.enableToolTip(_, d) : me.disableToolTip(_), _.x = s, _.y = h, _ && _.data("textPos", { x: S.x, y: S.y }).data("plotItem", g.plotItem).data("eventArgs", g.eventArgs), L = p.connector, ae ? (p.connector = w = O.setAnimation({ el: L || "path", attr: v({ path: b }, m), container: ve, component: this, label: "connector" }), L || w.on("fc-dragstart", ce).on("fc-dragmove", ue).on("fc-dragend", he).on("fc-mouseover", de).on("fc-mouseout", ge), w.data("connectorPath", { path: b }).data("plotItem", g.plotItem).data("eventArgs", g.eventArgs)) : L && this.disposeLabelAndConnector(p, [{ el: "connector", animLabel: "connector" }])) : this.disposeLabelAndConnector(p, [{ el: "label", animLabel: "label" }, { el: "connector", animLabel: "connector" }]) } }, a.rotateInnerLabels = function() { var e, t, a, i, n, o, r, l, s, h, u, d, g, p, m = this.config,
                        v = m.labelsPlacedInside,
                        b = m.pieCenter,
                        x = this.getFromEnv("animationManager"),
                        y = b[0],
                        C = b[1],
                        k = v.length,
                        S = this.components.data.length,
                        w = m.handlersAPI,
                        L = w.plotDragStart,
                        E = w.plotDragEnd,
                        T = w.plotDragMove,
                        _ = w.plotRollOver,
                        P = w.plotRollOut; for (a = 0; a < k; a++) n = (i = v[a].point).config, o = i.graphics, d = Object.assign({}, n.props.label.attr), u = F(n.startAngle - n.endAngle), s = n.minAngleForLabel, h = n.minAngleForValue, "inside" === n.valuePosition && "inside" === n.labelPosition ? (this.disposeLabelAndConnector(o, [{ el: "label", animLabel: "label" }, { el: "connector", animLabel: "connector" }]), u >= h && u < s ? d.text = n.valueText : u < h && u >= s ? d.text = n.labelText : u < h && u < s && (d.text = c.BLANKSTRING)) : "inside" === n.valuePosition ? d.text = u >= h ? n.valueText : c.BLANKSTRING : d.text = u >= s ? n.labelText : c.BLANKSTRING, d.text ? (l = m.pieMinRadius * n.innerLabelRadiusPercent, r = (0, f.getCleanAngle)(n.angle), d.x = e = y + (S > 1 ? l * N(r) : 0), d.y = t = C + (S > 1 ? l * A(r) : 0), n.sliced && (d.y += n.transY, d.x += n.transX), d["text-anchor"] = "middle", p = o.innerLabel, o.innerLabel = g = x.setAnimation({ el: p || "text", attr: d, css: n.props.label.css, component: this, container: this.getContainer("label-group"), label: "label" }), g.outlineText(m.showTextOutline, d.fill), p || g.on("fc-dragstart", L).on("fc-dragmove", T).on("fc-dragend", E).on("fc-click", j.bind(g, this.getFromEnv("chart"), n.labellink)).on("fc-click", V(this, g)).on("fc-mouseover", _).on("fc-mouseout", P), g.x = e, g.y = t, g && g.data("textPos", { x: d.x, y: d.y }).data("plotItem", n.plotItem).data("eventArgs", n.eventArgs)) : this.disposeLabelAndConnector(o, [{ el: "innerLabel", animLabel: "label" }]) }, a.disposeLabelAndConnector = function(e, t) { void 0 === t && (t = []); var a, i, n, o = this.getFromEnv("animationManager"),
                        r = t.length; for (a = 0; a < r; a++) e[n = (i = t[a]).el] && (e[n] = o.setAnimation({ el: e[n], component: this, label: i.animLabel })), delete e[n] }, a._setHoverColor = function(e, t, a, i) { i ? e.color = (0, p["default"])(t, a, i, this.config.doughnutradius) : (e.color = t, e.alpha = a) }, a.updateData = function() { var t = this,
                        a = t.config,
                        i = t.components.data;
                    a.valueTotal -= i[arguments[1]].config.y, e.prototype.updateData.call(this, arguments) }, a._rotate = function() { var e, t, a, i, o, r, l, s, h, u = this.getFromEnv("chart"),
                        d = this.config,
                        g = this.components.data,
                        p = u.config,
                        f = d.piePlotOptions,
                        m = (d.startAngle || 0) % I,
                        v = d.slicingDistance,
                        b = d.valueTotal,
                        x = I / b,
                        y = p.canvasLeft + .5 * p.canvasWidth,
                        C = p.canvasTop + .5 * p.canvasHeight,
                        k = d.pieMinRadius,
                        S = .5 * (f.innerSize || 0); for (o = r = m, h = 0; h < g.length; h += 1) l = g[h].config, s = g[h].graphics, null !== (a = l.y) && a !== n && (r = o, i = .5 * ((o -= d.singletonCase ? I : a * x) + r), l.angle = i, l.transX = N(i) * v, l.transY = A(i) * v, l.slicedTranslation = "t" + N(i) * v + c.COMMASTRING + A(i) * v, (t = l._rotateAttrs) || (t = l._rotateAttrs = { ringpath: [], transform: c.BLANKSTRING }), (e = t.ringpath)[0] = y, e[1] = C, e[2] = k, e[3] = S, e[4] = o, e[5] = r, s.element.attr({ ringpath: t.ringpath, transform: l.sliced ? l.slicedTranslation : "" }));
                    this.organizeDatalabels() }, a._parsePiePlotOptions = function() { var e = this.config; return { size: e.pieMinRadius, slicedOffset: e.slicingDistance } }, a._parseDataLabelOptions = function() { return { style: this.getFromEnv("chart").config.dataLabelStyle } }, a._addLegend = function() { var e, t, a, i, n = this.getFromEnv("legend"),
                        o = this.components.data; for (e = 0; e < o.length; e++)
                        if (null !== (t = o[e].config).y && t.seriesName) i = { index: e, type: this.getName(), label: t.seriesName, enabled: (0, c.pluckNumber)(t.includeInLegend, 1) }, (a = n.getItem(t.legendItemId)) || (t.legendItemId = n.createItem(this), a = n.getItem(t.legendItemId), this.addExtEventListener("fc-click", a.itemClickFn, a)), a.configure(i), a.setStateCosmetics("default", { symbol: { fill: (0, c.toRaphaelColor)(t.setColor), rawFillColor: t.setColor, stroke: (0, c.toRaphaelColor)(t.borderColor) } });
                        else { if (!t.legendItemId) continue;
                            (a = n.getItem(t.legendItemId)) && n.disposeItem(a.getId()), delete t.legendItemId } }, a.getPlotData = function(e, t) { var a, i, n, o = this.components.data[e].config,
                        r = this.config.userData || (this.config.userData = []); if (r[e]) a = r[e];
                    else { for (n in a = r[e] = {}, o) "object" != typeof(i = o[n]) && "function" != typeof i && 0 !== n.indexOf("_") && (a[n] = i);
                        a.value = a.y, a.categoryLabel = a.label = a.seriesName, delete a.y, delete a.total, delete a.doNotSlice, delete a.name, delete a.seriesName, delete a.centerAngle, delete a.showInLegend, delete a.angle, delete a.endAngle, delete a.isVisible, delete a.setColor, delete a.slicedTranslation, delete a.startAngle, delete a.transX, delete a.transY, delete a.pValue } return a.sliced = t, a }, a._parseBorderConfig = function(e, t, a) { var i = this.config.pieBorderColor,
                        n = this.getFromEnv("chart").getFromEnv("dataSource").chart,
                        o = (0, c.pluck)(a.bordercolor, i),
                        r = (0, c.pluck)(a.borderalpha, n.plotborderalpha, n.pieborderalpha); return { setPlotBorderColor: o = (0, c.pluck)(o, (0, c.getLightColor)(e, 25)).split(c.COMMASTRING)[0], setPlotBorderAlpha: r = n.showplotborder === c.ZEROSTRING ? c.ZEROSTRING : (0, c.pluck)(r, t, "80") } }, a.legendInteractivity = function(e) { var t, a, i, n = this.components.data,
                        o = e.getId(); for (a = 0, t = n.length; a < t; a++) n[a].config.legendItemId === o && (i = n[a].graphics, this.plotGraphicClick.call(i.element)) }, a._createContainer = function() { var e, t, a, i, n = this.getName(),
                        o = this.groupName,
                        r = this.getLinkedParent(),
                        l = o || this.dsGroup || n;!r.getChildContainer(l + "Group") && (l = "default"), e = r.getChildContainer("datalabelsGroup"), t = this.getContainer("pie-groups") || this.addContainer("pie-groups", O("pie", e, this)), a = this.getContainer("pie-plot-groups") || this.addContainer("pie-plot-groups", O("pie-plot", t, this)), i = this.getContainer("pie-label-groups") || this.addContainer("pie-label-groups", O("pie-label", t, this)), this.getContainer("plot-group") || this.addContainer("plot-group", O("plots", a, this)), this.getContainer("plot-shadow-group") || this.addContainer("plot-shadow-group", O("plot-shadows", a, this).toBack()), this.getContainer("label-group") || this.addContainer("label-group", O("labels", i, this)), this.getContainer("connector-shadow-group") || this.addContainer("connector-shadow-group", O("connector-shadows", i, this)), this.getContainer("anchor-shadow-group") || this.addContainer("anchor-shadow-group", O("anchor-shadows", i, this)) }, a.allocatePosition = function() { var e, t, a = this.components.data,
                        i = a.length; for (e = 0; e < i; e++) t = a[e], this.parsePlotAttributes(t, e), this.parseLabelAttributes(t, e) }, a.parsePlotAttributes = function(e, t) { var a, i, o, r, l, s, h, u, d, g, p, f, m, v, b = this.components.data,
                        x = this.getFromEnv("chart"),
                        y = x.config,
                        k = this.config,
                        S = t,
                        w = b.length,
                        L = y.canvasWidth,
                        E = y.canvasHeight,
                        T = y.canvasLeft + .5 * L,
                        F = y.canvasTop + .5 * E,
                        _ = k.valueTotal,
                        P = k.piePlotOptions = this._parsePiePlotOptions(),
                        D = P.slicedOffset,
                        M = P.size,
                        O = .5 * (k.innerSize || 0),
                        B = (k.startAngle || 0) % I,
                        V = B - I,
                        G = k.animateClockWise;
                    m = _ && I / _, k.pieCenter = [T, F], r = B, l = B, t > 0 && (r = b[t - 1].config.startAngle, l = b[t - 1].config.endAngle), h = (s = e.config).y, u = s.displayValue, d = s.sliced, a = s.toolText, i = !!s.link, null !== h && h !== n && !1 !== s.isVisible && ((g = s.color).r = M, g.cx = T, g.cy = F, l = r, p = .5 * ((r -= k.singletonCase ? I : h * m) + l), G ? V : B, f = k.previousData = { cx: T, cy: F, r: M, r2: O }, o = this.config.drawn ? [f.cx, f.cy, f.r, f.r2, r, l] : [T, F, M, O, r, l], d && (s.slicedTranslation = "t" + N(p) * D + "," + A(p) * D), v = { "stroke-width": s.borderWidth, stroke: s.borderColor, fill: C ? R(s.color, k.doughnutradius) : (0, c.toRaphaelColor)(s.color), transform: d ? s.slicedTranslation : "", "stroke-dasharray": s.dashStyle, redrawDataLabels: B, ringpath: o, cursor: i ? "pointer" : "" }, s.props = { element: { attr: v } }, s.eventArgs = { index: k.reversePlotOrder ? w - 1 - S : S, link: s.link, value: s.y, displayValue: s.displayValueArgs, categoryLabel: s.categoryLabel, isSliced: d, toolText: a, pValue: s.pValue, color: s.setColor, alpha: s.setAlpha, borderColor: s.borderConfig.setPlotBorderColor, borderAlpha: s.borderConfig.setPlotBorderAlpha, dashed: s.setBorderDashed, showLabel: s.showLabel, showValue: s.showValue, labelPosition: s.labelPosition, valuePosition: s.valuePosition, labelFont: s.labelFont, labelFontColor: s.labelFontColor || "#555555", labelLink: s.labellink, hoverColor: s.hoverEffects.hoverColor, hoverAlpha: s.hoverEffects.alpha, borderHoverColor: s.hoverBorderColor, borderHoverAlpha: s.hoverEffects.borderAlpha }, s.plotItem = { chart: x, index: S, seriesData: k, value: h, pValue: s.pValue, displayValue: s.displayValue || "", angle: s.angle = p, angle1: s.startAngle = r, angle2: s.endAngle = l, slicedX: N(p) * D, slicedY: A(p) * D, sliced: d, labelText: u, toolText: a, name: s.name, link: s.link, percentage: _ ? h * _ / 100 : 0, originalIndex: w - S - 1, style: s.style, color: (0, c.toRaphaelColor)(s.color), borderColor: s.borderColor, borderWidth: s.borderWidth, rolloverProperties: s.hoverEffects, radius: M, center: [T, F], innerDiameter: 2 * O, centerLabelConfig: s.centerLabelConfig, isVisible: s.isVisible, label: s.seriesName, connector: void 0, transX: s.transX = N(p) * D, transY: s.transY = A(p) * D, slicedTranslation: s.slicedTranslation = "t" + N(p) * D + "," + A(p) * D }) }, a.parseLabelAttributes = function(e) { var t, a, i, o, r, l = this.getFromEnv("chart").config,
                        s = l.dataLabelStyle,
                        h = this.config,
                        u = l.style,
                        d = l.textDirection,
                        g = h.dataLabelOptions;
                    (o = (t = e.config)._textAttrs) || (o = t._textAttrs = {}), a = t.y, i = t.displayValue, u = t.style, null !== a && a !== n && !1 !== t.isVisible && (i !== n ? (u && ((r = t._textCss) || (r = t._textCss = {}), r.fontFamily = u.fontFamily, r.fontSize = u.fontSize, r.lineHeight = u.lineHeight, r.fontWeight = u.fontWeight, r.fontStyle = u.fontStyle), t.plotItem.style = t.style = u || (u = s), o.text = i, o.fill = u.color || "#000000", o.cursor = e.config.link ? "pointer" : "", o["text-bound"] = [u.backgroundColor, u.borderColor, u.borderThickness, u.borderPadding, u.borderRadius, u.borderDash], o.direction = d, o["line-height"] = u.lineHeight) : o.text = c.BLANKSTRING, t.props.label = { attr: o, css: r }, t.props.connector = { attr: { "stroke-width": g.connectorWidth, stroke: g.connectorColor || "#606060" } }) }, a.draw = function() { var e, t, a, i, o, r, l, s, h, u, d, g, p, f, m, v, b, x = this.getFromEnv("animationManager"),
                        y = this.getFromEnv("chart").config,
                        C = y.dataLabelStyle,
                        k = this.config,
                        S = k.showShadow,
                        w = this.components,
                        L = w.removeDataArr = w.removeDataArr || [],
                        A = this.getState("visible"),
                        N = w.data || [],
                        E = N.length,
                        T = y.canvasWidth,
                        _ = y.canvasHeight,
                        P = y.canvasLeft + .5 * T,
                        D = y.canvasTop + .5 * _,
                        I = k.handlersAPI.plotDragStart,
                        M = k.handlersAPI.plotDragEnd,
                        O = k.handlersAPI.plotDragMove,
                        R = k.handlersAPI.plotRollOver,
                        B = k.handlersAPI.plotRollOut,
                        G = function() { var e = k.pieCenter || [],
                                t = k.piePlotOptions || [],
                                a = { cx: e[0], cy: e[1], r: t.size, r2: .5 * (k.innerSize || 0) }; return function(e) { var t, i = !1; for (t in e)
                                    if (F(e[t] - a[t]) > 5) { i = !0; break } return i } }(),
                        z = (k.piePlotOptions = this._parsePiePlotOptions()).size,
                        H = .5 * (k.innerSize || 0),
                        W = this.getFromEnv("toolTipController"); for (this.getContainer("pie-groups") || this._createContainer(), s = this.getContainer("plot-group"), h = this.getContainer("plot-shadow-group"), u = this.getContainer("label-group"), d = this.getContainer("connector-shadow-group"), g = this.getContainer("anchor-shadow-group"), this.config.drawn && (e = G({ cx: P, cy: D, r: z, r2: H }) && !1), u.css(C), b = k.valueTotal, A && b ? (s.show(), h.show(), u.show(), d.show(), g.show()) : (s.hide(), h.hide(), u.hide(), d.hide(), g.hide()), L.length && this.removeElement(), t = 0; t < E; t += 1) p = (a = N[t]).graphics, m = (f = a.config).y, i = f.toolText, null !== m && m !== n && !1 !== f.isVisible && (r = p.element, o = x.setAnimation({ el: r || "ringpath", attr: f.props.element.attr, label: "ringpath", props: { startAngle: this.config.startAngle }, container: s, component: this }), r || (p.element = o, o.on("fc-dragstart", I).on("fc-dragmove", O).on("fc-dragend", M).on("fc-click", V(this, o)).on("fc-mouseover", R).on("fc-mouseout", B)), v = f.plotItem, l = f.eventArgs, v.graphic = o, o.show().shadow(S && f.shadow, h).data("plotItem", v).data("dataset", this).data("eventArgs", l), W.enableToolTip(o, i));
                    this.organizeDatalabels(), !this.config.__attachRestoreColor && this.addExtEventListener("animationComplete", (function() { var t, a; if (e)
                            for (t = 0; t < E; t += 1)(a = N[t]).graphics.element && a.graphics.element.attr({ fill: (0, c.toRaphaelColor)(a.config.color) }) }), x), this.config.__attachRestoreColor = !0, this.config.drawn = !0 }, a.sliceInOtherPies = function(e) { var t, a = this.components.data,
                        i = a.length,
                        n = 0; for (this.enableMultiSlicing = !0; i--;) i !== e && (t = a[i]).config.sliced && ++n && this.plotGraphicClick.call(t.graphics); return this.enableMultiSlicing = !1, !!n }, a.removeElement = function() { var e, t, a, i, n = this.getFromEnv("animationManager"),
                        o = this.getFromEnv("chart").config,
                        r = this.components.removeDataArr || [],
                        l = r.length,
                        s = this.config,
                        c = o.canvasWidth,
                        h = o.canvasHeight,
                        u = o.canvasLeft + .5 * c,
                        d = o.canvasTop + .5 * h,
                        g = s.pieMinRadius,
                        p = .5 * (s.innerSize || 0),
                        f = s.startAngle - I; for (i = 0; i < l; i++) { for (t in a = r[0].graphics)
                            if (a.hasOwnProperty(t)) { if (!(e = a[t])) continue; "element" === t ? (n.setAnimation({ el: e, attr: { ringpath: [u, d, g, p, f, f + .01], transform: "" }, callback: U, component: this }), delete a[t]) : this.disposeLabelAndConnector(a, [{ el: "label", animLabel: "label" }, { el: "innerLabel", animLabel: "label" }, { el: "connector", animLabel: "connector" }]) } r.splice(0, 1) } }, a.getEventArgs = function(e) { var t = e.config.index,
                        a = this.components.data[t].config || {}; return { datasetName: a.seriesName, datasetIndex: t, id: a.userID, visible: a.isVisible, label: a.seriesName, value: a.value, percentValue: a.pValue, tooltext: a.toolText, link: a.link, sliced: a.sliced } }, a.remove = function(t) { var a = this.config.legendItemId,
                        i = this.getFromEnv("legend");
                    i && a && i.disposeItem(a), e.prototype.remove.call(this, t) }, t }(s["default"]);
            t["default"] = K },
        571: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = { "initial.dataset.pie2D": function() { return { "group.appearing": function(e) { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: e.component.getFromEnv("chartConfig").alphaanimation ? "plot" : "initial" }] }, "ringpath.appearing": function(e) { var t = e.component,
                                a = e.attr.ringpath.slice(0),
                                i = e.attr.ringpath.slice(0),
                                n = e.props.startAngle,
                                o = e.component.config,
                                r = t.getFromEnv("chartConfig"),
                                l = o.animateClockWise; return r.alphaanimation ? [{}] : (l && (i[4] += 2 * Math.PI, i[5] += 2 * Math.PI), a[4] = n, a[5] = n, [{ initialAttr: { ringpath: a }, finalAttr: { ringpath: i, transform: "" }, startEnd: { start: 0, end: .75 }, effect: "linear", slot: "plot" }, { initialAttr: { transform: "", ringpath: i }, finalAttr: { ringpath: i }, startEnd: { start: .75, end: 1 }, effect: "linear", slot: "plot" }]) }, "label.appearing": [{ initialAttr: { opacity: "0" }, finalAttr: { opacity: "1" }, slot: "final" }], "connector.appearing": function(e) { return [{ initialAttr: { path: e.attr.path, opacity: "0" }, finalAttr: { opacity: "1" }, slot: "final" }] }, "label.updating": function(e) { return [{ initialAttr: { x: e.el.attrs.x }, slot: "plot" }] } } }, "slicing.dataset.pie2D": function() { return { "slice.updating": function(e) { return "t0,0" !== (e.attr && e.attr.transform) ? [{ initialAttr: { transform: "t0,0" }, slot: "plot" }] : [{ finalAttr: { transform: "t0,0" }, slot: "plot" }] } } } };
            t["default"] = i },
        572: function(e, t, a) { "use strict";
            t.__esModule = !0, t.getConnectorPath = t.getQuadrant = t.getCleanAngle = void 0; var i = Math.PI,
                n = i / 2,
                o = 3 * i / 2,
                r = 2 * i,
                l = function(e) { var t = e % r; return t < 0 ? t + r : t };
            t.getConnectorPath = function(e, t, a) { void 0 === a && (a = {}); var i = a,
                    n = i.isSlanted,
                    o = i.quadrant,
                    r = i.padding,
                    l = i.transX,
                    s = i.transY,
                    c = e.x + l,
                    h = e.y + s,
                    u = t.x + l,
                    d = t.y + s; return ["M", c, h, "L", n ? u : c, d, u + (1 === o || 2 === o ? -1 : 1) * (r || 0), d] }, t.getQuadrant = function(e) { var t = l(e); return t >= 0 && t < n ? 0 : t < i ? 1 : t < o ? 2 : 3 }, t.getCleanAngle = l },
        580: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t, a, i, n = window.parseFloat,
                    o = e._createNode,
                    r = e._setFillAndStroke,
                    l = e.el.constructor,
                    s = { Q: "L", Z: "X", q: "l", z: "x", ",": " " },
                    c = /,?([achlmqrstvxz]),?/gi,
                    h = function() { return this.join(",").replace(c, t) };
                e.svg ? (t = "$1", a = function() { var a = this,
                        i = e.is(arguments[0], "array") ? arguments[0] : Array.prototype.slice.call(arguments);
                    i ? "string" == typeof i ? i = i.replace(c, t) : i.toString = h : i = "M0,0", a.node.setAttribute("d", i.toString()) }, e._engine.litepath = function(t, a, i, n, s) { var c, h = o("path"); return (n || a).canvas.appendChild(h), (c = new l(h, a, n)).type = "litepath", c.id = h.raphaelid = e._oid++, h.raphael = !0, r(c, s || { fill: "none", stroke: "#000" }), c }, e._getPath.litepath = function(t) { return e.parsePathString(t.node.getAttribute("d")) }) : e.vml && (t = function(e, t) { return s[t] || t }, i = function() { var e = this; return e._transform.apply(e, arguments), e._.bcoord && (e.node.coordsize = e._.bcoord), e }, a = function(e) { var a = e; return a ? "string" == typeof a ? a = a.replace(c, t) : a.toString = h : a = "M0,0", this.node.path = a, this }, e._engine.litepath = function(t, a, r, s, c) { var h, u = o("shape"),
                        d = u.style,
                        g = new l(u, a, s),
                        p = c || { fill: "none", stroke: "#000" },
                        f = r; return d.cssText = "position:absolute;left:0;top:0;width:21600px;height:21600px;", f = n(f), isNaN(f) ? u.coordsize = "21600 21600" : (g._.bzoom = f, d.width = "1px", d.height = "1px", u.coordsize = g._.bcoord = f + " " + f), u.coordorigin = a.coordorigin, g.type = "litepath", g.id = u.raphaelid = e._oid++, u.raphael = !0, g._transform = g.transform, g.transform = i, e._setFillAndStroke(g, p), (s || a).canvas.appendChild(u), (h = o("skew")).on = !0, u.appendChild(h), g.skew = h, g }, e._getPath.litepath = function(t) { return e.parsePathString(t.node.path || "") });
                e.fn.litepath = function(t, i, n) { var o, r, s, c = t,
                        h = i,
                        u = n; return "object" == typeof c && c.constructor !== l && (o = c, r = (c = c.litepath).zoom, u = c.group), h && h.constructor === l ? (u = h, r = void 0) : r = h, c && c.constructor === l && (u = c, c = ""), (s = e._engine.litepath(c, this, r, u, o)).ca.litepath = a, c && s.attr("litepath", e.is(c, "array") ? [c] : c), this.__set__ && this.__set__.push(s), this._elementsById[s.id] = s } } },
        589: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = t.setAxisDimention = t.getSpecificyAxisConf = t.getSpecificxAxisConf = t._feedAxesRawData = void 0; var n, o, r, l, s = i(a(229)),
                c = i(a(547)),
                h = i(a(590)),
                u = a(215),
                d = i(a(591)),
                g = i(a(334)),
                p = i(a(466)),
                f = Math.max;
            t.setAxisDimention = l, t.getSpecificyAxisConf = r, t.getSpecificxAxisConf = o, t._feedAxesRawData = n; var m = function(e) {
                function t() { var t; return (t = e.call(this) || this).registerFactory("axis", h["default"], ["canvas"]), t.registerFactory("dataset", d["default"], ["vCanvas"]), t }(0, s["default"])(t, e), t.getName = function() { return "MSDyBaseCartesian" }; var a = t.prototype; return a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.config.syncaxislimits = 0 }, a._feedAxesRawData = function() { var e, t, a, i, n, o, r, l, s, c = this.config,
                        h = this.getFromEnv("color-manager"),
                        d = this.getFromEnv("dataSource"),
                        p = this.getFromEnv("chart-attrib"),
                        f = this.config.is3D,
                        m = f ? u.chartPaletteStr.chart3D : u.chartPaletteStr.chart2D,
                        v = c.primaryAxisOnleft = (0, u.pluckNumber)(p.primaryaxisonleft, 1),
                        b = (0, u.pluckNumber)(p.syncaxislimits, 0),
                        x = [{ line: [] }],
                        y = [{ line: [] }],
                        C = d.trendlines || [],
                        k = (0, u.pluckNumber)(p.showzeroplane, 1),
                        S = (0, u.pluckNumber)(p.showzeroplanevalue); for (k || S !== u.UNDEF || (S = 0), e = this.getSpecificxAxisConf(), t = this.getSpecificyAxisConf(), a = { isActive: !1, isPercent: this.isPercentage, axisIndex: 1, uniqueClassName: 1, outCanfontFamily: (0, u.pluck)(p.outcnvbasefont, p.basefont, "Verdana,sans"), outCanfontSize: (0, u.pluckFontSize)(p.outcnvbasefontsize, p.basefontsize, 10), outCancolor: (0, u.pluck)(p.outcnvbasefontcolor, p.basefontcolor, h.getColor(m.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"), axisNamePadding: p.yaxisnamepadding, axisValuePadding: p.yaxisvaluespadding, axisNameFont: p.syaxisnamefont, axisNameFontSize: p.syaxisnamefontsize, axisNameFontColor: p.syaxisnamefontcolor, axisNameFontBold: p.syaxisnamefontbold, axisNameFontItalic: p.syaxisnamefontitalic, axisNameBgColor: p.syaxisnamebgcolor, axisNameBorderColor: p.syaxisnamebordercolor, axisNameAlpha: p.syaxisnamealpha, axisNameFontAlpha: p.syaxisnamefontalpha, axisNameBgAlpha: p.syaxisnamebgalpha, axisNameBorderAlpha: p.syaxisnameborderalpha, axisNameBorderPadding: p.syaxisnameborderpadding, axisNameBorderRadius: p.syaxisnameborderradius, axisNameBorderThickness: p.syaxisnameborderthickness, axisNameBorderDashed: p.syaxisnameborderdashed, axisNameBorderDashLen: p.syaxisnameborderdashlen, axisNameBorderDashGap: p.syaxisnameborderdashgap, axisNameWidth: p.syaxisnamewidth, useEllipsesWhenOverflow: p.useellipseswhenoverflow, rotateAxisName: (0, u.pluckNumber)(p.rotateyaxisname, 1), axisName: p.syaxisname, divLineColor: (0, u.pluck)(p.divlinecolor, h.getColor(m.divLineColor)), divLineAlpha: (0, u.pluck)(p.divlinealpha, h.getColor("divLineAlpha")), divLineThickness: (0, u.pluckNumber)(p.divlinethickness, 1), divLineIsDashed: Boolean((0, u.pluckNumber)(p.divlinedashed, p.divlineisdashed, 0)), divLineDashLen: (0, u.pluckNumber)(p.divlinedashlen, 4), divLineDashGap: (0, u.pluckNumber)(p.divlinedashgap, 2), showAlternateGridColor: (0, u.pluckNumber)(p.showalternatehgridcolor, 1), alternateGridColor: (0, u.pluck)(p.alternatehgridcolor, h.getColor("altHGridColor")), alternateGridAlpha: (0, u.pluck)(p.alternatehgridalpha, h.getColor("altHGridAlpha")), numDivLines: p.numdivlines, axisMinValue: b ? (0, u.pluckNumber)(p.syaxisminvalue, p.pyaxisminvalue, p.yaxisminvalue) : p.syaxisminvalue, axisMaxValue: b ? (0, u.pluckNumber)(p.syaxismaxvalue, p.pyaxismaxvalue, p.yaxismaxvalue) : p.syaxismaxvalue, setAdaptiveMin: p.setadaptivesymin || p.setadaptiveymin, adjustDiv: p.adjustdiv, labelStep: p.yaxisvaluesstep, showAxisValues: (0, u.pluckNumber)(p.showsyaxisvalues, p.showsyaxisvalue, p.showyaxisvalues, p.showyaxisvalue), showLimits: (0, u.pluckNumber)(p.showsecondarylimits, p.showyaxislimits, p.showlimits), showDivLineValues: (0, u.pluckNumber)(p.showdivlinesecondaryvalue, p.showyaxisvalues, p.showyaxisvalue, 1), showZeroPlane: k, zeroPlaneColor: p.zeroplanecolor, zeroPlaneThickness: (0, u.pluckNumber)(p.zeroplanethickness, p.divlinethickness, 2), zeroPlaneAlpha: p.zeroplanealpha, showZeroPlaneValue: S, trendlineColor: p.trendlinecolor, trendlineToolText: p.trendlinetooltext, trendlineThickness: p.trendlinethickness, trendlineAlpha: p.trendlinealpha, showTrendlinesOnTop: p.showtrendlinesontop, showAxisLine: f ? 0 : (0, u.pluckNumber)(p.showsyaxisline, p.showaxislines, p.drawAxisLines, 0), axisLineThickness: (0, u.pluckNumber)(p.syaxislinethickness, p.axislinethickness, 1), axisLineAlpha: (0, u.pluckNumber)(p.syaxislinealpha, p.axislinealpha, 100), axisLineColor: (0, u.pluck)(p.syaxislinecolor, p.axislinecolor, "#000000"), labelFont: p.yaxisvaluefont, labelFontSize: p.yaxisvaluefontsize, labelFontColor: p.yaxisvaluefontcolor, labelAlpha: p.yaxisvaluealpha, labelFontBold: p.yaxisvaluefontbold, labelFontItalic: p.yaxisvaluefontitalic, labelBdrColor: p.yaxisvaluebordercolor, labelBdrAlpha: p.yaxisvalueborderalpha, labelBgAlpha: p.yaxisvaluebgalpha, labelLink: p.yaxisvaluelink, labelBgColor: p.yaxisvaluebgcolor, labelBdrThickness: p.yaxisvalueborderthickness, labelBdrPadding: p.yaxisvalueborderpadding, labelBdrRadius: p.yaxisvalueborderradius, labelBdrDashed: p.yaxisvalueborderdashed, labelBdrDashLen: p.yaxisvalueborderdashlen, labelBdrDashGap: p.yaxisvalueborderdashgap }, e.vtrendlines = (0, u.extend2)([], d.vtrendlines), l = 0, r = C.length; l < r; l++)
                        for (o = (i = C[l] && C[l].line || []).length, s = 0; s < o; s++) n = i[s] || {}, (0, g["default"])(n.parentyaxis, "s") ? x[0].line.push(n) : y[0].line.push(n); return t.trendlines = (0, u.extend2)([], y), a.trendlines = (0, u.extend2)([], x), 1 === v ? (t.isVertical = !0, t.isReverse = !0, t.isOpposit = !1, a.isVertical = !0, a.isReverse = !0, a.isOpposit = !0) : (t.isVertical = !0, t.isReverse = !0, t.isOpposit = !0, a.isVertical = !0, a.isReverse = !0, a.isOpposit = !1), { yAxisConf: [t, a], xAxisConf: [e] } }, a.getSpecificxAxisConf = function() { var e = this.getFromEnv("chart-attrib"),
                        t = this.config.is3D,
                        a = this.getBasexAxisConf(),
                        i = this.config; return a.zeroPlaneThickness = (0, u.pluckNumber)(e.vzeroplanethickness, e.vdivlinethickness, 2), a.zeroPlaneAlpha = (0, u.pluckNumber)(e.vzeroplanealpha, e.vdivlinealpha, i.zeroplanealpha), a.showZeroPlaneValue = e.showvzeroplanevalue, a.showAxisLine = t ? 0 : (0, u.pluckNumber)(e.showxaxisline, e.showaxislines, e.drawAxisLines, 0), a.axisLineColor = (0, u.pluck)(e.xaxislinecolor, e.axislinecolor, "#000000"), a.isReverse = !1, a.showAlternateGridColor = (0, u.pluckNumber)(e.showalternatevgridcolor, 0), a.numDivLines = e.numvdivlines, a.maxLabelHeight = e.maxlabelheight, a.axisName = e.xaxisname, a.setAdaptiveMin = e.setadaptivexmin, a.showLimits = e.showvlimits, a.showDivLineValues = (0, u.pluckNumber)(e.showvdivlinevalues, e.showvdivlinevalues), a }, a.getSpecificyAxisConf = function() { var e = this.getFromEnv("chart-attrib"),
                        t = this.config.is3D,
                        a = t ? u.chartPaletteStr.chart3D : u.chartPaletteStr.chart2D,
                        i = this.config,
                        n = this.getFromEnv("color-manager"),
                        o = (0, u.pluckNumber)(e.syncaxislimits, 0),
                        r = (0, u.pluckNumber)(e.showzeroplane, 1),
                        l = (0, u.pluckNumber)(e.showzeroplanevalue); return r || l !== u.UNDEF || (l = 0), { outCanfontFamily: (0, u.pluck)(e.outcnvbasefont, e.basefont, "Verdana,sans"), outCanfontSize: (0, u.pluckFontSize)(e.outcnvbasefontsize, e.basefontsize, 10), outCancolor: (0, u.pluck)(e.outcnvbasefontcolor, e.basefontcolor, n.getColor(a.baseFontColor)).replace(/^#? ([a-f0-9]+)/gi, "#$1"), axisNamePadding: (0, u.pluckNumber)(e.pyaxisnamepadding, e.yaxisnamepadding), axisValuePadding: (0, u.pluckNumber)(e.pyaxisvaluespadding, e.yaxisvaluespadding), axisNameFont: (0, u.pluck)(e.pyaxisnamefont, e.yaxisnamefont), axisNameFontSize: (0, u.pluckNumber)(e.pyaxisnamefontsize, e.yaxisnamefontsize), axisNameFontColor: (0, u.pluck)(e.pyaxisnamefontcolor, e.yaxisnamefontcolor), axisNameFontBold: (0, u.pluckNumber)(e.pyaxisnamefontbold, e.yaxisnamefontbold), axisNameFontItalic: (0, u.pluckNumber)(e.pyaxisnamefontitalic, e.yaxisnamefontitalic), axisNameBgColor: (0, u.pluck)(e.pyaxisnamebgcolor, e.yaxisnamebgcolor), axisNameBorderColor: (0, u.pluck)(e.pyaxisnamebordercolor, e.yaxisnamebordercolor), axisNameAlpha: (0, u.pluckNumber)(e.pyaxisnamealpha, e.yaxisnamealpha), axisNameFontAlpha: (0, u.pluckNumber)(e.pyaxisnamefontalpha, e.yaxisnamefontalpha), axisNameBgAlpha: (0, u.pluckNumber)(e.pyaxisnamebgalpha, e.yaxisnamebgalpha), axisNameBorderAlpha: (0, u.pluckNumber)(e.pyaxisnameborderalpha, e.yaxisnameborderalpha), axisNameBorderPadding: (0, u.pluckNumber)(e.pyaxisnameborderpadding, e.yaxisnameborderpadding), axisNameBorderRadius: (0, u.pluckNumber)(e.pyaxisnameborderradius, e.yaxisnameborderradius), axisNameBorderThickness: (0, u.pluckNumber)(e.pyaxisnameborderthickness, e.yaxisnameborderthickness), axisNameBorderDashed: (0, u.pluckNumber)(e.pyaxisnameborderdashed, e.yaxisnameborderdashed), axisNameBorderDashLen: (0, u.pluckNumber)(e.pyaxisnameborderdashlen, e.yaxisnameborderdashlen), axisNameBorderDashGap: (0, u.pluckNumber)(e.pyaxisnameborderdashgap, e.yaxisnameborderdashgap), axisNameWidth: (0, u.pluckNumber)(e.pyaxisnamewidth, e.yaxisnamewidth), useEllipsesWhenOverflow: e.useellipseswhenoverflow, rotateAxisName: (0, u.pluckNumber)(e.rotateyaxisname, 1), axisName: (0, u.pluck)(e.pyaxisname, e.yaxisname), divLineColor: (0, u.pluck)(e.divlinecolor, n.getColor(a.divLineColor)), divLineAlpha: (0, u.pluck)(e.divlinealpha, n.getColor("divLineAlpha")), divLineThickness: (0, u.pluckNumber)(e.divlinethickness, 1), divLineIsDashed: Boolean((0, u.pluckNumber)(e.divlinedashed, e.divlineisdashed, 0)), divLineDashLen: (0, u.pluckNumber)(e.divlinedashlen, 4), divLineDashGap: (0, u.pluckNumber)(e.divlinedashgap, 2), showAlternateGridColor: (0, u.pluckNumber)(e.showalternatehgridcolor, 1), alternateGridColor: (0, u.pluck)(e.alternatehgridcolor, n.getColor("altHGridColor")), alternateGridAlpha: (0, u.pluck)(e.alternatehgridalpha, n.getColor("altHGridAlpha")), numDivLines: e.numdivlines, axisMinValue: o ? (0, u.pluckNumber)(e.syaxisminvalue, e.pyaxisminvalue, e.yaxisminvalue) : (0, u.pluckNumber)(e.pyaxisminvalue, e.yaxisminvalue), axisMaxValue: o ? (0, u.pluckNumber)(e.syaxismaxvalue, e.pyaxismaxvalue, e.yaxismaxvalue) : (0, u.pluckNumber)(e.pyaxismaxvalue, e.yaxismaxvalue), setAdaptiveMin: e.setadaptiveymin, adjustDiv: e.adjustdiv, labelStep: e.yaxisvaluesstep, showAxisValues: (0, u.pluckNumber)(e.showyaxisvalues, e.showyaxisvalue), showLimits: (0, u.pluckNumber)(e.showyaxislimits, e.showlimits, this.showLimits), showDivLineValues: (0, u.pluckNumber)(e.showdivlinevalues, e.showdivlinevalue), showZeroPlane: r, zeroPlaneColor: e.zeroplanecolor, zeroPlaneThickness: (0, u.pluckNumber)(e.zeroplanethickness, e.divlinethickness, i.zeroplanethickness, 2), zeroPlaneAlpha: (0, u.pluckNumber)(e.zeroplanealpha, e.divlinealpha, i.zeroplanealpha), showZeroPlaneValue: l, showZeroPlaneOnTop: i.showzeroplaneontop, trendlineColor: e.trendlinecolor, trendlineToolText: e.trendlinetooltext, trendlineThickness: e.trendlinethickness, trendlineAlpha: e.trendlinealpha, showTrendlinesOnTop: e.showtrendlinesontop, showAxisLine: t ? 0 : (0, u.pluckNumber)(e.showyaxisline, e.showaxislines, e.drawAxisLines, 0), axisLineThickness: (0, u.pluckNumber)(e.yaxislinethickness, e.axislinethickness, 1), axisLineAlpha: (0, u.pluckNumber)(e.yaxislinealpha, e.axislinealpha, 100), axisLineColor: (0, u.pluck)(e.yaxislinecolor, e.axislinecolor, "#000000"), forceTrendBelow: !!i.is3D, labelFont: e.yaxisvaluefont, labelFontSize: e.yaxisvaluefontsize, labelFontColor: e.yaxisvaluefontcolor, labelAlpha: e.yaxisvaluealpha, labelFontBold: e.yaxisvaluefontbold, labelFontItalic: e.yaxisvaluefontitalic, labelBdrColor: e.yaxisvaluebordercolor, labelBgAlpha: e.yaxisvaluebgalpha, labelBdrAlpha: e.yaxisvalueborderalpha, labelLink: e.yaxisvaluelink, labelBgColor: e.yaxisvaluebgcolor, labelBdrThickness: e.yaxisvalueborderthickness, labelBdrPadding: e.yaxisvalueborderpadding, labelBdrRadius: e.yaxisvalueborderradius, labelBdrDashed: e.yaxisvalueborderdashed, labelBdrDashLen: e.yaxisvalueborderdashlen, labelBdrDashGap: e.yaxisvalueborderdashgap } }, a.setAxisDimention = function() { var e, t, a = this.config,
                        i = this.getChildren(),
                        n = this.getChildren("scrollBar") && this.getChildren("scrollBar")[0] && this.getChildren("scrollBar")[0].config,
                        o = i.yAxis,
                        r = i.xAxis && i.xAxis[0],
                        l = o[0],
                        s = o[1],
                        c = a.xDepth || 0,
                        h = i.canvas[0].config,
                        u = h.canvasBorderWidth,
                        d = h.canvasPadding,
                        g = h.canvasPaddingLeft,
                        p = h.canvasPaddingRight,
                        m = h.canvasPaddingTop,
                        v = this && this.isScrollEnabled(),
                        b = a.shift && (a.is3D || v && +n.isOpposite === r.config.isOpposit) ? a.shift : 0,
                        x = a.sumValueSpace && a.sumValueSpace.top || 0,
                        y = a.primaryAxisOnleft,
                        C = h.canvasPaddingBottom,
                        k = f(g, d);
                    r && r.setAxisDimention({ x: a.canvasLeft + c + k, y: r.config.isOpposit ? a.canvasTop - u - (a.is3D ? 0 : b) - x : a.canvasBottom + b + u, opposite: r.config.isOpposit ? a.canvasBottom + b + u : a.canvasTop - u, axisLength: a.canvasWidth - c - k - f(p, d) }), y ? (a.yAxisStartXPos = a.canvasLeft - u, a.sYAxisStartXPos = a.canvasRight + u) : (a.yAxisStartXPos = a.canvasRight + u, a.sYAxisStartXPos = a.canvasLeft - u), e = a.yAxisStartXPos, t = a.sYAxisStartXPos, l && l.setAxisDimention({ x: e, y: a.canvasTop + m, opposite: t, axisLength: a.canvasHeight - m - C }), s && s.setAxisDimention({ x: t, y: a.canvasTop + m, opposite: e, axisLength: a.canvasHeight - m - C }) }, a._manageYAxisSpace = function() { var e, t, a, i = this.config,
                        n = this.getChildren("yAxis"),
                        o = [],
                        r = 0; for (t = 0; t < (n && n.length); t++) a = (e = n[t]) && e.placeAxis(.7 * (i.availableWidth - r)) || {}, 0 === t && (r = a.left), o.push({ axisIndex: t, spaceTaken: a });
                    n && n[0] && this._allocateSpace({ left: (0, p["default"])(o, (function(e) { return e.spaceTaken.left })), right: (0, p["default"])(o, (function(e) { return e.spaceTaken.right })) }), i.yAxisSpaceAllocation = o }, t }(c["default"]);
            t._feedAxesRawData = n = m.prototype._feedAxesRawData, t.getSpecificxAxisConf = o = m.prototype.getSpecificxAxisConf, t.getSpecificyAxisConf = r = m.prototype.getSpecificyAxisConf, t.setAxisDimention = l = m.prototype.setAxisDimention; var v = m;
            t["default"] = v },
        590: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t, a, i, l = e.getChildren("canvas")[0],
                    s = function(e, t) { return JSON.stringify(e) !== JSON.stringify(t) },
                    c = { zoomable: !0, pannable: !0 },
                    h = !!Number(e.config.syncaxislimits),
                    u = l.getChildren("axisRefVisualCartesian")[0],
                    d = e._feedAxesRawData(),
                    g = function(e) { var t = e.sender;
                        u.addexplicitDrawItems(t.getId(), t), u.asyncDraw() };
                (0, n.componentFactory)(e, r["default"], "xAxis", 1, d.xAxisConf), (0, n.componentFactory)(e, o["default"], "yAxis", 2, d.yAxisConf), t = e.getChildren(), a = t.xAxis[0], (i = t.yAxis).forEach((function(t) { t.setLinkedItem("canvas", l), u.setLinkedItem(t.getId(), t), u.addExtEventListener("visiblerangeset", g, t), l.attachAxis(t, !0, e.zoomY ? c : {}) })), a.setLinkedItem("canvas", l), u.setLinkedItem(a.getId(), a), i[1].setAxisConfig({ dependentInfo: { id: i[0].getId(), count: !0, limit: h } }), i[1].getState("divlineEventAdded") || (i[1].addExtEventListener("divlinesSet", (function(e) { var t = i[1].config.dependentInfo;
                    e.sender.getId() === t.id && (t.numDivLines = e.data) }), i[0]), i[1].setState("divlineEventAdded", !0));
                h && (i[1].getState("dataLimitEventAdded") || (i[1].addExtEventListener("dataLimitSet", (function(e) { var t = i[1].config.dependentInfo;
                    e.sender.getId() === t.id && s(t.dataLimit, e.data) && (t.dataLimit = e.data, i[1].config.isDataLimitSet && i[1].setDataLimit()) }), i[0]), i[1].setState("dataLimitEventAdded", !0)), i[0].setAxisConfig({ dependentInfo: { id: i[1].getId(), limit: !0 } }), i[0].getState("dataLimitEventAdded") || (i[0].addExtEventListener("dataLimitSet", (function(e) { var t = i[0].config.dependentInfo;
                    e.sender.getId() === t.id && s(t.dataLimit, e.data) && (t.dataLimit = e.data, i[0].setDataLimit()) }), i[1]), i[0].setState("dataLimitEventAdded", !0)));
                u.addExtEventListener("visiblerangeset", g, a), l.attachAxis(a, !1, e.zoomX ? c : {}), e._setCategories() }; var n = a(215),
                o = i(a(463)),
                r = i(a(510)) },
        591: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = function(e) { var t, a, o, r, l, s, c, h, u, d, g = e.getFromEnv("dataSource").dataset,
                    p = e.getChildren().canvas[0].getChildren("vCanvas"),
                    f = p[0],
                    m = p[1],
                    v = e.getFromEnv("chartConfig").isdual,
                    b = { vCanvasDatasetsDef0: {}, vCanvasDatasetsDef1: {} },
                    x = { vCanvas0: {}, vCanvas1: {} };
                g || e.setChartMessage(); for (a = 0; a < g.length; a++) t = g[a], "s" === (h = t.parentyaxis || "").toLowerCase() && v ? (c = (0, i.pluck)(t.renderas, e.config.sDefaultDatasetType), u = m, d = x.vCanvas1, r = b.vCanvasDatasetsDef1) : (c = (0, i.pluck)(t.renderas, e.config.defaultDatasetType), u = f, d = x.vCanvas0, r = b.vCanvasDatasetsDef0), c = e.getDSType(c, "s" === h.toLowerCase()), (s = e.getDSGroupdef(c, "s" === h.toLowerCase())) && ((0, i.componentFactory)(u, s, "multiseriesColumnManager"), d[s.getName().toLowerCase()] = !0), d[c.toLowerCase()] = !0, r[c] ? (r[c].conf.push(t), r[c].indices.push(a)) : (r[c] = {}, r[c].indices = [a], r[c].classDef = e.getDSdef(c), r[c].conf = [t], r[c].pYAxis = h.toLowerCase(), r[c].parent = s ? u.getChildren("multiseriesColumnManager")[0] : u); for (var y in e.config._hascolumn = !1, b)
                    if (b.hasOwnProperty(y))
                        for (c in r = b[y]) r.hasOwnProperty(c) && ("group" === (l = r[c]).parent.getType() && l.parent.configure(l.conf), (0, i.datasetFactory)(l.parent, l.classDef, "dataset_" + c, l.conf.length, l.conf, l.indices), "column" === c && (e.config._hascolumn = !0));
                (o = e.getDatasets()).sort((function(e, t) { var a = e.getName(),
                        i = t.getName(),
                        n = { line: 1, area: 2, column: 3 }; return n[a] > n[i] ? -1 : n[a] < n[i] ? 1 : 0 })), e.config.datasetOrder = o, (0, n.removeComponents)(p[0], Object.keys(x.vCanvas0)), (0, n.removeComponents)(p[1], Object.keys(x.vCanvas1)) }; var i = a(215),
                n = a(592) },
        592: function(e, t, a) { "use strict";
            t.__esModule = !0, t.removeComponents = void 0;
            t.removeComponents = function(e, t) { e && e.iterateComponents((function(e) {-1 !== t.indexOf(e.getName().toLowerCase()) || e.getLinkedParent().getState("removed") || e.remove() })) } },
        604: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(538)),
                r = a(215),
                l = i(a(605)),
                s = a(223),
                c = a(606),
                h = i(a(607)),
                u = r.preDefStr.setRolloverAttrStr,
                d = r.preDefStr.setRolloutAttrStr;
            (0, s.addDep)({ name: "mssplineareaAnimation", type: "animationRule", extension: h["default"] }); var g = function(e) {
                function t() { var t; return (t = e.call(this) || this).drawCommonElements = r.stubFN, t }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "dataset" }, a.configureAttributes = function(t) { e.prototype.configureAttributes && e.prototype.configureAttributes.call(this, t), l["default"].call(this) }, a.getDataLimits = function() { return { max: this.config.maxValue, min: this.config.minValue } }, a.drawPlots = function() { var e, t, a, i, n, o, l, s, h, g, p, f, m, v, b, x, y, C, k, S, w, L, A, N, E, T = this.config,
                        F = this.getFromEnv("chart"),
                        _ = F.config,
                        P = this.getFromEnv("xAxis"),
                        D = null,
                        I = [],
                        M = this.components.data,
                        O = _.connectnulldata,
                        R = _.minimizetendency,
                        B = T.plotBorderDashStyle,
                        V = T.plotborderthickness,
                        G = this.getContainer(),
                        z = [],
                        H = this.getGraphicalElement("splineElement"),
                        W = T.fillColor,
                        j = this.components.removeDataArr || [],
                        U = j.length,
                        q = G && G.shadowGroup,
                        Y = T.shadow,
                        X = this.getState("visible"),
                        K = {},
                        Z = !_.drawfullareaborder,
                        J = T.plotborderColorObject,
                        $ = this.getGraphicalElement("connector"),
                        Q = this.getFromEnv("animationManager"),
                        ee = T._oldStartIndex,
                        te = T._oldEndIndex,
                        ae = this.config.JSONData.renderas || F.config.defaultDatasetType,
                        ie = /area/gi.test(ae); for (T.imagesLoaded = 0, M || (M = this.components.data), e = P.getTicksLen(), N = T.scrollMinVal, E = T.scrollMaxVal, N > ee && this.flushOnScroll(ee, N > te ? te : N), E < te && this.flushOnScroll(E < ee ? ee : E, te), T._oldStartIndex = N, T._oldEndIndex = E, t = N; t < E; t++)(h = M[t]) && (f = (s = h && h.config).setValue, k = (K = s.anchorProps).shadow, g = h.graphics.element, p = h.graphics.hotElement, w = h.graphics.image, null === f ? (g && g.hide(), p && p.hide(), w && w.hide(), O || (D = null)) : (n = s._Py, i = s._Px, !1 === X && (n = s._Pby), I.push({ x: i, y: n, lastXPos: o, lastYPos: D }), o = i, D = n, b = K.anchorAlpha, C = K.radius && b, v = s.hoverEffects, y = g ? X && C ? "updating" : "disappearing" : "appearing", K.imageUrl ? this.drawAnchorImage(h) : (x = Object.assign({}, s.props.element.attr), "disappearing" !== y && X || (x = r.UNDEF), g = h.graphics.element = Q.setAnimation({ el: g || "path", attr: x, container: G.plotGroup, component: this, label: "anchor" }), w && w.hide(), g && g.show().shadow(k, G.anchorShadowGroup).data("anchorRadius", K.radius).data("anchorHoverRadius", v.anchorRadius).data("eventArgs", s.eventArgs), v.enabled && g && g.data("anchorRadius", K.radius).data("anchorHoverRadius", v.anchorRadius).data("hoverEnabled", v.enabled).data(u, v.attrs.setRolloverAttr).data(d, v.attrs.setRolloutAttr)))); for (a = e, L = { path: z = (z = (l = (0, c.getSplinePath)(I, s && s._Pby, R, ie, a)).closedPath).join(), stroke: (0, r.toRaphaelColor)(J), "stroke-width": Z ? 0 : V, fill: (0, r.toRaphaelColor)(W), "stroke-linecap": "round", "stroke-linejoin": V > 2 ? "round" : "miter", "stroke-dasharray": B }, this.getState("visible") || (L = r.UNDEF), !(m = Q.setAnimation({ el: H || "path", attr: L, container: G.commonElemsGroup, component: this, label: "line" })) && H && this.removeGraphicalElement(H), H || this.addGraphicalElement("splineElement", m), "" !== z && this.getState("visible") ? m.show().shadow(Y, q) : m && m.hide(), Z ? (A = { path: l.openPath.join(), stroke: (0, r.toRaphaelColor)(J), "stroke-width": V, "stroke-linecap": "round", "stroke-linejoin": V > 2 ? "round" : "miter", "stroke-dasharray": B, name: "connector" }, S = Q.setAnimation({ el: $ || "path", attr: A, container: G.commonElemsGroup, state: $ ? this.getState("visible") ? "updating" : "disappearing" : "appearing", component: this, label: "connectorLine" }), $ || this.addGraphicalElement("connector", S)) : S && this.removeGraphicalElement(S), t = 0; t < U; t++) this._removeDataVisuals(j.shift()) }, a.getName = function() { return "splinearea" }, t }(o["default"]);
            t["default"] = g },
        605: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = a(215),
                n = function(e, t, a) { var i, n, r, l, s = {}; for (n = 0; n < e.length; ++n) s["D" + e[n].index] = 0; for (i = 0; i < 10; ++i)
                        for (n = 0; n < e.length; ++n) r = 0 === n ? (3 * (e[n + 1].y - e[n].y) - s["D" + e[n + 1].index]) / 2 : n === e.length - 1 ? (3 * (e[n].y - e[n - 1].y) - s["D" + e[n - 1].index]) / 2 : (3 * (e[n + 1].y - e[n - 1].y) - s["D" + e[n + 1].index] - s["D" + e[n - 1].index]) / 4, s["D" + e[n].index] = r; for (l = Math.round(t / (e.length - 1)), n = 1; n < e.length; ++n) o(n, e, s, a, l) },
                o = function(e, t, a, i, n) { var o, r, l, s, c, h, u, d, g, p, f, m, v = t,
                        b = e; for (o = a["D" + v[0].index], r = a["D" + v[b].index], l = v[0].y, s = o, c = 3 * (v[b].y - v[0].y) - 2 * o - r, h = 2 * (v[0].y - v[b].y) + o + r, u = i.max, d = i.min, g = 0, p = n; g <= p; g++)(m = l + s * (f = g / p) + c * f * f + h * f * f * f) < d && (d = m), m > u && (u = m);
                    i.max = u, i.min = d },
                r = function() { var e, t = this.config,
                        a = this.getFromEnv("chart"),
                        o = this.getFromEnv("chartConfig"),
                        r = a.config.origRenderWidth,
                        l = o.connectnulldata,
                        s = o.minimizetendency,
                        c = this.components.data,
                        h = Number.MIN_VALUE,
                        u = Number.MAX_VALUE;
                    0 === s && (e = function d(e, t, a, i, o) { var r = [],
                            l = !1,
                            s = i || 0,
                            c = o; for (c = c || { max: Number.MIN_VALUE, min: Number.MAX_VALUE }; s < e.length; ++s)
                            if (l) { if (isNaN(e[s].config.setValue) || null === e[s].config.setValue) { if (a) continue; break } r.push({ index: s, y: e[s].config.setValue }) } else { if (isNaN(e[s].config.setValue) || null === e[s].config.setValue) continue;
                                l = !0, r.push({ index: s, y: e[s].config.setValue }) } return r.length > 2 && n(r, t, c), s < e.length && !a && d(e, t, a, s, c), c }(c, r, l), t.maxValue = Math.max(t.maxValue, e.max), t.minValue = Math.min(t.minValue, e.min), t.maxValue === h && (t.maxValue = i.UNDEF), t.minValue === u && (t.minValue = i.UNDEF)) };
            t["default"] = r },
        606: function(e, t, a) { "use strict";
            t.__esModule = !0, t.getSplinePath = function(e, t, a, r, l) { var s, p, f, m, v, b, x, y, C, k, S, w, L, A, N, E, T, F, _, P, D, I, M, O, R, B, V = a,
                    G = [null],
                    z = [],
                    H = []; for (R = 0, B = e.length; R < B; R += 1) L = e[R], M = e[R - 1] || {}, O = e[R + 1] || {}, b = L.x, f = L.y, x = M.x, m = M.y, y = O.x, v = O.y, C = L.lastYPos, k = L.lastXPos, _ = z.length, S = H.length, V ? null !== C ? (p = D, R === e.length - 1 ? (F = G[R - P - 1], T = h(E = A = (b + x) / 2, F, x, m), (m > f && T < f || m < f && T > f) && (E = u(T = f, F, x, m)), D.push(E, T, A, (f + m) / 2, b, f), z.push(D), H.push(D), r && g(z, !0, I, t), r && g(H, !1)) : (F = G[R - P - 1], m > f && v >= f || m < f && v <= f ? (w = 0, A = d(x, m, b, f), N = f, R - P != 1 ? (T = h(E = A, F, x, m), (m > f && T < f || m < f && T > f) && (E = u(T = f, F, x, m)), D.push(E, T, A, N, b, f)) : D.push((b + x) / 2, (f + m) / 2, A, N, b, f)) : m === f ? (w = 0, D.push(x, m, b, f, b, f)) : (m > f && f > v || m < f && f < v) && (w = c(x, m, y, v), A = d(x, m, b, f), N = h(A, w, b, f), (m > f && N > m || m < f && N < m) && (A = u(N = m, w, b, f)), R - P != 1 ? (T = h(E = A, F, x, m), (m > f && T < f || m < f && T > f) && (E = u(T = f, F, x, m)), D.push(E, T, A, N, b, f)) : D.push((b + x) / 2, (f + m) / 2, A, N, b, f)), G.push(w))) : null === C && 0 !== R ? (p || (p = []), p[0] === o && (z.push(D), H.push(D), r && g(z, !0, I, t), r && g(H, !1)), z.push([i, b, f]), H.push([i, b, f]), I = b, D = [o], P = R, G = [null]) : (z.push([i, b, f]), H.push([i, b, f]), I = b, D = [o], P = R) : null !== C ? _ >= 2 ? (z[_ - 1][0] === i && z.push([n]), H[S - 1][0] === i && H.push([n]), _ = z.length, S = H.length, p = z[_ - 1], s = p.length, z[_ - 1].push(b), z[_ - 1].push(f), H[S - 1].push(b), H[S - 1].push(f), R === l - 1 && p[0] === n && (g(z, !0, I, t), g(H, !1))) : (z.push([i, k, C]), z.push([n, b, f]), H.push([i, k, C]), H.push([n, b, f]), I = k) : null === C && _ >= 2 && ((p = z[_ - 1])[0] === n && (g(z, !0, I, t), g(H, !1)), z.push([i, b, f]), H.push([i, b, f]), I = b);
                p = z[z.length - 1], r && p && (s = p.length, "Z" === p[s - 1] || p[0] !== n && p[0] !== o || (g(z, !0, I, t), g(H, !1)));
                r || (z = V ? z : H).length >= 2 && g(z, !1); return { closedPath: z, openPath: H } }; var i = "M",
                n = "R",
                o = "C",
                r = Math,
                l = r.sqrt,
                s = r.abs,
                c = function(e, t, a, i) { return (i - t) / (a - e) },
                h = function(e, t, a, i) { return (e - a) * t + i },
                u = function(e, t, a, i) { return (e - i) / t + a },
                d = function(e, t, a, i) { var n = (i - t) / l((a - e) * (a - e) + (i - t) * (i - t)),
                        o = s(.5 * n); return e * o + a * (1 - o) },
                g = function(e, t, a, i) { var r = e.length,
                        l = e[r - 1],
                        s = l.length,
                        c = l[0],
                        h = l[s - 2];
                    s < 3 || (c !== n && c !== o || 3 !== s || (e[r - 1][0] = "L"), t && e.push(["L", h, i, a, i, "Z"])) } },
        607: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = a(215);

            function n(e) { var t, a, n, o = e.length,
                    r = [],
                    l = !1,
                    s = !0; for (n = 0; n < o; ++n) t = e[n], s ? (r.push(t), a = (0, i.extend2)([], t), s = !1) : "Z" !== t ? l || (r.push(t), t.toString() === e[n - 1].toString() && (l = !0)) : (s = !0, l = !1, a[0] = "L", r.push(a, "Z")); return r }

            function o(e) { var t = e.component,
                    a = t.components.data,
                    i = t.getLinePath(a, null, "zero"),
                    n = i.getPathArr().slice(0, i.getPathArr().length / 2),
                    o = e.attr; return [{ initialAttr: { opacity: 0, path: n }, finalAttr: { opacity: 1, path: o && o.path }, startEnd: { start: 0, end: .5 }, slot: "plot", hookFn: function() { this.attr({ opacity: 1 }) } }] }

            function r(e) { return "label-group" === e.attr.name ? [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }] : "plot-group" === e.attr.name ? [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, startEnd: { start: .5, end: 1 }, slot: "plot" }] : [{ initialAttr: { opacity: 1 }, finalAttr: { opacity: 1 }, slot: "final" }] }

            function l() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }] }

            function s(e) { var t = e.component,
                    a = t.components.data,
                    i = t.getLinePath(a, null, "zero"),
                    o = e.attr; return [{ initialAttr: { opacity: 0, path: n(i.getPathArr()) }, finalAttr: { opacity: 1, path: o && o.path }, startEnd: { start: 0, end: .5 }, slot: "plot", hookFn: function() { this.attr({ opacity: 1 }) } }] } var c = { "*.dataset.splinearea": function() { return { "anchor.appearing": [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, startEnd: { start: .5, end: 1 }, slot: "plot" }], "anchor.updating": [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }], "anchor.disappearing": [{ finalAttr: { opacity: 0, "fill-opacity": 0, "stroke-opacity": 0 }, slot: "final" }], "line.appearing": s, "label.appearing": [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }], "label.updating": l, "group.appearing": r, "connectorLine.appearing": o } } };
            t["default"] = c },
        608: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(537)),
                r = a(215),
                l = i(a(605)),
                s = a(223),
                c = a(606),
                h = i(a(609));
            (0, s.addDep)({ name: "mssplineAnimation", type: "animationRule", extension: h["default"] }); var u = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "dataset" }, a.getName = function() { return "spline" }, a.configureAttributes = function(t) { e.prototype.configureAttributes && e.prototype.configureAttributes.call(this, t), l["default"].call(this) }, a.getDataLimits = function() { return { max: this.config.maxValue, min: this.config.minValue } }, a.drawCommonElements = function() { var e, t, a, i, n, o = this.components.data,
                        l = this.config,
                        s = Number(this.getFromEnv("chartConfig").connectnulldata),
                        h = this.getFromEnv("xAxis"),
                        u = this.getFromEnv("yAxis"),
                        d = l.lineDashStyle,
                        g = l.linethickness,
                        p = [],
                        f = null,
                        m = { color: l.linecolor, alpha: l.alpha },
                        v = { x: h.getLimit(), y: u.getLimit() },
                        b = this.getState("visible") ? o.length : 0,
                        x = l.lineOb || {},
                        y = [],
                        C = this.getFromEnv("chart"),
                        k = /area/gi.test(C.defaultDatasetType); for (v.x.minPixel = h.getPixel(v.x.min), v.x.maxPixel = h.getPixel(v.x.max), v.y.minPixel = u.getPixel(v.y.min), v.y.maxPixel = u.getPixel(v.y.max), v.y.base = u.getPixel(0), v.x.base = h.getPixel(0), t = 0; t < b; ++t)(a = o[t]) && (n = (i = a.config || {}).setValue, i._Pbx = void 0, i._Pby = void 0, y[t] = { config: { _Px: i._Px, _Py: i._Py, setValue: i.setValue } }, null != n ? (p.push({ x: i._Px, y: i._Py, lastYPos: f, lastXPos: e }), f = i._Py, e = i._Px) : s || (f = null));
                    l.pathStartIndex = 0, l.pathEndIndex = void 0, x["default"] = x["default"] || {}, x["default"].used = !0, x["default"].path = [{ pathArr: (0, c.getSplinePath)(p, u.getPixel(u.getAxisBase()), C.config.minimizetendency, k).closedPath, path2Arr: [], getPathArr: function() { var e = this.pathArr,
                                t = this.path2Arr; return e.length || t.length ? e.concat(t) : [] } }], x["default"].attr = { "stroke-dasharray": d, "stroke-width": g, stroke: (0, r.toRaphaelColor)(m), "stroke-linecap": "round" }, this._drawCommonElementsHelper(x), this.config.lineOb = x, l.prevLim = v, l.prevDataStore = y }, t }(o["default"]);
            t["default"] = u },
        609: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = { "*.dataset.spline": i(a(540))["default"]["*.dataset.line"] };
            t["default"] = n },
        610: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(230),
                r = a(215),
                l = Math,
                s = l.min,
                c = l.max,
                h = l.abs,
                u = function(e) {
                    function t() { var t; return (t = e.call(this) || this).setState("visible", !0), t }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "group" }, t.getName = function() { return "columnMultiSeriesgroup" }, a.getName = function() { return "columnMultiSeriesgroup" }, a.preConfigure = function(t) { if (!t) return !1;
                        this.config.JSONData = t, e.prototype.preConfigure.call(this, t) }, a.configure = function(t) { if (!t) return !1;
                        e.prototype.configure.call(this, t) }, a.setVisibility = function() { var e = 0;
                        this._mapChildren((function(e) { e.setVisibility && e.setVisibility() })), this._mapChildren((function(t) { t.getState("visible") && e++ })), this.setState("visible", !!e) }, a.createContainer = function() { var e, t, a = this.getFromEnv("animationManager"),
                            i = this.getLinkedParent().getChildContainer(); for (e in i) t = i[e], !this.getChildContainer(e) && this.addChildContainer(e, a.setAnimation({ el: "group", attr: { name: "manager-" + e }, component: this, container: t })) }, a.allocatePosition = function() { this.setColumnPosition() }, a.draw = function() { this.createContainer() }, a.getCanvasPadding = function() { var e, t, a = { paddingLeft: 0, paddingRight: 0, paddingTop: 0, paddingBottom: 0 }; return this.setColumnPosition(), this._mapChildren((function(i) { for (t in e = !i.getState("removed") && i.getState("visible") && i.getCanvasPadding && i.getCanvasPadding() || {}) e.hasOwnProperty(t) && (a[t] = Math.max(e[t], a[t])) })), a }, a.setColumnPosition = function() { var e, t, a, i, n, o = this.getFromEnv("chartConfig"),
                            l = this.getFromEnv("chart-attrib"),
                            u = this.getFromEnv("xAxis"),
                            d = this.getFromEnv("numOfColumns"),
                            g = o.plotSpacePercent,
                            p = c((0, r.pluckNumber)(g, 20) % 100, 0),
                            f = p / 200,
                            m = u.getPixel(0),
                            v = u.getPixel(1),
                            b = this.getFromEnv("chart").isBar ? o.maxBarHeight : o.maxColWidth,
                            x = h(v - m),
                            y = o.plotPaddingPercent,
                            C = !0,
                            k = o.overlapColumns,
                            S = 0,
                            w = 0;
                        this.addToEnv("groupMaxWidth", x), this._mapChildren((function(e) { e.getState("removed") || !1 === e.getState("visible") || w++ })), this.addToEnv("numOfColumns", w), this.addToEnv("numColDiff", (0, r.pluckNumber)(d - w, 0)), e = (1 - .01 * g) * x || s(x * (1 - 2 * f), b * (w || 1)), void 0 === l.plotspacepercent && e >= o.canvasWidth / 2 && (e = x - b / 2), i = s((t = 0 === w ? e : e / w) - 1, w > 1 ? k || void 0 !== y ? y > 0 ? t * y / 100 : 0 : 4 : 0), this.addToEnv("plotWidth", t - i), a = -(w / 2 * t - t / 2), this._mapChildren((function(e) {!e.getState("removed") && e.getState("visible") && (e.addToEnv("shift", a + S * t + i / 2), S++) })), v - (n = e / 2) - (m - n + e) < 4 && (C = !1), 0 === p && (C = !0), this.addToEnv("isCrisp", C) }, a.childChanged = function(e) { void 0 === e && (e = {}); var t, a, i = this.config,
                            n = this.getLinkedParent(),
                            o = 0,
                            r = this.getState("visible"),
                            l = {};
                        this._mapChildren((function(e) { e.getState("visible") && o++ })), this.setState("visible", !!o), r !== !!o && (a = !0), !1 !== e.dataLimitChanged && ((t = this.getDataLimits()).min === i.range.min && t.max === i.range.max || (i.range.min = t.min, i.range.max = t.max, l.dataLimitChanged = !0, a = !0)), a ? n.childChanged && n.childChanged(l) : this.asyncDraw() }, a.getAxisValuePadding = function() { var e = {},
                            t = -Infinity,
                            a = -Infinity; return this._mapChildren((function(i) { i.getState("removed") || (e = i.getAxisValuePadding && i.getAxisValuePadding() || {}, t = Math.max(t, e.left || -Infinity), a = Math.max(a, e.right || -Infinity)) })), t === -Infinity && (t = 0), a === -Infinity && (a = 0), this.config.padding || (this.config.padding = {}, this.config.padding.left = t, this.config.padding.right = a), { left: t, right: a } }, a.getDataLimits = function(e) { var t, a = +Infinity,
                            i = -Infinity,
                            n = 0,
                            o = function(e) { i = Math.max(i, e.max), a = Math.min(a, e.min) }; return this._mapChildren((function(a) { a.getState("removed") || (!1 !== a.getState("visible") ? (n++, t = a.getDataLimits(e), o(t)) : e && (t = a.getDataLimits(e), o(t))) })), n ? this.setState("visible", !0) : this.setState("visible", !1), this.config.range || (this.config.range = {}, this.config.range.min = this.config.dataMin, this.config.range.max = this.config.dataMax), { max: i, min: a } }, a.isVisible = function() { return !this.isNotVisible }, t }(o.ComponentInterface);
            t["default"] = u },
        611: function(e, t, a) { "use strict";
            t.__esModule = !0, t.scrollTo = function(e) { var t = this.apiInstance;
                t.addJob("scrollToAPoint", (function() { if (e >= 0 && e <= 1) { var a = t.getChildren && t.getChildren(),
                            i = a.xAxis[0],
                            n = a.scrollBar && a.scrollBar[0],
                            o = n && n.getChildren("scrollAnchor")[0],
                            r = i.getLimit && i.getLimit(),
                            l = i.getVisibleConfig && i.getVisibleConfig(),
                            s = l.maxValue - l.minValue,
                            c = r.max - r.min,
                            h = e * (c - s) + r.min,
                            u = h + s,
                            d = (l.minValue - r.min) / (c - s);
                        o.config.scrollPosition = e, t.fireChartInstanceEvent("scrollStart", { scrollPosition: d }), i.setVisibleConfig(h, u), t.fireChartInstanceEvent("scrollEnd", { previousScrollPosition: d, scrollPosition: e }) } }), i.priorityList.postRender) }, t.setAxisScale = function(e) { void 0 === e && (e = "column"); var t, a, i, r, l, s = this.config,
                    c = this.getChildren("xAxis")[0],
                    h = c.getTicksLen(),
                    u = "bar2d" === e,
                    d = u ? "bar2D" : e,
                    g = this.getFromEnv("dataSource").chart,
                    p = u ? s.height : s.width,
                    f = 0,
                    m = s.scrollToEnd,
                    v = (0, n.pluckNumber)(g.numvisibleplot, o(p / s.avgScrollPointWidth));
                s.isstacked ? this.iterateComponents((function(e) { "cartesianStackGroup" === e.getName() && !e.getState("removed") && f++ })) : this.iterateComponents((function(e) { e.getType && "dataset" === e.getType() && e.getName && e.getName().toLowerCase() === d && !e.getState("removed") && f++ }));
                i = h * (f = f || 1); var b = c.getVisibleConfig();
                a = b.maxValue, t = b.minValue, v >= 2 && v < i ? (r = v / f, this.setScrollType("always"), m ? t = a - r : a = t + r, 0 === t && (a -= 1), c.setVisibleConfig(t, a)) : (l = c.getLimit(), c.setVisibleConfig(l.min, l.max), this.setScrollType("none")) }, t.resetViewPortConfig = function() { this.config.viewPortConfig = { scaleX: 1, scaleY: 1, x: 0, y: 0 } }, t.configurer = function() { var e, t = this.getFromEnv("dataSource").chart;
                (e = this.config).scrollToEnd = (0, n.pluckNumber)(t.scrolltoend, 0), e.lastScrollPosition = void 0 }; var i = a(227),
                n = a(215),
                o = Math.floor },
        616: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(547)),
                r = i(a(520)),
                l = i(a(610)),
                s = function(e) {
                    (0, n["default"])(a, e), a.getName = function() { return "MSColumn2D" }; var t = a.prototype;

                    function a() { var t; return (t = e.call(this) || this).eiMethods = {}, t } return t.getName = function() { return "MSColumn2D" }, t.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), this.config.friendlyName = "Multi-series Column Chart", this.config.defaultDatasetType = "column", this.config.enablemousetracking = !0 }, t.getDSdef = function() { return r["default"] }, t.getDSGroupdef = function() { return l["default"] }, a }(o["default"]);
            t["default"] = s },
        619: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(230),
                r = a(215),
                l = a(223),
                s = i(a(620)),
                c = r.preDefStr.visibleStr,
                h = Math,
                u = h.min,
                d = h.max;
            (0, l.addDep)({ name: "cartesianStackAnimation", type: "animationRule", extension: s["default"] }); var g = function(e) {
                function t() { var t; return (t = e.call(this) || this).setState("visible", !0), t }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "group" }, t.getName = function() { return "cartesianStackGroup" }, a.getName = function() { return "cartesianStackGroup" }, a.preConfigure = function(t) { if (!t) return !1;
                    this.config.JSONData = t, e.prototype.preConfigure.call(this, t) }, a.configure = function(t) { if (!t) return !1;
                    e.prototype.configure.call(this, t) }, a.configureAttributes = function(t) { e.prototype.configureAttributes.call(this, t); var a = this.config,
                        i = this.getFromEnv("chartConfig"),
                        n = this.getFromEnv("chart-attrib");
                    a.showTextOutline = (0, r.pluckNumber)(n.textoutline, 0), a.showSum = (0, r.pluckNumber)(n.showsum, i.showSum, 0), a.sumInside = 0 }, a.setSkippingInfo = function(e) { this.addToEnv("skipInfo", e || { drawOnlyMap: [], plotsPerBin: 1, draw: [], hide: [], skippingApplied: !1, dragHashMap: [], prevDrawArray: [] }) }, a.getSkippingInfo = function() { return this.getFromEnv("skipInfo") || { drawOnlyMap: [], plotsPerBin: 1, draw: [], hide: [], skippingApplied: !1, dragHashMap: [], prevDrawArray: [] } }, a.setVisibility = function() { var e = 0;
                    this._mapChildren((function(t) { t.getState("visible") && e++ })), this.setState("visible", !!e) }, a.createContainer = function() { var e, t, a = this.getFromEnv("animationManager"),
                        i = this.getLinkedParent(),
                        n = i.getChildContainer(); for (e in n) t = n[e], !this.getChildContainer(e) && this.addChildContainer(e, a.setAnimation({ el: "group", attr: { name: "manager-" + e }, container: t, component: this }));!this.getContainer("sumLabelsLayer") && this.addContainer("sumLabelsLayer", a.setAnimation({ el: "group", attr: { name: "manager-sumLabelsLayer", "class": "fusioncharts-datalabels" }, label: "group", container: i.getChildContainer("sumLabelsLayer"), component: this })), !this.getChildContainer("commonElemGroupLine") && this.addChildContainer("commonElemGroupLine", a.setAnimation({ el: "group", attr: { name: "manager-common-elem-group" }, label: "group", container: i.getChildContainer("lineVcanvasGroup"), component: this })), !this.getChildContainer("commonElemGroup") && this.addChildContainer("commonElemGroup", a.setAnimation({ el: "group", attr: { name: "manager-common-elem-group" }, label: "group", container: i.getChildContainer("areaVcanvasGroup"), component: this })), !this.getChildContainer("anchorGroup") && this.addChildContainer("anchorGroup", a.setAnimation({ el: "group", attr: { name: "manager-anchor-group" }, label: "group", container: this.getFromEnv("useLinePlotGroupForAnchorPlacement") ? i.getChildContainer("lineVcanvasGroup") : i.getChildContainer("areaVcanvasGroup"), component: this })) }, a.draw = function() { this.createContainer(), this.getFirstDataSet(), this.drawSumValue() }, a._setStackPosition = function() { var e, t = +Infinity,
                        a = -Infinity,
                        i = this.getFromEnv("numOfColumns"),
                        n = 0,
                        o = [],
                        l = [],
                        s = this.getSkippingInfo && this.getSkippingInfo() || {},
                        c = s.draw || [],
                        h = c.length,
                        g = s.skippingApplied;
                    this._mapChildren((function(i) { if (!i.getState("removed") && !1 !== i.getState("visible")) { n++; var r, s, p, f, m = i.getData(),
                                v = 0,
                                b = m && m.length,
                                x = 0; for (g && (b = h), p = 0; p < b; p++)(r = m[s = c[p] || p]) && r.config && void 0 !== r.config.setValue && (o[s] || (o[s] = {}), f = r.config.setValue, e = r.config.setLink, o[s].positive || (o[s].positive = 0), o[s].negative || (o[s].negative = 0), f >= 0 ? (v = f + (x = o[s].positive), o[s].positive = v) : f < 0 && (v = f + (x = o[s].negative), o[s].negative = v), null !== f && (o[s].isNotNull = !0), l[s] = e, a = d(v, a), t = u(v, t), r.config._y = v, r.config._b = x) } })), this.config.setLink = l, this.config.stackValues = o, this.config.dataMin = t, this.config.dataMax = a, n ? this.setState("visible", !0) : this.setState("visible", !1), this.addToEnv("stackValues", o), this.addToEnv("numOfColumns", n), this.addToEnv("numColDiff", (0, r.pluckNumber)(i - n, 0)) }, a.allocatePosition = function() { this._setStackPosition() }, a._getXpos = function(e) { var t = this.getFromEnv("shift") || 0; return this.getFromEnv("xAxis").getPixel(e) + t }, a.drawSumValue = function(e, t) { void 0 === e && (e = 0); var a, i, n, o, l, s, h, u, d, g, p, f, m, v, b, x, y = this.config,
                        C = this.getFromEnv("yAxis"),
                        k = this.getFromEnv("paper"),
                        S = this.getFromEnv("animationManager"),
                        w = this.getFromEnv("chart"),
                        L = w.isBar,
                        A = this.getFromEnv("smartLabel"),
                        N = w.config,
                        E = N.canvasRight,
                        T = (0, r.pluckNumber)(N.stack100percent),
                        F = N.rotatevalues ? 270 : 0,
                        _ = y.stackValues,
                        P = y.setLink,
                        D = t || _ && _.length,
                        I = N.dataLabelStyle,
                        M = this.getContainer("sumLabelsLayer"),
                        O = this.getGraphicalElement("sumLabels"); if (this.config.showSum) { if (M.css(I), A.setStyle(I), (v = O && O.length) > (b = _.length))
                            for (; v >= b;) x = O[v], v--, x && (x.hide(), this.removeGraphicalElement(x)); for (a = e; a < D; a++) h = Array.isArray(O) && O[a], _[a] && _[a].isNotNull ? (p = (m = (d = _[a].positive) + (g = _[a].negative)) < 0 ? g : d, (f = C.dataLabels(m)) && (o = I.backgroundColor, l = I.borderColor, s = A.getOriSize(f), L ? (n = this._getXpos(a), i = C.getPixel(T ? 100 : p), T ? i += s.width / 2 : i -= i + s.width > E ? i + s.width - E : 0) : (i = this._getXpos(a), n = C.getPixel(T ? 100 : p)), (u = this.getSumValuePosition(s, { stack100percent: T, rotateValues: F, xPos: i, yPos: n, offsetY: p, index: a })).text = f, u.cursor = P[a] && 1 === this.config.sumInside ? r.POINTER : "", u.fill = I.color, u["text-bound"] = [o, l, I.borderThickness, I.borderPadding, I.borderRadius, I.borderDash], u["line-height"] = I.lineHeight, u.visibility = c, u.transform = k.getSuggestiveRotation(F, u.x, u.y), u["text-anchor"] && delete u["text-bound"], M && M.show(), (h = S.setAnimation({ el: h || "text", attr: u, label: "text", container: M, component: this })).show(), h.outlineText(y.showTextOutline, u.fill), Array.isArray(O) && O[a] || this.addGraphicalElement("sumLabels", h, !0))) : h && h.hide() } else M.hide() }, a.getSumValuePosition = function(e, t) { var a, i, n, o, r, l, s, c = this.getFromEnv("chart"),
                        h = c.config,
                        u = this.getFromEnv("xAxis"),
                        d = c.getChildren("scrollBar") && c.getChildren("scrollBar")[0],
                        g = h.canvasBottom,
                        p = h.canvasTop,
                        f = c.config.is3D,
                        m = c.isBar,
                        v = t.stack100percent,
                        b = h.yDepth,
                        x = h.xDepth,
                        y = t.yPos,
                        C = t.xPos,
                        k = this.getFromEnv("canvasConfig").canvasBorderWidth,
                        S = t.offsetY; if (t.rotateValues ? (l = e.width, s = e.height) : (l = e.height, s = e.width), o = (o = a = l) / 2 + 2, r = (r = i = s) / 2 + 2, v)
                        if (p <= a) y = o;
                        else { var w = u.getAxisConfig("isOpposit"),
                                L = f ? 0 : w ? u.getAxisConfig("axisLineThickness") : 0,
                                A = d && d.config.isOpposite,
                                N = c.isScrollEnabled() && A ? c.config.shift : 0;
                            y = m ? t.yPos : p - o - k - N - L, C += m ? k + L + N : 0 } else S >= 0 && (m ? ((n = h.canvasLeft + h.canvasWidth - C) < i ? (C = C - r + n, this.config.sumInside = 1) : C += r, f && (y += b / 2)) : (n = y - p) < a ? (this.config.sumInside = 1, y = y + o - n) : (y -= m ? 0 : o, C += m ? 2 : 0, this.getFromEnv("useImprovedLabelPlacement") && (y = this._adjustSumValuePosition(t.index, !0, y, o)) - o < p && (y = p + o))), S < 0 && (m ? C = (n = C - h.canvasLeft) < i ? C + r + 2 - n : C - r - 2 : (n = g - y) < a ? y -= o : (y += o, this.getFromEnv("useImprovedLabelPlacement") && (y = this._adjustSumValuePosition(t.index, !1, y, o)) + o > g && (y = g - o)), f && (C -= x, y += b)); return { x: C, y: y } }, a.childChanged = function(e) { void 0 === e && (e = {}); var t, a, i = this.config,
                        n = this.getLinkedParent(),
                        o = this.getState("visible"),
                        r = 0,
                        l = {};
                    this._mapChildren((function(e) { e.getState("visible") && r++ })), this.setState("visible", !!r), o !== !!r && (a = !0), !1 !== e.dataLimitChanged && ((t = this.getDataLimits()).min === i.range.min && t.max === i.range.max || (i.range.min = t.min, i.range.max = t.max, l.dataLimitChanged = !0, a = !0)), a ? n.childChanged && n.childChanged(l) : this.asyncDraw() }, a.getAxisValuePadding = function() { var e = {},
                        t = -Infinity,
                        a = -Infinity; return this._mapChildren((function(i) { i.getState("removed") || (e = i.getAxisValuePadding && i.getAxisValuePadding() || {}, t = Math.max(t, e.left || -Infinity), a = Math.max(a, e.right || -Infinity)) })), t === -Infinity && (t = 0), a === -Infinity && (a = 0), this.config.padding || (this.config.padding = {}, this.config.padding.left = t, this.config.padding.right = a), { left: t, right: a } }, a.getDataLimits = function(e) { return this._setStackPosition(), this.config.range || (this.config.range || (this.config.range = {}), this.config.range.min = this.config.dataMin, this.config.range.max = this.config.dataMax), e ? this._getStackLimit() : { max: this.config.dataMax, min: this.config.dataMin } }, a._getStackLimit = function() { var e = +Infinity,
                        t = -Infinity,
                        a = [],
                        i = this.getSkippingInfo && this.getSkippingInfo() || {},
                        n = i.draw || [],
                        o = n.length,
                        r = i.skippingApplied; return this._mapChildren((function(i) { if (!i.getState("removed")) { var l, s, c, h, g = i.getData(),
                                p = 0,
                                f = g && g.length; for (r && (f = o), c = 0; c < f; c++)(l = g[s = n[c] || c]) && l.config && void 0 !== l.config.setValue && null !== l.config.setValue && (a[s] || (a[s] = {}), h = l.config.setValue, a[s].positive || (a[s].positive = 0), a[s].negative || (a[s].negative = 0), h > 0 ? (p = h + a[s].positive, a[s].positive = p) : h < 0 && (p = h + a[s].negative, a[s].negative = p), t = d(p, t), e = u(p, e)) } })), { max: t, min: e } }, a.isVisible = function() { return !this.isNotVisible }, a.getMaxSumValueSpace = function() { var e, t, a, i, n, o = this.config.stackValues,
                        r = this.getFromEnv("chart"),
                        l = {},
                        s = o && o.length,
                        c = this.getFromEnv("number-formatter"),
                        h = 0,
                        u = 0,
                        g = this.getFromEnv("smartLabel"),
                        p = r.config.dataLabelStyle; for (g.useEllipsesOnOverflow(r.config.useEllipsesWhenOverflow), g.setStyle(p), e = 0; e < s; e++) o[e] && (n = o[e].positive + o[e].negative, t = c.dataLabels(n), a = (l = g.getOriSize(t)).width, i = l.height, u = d(u, a), h = d(h, i)); return { maxWidth: u, maxHeight: h } }, a.getCanvasPadding = function() { var e, t, a, i, n, o = this.getSkippingInfo(),
                        r = o.skippingApplied,
                        l = o.draw,
                        s = this.config.stackValues,
                        c = s[r ? l[0] : 0],
                        h = s[r ? l[l.length - 1] : s.length - 1],
                        u = this.getFromEnv("xAxis"),
                        g = this.getFromEnv("yAxis"),
                        p = this.getFromEnv("chartConfig"),
                        f = this.getFromEnv("smartLabel"),
                        m = u.getValuePadding(),
                        v = 0,
                        b = u.getPixel(0),
                        x = p.rotatevalues,
                        y = { paddingLeft: 0, paddingRight: 0, paddingTop: 0, paddingBottom: 0 }; return this._setStackPosition(), this._mapChildren((function(a) { for (t in e = a.getCanvasPadding && a.getCanvasPadding() || {}) e.hasOwnProperty(t) && (y[t] = Math.max(e[t], y[t])) })), this.config.showSum && (c && (a = g.dataLabels(c.positive + c.negative), f.useEllipsesOnOverflow(p.useEllipsesWhenOverflow), f.setStyle(p.dataLabelStyle), i = f.getOriSize(a), n = x ? i.height : i.width, c.isNotNull && (v = (n || 0) / 2 - (u.getPixel(m.left) - b)) < 0 && (v = 0), y.paddingLeft = d(y.paddingLeft, v)), v = 0, h && (a = g.dataLabels(h.positive + h.negative), f.setStyle(p.dataLabelStyle), i = f.getOriSize(a), n = x ? i.height : i.width, h.isNotNull && (v = (n || 0) / 2 - (u.getPixel(m.right) - b)) < 0 && (v = 0), y.paddingRight = d(y.paddingRight, v))), y }, a.getFirstDataSet = function() { var e = this.getChildren("dataset"); if (e)
                        for (var t = 0; t < e.length; t++) { var a = e[t]; if (a.getState("visible") && !a.getState("removed")) { this.config.firstDataSetIndex = t; break } this.config.firstDataSetIndex = null } }, a._adjustSumValuePosition = function(e, t, a, i) { var n, o, r = [],
                        l = a,
                        s = this.getChildren(); for (n in s) s.hasOwnProperty(n) && (o = s[n], r = r.concat(o.filter((function(e) { return "dataset" === e.getType() })))); return r.forEach((function(a) { var n, o, r = a.components.data[e],
                            s = r && r.config,
                            h = s && s._state,
                            u = s && s.props && s.props.label && s.props.label.attr;!a.getState("removed") && a.getState(c) && u && h && (n = { y: u.y, height: h.labelHeight }, o = { y: l, height: i }, (n.y <= o.y && o.y <= n.y + n.height || n.y <= o.y + o.height && o.y + o.height <= n.y + n.height) && (l = t ? u.y - .6 * h.labelHeight - .6 * i : u.y + .6 * h.labelHeight + .6 * i)) })), l }, t }(o.ComponentInterface);
            t["default"] = g },
        620: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function() { return [{ initialAttr: { opacity: 1 }, finalAttr: { opacity: 1 }, slot: "plot" }] },
                n = function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "final" }] },
                o = { "initial.group.cartesianStackGroup": function() { return { "group.appearing": i, "text.appearing": n, "*": null } }, "initial.group.marimekkoStackgroup": function() { return { "text.appearing": n, "*": null } } };
            t["default"] = o },
        623: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t._checkInvalidSpecificData = t["default"] = void 0; var n = i(a(229)),
                o = i(a(547)),
                r = i(a(520)),
                l = i(a(619)),
                s = i(a(624)),
                c = function() { var e, t = this.getFromEnv("dataSource"),
                        a = t.dataset,
                        i = t.categories; if (!a || !i) return !0; if (e = a.length)
                        for (; e--;)
                            if (!a[e].dataset) return !0 };
            t._checkInvalidSpecificData = c; var h = function(e) {
                function t() { var t; return (t = e.call(this) || this).registerFactory("dataset", s["default"], ["vCanvas"]), t }(0, n["default"])(t, e), t.getName = function() { return "MSStackedColumn2D" }; var a = t.prototype; return a._checkInvalidSpecificData = function() { return c.call(this) }, a.getName = function() { return "MSStackedColumn2D" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                    t.friendlyName = "Multi-series Stacked Column Chart", t.defaultDatasetType = "column", t.isstacked = !0, t.showSum = 0, t.enablemousetracking = !0 }, a.getDSdef = function() { return r["default"] }, a.getDSGroupdef = function() { return l["default"] }, t }(o["default"]);
            t["default"] = h },
        624: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t, a, i, r, l, s, c = e.getFromEnv("dataSource").dataset,
                    h = c && c.length,
                    u = 0,
                    d = e.getChildren("canvas")[0].getChildren("vCanvas")[0],
                    g = []; if (!c) return void e.setChartMessage(); for ((0, n.componentFactory)(d, o["default"], "multiSeriesGroup_column"), s = d.getChildren("multiSeriesGroup_column")[0], t = 0; t < h; t++) g.push(c[t].dataset); for ((0, n.componentFactory)(s, e.getDSGroupdef(), "stackedGroup_column", h, g), l = s.getChildren("stackedGroup_column"), t = 0; t < l.length; t++)
                    if (!0 !== l[t].getState("removed")) { if (!(i = c[t].dataset)) return void e.setChartMessage();
                        a = i && i.length, r = Array(a).fill(u).map((function(e, t) { return e + t })), (0, n.datasetFactory)(l[t], e.getDSdef(), "dataset_column", a, i, r), u += a } e.config._lastDatasetIndex = r[r.length - 1] }; var n = a(215),
                o = i(a(610)) },
        627: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(215),
                r = i(a(589)),
                l = a(623),
                s = i(a(537)),
                c = i(a(520)),
                h = i(a(619)),
                u = i(a(628)),
                d = o.preDefStr.SEVENTYSTRING,
                g = function(e) {
                    function t() { var t; return (t = e.call(this) || this).stack100percent = 0, t.hasLineSet = !0, t.lineset = !0, t.registerFactory("dataset", u["default"], ["vCanvas"]), t }(0, n["default"])(t, e), t.getName = function() { return "MSStackedColumn2DLineDy" }; var a = t.prototype; return a.getName = function() { return "MSStackedColumn2DLineDy" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.sDefaultDatasetType = "line", t.friendlyName = "Multi-series Dual Y-Axis Stacked Column and Line Chart", t.defaultDatasetType = "column", t.isdual = !0, t.haslineset = !0, t.isstacked = !0, t.enablemousetracking = !0, t.anchorborderthickness = 1, t.anchorimageurl = void 0, t.anchorimagepadding = 1, t.anchorsides = 1, t.anchoralpha = void 0, t.anchorbgalpha = o.HUNDREDSTRING, t.anchorimagealpha = o.HUNDREDSTRING, t.anchorimagescale = 100, t.anchorstartangle = 90, t.anchorshadow = 0, t.anchorbgcolor = void 0, t.anchorbordercolor = void 0, t.anchorradius = 3, t.showvalues = 1, t.plotfillalpha = d, t.linedashlen = 5, t.linedashgap = 4, t.linedashed = void 0, t.linealpha = o.HUNDREDSTRING, t.linethickness = 2, t.drawfullareaborder = 1, t.connectnulldata = 0, t.showSum = 0 }, a._checkInvalidSpecificData = function() { return l._checkInvalidSpecificData.call(this) }, a.getDSdef = function(e) { return "line" === e ? s["default"] : c["default"] }, a.getDSGroupdef = function() { return h["default"] }, t }(r["default"]);
            t["default"] = g },
        628: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t, a, i = e.getFromEnv("dataSource"),
                    r = i.dataset,
                    l = i.lineset,
                    s = e.getChildren("canvas")[0].getChildren("vCanvas")[1]; if (!r && 0 === l.length) return void e.setChartMessage();
                (0, n["default"])(e), t = e.config._lastDatasetIndex + 1, l && l.length ? (a = Array(l.length).fill(t).map((function(e, t) { return e + t })), (0, o.datasetFactory)(s, e.getDSdef("line"), "dataset_line", l.length, l, a)) : function(e) { var t, a = e.getChildren("dataset_line"); for (t = a && a.length - 1; t > -1; t--) a[t].remove() }(s) }; var n = i(a(624)),
                o = a(215) },
        640: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(616)),
                r = i(a(641)),
                l = i(a(643)),
                s = i(a(550)),
                c = a(215),
                h = function(e, t, a) { var i, n, o, r, l, s, c, h, u, d, g = a && a.length,
                        p = e,
                        f = t; if (g)
                        for (i = g - 1; i >= 0; i--)
                            if (c = (o = a[i]).x1, h = o.y1, u = o.x2, d = o.y2, o.isTrendZone) { if (p >= c && p <= u && f >= h && f <= d) return o } else if (h !== d && c !== u ? (r = n = (h - d) / (c - u), -1, l = h - n * c, s = Math.abs(r * p + -1 * f + l) / Math.sqrt(Math.pow(r, 2) + Math.pow(-1, 2))) : c === u ? s = Math.abs(c - p) : h === d && (s = Math.abs(h - f)), s <= o.tolerance) return o },
                u = function(e) {
                    function t() { var t; return (t = e.call(this) || this).registerFactory("axis", l["default"], ["canvas"]), t.registerFactory("legend", s["default"]), t.registerFactory("quadrant", (function(e) { var t, a = e.getChildren("canvas")[0],
                                i = e.getChildren(),
                                n = function() { return t.asyncDraw() };
                            (0, c.componentFactory)(a, r["default"], "quadrant"), (t = a.getChildren("quadrant")[0]).addExtEventListener("visiblerangeset", n, i.xAxis[0]), t.addExtEventListener("visiblerangeset", n, i.yAxis[0]), t.configure() }), ["dataset"]), t }(0, n["default"])(t, e), t.getName = function() { return "ScatterBase" }; var a = t.prototype; return a.mouseoutHandler = function(e, t, a) { var i = this.config.datasetOrder || this.getDatasets(),
                            n = this.getChildren("mouseTracker")[0];
                        i[t] && i[t].components.data[a] ? i[t]._firePlotEvent("fc-mouseout", a, e) : this.getFromEnv("toolTipController").hideAll(), delete n._lastDatasetIndex, delete n._lastPointIndex }, a.parseChartAttr = function(t) { e.prototype.parseChartAttr.call(this, t), this.config.drawTrendRegion = 0 }, a.__setDefaultConfig = function() { var t = this.config;
                        e.prototype.__setDefaultConfig && e.prototype.__setDefaultConfig.call(this), t.valuefontbold = 0, t.stickytracking = 1, t.usemessagelog = 0, t.animationeffect = "linear", t.showshadow = 1, t.showhovereffect = void 0, t.plothovereffect = void 0, t.anchorhovereffect = void 0, t.plotborderdashed = void 0, t.stack100percent = void 0, t.showpercentvalues = void 0, t.showpercentintooltip = void 0, t.plotbordercolor = void 0, t.showtooltip = 1, t.seriesnameintooltip = 1, t.rotatevalues = 0, t.minimizetendency = 0, t.plotfillangle = 270, t.valuepadding = 2, t.useplotgradientcolor = 1, t.plotborderthickness = 1, t.plotfillalpha = "70", t.showvalues = 1, t.valueposition = "auto", t.tooltipsepchar = ", ", t.usedataplotcolorforlabels = 0, t.placevaluesinside = 0, t.showplotborder = 1, t.use3dlighting = 1, t.useroundedges = 0, t.plotspacepercent = 20, t.plotpaddingpercent = void 0, t.plotfillratio = void 0, t.maxcolwidth = 50, t.plotborderdashlen = 5, t.plotborderdashgap = 4, t.useScaleRecursively = !0, t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.setadaptivexmin = 1 }, a._drawTrendTooltip = function(e, t) { var a = this.getFromEnv("toolTipController"),
                            i = this.config.currentTrendToolTip,
                            n = e.tooltext,
                            o = t.originalEvent;
                        i ? a.draw(o, n, i) : i = this.config.currentTrendToolTip = a.draw(o, n) }, a._mouseEvtHandler = function(e, t) { var a, i, n, o, r, l, s, u, d, g, p = this,
                            f = t.mouseTracker,
                            m = p.getChildren("canvas")[0],
                            v = p.getFromEnv("toolTipController"),
                            b = e.originalEvent,
                            x = p.config,
                            y = x.canvasBaseDepth || 0,
                            C = x.canvasLeft - (x.toleranceLeft || 0),
                            k = x.canvasRight + (x.toleranceRight || 0),
                            S = x.canvasBottom + (x.toleranceBottom || 0),
                            w = x.canvasTop - (x.toleranceTop || 0),
                            L = x.datasetOrder || p.getDatasets(),
                            A = !1,
                            N = L.length,
                            E = f._lastDatasetIndex,
                            T = f._lastPointIndex; if (o = (n = (0, c.getMouseCoordinate)(p.getFromEnv("chart-container"), b, p)).chartX, r = n.chartY, o > C - y && o < k && r > w && r < S + y) { for (; N-- && !A;)(l = L[N]) && l.getState("visible") && ((s = l._getHoveredPlot && l._getHoveredPlot(o, r)) && s.hovered || a) && (A = !0, s.datasetIndex = N, g = f.getMouseEvents(e, s.datasetIndex, s.pointIndex));
                            a = h(o, r, m.config.vtrendlines), i = h(o, r, m.config.trendlines) } if ((!A || g && g.fireOut) && void 0 !== E && L[E] && L[E]._firePlotEvent && (g && !g.events.length ? f.mouseoutTimer = setTimeout((function() { p.mouseoutHandler(e, E, T) }), 20) : (p.mouseoutHandler(e, E, T), clearTimeout(f.mouseoutTimer))), A)
                            for (p.config.currentTrendToolTip && v.hide(p.config.currentTrendToolTip), (d = g.events && g.events.length) && (f._lastDatasetIndex = s.datasetIndex, T = f._lastPointIndex = s.pointIndex), u = 0; u < d; u += 1) l && l._firePlotEvent && l._firePlotEvent(g.events[u], T, e, s.datasetIndex);
                        else a && a.tooltext ? p._drawTrendTooltip(a, e) : i && i.tooltext ? p._drawTrendTooltip(i, e) : p.config.currentTrendToolTip && v.hide(p.config.currentTrendToolTip) }, a._setCategories = function() { var e = this.getFromEnv("dataSource"),
                            t = this.getChildren("xAxis"),
                            a = String((0, c.pluck)(e.chart.xaxislabelmode, "categories")).toLowerCase(),
                            i = e.categories,
                            n = i && i[0] && i[0].category;
                        t[0].setAxisConfig({ xAxisLabelMode: "categories" }), "auto" !== a && "mixed" !== a && n && n.length > 0 ? t[0].setTickValues(n) : "auto" !== a ? (t[0].setTickValues(n), t[0].setAxisConfig({ xAxisLabelMode: "mixed" })) : (t[0].setTickValues(n), t[0].setAxisConfig({ xAxisLabelMode: "auto" })) }, a._allocateSpace = function(e) { var t = this.getChildren("canvas"),
                            a = t && t[0].config,
                            i = this.config,
                            n = i.canvasHeight,
                            o = i.canvasWidth,
                            r = i.availableHeight,
                            l = i.availableWidth;
                        i.canvasLeft += e.left || 0, i.canvasTop += e.top || 0, o = i.canvasWidth = Math.max(o - ((e.left || 0) + (e.right || 0)), 0), n = i.canvasHeight = Math.max(n - ((e.top || 0) + (e.bottom || 0)), 0), i.availableHeight = Math.max(r - ((e.top || 0) + (e.bottom || 0)), 0), i.availableWidth = Math.max(l - ((e.left || 0) + (e.right || 0)), 0), i.canvasRight = i.canvasLeft + o, i.canvasBottom = i.canvasTop + n, a && (a.canvasPaddingLeft = Math.max(a.canvasPaddingLeft, e.paddingLeft || 0), a.canvasPaddingRight = Math.max(a.canvasPaddingRight, e.paddingRight || 0), a.canvasPaddingTop = Math.max(a.canvasPaddingTop, e.paddingTop || 0), a.canvasPaddingBottom = Math.max(a.canvasPaddingBottom, e.paddingBottom || 0)), t[0].setDimension({ top: i.canvasTop, left: i.canvasLeft, width: i.canvasWidth, height: i.canvasHeight }) }, a._postSpaceManagement = function() { var e, t = this.config,
                            a = this.getChildren(),
                            i = a.xAxis && a.xAxis[0],
                            n = a.legend && a.legend[0],
                            o = t.xDepth,
                            r = this.getChildren("canvas"); for (this.setAxisDimention(), i && this._allocateXAxisLabelSpace(i), i && i.shiftLabels(-o, 0), n && n.postSpaceManager(), e = 0; e < (r && r.length); e++) r[e].setCanvasPadding();
                        this.setAxisDimention(), this.allocateDimensionOfChartMenuBar() }, a._checkInvalidSpecificData = function() { if (!this.getFromEnv("dataSource").dataset) return !0 }, t }(o["default"]);
            t["default"] = u },
        641: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(232)),
                o = i(a(229)),
                r = a(230),
                l = a(215),
                s = a(223),
                c = i(a(642)),
                h = l.preDefStr.POSITION_START,
                u = l.preDefStr.POSITION_TOP,
                d = l.preDefStr.POSITION_BOTTOM,
                g = l.preDefStr.POSITION_END;
            (0, s.addDep)({ name: "quadrantAnimation", type: "animationRule", extension: c["default"] }); var p = function(e) {
                function t() { var t;
                    t = e.call(this) || this; var a = (0, n["default"])(t); return a.pIndex = 1, a.components = {}, a.conf = {}, a.graphics = {}, t }(0, o["default"])(t, e); var a = t.prototype; return a.getType = function() { return "canvas" }, a.getName = function() { return "quadrant" }, a.configure = function() { var e, t, a, i, n, o, r, s, c, h, u, d, g, p, f, m, v, b, x, y, C, k, S, w, L = this.conf,
                        A = this.getFromEnv("chart"),
                        N = A.config,
                        E = A.getFromEnv("dataSource").chart,
                        T = A.getChildren("canvas")[0].config,
                        F = N.dataLabelStyle,
                        _ = A.getFromEnv("smartLabel");
                    (L.enabled = (0, l.pluckNumber)(E.drawquadrant, 0)) && (v = (0, l.pluckNumber)(E.quadrantxval), b = (0, l.pluckNumber)(E.quadrantyval), x = (0, l.convertColor)((0, l.pluck)(E.quadrantlinecolor, T.canvasBorderColor), (0, l.pluck)(E.quadrantlinealpha, E.quadrantlinealpha, l.HUNDREDSTRING)), y = (0, l.pluckNumber)(E.quadrantlinethickness, T.canvasBorderThickness), k = (0, l.pluckNumber)(E.quadrantlinedashed, E.quadrantlineisdashed, 0), C = (0, l.pluckNumber)(E.quadrantlinedashlen, 4), S = (0, l.pluckNumber)(E.quadrantlinedashgap, 2), w = k ? (0, l.getDashStyle)(C, S) : "none", L.xVal = v, L.yVal = b, L.quadrantLineColor = x, L.quadrantLineThickness = y, L.dashStyle = w, g = (0, l.parseUnsafeString)((0, l.getValidValue)(E.quadrantlabeltl, "")), p = (0, l.parseUnsafeString)((0, l.getValidValue)(E.quadrantlabeltr, "")), f = (0, l.parseUnsafeString)((0, l.getValidValue)(E.quadrantlabelbl, "")), m = (0, l.parseUnsafeString)((0, l.getValidValue)(E.quadrantlabelbr, "")), L.quadrantLabelPadding = (0, l.pluckNumber)(E.quadrantlabelpadding, 3), _.useEllipsesOnOverflow(N.useEllipsesWhenOverflow), _.setStyle(F), "" !== g ? (o = (0, l.getFirstValue)(E.quadrantlabeltlbordercolor, E.quadrantlabelbordercolor, ""), r = (0, l.pluck)(E.quadrantlabeltlbgcolor, E.quadrantlabelbgcolor), s = (0, l.pluckNumber)(E.quadrantlabeltlborderthickness, E.quadrantlabelborderthickness, 1), o = o ? (0, l.convertColor)(o, (0, l.pluckNumber)(E.quadrantlabeltlborderalpha, E.quadrantlabelborderalpha, E.quadrantlabeltlalpha, E.quadrantlabelalpha, 100)) : "", (c = L.tlConfig) || (c = L.tlConfig = { enabled: !0, styleObj: {} }), c.label = g, c.styleObj.fontSize = (0, l.pluck)((0, l.pluckNumber)(E.quadrantlabeltlfontsize, E.quadrantlabelfontsize), parseInt(F.fontSize, 10)) + "px", c.styleObj.lineHeight = F.lineHeight, c.styleObj.fontFamily = (0, l.pluck)(E.quadrantlabeltlfont, E.quadrantlabelfont, F.fontFamily), c.styleObj.color = (0, l.convertColor)((0, l.pluck)(E.quadrantlabeltlfontcolor, E.quadrantlabelfontcolor, F.color), (0, l.pluckNumber)(E.quadrantlabeltlfontalpha, E.quadrantlabelfontalpha, 100)), c.styleObj.fontWeight = (0, l.pluckNumber)(E.quadrantlabeltlfontbold, E.quadrantlabelfontbold) ? "bold" : "normal", c.styleObj.fontStyle = (0, l.pluckNumber)(E.quadrantlabeltlfontitalic, E.quadrantlabelfontitalic) ? "italic" : "normal", (0, l.setLineHeight)(c.styleObj), e = o, t = (0, l.pluckNumber)(E.quadrantlabeltlborderpadding, E.quadrantlabelborderpadding, 2), a = (0, l.pluckNumber)(E.quadrantlabeltlborderradius, E.quadrantlabelborderradius, 0), i = r ? (0, l.convertColor)(r, (0, l.pluckNumber)(E.quadrantlabeltlbgalpha, E.quadrantlabelbgalpha, E.quadrantlabeltlalpha, E.quadrantlabelalpha, 100)) : "", n = (0, l.pluckNumber)(E.quadrantlabeltlborderdashed, E.quadrantlabelborderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(E.quadrantlabeltlborderdashlen, E.quadrantlabelborderdashlen, 4), (0, l.pluckNumber)(E.quadrantlabeltlborderdashgap, E.quadrantlabelborderdashgap, 2)) : "none", c["text-bound"] = [i, e, s, t, a, n]) : L.tlConfig && (L.tlConfig.label = g), "" !== p ? (o = (0, l.getFirstValue)(E.quadrantlabeltrbordercolor, E.quadrantlabelbordercolor, ""), r = (0, l.pluck)(E.quadrantlabeltrbgcolor, E.quadrantlabelbgcolor), s = (0, l.pluckNumber)(E.quadrantlabeltrborderthickness, E.quadrantlabelborderthickness, 1), o = o ? (0, l.convertColor)(o, (0, l.pluckNumber)(E.quadrantlabeltrborderalpha, E.quadrantlabelborderalpha, E.quadrantlabeltralpha, E.quadrantlabelalpha, 100)) : "", (h = L.trConfig) || (h = L.trConfig = { enabled: !0, styleObj: {} }), h.label = (0, l.parseUnsafeString)((0, l.getValidValue)(E.quadrantlabeltr, "")), h.styleObj.fontSize = (0, l.pluck)((0, l.pluckNumber)(E.quadrantlabeltrfontsize, E.quadrantlabelfontsize), parseInt(F.fontSize, 10)) + "px", h.styleObj.lineHeight = F.lineHeight, h.styleObj.fontFamily = (0, l.pluck)(E.quadrantlabeltrfont, E.quadrantlabelfont, F.fontFamily), h.styleObj.color = (0, l.convertColor)((0, l.pluck)(E.quadrantlabeltrfontcolor, E.quadrantlabelfontcolor, F.color), (0, l.pluckNumber)(E.quadrantlabeltrfontalpha, E.quadrantrabelfontalpha, 100)), h.styleObj.fontWeight = (0, l.pluckNumber)(E.quadrantlabeltrfontbold, E.quadrantlabelfontbold) ? "bold" : "normal", h.styleObj.fontStyle = (0, l.pluckNumber)(E.quadrantlabeltrfontitalic, E.quadrantlabelfontitalic) ? "italic" : "normal", (0, l.setLineHeight)(h.styleObj), e = o, t = (0, l.pluckNumber)(E.quadrantlabeltrborderpadding, E.quadrantlabelborderpadding, 2), a = (0, l.pluckNumber)(E.quadrantlabeltrborderradius, E.quadrantlabelborderradius, 0), i = r ? (0, l.convertColor)(r, (0, l.pluckNumber)(E.quadrantlabeltrbgalpha, E.quadrantlabelbgalpha, E.quadrantlabeltralpha, E.quadrantlabelalpha, 100)) : "", n = (0, l.pluckNumber)(E.quadrantlabeltrborderdashed, E.quadrantlabelborderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(E.quadrantlabeltrborderdashlen, E.quadrantlabelborderdashlen, 4), (0, l.pluckNumber)(E.quadrantlabeltrborderdashgap, E.quadrantlabelborderdashgap, 2)) : "none", h["text-bound"] = [i, e, s, t, a, n]) : L.trConfig && (L.trConfig.label = p), "" !== f ? (o = (0, l.getFirstValue)(E.quadrantlabelblbordercolor, E.quadrantlabelbordercolor, ""), r = (0, l.pluck)(E.quadrantlabelblbgcolor, E.quadrantlabelbgcolor), s = (0, l.pluckNumber)(E.quadrantlabelblborderthickness, E.quadrantlabelborderthickness, 1), o = o ? (0, l.convertColor)(o, (0, l.pluckNumber)(E.quadrantlabelblborderalpha, E.quadrantlabelborderalpha, E.quadrantlabelblalpha, E.quadrantlabelalpha, 100)) : "", (u = L.blConfig) || (u = L.blConfig = { enabled: !0, styleObj: {} }), u.label = f, u.styleObj.fontSize = (0, l.pluck)((0, l.pluckNumber)(E.quadrantlabelblfontsize, E.quadrantlabelfontsize), parseInt(F.fontSize, 10)) + "px", u.styleObj.lineHeight = F.lineHeight, u.styleObj.fontFamily = (0, l.pluck)(E.quadrantlabelblfont, E.quadrantlabelfont, F.fontFamily), u.styleObj.color = (0, l.convertColor)((0, l.pluck)(E.quadrantlabelblfontcolor, E.quadrantlabelfontcolor, F.color), (0, l.pluckNumber)(E.quadrantlabelblfontalpha, E.quadrantlabelfontalpha, 100)), u.styleObj.fontWeight = (0, l.pluckNumber)(E.quadrantlabelblfontbold, E.quadrantlabelfontbold) ? "bold" : "normal", u.styleObj.fontStyle = (0, l.pluckNumber)(E.quadrantlabelblfontitalic, E.quadrantlabelfontitalic) ? "italic" : "normal", (0, l.setLineHeight)(u.styleObj), e = o, t = (0, l.pluckNumber)(E.quadrantlabelblborderpadding, E.quadrantlabelborderpadding, 2), a = (0, l.pluckNumber)(E.quadrantlabelblborderradius, E.quadrantlabelborderradius, 0), i = r ? (0, l.convertColor)(r, (0, l.pluckNumber)(E.quadrantlabelblbgalpha, E.quadrantlabelbgalpha, E.quadrantlabelblalpha, E.quadrantlabelalpha, 100)) : "", n = (0, l.pluckNumber)(E.quadrantlabelblborderdashed, E.quadrantlabelborderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(E.quadrantlabelblborderdashlen, E.quadrantlabelborderdashlen, 4), (0, l.pluckNumber)(E.quadrantlabelblborderdashgap, E.quadrantlabelborderdashgap, 2)) : "none", u["text-bound"] = [i, e, s, t, a, n]) : L.blConfig && (L.blConfig.label = f), "" !== m ? (o = (0, l.getFirstValue)(E.quadrantlabelbrbordercolor, E.quadrantlabelbordercolor, ""), r = (0, l.pluck)(E.quadrantlabelbrbgcolor, E.quadrantlabelbgcolor), s = (0, l.pluckNumber)(E.quadrantlabelbrborderthickness, E.quadrantlabelborderthickness, 1), o = o ? (0, l.convertColor)(o, (0, l.pluckNumber)(E.quadrantlabelbrborderalpha, E.quadrantlabelborderalpha, E.quadrantlabelbralpha, E.quadrantlabelalpha, 100)) : "", (d = L.brConfig) || (d = L.brConfig = { enabled: !0, styleObj: {} }), d.label = (0, l.parseUnsafeString)((0, l.getValidValue)(E.quadrantlabelbr, "")), d.styleObj.fontSize = (0, l.pluck)((0, l.pluckNumber)(E.quadrantlabelbrfontsize, E.quadrantlabelfontsize), parseInt(F.fontSize, 10)) + "px", d.styleObj.lineHeight = F.lineHeight, d.styleObj.fontFamily = (0, l.pluck)(E.quadrantlabelbrfont, E.quadrantlabelfont, F.fontFamily), d.styleObj.color = (0, l.convertColor)((0, l.pluck)(E.quadrantlabelbrfontcolor, E.quadrantlabelfontcolor, F.color), (0, l.pluckNumber)(E.quadrantlabelbrfontalpha, E.quadrantrabelfontalpha, 100)), d.styleObj.fontWeight = (0, l.pluckNumber)(E.quadrantlabelbrfontbold, E.quadrantlabelfontbold) ? "bold" : "normal", d.styleObj.fontStyle = (0, l.pluckNumber)(E.quadrantlabelbrfontitalic, E.quadrantlabelfontitalic) ? "italic" : "normal", (0, l.setLineHeight)(d.styleObj), i = r ? (0, l.convertColor)(r, (0, l.pluckNumber)(E.quadrantlabelbrbgalpha, E.quadrantlabelbgalpha, E.quadrantlabelbralpha, E.quadrantlabelalpha, 100)) : "", e = o, t = (0, l.pluckNumber)(E.quadrantlabelbrborderpadding, E.quadrantlabelborderpadding, 2), a = (0, l.pluckNumber)(E.quadrantlabelbrborderradius, E.quadrantlabelborderradius, 0), n = (0, l.pluckNumber)(E.quadrantlabelbrborderdashed, E.quadrantlabelborderdashed, 0) ? (0, l.getDashStyle)((0, l.pluckNumber)(E.quadrantlabelbrborderdashlen, E.quadrantlabelborderdashlen, 4), (0, l.pluckNumber)(E.quadrantlabelbrborderdashgap, E.quadrantlabelborderdashgap, 2)) : "none", d["text-bound"] = [i, e, s, t, a, n]) : L.brConfig && (L.brConfig.label = m)) }, a._preDraw = function() { var e, t, a, i, n, o, r = this.conf,
                        l = this.getFromEnv("chart"),
                        s = l.getChildren("xAxis")[0],
                        c = l.getChildren("yAxis")[0],
                        h = s.getLimit(),
                        u = c.getLimit(),
                        d = h.max,
                        g = u.max,
                        p = h.min,
                        f = u.min,
                        m = l.config,
                        v = m.canvasWidth,
                        b = m.canvasHeight,
                        x = r.quadrantLabelPadding,
                        y = r.tlConfig,
                        C = r.trConfig,
                        k = r.blConfig,
                        S = r.brConfig; return e = r.xVal || (r.xVal = (p + d) / 2), (t = r.yVal || (r.yVal = (f + g) / 2)) >= f && t <= g && e >= p && e <= d ? (i = v - (a = v / (d - p) * (e - p)), n = b - (o = b / (g - f) * (t - f)), a -= x, i -= x, o -= x, ((n -= x) < 0 || a < 0) && (y.enabled = !1), (n < 0 || i < 0) && (C.enabled = !1), (o < 0 || a < 0) && (k.enabled = !1), (o < 0 || a < 0) && (S.enabled = !1), r.enabled && (r.drawQuadrant = !0)) : r.drawQuadrant = !1, this }, a._createGroups = function() { var e, t = this.getFromEnv("chart"),
                        a = t.getFromEnv("animationManager"),
                        i = t.getChildren("canvas")[0].getChildContainer("quadrantGroup"),
                        n = this.getContainer("quadrantChildContainer"),
                        o = this.getContainer("quadrantLineGroup"),
                        r = this.getContainer("quadrantTLGroup"),
                        l = this.getContainer("quadrantTRGroup"),
                        s = this.getContainer("quadrantBLGroup"),
                        c = this.getContainer("quadrantBRGroup");
                    e = a.setAnimation({ el: n || "group", attr: { name: "quadrant-child-container" }, container: i, component: this, label: "group" }), n || this.addContainer("quadrantChildContainer", e), this.addContainer("quadrantLineGroup", a.setAnimation({ el: o || "group", attr: { name: "quadrantLineGroup" }, container: e, component: this, label: "group" })), this.addContainer("quadrantTLGroup", a.setAnimation({ el: r || "group", attr: { name: "quadrantTLGroup" }, container: e, component: this, label: "group" })), this.addContainer("quadrantTRGroup", a.setAnimation({ el: l || "group", attr: { name: "quadrantTRGroup" }, container: e, component: this, label: "group" })), this.addContainer("quadrantBLGroup", a.setAnimation({ el: s || "group", attr: { name: "quadrantBLGroup" }, container: e, component: this, label: "group" })), this.addContainer("quadrantBRGroup", a.setAnimation({ el: c || "group", attr: { name: "quadrantBRGroup" }, container: e, component: this, label: "group" })) }, a.draw = function() { var e, t, a, i, n, o, r, l = this._preDraw(),
                        s = l.conf,
                        c = l.getFromEnv("chart"),
                        p = c.config,
                        f = p.reverseXAxis,
                        m = { wrtVisible: !0 },
                        v = l.getFromEnv("smartLabel"),
                        b = l.getFromEnv("animationManager"),
                        x = l.graphics,
                        y = x.tlLabel,
                        C = x.trLabel,
                        k = x.blLabel,
                        S = x.brLabel,
                        w = p.textDirection,
                        L = c.getChildren("xAxis")[0],
                        A = c.getChildren("yAxis")[0],
                        N = s.tlConfig || {},
                        E = s.trConfig || {},
                        T = s.blConfig || {},
                        F = s.brConfig || {},
                        _ = N.enabled && N.label,
                        P = E.enabled && E.label,
                        D = T.enabled && T.label,
                        I = F.enabled && F.label,
                        M = p.canvasLeft,
                        O = p.canvasTop,
                        R = s.quadrantLabelPadding,
                        B = L.getLimit(),
                        V = A.getLimit(),
                        G = f ? B.min : B.max,
                        z = f ? B.max : B.min,
                        H = V.max,
                        W = V.min,
                        j = L.getPixel(z, m) + R,
                        U = L.getPixel(G, m) - R,
                        q = A.getPixel(W, m) - R,
                        Y = A.getPixel(H, m) + R,
                        X = L.getPixel(s.xVal, m),
                        K = A.getPixel(s.yVal, m),
                        Z = X - j,
                        J = U - X,
                        $ = K - Y,
                        Q = q - K,
                        ee = x.horizontalQuadLine,
                        te = x.verticalQuadLine,
                        ae = function() { this.hide() };
                    l._createGroups(), t = l.getContainer("quadrantChildContainer"), a = l.getContainer("quadrantLineGroup"), i = l.getContainer("quadrantTLGroup"), n = l.getContainer("quadrantTRGroup"), o = l.getContainer("quadrantBLGroup"), r = l.getContainer("quadrantBRGroup"), s.enabled && s.drawQuadrant ? (t.show(), x.horizontalQuadLine = b.setAnimation({ el: ee || "path", container: a, attr: { path: "M" + M + " " + K + "h" + p.canvasWidth, stroke: s.quadrantLineColor, "stroke-dasharray": s.dashStyle, "stroke-width": s.quadrantLineThickness, "stroke-linecap": "butt" }, component: l, label: "path" }), x.verticalQuadLine = b.setAnimation({ el: te || "path", container: a, attr: { path: "M" + X + " " + O + "v" + p.canvasHeight, stroke: s.quadrantLineColor, "stroke-width": s.quadrantLineThickness, "stroke-dasharray": s.dashStyle, "stroke-linecap": "butt" }, component: l, label: "path" }), _ ? (v.useEllipsesOnOverflow(p.useEllipsesWhenOverflow), v.setStyle(s.tlConfig.styleObj), e = v.getSmartText(_, Z, $), (y = x.tlLabel = b.setAnimation({ el: y || "text", attr: { "text-anchor": h, "vertical-align": u, x: j, y: Y, text: e.text, direction: w, "text-bound": s.tlConfig["text-bound"] }, container: i, component: l, label: "text" })).css(s.tlConfig.styleObj)) : y && b.setAnimation({ el: y, callback: ae, component: this, label: "text" }), P ? (v.setStyle(s.trConfig.styleObj), e = v.getSmartText(P, J, $), (C = x.trLabel = b.setAnimation({ el: C || "text", attr: { "text-anchor": g, "vertical-align": u, direction: w, x: U, y: Y, text: e.text, "text-bound": s.trConfig["text-bound"] }, container: n, component: l, label: "text" })).css(s.trConfig.styleObj)) : C && b.setAnimation({ el: C, callback: ae, component: this, label: "text" }), D ? (v.setStyle(s.blConfig.styleObj), e = v.getSmartText(D, Z, Q), (k = x.blLabel = b.setAnimation({ el: k || "text", attr: { "text-anchor": h, "vertical-align": d, direction: w, x: j, y: q, text: e.text, "text-bound": s.blConfig["text-bound"] }, container: o, component: l, label: "text" })).css(s.blConfig.styleObj)) : k && b.setAnimation({ el: k, callback: ae, component: this, label: "text" }), I ? (v.setStyle(s.brConfig.styleObj), e = v.getSmartText(I, J, Q), (S = x.brLabel = b.setAnimation({ el: S || "text", attr: { "text-anchor": g, "vertical-align": d, direction: w, x: U, y: q, text: e.text, "text-bound": s.brConfig["text-bound"] }, container: r, component: l, label: "text" })).css(s.brConfig.styleObj)) : S && b.setAnimation({ el: S, callback: ae, component: this, label: "text" })) : t && b.setAnimation({ el: t, component: l, doNotRemove: !0, callback: function() { this.hide() }, label: "group" }) }, t }(r.ComponentInterface);
            t["default"] = p },
        642: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0;
            t["default"] = { "initial.canvas.quadrant": function() { return { "path.appearing": function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "axis" }] }, "text.appearing": function() { return [{ initialAttr: { opacity: 0 }, finalAttr: { opacity: 1 }, slot: "plot" }] } } } } },
        643: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = function(e) { var t, a, i = e.getChildren("canvas")[0],
                    r = i.getChildren("axisRefVisualCartesian")[0],
                    l = { zoomable: !0, pannable: !0 },
                    s = e._feedAxesRawData(),
                    c = function(e) { var t = e.sender;
                        r.addexplicitDrawItems(t.getId(), t), r.asyncDraw() };
                (0, n.componentFactory)(e, o["default"], "yAxis", 1, s.yAxisConf), (0, n.componentFactory)(e, o["default"], "xAxis", 1, s.xAxisConf), t = e.getChildren("yAxis")[0], a = e.getChildren("xAxis")[0], t.setLinkedItem("canvas", i), a.setLinkedItem("canvas", i), r.setLinkedItem(t.getId(), t), r.setLinkedItem(a.getId(), a), r.addExtEventListener("visiblerangeset", c, a), r.addExtEventListener("visiblerangeset", c, t), i.attachAxis(a, !1, e.zoomX ? l : {}), i.attachAxis(t, !0, e.zoomY ? l : {}), e._setCategories() }; var n = a(215),
                o = i(a(463)) },
        644: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(537)),
                r = a(215),
                l = a(223),
                s = i(a(645)),
                c = i(a(646)),
                h = Math,
                u = h.max,
                d = h.min,
                g = h.round;
            (0, l.addDep)({ name: "scatterAnimation", type: "animationRule", extension: c["default"] }); var p = function(e) {
                function t() { return e.apply(this, arguments) || this }(0, n["default"])(t, e); var a = t.prototype; return a.getType = function() { return "dataset" }, a.setupHoverTracker = function() { var e, t, a, i, n, o, r, l = this.config.searchDataArr = [],
                        c = this.components.data,
                        h = {},
                        u = this.getSkippingInfo && this.getSkippingInfo(),
                        d = u && u.draw || [],
                        g = d.length,
                        p = u && u.skippingApplied; for (a = c.length, p && (a = g), t = 0; t < a; t++)(o = c[e = d[t] || [t]]) && (i = (r = o.config)._Px, n = r._Py, h = r.anchorProps, l.push({ x: i, y: n, index: e, data: o, r: h.radius || 0 }));
                    this.config.dataTree = (new s["default"]).buildKdTree(l) }, a.getName = function() { return "scatter" }, a.addDatasetSpecificEvtArgs = function(e) { var t = e.config,
                        a = t.anchorProps,
                        i = t.eventArgs;
                    Object.assign(i, { showValue: t.showValue, hoverColor: !0 === t.hoverEffects.enabled ? t.hoverEffects.hoverColor || a.bgColor : void 0, hoverAlpha: !0 === t.hoverEffects.enabled ? t.hoverEffects.hoverAlpha || "100" : void 0, anchorBgColor: a.bgColor, anchorBgAlpha: a.anchorBgAlpha, anchorAlpha: a.anchorAlpha, anchorBorderColor: a.borderColor, anchorBorderThickness: a.borderThickness, anchorRadius: a.radius, anchorSides: a.sides, anchorStartAngle: a.startAngle, anchorHoverSides: t.hoverEffects.anchorSides }) }, a.configureAttributes = function(e) { if (!e) return !1;
                    this.trimData(e), this.config.JSONData = e; var t, a, i, n, o, l = this.getFromEnv("chart"),
                        s = this.config,
                        c = s.JSONData,
                        h = l.areaAlpha,
                        u = l.getFromEnv("dataSource").chart,
                        d = this.getFromEnv("color-manager"),
                        g = (0, r.pluckNumber)(c.showplotborder, u.showplotborder || 1),
                        p = d.getPlotColor(this.index),
                        f = s.lineDashed = (0, r.pluckNumber)(c.linedashed, c.dashed, u.linedashed, 0),
                        m = this.isLineSet;
                    s.plotColor = p, n = (0, r.pluckNumber)(l.defaultPlotShadow, d.getColor("showShadow")), s.toolTipSepChar = (0, r.pluck)(u.tooltipsepchar, ", "), s.defaultValuePadding = { left: 0, right: 0 }, s.parentYAxis = a = m || "s" === (0, r.pluck)(c.parentyaxis && c.parentyaxis.toLowerCase(), "p") ? 1 : 0, this.config.yAxis = this.getFromEnv("yAxis")[a], s.connectNullData = (0, r.pluckNumber)(u.connectnulldata, 0), s.seriesname = (0, r.parseUnsafeString)(c.seriesname), s.includeinlegend = (0, r.pluckNumber)(c.includeinlegend, s.seriesname ? 1 : 0), s.showTextOutline = (0, r.pluckNumber)(u.textoutline, 0), s.enableAnimation = i = (0, r.pluckNumber)(u.animation, u.defaultanimation, 1), s.animation = !!i && { duration: 1e3 * (0, r.pluckNumber)(u.animationduration, 1) }, s.transposeanimation = (0, r.pluckNumber)(u.transposeanimation, i), s.transposeanimduration = 1e3 * (0, r.pluckNumber)(u.transposeanimduration, .2), s.showvalues = (0, r.pluckNumber)(c.showvalues, u.showvalues), s.valuePadding = (0, r.pluckNumber)(u.valuepadding, 2), s.valuePosition = (0, r.pluck)(c.valueposition, u.valueposition, "auto"), s.showTooltip = (0, r.pluckNumber)(u.showtooltip, 1), s.seriesNameInTooltip = (0, r.pluckNumber)(u.seriesnameintooltip, 1), s.plotFillColor = s.plotfillcolor = (0, r.pluck)(c.color, u.plotfillcolor, p), s.plotFillAngle = s.plotFillAngle = (0, r.pluck)(u.plotfillangle, 270), s.plotFillAlpha = s.plotfillalpha = (0, r.pluck)(c.alpha, u.plotfillalpha, h, "70"), o = (0, r.pluckNumber)(u.useplotgradientcolor, 1), s.plotGradientColor = s.plotgradientcolor = 0 !== o ? (0, r.getDefinedColor)(u.plotgradientcolor, d.getColor("plotGradientColor")) : "", s.fillColor = s.fillcolor = { color: s.plotfillcolor + (s.plotgradientcolor ? "," + s.plotgradientcolor : r.BLANKSTRING), alpha: s.plotfillalpha, angle: s.plotFillAngle }, s.plotBorderAlpha = s.plotborderalpha = g ? (0, r.pluck)(c.plotborderalpha, u.plotborderalpha, c.alpha, "95") : 0, s.plotBorderColor = s.plotbordercolor = (0, r.pluck)(c.plotbordercolor, u.plotbordercolor, u.areabordercolor, "666666"), s.dashed = t = (0, r.pluckNumber)(c.dashed, u.plotborderdashed), s.plotBorderDashLen = s.plotborderdashlen = (0, r.pluck)(c.plotborderdashlen, u.plotborderdashlen, 5), s.plotBorderDashGap = s.plotborderdashgap = (0, r.pluck)(c.plotborderdashgap, u.plotborderdashgap, 4), s.plotBorderThickness = s.plotborderthickness = (0, r.pluckNumber)(c.plotborderthickness, u.plotborderthickness, 1), s.plotBorderDashStyle = s.plotborderdashstyle = t ? (0, r.getDashStyle)(s.plotborderdashlen, s.plotborderdashgap) : "none", s.showHoverEffect = s.showhovereffect = (0, r.pluckNumber)(u.plothovereffect, u.anchorhovereffect, u.showhovereffect, void 0), s.rotateValues = (0, r.pluckNumber)(u.rotatevalues) ? 270 : 0, s.drawLine = (0, r.pluckNumber)(c.drawline, u.drawlines, 0), s.lineThickness = s.linethickness = (0, r.pluckNumber)(c.linethickness, u.linethickness, 2), s.lineDashLen = s.linedashlen = (0, r.pluckNumber)(c.linedashlen, u.linedashlen, 5), s.lineDashGap = s.linedashgap = (0, r.pluckNumber)(c.linedashgap, u.linedashgap, 4), s.lineAlpha = s.linealpha = (0, r.pluckNumber)(c.linealpha, u.linealpha, c.alpha, r.HUNDREDSTRING), s.lineColor = s.linecolor = (0, r.pluck)(c.linecolor, u.linecolor, c.color, s.plotColor), s.lineDashStyle = s.linedashstyle = (0, r.getDashStyle)(s.linedashlen, s.linedashgap), s.lineDashStyle = s.linedashstyle = f ? s.linedashstyle : "none", s.shadow = { opacity: (0, r.pluckNumber)(u.showshadow, n) ? s.linealpha / 100 : 0 }, s.drawanchors = (0, r.pluckNumber)(c.drawanchors, c.showanchors, u.drawanchors, u.showanchors), s.anchorbgcolor = (0, r.getFirstColor)((0, r.pluck)(c.anchorbgcolor, u.anchorbgcolor, d.getColor("anchorBgColor"))), s.anchorbordercolor = (0, r.getFirstColor)((0, r.pluck)(c.anchorbordercolor, c.color, u.anchorbordercolor, s.linecolor)), s.anchorradius = (0, r.pluckNumber)(c.anchorradius, u.anchorradius, 3), s.anchoralpha = (0, r.pluck)(c.anchoralpha, c.alpha, u.anchoralpha, r.HUNDREDSTRING), s.anchorbgalpha = (0, r.pluck)(c.anchorbgalpha, c.alpha, u.anchorbgalpha, r.HUNDREDSTRING), s.anchorborderthickness = (0, r.pluck)(c.anchorborderthickness, u.anchorborderthickness, 1), s.anchorsides = (0, r.pluckNumber)(c.anchorsides, u.anchorsides, s.index + 3), s.anchorimageurl = (0, r.pluck)(c.anchorimageurl, u.anchorimageurl), s.anchorimagealpha = (0, r.pluckNumber)(c.anchorimagealpha, u.anchorimagealpha, 100), s.anchorimagescale = (0, r.pluckNumber)(c.anchorimagescale, u.anchorimagescale, 100), s.anchorimagepadding = (0, r.pluckNumber)(c.anchorimagepadding, u.anchorimagepadding, 1), s.anchorstartangle = (0, r.pluckNumber)(c.anchorstartangle, u.anchorstartangle, 90), s.anchorshadow = (0, r.pluckNumber)(c.anchorshadow, u.anchorshadow, 0), s.plotToolText = (0, r.getValidValue)((0, r.parseUnsafeString)((0, r.pluck)(c.plottooltext, u.plottooltext), !1)), this.setState("visible", 1 === (0, r.pluckNumber)(c.visible, !Number(c.initiallyhidden), 1)), this._setConfigure(), !1 !== l.config.hasLegend && l.config.showLegend && this._addLegend(), this.setState("dirty", !0) }, a.calculateScrollRange = function() { var e = this.config,
                        t = this.getFromEnv("chart"),
                        a = this.getFromEnv("xAxis"),
                        i = t.hasScroll,
                        n = this.components.data.length;
                    e.scrollMinVal = i ? u(g(a.getVisibleConfig().minValue) - 1, 0) : 0, e.scrollMaxVal = i ? d(g(a.getVisibleConfig().maxValue) + 2, n) : n, e.scrollMinValForLabel = e.scrollMinVal, e.scrollMaxValForLabel = e.scrollMaxVal }, a._setConfigure = function() { var e, t, a, i, n, o, l, s, c, h, u, d, g = -Infinity,
                        p = +Infinity,
                        f = g,
                        m = p,
                        v = p,
                        b = g,
                        x = this.components.data || (this.components.data = []),
                        y = this.getFromEnv("chart"),
                        C = this.config,
                        k = C.JSONData,
                        S = y.getFromEnv("dataSource").chart,
                        w = k.data || [],
                        L = w.length,
                        A = this.getFromEnv("number-formatter"),
                        N = (0, r.parseUnsafeString)(S.yaxisname),
                        E = (0, r.parseUnsafeString)(S.xaxisname),
                        T = C.lineDashed,
                        F = C.linedashstyle,
                        _ = C.parentYAxis,
                        P = C.toolTipSepChar,
                        D = C.seriesname; for (C.imageCount = 0, e = 0; e < L; e += 1) i = w[e], (t = (a = x[e] || (x[e] = {})).config || (a.config = {})).setValue = n = { x: A.getCleanValue(i.x), y: A.getCleanValue(i.y) }, null !== n.x && null !== n.y && (n.x > b && (b = n.x, C.rightMostData = a), n.x < v && (v = n.x, C.leftMostData = a), n.y > f && (f = n.y, C.topMostData = a), n.y < m && (m = n.y, C.bottomMostData = a)), t._x = n.x, t._y = n.y, t.dataLabelStyle = this._configureDataLabelStyle(i), t.setLink = (0, r.pluck)(i.link), t.anchorProps = this._parseAnchorProperties(e), t.showValue = (0, r.pluckNumber)(i.showvalue, C.showvalues), t.dashed = (0, r.pluckNumber)(i.dashed, T), t.color = (0, r.pluck)(i.color, C.linecolor), t.alpha = (0, r.pluck)(i.alpha, C.linealpha), t.dashStyle = t.dashed ? F : "none", t.toolTipValue = l = A.dataLabels(n.y, _), t.setDisplayValue = d = (0, r.parseUnsafeString)(i.displayvalue), h = t.formatedVal = (0, r.pluck)(i.toolTipValue, A.dataLabels(n.y, _)), u = A.xAxis(n.x), t.displayValue = (0, r.pluck)(d, l), t.setTooltext = (0, r.getValidValue)((0, r.parseUnsafeString)((0, r.pluck)(i.tooltext, C.plotToolText), !1)), C.showTooltip ? void 0 !== t.setTooltext ? (s = [4, 5, 6, 7, 8, 9, 10, 11], c = { yaxisName: N, xaxisName: E, yDataValue: h, xDataValue: u }, o = (0, r.parseTooltext)(t.setTooltext, s, c, i, S, k)) : null === h ? o = !1 : (o = D ? D + P : r.BLANKSTRING, o += n.x ? u + P : r.BLANKSTRING, o += l) : o = !1, t.toolText = o, a ? a.graphics || (x[e].graphics = {}) : a = x[e] = { graphics: {} }, t.hoverEffects = this._parseHoverEffectOptions(a, i), t.anchorProps.isAnchorHoverRadius = t.hoverEffects.anchorRadius;
                    C.xMax = b, C.xMin = v, C.yMin = m, C.yMax = f, this.ErrorValueConfigure && this.ErrorValueConfigure() }, a._getHoveredPlot = function(e, t) { var a = this.config.dataTree.getNeighbour({ x: e, y: t }, !0); if (a) return { pointIndex: a.index || a.i, hovered: !0, pointObj: a.data } }, a.drawPlots = function() { e.prototype.drawPlots.call(this), this.setupHoverTracker() }, a.getRegressionPoints = function() { var e, t, a, i, n, o, r, l, s = this.getChildren("regression"),
                        c = -Infinity,
                        h = Infinity,
                        u = -Infinity,
                        d = Infinity; if (s && s.length && !s[0].getState("removed")) { for (r = (e = s[0]._config.regressionPoints || []).length, t = 0; t < r; t++)
                            for (n = e[t], a = 0; a < n.length; a++)
                                for (l = (o = n[a] || []).length, i = 0; i < l; i++) c = Math.max(c, o[i].x), h = Math.min(h, o[i].x), u = Math.max(u, o[i].y), d = Math.min(d, o[i].y); return { max: u, min: d, xMax: c, xMin: h } } }, a.getDataLimits = function() { var e = this.config,
                        t = this.getFromEnv("chart").config,
                        a = e.yMax,
                        i = e.yMin,
                        n = e.xMax,
                        o = e.xMin,
                        r = -Infinity,
                        l = +Infinity,
                        s = t.transposeAxis,
                        c = this.getRegressionPoints(); return !1 === this.getState("visible") && s && (a = r, i = l, n = r, o = l), c && (a = Math.max(a, c.max), i = Math.min(i, c.min), n = Math.max(n, c.xMax), o = Math.min(o, c.xMin)), { max: a, min: i, xMax: n, xMin: o } }, a.getAxisValuePadding = function() { return this.config.defaultValuePadding }, a.getCanvasPadding = function() { var e, t, a, i, n, o, l, s, c, h, g, p, f, m, v, b, x, y = this.config || (this.config = {}),
                        C = this.components || {},
                        k = this.getFromEnv("chartConfig"),
                        S = k.rotatevalues,
                        w = this.getFromEnv("xAxis"),
                        L = this.getFromEnv("yAxis"),
                        A = w.config.isReverse,
                        N = this.getFromEnv("dataLabelStyle"),
                        E = C.data || [],
                        T = E.length,
                        F = y.leftMostData || E[0],
                        _ = y.rightMostData || E[E.length - 1],
                        P = y.topMostData,
                        D = y.bottomMostData,
                        I = d(k.canvasHeight, k.canvasWidth) / 8,
                        M = w.getValue(0),
                        O = 1,
                        R = 1,
                        B = k.zMax,
                        V = y.bubbleScale,
                        G = {},
                        z = {},
                        H = 0,
                        W = 0,
                        j = w.config.axisRange,
                        U = j.min,
                        q = j.max,
                        Y = L.config.axisRange,
                        X = Y.min,
                        K = Y.max,
                        Z = w.getPixel(U),
                        J = w.getPixel(q),
                        $ = this.getFromEnv("smartLabel"),
                        Q = { paddingLeft: 0, paddingRight: 0 },
                        ee = 0; for (e = I / Math.sqrt(B), c = 0; c < T; c++) t = E[c].config, a = F.config, i = _.config, l = Math.sqrt(t.z), m = Math.round(l * e) * V || 0, v = w.getValue(m) - M, h = t.x - v / 2, 1 === O && (l = Math.sqrt(a.z), m = Math.round(l * e) * V || 0, v = w.getValue(m) - M, g = a.x - v / 2), 1 === R && (l = Math.sqrt(i.z), m = Math.round(l * e) * V || 0, v = w.getValue(m) - M, p = i.x - v / 2), O = 0, R = 0, g > h && (F = E[c], O = 1), p < h && (_ = E[c], R = 1); return F && (o = (n = F.config).anchorProps.radius, (b = n.showValue) && (f = n.displayValue, $.useEllipsesOnOverflow(k.useEllipsesWhenOverflow), $.setStyle(N), z = $.getOriSize(f), ee = S ? z.height : z.width), null !== n.setValue && (h = w.getPixel(n.setValue.x), W = A ? J - (s = h - .5 * ee) : Z - (s = h - .5 * ee), H = !A && h - o <= Z || A && h - o <= J ? A ? J - (h - o) : Z - (h - o) : 0), Q.paddingLeft = u(W, H)), _ && (b = (n = _.config).showValue, o = n.anchorProps.radius, b && (f = n.displayValue, $.setStyle(N), G = $.getOriSize(f), ee = S ? G.height : G.width), null !== n.setValue && (W = (s = (h = w.getPixel(n.setValue.x)) - Z + .5 * ee) - J + Z, A && (W = s), H = !A && h + o >= J || A && h + o >= Z ? A ? h + o - Z : h + o - J : 0), Q.paddingRight = u(W, H)), P && (o = (n = P.config).anchorProps.radius || 0, K = L.getPixel(K), null !== n.setValue && (x = L.getPixel(n.setValue.y), H = (0, r.pluckNumber)(o, 0) + (0, r.pluckNumber)(n.anchorProps.borderThickness, 0) / 2), Q.paddingTop = K - (x - H) > 0 ? K - (x - H) : 0), D && (o = (n = D.config).anchorProps.radius || 0, X = L.getPixel(X), null !== n.setValue && (x = L.getPixel(n.setValue.y), H = (0, r.pluckNumber)(o, 0) + (0, r.pluckNumber)(n.anchorProps.borderThickness, 0) / 2), Q.paddingBottom = x + H - X > 0 ? x + H - X : 0), Q }, a._addLegend = function() { var e, t, a, i, n, o, l, s, c, h = this.getFromEnv("chart"),
                        u = this.config,
                        d = h.getChildren("legend")[0],
                        g = (0, r.pluckNumber)(u.drawanchors, 1),
                        p = { fillColor: (o = u.anchorbgcolor, l = r.HUNDREDSTRING, s = o, c = l, s = (0, r.getFirstColor)(s), c = (0, r.getFirstAlpha)(c), { FCcolor: { gradientUnits: "objectBoundingBox", cx: .4, cy: .4, r: "100%", color: (0, r.getLightColor)(s, 70) + "," + (0, r.getDarkColor)(s, 50), alpha: c + "," + c, ratio: r.BGRATIOSTRING, radialGradient: !0 } }), lineColor: { FCcolor: { color: u.anchorbordercolor, alpha: u.anchoralpha } }, lineWidth: u.anchorborderthickness };
                    d.config.symbol3DLighting ? p.fillcolor && p.fillcolor.FCcolor ? (e = (0, r.extend2)({}, p.fillcolor)).FCcolor.alpha = r.HUNDREDSTRING : e = (0, r.pluck)(p.fillColor) : e = { FCcolor: { color: (0, r.pluck)((t = p.fillColor) && (t.FCcolor && t.FCcolor.color.split(",")[0] || t)), angle: 0, ratio: "0", alpha: "100" } }, i = { enabled: u.includeInLegend, type: this.type, drawLine: (0, r.pluck)(u.drawLine, !0), anchorSide: g ? u.anchorsides : 0, label: (0, r.getFirstValue)(this.config.JSONData.seriesname) }, u.includeinlegend ? ((n = d.getItem(this.config.legendItemId)) ? n.configure({ style: d.config.itemStyle, hiddenStyle: d.config.itemHiddenStyle, datasetVisible: d.config.datasetVisible, hoverStyle: d.config.itemHoverStyle }) : (this.config.legendItemId = d.createItem(this), n = d.getItem(this.config.legendItemId), this.addExtEventListener("fc-click", (function() { n.itemClickFn() }), n)), n.configure(i), n.setStateCosmetics("default", { symbol: { fill: (0, r.toRaphaelColor)(e), rawFillColor: u.anchorbgcolor, rawStrokeColor: u.lineColor, stroke: (0, r.toRaphaelColor)((0, r.pluck)((a = p.lineColor) && (a.FCcolor && a.FCcolor.color.split(",")[0] || a))), "stroke-width": u.anchorborderthickness } }), this.getState("visible") ? n.removeLegendState("hidden") : n.setLegendState("hidden")) : this.config.legendItemId && d.disposeItem(this.config.legendItemId) }, a.getDSGroupdef = function() {}, a.trimData = function(e) { if (this.config.JSONData) { var t, a, i = this.config,
                            n = i && i.context,
                            o = n && n.prevCatlen,
                            r = this.getFromEnv("xAxis").getTicksLen(),
                            l = o - r,
                            s = i.JSONData,
                            c = s.data && s.data.length,
                            h = e.data && e.data.length || 0,
                            u = c - h;
                        l > u ? (t = l, a = r) : (t = u, a = h), t > 0 && this.removeData(a, t, !1) } }, t }(o["default"]);
            t["default"] = p },
        645: function(e, t, a) {
            "use strict";
            t.__esModule = !0, t["default"] = void 0;
            /** !
             * @license FusionCharts JavaScript Library - KDtree
             * Copyright FusionCharts, Inc.
             * License Information at <http://www.fusioncharts.com/license>
             *
             * @version //? write(JSON.parse(require('fs').readFileSync('./package.json')).version);
             */
            var i = function(e, t, a, i, n) { return Math.pow(a - e, 2) + Math.pow(i - t, 2) <= Math.pow(n, 2) },
                n = Math.PI,
                o = Math.cos,
                r = Math.sin,
                l = Math.max,
                s = Math.min,
                c = n / 180,
                h = function(e, t, a, i, n, o) { var r, l, s; return r = (i - t) * (n - a), l = (a - e) * (o - i), isNaN(r) && (r = 0), isNaN(l) && (l = 0), 0 === (s = r - l) ? 0 : s > 0 ? 1 : 2 },
                u = function(e, t, a, i, n, o) { return a <= l(e, n) && a >= s(e, n) && i <= l(t, o) && i >= s(t, o) },
                d = function(e, t, a, i, n, o, r, l) { var s = h(e, t, a, i, n, o),
                        c = h(e, t, a, i, r, l),
                        d = h(n, o, r, l, e, t),
                        g = h(n, o, r, l, a, i); return s !== c && d !== g || (!(0 !== s || !u(e, t, n, o, a, i)) || (!(0 !== c || !u(e, t, r, l, a, i)) || (!(0 !== d || !u(n, o, e, t, r, l)) || !(0 !== g || !u(n, o, a, i, r, l))))) },
                g = function(e, t, a, l, s, g, p) { var f, m, v, b, x, y, C, k = Infinity,
                        S = 0,
                        w = !1; if (i(e, t, a, l, s) && g >= 3) { for (m = void 0 === p ? .5 * n : p % 360 * c, C = 2 * n / g, v = a + s * o(-m), y = l + s * r(-m), f = 0; f < g; f++) { if (b = a + s * o(-(m += C)), x = l + s * r(-m), d(v, y, b, x, e, t, k, t)) { if (0 === h(v, y, e, t, b, x)) return u(v, y, e, t, b, x);
                                S++ } v = b, y = x } w = S % 2 != 0 } return w },
                p = function(e, t) { return !e || e && t && t.i > e.i ? t : e };
            var f = function() {
                function e(e) { this.configure(e) } var t = e.prototype; return t.configure = function(e) { this.validatorFn = e ? this.shapeValidator() : this.defaultValidator() }, t.defaultValidator = function() { var e = this; return function(t) { var a = e.mousePoint; return !!(t && Math.pow((t.x - a.x) / e.xLimit, 2) + Math.pow((t.y - a.y) / e.yLimit, 2) <= 1) } }, t.shapeValidator = function() { var e = this; return function(t) { var a, n, o, r, l, s, c, h, u = e.mousePoint,
                            d = t && t.shapeInfo,
                            p = !1,
                            f = u.x,
                            m = u.y; switch (d && d.type) {
                            case "circle":
                                n = d.radius, p = i(f, m, t.x, t.y, n); break;
                            case "arc":
                                a = d.innerradius, n = d.radius, p = !i(f, m, t.x, t.y, a) && i(f, m, t.x, t.y, n); break;
                            case "polygon":
                                n = d.radius, r = d.startAngle, o = d.sides, p = g(f, m, t.x, t.y, n, o, r); break;
                            case "rect":
                            case "rectangle":
                                l = t.x, c = t.y, s = l + (d.width || 0), h = c + (d.height || 0), p = f >= l && f <= s && m >= c && m <= h; break;
                            case "default":
                                p = !1 } return p } }, t.buildKdTree = function(e) { return this.kdTree = function(e) { var t, a, i, n = e,
                            o = n && n[0] && n[0].r || 5,
                            r = Math.max,
                            l = Math.floor,
                            s = Math.sqrt,
                            c = Math.min,
                            h = Math.log,
                            u = Math.exp,
                            d = Math.pow;

                        function g(e, t, a) { var i = e[t];
                            e[t] = e[a], e[a] = i } for (a = function(e, t, i, n) { for (var o, d, p, f, m, v, b, x, y, C, k = i, S = n; S > k;) { for (S - k > 600 && (d = t - k + 1, p = h(o = S - k + 1), f = .5 * u(2 * p / 3), m = .5 * s(p * f * (o - f) / o) * (d - o / 2 < 0 ? -1 : 1), v = r(k, l(t - d * f / o + m)), b = c(S, l(t + (o - d) * f / o + m)), a(e, t, v, b)), x = e[t], y = k, C = S, g(e, k, t), e[S].x > x.x && g(e, k, S); y < C;) { for (g(e, y, C), y++, C--; e[y].x < x.x;) y++; for (; e[C].x > x.x;) C-- } e[k].x === x.x ? g(e, k, C) : g(e, ++C, S), C <= t && (k = C + 1), t <= C && (S = C - 1) } }, i = function(e, t, a, n) { for (var o, d, p, f, m, v, b, x, y, C, k = a, S = n, w = e; S > k;) { for (S - k > 600 && (d = t - k + 1, p = h(o = S - k + 1), f = .5 * u(2 * p / 3), m = .5 * s(p * f * (o - f) / o) * (d - o / 2 < 0 ? -1 : 1), v = r(k, l(t - d * f / o + m)), b = c(S, l(t + (o - d) * f / o + m)), i(w, t, v, b)), x = w[t], y = k, C = S, g(w, k, t), w[S].y > x.y && g(w, k, S); y < C;) { for (g(w, y, C), y++, C--; w[y].y < x.y;) y++; for (; w[C].y > x.y;) C-- } w[k].y === x.y ? g(w, k, C) : g(w, ++C, S), C <= t && (k = C + 1), t <= C && (S = C - 1) } }, t = (n = n || []).length; t--;) n[t].r > o && (o = n[t].r), n[t].i = t, n[t].x = +n[t].x, n[t].y = +n[t].y; return { tree: 0 === n.length ? {} : function p(e, t, n, o) { var r, l = {},
                                    s = o ? "y" : "x"; return t === n ? (l.point = e[t], l) : n - t == 1 ? (e[t][s] > e[n][s] ? (l.point = e[t], l.left = { point: e[n] }) : (l.point = e[n], l.left = { point: e[t] }), l) : (r = t + n >> 1, o ? i(e, r, t, n) : a(e, r, t, n), l.point = e[r], l.left = p(e, t, r - 1, !o), l.right = p(e, r + 1, n, !o), l) }(n, 0, n.length - 1, !1), search: function(e, t, a, i) { var n, r, l, c = this.tree,
                                    h = i,
                                    u = e - o,
                                    g = e + o,
                                    p = t - o,
                                    f = t + o,
                                    m = !1,
                                    v = 0;

                                function b(e, t, a, i) { return s(d(e - a, 2) + d(t - i, 2)) }

                                function x(i, n) { return "circle" === a ? b(i, n, e, t) <= u : i >= u && i <= g && n >= p && n <= f }

                                function y(e, t, a) { return e >= t && e <= a }

                                function C(a) { var i = y(e, a.x1, a.x2) && y(t, a.y1, a.y2),
                                        o = b(e, t, a.point.x, a.point.y); if (!n) return n = a, m = i, void(v = o);
                                    i ? m ? a.point.i > n.point.i && (n = a, m = i, v = o) : (n = a, m = i, v = o) : m || o < v && (n = a, m = i, v = o) }

                                function k(i, n) { "circle" === a ? u = i : (u = e - i || 0, g = e + i || 0, p = t - n || 0, f = t + n || 0) } return h = h || {}, l = function(e) { e && e.point && (k(h.rx || e.point.r, h.ry || e.point.r), x(e.point.x, e.point.y) && C(e), p <= e.point.y && r(e.left), f >= e.point.y && r(e.right)) }, (r = function(e) { e && e.point && (k(h.rx || e.point.r, h.ry || e.point.r), x(e.point.x, e.point.y) && C(e), u <= e.point.x && l(e.left), g >= e.point.x && l(e.right)) })(c), n && n.point || n } } }(e), this.tree = this.kdTree.tree, this }, t.getNeighbour = function(e, t, a) { var i = this.tree,
                        n = { x1: e.x - this.xLimit, x2: e.x + this.xLimit, y1: e.y - this.yLimit, y2: e.y + this.yLimit },
                        o = this.validatorFn; return this.mousePoint = e, t ? this.kdTree && this.kdTree.search(e.x, e.y, a, e.options) : i ? this._searchBtwnLimit(n, i, !0, o) : void 0 }, t._searchBtwnLimit = function(e, t, a, i) { var n, o, r = a ? "x" : "y",
                        l = a ? e.x1 : e.y1,
                        s = a ? e.x2 : e.y2; if (void 0 !== (n = t && t.point && t.point[r])) return i(t.point) && (o = t.point), n >= l && t.left && (o = p(o, this._searchBtwnLimit(e, t.left, !a, i))), n <= s && t.right && (o = p(o, this._searchBtwnLimit(e, t.right, !a, i))), o }, t._setSearchLimit = function(e, t) { this.xLimit = e, this.yLimit = t }, e }();
            f.prototype.constructor = f;
            var m = f;
            t["default"] = m
        },
        646: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = { "*.dataset.scatter": i(a(540))["default"]["*.dataset.line"] };
            t["default"] = n },
        654: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(538)),
                r = i(a(655)),
                l = function(e) {
                    function t() { var t; return (t = e.call(this) || this).defaultPlotShadow = 0, t }(0, n["default"])(t, e), t.getName = function() { return "MSArea" }; var a = t.prototype; return a.getName = function() { return "MSArea" }, a.getDSdef = function() { return o["default"] }, a.getDSGroupdef = function() {}, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.friendlyName = "Multi-series Area Chart", t.defaultDatasetType = "area", t.defaultcrosslinethickness = 1 }, t }(r["default"]);
            t["default"] = l },
        655: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t._setDefaultConfig = t["default"] = void 0; var n = i(a(229)),
                o = i(a(616)),
                r = a(215),
                l = r.preDefStr.SEVENTYSTRING,
                s = function() { var e = this.config;
                    e.anchorborderthickness = 1, e.anchorimageurl = void 0, e.anchorimagepadding = 1, e.anchorsides = 1, e.anchoralpha = void 0, e.anchorbgalpha = r.HUNDREDSTRING, e.anchorimagealpha = r.HUNDREDSTRING, e.anchorimagescale = 100, e.anchorstartangle = 90, e.anchorshadow = 0, e.anchorbgcolor = void 0, e.anchorbordercolor = void 0, e.anchorradius = 3, e.showvalues = 1, e.plotfillalpha = l, e.linedashlen = 5, e.linedashgap = 4, e.linedashed = void 0, e.linealpha = r.HUNDREDSTRING, e.linethickness = 2, e.drawfullareaborder = 1, e.connectnulldata = 0 };
            t._setDefaultConfig = s; var c = function(e) {
                function t() { return e.apply(this, arguments) || this } return (0, n["default"])(t, e), t.getName = function() { return "AreaBase" }, t.prototype.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this), s.call(this) }, t }(o["default"]);
            t["default"] = c },
        699: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(655)),
                r = i(a(537)),
                l = function(e) {
                    function t() { var t; return (t = e.call(this) || this).defaultPlotShadow = 1, t.axisPaddingLeft = 0, t.axisPaddingRight = 0, t }(0, n["default"])(t, e), t.getName = function() { return "MSLine" }; var a = t.prototype; return a.getName = function() { return "MSLine" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.friendlyName = "Multi-series Line Chart", t.defaultDatasetType = "line", t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1 }, a.getDSdef = function() { return r["default"] }, a.getDSGroupdef = function() {}, t }(o["default"]);
            t["default"] = l },
        702: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(703))["default"];
            t["default"] = n },
        703: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(704))["default"];
            t["default"] = n },
        704: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(655),
                r = i(a(608)),
                l = i(a(444)),
                s = function(e) {
                    function t() { var t; return (t = e.call(this) || this).defaultPlotShadow = 1, t }(0, n["default"])(t, e), t.getName = function() { return "Spline" }; var a = t.prototype; return a.getName = function() { return "Spline" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.friendlyName = "Spline Chart", t.singleseries = !0, t.defaultDatasetType = "msspline", t.minimizetendency = 0, t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1, o._setDefaultConfig.call(this) }, a.getDSdef = function() { return r["default"] }, t }(l["default"]);
            t["default"] = s },
        705: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(706))["default"];
            t["default"] = n },
        706: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(704)),
                r = a(655),
                l = i(a(604)),
                s = function(e) {
                    function t() { var t; return (t = e.call(this) || this).defaultPlotShadow = 0, t }(0, n["default"])(t, e), t.getName = function() { return "SplineArea" }; var a = t.prototype; return a.getName = function() { return "SplineArea" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        r._setDefaultConfig.call(this), t.friendlyName = "Spline Area Chart", t.singleseries = !0, t.hasLegend = !1, t.defaultDatasetType = "mssplinearea", t.anchoralpha = "100", t.minimizetendency = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1, t.showzeroplaneontop = 1, t.inheritplotbordercolor = 0 }, a.getDSdef = function() { return l["default"] }, a.getDSGroupdef = function() {}, t }(o["default"]);
            t["default"] = s },
        707: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(708))["default"];
            t["default"] = n },
        708: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(709))["default"];
            t["default"] = n },
        709: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(655),
                r = i(a(608)),
                l = i(a(547)),
                s = function(e) {
                    function t() { var t; return (t = e.call(this) || this).defaultPlotShadow = 1, t }(0, n["default"])(t, e), t.getName = function() { return "MSSpline" }; var a = t.prototype; return a.getName = function() { return "MSSpline" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.friendlyName = "Multi-series Spline  Chart", t.defaultDatasetType = "msspline", t.minimizetendency = 0, t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1, o._setDefaultConfig.call(this) }, a.getDSdef = function() { return r["default"] }, a.getDSGroupdef = function() {}, t }(l["default"]);
            t["default"] = s },
        710: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(711))["default"];
            t["default"] = n },
        711: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = a(655),
                r = i(a(589)),
                l = i(a(608)),
                s = function(e) {
                    function t() { var t; return (t = e.call(this) || this).isDual = !0, t }(0, n["default"])(t, e), t.getName = function() { return "MSSplineDy" }; var a = t.prototype; return a.getName = function() { return "MSSplineDy" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        t.friendlyName = "Multi-series Dual Y-Axis Spline Chart", t.defaultDatasetType = "msspline", t.minimizetendency = 0, t.zeroplanethickness = 1, t.zeroplanealpha = 40, t.showzeroplaneontop = 0, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1, t.isdual = !0, o._setDefaultConfig.call(this) }, a.getDSdef = function() { return l["default"] }, a.getDSGroupdef = function() {}, a.getDSType = function() { return "spline" }, t }(r["default"]);
            t["default"] = s },
        712: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(713))["default"];
            t["default"] = n },
        713: function(e, t, a) { "use strict"; var i = a(208);
            t.__esModule = !0, t["default"] = void 0; var n = i(a(229)),
                o = i(a(709)),
                r = a(655),
                l = i(a(604)),
                s = function(e) {
                    function t() { var t; return (t = e.call(this) || this).friendlyName = "Multi-series Spline Area Chart", t.defaultPlotShadow = 0, t }(0, n["default"])(t, e), t.getName = function() { return "MSSplineArea" }; var a = t.prototype; return a.getName = function() { return "MSSplineArea" }, a.__setDefaultConfig = function() { e.prototype.__setDefaultConfig.call(this); var t = this.config;
                        r._setDefaultConfig.call(this), t.defaultDatasetType = "mssplinearea", t.minimizetendency = 0, t.zeroplanethickness = 2, t.zeroplanealpha = 80, t.showzeroplaneontop = 1, t.enablemousetracking = !0, t.defaultcrosslinethickness = 1 }, a.getDSdef = function() { return l["default"] }, a.getDSGroupdef = function() {}, t }(o["default"]);
            t["default"] = s },
        722: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = a(726),
                o = a(729),
                r = a(732),
                l = a(740),
                s = Object(i["default"])(Object(n["default"])(["fantasy-land/chain", "chain"], r["default"], (function(e, t) { return "function" == typeof t ? function(a) { return e(t(a))(a) } : Object(o["default"])(!1)(Object(l["default"])(e, t)) })));
            t["default"] = s },
        723: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return o })); var i = a(724),
                n = a(725);

            function o(e) { return function t(a, o) { switch (arguments.length) {
                        case 0:
                            return t;
                        case 1:
                            return Object(n["default"])(a) ? t : Object(i["default"])((function(t) { return e(a, t) }));
                        default:
                            return Object(n["default"])(a) && Object(n["default"])(o) ? t : Object(n["default"])(a) ? Object(i["default"])((function(t) { return e(t, o) })) : Object(n["default"])(o) ? Object(i["default"])((function(t) { return e(a, t) })) : e(a, o) } } } },
        724: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return n })); var i = a(725);

            function n(e) { return function t(a) { return 0 === arguments.length || Object(i["default"])(a) ? t : e.apply(this, arguments) } } },
        725: function(e, t, a) { "use strict";

            function i(e) { return null != e && "object" == typeof e && !0 === e["@@functional/placeholder"] } a.r(t), a.d(t, "default", (function() { return i })) },
        726: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return o })); var i = a(727),
                n = a(728);

            function o(e, t, a) { return function() { if (0 === arguments.length) return a(); var o = Array.prototype.slice.call(arguments, 0),
                        r = o.pop(); if (!Object(i["default"])(r)) { for (var l = 0; l < e.length;) { if ("function" == typeof r[e[l]]) return r[e[l]].apply(r, o);
                            l += 1 } if (Object(n["default"])(r)) { var s = t.apply(null, o); return s(r) } } return a.apply(this, arguments) } } },
        727: function(e, t, a) { "use strict";
            a.r(t), t["default"] = Array.isArray || function(e) { return null != e && e.length >= 0 && "[object Array]" === Object.prototype.toString.call(e) } },
        728: function(e, t, a) { "use strict";

            function i(e) { return "function" == typeof e["@@transducer/step"] } a.r(t), a.d(t, "default", (function() { return i })) },
        729: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return n })); var i = a(730);

            function n(e) { return function t(a) { for (var n, o, r, l = [], s = 0, c = a.length; s < c;) { if (Object(i["default"])(a[s]))
                            for (r = 0, o = (n = e ? t(a[s]) : a[s]).length; r < o;) l[l.length] = n[r], r += 1;
                        else l[l.length] = a[s];
                        s += 1 } return l } } },
        730: function(e, t, a) { "use strict";
            a.r(t); var i = a(724),
                n = a(727),
                o = a(731),
                r = Object(i["default"])((function(e) { return !!Object(n["default"])(e) || !!e && ("object" == typeof e && (!Object(o["default"])(e) && (1 === e.nodeType ? !!e.length : 0 === e.length || e.length > 0 && (e.hasOwnProperty(0) && e.hasOwnProperty(e.length - 1))))) }));
            t["default"] = r },
        731: function(e, t, a) { "use strict";

            function i(e) { return "[object String]" === Object.prototype.toString.call(e) } a.r(t), a.d(t, "default", (function() { return i })) },
        732: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = a(733),
                o = a(740),
                r = Object(i["default"])((function(e, t) { return Object(o["default"])(e, Object(n["default"])(t)) }));
            t["default"] = r },
        733: function(e, t, a) { "use strict";
            a.r(t); var i = a(734),
                n = a(730),
                o = a(735),
                r = a(739);
            t["default"] = function(e) { var t = function(e) { return { "@@transducer/init": r["default"].init, "@@transducer/result": function(t) { return e["@@transducer/result"](t) }, "@@transducer/step": function(t, a) { var n = e["@@transducer/step"](t, a); return n["@@transducer/reduced"] ? Object(i["default"])(n) : n } } }(e); return { "@@transducer/init": r["default"].init, "@@transducer/result": function(e) { return t["@@transducer/result"](e) }, "@@transducer/step": function(e, a) { return Object(n["default"])(a) ? Object(o["default"])(t, e, a) : Object(o["default"])(t, e, [a]) } } } },
        734: function(e, t, a) { "use strict";

            function i(e) { return { "@@transducer/value": e, "@@transducer/reduced": !0 } } a.r(t), a.d(t, "default", (function() { return i })) },
        735: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return c })); var i = a(730),
                n = a(736),
                o = a(737);

            function r(e, t, a) { for (var i = a.next(); !i.done;) { if ((t = e["@@transducer/step"](t, i.value)) && t["@@transducer/reduced"]) { t = t["@@transducer/value"]; break } i = a.next() } return e["@@transducer/result"](t) }

            function l(e, t, a, i) { return e["@@transducer/result"](a[i](Object(o["default"])(e["@@transducer/step"], e), t)) } var s = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator";

            function c(e, t, a) { if ("function" == typeof e && (e = Object(n["default"])(e)), Object(i["default"])(a)) return function(e, t, a) { for (var i = 0, n = a.length; i < n;) { if ((t = e["@@transducer/step"](t, a[i])) && t["@@transducer/reduced"]) { t = t["@@transducer/value"]; break } i += 1 } return e["@@transducer/result"](t) }(e, t, a); if ("function" == typeof a["fantasy-land/reduce"]) return l(e, t, a, "fantasy-land/reduce"); if (null != a[s]) return r(e, t, a[s]()); if ("function" == typeof a.next) return r(e, t, a); if ("function" == typeof a.reduce) return l(e, t, a, "reduce"); throw new TypeError("reduce: list must be array or iterable") } },
        736: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return n })); var i = function() {
                function e(e) { this.f = e } return e.prototype["@@transducer/init"] = function() { throw new Error("init not implemented on XWrap") }, e.prototype["@@transducer/result"] = function(e) { return e }, e.prototype["@@transducer/step"] = function(e, t) { return this.f(e, t) }, e }();

            function n(e) { return new i(e) } },
        737: function(e, t, a) { "use strict";
            a.r(t); var i = a(738),
                n = a(723),
                o = Object(n["default"])((function(e, t) { return Object(i["default"])(e.length, (function() { return e.apply(t, arguments) })) }));
            t["default"] = o },
        738: function(e, t, a) { "use strict";

            function i(e, t) { switch (e) {
                    case 0:
                        return function() { return t.apply(this, arguments) };
                    case 1:
                        return function(e) { return t.apply(this, arguments) };
                    case 2:
                        return function(e, a) { return t.apply(this, arguments) };
                    case 3:
                        return function(e, a, i) { return t.apply(this, arguments) };
                    case 4:
                        return function(e, a, i, n) { return t.apply(this, arguments) };
                    case 5:
                        return function(e, a, i, n, o) { return t.apply(this, arguments) };
                    case 6:
                        return function(e, a, i, n, o, r) { return t.apply(this, arguments) };
                    case 7:
                        return function(e, a, i, n, o, r, l) { return t.apply(this, arguments) };
                    case 8:
                        return function(e, a, i, n, o, r, l, s) { return t.apply(this, arguments) };
                    case 9:
                        return function(e, a, i, n, o, r, l, s, c) { return t.apply(this, arguments) };
                    case 10:
                        return function(e, a, i, n, o, r, l, s, c, h) { return t.apply(this, arguments) };
                    default:
                        throw new Error("First argument to _arity must be a non-negative integer no greater than ten") } } a.r(t), a.d(t, "default", (function() { return i })) },
        739: function(e, t, a) { "use strict";
            a.r(t), t["default"] = { init: function() { return this.xf["@@transducer/init"]() }, result: function(e) { return this.xf["@@transducer/result"](e) } } },
        740: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = a(726),
                o = a(741),
                r = a(735),
                l = a(742),
                s = a(743),
                c = a(745),
                h = Object(i["default"])(Object(n["default"])(["fantasy-land/map", "map"], l["default"], (function(e, t) { switch (Object.prototype.toString.call(t)) {
                        case "[object Function]":
                            return Object(s["default"])(t.length, (function() { return e.call(this, t.apply(this, arguments)) }));
                        case "[object Object]":
                            return Object(r["default"])((function(a, i) { return a[i] = e(t[i]), a }), {}, Object(c["default"])(t));
                        default:
                            return Object(o["default"])(e, t) } })));
            t["default"] = h },
        741: function(e, t, a) { "use strict";

            function i(e, t) { for (var a = 0, i = t.length, n = Array(i); a < i;) n[a] = e(t[a]), a += 1; return n } a.r(t), a.d(t, "default", (function() { return i })) },
        742: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = a(739),
                o = function() {
                    function e(e, t) { this.xf = t, this.f = e } return e.prototype["@@transducer/init"] = n["default"].init, e.prototype["@@transducer/result"] = n["default"].result, e.prototype["@@transducer/step"] = function(e, t) { return this.xf["@@transducer/step"](e, this.f(t)) }, e }(),
                r = Object(i["default"])((function(e, t) { return new o(e, t) }));
            t["default"] = r },
        743: function(e, t, a) { "use strict";
            a.r(t); var i = a(738),
                n = a(724),
                o = a(723),
                r = a(744),
                l = Object(o["default"])((function(e, t) { return 1 === e ? Object(n["default"])(t) : Object(i["default"])(e, Object(r["default"])(e, [], t)) }));
            t["default"] = l },
        744: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return o })); var i = a(738),
                n = a(725);

            function o(e, t, a) { return function() { for (var r = [], l = 0, s = e, c = 0; c < t.length || l < arguments.length;) { var h;
                        c < t.length && (!Object(n["default"])(t[c]) || l >= arguments.length) ? h = t[c] : (h = arguments[l], l += 1), r[c] = h, Object(n["default"])(h) || (s -= 1), c += 1 } return s <= 0 ? a.apply(this, r) : Object(i["default"])(s, o(e, r, a)) } } },
        745: function(e, t, a) { "use strict";
            a.r(t); var i = a(724),
                n = a(746),
                o = a(747),
                r = !{ toString: null }.propertyIsEnumerable("toString"),
                l = ["constructor", "valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"],
                s = function() { return arguments.propertyIsEnumerable("length") }(),
                c = function(e, t) { for (var a = 0; a < e.length;) { if (e[a] === t) return !0;
                        a += 1 } return !1 },
                h = "function" != typeof Object.keys || s ? function(e) { if (Object(e) !== e) return []; var t, a, i = [],
                        h = s && Object(o["default"])(e); for (t in e) !Object(n["default"])(t, e) || h && "length" === t || (i[i.length] = t); if (r)
                        for (a = l.length - 1; a >= 0;) t = l[a], Object(n["default"])(t, e) && !c(i, t) && (i[i.length] = t), a -= 1; return i } : function(e) { return Object(e) !== e ? [] : Object.keys(e) },
                u = Object(i["default"])(h);
            t["default"] = u },
        746: function(e, t, a) { "use strict";

            function i(e, t) { return Object.prototype.hasOwnProperty.call(t, e) } a.r(t), a.d(t, "default", (function() { return i })) },
        747: function(e, t, a) { "use strict";
            a.r(t); var i = a(746),
                n = Object.prototype.toString;
            t["default"] = function() { return "[object Arguments]" === n.call(arguments) ? function(e) { return "[object Arguments]" === n.call(e) } : function(e) { return Object(i["default"])("callee", e) } } },
        748: function(e, t, a) { "use strict";
            a.r(t); var i = a(749),
                n = a(724),
                o = Object(n["default"])((function(e) { return null != e && "function" == typeof e.clone ? e.clone() : Object(i["default"])(e, [], [], !0) }));
            t["default"] = o },
        749: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return o })); var i = a(750),
                n = a(751);

            function o(e, t, a, r) { var l = function(i) { for (var n = t.length, l = 0; l < n;) { if (e === t[l]) return a[l];
                        l += 1 } for (var s in t[l + 1] = e, a[l + 1] = i, e) i[s] = r ? o(e[s], t, a, !0) : e[s]; return i }; switch (Object(n["default"])(e)) {
                    case "Object":
                        return l({});
                    case "Array":
                        return l([]);
                    case "Date":
                        return new Date(e.valueOf());
                    case "RegExp":
                        return Object(i["default"])(e);
                    default:
                        return e } } },
        750: function(e, t, a) { "use strict";

            function i(e) { return new RegExp(e.source, (e.global ? "g" : "") + (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.sticky ? "y" : "") + (e.unicode ? "u" : "")) } a.r(t), a.d(t, "default", (function() { return i })) },
        751: function(e, t, a) { "use strict";
            a.r(t); var i = a(724),
                n = Object(i["default"])((function(e) { return null === e ? "Null" : e === undefined ? "Undefined" : Object.prototype.toString.call(e).slice(8, -1) }));
            t["default"] = n },
        752: function(e, t, a) { "use strict";
            a.r(t); var i = a(753),
                n = a(755),
                o = Object(n["default"])(i["default"]);
            t["default"] = o },
        753: function(e, t, a) { "use strict";
            a.r(t); var i = a(724),
                n = a(754),
                o = Object(i["default"])(n["default"]);
            t["default"] = o },
        754: function(e, t, a) { "use strict";

            function i(e) { return e } a.r(t), a.d(t, "default", (function() { return i })) },
        755: function(e, t, a) { "use strict";
            a.r(t); var i = a(756),
                n = a(723),
                o = Object(n["default"])((function(e, t) { for (var a, n, o = new i["default"], r = [], l = 0; l < t.length;) a = e(n = t[l]), o.add(a) && r.push(n), l += 1; return r }));
            t["default"] = o },
        756: function(e, t, a) { "use strict";
            a.r(t); var i = a(757),
                n = function() {
                    function e() { this._nativeSet = "function" == typeof Set ? new Set : null, this._items = {} } return e.prototype.add = function(e) { return !o(e, !0, this) }, e.prototype.has = function(e) { return o(e, !1, this) }, e }();

            function o(e, t, a) { var n, o = typeof e; switch (o) {
                    case "string":
                    case "number":
                        return 0 === e && 1 / e == -Infinity ? !!a._items["-0"] || (t && (a._items["-0"] = !0), !1) : null !== a._nativeSet ? t ? (n = a._nativeSet.size, a._nativeSet.add(e), a._nativeSet.size === n) : a._nativeSet.has(e) : o in a._items ? e in a._items[o] || (t && (a._items[o][e] = !0), !1) : (t && (a._items[o] = {}, a._items[o][e] = !0), !1);
                    case "boolean":
                        if (o in a._items) { var r = e ? 1 : 0; return !!a._items[o][r] || (t && (a._items[o][r] = !0), !1) } return t && (a._items[o] = e ? [!1, !0] : [!0, !1]), !1;
                    case "function":
                        return null !== a._nativeSet ? t ? (n = a._nativeSet.size, a._nativeSet.add(e), a._nativeSet.size === n) : a._nativeSet.has(e) : o in a._items ? !!Object(i["default"])(e, a._items[o]) || (t && a._items[o].push(e), !1) : (t && (a._items[o] = [e]), !1);
                    case "undefined":
                        return !!a._items[o] || (t && (a._items[o] = !0), !1);
                    case "object":
                        if (null === e) return !!a._items["null"] || (t && (a._items["null"] = !0), !1);
                    default:
                        return (o = Object.prototype.toString.call(e)) in a._items ? !!Object(i["default"])(e, a._items[o]) || (t && a._items[o].push(e), !1) : (t && (a._items[o] = [e]), !1) } } t["default"] = n },
        757: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return n })); var i = a(758);

            function n(e, t) { return Object(i["default"])(t, e, 0) >= 0 } },
        758: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return n })); var i = a(759);

            function n(e, t, a) { var n, o; if ("function" == typeof e.indexOf) switch (typeof t) {
                    case "number":
                        if (0 === t) { for (n = 1 / t; a < e.length;) { if (0 === (o = e[a]) && 1 / o === n) return a;
                                a += 1 } return -1 } if (t != t) { for (; a < e.length;) { if ("number" == typeof(o = e[a]) && o != o) return a;
                                a += 1 } return -1 } return e.indexOf(t, a);
                    case "string":
                    case "boolean":
                    case "function":
                    case "undefined":
                        return e.indexOf(t, a);
                    case "object":
                        if (null === t) return e.indexOf(t, a) }
                for (; a < e.length;) { if (Object(i["default"])(e[a], t)) return a;
                    a += 1 } return -1 } },
        759: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = a(760),
                o = Object(i["default"])((function(e, t) { return Object(n["default"])(e, t, [], []) }));
            t["default"] = o },
        760: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return u })); var i = a(761),
                n = a(762),
                o = a(763),
                r = a(746),
                l = a(764),
                s = a(745),
                c = a(751);

            function h(e, t, a, o) { var r = Object(i["default"])(e),
                    l = Object(i["default"])(t);

                function s(e, t) { return u(e, t, a.slice(), o.slice()) } return !Object(n["default"])((function(e, t) { return !Object(n["default"])(s, t, e) }), l, r) }

            function u(e, t, a, i) { if (Object(l["default"])(e, t)) return !0; var n = Object(c["default"])(e); if (n !== Object(c["default"])(t)) return !1; if (null == e || null == t) return !1; if ("function" == typeof e["fantasy-land/equals"] || "function" == typeof t["fantasy-land/equals"]) return "function" == typeof e["fantasy-land/equals"] && e["fantasy-land/equals"](t) && "function" == typeof t["fantasy-land/equals"] && t["fantasy-land/equals"](e); if ("function" == typeof e.equals || "function" == typeof t.equals) return "function" == typeof e.equals && e.equals(t) && "function" == typeof t.equals && t.equals(e); switch (n) {
                    case "Arguments":
                    case "Array":
                    case "Object":
                        if ("function" == typeof e.constructor && "Promise" === Object(o["default"])(e.constructor)) return e === t; break;
                    case "Boolean":
                    case "Number":
                    case "String":
                        if (typeof e != typeof t || !Object(l["default"])(e.valueOf(), t.valueOf())) return !1; break;
                    case "Date":
                        if (!Object(l["default"])(e.valueOf(), t.valueOf())) return !1; break;
                    case "Error":
                        return e.name === t.name && e.message === t.message;
                    case "RegExp":
                        if (e.source !== t.source || e.global !== t.global || e.ignoreCase !== t.ignoreCase || e.multiline !== t.multiline || e.sticky !== t.sticky || e.unicode !== t.unicode) return !1 } for (var d = a.length - 1; d >= 0;) { if (a[d] === e) return i[d] === t;
                    d -= 1 } switch (n) {
                    case "Map":
                        return e.size === t.size && h(e.entries(), t.entries(), a.concat([e]), i.concat([t]));
                    case "Set":
                        return e.size === t.size && h(e.values(), t.values(), a.concat([e]), i.concat([t]));
                    case "Arguments":
                    case "Array":
                    case "Object":
                    case "Boolean":
                    case "Number":
                    case "String":
                    case "Date":
                    case "Error":
                    case "RegExp":
                    case "Int8Array":
                    case "Uint8Array":
                    case "Uint8ClampedArray":
                    case "Int16Array":
                    case "Uint16Array":
                    case "Int32Array":
                    case "Uint32Array":
                    case "Float32Array":
                    case "Float64Array":
                    case "ArrayBuffer":
                        break;
                    default:
                        return !1 } var g = Object(s["default"])(e); if (g.length !== Object(s["default"])(t).length) return !1; var p = a.concat([e]),
                    f = i.concat([t]); for (d = g.length - 1; d >= 0;) { var m = g[d]; if (!Object(r["default"])(m, t) || !u(t[m], e[m], p, f)) return !1;
                    d -= 1 } return !0 } },
        761: function(e, t, a) { "use strict";

            function i(e) { for (var t, a = []; !(t = e.next()).done;) a.push(t.value); return a } a.r(t), a.d(t, "default", (function() { return i })) },
        762: function(e, t, a) { "use strict";

            function i(e, t, a) { for (var i = 0, n = a.length; i < n;) { if (e(t, a[i])) return !0;
                    i += 1 } return !1 } a.r(t), a.d(t, "default", (function() { return i })) },
        763: function(e, t, a) { "use strict";

            function i(e) { var t = String(e).match(/^function (\w*)/); return null == t ? "" : t[1] } a.r(t), a.d(t, "default", (function() { return i })) },
        764: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = Object(i["default"])((function(e, t) { return e === t ? 0 !== e || 1 / e == 1 / t : e != e && t != t }));
            t["default"] = n },
        765: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = Object(i["default"])((function(e, t) { for (var a, i = 0, n = e.length, o = t.length, r = []; i < n;) { for (a = 0; a < o;) r[r.length] = [e[i], t[a]], a += 1;
                        i += 1 } return r }));
            t["default"] = n },
        766: function(e, t, a) { "use strict";
            a.r(t); var i = a(767),
                n = a(724),
                o = a(743),
                r = Object(n["default"])((function(e) { return Object(o["default"])(e.length, (function() { var t = 0,
                            a = arguments[0],
                            n = arguments[arguments.length - 1],
                            o = Array.prototype.slice.call(arguments, 0); return o[0] = function() { var e = a.apply(this, Object(i["default"])(arguments, [t, n])); return t += 1, e }, e.apply(this, o) })) }));
            t["default"] = r },
        767: function(e, t, a) { "use strict";

            function i(e, t) { var a;
                t = t || []; var i = (e = e || []).length,
                    n = t.length,
                    o = []; for (a = 0; a < i;) o[o.length] = e[a], a += 1; for (a = 0; a < n;) o[o.length] = t[a], a += 1; return o } a.r(t), a.d(t, "default", (function() { return i })) },
        779: function(e, t, a) { "use strict"; var i = a(212),
                n = a(208);
            t.__esModule = !0, t["default"] = void 0; var o = n(a(229)),
                r = n(a(470)),
                l = i(a(468)),
                s = n(a(780)),
                c = n(a(221)),
                h = function(e, t) { var a = t,
                        i = e; return (a = Math.log(a / i)) ? function(e) { return Math.log(e / i) / a } : (0, r["default"])(a) },
                u = function(e, t) { return e < 0 ? function(a) { return -Math.pow(-t, a) * Math.pow(-e, 1 - a) } : function(a) { return Math.pow(t, a) * Math.pow(e, 1 - a) } },
                d = function(e) { return isFinite(e) ? +("1e" + e) : e < 0 ? 0 : e },
                g = function(e) { return 10 === e ? d : e === Math.E ? Math.exp : function(t) { return Math.pow(e, t) } },
                p = function(e) { return e === Math.E ? Math.log : 10 === e ? Math.log10 : 2 === e ? Math.log2 : function(t) { return Math.log(t) / Math.log(e) } },
                f = function(e) { return function(t) { return -e(-t) } },
                m = function(e) {
                    function t() { var t; return (t = e.call(this, h, u) || this).setDomain([1, 10]), t.base = 10, t.logs = p(t.base), t.pows = g(t.base), t }(0, o["default"])(t, e); var a = t.prototype; return a._rescaleLog = function() { return this.logs = p(this.base), this.pows = g(this.base), this.getDomain()[0] < 0 && (this.logs = f(this.logs), this.pows = f(this.pows)), this }, a.setBase = function(e) { return void 0 === e && (e = 10), this.base = Number(e), this._rescaleLog() }, a.getBase = function() { return this.base }, a.setDomain = function(t) { return void 0 === t && (t = [1, 10]), e.prototype.setDomain.call(this, t), this._rescaleLog() }, a.nice = function() { var e, t, a = this.getDomain(),
                            i = a[0],
                            n = a[1],
                            o = this.base; return i === n && (i -= i / 100), e = Math.log(i) / Math.log(o), t = Math.log(n) / Math.log(o), (e % 1 || t % 1) && (i <= n ? (i = this.pows(Math.floor(e)), n = this.pows(Math.ceil(t))) : (i = this.pows(Math.ceil(e)), n = this.pows(Math.floor(t))), this.setDomain([i, n])), this }, a.tickFormat = function(e, t) { var a = this.base,
                            i = t,
                            n = e; return null == i && (i = 10 === a ? ".0e" : ","), "function" != typeof i && (i = this._localeConverter.formatter(i)), null == n && (n = 10),
                            function(e) { return i.format(e) } }, a.ticks = function() { var e, t, a, i, n, o, r = this.getDomain(),
                            l = r[0],
                            s = r[1],
                            c = 1,
                            h = 0,
                            u = [],
                            d = this.base; if (l <= 0 || s <= 0) return u; if (l > s) { var g = this.getDomain();
                            s = g[0], l = g[1], c = 0 } for (d > 1 ? (t = e = Math.ceil(Math.log(s) / Math.log(d)), a = Math.floor(Math.log(l) / Math.log(d))) : d > 0 && d < 1 && (e = Math.floor(Math.log(s) / Math.log(d)), t = Math.ceil(Math.log(l) / Math.log(d)), a = e), n = e, o = t; o >= a; --o) l <= (i = this.pows(n)) && s >= i && (u[h++] = i), d > 1 ? n-- : n++; return this.majorTicks = c ? u.reverse() : u }, a.copy = function() { return (0, l.copyScale)(this, (new t).setBase(this.base)) }, a.minorTicks = function(e, t) { void 0 === t && (t = this.majorTicks || this.ticks()); var a, i, n, o, r, l = this.base,
                            h = (0, s["default"])(t),
                            u = [],
                            d = Math.log(l) / Math.log(10),
                            g = l > 1 ? -1 : 1,
                            p = e; return p = (0, c["default"])(Number(p), d % 1 ? 4 : 8), h.forEach((function(e) { var t = e[0],
                                s = e[1]; for (l > 1 ? i = Math.ceil(Math.log(s) / Math.log(l)) : l > 0 && l < 1 && (i = Math.floor(Math.log(s) / Math.log(l))), o = Math.pow(l, i) - Math.pow(l, i + g), n = o / (p + 1), a = 1; a <= p; ++a) t <= (r = Math.pow(l, i + g) + n * a) && s >= r && u.push(r) })), u }, a.contextTicks = function() { return this.contextTicksArr || [] }, a.getType = function() { return "log" }, t }(l["default"]);
            t["default"] = m },
        780: function(e, t, a) { "use strict";

            function i(e, t) { return [e, t] } t.__esModule = !0, t["default"] = void 0; var n = function(e, t) { var a = t,
                    n = 0,
                    o = e.length - 1,
                    r = e[0],
                    l = new Array(o < 0 ? 0 : o); for (null == a && (a = i); n < o;) l[n] = a(r, r = e[++n]); return l };
            t["default"] = n },
        795: function(e, t, a) { "use strict";
            a.r(t); var i = a(796),
                n = a(723),
                o = Object(n["default"])((function(e, t) { return Object(i["default"])({}, e, t) }));
            t["default"] = o },
        796: function(e, t, a) { "use strict";
            a.r(t); var i = a(797);
            t["default"] = "function" == typeof Object.assign ? Object.assign : i["default"] },
        797: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return n })); var i = a(746);

            function n(e) { if (null == e) throw new TypeError("Cannot convert undefined or null to object"); for (var t = Object(e), a = 1, n = arguments.length; a < n;) { var o = arguments[a]; if (null != o)
                        for (var r in o) Object(i["default"])(r, o) && (t[r] = o[r]);
                    a += 1 } return t } },
        820: function(e, t, a) { "use strict";
            a.r(t); var i = a(724),
                n = Object(i["default"])((function(e) { for (var t = 0, a = []; t < e.length;) { for (var i = e[t], n = 0; n < i.length;) "undefined" == typeof a[n] && (a[n] = []), a[n].push(i[n]), n += 1;
                        t += 1 } return a }));
            t["default"] = n },
        823: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = a(824),
                o = Object(i["default"])((function(e, t) { return Object(n["default"])((function(e, t, a) { return a }), e, t) }));
            t["default"] = o },
        824: function(e, t, a) { "use strict";
            a.r(t); var i = a(825),
                n = a(826),
                o = a(827),
                r = Object(i["default"])((function l(e, t, a) { return Object(o["default"])((function(t, a, i) { return Object(n["default"])(a) && Object(n["default"])(i) ? l(e, a, i) : e(t, a, i) }), t, a) }));
            t["default"] = r },
        825: function(e, t, a) { "use strict";
            a.r(t), a.d(t, "default", (function() { return r })); var i = a(724),
                n = a(723),
                o = a(725);

            function r(e) { return function t(a, r, l) { switch (arguments.length) {
                        case 0:
                            return t;
                        case 1:
                            return Object(o["default"])(a) ? t : Object(n["default"])((function(t, i) { return e(a, t, i) }));
                        case 2:
                            return Object(o["default"])(a) && Object(o["default"])(r) ? t : Object(o["default"])(a) ? Object(n["default"])((function(t, a) { return e(t, r, a) })) : Object(o["default"])(r) ? Object(n["default"])((function(t, i) { return e(a, t, i) })) : Object(i["default"])((function(t) { return e(a, r, t) }));
                        default:
                            return Object(o["default"])(a) && Object(o["default"])(r) && Object(o["default"])(l) ? t : Object(o["default"])(a) && Object(o["default"])(r) ? Object(n["default"])((function(t, a) { return e(t, a, l) })) : Object(o["default"])(a) && Object(o["default"])(l) ? Object(n["default"])((function(t, a) { return e(t, r, a) })) : Object(o["default"])(r) && Object(o["default"])(l) ? Object(n["default"])((function(t, i) { return e(a, t, i) })) : Object(o["default"])(a) ? Object(i["default"])((function(t) { return e(t, r, l) })) : Object(o["default"])(r) ? Object(i["default"])((function(t) { return e(a, t, l) })) : Object(o["default"])(l) ? Object(i["default"])((function(t) { return e(a, r, t) })) : e(a, r, l) } } } },
        826: function(e, t, a) { "use strict";

            function i(e) { return "[object Object]" === Object.prototype.toString.call(e) } a.r(t), a.d(t, "default", (function() { return i })) },
        827: function(e, t, a) { "use strict";
            a.r(t); var i = a(825),
                n = a(746),
                o = Object(i["default"])((function(e, t, a) { var i, o = {}; for (i in t) Object(n["default"])(i, t) && (o[i] = Object(n["default"])(i, a) ? e(i, t[i], a[i]) : t[i]); for (i in a) Object(n["default"])(i, a) && !Object(n["default"])(i, o) && (o[i] = a[i]); return o }));
            t["default"] = o },
        867: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = a(726),
                o = a(868),
                r = Object(i["default"])(Object(n["default"])(["all"], o["default"], (function(e, t) { for (var a = 0; a < t.length;) { if (!e(t[a])) return !1;
                        a += 1 } return !0 })));
            t["default"] = r },
        868: function(e, t, a) { "use strict";
            a.r(t); var i = a(723),
                n = a(869),
                o = a(739),
                r = function() {
                    function e(e, t) { this.xf = t, this.f = e, this.all = !0 } return e.prototype["@@transducer/init"] = o["default"].init, e.prototype["@@transducer/result"] = function(e) { return this.all && (e = this.xf["@@transducer/step"](e, !0)), this.xf["@@transducer/result"](e) }, e.prototype["@@transducer/step"] = function(e, t) { return this.f(t) || (this.all = !1, e = Object(n["default"])(this.xf["@@transducer/step"](e, !1))), e }, e }(),
                l = Object(i["default"])((function(e, t) { return new r(e, t) }));
            t["default"] = l },
        869: function(e, t, a) { "use strict";

            function i(e) { return e && e["@@transducer/reduced"] ? e : { "@@transducer/value": e, "@@transducer/reduced": !0 } } a.r(t), a.d(t, "default", (function() { return i })) },
        934: function(e, t, a) { "use strict";
            t.__esModule = !0, t["default"] = void 0; var i = function() { var e, t, a, i, n, o = this.getChildren(),
                    r = this.getDatasets(),
                    l = o.xAxis && o.xAxis[0] || o.scale,
                    s = [],
                    c = 0; if (r) { for (e = r.length, t = 0; t < e; t++) c = Math.max(c, r[t].components.data.length); for (t = 0; t < c; t++)
                        for ((n = s[t] = [])[0] = l.getLabel(t).label, a = 1; a <= e; a++) i = r[a - 1].components.data[t], n[a] = i && i.config.setValue; return s } };
            t["default"] = i }
    }
]);
//# sourceMappingURL=http://localhost:3052/3.15.3/map/eval/fusioncharts.common.js.map

Zerion Mini Shell 1.0