/*
 Highcharts JS v9.2.2 (2021-08-24)

 (c) 2009-2021 Torstein Honsi

 License: www.highcharts.com/license
*/
'use strict'; (function (aa, M) { "object" === typeof module && module.exports ? (M["default"] = M, module.exports = aa.document ? M(aa) : M) : "function" === typeof define && define.amd ? define("highcharts/highcharts", function () { return M(aa) }) : (aa.Highcharts && aa.Highcharts.error(16, !0), aa.Highcharts = M(aa)) })("undefined" !== typeof window ? window : this, function (aa) {
    function M(r, a, C, E) { r.hasOwnProperty(a) || (r[a] = E.apply(null, C)) } var a = {}; M(a, "Core/Globals.js", [], function () {
        var r = "undefined" !== typeof aa ? aa : "undefined" !== typeof window ?
            window : {}, a; (function (a) {
                a.SVG_NS = "http://www.w3.org/2000/svg"; a.product = "Highcharts"; a.version = "9.2.2"; a.win = r; a.doc = a.win.document; a.svg = a.doc && a.doc.createElementNS && !!a.doc.createElementNS(a.SVG_NS, "svg").createSVGRect; a.userAgent = a.win.navigator && a.win.navigator.userAgent || ""; a.isChrome = -1 !== a.userAgent.indexOf("Chrome"); a.isFirefox = -1 !== a.userAgent.indexOf("Firefox"); a.isMS = /(edge|msie|trident)/i.test(a.userAgent) && !a.win.opera; a.isSafari = !a.isChrome && -1 !== a.userAgent.indexOf("Safari"); a.isTouchDevice =
                    /(Mobile|Android|Windows Phone)/.test(a.userAgent); a.isWebKit = -1 !== a.userAgent.indexOf("AppleWebKit"); a.deg2rad = 2 * Math.PI / 360; a.hasBidiBug = a.isFirefox && 4 > parseInt(a.userAgent.split("Firefox/")[1], 10); a.hasTouch = !!a.win.TouchEvent; a.marginNames = ["plotTop", "marginRight", "marginBottom", "plotLeft"]; a.noop = function () { }; a.supportsPassiveEvents = function () {
                        var r = !1; if (!a.isMS) {
                            var w = Object.defineProperty({}, "passive", { get: function () { r = !0 } }); a.win.addEventListener && a.win.removeEventListener && (a.win.addEventListener("testPassive",
                                a.noop, w), a.win.removeEventListener("testPassive", a.noop, w))
                        } return r
                    }(); a.charts = []; a.dateFormats = {}; a.seriesTypes = {}; a.symbolSizes = {}; a.chartCount = 0
            })(a || (a = {})); ""; return a
    }); M(a, "Core/Utilities.js", [a["Core/Globals.js"]], function (a) {
        function r(b, d, e, p) {
            var y = d ? "Highcharts error" : "Highcharts warning"; 32 === b && (b = y + ": Deprecated member"); var F = m(b), c = F ? y + " #" + b + ": www.highcharts.com/errors/" + b + "/" : b.toString(); if ("undefined" !== typeof p) {
                var k = ""; F && (c += "?"); I(p, function (b, K) {
                    k += "\n - " + K + ": " + b;
                    F && (c += encodeURI(K) + "=" + encodeURI(b))
                }); c += k
            } B(a, "displayError", { chart: e, code: b, message: c, params: p }, function () { if (d) throw Error(c); h.console && -1 === r.messages.indexOf(c) && console.warn(c) }); r.messages.push(c)
        } function C(b, d) { var y = {}; I(b, function (h, c) { if (J(b[c], !0) && !b.nodeType && d[c]) h = C(b[c], d[c]), Object.keys(h).length && (y[c] = h); else if (J(b[c]) || b[c] !== d[c]) y[c] = b[c] }); return y } function E(b, d) { return parseInt(b, d || 10) } function z(b) { return "string" === typeof b } function x(b) {
            b = Object.prototype.toString.call(b);
            return "[object Array]" === b || "[object Array Iterator]" === b
        } function J(b, d) { return !!b && "object" === typeof b && (!d || !x(b)) } function u(b) { return J(b) && "number" === typeof b.nodeType } function n(b) { var d = b && b.constructor; return !(!J(b, !0) || u(b) || !d || !d.name || "Object" === d.name) } function m(b) { return "number" === typeof b && !isNaN(b) && Infinity > b && -Infinity < b } function g(b) { return "undefined" !== typeof b && null !== b } function c(b, d, h) {
            var y; z(d) ? g(h) ? b.setAttribute(d, h) : b && b.getAttribute && ((y = b.getAttribute(d)) || "class" !==
                d || (y = b.getAttribute(d + "Name"))) : I(d, function (d, y) { b.setAttribute(y, d) }); return y
        } function e(b, d) { var y; b || (b = {}); for (y in d) b[y] = d[y]; return b } function l() { for (var b = arguments, d = b.length, h = 0; h < d; h++) { var c = b[h]; if ("undefined" !== typeof c && null !== c) return c } } function f(b, d) { a.isMS && !a.svg && d && "undefined" !== typeof d.opacity && (d.filter = "alpha(opacity=" + 100 * d.opacity + ")"); e(b.style, d) } function v(b, d, h, c, p) {
            b = t.createElement(b); d && e(b, d); p && f(b, { padding: "0", border: "none", margin: "0" }); h && f(b, h); c && c.appendChild(b);
            return b
        } function q(b, d) { return parseFloat(b.toPrecision(d || 14)) } function k(b, d, c) {
            var y = a.getStyle || k; if ("width" === d) return d = Math.min(b.offsetWidth, b.scrollWidth), c = b.getBoundingClientRect && b.getBoundingClientRect().width, c < d && c >= d - 1 && (d = Math.floor(c)), Math.max(0, d - (y(b, "padding-left", !0) || 0) - (y(b, "padding-right", !0) || 0)); if ("height" === d) return Math.max(0, Math.min(b.offsetHeight, b.scrollHeight) - (y(b, "padding-top", !0) || 0) - (y(b, "padding-bottom", !0) || 0)); h.getComputedStyle || r(27, !0); if (b = h.getComputedStyle(b,
                void 0)) { var e = b.getPropertyValue(d); l(c, "opacity" !== d) && (e = E(e)) } return e
        } function I(b, d, h) { for (var y in b) Object.hasOwnProperty.call(b, y) && d.call(h || b[y], b[y], y, b) } function D(b, d, h) {
            function y(d, H) { var K = b.removeEventListener || a.removeEventListenerPolyfill; K && K.call(b, d, H, !1) } function c(h) { var H; if (b.nodeName) { if (d) { var K = {}; K[d] = !0 } else K = h; I(K, function (b, d) { if (h[d]) for (H = h[d].length; H--;)y(d, h[d][H].fn) }) } } var e = "function" === typeof b && b.prototype || b; if (Object.hasOwnProperty.call(e, "hcEvents")) {
                var p =
                    e.hcEvents; d ? (e = p[d] || [], h ? (p[d] = e.filter(function (b) { return h !== b.fn }), y(d, h)) : (c(p), p[d] = [])) : (c(p), delete e.hcEvents)
            }
        } function B(b, d, h, c) {
            h = h || {}; if (t.createEvent && (b.dispatchEvent || b.fireEvent && b !== a)) { var y = t.createEvent("Events"); y.initEvent(d, !0, !0); h = e(y, h); b.dispatchEvent ? b.dispatchEvent(h) : b.fireEvent(d, h) } else if (b.hcEvents) {
                h.target || e(h, { preventDefault: function () { h.defaultPrevented = !0 }, target: b, type: d }); y = []; for (var p = b, k = !1; p.hcEvents;)Object.hasOwnProperty.call(p, "hcEvents") && p.hcEvents[d] &&
                    (y.length && (k = !0), y.unshift.apply(y, p.hcEvents[d])), p = Object.getPrototypeOf(p); k && y.sort(function (b, d) { return b.order - d.order }); y.forEach(function (d) { !1 === d.fn.call(b, h) && h.preventDefault() })
            } c && !h.defaultPrevented && c.call(b, h)
        } var O = a.charts, t = a.doc, h = a.win; (r || (r = {})).messages = []; var d; Math.easeInOutSine = function (b) { return -.5 * (Math.cos(Math.PI * b) - 1) }; var b = Array.prototype.find ? function (b, d) { return b.find(d) } : function (b, d) { var h, y = b.length; for (h = 0; h < y; h++)if (d(b[h], h)) return b[h] }; I({
            map: "map", each: "forEach",
            grep: "filter", reduce: "reduce", some: "some"
        }, function (b, d) { a[d] = function (h) { var y; r(32, !1, void 0, (y = {}, y["Highcharts." + d] = "use Array." + b, y)); return Array.prototype[b].apply(h, [].slice.call(arguments, 1)) } }); var p, G = function () { var b = Math.random().toString(36).substring(2, 9) + "-", d = 0; return function () { return "highcharts-" + (p ? "" : b) + d++ } }(); h.jQuery && (h.jQuery.fn.highcharts = function () {
            var b = [].slice.call(arguments); if (this[0]) return b[0] ? (new (a[z(b[0]) ? b.shift() : "Chart"])(this[0], b[0], b[1]), this) : O[c(this[0],
                "data-highcharts-chart")]
        }); b = {
            addEvent: function (b, d, h, c) {
                void 0 === c && (c = {}); var y = "function" === typeof b && b.prototype || b; Object.hasOwnProperty.call(y, "hcEvents") || (y.hcEvents = {}); y = y.hcEvents; a.Point && b instanceof a.Point && b.series && b.series.chart && (b.series.chart.runTrackerClick = !0); var p = b.addEventListener || a.addEventListenerPolyfill; p && p.call(b, d, h, a.supportsPassiveEvents ? { passive: void 0 === c.passive ? -1 !== d.indexOf("touch") : c.passive, capture: !1 } : !1); y[d] || (y[d] = []); y[d].push({
                    fn: h, order: "number" ===
                        typeof c.order ? c.order : Infinity
                }); y[d].sort(function (b, d) { return b.order - d.order }); return function () { D(b, d, h) }
            }, arrayMax: function (b) { for (var d = b.length, h = b[0]; d--;)b[d] > h && (h = b[d]); return h }, arrayMin: function (b) { for (var d = b.length, h = b[0]; d--;)b[d] < h && (h = b[d]); return h }, attr: c, clamp: function (b, d, h) { return b > d ? b < h ? b : h : d }, cleanRecursively: C, clearTimeout: function (b) { g(b) && clearTimeout(b) }, correctFloat: q, createElement: v, css: f, defined: g, destroyObjectProperties: function (b, d) {
                I(b, function (h, c) {
                    h && h !== d &&
                    h.destroy && h.destroy(); delete b[c]
                })
            }, discardElement: function (b) { d || (d = v("div")); b && d.appendChild(b); d.innerHTML = "" }, erase: function (b, d) { for (var h = b.length; h--;)if (b[h] === d) { b.splice(h, 1); break } }, error: r, extend: e, extendClass: function (b, d) { var h = function () { }; h.prototype = new b; e(h.prototype, d); return h }, find: b, fireEvent: B, getMagnitude: function (b) { return Math.pow(10, Math.floor(Math.log(b) / Math.LN10)) }, getNestedProperty: function (b, d) {
                for (b = b.split("."); b.length && g(d);) {
                    var c = b.shift(); if ("undefined" ===
                        typeof c || "__proto__" === c) return; d = d[c]; if (!g(d) || "function" === typeof d || "number" === typeof d.nodeType || d === h) return
                } return d
            }, getStyle: k, inArray: function (b, d, h) { r(32, !1, void 0, { "Highcharts.inArray": "use Array.indexOf" }); return d.indexOf(b, h) }, isArray: x, isClass: n, isDOMElement: u, isFunction: function (b) { return "function" === typeof b }, isNumber: m, isObject: J, isString: z, keys: function (b) { r(32, !1, void 0, { "Highcharts.keys": "use Object.keys" }); return Object.keys(b) }, merge: function () {
                var b, d = arguments, h = {}, c = function (b,
                    d) { "object" !== typeof b && (b = {}); I(d, function (h, H) { "__proto__" !== H && "constructor" !== H && (!J(h, !0) || n(h) || u(h) ? b[H] = d[H] : b[H] = c(b[H] || {}, h)) }); return b }; !0 === d[0] && (h = d[1], d = Array.prototype.slice.call(d, 2)); var p = d.length; for (b = 0; b < p; b++)h = c(h, d[b]); return h
            }, normalizeTickInterval: function (b, d, h, c, p) {
                var e = b; h = l(h, 1); var k = b / h; d || (d = p ? [1, 1.2, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10] : [1, 2, 2.5, 5, 10], !1 === c && (1 === h ? d = d.filter(function (b) { return 0 === b % 1 }) : .1 >= h && (d = [1 / h]))); for (c = 0; c < d.length && !(e = d[c], p && e * h >= b || !p && k <= (d[c] +
                    (d[c + 1] || d[c])) / 2); c++); return e = q(e * h, -Math.round(Math.log(.001) / Math.LN10))
            }, objectEach: I, offset: function (b) { var d = t.documentElement; b = b.parentElement || b.parentNode ? b.getBoundingClientRect() : { top: 0, left: 0, width: 0, height: 0 }; return { top: b.top + (h.pageYOffset || d.scrollTop) - (d.clientTop || 0), left: b.left + (h.pageXOffset || d.scrollLeft) - (d.clientLeft || 0), width: b.width, height: b.height } }, pad: function (b, d, h) { return Array((d || 2) + 1 - String(b).replace("-", "").length).join(h || "0") + b }, pick: l, pInt: E, relativeLength: function (b,
                d, h) { return /%$/.test(b) ? d * parseFloat(b) / 100 + (h || 0) : parseFloat(b) }, removeEvent: D, splat: function (b) { return x(b) ? b : [b] }, stableSort: function (b, d) { var h = b.length, c, p; for (p = 0; p < h; p++)b[p].safeI = p; b.sort(function (b, h) { c = d(b, h); return 0 === c ? b.safeI - h.safeI : c }); for (p = 0; p < h; p++)delete b[p].safeI }, syncTimeout: function (b, d, h) { if (0 < d) return setTimeout(b, d, h); b.call(0, h); return -1 }, timeUnits: { millisecond: 1, second: 1E3, minute: 6E4, hour: 36E5, day: 864E5, week: 6048E5, month: 24192E5, year: 314496E5 }, uniqueKey: G, useSerialIds: function (b) {
                    return p =
                        l(b, p)
                }, wrap: function (b, d, h) { var c = b[d]; b[d] = function () { var b = Array.prototype.slice.call(arguments), d = arguments, p = this; p.proceed = function () { c.apply(p, arguments.length ? arguments : d) }; b.unshift(c); b = h.apply(this, b); p.proceed = null; return b } }
        }; ""; return b
    }); M(a, "Core/Color/Palette.js", [], function () {
        return {
            colors: "#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "), backgroundColor: "#ffffff", neutralColor100: "#000000", neutralColor80: "#333333", neutralColor60: "#666666",
            neutralColor40: "#999999", neutralColor20: "#cccccc", neutralColor10: "#e6e6e6", neutralColor5: "#f2f2f2", neutralColor3: "#f7f7f7", highlightColor100: "#003399", highlightColor80: "#335cad", highlightColor60: "#6685c2", highlightColor20: "#ccd6eb", highlightColor10: "#e6ebf5", positiveColor: "#06b535", negativeColor: "#f21313"
        }
    }); M(a, "Core/Chart/ChartDefaults.js", [a["Core/Color/Palette.js"]], function (a) {
        return {
            panning: { enabled: !1, type: "x" }, styledMode: !1, borderRadius: 0, colorCount: 10, defaultSeriesType: "line", ignoreHiddenSeries: !0,
            spacing: [10, 10, 15, 10], resetZoomButton: { theme: { zIndex: 6 }, position: { align: "right", x: -10, y: 10 } }, zoomBySingleTouch: !1, width: null, height: null, borderColor: a.highlightColor80, backgroundColor: a.backgroundColor, plotBorderColor: a.neutralColor20
        }
    }); M(a, "Core/Color/Color.js", [a["Core/Globals.js"], a["Core/Utilities.js"]], function (a, w) {
        var r = w.isNumber, E = w.merge, z = w.pInt; w = function () {
            function x(r) {
                this.rgba = [NaN, NaN, NaN, NaN]; this.input = r; var u = a.Color; if (u && u !== x) return new u(r); if (!(this instanceof x)) return new x(r);
                this.init(r)
            } x.parse = function (a) { return a ? new x(a) : x.None }; x.prototype.init = function (a) {
                var u; if ("object" === typeof a && "undefined" !== typeof a.stops) this.stops = a.stops.map(function (c) { return new x(c[1]) }); else if ("string" === typeof a) {
                    this.input = a = x.names[a.toLowerCase()] || a; if ("#" === a.charAt(0)) { var n = a.length; var m = parseInt(a.substr(1), 16); 7 === n ? u = [(m & 16711680) >> 16, (m & 65280) >> 8, m & 255, 1] : 4 === n && (u = [(m & 3840) >> 4 | (m & 3840) >> 8, (m & 240) >> 4 | m & 240, (m & 15) << 4 | m & 15, 1]) } if (!u) for (m = x.parsers.length; m-- && !u;) {
                        var g =
                            x.parsers[m]; (n = g.regex.exec(a)) && (u = g.parse(n))
                    }
                } u && (this.rgba = u)
            }; x.prototype.get = function (a) { var u = this.input, n = this.rgba; if ("object" === typeof u && "undefined" !== typeof this.stops) { var m = E(u); m.stops = [].slice.call(m.stops); this.stops.forEach(function (g, c) { m.stops[c] = [m.stops[c][0], g.get(a)] }); return m } return n && r(n[0]) ? "rgb" === a || !a && 1 === n[3] ? "rgb(" + n[0] + "," + n[1] + "," + n[2] + ")" : "a" === a ? "" + n[3] : "rgba(" + n.join(",") + ")" : u }; x.prototype.brighten = function (a) {
                var u = this.rgba; if (this.stops) this.stops.forEach(function (m) { m.brighten(a) });
                else if (r(a) && 0 !== a) for (var n = 0; 3 > n; n++)u[n] += z(255 * a), 0 > u[n] && (u[n] = 0), 255 < u[n] && (u[n] = 255); return this
            }; x.prototype.setOpacity = function (a) { this.rgba[3] = a; return this }; x.prototype.tweenTo = function (a, u) { var n = this.rgba, m = a.rgba; if (!r(n[0]) || !r(m[0])) return a.input || "none"; a = 1 !== m[3] || 1 !== n[3]; return (a ? "rgba(" : "rgb(") + Math.round(m[0] + (n[0] - m[0]) * (1 - u)) + "," + Math.round(m[1] + (n[1] - m[1]) * (1 - u)) + "," + Math.round(m[2] + (n[2] - m[2]) * (1 - u)) + (a ? "," + (m[3] + (n[3] - m[3]) * (1 - u)) : "") + ")" }; x.names = { white: "#ffffff", black: "#000000" };
            x.parsers = [{ regex: /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/, parse: function (a) { return [z(a[1]), z(a[2]), z(a[3]), parseFloat(a[4], 10)] } }, { regex: /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/, parse: function (a) { return [z(a[1]), z(a[2]), z(a[3]), 1] } }]; x.None = new x(""); return x
        }(); ""; return w
    }); M(a, "Core/Time.js", [a["Core/Globals.js"], a["Core/Utilities.js"]], function (a, w) {
        var r = a.win, E = w.defined, z = w.error, x = w.extend, J = w.isObject, u = w.merge,
        n = w.objectEach, m = w.pad, g = w.pick, c = w.splat, e = w.timeUnits, l = a.isSafari && r.Intl && r.Intl.DateTimeFormat.prototype.formatRange, f = a.isSafari && r.Intl && !r.Intl.DateTimeFormat.prototype.formatRange; w = function () {
            function v(c) { this.options = {}; this.variableTimezone = this.useUTC = !1; this.Date = r.Date; this.getTimezoneOffset = this.timezoneOffsetFunction(); this.update(c) } v.prototype.get = function (c, e) {
                if (this.variableTimezone || this.timezoneOffset) {
                    var k = e.getTime(), f = k - this.getTimezoneOffset(e); e.setTime(f); c = e["getUTC" +
                        c](); e.setTime(k); return c
                } return this.useUTC ? e["getUTC" + c]() : e["get" + c]()
            }; v.prototype.set = function (c, e, f) { if (this.variableTimezone || this.timezoneOffset) { if ("Milliseconds" === c || "Seconds" === c || "Minutes" === c && 0 === this.getTimezoneOffset(e) % 36E5) return e["setUTC" + c](f); var k = this.getTimezoneOffset(e); k = e.getTime() - k; e.setTime(k); e["setUTC" + c](f); c = this.getTimezoneOffset(e); k = e.getTime() + c; return e.setTime(k) } return this.useUTC || l && "FullYear" === c ? e["setUTC" + c](f) : e["set" + c](f) }; v.prototype.update = function (c) {
                var e =
                    g(c && c.useUTC, !0); this.options = c = u(!0, this.options || {}, c); this.Date = c.Date || r.Date || Date; this.timezoneOffset = (this.useUTC = e) && c.timezoneOffset; this.getTimezoneOffset = this.timezoneOffsetFunction(); this.variableTimezone = e && !(!c.getTimezoneOffset && !c.timezone)
            }; v.prototype.makeTime = function (c, e, l, v, B, a) {
                if (this.useUTC) { var k = this.Date.UTC.apply(0, arguments); var h = this.getTimezoneOffset(k); k += h; var d = this.getTimezoneOffset(k); h !== d ? k += d - h : h - 36E5 !== this.getTimezoneOffset(k - 36E5) || f || (k -= 36E5) } else k = (new this.Date(c,
                    e, g(l, 1), g(v, 0), g(B, 0), g(a, 0))).getTime(); return k
            }; v.prototype.timezoneOffsetFunction = function () { var c = this, e = this.options, f = e.moment || r.moment; if (!this.useUTC) return function (c) { return 6E4 * (new Date(c.toString())).getTimezoneOffset() }; if (e.timezone) { if (f) return function (c) { return 6E4 * -f.tz(c, e.timezone).utcOffset() }; z(25) } return this.useUTC && e.getTimezoneOffset ? function (c) { return 6E4 * e.getTimezoneOffset(c.valueOf()) } : function () { return 6E4 * (c.timezoneOffset || 0) } }; v.prototype.dateFormat = function (c,
                e, f) {
                    if (!E(e) || isNaN(e)) return a.defaultOptions.lang && a.defaultOptions.lang.invalidDate || ""; c = g(c, "%Y-%m-%d %H:%M:%S"); var k = this, l = new this.Date(e), q = this.get("Hours", l), t = this.get("Day", l), h = this.get("Date", l), d = this.get("Month", l), b = this.get("FullYear", l), p = a.defaultOptions.lang, G = p && p.weekdays, y = p && p.shortWeekdays; l = x({
                        a: y ? y[t] : G[t].substr(0, 3), A: G[t], d: m(h), e: m(h, 2, " "), w: t, b: p.shortMonths[d], B: p.months[d], m: m(d + 1), o: d + 1, y: b.toString().substr(2, 2), Y: b, H: m(q), k: q, I: m(q % 12 || 12), l: q % 12 || 12, M: m(this.get("Minutes",
                            l)), p: 12 > q ? "AM" : "PM", P: 12 > q ? "am" : "pm", S: m(l.getSeconds()), L: m(Math.floor(e % 1E3), 3)
                    }, a.dateFormats); n(l, function (b, d) { for (; -1 !== c.indexOf("%" + d);)c = c.replace("%" + d, "function" === typeof b ? b.call(k, e) : b) }); return f ? c.substr(0, 1).toUpperCase() + c.substr(1) : c
            }; v.prototype.resolveDTLFormat = function (e) { return J(e, !0) ? e : (e = c(e), { main: e[0], from: e[1], to: e[2] }) }; v.prototype.getTimeTicks = function (c, k, f, l) {
                var q = this, v = [], t = {}, h = new q.Date(k), d = c.unitRange, b = c.count || 1, p; l = g(l, 1); if (E(k)) {
                    q.set("Milliseconds", h,
                        d >= e.second ? 0 : b * Math.floor(q.get("Milliseconds", h) / b)); d >= e.second && q.set("Seconds", h, d >= e.minute ? 0 : b * Math.floor(q.get("Seconds", h) / b)); d >= e.minute && q.set("Minutes", h, d >= e.hour ? 0 : b * Math.floor(q.get("Minutes", h) / b)); d >= e.hour && q.set("Hours", h, d >= e.day ? 0 : b * Math.floor(q.get("Hours", h) / b)); d >= e.day && q.set("Date", h, d >= e.month ? 1 : Math.max(1, b * Math.floor(q.get("Date", h) / b))); if (d >= e.month) { q.set("Month", h, d >= e.year ? 0 : b * Math.floor(q.get("Month", h) / b)); var G = q.get("FullYear", h) } d >= e.year && q.set("FullYear",
                            h, G - G % b); d === e.week && (G = q.get("Day", h), q.set("Date", h, q.get("Date", h) - G + l + (G < l ? -7 : 0))); G = q.get("FullYear", h); l = q.get("Month", h); var y = q.get("Date", h), a = q.get("Hours", h); k = h.getTime(); !q.variableTimezone && q.useUTC || !E(f) || (p = f - k > 4 * e.month || q.getTimezoneOffset(k) !== q.getTimezoneOffset(f)); k = h.getTime(); for (h = 1; k < f;)v.push(k), k = d === e.year ? q.makeTime(G + h * b, 0) : d === e.month ? q.makeTime(G, l + h * b) : !p || d !== e.day && d !== e.week ? p && d === e.hour && 1 < b ? q.makeTime(G, l, y, a + h * b) : k + d * b : q.makeTime(G, l, y + h * b * (d === e.day ? 1 : 7)),
                                h++; v.push(k); d <= e.hour && 1E4 > v.length && v.forEach(function (b) { 0 === b % 18E5 && "000000000" === q.dateFormat("%H%M%S%L", b) && (t[b] = "day") })
                } v.info = x(c, { higherRanks: t, totalRange: d * b }); return v
            }; v.prototype.getDateFormat = function (c, k, f, g) {
                var l = this.dateFormat("%m-%d %H:%M:%S.%L", k), q = { millisecond: 15, second: 12, minute: 9, hour: 6, day: 3 }, t = "millisecond"; for (h in e) {
                    if (c === e.week && +this.dateFormat("%w", k) === f && "00:00:00.000" === l.substr(6)) { var h = "week"; break } if (e[h] > c) { h = t; break } if (q[h] && l.substr(q[h]) !== "01-01 00:00:00.000".substr(q[h])) break;
                    "week" !== h && (t = h)
                } if (h) var d = this.resolveDTLFormat(g[h]).main; return d
            }; return v
        }(); ""; return w
    }); M(a, "Core/DefaultOptions.js", [a["Core/Chart/ChartDefaults.js"], a["Core/Color/Color.js"], a["Core/Globals.js"], a["Core/Color/Palette.js"], a["Core/Time.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x) {
        w = w.parse; var r = x.merge, u = {
            colors: E.colors, symbols: ["circle", "diamond", "square", "triangle", "triangle-down"], lang: {
                loading: "Loading...", months: "January February March April May June July August September October November December".split(" "),
                shortMonths: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), weekdays: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "), decimalPoint: ".", numericSymbols: "kMGTPE".split(""), resetZoom: "Reset zoom", resetZoomTitle: "Reset zoom level 1:1", thousandsSep: " "
            }, global: {}, time: { Date: void 0, getTimezoneOffset: void 0, timezone: void 0, timezoneOffset: 0, useUTC: !0 }, chart: a, title: { text: "Chart title", align: "center", margin: 15, widthAdjust: -44 }, subtitle: { text: "", align: "center", widthAdjust: -44 },
            caption: { margin: 15, text: "", align: "left", verticalAlign: "bottom" }, plotOptions: {}, labels: { style: { position: "absolute", color: E.neutralColor80 } }, legend: {
                enabled: !0, align: "center", alignColumns: !0, className: "highcharts-no-tooltip", layout: "horizontal", labelFormatter: function () { return this.name }, borderColor: E.neutralColor40, borderRadius: 0, navigation: { activeColor: E.highlightColor100, inactiveColor: E.neutralColor20 }, itemStyle: { color: E.neutralColor80, cursor: "pointer", fontSize: "12px", fontWeight: "bold", textOverflow: "ellipsis" },
                itemHoverStyle: { color: E.neutralColor100 }, itemHiddenStyle: { color: E.neutralColor20 }, shadow: !1, itemCheckboxStyle: { position: "absolute", width: "13px", height: "13px" }, squareSymbol: !0, symbolPadding: 5, verticalAlign: "bottom", x: 0, y: 0, title: { style: { fontWeight: "bold" } }
            }, loading: { labelStyle: { fontWeight: "bold", position: "relative", top: "45%" }, style: { position: "absolute", backgroundColor: E.backgroundColor, opacity: .5, textAlign: "center" } }, tooltip: {
                enabled: !0, animation: C.svg, borderRadius: 3, dateTimeLabelFormats: {
                    millisecond: "%A, %b %e, %H:%M:%S.%L",
                    second: "%A, %b %e, %H:%M:%S", minute: "%A, %b %e, %H:%M", hour: "%A, %b %e, %H:%M", day: "%A, %b %e, %Y", week: "Week from %A, %b %e, %Y", month: "%B %Y", year: "%Y"
                }, footerFormat: "", headerShape: "callout", hideDelay: 500, padding: 8, shape: "callout", shared: !1, snap: C.isTouchDevice ? 25 : 10, headerFormat: '<span style="font-size: 10px">{point.key}</span><br/>', pointFormat: '<span style="color:{point.color}">\u25cf</span> {series.name}: <b>{point.y}</b><br/>', backgroundColor: w(E.neutralColor3).setOpacity(.85).get(), borderWidth: 1,
                shadow: !0, stickOnContact: !1, style: { color: E.neutralColor80, cursor: "default", fontSize: "12px", whiteSpace: "nowrap" }, useHTML: !1
            }, credits: { enabled: !0, href: "https://www.highcharts.com?credits", position: { align: "right", x: -10, verticalAlign: "bottom", y: -5 }, style: { cursor: "pointer", color: E.neutralColor40, fontSize: "9px" }, text: "Highcharts.com" }
        }; u.chart.styledMode = !1; ""; var n = new z(r(u.global, u.time)); a = {
            defaultOptions: u, defaultTime: n, getOptions: function () { return u }, setOptions: function (a) {
                r(!0, u, a); if (a.time || a.global) C.time ?
                    C.time.update(r(u.global, u.time, a.global, a.time)) : C.time = n; return u
            }
        }; ""; return a
    }); M(a, "Core/Animation/Fx.js", [a["Core/Color/Color.js"], a["Core/Globals.js"], a["Core/Utilities.js"]], function (a, w, C) {
        var r = a.parse, z = w.win, x = C.isNumber, J = C.objectEach; return function () {
            function a(a, m, g) { this.pos = NaN; this.options = m; this.elem = a; this.prop = g } a.prototype.dSetter = function () {
                var a = this.paths, m = a && a[0]; a = a && a[1]; var g = this.now || 0, c = []; if (1 !== g && m && a) if (m.length === a.length && 1 > g) for (var e = 0; e < a.length; e++) {
                    for (var l =
                        m[e], f = a[e], v = [], q = 0; q < f.length; q++) { var k = l[q], I = f[q]; x(k) && x(I) && ("A" !== f[0] || 4 !== q && 5 !== q) ? v[q] = k + g * (I - k) : v[q] = I } c.push(v)
                } else c = a; else c = this.toD || []; this.elem.attr("d", c, void 0, !0)
            }; a.prototype.update = function () { var a = this.elem, m = this.prop, g = this.now, c = this.options.step; if (this[m + "Setter"]) this[m + "Setter"](); else a.attr ? a.element && a.attr(m, g, null, !0) : a.style[m] = g + this.unit; c && c.call(a, g, this) }; a.prototype.run = function (n, m, g) {
                var c = this, e = c.options, l = function (e) { return l.stopped ? !1 : c.step(e) },
                f = z.requestAnimationFrame || function (c) { setTimeout(c, 13) }, v = function () { for (var c = 0; c < a.timers.length; c++)a.timers[c]() || a.timers.splice(c--, 1); a.timers.length && f(v) }; n !== m || this.elem["forceAnimate:" + this.prop] ? (this.startTime = +new Date, this.start = n, this.end = m, this.unit = g, this.now = this.start, this.pos = 0, l.elem = this.elem, l.prop = this.prop, l() && 1 === a.timers.push(l) && f(v)) : (delete e.curAnim[this.prop], e.complete && 0 === Object.keys(e.curAnim).length && e.complete.call(this.elem))
            }; a.prototype.step = function (a) {
                var m =
                    +new Date, g = this.options, c = this.elem, e = g.complete, l = g.duration, f = g.curAnim; if (c.attr && !c.element) a = !1; else if (a || m >= l + this.startTime) { this.now = this.end; this.pos = 1; this.update(); var v = f[this.prop] = !0; J(f, function (c) { !0 !== c && (v = !1) }); v && e && e.call(c); a = !1 } else this.pos = g.easing((m - this.startTime) / l), this.now = this.start + (this.end - this.start) * this.pos, this.update(), a = !0; return a
            }; a.prototype.initPath = function (a, m, g) {
                function c(c, e) {
                    for (; c.length < D;) {
                        var f = c[0], h = e[D - c.length]; h && "M" === f[0] && (c[0] = "C" ===
                            h[0] ? ["C", f[1], f[2], f[1], f[2], f[1], f[2]] : ["L", f[1], f[2]]); c.unshift(f); v && (f = c.pop(), c.push(c[c.length - 1], f))
                    }
                } function e(c, e) { for (; c.length < D;)if (e = c[Math.floor(c.length / q) - 1].slice(), "C" === e[0] && (e[1] = e[5], e[2] = e[6]), v) { var f = c[Math.floor(c.length / q)].slice(); c.splice(c.length / 2, 0, e, f) } else c.push(e) } var l = a.startX, f = a.endX; g = g.slice(); var v = a.isArea, q = v ? 2 : 1; m = m && m.slice(); if (!m) return [g, g]; if (l && f && f.length) {
                    for (a = 0; a < l.length; a++)if (l[a] === f[0]) { var k = a; break } else if (l[0] === f[f.length - l.length +
                        a]) { k = a; var I = !0; break } else if (l[l.length - 1] === f[f.length - l.length + a]) { k = l.length - a; break } "undefined" === typeof k && (m = [])
                } if (m.length && x(k)) { var D = g.length + k * q; I ? (c(m, g), e(g, m)) : (c(g, m), e(m, g)) } return [m, g]
            }; a.prototype.fillSetter = function () { a.prototype.strokeSetter.apply(this, arguments) }; a.prototype.strokeSetter = function () { this.elem.attr(this.prop, r(this.start).tweenTo(r(this.end), this.pos), null, !0) }; a.timers = []; return a
        }()
    }); M(a, "Core/Animation/AnimationUtilities.js", [a["Core/Animation/Fx.js"], a["Core/Utilities.js"]],
        function (a, w) {
            function r(c) { return n(c) ? m({ duration: 500, defer: 0 }, c) : { duration: c ? 500 : 0, defer: 0 } } function E(c, g) { for (var e = a.timers.length; e--;)a.timers[e].elem !== c || g && g !== a.timers[e].prop || (a.timers[e].stopped = !0) } var z = w.defined, x = w.getStyle, J = w.isArray, u = w.isNumber, n = w.isObject, m = w.merge, g = w.objectEach, c = w.pick; return {
                animate: function (c, l, f) {
                    var e, q = "", k, I; if (!n(f)) { var D = arguments; f = { duration: D[2], easing: D[3], complete: D[4] } } u(f.duration) || (f.duration = 400); f.easing = "function" === typeof f.easing ?
                        f.easing : Math[f.easing] || Math.easeInOutSine; f.curAnim = m(l); g(l, function (g, v) { E(c, v); I = new a(c, f, v); k = void 0; "d" === v && J(l.d) ? (I.paths = I.initPath(c, c.pathArray, l.d), I.toD = l.d, e = 0, k = 1) : c.attr ? e = c.attr(v) : (e = parseFloat(x(c, v)) || 0, "opacity" !== v && (q = "px")); k || (k = g); "string" === typeof k && k.match("px") && (k = k.replace(/px/g, "")); I.run(e, k, q) })
                }, animObject: r, getDeferredAnimation: function (c, g, f) {
                    var e = r(g), a = 0, k = 0; (f ? [f] : c.series).forEach(function (c) {
                        c = r(c.options.animation); a = g && z(g.defer) ? e.defer : Math.max(a,
                            c.duration + c.defer); k = Math.min(e.duration, c.duration)
                    }); c.renderer.forExport && (a = 0); return { defer: Math.max(0, a - k), duration: Math.min(a, k) }
                }, setAnimation: function (e, g) { g.renderer.globalAnimation = c(e, g.options.chart.animation, !0) }, stop: E
            }
        }); M(a, "Core/Renderer/HTML/AST.js", [a["Core/Globals.js"], a["Core/Utilities.js"]], function (a, w) {
            var r = a.SVG_NS, E = w.attr, z = w.createElement, x = w.discardElement, J = w.error, u = w.isString, n = w.objectEach, m = w.splat; try { var g = !!(new DOMParser).parseFromString("", "text/html") } catch (c) {
                g =
                !1
            } w = function () {
                function c(c) { this.nodes = "string" === typeof c ? this.parseMarkup(c) : c } c.filterUserAttributes = function (e) { n(e, function (g, f) { var a = !0; -1 === c.allowedAttributes.indexOf(f) && (a = !1); -1 !== ["background", "dynsrc", "href", "lowsrc", "src"].indexOf(f) && (a = u(g) && c.allowedReferences.some(function (c) { return 0 === g.indexOf(c) })); a || (J("Highcharts warning: Invalid attribute '" + f + "' in config"), delete e[f]) }); return e }; c.setElementHTML = function (e, g) { e.innerHTML = ""; g && (new c(g)).addToDOM(e) }; c.prototype.addToDOM =
                    function (e) {
                        function g(e, l) {
                            var f; m(e).forEach(function (e) {
                                var k = e.tagName, q = e.textContent ? a.doc.createTextNode(e.textContent) : void 0; if (k) if ("#text" === k) var v = q; else if (-1 !== c.allowedTags.indexOf(k)) { k = a.doc.createElementNS("svg" === k ? r : l.namespaceURI || r, k); var m = e.attributes || {}; n(e, function (c, h) { "tagName" !== h && "attributes" !== h && "children" !== h && "textContent" !== h && (m[h] = c) }); E(k, c.filterUserAttributes(m)); q && k.appendChild(q); g(e.children || [], k); v = k } else J("Highcharts warning: Invalid tagName '" + k +
                                    "' in config"); v && l.appendChild(v); f = v
                            }); return f
                        } return g(this.nodes, e)
                    }; c.prototype.parseMarkup = function (c) {
                        var e = []; c = c.trim(); if (g) c = (new DOMParser).parseFromString(c, "text/html"); else { var f = z("div"); f.innerHTML = c; c = { body: f } } var a = function (c, e) {
                            var f = c.nodeName.toLowerCase(), k = { tagName: f }; "#text" === f && (k.textContent = c.textContent || ""); if (f = c.attributes) { var g = {};[].forEach.call(f, function (c) { g[c.name] = c.value }); k.attributes = g } if (c.childNodes.length) {
                                var l = [];[].forEach.call(c.childNodes, function (c) {
                                    a(c,
                                        l)
                                }); l.length && (k.children = l)
                            } e.push(k)
                        };[].forEach.call(c.body.childNodes, function (c) { return a(c, e) }); f && x(f); return e
                    }; c.allowedAttributes = "aria-controls aria-describedby aria-expanded aria-haspopup aria-hidden aria-label aria-labelledby aria-live aria-pressed aria-readonly aria-roledescription aria-selected class clip-path color colspan cx cy d dx dy disabled fill height href id in markerHeight markerWidth offset opacity orient padding paddingLeft paddingRight patternUnits r refX refY role scope slope src startOffset stdDeviation stroke stroke-linecap stroke-width style tableValues result rowspan summary target tabindex text-align textAnchor textLength type valign width x x1 x2 y y1 y2 zIndex".split(" ");
                c.allowedReferences = "https:// http:// mailto: / ../ ./ #".split(" "); c.allowedTags = "a b br button caption circle clipPath code dd defs div dl dt em feComponentTransfer feFuncA feFuncB feFuncG feFuncR feGaussianBlur feOffset feMerge feMergeNode filter h1 h2 h3 h4 h5 h6 hr i img li linearGradient marker ol p path pattern pre rect small span stop strong style sub sup svg table text thead tbody tspan td th tr u ul #text".split(" "); return c
            }(); ""; return w
        }); M(a, "Core/FormatUtilities.js", [a["Core/DefaultOptions.js"],
        a["Core/Utilities.js"]], function (a, w) {
            function r(a, g, c, e) {
                a = +a || 0; g = +g; var l = E.lang, f = (a.toString().split(".")[1] || "").split("e")[0].length, v = a.toString().split("e"), q = g; if (-1 === g) g = Math.min(f, 20); else if (!J(g)) g = 2; else if (g && v[1] && 0 > v[1]) { var k = g + +v[1]; 0 <= k ? (v[0] = (+v[0]).toExponential(k).split("e")[0], g = k) : (v[0] = v[0].split(".")[0] || 0, a = 20 > g ? (v[0] * Math.pow(10, v[1])).toFixed(g) : 0, v[1] = 0) } k = (Math.abs(v[1] ? v[0] : a) + Math.pow(10, -Math.max(g, f) - 1)).toFixed(g); f = String(n(k)); var m = 3 < f.length ? f.length % 3 :
                    0; c = u(c, l.decimalPoint); e = u(e, l.thousandsSep); a = (0 > a ? "-" : "") + (m ? f.substr(0, m) + e : ""); a = 0 > +v[1] && !q ? "0" : a + f.substr(m).replace(/(\d{3})(?=\d)/g, "$1" + e); g && (a += c + k.slice(-g)); v[1] && 0 !== +a && (a += "e" + v[1]); return a
            } var E = a.defaultOptions, z = a.defaultTime, x = w.getNestedProperty, J = w.isNumber, u = w.pick, n = w.pInt; return {
                dateFormat: function (a, g, c) { return z.dateFormat(a, g, c) }, format: function (a, g, c) {
                    var e = "{", l = !1, f = /f$/, v = /\.([0-9])/, q = E.lang, k = c && c.time || z; c = c && c.numberFormatter || r; for (var m = []; a;) {
                        var D = a.indexOf(e);
                        if (-1 === D) break; var B = a.slice(0, D); if (l) { B = B.split(":"); e = x(B.shift() || "", g); if (B.length && "number" === typeof e) if (B = B.join(":"), f.test(B)) { var u = parseInt((B.match(v) || ["", "-1"])[1], 10); null !== e && (e = c(e, u, q.decimalPoint, -1 < B.indexOf(",") ? q.thousandsSep : "")) } else e = k.dateFormat(B, e); m.push(e) } else m.push(B); a = a.slice(D + 1); e = (l = !l) ? "}" : "{"
                    } m.push(a); return m.join("")
                }, numberFormat: r
            }
        }); M(a, "Core/Renderer/RendererUtilities.js", [a["Core/Utilities.js"]], function (a) {
            var r = a.clamp, C = a.pick, E = a.stableSort,
            z; (function (a) {
                function x(a, n, m) {
                    var g = a, c = g.reducedLen || n, e = function (c, e) { return (e.rank || 0) - (c.rank || 0) }, l = function (c, e) { return c.target - e.target }, f, v = !0, q = [], k = 0; for (f = a.length; f--;)k += a[f].size; if (k > c) { E(a, e); for (k = f = 0; k <= c;)k += a[f].size, f++; q = a.splice(f - 1, a.length) } E(a, l); for (a = a.map(function (c) { return { size: c.size, targets: [c.target], align: C(c.align, .5) } }); v;) {
                        for (f = a.length; f--;)c = a[f], e = (Math.min.apply(0, c.targets) + Math.max.apply(0, c.targets)) / 2, c.pos = r(e - c.size * c.align, 0, n - c.size); f = a.length;
                        for (v = !1; f--;)0 < f && a[f - 1].pos + a[f - 1].size > a[f].pos && (a[f - 1].size += a[f].size, a[f - 1].targets = a[f - 1].targets.concat(a[f].targets), a[f - 1].align = .5, a[f - 1].pos + a[f - 1].size > n && (a[f - 1].pos = n - a[f - 1].size), a.splice(f, 1), v = !0)
                    } g.push.apply(g, q); f = 0; a.some(function (c) {
                        var e = 0; return (c.targets || []).some(function () {
                            g[f].pos = c.pos + e; if ("undefined" !== typeof m && Math.abs(g[f].pos - g[f].target) > m) return g.slice(0, f + 1).forEach(function (c) { return delete c.pos }), g.reducedLen = (g.reducedLen || n) - .1 * n, g.reducedLen > .1 * n && x(g,
                                n, m), !0; e += g[f].size; f++; return !1
                        })
                    }); E(g, l); return g
                } a.distribute = x
            })(z || (z = {})); return z
        }); M(a, "Core/Renderer/SVG/SVGElement.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/Renderer/HTML/AST.js"], a["Core/Color/Color.js"], a["Core/Globals.js"], a["Core/Color/Palette.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x) {
            var r = a.animate, u = a.animObject, n = a.stop, m = E.deg2rad, g = E.doc, c = E.noop, e = E.svg, l = E.SVG_NS, f = E.win, v = x.addEvent, q = x.attr, k = x.createElement, I = x.css, D = x.defined, B = x.erase, O = x.extend,
            t = x.fireEvent, h = x.isArray, d = x.isFunction, b = x.isNumber, p = x.isString, G = x.merge, y = x.objectEach, L = x.pick, F = x.pInt, P = x.syncTimeout, S = x.uniqueKey; a = function () {
                function a() { this.element = void 0; this.onEvents = {}; this.opacity = 1; this.renderer = void 0; this.SVG_NS = l; this.symbolCustomAttribs = "x y width height r start end innerR anchorX anchorY rounded".split(" ") } a.prototype._defaultGetter = function (b) {
                    b = L(this[b + "Value"], this[b], this.element ? this.element.getAttribute(b) : null, 0); /^[\-0-9\.]+$/.test(b) && (b = parseFloat(b));
                    return b
                }; a.prototype._defaultSetter = function (b, d, c) { c.setAttribute(d, b) }; a.prototype.add = function (b) { var d = this.renderer, c = this.element; b && (this.parentGroup = b); this.parentInverted = b && b.inverted; "undefined" !== typeof this.textStr && "text" === this.element.nodeName && d.buildText(this); this.added = !0; if (!b || b.handleZ || this.zIndex) var K = this.zIndexSetter(); K || (b ? b.element : d.box).appendChild(c); if (this.onAdd) this.onAdd(); return this }; a.prototype.addClass = function (b, d) {
                    var c = d ? "" : this.attr("class") || ""; b = (b ||
                        "").split(/ /g).reduce(function (b, d) { -1 === c.indexOf(d) && b.push(d); return b }, c ? [c] : []).join(" "); b !== c && this.attr("class", b); return this
                }; a.prototype.afterSetters = function () { this.doTransform && (this.updateTransform(), this.doTransform = !1) }; a.prototype.align = function (b, d, c) {
                    var K = {}, h = this.renderer, H = h.alignedObjects, a, e, A; if (b) { if (this.alignOptions = b, this.alignByTranslate = d, !c || p(c)) this.alignTo = a = c || "renderer", B(H, this), H.push(this), c = void 0 } else b = this.alignOptions, d = this.alignByTranslate, a = this.alignTo;
                    c = L(c, h[a], "scrollablePlotBox" === a ? h.plotBox : void 0, h); a = b.align; var f = b.verticalAlign; h = (c.x || 0) + (b.x || 0); H = (c.y || 0) + (b.y || 0); "right" === a ? e = 1 : "center" === a && (e = 2); e && (h += (c.width - (b.width || 0)) / e); K[d ? "translateX" : "x"] = Math.round(h); "bottom" === f ? A = 1 : "middle" === f && (A = 2); A && (H += (c.height - (b.height || 0)) / A); K[d ? "translateY" : "y"] = Math.round(H); this[this.placed ? "animate" : "attr"](K); this.placed = !0; this.alignAttr = K; return this
                }; a.prototype.alignSetter = function (b) {
                    var d = { left: "start", center: "middle", right: "end" };
                    d[b] && (this.alignValue = b, this.element.setAttribute("text-anchor", d[b]))
                }; a.prototype.animate = function (b, d, c) { var h = this, H = u(L(d, this.renderer.globalAnimation, !0)); d = H.defer; L(g.hidden, g.msHidden, g.webkitHidden, !1) && (H.duration = 0); 0 !== H.duration ? (c && (H.complete = c), P(function () { h.element && r(h, b, H) }, d)) : (this.attr(b, void 0, c), y(b, function (b, d) { H.step && H.step.call(this, b, { prop: d, pos: 1, elem: this }) }, this)); return this }; a.prototype.applyTextOutline = function (b) {
                    var d = this.element; -1 !== b.indexOf("contrast") &&
                        (b = b.replace(/contrast/g, this.renderer.getContrast(d.style.fill))); var c = b.split(" "); b = c[c.length - 1]; if ((c = c[0]) && "none" !== c && E.svg) {
                            this.fakeTS = !0; this.ySetter = this.xSetter; c = c.replace(/(^[\d\.]+)(.*?)$/g, function (b, d, c) { return 2 * Number(d) + c }); this.removeTextOutline(); var h = g.createElementNS(l, "tspan"); q(h, { "class": "highcharts-text-outline", fill: b, stroke: b, "stroke-width": c, "stroke-linejoin": "round" });[].forEach.call(d.childNodes, function (b) {
                                var d = b.cloneNode(!0); d.removeAttribute && ["fill", "stroke",
                                    "stroke-width", "stroke"].forEach(function (b) { return d.removeAttribute(b) }); h.appendChild(d)
                            }); var a = g.createElementNS(l, "tspan"); a.textContent = "\u200b";["x", "y"].forEach(function (b) { var c = d.getAttribute(b); c && a.setAttribute(b, c) }); h.appendChild(a); d.insertBefore(h, d.firstChild)
                        }
                }; a.prototype.attr = function (b, d, c, h) {
                    var K = this.element, H = this.symbolCustomAttribs, a, e = this, A, p; if ("string" === typeof b && "undefined" !== typeof d) { var f = b; b = {}; b[f] = d } "string" === typeof b ? e = (this[b + "Getter"] || this._defaultGetter).call(this,
                        b, K) : (y(b, function (d, c) { A = !1; h || n(this, c); this.symbolName && -1 !== H.indexOf(c) && (a || (this.symbolAttr(b), a = !0), A = !0); !this.rotation || "x" !== c && "y" !== c || (this.doTransform = !0); A || (p = this[c + "Setter"] || this._defaultSetter, p.call(this, d, c, K), !this.styledMode && this.shadows && /^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(c) && this.updateShadows(c, d, p)) }, this), this.afterSetters()); c && c.call(this); return e
                }; a.prototype.clip = function (b) {
                    return this.attr("clip-path", b ? "url(" + this.renderer.url + "#" + b.id +
                        ")" : "none")
                }; a.prototype.crisp = function (b, d) { d = d || b.strokeWidth || 0; var c = Math.round(d) % 2 / 2; b.x = Math.floor(b.x || this.x || 0) + c; b.y = Math.floor(b.y || this.y || 0) + c; b.width = Math.floor((b.width || this.width || 0) - 2 * c); b.height = Math.floor((b.height || this.height || 0) - 2 * c); D(b.strokeWidth) && (b.strokeWidth = d); return b }; a.prototype.complexColor = function (b, d, c) {
                    var K = this.renderer, a, H, e, p, A, f, k, g, l, q, v = [], F; t(this.renderer, "complexColor", { args: arguments }, function () {
                        b.radialGradient ? H = "radialGradient" : b.linearGradient &&
                            (H = "linearGradient"); if (H) {
                                e = b[H]; A = K.gradients; f = b.stops; l = c.radialReference; h(e) && (b[H] = e = { x1: e[0], y1: e[1], x2: e[2], y2: e[3], gradientUnits: "userSpaceOnUse" }); "radialGradient" === H && l && !D(e.gradientUnits) && (p = e, e = G(e, K.getRadialAttr(l, p), { gradientUnits: "userSpaceOnUse" })); y(e, function (b, d) { "id" !== d && v.push(d, b) }); y(f, function (b) { v.push(b) }); v = v.join(","); if (A[v]) q = A[v].attr("id"); else {
                                    e.id = q = S(); var N = A[v] = K.createElement(H).attr(e).add(K.defs); N.radAttr = p; N.stops = []; f.forEach(function (b) {
                                        0 === b[1].indexOf("rgba") ?
                                        (a = C.parse(b[1]), k = a.get("rgb"), g = a.get("a")) : (k = b[1], g = 1); b = K.createElement("stop").attr({ offset: b[0], "stop-color": k, "stop-opacity": g }).add(N); N.stops.push(b)
                                    })
                                } F = "url(" + K.url + "#" + q + ")"; c.setAttribute(d, F); c.gradient = v; b.toString = function () { return F }
                            }
                    })
                }; a.prototype.css = function (b) {
                    var d = this.styles, c = {}, h = this.element, a = ["textOutline", "textOverflow", "width"], p = "", f = !d; b && b.color && (b.fill = b.color); d && y(b, function (b, h) { d && d[h] !== b && (c[h] = b, f = !0) }); if (f) {
                        d && (b = O(d, c)); if (b) if (null === b.width || "auto" ===
                            b.width) delete this.textWidth; else if ("text" === h.nodeName.toLowerCase() && b.width) var k = this.textWidth = F(b.width); this.styles = b; k && !e && this.renderer.forExport && delete b.width; if (h.namespaceURI === this.SVG_NS) { var A = function (b, d) { return "-" + d.toLowerCase() }; y(b, function (b, d) { -1 === a.indexOf(d) && (p += d.replace(/([A-Z])/g, A) + ":" + b + ";") }); p && q(h, "style", p) } else I(h, b); this.added && ("text" === this.element.nodeName && this.renderer.buildText(this), b && b.textOutline && this.applyTextOutline(b.textOutline))
                    } return this
                };
                a.prototype.dashstyleSetter = function (b) { var d = this["stroke-width"]; "inherit" === d && (d = 1); if (b = b && b.toLowerCase()) { var c = b.replace("shortdashdotdot", "3,1,1,1,1,1,").replace("shortdashdot", "3,1,1,1").replace("shortdot", "1,1,").replace("shortdash", "3,1,").replace("longdash", "8,3,").replace(/dot/g, "1,3,").replace("dash", "4,3,").replace(/,$/, "").split(","); for (b = c.length; b--;)c[b] = "" + F(c[b]) * L(d, NaN); b = c.join(",").replace(/NaN/g, "none"); this.element.setAttribute("stroke-dasharray", b) } }; a.prototype.destroy =
                    function () {
                        var b = this, d = b.element || {}, c = b.renderer, h = d.ownerSVGElement, a = c.isSVG && "SPAN" === d.nodeName && b.parentGroup || void 0; d.onclick = d.onmouseout = d.onmouseover = d.onmousemove = d.point = null; n(b); if (b.clipPath && h) { var e = b.clipPath;[].forEach.call(h.querySelectorAll("[clip-path],[CLIP-PATH]"), function (b) { -1 < b.getAttribute("clip-path").indexOf(e.element.id) && b.removeAttribute("clip-path") }); b.clipPath = e.destroy() } if (b.stops) { for (h = 0; h < b.stops.length; h++)b.stops[h].destroy(); b.stops.length = 0; b.stops = void 0 } b.safeRemoveChild(d);
                        for (c.styledMode || b.destroyShadows(); a && a.div && 0 === a.div.childNodes.length;)d = a.parentGroup, b.safeRemoveChild(a.div), delete a.div, a = d; b.alignTo && B(c.alignedObjects, b); y(b, function (d, c) { b[c] && b[c].parentGroup === b && b[c].destroy && b[c].destroy(); delete b[c] })
                    }; a.prototype.destroyShadows = function () { (this.shadows || []).forEach(function (b) { this.safeRemoveChild(b) }, this); this.shadows = void 0 }; a.prototype.destroyTextPath = function (b, d) {
                        var c = b.getElementsByTagName("text")[0]; if (c) {
                            if (c.removeAttribute("dx"),
                                c.removeAttribute("dy"), d.element.setAttribute("id", ""), this.textPathWrapper && c.getElementsByTagName("textPath").length) { for (b = this.textPathWrapper.element.childNodes; b.length;)c.appendChild(b[0]); c.removeChild(this.textPathWrapper.element) }
                        } else if (b.getAttribute("dx") || b.getAttribute("dy")) b.removeAttribute("dx"), b.removeAttribute("dy"); this.textPathWrapper && (this.textPathWrapper = this.textPathWrapper.destroy())
                    }; a.prototype.dSetter = function (b, d, c) {
                        h(b) && ("string" === typeof b[0] && (b = this.renderer.pathToSegments(b)),
                            this.pathArray = b, b = b.reduce(function (b, d, c) { return d && d.join ? (c ? b + " " : "") + d.join(" ") : (d || "").toString() }, "")); /(NaN| {2}|^$)/.test(b) && (b = "M 0 0"); this[d] !== b && (c.setAttribute(d, b), this[d] = b)
                    }; a.prototype.fadeOut = function (b) { var d = this; d.animate({ opacity: 0 }, { duration: L(b, 150), complete: function () { d.attr({ y: -9999 }).hide() } }) }; a.prototype.fillSetter = function (b, d, c) { "string" === typeof b ? c.setAttribute(d, b) : b && this.complexColor(b, d, c) }; a.prototype.getBBox = function (b, c) {
                        var h = this.renderer, K = this.element,
                        e = this.styles, p = this.textStr, f = h.cache, k = h.cacheKeys, A = K.namespaceURI === this.SVG_NS; c = L(c, this.rotation, 0); var g = h.styledMode ? K && a.prototype.getStyle.call(K, "font-size") : e && e.fontSize, y; if (D(p)) { var G = p.toString(); -1 === G.indexOf("<") && (G = G.replace(/[0-9]/g, "0")); G += ["", c, g, this.textWidth, e && e.textOverflow, e && e.fontWeight].join() } G && !b && (y = f[G]); if (!y) {
                            if (A || h.forExport) {
                                try {
                                    var l = this.fakeTS && function (b) { var d = K.querySelector(".highcharts-text-outline"); d && I(d, { display: b }) }; d(l) && l("none"); y = K.getBBox ?
                                        O({}, K.getBBox()) : { width: K.offsetWidth, height: K.offsetHeight }; d(l) && l("")
                                } catch (Y) { "" } if (!y || 0 > y.width) y = { width: 0, height: 0 }
                            } else y = this.htmlGetBBox(); h.isSVG && (b = y.width, h = y.height, A && (y.height = h = { "11px,17": 14, "13px,20": 16 }[e && e.fontSize + "," + Math.round(h)] || h), c && (e = c * m, y.width = Math.abs(h * Math.sin(e)) + Math.abs(b * Math.cos(e)), y.height = Math.abs(h * Math.cos(e)) + Math.abs(b * Math.sin(e)))); if (G && ("" === p || 0 < y.height)) { for (; 250 < k.length;)delete f[k.shift()]; f[G] || k.push(G); f[G] = y }
                        } return y
                    }; a.prototype.getStyle =
                        function (b) { return f.getComputedStyle(this.element || this, "").getPropertyValue(b) }; a.prototype.hasClass = function (b) { return -1 !== ("" + this.attr("class")).split(" ").indexOf(b) }; a.prototype.hide = function (b) { b ? this.attr({ y: -9999 }) : this.attr({ visibility: "hidden" }); return this }; a.prototype.htmlGetBBox = function () { return { height: 0, width: 0, x: 0, y: 0 } }; a.prototype.init = function (b, d) { this.element = "span" === d ? k(d) : g.createElementNS(this.SVG_NS, d); this.renderer = b; t(this, "afterInit") }; a.prototype.invert = function (b) {
                            this.inverted =
                            b; this.updateTransform(); return this
                        }; a.prototype.on = function (b, d) { var c = this.onEvents; if (c[b]) c[b](); c[b] = v(this.element, b, d); return this }; a.prototype.opacitySetter = function (b, d, c) { this.opacity = b = Number(Number(b).toFixed(3)); c.setAttribute(d, b) }; a.prototype.removeClass = function (b) { return this.attr("class", ("" + this.attr("class")).replace(p(b) ? new RegExp("(^| )" + b + "( |$)") : b, " ").replace(/ +/g, " ").trim()) }; a.prototype.removeTextOutline = function () {
                            var b = this.element.querySelector("tspan.highcharts-text-outline");
                            b && this.safeRemoveChild(b)
                        }; a.prototype.safeRemoveChild = function (b) { var d = b.parentNode; d && d.removeChild(b) }; a.prototype.setRadialReference = function (b) { var d = this.element.gradient && this.renderer.gradients[this.element.gradient]; this.element.radialReference = b; d && d.radAttr && d.animate(this.renderer.getRadialAttr(b, d.radAttr)); return this }; a.prototype.setTextPath = function (d, h) {
                            var a = this.element, K = this.text ? this.text.element : a, e = { textAnchor: "text-anchor" }, p = !1, f = this.textPathWrapper, k = !f; h = G(!0, {
                                enabled: !0,
                                attributes: { dy: -5, startOffset: "50%", textAnchor: "middle" }
                            }, h); var A = w.filterUserAttributes(h.attributes); if (d && h && h.enabled) {
                                f && null === f.element.parentNode ? (k = !0, f = f.destroy()) : f && this.removeTextOutline.call(f.parentGroup); this.options && this.options.padding && (A.dx = -this.options.padding); f || (this.textPathWrapper = f = this.renderer.createElement("textPath"), p = !0); var g = f.element; (h = d.element.getAttribute("id")) || d.element.setAttribute("id", h = S()); if (k) for (K.setAttribute("y", 0), b(A.dx) && K.setAttribute("x",
                                    -A.dx), d = [].slice.call(K.childNodes), k = 0; k < d.length; k++) { var l = d[k]; l.nodeType !== Node.TEXT_NODE && "tspan" !== l.nodeName || g.appendChild(l) } p && f && f.add({ element: K }); g.setAttributeNS("http://www.w3.org/1999/xlink", "href", this.renderer.url + "#" + h); D(A.dy) && (g.parentNode.setAttribute("dy", A.dy), delete A.dy); D(A.dx) && (g.parentNode.setAttribute("dx", A.dx), delete A.dx); y(A, function (b, d) { g.setAttribute(e[d] || d, b) }); a.removeAttribute("transform"); this.removeTextOutline.call(f); this.text && !this.renderer.styledMode &&
                                        this.attr({ fill: "none", "stroke-width": 0 }); this.applyTextOutline = this.updateTransform = c
                            } else f && (delete this.updateTransform, delete this.applyTextOutline, this.destroyTextPath(a, d), this.updateTransform(), this.options && this.options.rotation && this.applyTextOutline(this.options.style.textOutline)); return this
                        }; a.prototype.shadow = function (b, d, c) {
                            var h = [], a = this.element, e = this.oldShadowOptions, H = { color: z.neutralColor100, offsetX: this.parentInverted ? -1 : 1, offsetY: this.parentInverted ? -1 : 1, opacity: .15, width: 3 },
                            p = !1, A; !0 === b ? A = H : "object" === typeof b && (A = O(H, b)); A && (A && e && y(A, function (b, d) { b !== e[d] && (p = !0) }), p && this.destroyShadows(), this.oldShadowOptions = A); if (!A) this.destroyShadows(); else if (!this.shadows) {
                                var f = A.opacity / A.width; var k = this.parentInverted ? "translate(" + A.offsetY + ", " + A.offsetX + ")" : "translate(" + A.offsetX + ", " + A.offsetY + ")"; for (H = 1; H <= A.width; H++) {
                                    var g = a.cloneNode(!1); var G = 2 * A.width + 1 - 2 * H; q(g, { stroke: b.color || z.neutralColor100, "stroke-opacity": f * H, "stroke-width": G, transform: k, fill: "none" });
                                    g.setAttribute("class", (g.getAttribute("class") || "") + " highcharts-shadow"); c && (q(g, "height", Math.max(q(g, "height") - G, 0)), g.cutHeight = G); d ? d.element.appendChild(g) : a.parentNode && a.parentNode.insertBefore(g, a); h.push(g)
                                } this.shadows = h
                            } return this
                        }; a.prototype.show = function (b) { return this.attr({ visibility: b ? "inherit" : "visible" }) }; a.prototype.strokeSetter = function (b, d, c) {
                            this[d] = b; this.stroke && this["stroke-width"] ? (a.prototype.fillSetter.call(this, this.stroke, "stroke", c), c.setAttribute("stroke-width",
                                this["stroke-width"]), this.hasStroke = !0) : "stroke-width" === d && 0 === b && this.hasStroke ? (c.removeAttribute("stroke"), this.hasStroke = !1) : this.renderer.styledMode && this["stroke-width"] && (c.setAttribute("stroke-width", this["stroke-width"]), this.hasStroke = !0)
                        }; a.prototype.strokeWidth = function () {
                            if (!this.renderer.styledMode) return this["stroke-width"] || 0; var b = this.getStyle("stroke-width"), d = 0; if (b.indexOf("px") === b.length - 2) d = F(b); else if ("" !== b) {
                                var c = g.createElementNS(l, "rect"); q(c, { width: b, "stroke-width": 0 });
                                this.element.parentNode.appendChild(c); d = c.getBBox().width; c.parentNode.removeChild(c)
                            } return d
                        }; a.prototype.symbolAttr = function (b) { var d = this; "x y r start end width height innerR anchorX anchorY clockwise".split(" ").forEach(function (c) { d[c] = L(b[c], d[c]) }); d.attr({ d: d.renderer.symbols[d.symbolName](d.x, d.y, d.width, d.height, d) }) }; a.prototype.textSetter = function (b) { b !== this.textStr && (delete this.textPxLength, this.textStr = b, this.added && this.renderer.buildText(this)) }; a.prototype.titleSetter = function (b) {
                            var d =
                                this.element, c = d.getElementsByTagName("title")[0] || g.createElementNS(this.SVG_NS, "title"); d.insertBefore ? d.insertBefore(c, d.firstChild) : d.appendChild(c); c.textContent = String(L(b, "")).replace(/<[^>]*>/g, "").replace(/&lt;/g, "<").replace(/&gt;/g, ">")
                        }; a.prototype.toFront = function () { var b = this.element; b.parentNode.appendChild(b); return this }; a.prototype.translate = function (b, d) { return this.attr({ translateX: b, translateY: d }) }; a.prototype.updateShadows = function (b, d, c) {
                            var h = this.shadows; if (h) for (var a = h.length; a--;)c.call(h[a],
                                "height" === b ? Math.max(d - (h[a].cutHeight || 0), 0) : "d" === b ? this.d : d, b, h[a])
                        }; a.prototype.updateTransform = function () {
                            var b = this.scaleX, d = this.scaleY, c = this.inverted, h = this.rotation, a = this.matrix, e = this.element, p = this.translateX || 0, f = this.translateY || 0; c && (p += this.width, f += this.height); p = ["translate(" + p + "," + f + ")"]; D(a) && p.push("matrix(" + a.join(",") + ")"); c ? p.push("rotate(90) scale(-1,1)") : h && p.push("rotate(" + h + " " + L(this.rotationOriginX, e.getAttribute("x"), 0) + " " + L(this.rotationOriginY, e.getAttribute("y") ||
                                0) + ")"); (D(b) || D(d)) && p.push("scale(" + L(b, 1) + " " + L(d, 1) + ")"); p.length && e.setAttribute("transform", p.join(" "))
                        }; a.prototype.visibilitySetter = function (b, d, c) { "inherit" === b ? c.removeAttribute(d) : this[d] !== b && c.setAttribute(d, b); this[d] = b }; a.prototype.xGetter = function (b) { "circle" === this.element.nodeName && ("x" === b ? b = "cx" : "y" === b && (b = "cy")); return this._defaultGetter(b) }; a.prototype.zIndexSetter = function (b, d) {
                            var c = this.renderer, h = this.parentGroup, a = (h || c).element || c.box, e = this.element; c = a === c.box; var p =
                                !1; var f = this.added; var A; D(b) ? (e.setAttribute("data-z-index", b), b = +b, this[d] === b && (f = !1)) : D(this[d]) && e.removeAttribute("data-z-index"); this[d] = b; if (f) { (b = this.zIndex) && h && (h.handleZ = !0); d = a.childNodes; for (A = d.length - 1; 0 <= A && !p; A--) { h = d[A]; f = h.getAttribute("data-z-index"); var k = !D(f); if (h !== e) if (0 > b && k && !c && !A) a.insertBefore(e, d[A]), p = !0; else if (F(f) <= b || k && (!D(b) || 0 <= b)) a.insertBefore(e, d[A + 1] || null), p = !0 } p || (a.insertBefore(e, d[c ? 3 : 0] || null), p = !0) } return p
                        }; return a
            }(); a.prototype["stroke-widthSetter"] =
                a.prototype.strokeSetter; a.prototype.yGetter = a.prototype.xGetter; a.prototype.matrixSetter = a.prototype.rotationOriginXSetter = a.prototype.rotationOriginYSetter = a.prototype.rotationSetter = a.prototype.scaleXSetter = a.prototype.scaleYSetter = a.prototype.translateXSetter = a.prototype.translateYSetter = a.prototype.verticalAlignSetter = function (b, d) { this[d] = b; this.doTransform = !0 }; ""; return a
        }); M(a, "Core/Renderer/RendererRegistry.js", [a["Core/Globals.js"]], function (a) {
            var r; (function (r) {
                r.rendererTypes = {}; var w;
                r.getRendererType = function (a) { void 0 === a && (a = w); return r.rendererTypes[a] || r.rendererTypes[w] }; r.registerRendererType = function (C, x, E) { r.rendererTypes[C] = x; if (!w || E) w = C, a.Renderer = x }
            })(r || (r = {})); return r
        }); M(a, "Core/Renderer/SVG/SVGLabel.js", [a["Core/Renderer/SVG/SVGElement.js"], a["Core/Utilities.js"]], function (a, w) {
            var r = this && this.__extends || function () {
                var a = function (g, c) {
                    a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (c, a) { c.__proto__ = a } || function (c, a) {
                        for (var e in a) a.hasOwnProperty(e) &&
                            (c[e] = a[e])
                    }; return a(g, c)
                }; return function (g, c) { function e() { this.constructor = g } a(g, c); g.prototype = null === c ? Object.create(c) : (e.prototype = c.prototype, new e) }
            }(), E = w.defined, z = w.extend, x = w.isNumber, J = w.merge, u = w.pick, n = w.removeEvent; return function (m) {
                function g(c, a, l, f, v, q, k, I, D, B) {
                    var e = m.call(this) || this; e.paddingLeftSetter = e.paddingSetter; e.paddingRightSetter = e.paddingSetter; e.init(c, "g"); e.textStr = a; e.x = l; e.y = f; e.anchorX = q; e.anchorY = k; e.baseline = D; e.className = B; e.addClass("button" === B ? "highcharts-no-tooltip" :
                        "highcharts-label"); B && e.addClass("highcharts-" + B); e.text = c.text(void 0, 0, 0, I).attr({ zIndex: 1 }); var t; "string" === typeof v && ((t = /^url\((.*?)\)$/.test(v)) || e.renderer.symbols[v]) && (e.symbolKey = v); e.bBox = g.emptyBBox; e.padding = 3; e.baselineOffset = 0; e.needsBox = c.styledMode || t; e.deferredAttr = {}; e.alignFactor = 0; return e
                } r(g, m); g.prototype.alignSetter = function (c) { c = { left: 0, center: .5, right: 1 }[c]; c !== this.alignFactor && (this.alignFactor = c, this.bBox && x(this.xSetting) && this.attr({ x: this.xSetting })) }; g.prototype.anchorXSetter =
                    function (c, a) { this.anchorX = c; this.boxAttr(a, Math.round(c) - this.getCrispAdjust() - this.xSetting) }; g.prototype.anchorYSetter = function (c, a) { this.anchorY = c; this.boxAttr(a, c - this.ySetting) }; g.prototype.boxAttr = function (c, a) { this.box ? this.box.attr(c, a) : this.deferredAttr[c] = a }; g.prototype.css = function (c) {
                        if (c) {
                            var e = {}; c = J(c); g.textProps.forEach(function (a) { "undefined" !== typeof c[a] && (e[a] = c[a], delete c[a]) }); this.text.css(e); var l = "width" in e; "fontSize" in e || "fontWeight" in e ? this.updateTextPadding() : l &&
                                this.updateBoxSize()
                        } return a.prototype.css.call(this, c)
                    }; g.prototype.destroy = function () { n(this.element, "mouseenter"); n(this.element, "mouseleave"); this.text && this.text.destroy(); this.box && (this.box = this.box.destroy()); a.prototype.destroy.call(this) }; g.prototype.fillSetter = function (c, a) { c && (this.needsBox = !0); this.fill = c; this.boxAttr(a, c) }; g.prototype.getBBox = function () {
                        this.textStr && 0 === this.bBox.width && 0 === this.bBox.height && this.updateBoxSize(); var c = this.padding, a = u(this.paddingLeft, c); return {
                            width: this.width,
                            height: this.height, x: this.bBox.x - a, y: this.bBox.y - c
                        }
                    }; g.prototype.getCrispAdjust = function () { return this.renderer.styledMode && this.box ? this.box.strokeWidth() % 2 / 2 : (this["stroke-width"] ? parseInt(this["stroke-width"], 10) : 0) % 2 / 2 }; g.prototype.heightSetter = function (c) { this.heightSetting = c }; g.prototype.onAdd = function () { var c = this.textStr; this.text.add(this); this.attr({ text: E(c) ? c : "", x: this.x, y: this.y }); this.box && E(this.anchorX) && this.attr({ anchorX: this.anchorX, anchorY: this.anchorY }) }; g.prototype.paddingSetter =
                        function (c, a) { x(c) ? c !== this[a] && (this[a] = c, this.updateTextPadding()) : this[a] = void 0 }; g.prototype.rSetter = function (c, a) { this.boxAttr(a, c) }; g.prototype.shadow = function (c) { c && !this.renderer.styledMode && (this.updateBoxSize(), this.box && this.box.shadow(c)); return this }; g.prototype.strokeSetter = function (c, a) { this.stroke = c; this.boxAttr(a, c) }; g.prototype["stroke-widthSetter"] = function (c, a) { c && (this.needsBox = !0); this["stroke-width"] = c; this.boxAttr(a, c) }; g.prototype["text-alignSetter"] = function (c) {
                            this.textAlign =
                            c
                        }; g.prototype.textSetter = function (c) { "undefined" !== typeof c && this.text.attr({ text: c }); this.updateTextPadding() }; g.prototype.updateBoxSize = function () {
                            var c = this.text.element.style, a = {}, l = this.padding, f = this.bBox = x(this.widthSetting) && x(this.heightSetting) && !this.textAlign || !E(this.text.textStr) ? g.emptyBBox : this.text.getBBox(); this.width = this.getPaddedWidth(); this.height = (this.heightSetting || f.height || 0) + 2 * l; c = this.renderer.fontMetrics(c && c.fontSize, this.text); this.baselineOffset = l + Math.min((this.text.firstLineMetrics ||
                                c).b, f.height || Infinity); this.heightSetting && (this.baselineOffset += (this.heightSetting - c.h) / 2); this.needsBox && (this.box || (l = this.box = this.symbolKey ? this.renderer.symbol(this.symbolKey) : this.renderer.rect(), l.addClass(("button" === this.className ? "" : "highcharts-label-box") + (this.className ? " highcharts-" + this.className + "-box" : "")), l.add(this)), l = this.getCrispAdjust(), a.x = l, a.y = (this.baseline ? -this.baselineOffset : 0) + l, a.width = Math.round(this.width), a.height = Math.round(this.height), this.box.attr(z(a, this.deferredAttr)),
                                    this.deferredAttr = {})
                        }; g.prototype.updateTextPadding = function () { var c = this.text; this.updateBoxSize(); var a = this.baseline ? 0 : this.baselineOffset, g = u(this.paddingLeft, this.padding); E(this.widthSetting) && this.bBox && ("center" === this.textAlign || "right" === this.textAlign) && (g += { center: .5, right: 1 }[this.textAlign] * (this.widthSetting - this.bBox.width)); if (g !== c.x || a !== c.y) c.attr("x", g), c.hasBoxWidthChanged && (this.bBox = c.getBBox(!0)), "undefined" !== typeof a && c.attr("y", a); c.x = g; c.y = a }; g.prototype.widthSetter = function (c) {
                            this.widthSetting =
                            x(c) ? c : void 0
                        }; g.prototype.getPaddedWidth = function () { var c = this.padding, a = u(this.paddingLeft, c); c = u(this.paddingRight, c); return (this.widthSetting || this.bBox.width || 0) + a + c }; g.prototype.xSetter = function (c) { this.x = c; this.alignFactor && (c -= this.alignFactor * this.getPaddedWidth(), this["forceAnimate:x"] = !0); this.xSetting = Math.round(c); this.attr("translateX", this.xSetting) }; g.prototype.ySetter = function (c) { this.ySetting = this.y = Math.round(c); this.attr("translateY", this.ySetting) }; g.emptyBBox = {
                            width: 0, height: 0,
                            x: 0, y: 0
                        }; g.textProps = "color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width".split(" "); return g
            }(a)
        }); M(a, "Core/Renderer/SVG/Symbols.js", [a["Core/Utilities.js"]], function (a) {
            function r(a, n, m, g, c) {
                var e = []; if (c) {
                    var l = c.start || 0, f = J(c.r, m); m = J(c.r, g || m); var v = (c.end || 0) - .001; g = c.innerR; var q = J(c.open, .001 > Math.abs((c.end || 0) - l - 2 * Math.PI)), k = Math.cos(l), I = Math.sin(l), D = Math.cos(v), B = Math.sin(v); l = J(c.longArc, .001 > v - l - Math.PI ? 0 : 1);
                    e.push(["M", a + f * k, n + m * I], ["A", f, m, 0, l, J(c.clockwise, 1), a + f * D, n + m * B]); z(g) && e.push(q ? ["M", a + g * D, n + g * B] : ["L", a + g * D, n + g * B], ["A", g, g, 0, l, z(c.clockwise) ? 1 - c.clockwise : 0, a + g * k, n + g * I]); q || e.push(["Z"])
                } return e
            } function C(a, n, m, g, c) { return c && c.r ? E(a, n, m, g, c) : [["M", a, n], ["L", a + m, n], ["L", a + m, n + g], ["L", a, n + g], ["Z"]] } function E(a, n, m, g, c) {
                c = c && c.r || 0; return [["M", a + c, n], ["L", a + m - c, n], ["C", a + m, n, a + m, n, a + m, n + c], ["L", a + m, n + g - c], ["C", a + m, n + g, a + m, n + g, a + m - c, n + g], ["L", a + c, n + g], ["C", a, n + g, a, n + g, a, n + g - c], ["L", a, n + c],
                ["C", a, n, a, n, a + c, n]]
            } var z = a.defined, x = a.isNumber, J = a.pick; return {
                arc: r, callout: function (a, n, m, g, c) {
                    var e = Math.min(c && c.r || 0, m, g), l = e + 6, f = c && c.anchorX; c = c && c.anchorY || 0; var v = E(a, n, m, g, { r: e }); if (!x(f)) return v; a + f >= m ? c > n + l && c < n + g - l ? v.splice(3, 1, ["L", a + m, c - 6], ["L", a + m + 6, c], ["L", a + m, c + 6], ["L", a + m, n + g - e]) : v.splice(3, 1, ["L", a + m, g / 2], ["L", f, c], ["L", a + m, g / 2], ["L", a + m, n + g - e]) : 0 >= a + f ? c > n + l && c < n + g - l ? v.splice(7, 1, ["L", a, c + 6], ["L", a - 6, c], ["L", a, c - 6], ["L", a, n + e]) : v.splice(7, 1, ["L", a, g / 2], ["L", f, c], ["L", a, g / 2],
                        ["L", a, n + e]) : c && c > g && f > a + l && f < a + m - l ? v.splice(5, 1, ["L", f + 6, n + g], ["L", f, n + g + 6], ["L", f - 6, n + g], ["L", a + e, n + g]) : c && 0 > c && f > a + l && f < a + m - l && v.splice(1, 1, ["L", f - 6, n], ["L", f, n - 6], ["L", f + 6, n], ["L", m - e, n]); return v
                }, circle: function (a, n, m, g) { return r(a + m / 2, n + g / 2, m / 2, g / 2, { start: .5 * Math.PI, end: 2.5 * Math.PI, open: !1 }) }, diamond: function (a, n, m, g) { return [["M", a + m / 2, n], ["L", a + m, n + g / 2], ["L", a + m / 2, n + g], ["L", a, n + g / 2], ["Z"]] }, rect: C, roundedRect: E, square: C, triangle: function (a, n, m, g) {
                    return [["M", a + m / 2, n], ["L", a + m, n + g], ["L", a,
                        n + g], ["Z"]]
                }, "triangle-down": function (a, n, m, g) { return [["M", a, n], ["L", a + m, n], ["L", a + m / 2, n + g], ["Z"]] }
            }
        }); M(a, "Core/Renderer/SVG/TextBuilder.js", [a["Core/Renderer/HTML/AST.js"], a["Core/Globals.js"], a["Core/Utilities.js"]], function (a, w, C) {
            var r = w.doc, z = w.SVG_NS, x = C.attr, J = C.isString, u = C.objectEach, n = C.pick; return function () {
                function m(a) {
                    var c = a.styles; this.renderer = a.renderer; this.svgElement = a; this.width = a.textWidth; this.textLineHeight = c && c.lineHeight; this.textOutline = c && c.textOutline; this.ellipsis =
                        !(!c || "ellipsis" !== c.textOverflow); this.noWrap = !(!c || "nowrap" !== c.whiteSpace); this.fontSize = c && c.fontSize
                } m.prototype.buildSVG = function () {
                    var g = this.svgElement, c = g.element, e = g.renderer, l = n(g.textStr, "").toString(), f = -1 !== l.indexOf("<"), v = c.childNodes; e = this.width && !g.added && e.box; var q = /<br.*?>/g, k = [l, this.ellipsis, this.noWrap, this.textLineHeight, this.textOutline, this.fontSize, this.width].join(); if (k !== g.textCache) {
                        g.textCache = k; delete g.actualWidth; for (k = v.length; k--;)c.removeChild(v[k]); f || this.ellipsis ||
                            this.width || -1 !== l.indexOf(" ") && (!this.noWrap || q.test(l)) ? "" !== l && (e && e.appendChild(c), l = new a(l), this.modifyTree(l.nodes), l.addToDOM(g.element), this.modifyDOM(), this.ellipsis && -1 !== (c.textContent || "").indexOf("\u2026") && g.attr("title", this.unescapeEntities(g.textStr || "", ["&lt;", "&gt;"])), e && e.removeChild(c)) : c.appendChild(r.createTextNode(this.unescapeEntities(l))); J(this.textOutline) && g.applyTextOutline && g.applyTextOutline(this.textOutline)
                    }
                }; m.prototype.modifyDOM = function () {
                    var a = this, c = this.svgElement,
                    e = x(c.element, "x"); c.firstLineMetrics = void 0; for (var l; l = c.element.firstChild;)if (/^[\s\u200B]*$/.test(l.textContent || " ")) c.element.removeChild(l); else break;[].forEach.call(c.element.querySelectorAll("tspan.highcharts-br"), function (f, g) { f.nextSibling && f.previousSibling && (0 === g && 1 === f.previousSibling.nodeType && (c.firstLineMetrics = c.renderer.fontMetrics(void 0, f.previousSibling)), x(f, { dy: a.getLineHeight(f.nextSibling), x: e })) }); var f = this.width || 0; if (f) {
                        var v = function (k, g) {
                            var l = k.textContent || "",
                            q = l.replace(/([^\^])-/g, "$1- ").split(" "), v = !a.noWrap && (1 < q.length || 1 < c.element.childNodes.length), t = a.getLineHeight(g), h = 0, d = c.actualWidth; if (a.ellipsis) l && a.truncate(k, l, void 0, 0, Math.max(0, f - parseInt(a.fontSize || 12, 10)), function (b, d) { return b.substring(0, d) + "\u2026" }); else if (v) {
                                l = []; for (v = []; g.firstChild && g.firstChild !== k;)v.push(g.firstChild), g.removeChild(g.firstChild); for (; q.length;)q.length && !a.noWrap && 0 < h && (l.push(k.textContent || ""), k.textContent = q.join(" ").replace(/- /g, "-")), a.truncate(k,
                                    void 0, q, 0 === h ? d || 0 : 0, f, function (b, d) { return q.slice(0, d).join(" ").replace(/- /g, "-") }), d = c.actualWidth, h++; v.forEach(function (b) { g.insertBefore(b, k) }); l.forEach(function (b) { g.insertBefore(r.createTextNode(b), k); b = r.createElementNS(z, "tspan"); b.textContent = "\u200b"; x(b, { dy: t, x: e }); g.insertBefore(b, k) })
                            }
                        }, q = function (a) { [].slice.call(a.childNodes).forEach(function (e) { e.nodeType === Node.TEXT_NODE ? v(e, a) : (-1 !== e.className.baseVal.indexOf("highcharts-br") && (c.actualWidth = 0), q(e)) }) }; q(c.element)
                    }
                }; m.prototype.getLineHeight =
                    function (a) { var c; a = a.nodeType === Node.TEXT_NODE ? a.parentElement : a; this.renderer.styledMode || (c = a && /(px|em)$/.test(a.style.fontSize) ? a.style.fontSize : this.fontSize || this.renderer.style.fontSize || 12); return this.textLineHeight ? parseInt(this.textLineHeight.toString(), 10) : this.renderer.fontMetrics(c, a || this.svgElement.element).h }; m.prototype.modifyTree = function (a) {
                        var c = this, e = function (g, f) {
                            var l = g.tagName, q = c.renderer.styledMode, k = g.attributes || {}; if ("b" === l || "strong" === l) q ? k["class"] = "highcharts-strong" :
                                k.style = "font-weight:bold;" + (k.style || ""); else if ("i" === l || "em" === l) q ? k["class"] = "highcharts-emphasized" : k.style = "font-style:italic;" + (k.style || ""); J(k.style) && (k.style = k.style.replace(/(;| |^)color([ :])/, "$1fill$2")); "br" === l && (k["class"] = "highcharts-br", g.textContent = "\u200b", (f = a[f + 1]) && f.textContent && (f.textContent = f.textContent.replace(/^ +/gm, ""))); "#text" !== l && "a" !== l && (g.tagName = "tspan"); g.attributes = k; g.children && g.children.filter(function (c) { return "#text" !== c.tagName }).forEach(e)
                        }; a.forEach(e)
                    };
                m.prototype.truncate = function (a, c, e, l, f, v) {
                    var g = this.svgElement, k = g.renderer, m = g.rotation, D = [], B = e ? 1 : 0, n = (c || e || "").length, t = n, h, d = function (b, d) { d = d || b; var h = a.parentNode; if (h && "undefined" === typeof D[d]) if (h.getSubStringLength) try { D[d] = l + h.getSubStringLength(0, e ? d + 1 : d) } catch (L) { "" } else k.getSpanWidth && (a.textContent = v(c || e, b), D[d] = l + k.getSpanWidth(g, a)); return D[d] }; g.rotation = 0; var b = d(a.textContent.length); if (l + b > f) {
                        for (; B <= n;)t = Math.ceil((B + n) / 2), e && (h = v(e, t)), b = d(t, h && h.length - 1), B === n ? B = n + 1 :
                            b > f ? n = t - 1 : B = t; 0 === n ? a.textContent = "" : c && n === c.length - 1 || (a.textContent = h || v(c || e, t))
                    } e && e.splice(0, t); g.actualWidth = b; g.rotation = m
                }; m.prototype.unescapeEntities = function (a, c) { u(this.renderer.escapes, function (e, g) { c && -1 !== c.indexOf(e) || (a = a.toString().replace(new RegExp(e, "g"), g)) }); return a }; return m
            }()
        }); M(a, "Core/Renderer/SVG/SVGRenderer.js", [a["Core/Renderer/HTML/AST.js"], a["Core/Color/Color.js"], a["Core/Globals.js"], a["Core/Color/Palette.js"], a["Core/Renderer/RendererRegistry.js"], a["Core/Renderer/SVG/SVGElement.js"],
        a["Core/Renderer/SVG/SVGLabel.js"], a["Core/Renderer/SVG/Symbols.js"], a["Core/Renderer/SVG/TextBuilder.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x, J, u, n, m) {
            var g = C.charts, c = C.deg2rad, e = C.doc, l = C.isFirefox, f = C.isMS, v = C.isWebKit, q = C.noop, k = C.SVG_NS, I = C.symbolSizes, D = C.win, B = m.addEvent, r = m.attr, t = m.createElement, h = m.css, d = m.defined, b = m.destroyObjectProperties, p = m.extend, G = m.isArray, y = m.isNumber, L = m.isObject, F = m.isString, P = m.merge, S = m.pick, Q = m.pInt, V = m.uniqueKey, fa; C = function () {
                function H(b, d, c,
                    a, h, e, p) { this.width = this.url = this.style = this.isSVG = this.imgCount = this.height = this.gradients = this.globalAnimation = this.defs = this.chartIndex = this.cacheKeys = this.cache = this.boxWrapper = this.box = this.alignedObjects = void 0; this.init(b, d, c, a, h, e, p) } H.prototype.init = function (b, d, c, a, p, A, H) {
                        var K = this.createElement("svg").attr({ version: "1.1", "class": "highcharts-root" }), f = K.element; H || K.css(this.getStyle(a)); b.appendChild(f); r(b, "dir", "ltr"); -1 === b.innerHTML.indexOf("xmlns") && r(f, "xmlns", this.SVG_NS); this.isSVG =
                            !0; this.box = f; this.boxWrapper = K; this.alignedObjects = []; this.url = this.getReferenceURL(); this.createElement("desc").add().element.appendChild(e.createTextNode("Created with Highcharts 9.2.2")); this.defs = this.createElement("defs").add(); this.allowHTML = A; this.forExport = p; this.styledMode = H; this.gradients = {}; this.cache = {}; this.cacheKeys = []; this.imgCount = 0; this.setSize(d, c, !1); var k; l && b.getBoundingClientRect && (d = function () {
                                h(b, { left: 0, top: 0 }); k = b.getBoundingClientRect(); h(b, {
                                    left: Math.ceil(k.left) - k.left +
                                        "px", top: Math.ceil(k.top) - k.top + "px"
                                })
                            }, d(), this.unSubPixelFix = B(D, "resize", d))
                    }; H.prototype.definition = function (b) { return (new a([b])).addToDOM(this.defs.element) }; H.prototype.getReferenceURL = function () {
                        if ((l || v) && e.getElementsByTagName("base").length) {
                            if (!d(fa)) {
                                var b = V(); b = (new a([{
                                    tagName: "svg", attributes: { width: 8, height: 8 }, children: [{ tagName: "defs", children: [{ tagName: "clipPath", attributes: { id: b }, children: [{ tagName: "rect", attributes: { width: 4, height: 4 } }] }] }, {
                                        tagName: "rect", attributes: {
                                            id: "hitme",
                                            width: 8, height: 8, "clip-path": "url(#" + b + ")", fill: "rgba(0,0,0,0.001)"
                                        }
                                    }]
                                }])).addToDOM(e.body); h(b, { position: "fixed", top: 0, left: 0, zIndex: 9E5 }); var c = e.elementFromPoint(6, 6); fa = "hitme" === (c && c.id); e.body.removeChild(b)
                            } if (fa) return D.location.href.split("#")[0].replace(/<[^>]*>/g, "").replace(/([\('\)])/g, "\\$1").replace(/ /g, "%20")
                        } return ""
                    }; H.prototype.getStyle = function (b) { return this.style = p({ fontFamily: '"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif', fontSize: "12px" }, b) }; H.prototype.setStyle =
                        function (b) { this.boxWrapper.css(this.getStyle(b)) }; H.prototype.isHidden = function () { return !this.boxWrapper.getBBox().width }; H.prototype.destroy = function () { var d = this.defs; this.box = null; this.boxWrapper = this.boxWrapper.destroy(); b(this.gradients || {}); this.gradients = null; d && (this.defs = d.destroy()); this.unSubPixelFix && this.unSubPixelFix(); return this.alignedObjects = null }; H.prototype.createElement = function (b) { var d = new this.Element; d.init(this, b); return d }; H.prototype.getRadialAttr = function (b, d) {
                            return {
                                cx: b[0] -
                                    b[2] / 2 + (d.cx || 0) * b[2], cy: b[1] - b[2] / 2 + (d.cy || 0) * b[2], r: (d.r || 0) * b[2]
                            }
                        }; H.prototype.buildText = function (b) { (new n(b)).buildSVG() }; H.prototype.getContrast = function (b) { b = w.parse(b).rgba; b[0] *= 1; b[1] *= 1.2; b[2] *= .5; return 459 < b[0] + b[1] + b[2] ? "#000000" : "#FFFFFF" }; H.prototype.button = function (b, d, c, h, e, A, H, k, g, y) {
                            var K = this.label(b, d, c, g, void 0, void 0, y, void 0, "button"), G = this.styledMode, l = 0, t = e ? P(e) : {}; b = t && t.style || {}; t = a.filterUserAttributes(t); K.attr(P({ padding: 8, r: 2 }, t)); if (!G) {
                                t = P({
                                    fill: E.neutralColor3,
                                    stroke: E.neutralColor20, "stroke-width": 1, style: { color: E.neutralColor80, cursor: "pointer", fontWeight: "normal" }
                                }, { style: b }, t); var N = t.style; delete t.style; A = P(t, { fill: E.neutralColor10 }, a.filterUserAttributes(A || {})); var q = A.style; delete A.style; H = P(t, { fill: E.highlightColor10, style: { color: E.neutralColor100, fontWeight: "bold" } }, a.filterUserAttributes(H || {})); var v = H.style; delete H.style; k = P(t, { style: { color: E.neutralColor20 } }, a.filterUserAttributes(k || {})); var F = k.style; delete k.style
                            } B(K.element, f ? "mouseover" :
                                "mouseenter", function () { 3 !== l && K.setState(1) }); B(K.element, f ? "mouseout" : "mouseleave", function () { 3 !== l && K.setState(l) }); K.setState = function (b) { 1 !== b && (K.state = l = b); K.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-" + ["normal", "hover", "pressed", "disabled"][b || 0]); G || K.attr([t, A, H, k][b || 0]).css([N, q, v, F][b || 0]) }; G || K.attr(t).css(p({ cursor: "default" }, N)); return K.on("touchstart", function (b) { return b.stopPropagation() }).on("click", function (b) {
                                    3 !== l && h.call(K,
                                        b)
                                })
                        }; H.prototype.crispLine = function (b, c, a) { void 0 === a && (a = "round"); var h = b[0], e = b[1]; d(h[1]) && h[1] === e[1] && (h[1] = e[1] = Math[a](h[1]) - c % 2 / 2); d(h[2]) && h[2] === e[2] && (h[2] = e[2] = Math[a](h[2]) + c % 2 / 2); return b }; H.prototype.path = function (b) { var d = this.styledMode ? {} : { fill: "none" }; G(b) ? d.d = b : L(b) && p(d, b); return this.createElement("path").attr(d) }; H.prototype.circle = function (b, d, c) {
                            b = L(b) ? b : "undefined" === typeof b ? {} : { x: b, y: d, r: c }; d = this.createElement("circle"); d.xSetter = d.ySetter = function (b, d, c) {
                                c.setAttribute("c" +
                                    d, b)
                            }; return d.attr(b)
                        }; H.prototype.arc = function (b, d, c, a, h, e) { L(b) ? (a = b, d = a.y, c = a.r, b = a.x) : a = { innerR: a, start: h, end: e }; b = this.symbol("arc", b, d, c, c, a); b.r = c; return b }; H.prototype.rect = function (b, d, c, a, h, e) {
                            h = L(b) ? b.r : h; var p = this.createElement("rect"); b = L(b) ? b : "undefined" === typeof b ? {} : { x: b, y: d, width: Math.max(c, 0), height: Math.max(a, 0) }; this.styledMode || ("undefined" !== typeof e && (b["stroke-width"] = e, b = p.crisp(b)), b.fill = "none"); h && (b.r = h); p.rSetter = function (b, d, c) { p.r = b; r(c, { rx: b, ry: b }) }; p.rGetter = function () {
                                return p.r ||
                                    0
                            }; return p.attr(b)
                        }; H.prototype.setSize = function (b, d, c) { this.width = b; this.height = d; this.boxWrapper.animate({ width: b, height: d }, { step: function () { this.attr({ viewBox: "0 0 " + this.attr("width") + " " + this.attr("height") }) }, duration: S(c, !0) ? void 0 : 0 }); this.alignElements() }; H.prototype.g = function (b) { var d = this.createElement("g"); return b ? d.attr({ "class": "highcharts-" + b }) : d }; H.prototype.image = function (b, d, c, a, h, e) {
                            var A = { preserveAspectRatio: "none" }, H = function (b, d) {
                                b.setAttributeNS ? b.setAttributeNS("http://www.w3.org/1999/xlink",
                                    "href", d) : b.setAttribute("hc-svg-href", d)
                            }; 1 < arguments.length && p(A, { x: d, y: c, width: a, height: h }); var f = this.createElement("image").attr(A); A = function (d) { H(f.element, b); e.call(f, d) }; if (e) { H(f.element, "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="); var K = new D.Image; B(K, "load", A); K.src = b; K.complete && A({}) } else H(f.element, b); return f
                        }; H.prototype.symbol = function (b, c, a, H, f, A) {
                            var K = this, k = /^url\((.*?)\)$/, y = k.test(b), G = !y && (this.symbols[b] ? b : "circle"), l = G && this.symbols[G],
                            q; if (l) { "number" === typeof c && (q = l.call(this.symbols, Math.round(c || 0), Math.round(a || 0), H || 0, f || 0, A)); var v = this.path(q); K.styledMode || v.attr("fill", "none"); p(v, { symbolName: G || void 0, x: c, y: a, width: H, height: f }); A && p(v, A) } else if (y) {
                                var F = b.match(k)[1]; var m = v = this.image(F); m.imgwidth = S(I[F] && I[F].width, A && A.width); m.imgheight = S(I[F] && I[F].height, A && A.height); var L = function (b) { return b.attr({ width: b.width, height: b.height }) };["width", "height"].forEach(function (b) {
                                    m[b + "Setter"] = function (b, c) {
                                        var a = this["img" +
                                            c]; this[c] = b; d(a) && (A && "within" === A.backgroundSize && this.width && this.height && (a = Math.round(a * Math.min(this.width / this.imgwidth, this.height / this.imgheight))), this.element && this.element.setAttribute(c, a), this.alignByTranslate || (b = ((this[c] || 0) - a) / 2, this.attr("width" === c ? { translateX: b } : { translateY: b })))
                                    }
                                }); d(c) && m.attr({ x: c, y: a }); m.isImg = !0; d(m.imgwidth) && d(m.imgheight) ? L(m) : (m.attr({ width: 0, height: 0 }), t("img", {
                                    onload: function () {
                                        var b = g[K.chartIndex]; 0 === this.width && (h(this, { position: "absolute", top: "-999em" }),
                                            e.body.appendChild(this)); I[F] = { width: this.width, height: this.height }; m.imgwidth = this.width; m.imgheight = this.height; m.element && L(m); this.parentNode && this.parentNode.removeChild(this); K.imgCount--; if (!K.imgCount && b && !b.hasLoaded) b.onload()
                                    }, src: F
                                }), this.imgCount++)
                            } return v
                        }; H.prototype.clipRect = function (b, d, c, a) { var h = V() + "-", e = this.createElement("clipPath").attr({ id: h }).add(this.defs); b = this.rect(b, d, c, a, 0).add(e); b.id = h; b.clipPath = e; b.count = 0; return b }; H.prototype.text = function (b, c, a, h) {
                            var e = {};
                            if (h && (this.allowHTML || !this.forExport)) return this.html(b, c, a); e.x = Math.round(c || 0); a && (e.y = Math.round(a)); d(b) && (e.text = b); b = this.createElement("text").attr(e); if (!h || this.forExport && !this.allowHTML) b.xSetter = function (b, d, c) { for (var a = c.getElementsByTagName("tspan"), h = c.getAttribute(d), e = 0, p; e < a.length; e++)p = a[e], p.getAttribute(d) === h && p.setAttribute(d, b); c.setAttribute(d, b) }; return b
                        }; H.prototype.fontMetrics = function (b, d) {
                            b = !this.styledMode && /px/.test(b) || !D.getComputedStyle ? b || d && d.style && d.style.fontSize ||
                                this.style && this.style.fontSize : d && x.prototype.getStyle.call(d, "font-size"); b = /px/.test(b) ? Q(b) : 12; d = 24 > b ? b + 3 : Math.round(1.2 * b); return { h: d, b: Math.round(.8 * d), f: b }
                        }; H.prototype.rotCorr = function (b, d, a) { var h = b; d && a && (h = Math.max(h * Math.cos(d * c), 4)); return { x: -b / 3 * Math.sin(d * c), y: h } }; H.prototype.pathToSegments = function (b) {
                            for (var d = [], c = [], a = { A: 8, C: 7, H: 2, L: 3, M: 3, Q: 5, S: 5, T: 3, V: 2 }, h = 0; h < b.length; h++)F(c[0]) && y(b[h]) && c.length === a[c[0].toUpperCase()] && b.splice(h, 0, c[0].replace("M", "L").replace("m", "l")),
                                "string" === typeof b[h] && (c.length && d.push(c.slice(0)), c.length = 0), c.push(b[h]); d.push(c.slice(0)); return d
                        }; H.prototype.label = function (b, d, c, a, h, e, p, H, f) { return new J(this, b, d, c, a, h, e, p, H, f) }; H.prototype.alignElements = function () { this.alignedObjects.forEach(function (b) { return b.align() }) }; return H
            }(); p(C.prototype, { Element: x, SVG_NS: k, escapes: { "&": "&amp;", "<": "&lt;", ">": "&gt;", "'": "&#39;", '"': "&quot;" }, symbols: u, draw: q }); z.registerRendererType("svg", C, !0); ""; return C
        }); M(a, "Core/Renderer/HTML/HTMLElement.js",
            [a["Core/Globals.js"], a["Core/Renderer/SVG/SVGElement.js"], a["Core/Utilities.js"]], function (a, w, C) {
                var r = this && this.__extends || function () { var c = function (a, e) { c = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (c, a) { c.__proto__ = a } || function (c, a) { for (var e in a) a.hasOwnProperty(e) && (c[e] = a[e]) }; return c(a, e) }; return function (a, e) { function f() { this.constructor = a } c(a, e); a.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f) } }(), z = a.isFirefox, x = a.isMS, J = a.isWebKit, u = a.win,
                n = C.css, m = C.defined, g = C.extend, c = C.pick, e = C.pInt; return function (a) {
                    function f() { return null !== a && a.apply(this, arguments) || this } r(f, a); f.compose = function (c) { if (-1 === f.composedClasses.indexOf(c)) { f.composedClasses.push(c); var a = f.prototype, e = c.prototype; e.getSpanCorrection = a.getSpanCorrection; e.htmlCss = a.htmlCss; e.htmlGetBBox = a.htmlGetBBox; e.htmlUpdateTransform = a.htmlUpdateTransform; e.setSpanRotation = a.setSpanRotation } return c }; f.prototype.getSpanCorrection = function (c, a, e) {
                        this.xCorr = -c * e; this.yCorr =
                            -a
                    }; f.prototype.htmlCss = function (a) { var e = "SPAN" === this.element.tagName && a && "width" in a, f = c(e && a.width, void 0); if (e) { delete a.width; this.textWidth = f; var l = !0 } a && "ellipsis" === a.textOverflow && (a.whiteSpace = "nowrap", a.overflow = "hidden"); this.styles = g(this.styles, a); n(this.element, a); l && this.htmlUpdateTransform(); return this }; f.prototype.htmlGetBBox = function () { var c = this.element; return { x: c.offsetLeft, y: c.offsetTop, width: c.offsetWidth, height: c.offsetHeight } }; f.prototype.htmlUpdateTransform = function () {
                        if (this.added) {
                            var c =
                                this.renderer, a = this.element, f = this.translateX || 0, g = this.translateY || 0, l = this.x || 0, B = this.y || 0, r = this.textAlign || "left", t = { left: 0, center: .5, right: 1 }[r], h = this.styles; h = h && h.whiteSpace; n(a, { marginLeft: f, marginTop: g }); !c.styledMode && this.shadows && this.shadows.forEach(function (b) { n(b, { marginLeft: f + 1, marginTop: g + 1 }) }); this.inverted && [].forEach.call(a.childNodes, function (b) { c.invertChild(b, a) }); if ("SPAN" === a.tagName) {
                                    var d = this.rotation, b = this.textWidth && e(this.textWidth), p = [d, r, a.innerHTML, this.textWidth,
                                        this.textAlign].join(), G = void 0; (G = b !== this.oldTextWidth) && !(G = b > this.oldTextWidth) && ((G = this.textPxLength) || (n(a, { width: "", whiteSpace: h || "nowrap" }), G = a.offsetWidth), G = G > b); G && (/[ \-]/.test(a.textContent || a.innerText) || "ellipsis" === a.style.textOverflow) ? (n(a, { width: b + "px", display: "block", whiteSpace: h || "normal" }), this.oldTextWidth = b, this.hasBoxWidthChanged = !0) : this.hasBoxWidthChanged = !1; p !== this.cTT && (G = c.fontMetrics(a.style.fontSize, a).b, !m(d) || d === (this.oldRotation || 0) && r === this.oldAlign || this.setSpanRotation(d,
                                            t, G), this.getSpanCorrection(!m(d) && this.textPxLength || a.offsetWidth, G, t, d, r)); n(a, { left: l + (this.xCorr || 0) + "px", top: B + (this.yCorr || 0) + "px" }); this.cTT = p; this.oldRotation = d; this.oldAlign = r
                                }
                        } else this.alignOnAdd = !0
                    }; f.prototype.setSpanRotation = function (c, a, e) {
                        var f = {}, g = x && !/Edge/.test(u.navigator.userAgent) ? "-ms-transform" : J ? "-webkit-transform" : z ? "MozTransform" : u.opera ? "-o-transform" : void 0; g && (f[g] = f.transform = "rotate(" + c + "deg)", f[g + (z ? "Origin" : "-origin")] = f.transformOrigin = 100 * a + "% " + e + "px", n(this.element,
                            f))
                    }; f.composedClasses = []; return f
                }(w)
            }); M(a, "Core/Renderer/HTML/HTMLRenderer.js", [a["Core/Renderer/HTML/AST.js"], a["Core/Renderer/SVG/SVGElement.js"], a["Core/Renderer/SVG/SVGRenderer.js"], a["Core/Utilities.js"]], function (a, w, C, E) {
                var r = this && this.__extends || function () {
                    var a = function (g, c) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var e in c) c.hasOwnProperty(e) && (a[e] = c[e]) }; return a(g, c) }; return function (g, c) {
                        function e() {
                            this.constructor =
                            g
                        } a(g, c); g.prototype = null === c ? Object.create(c) : (e.prototype = c.prototype, new e)
                    }
                }(), x = E.attr, J = E.createElement, u = E.extend, n = E.pick; return function (m) {
                    function g() { return null !== m && m.apply(this, arguments) || this } r(g, m); g.compose = function (c) { -1 === g.composedClasses.indexOf(c) && (g.composedClasses.push(c), c.prototype.html = g.prototype.html); return c }; g.prototype.html = function (c, e, g) {
                        var f = this.createElement("span"), l = f.element, q = f.renderer, k = q.isSVG, m = function (c, a) {
                            ["opacity", "visibility"].forEach(function (e) {
                                c[e +
                                "Setter"] = function (f, h, d) { var b = c.div ? c.div.style : a; w.prototype[e + "Setter"].call(this, f, h, d); b && (b[h] = f) }
                            }); c.addedSetters = !0
                        }; f.textSetter = function (c) { c !== this.textStr && (delete this.bBox, delete this.oldTextWidth, a.setElementHTML(this.element, n(c, "")), this.textStr = c, f.doTransform = !0) }; k && m(f, f.element.style); f.xSetter = f.ySetter = f.alignSetter = f.rotationSetter = function (c, a) { "align" === a ? f.alignValue = f.textAlign = c : f[a] = c; f.doTransform = !0 }; f.afterSetters = function () {
                            this.doTransform && (this.htmlUpdateTransform(),
                                this.doTransform = !1)
                        }; f.attr({ text: c, x: Math.round(e), y: Math.round(g) }).css({ position: "absolute" }); q.styledMode || f.css({ fontFamily: this.style.fontFamily, fontSize: this.style.fontSize }); l.style.whiteSpace = "nowrap"; f.css = f.htmlCss; k && (f.add = function (c) {
                            var a = q.box.parentNode, e = []; if (this.parentGroup = c) {
                                var g = c.div; if (!g) {
                                    for (; c;)e.push(c), c = c.parentGroup; e.reverse().forEach(function (c) {
                                        function d(b, d) { c[d] = b; "translateX" === d ? k.left = b + "px" : k.top = b + "px"; c.doTransform = !0 } var b = x(c.element, "class"), h = c.styles ||
                                            {}; g = c.div = c.div || J("div", b ? { className: b } : void 0, { position: "absolute", left: (c.translateX || 0) + "px", top: (c.translateY || 0) + "px", display: c.display, opacity: c.opacity, cursor: h.cursor, pointerEvents: h.pointerEvents, visibility: c.visibility }, g || a); var k = g.style; u(c, { classSetter: function (b) { return function (d) { this.element.setAttribute("class", d); b.className = d } }(g), on: function () { e[0].div && f.on.apply({ element: e[0].div, onEvents: c.onEvents }, arguments); return c }, translateXSetter: d, translateYSetter: d }); c.addedSetters ||
                                                m(c)
                                    })
                                }
                            } else g = a; g.appendChild(l); f.added = !0; f.alignOnAdd && f.htmlUpdateTransform(); return f
                        }); return f
                    }; g.composedClasses = []; return g
                }(C)
            }); M(a, "Core/Axis/AxisDefaults.js", [a["Core/Color/Palette.js"]], function (a) {
                var r; (function (r) {
                    r.defaultXAxisOptions = {
                        alignTicks: !0, allowDecimals: void 0, panningEnabled: !0, zIndex: 2, zoomEnabled: !0, dateTimeLabelFormats: {
                            millisecond: { main: "%H:%M:%S.%L", range: !1 }, second: { main: "%H:%M:%S", range: !1 }, minute: { main: "%H:%M", range: !1 }, hour: { main: "%H:%M", range: !1 }, day: { main: "%e. %b" },
                            week: { main: "%e. %b" }, month: { main: "%b '%y" }, year: { main: "%Y" }
                        }, endOnTick: !1, gridLineDashStyle: "Solid", gridZIndex: 1, labels: { autoRotation: void 0, autoRotationLimit: 80, distance: void 0, enabled: !0, indentation: 10, overflow: "justify", padding: 5, reserveSpace: void 0, rotation: void 0, staggerLines: 0, step: 0, useHTML: !1, x: 0, zIndex: 7, style: { color: a.neutralColor60, cursor: "default", fontSize: "11px" } }, maxPadding: .01, minorGridLineDashStyle: "Solid", minorTickLength: 2, minorTickPosition: "outside", minPadding: .01, offset: void 0,
                        opposite: !1, reversed: void 0, reversedStacks: !1, showEmpty: !0, showFirstLabel: !0, showLastLabel: !0, startOfWeek: 1, startOnTick: !1, tickLength: 10, tickPixelInterval: 100, tickmarkPlacement: "between", tickPosition: "outside", title: { align: "middle", rotation: 0, useHTML: !1, x: 0, y: 0, style: { color: a.neutralColor60 } }, type: "linear", uniqueNames: !0, visible: !0, minorGridLineColor: a.neutralColor5, minorGridLineWidth: 1, minorTickColor: a.neutralColor40, lineColor: a.highlightColor20, lineWidth: 1, gridLineColor: a.neutralColor10, gridLineWidth: void 0,
                        tickColor: a.highlightColor20
                    }; r.defaultYAxisOptions = { reversedStacks: !0, endOnTick: !0, maxPadding: .05, minPadding: .05, tickPixelInterval: 72, showLastLabel: !0, labels: { x: -8 }, startOnTick: !0, title: { rotation: 270, text: "Values" }, stackLabels: { animation: {}, allowOverlap: !1, enabled: !1, crop: !0, overflow: "justify", formatter: function () { var a = this.axis.chart.numberFormatter; return a(this.total, -1) }, style: { color: a.neutralColor100, fontSize: "11px", fontWeight: "bold", textOutline: "1px contrast" } }, gridLineWidth: 1, lineWidth: 0 };
                    r.defaultLeftAxisOptions = { labels: { x: -15 }, title: { rotation: 270 } }; r.defaultRightAxisOptions = { labels: { x: 15 }, title: { rotation: 90 } }; r.defaultBottomAxisOptions = { labels: { autoRotation: [-45], x: 0 }, margin: 15, title: { rotation: 0 } }; r.defaultTopAxisOptions = { labels: { autoRotation: [-45], x: 0 }, margin: 15, title: { rotation: 0 } }
                })(r || (r = {})); return r
            }); M(a, "Core/Foundation.js", [a["Core/Utilities.js"]], function (a) {
                var r = a.addEvent, C = a.isFunction, E = a.objectEach, z = a.removeEvent; return {
                    registerEventOptions: function (a, w) {
                        a.eventOptions =
                        a.eventOptions || {}; E(w.events, function (u, n) { a.eventOptions[n] !== u && (a.eventOptions[n] && (z(a, n, a.eventOptions[n]), delete a.eventOptions[n]), C(u) && (a.eventOptions[n] = u, r(a, n, u))) })
                    }
                }
            }); M(a, "Core/Axis/Tick.js", [a["Core/FormatUtilities.js"], a["Core/Globals.js"], a["Core/Utilities.js"]], function (a, w, C) {
                var r = w.deg2rad, z = C.clamp, x = C.correctFloat, J = C.defined, u = C.destroyObjectProperties, n = C.extend, m = C.fireEvent, g = C.isNumber, c = C.merge, e = C.objectEach, l = C.pick; w = function () {
                    function f(c, a, e, f, g) {
                        this.isNewLabel =
                        this.isNew = !0; this.axis = c; this.pos = a; this.type = e || ""; this.parameters = g || {}; this.tickmarkOffset = this.parameters.tickmarkOffset; this.options = this.parameters.options; m(this, "init"); e || f || this.addLabel()
                    } f.prototype.addLabel = function () {
                        var c = this, e = c.axis, f = e.options, I = e.chart, D = e.categories, B = e.logarithmic, r = e.names, t = c.pos, h = l(c.options && c.options.labels, f.labels), d = e.tickPositions, b = t === d[0], p = t === d[d.length - 1], G = (!h.step || 1 === h.step) && 1 === e.tickInterval; d = d.info; var y = c.label, L; D = this.parameters.category ||
                            (D ? l(D[t], r[t], t) : t); B && g(D) && (D = x(B.lin2log(D))); if (e.dateTime) if (d) { var F = I.time.resolveDTLFormat(f.dateTimeLabelFormats[!f.grid && d.higherRanks[t] || d.unitName]); var P = F.main } else g(D) && (P = e.dateTime.getXDateFormat(D, f.dateTimeLabelFormats || {})); c.isFirst = b; c.isLast = p; var S = { axis: e, chart: I, dateTimeLabelFormat: P, isFirst: b, isLast: p, pos: t, tick: c, tickPositionInfo: d, value: D }; m(this, "labelFormat", S); var Q = function (b) {
                                return h.formatter ? h.formatter.call(b, b) : h.format ? (b.text = e.defaultLabelFormatter.call(b),
                                    a.format(h.format, b, I)) : e.defaultLabelFormatter.call(b, b)
                            }; f = Q.call(S, S); var u = F && F.list; c.shortenLabel = u ? function () { for (L = 0; L < u.length; L++)if (n(S, { dateTimeLabelFormat: u[L] }), y.attr({ text: Q.call(S, S) }), y.getBBox().width < e.getSlotWidth(c) - 2 * h.padding) return; y.attr({ text: "" }) } : void 0; G && e._addedPlotLB && c.moveLabel(f, h); J(y) || c.movedLabel ? y && y.textStr !== f && !G && (!y.textWidth || h.style.width || y.styles.width || y.css({ width: null }), y.attr({ text: f }), y.textPxLength = y.getBBox().width) : (c.label = y = c.createLabel({
                                x: 0,
                                y: 0
                            }, f, h), c.rotation = 0)
                    }; f.prototype.createLabel = function (a, e, f) { var g = this.axis, k = g.chart; if (a = J(e) && f.enabled ? k.renderer.text(e, a.x, a.y, f.useHTML).add(g.labelGroup) : null) k.styledMode || a.css(c(f.style)), a.textPxLength = a.getBBox().width; return a }; f.prototype.destroy = function () { u(this, this.axis) }; f.prototype.getPosition = function (c, a, e, f) {
                        var g = this.axis, k = g.chart, l = f && k.oldChartHeight || k.chartHeight; c = {
                            x: c ? x(g.translate(a + e, null, null, f) + g.transB) : g.left + g.offset + (g.opposite ? (f && k.oldChartWidth || k.chartWidth) -
                                g.right - g.left : 0), y: c ? l - g.bottom + g.offset - (g.opposite ? g.height : 0) : x(l - g.translate(a + e, null, null, f) - g.transB)
                        }; c.y = z(c.y, -1E5, 1E5); m(this, "afterGetPosition", { pos: c }); return c
                    }; f.prototype.getLabelPosition = function (c, a, e, f, g, l, n, t) {
                        var h = this.axis, d = h.transA, b = h.isLinked && h.linkedParent ? h.linkedParent.reversed : h.reversed, p = h.staggerLines, k = h.tickRotCorr || { x: 0, y: 0 }, y = f || h.reserveSpaceDefault ? 0 : -h.labelOffset * ("center" === h.labelAlign ? .5 : 1), q = {}, F = g.y; J(F) || (F = 0 === h.side ? e.rotation ? -8 : -e.getBBox().height :
                            2 === h.side ? k.y + 8 : Math.cos(e.rotation * r) * (k.y - e.getBBox(!1, 0).height / 2)); c = c + g.x + y + k.x - (l && f ? l * d * (b ? -1 : 1) : 0); a = a + F - (l && !f ? l * d * (b ? 1 : -1) : 0); p && (e = n / (t || 1) % p, h.opposite && (e = p - e - 1), a += h.labelOffset / p * e); q.x = c; q.y = Math.round(a); m(this, "afterGetLabelPosition", { pos: q, tickmarkOffset: l, index: n }); return q
                    }; f.prototype.getLabelSize = function () { return this.label ? this.label.getBBox()[this.axis.horiz ? "height" : "width"] : 0 }; f.prototype.getMarkPath = function (c, a, e, f, g, l) {
                        return l.crispLine([["M", c, a], ["L", c + (g ? 0 : -e),
                            a + (g ? e : 0)]], f)
                    }; f.prototype.handleOverflow = function (c) {
                        var a = this.axis, e = a.options.labels, f = c.x, g = a.chart.chartWidth, m = a.chart.spacing, v = l(a.labelLeft, Math.min(a.pos, m[3])); m = l(a.labelRight, Math.max(a.isRadial ? 0 : a.pos + a.len, g - m[1])); var t = this.label, h = this.rotation, d = { left: 0, center: .5, right: 1 }[a.labelAlign || t.attr("align")], b = t.getBBox().width, p = a.getSlotWidth(this), G = {}, y = p, L = 1, F; if (h || "justify" !== e.overflow) 0 > h && f - d * b < v ? F = Math.round(f / Math.cos(h * r) - v) : 0 < h && f + d * b > m && (F = Math.round((g - f) / Math.cos(h *
                            r))); else if (g = f + (1 - d) * b, f - d * b < v ? y = c.x + y * (1 - d) - v : g > m && (y = m - c.x + y * d, L = -1), y = Math.min(p, y), y < p && "center" === a.labelAlign && (c.x += L * (p - y - d * (p - Math.min(b, y)))), b > y || a.autoRotation && (t.styles || {}).width) F = y; F && (this.shortenLabel ? this.shortenLabel() : (G.width = Math.floor(F) + "px", (e.style || {}).textOverflow || (G.textOverflow = "ellipsis"), t.css(G)))
                    }; f.prototype.moveLabel = function (c, a) {
                        var f = this, g = f.label, l = f.axis, m = l.reversed, q = !1; g && g.textStr === c ? (f.movedLabel = g, q = !0, delete f.label) : e(l.ticks, function (a) {
                            q ||
                            a.isNew || a === f || !a.label || a.label.textStr !== c || (f.movedLabel = a.label, q = !0, a.labelPos = f.movedLabel.xy, delete a.label)
                        }); if (!q && (f.labelPos || g)) { var t = f.labelPos || g.xy; g = l.horiz ? m ? 0 : l.width + l.left : t.x; l = l.horiz ? t.y : m ? l.width + l.left : 0; f.movedLabel = f.createLabel({ x: g, y: l }, c, a); f.movedLabel && f.movedLabel.attr({ opacity: 0 }) }
                    }; f.prototype.render = function (a, c, e) {
                        var f = this.axis, g = f.horiz, k = this.pos, q = l(this.tickmarkOffset, f.tickmarkOffset); k = this.getPosition(g, k, q, c); q = k.x; var t = k.y; f = g && q === f.pos + f.len ||
                            !g && t === f.pos ? -1 : 1; g = l(e, this.label && this.label.newOpacity, 1); e = l(e, 1); this.isActive = !0; this.renderGridLine(c, e, f); this.renderMark(k, e, f); this.renderLabel(k, c, g, a); this.isNew = !1; m(this, "afterRender")
                    }; f.prototype.renderGridLine = function (c, a, e) {
                        var f = this.axis, g = f.options, k = {}, m = this.pos, t = this.type, h = l(this.tickmarkOffset, f.tickmarkOffset), d = f.chart.renderer, b = this.gridLine, p = g.gridLineWidth, G = g.gridLineColor, y = g.gridLineDashStyle; "minor" === this.type && (p = g.minorGridLineWidth, G = g.minorGridLineColor,
                            y = g.minorGridLineDashStyle); b || (f.chart.styledMode || (k.stroke = G, k["stroke-width"] = p || 0, k.dashstyle = y), t || (k.zIndex = 1), c && (a = 0), this.gridLine = b = d.path().attr(k).addClass("highcharts-" + (t ? t + "-" : "") + "grid-line").add(f.gridGroup)); if (b && (e = f.getPlotLinePath({ value: m + h, lineWidth: b.strokeWidth() * e, force: "pass", old: c }))) b[c || this.isNew ? "attr" : "animate"]({ d: e, opacity: a })
                    }; f.prototype.renderMark = function (c, a, e) {
                        var f = this.axis, g = f.options, k = f.chart.renderer, m = this.type, t = f.tickSize(m ? m + "Tick" : "tick"), h = c.x;
                        c = c.y; var d = l(g["minor" !== m ? "tickWidth" : "minorTickWidth"], !m && f.isXAxis ? 1 : 0); g = g["minor" !== m ? "tickColor" : "minorTickColor"]; var b = this.mark, p = !b; t && (f.opposite && (t[0] = -t[0]), b || (this.mark = b = k.path().addClass("highcharts-" + (m ? m + "-" : "") + "tick").add(f.axisGroup), f.chart.styledMode || b.attr({ stroke: g, "stroke-width": d })), b[p ? "attr" : "animate"]({ d: this.getMarkPath(h, c, t[0], b.strokeWidth() * e, f.horiz, k), opacity: a }))
                    }; f.prototype.renderLabel = function (c, a, e, f) {
                        var k = this.axis, m = k.horiz, q = k.options, t = this.label,
                        h = q.labels, d = h.step; k = l(this.tickmarkOffset, k.tickmarkOffset); var b = c.x; c = c.y; var p = !0; t && g(b) && (t.xy = c = this.getLabelPosition(b, c, t, m, h, k, f, d), this.isFirst && !this.isLast && !q.showFirstLabel || this.isLast && !this.isFirst && !q.showLastLabel ? p = !1 : !m || h.step || h.rotation || a || 0 === e || this.handleOverflow(c), d && f % d && (p = !1), p && g(c.y) ? (c.opacity = e, t[this.isNewLabel ? "attr" : "animate"](c), this.isNewLabel = !1) : (t.attr("y", -9999), this.isNewLabel = !0))
                    }; f.prototype.replaceMovedLabel = function () {
                        var c = this.label, a = this.axis,
                        e = a.reversed; if (c && !this.isNew) { var f = a.horiz ? e ? a.left : a.width + a.left : c.xy.x; e = a.horiz ? c.xy.y : e ? a.width + a.top : a.top; c.animate({ x: f, y: e, opacity: 0 }, void 0, c.destroy); delete this.label } a.isDirty = !0; this.label = this.movedLabel; delete this.movedLabel
                    }; return f
                }(); ""; return w
            }); M(a, "Core/Axis/Axis.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/Axis/AxisDefaults.js"], a["Core/Color/Color.js"], a["Core/Color/Palette.js"], a["Core/DefaultOptions.js"], a["Core/Foundation.js"], a["Core/Globals.js"], a["Core/Axis/Tick.js"],
            a["Core/Utilities.js"]], function (a, w, C, E, z, x, J, u, n) {
                var m = a.animObject, g = z.defaultOptions, c = x.registerEventOptions, e = J.deg2rad, l = n.arrayMax, f = n.arrayMin, v = n.clamp, q = n.correctFloat, k = n.defined, r = n.destroyObjectProperties, D = n.erase, B = n.error, O = n.extend, t = n.fireEvent, h = n.getMagnitude, d = n.isArray, b = n.isNumber, p = n.isString, G = n.merge, y = n.normalizeTickInterval, L = n.objectEach, F = n.pick, P = n.relativeLength, S = n.removeEvent, Q = n.splat, V = n.syncTimeout; a = function () {
                    function a(b, a) {
                        this.zoomEnabled = this.width = this.visible =
                            this.userOptions = this.translationSlope = this.transB = this.transA = this.top = this.ticks = this.tickRotCorr = this.tickPositions = this.tickmarkOffset = this.tickInterval = this.tickAmount = this.side = this.series = this.right = this.positiveValuesOnly = this.pos = this.pointRangePadding = this.pointRange = this.plotLinesAndBandsGroups = this.plotLinesAndBands = this.paddedTicks = this.overlap = this.options = this.offset = this.names = this.minPixelPadding = this.minorTicks = this.minorTickInterval = this.min = this.maxLabelLength = this.max = this.len =
                            this.left = this.labelFormatter = this.labelEdge = this.isLinked = this.height = this.hasVisibleSeries = this.hasNames = this.eventOptions = this.coll = this.closestPointRange = this.chart = this.categories = this.bottom = this.alternateBands = void 0; this.init(b, a)
                    } a.prototype.init = function (a, d) {
                        var h = d.isX; this.chart = a; this.horiz = a.inverted && !this.isZAxis ? !h : h; this.isXAxis = h; this.coll = this.coll || (h ? "xAxis" : "yAxis"); t(this, "init", { userOptions: d }); this.opposite = F(d.opposite, this.opposite); this.side = F(d.side, this.side, this.horiz ?
                            this.opposite ? 0 : 2 : this.opposite ? 1 : 3); this.setOptions(d); var e = this.options, f = e.labels, p = e.type; this.userOptions = d; this.minPixelPadding = 0; this.reversed = F(e.reversed, this.reversed); this.visible = e.visible; this.zoomEnabled = e.zoomEnabled; this.hasNames = "category" === p || !0 === e.categories; this.categories = e.categories || this.hasNames; this.names || (this.names = [], this.names.keys = {}); this.plotLinesAndBandsGroups = {}; this.positiveValuesOnly = !!this.logarithmic; this.isLinked = k(e.linkedTo); this.ticks = {}; this.labelEdge =
                                []; this.minorTicks = {}; this.plotLinesAndBands = []; this.alternateBands = {}; this.len = 0; this.minRange = this.userMinRange = e.minRange || e.maxZoom; this.range = e.range; this.offset = e.offset || 0; this.min = this.max = null; d = F(e.crosshair, Q(a.options.tooltip.crosshairs)[h ? 0 : 1]); this.crosshair = !0 === d ? {} : d; -1 === a.axes.indexOf(this) && (h ? a.axes.splice(a.xAxis.length, 0, this) : a.axes.push(this), a[this.coll].push(this)); this.series = this.series || []; a.inverted && !this.isZAxis && h && "undefined" === typeof this.reversed && (this.reversed =
                                    !0); this.labelRotation = b(f.rotation) ? f.rotation : void 0; c(this, e); t(this, "afterInit")
                    }; a.prototype.setOptions = function (b) { this.options = G(w.defaultXAxisOptions, "yAxis" === this.coll && w.defaultYAxisOptions, [w.defaultTopAxisOptions, w.defaultRightAxisOptions, w.defaultBottomAxisOptions, w.defaultLeftAxisOptions][this.side], G(g[this.coll], b)); t(this, "afterSetOptions", { userOptions: b }) }; a.prototype.defaultLabelFormatter = function (a) {
                        var d = this.axis; a = this.chart.numberFormatter; var c = b(this.value) ? this.value : NaN,
                            e = d.chart.time, h = this.dateTimeLabelFormat, f = g.lang, p = f.numericSymbols; f = f.numericSymbolMagnitude || 1E3; var H = d.logarithmic ? Math.abs(c) : d.tickInterval, y = p && p.length; if (d.categories) var k = "" + this.value; else if (h) k = e.dateFormat(h, c); else if (y && 1E3 <= H) for (; y-- && "undefined" === typeof k;)d = Math.pow(f, y + 1), H >= d && 0 === 10 * c % d && null !== p[y] && 0 !== c && (k = a(c / d, -1) + p[y]); "undefined" === typeof k && (k = 1E4 <= Math.abs(c) ? a(c, -1) : a(c, -1, void 0, "")); return k
                    }; a.prototype.getSeriesExtremes = function () {
                        var a = this, d = a.chart, c;
                        t(this, "getSeriesExtremes", null, function () {
                            a.hasVisibleSeries = !1; a.dataMin = a.dataMax = a.threshold = null; a.softThreshold = !a.isXAxis; a.stacking && a.stacking.buildStacks(); a.series.forEach(function (e) {
                                if (e.visible || !d.options.chart.ignoreHiddenSeries) {
                                    var h = e.options, f = h.threshold; a.hasVisibleSeries = !0; a.positiveValuesOnly && 0 >= f && (f = null); if (a.isXAxis) {
                                        if (h = e.xData, h.length) {
                                            h = a.logarithmic ? h.filter(a.validatePositiveValue) : h; c = e.getXExtremes(h); var p = c.min; var g = c.max; b(p) || p instanceof Date || (h = h.filter(b),
                                                c = e.getXExtremes(h), p = c.min, g = c.max); h.length && (a.dataMin = Math.min(F(a.dataMin, p), p), a.dataMax = Math.max(F(a.dataMax, g), g))
                                        }
                                    } else if (e = e.applyExtremes(), b(e.dataMin) && (p = e.dataMin, a.dataMin = Math.min(F(a.dataMin, p), p)), b(e.dataMax) && (g = e.dataMax, a.dataMax = Math.max(F(a.dataMax, g), g)), k(f) && (a.threshold = f), !h.softThreshold || a.positiveValuesOnly) a.softThreshold = !1
                                }
                            })
                        }); t(this, "afterGetSeriesExtremes")
                    }; a.prototype.translate = function (a, d, c, e, h, f) {
                        var p = this.linkedParent || this, g = e && p.old ? p.old.min : p.min,
                        H = p.minPixelPadding; h = (p.isOrdinal || p.brokenAxis && p.brokenAxis.hasBreaks || p.logarithmic && h) && p.lin2val; var K = 1, y = 0; e = e && p.old ? p.old.transA : p.transA; e || (e = p.transA); c && (K *= -1, y = p.len); p.reversed && (K *= -1, y -= K * (p.sector || p.len)); d ? (a = (a * K + y - H) / e + g, h && (a = p.lin2val(a))) : (h && (a = p.val2lin(a)), a = b(g) ? K * (a - g) * e + y + K * H + (b(f) ? e * f : 0) : void 0); return a
                    }; a.prototype.toPixels = function (b, a) { return this.translate(b, !1, !this.horiz, null, !0) + (a ? 0 : this.pos) }; a.prototype.toValue = function (b, a) {
                        return this.translate(b - (a ?
                            0 : this.pos), !0, !this.horiz, null, !0)
                    }; a.prototype.getPlotLinePath = function (a) {
                        function d(b, a, d) { if ("pass" !== m && b < a || b > d) m ? b = v(b, a, d) : r = !0; return b } var c = this, e = c.chart, h = c.left, f = c.top, p = a.old, g = a.value, H = a.lineWidth, y = p && e.oldChartHeight || e.chartHeight, k = p && e.oldChartWidth || e.chartWidth, G = c.transB, l = a.translatedValue, m = a.force, L, q, n, B, r; a = { value: g, lineWidth: H, old: p, force: m, acrossPanes: a.acrossPanes, translatedValue: l }; t(this, "getPlotLinePath", a, function (a) {
                            l = F(l, c.translate(g, null, null, p)); l = v(l, -1E5,
                                1E5); L = n = Math.round(l + G); q = B = Math.round(y - l - G); b(l) ? c.horiz ? (q = f, B = y - c.bottom, L = n = d(L, h, h + c.width)) : (L = h, n = k - c.right, q = B = d(q, f, f + c.height)) : (r = !0, m = !1); a.path = r && !m ? null : e.renderer.crispLine([["M", L, q], ["L", n, B]], H || 1)
                        }); return a.path
                    }; a.prototype.getLinearTickPositions = function (b, a, d) { var c = q(Math.floor(a / b) * b); d = q(Math.ceil(d / b) * b); var e = [], h; q(c + b) === c && (h = 20); if (this.single) return [a]; for (a = c; a <= d;) { e.push(a); a = q(a + b, h); if (a === f) break; var f = a } return e }; a.prototype.getMinorTickInterval = function () {
                        var b =
                            this.options; return !0 === b.minorTicks ? F(b.minorTickInterval, "auto") : !1 === b.minorTicks ? null : b.minorTickInterval
                    }; a.prototype.getMinorTickPositions = function () {
                        var b = this.options, a = this.tickPositions, d = this.minorTickInterval, c = this.pointRangePadding || 0, e = this.min - c; c = this.max + c; var h = c - e, f = []; if (h && h / d < this.len / 3) {
                            var p = this.logarithmic; if (p) this.paddedTicks.forEach(function (b, a, c) { a && f.push.apply(f, p.getLogTickPositions(d, c[a - 1], c[a], !0)) }); else if (this.dateTime && "auto" === this.getMinorTickInterval()) f =
                                f.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(d), e, c, b.startOfWeek)); else for (b = e + (a[0] - e) % d; b <= c && b !== f[0]; b += d)f.push(b)
                        } 0 !== f.length && this.trimTicks(f); return f
                    }; a.prototype.adjustForMinRange = function () {
                        var b = this.options, a = this.logarithmic, d = this.min, c = this.max, e = 0, h, p, g, y; this.isXAxis && "undefined" === typeof this.minRange && !a && (k(b.min) || k(b.max) ? this.minRange = null : (this.series.forEach(function (b) {
                            g = b.xData; y = b.xIncrement ? 1 : g.length - 1; if (1 < g.length) for (h = y; 0 < h; h--)if (p = g[h] -
                                g[h - 1], !e || p < e) e = p
                        }), this.minRange = Math.min(5 * e, this.dataMax - this.dataMin))); if (c - d < this.minRange) { var G = this.dataMax - this.dataMin >= this.minRange; var t = this.minRange; var m = (t - c + d) / 2; m = [d - m, F(b.min, d - m)]; G && (m[2] = this.logarithmic ? this.logarithmic.log2lin(this.dataMin) : this.dataMin); d = l(m); c = [d + t, F(b.max, d + t)]; G && (c[2] = a ? a.log2lin(this.dataMax) : this.dataMax); c = f(c); c - d < t && (m[0] = c - t, m[1] = F(b.min, c - t), d = l(m)) } this.min = d; this.max = c
                    }; a.prototype.getClosest = function () {
                        var b; this.categories ? b = 1 : this.series.forEach(function (a) {
                            var d =
                                a.closestPointRange, c = a.visible || !a.chart.options.chart.ignoreHiddenSeries; !a.noSharedTooltip && k(d) && c && (b = k(b) ? Math.min(b, d) : d)
                        }); return b
                    }; a.prototype.nameToX = function (b) { var a = d(this.categories), c = a ? this.categories : this.names, e = b.options.x; b.series.requireSorting = !1; k(e) || (e = this.options.uniqueNames ? a ? c.indexOf(b.name) : F(c.keys[b.name], -1) : b.series.autoIncrement()); if (-1 === e) { if (!a) var h = c.length } else h = e; "undefined" !== typeof h && (this.names[h] = b.name, this.names.keys[b.name] = h); return h }; a.prototype.updateNames =
                        function () { var b = this, a = this.names; 0 < a.length && (Object.keys(a.keys).forEach(function (b) { delete a.keys[b] }), a.length = 0, this.minRange = this.userMinRange, (this.series || []).forEach(function (a) { a.xIncrement = null; if (!a.points || a.isDirtyData) b.max = Math.max(b.max, a.xData.length - 1), a.processData(), a.generatePoints(); a.data.forEach(function (d, c) { if (d && d.options && "undefined" !== typeof d.name) { var e = b.nameToX(d); "undefined" !== typeof e && e !== d.x && (d.x = e, a.xData[c] = e) } }) })) }; a.prototype.setAxisTranslation = function () {
                            var b =
                                this, a = b.max - b.min, d = b.linkedParent, c = !!b.categories, e = b.isXAxis, h = b.axisPointRange || 0, f = 0, g = 0, y = b.transA; if (e || c || h) {
                                    var k = b.getClosest(); d ? (f = d.minPointOffset, g = d.pointRangePadding) : b.series.forEach(function (a) { var d = c ? 1 : e ? F(a.options.pointRange, k, 0) : b.axisPointRange || 0, A = a.options.pointPlacement; h = Math.max(h, d); if (!b.single || c) a = a.is("xrange") ? !e : e, f = Math.max(f, a && p(A) ? 0 : d / 2), g = Math.max(g, a && "on" === A ? 0 : d) }); d = b.ordinal && b.ordinal.slope && k ? b.ordinal.slope / k : 1; b.minPointOffset = f *= d; b.pointRangePadding =
                                        g *= d; b.pointRange = Math.min(h, b.single && c ? 1 : a); e && (b.closestPointRange = k)
                                } b.translationSlope = b.transA = y = b.staticScale || b.len / (a + g || 1); b.transB = b.horiz ? b.left : b.bottom; b.minPixelPadding = y * f; t(this, "afterSetAxisTranslation")
                        }; a.prototype.minFromRange = function () { return this.max - this.range }; a.prototype.setTickInterval = function (a) {
                            var d = this, c = d.chart, e = d.logarithmic, f = d.options, p = d.isXAxis, g = d.isLinked, l = f.tickPixelInterval, G = d.categories, H = d.softThreshold, m = f.maxPadding, L = f.minPadding, n = f.tickInterval,
                            v = b(d.threshold) ? d.threshold : null; d.dateTime || G || g || this.getTickAmount(); var r = F(d.userMin, f.min); var P = F(d.userMax, f.max); if (g) { d.linkedParent = c[d.coll][f.linkedTo]; var D = d.linkedParent.getExtremes(); d.min = F(D.min, D.dataMin); d.max = F(D.max, D.dataMax); f.type !== d.linkedParent.options.type && B(11, 1, c) } else { if (H && k(v)) if (d.dataMin >= v) D = v, L = 0; else if (d.dataMax <= v) { var I = v; m = 0 } d.min = F(r, D, d.dataMin); d.max = F(P, I, d.dataMax) } e && (d.positiveValuesOnly && !a && 0 >= Math.min(d.min, F(d.dataMin, d.min)) && B(10, 1, c), d.min =
                                q(e.log2lin(d.min), 16), d.max = q(e.log2lin(d.max), 16)); d.range && k(d.max) && (d.userMin = d.min = r = Math.max(d.dataMin, d.minFromRange()), d.userMax = P = d.max, d.range = null); t(d, "foundExtremes"); d.beforePadding && d.beforePadding(); d.adjustForMinRange(); !(G || d.axisPointRange || d.stacking && d.stacking.usePercentage || g) && k(d.min) && k(d.max) && (c = d.max - d.min) && (!k(r) && L && (d.min -= c * L), !k(P) && m && (d.max += c * m)); b(d.userMin) || (b(f.softMin) && f.softMin < d.min && (d.min = r = f.softMin), b(f.floor) && (d.min = Math.max(d.min, f.floor))); b(d.userMax) ||
                                    (b(f.softMax) && f.softMax > d.max && (d.max = P = f.softMax), b(f.ceiling) && (d.max = Math.min(d.max, f.ceiling))); H && k(d.dataMin) && (v = v || 0, !k(r) && d.min < v && d.dataMin >= v ? d.min = d.options.minRange ? Math.min(v, d.max - d.minRange) : v : !k(P) && d.max > v && d.dataMax <= v && (d.max = d.options.minRange ? Math.max(v, d.min + d.minRange) : v)); b(d.min) && b(d.max) && !this.chart.polar && d.min > d.max && (k(d.options.min) ? d.max = d.min : k(d.options.max) && (d.min = d.max)); d.tickInterval = d.min === d.max || "undefined" === typeof d.min || "undefined" === typeof d.max ? 1 :
                                        g && d.linkedParent && !n && l === d.linkedParent.options.tickPixelInterval ? n = d.linkedParent.tickInterval : F(n, this.tickAmount ? (d.max - d.min) / Math.max(this.tickAmount - 1, 1) : void 0, G ? 1 : (d.max - d.min) * l / Math.max(d.len, l)); p && !a && (d.series.forEach(function (b) { b.forceCrop = b.forceCropping && b.forceCropping(); b.processData(d.min !== (d.old && d.old.min) || d.max !== (d.old && d.old.max)) }), t(this, "postProcessData")); d.setAxisTranslation(); t(this, "initialAxisTranslation"); d.pointRange && !n && (d.tickInterval = Math.max(d.pointRange,
                                            d.tickInterval)); a = F(f.minTickInterval, d.dateTime && !d.series.some(function (b) { return b.noSharedTooltip }) ? d.closestPointRange : 0); !n && d.tickInterval < a && (d.tickInterval = a); d.dateTime || d.logarithmic || n || (d.tickInterval = y(d.tickInterval, void 0, h(d.tickInterval), F(f.allowDecimals, .5 > d.tickInterval || void 0 !== this.tickAmount), !!this.tickAmount)); this.tickAmount || (d.tickInterval = d.unsquish()); this.setTickPositions()
                        }; a.prototype.setTickPositions = function () {
                            var b = this.options, d = b.tickPositions, a = this.getMinorTickInterval(),
                            c = this.hasVerticalPanning(), e = "colorAxis" === this.coll, h = (e || !c) && b.startOnTick; c = (e || !c) && b.endOnTick; e = b.tickPositioner; this.tickmarkOffset = this.categories && "between" === b.tickmarkPlacement && 1 === this.tickInterval ? .5 : 0; this.minorTickInterval = "auto" === a && this.tickInterval ? this.tickInterval / 5 : a; this.single = this.min === this.max && k(this.min) && !this.tickAmount && (parseInt(this.min, 10) === this.min || !1 !== b.allowDecimals); this.tickPositions = a = d && d.slice(); !a && (this.ordinal && this.ordinal.positions || !((this.max -
                                this.min) / this.tickInterval > Math.max(2 * this.len, 200)) ? a = this.dateTime ? this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval, b.units), this.min, this.max, b.startOfWeek, this.ordinal && this.ordinal.positions, this.closestPointRange, !0) : this.logarithmic ? this.logarithmic.getLogTickPositions(this.tickInterval, this.min, this.max) : this.getLinearTickPositions(this.tickInterval, this.min, this.max) : (a = [this.min, this.max], B(19, !1, this.chart)), a.length > this.len && (a = [a[0], a.pop()], a[0] === a[1] &&
                                    (a.length = 1)), this.tickPositions = a, e && (e = e.apply(this, [this.min, this.max]))) && (this.tickPositions = a = e); this.paddedTicks = a.slice(0); this.trimTicks(a, h, c); this.isLinked || (this.single && 2 > a.length && !this.categories && !this.series.some(function (b) { return b.is("heatmap") && "between" === b.options.pointPlacement }) && (this.min -= .5, this.max += .5), d || e || this.adjustTickAmount()); t(this, "afterSetTickPositions")
                        }; a.prototype.trimTicks = function (b, d, a) {
                            var c = b[0], e = b[b.length - 1], h = !this.isOrdinal && this.minPointOffset ||
                                0; t(this, "trimTicks"); if (!this.isLinked) { if (d && -Infinity !== c) this.min = c; else for (; this.min - h > b[0];)b.shift(); if (a) this.max = e; else for (; this.max + h < b[b.length - 1];)b.pop(); 0 === b.length && k(c) && !this.options.tickPositions && b.push((e + c) / 2) }
                        }; a.prototype.alignToOthers = function () {
                            var b = {}, d = this.options, a; !1 !== this.chart.options.chart.alignTicks && d.alignTicks && !1 !== d.startOnTick && !1 !== d.endOnTick && !this.logarithmic && this.chart[this.coll].forEach(function (d) {
                                var c = d.options; c = [d.horiz ? c.left : c.top, c.width,
                                c.height, c.pane].join(); d.series.length && (b[c] ? a = !0 : b[c] = 1)
                            }); return a
                        }; a.prototype.getTickAmount = function () { var b = this.options, d = b.tickPixelInterval, a = b.tickAmount; !k(b.tickInterval) && !a && this.len < d && !this.isRadial && !this.logarithmic && b.startOnTick && b.endOnTick && (a = 2); !a && this.alignToOthers() && (a = Math.ceil(this.len / d) + 1); 4 > a && (this.finalTickAmt = a, a = 5); this.tickAmount = a }; a.prototype.adjustTickAmount = function () {
                            var d = this.options, a = this.tickInterval, c = this.tickPositions, e = this.tickAmount, h = this.finalTickAmt,
                            f = c && c.length, p = F(this.threshold, this.softThreshold ? 0 : null); if (this.hasData() && b(this.min) && b(this.max)) {
                                if (f < e) { for (; c.length < e;)c.length % 2 || this.min === p ? c.push(q(c[c.length - 1] + a)) : c.unshift(q(c[0] - a)); this.transA *= (f - 1) / (e - 1); this.min = d.startOnTick ? c[0] : Math.min(this.min, c[0]); this.max = d.endOnTick ? c[c.length - 1] : Math.max(this.max, c[c.length - 1]) } else f > e && (this.tickInterval *= 2, this.setTickPositions()); if (k(h)) {
                                    for (a = d = c.length; a--;)(3 === h && 1 === a % 2 || 2 >= h && 0 < a && a < d - 1) && c.splice(a, 1); this.finalTickAmt =
                                        void 0
                                }
                            }
                        }; a.prototype.setScale = function () {
                            var b = !1, d = !1; this.series.forEach(function (a) { b = b || a.isDirtyData || a.isDirty; d = d || a.xAxis && a.xAxis.isDirty || !1 }); this.setAxisSize(); var a = this.len !== (this.old && this.old.len); a || b || d || this.isLinked || this.forceRedraw || this.userMin !== (this.old && this.old.userMin) || this.userMax !== (this.old && this.old.userMax) || this.alignToOthers() ? (this.stacking && this.stacking.resetStacks(), this.forceRedraw = !1, this.getSeriesExtremes(), this.setTickInterval(), this.isDirty || (this.isDirty =
                                a || this.min !== (this.old && this.old.min) || this.max !== (this.old && this.old.max))) : this.stacking && this.stacking.cleanStacks(); b && this.panningState && (this.panningState.isDirty = !0); t(this, "afterSetScale")
                        }; a.prototype.setExtremes = function (b, d, a, c, e) { var h = this, f = h.chart; a = F(a, !0); h.series.forEach(function (b) { delete b.kdTree }); e = O(e, { min: b, max: d }); t(h, "setExtremes", e, function () { h.userMin = b; h.userMax = d; h.eventArgs = e; a && f.redraw(c) }) }; a.prototype.zoom = function (b, d) {
                            var a = this, c = this.dataMin, e = this.dataMax,
                            h = this.options, f = Math.min(c, F(h.min, c)), p = Math.max(e, F(h.max, e)); b = { newMin: b, newMax: d }; t(this, "zoom", b, function (b) { var d = b.newMin, h = b.newMax; if (d !== a.min || h !== a.max) a.allowZoomOutside || (k(c) && (d < f && (d = f), d > p && (d = p)), k(e) && (h < f && (h = f), h > p && (h = p))), a.displayBtn = "undefined" !== typeof d || "undefined" !== typeof h, a.setExtremes(d, h, !1, void 0, { trigger: "zoom" }); b.zoomed = !0 }); return b.zoomed
                        }; a.prototype.setAxisSize = function () {
                            var b = this.chart, d = this.options, a = d.offsets || [0, 0, 0, 0], c = this.horiz, e = this.width = Math.round(P(F(d.width,
                                b.plotWidth - a[3] + a[1]), b.plotWidth)), h = this.height = Math.round(P(F(d.height, b.plotHeight - a[0] + a[2]), b.plotHeight)), f = this.top = Math.round(P(F(d.top, b.plotTop + a[0]), b.plotHeight, b.plotTop)); d = this.left = Math.round(P(F(d.left, b.plotLeft + a[3]), b.plotWidth, b.plotLeft)); this.bottom = b.chartHeight - h - f; this.right = b.chartWidth - e - d; this.len = Math.max(c ? e : h, 0); this.pos = c ? d : f
                        }; a.prototype.getExtremes = function () {
                            var b = this.logarithmic; return {
                                min: b ? q(b.lin2log(this.min)) : this.min, max: b ? q(b.lin2log(this.max)) : this.max,
                                dataMin: this.dataMin, dataMax: this.dataMax, userMin: this.userMin, userMax: this.userMax
                            }
                        }; a.prototype.getThreshold = function (b) { var d = this.logarithmic, a = d ? d.lin2log(this.min) : this.min; d = d ? d.lin2log(this.max) : this.max; null === b || -Infinity === b ? b = a : Infinity === b ? b = d : a > b ? b = a : d < b && (b = d); return this.translate(b, 0, 1, 0, 1) }; a.prototype.autoLabelAlign = function (b) {
                            var d = (F(b, 0) - 90 * this.side + 720) % 360; b = { align: "center" }; t(this, "autoLabelAlign", b, function (b) { 15 < d && 165 > d ? b.align = "right" : 195 < d && 345 > d && (b.align = "left") });
                            return b.align
                        }; a.prototype.tickSize = function (b) { var d = this.options, a = F(d["tick" === b ? "tickWidth" : "minorTickWidth"], "tick" === b && this.isXAxis && !this.categories ? 1 : 0), c = d["tick" === b ? "tickLength" : "minorTickLength"]; if (a && c) { "inside" === d[b + "Position"] && (c = -c); var e = [c, a] } b = { tickSize: e }; t(this, "afterTickSize", b); return b.tickSize }; a.prototype.labelMetrics = function () {
                            var b = this.tickPositions && this.tickPositions[0] || 0; return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize, this.ticks[b] &&
                                this.ticks[b].label)
                        }; a.prototype.unsquish = function () {
                            var d = this.options.labels, a = this.horiz, c = this.tickInterval, h = this.len / (((this.categories ? 1 : 0) + this.max - this.min) / c), f = d.rotation, p = this.labelMetrics(), g = Math.max(this.max - this.min, 0), y = function (b) { var d = b / (h || 1); d = 1 < d ? Math.ceil(d) : 1; d * c > g && Infinity !== b && Infinity !== h && g && (d = Math.ceil(g / c)); return q(d * c) }, k = c, l, G, t = Number.MAX_VALUE; if (a) {
                                if (!d.staggerLines && !d.step) if (b(f)) var m = [f]; else h < d.autoRotationLimit && (m = d.autoRotation); m && m.forEach(function (b) {
                                    if (b ===
                                        f || b && -90 <= b && 90 >= b) { G = y(Math.abs(p.h / Math.sin(e * b))); var d = G + Math.abs(b / 360); d < t && (t = d, l = b, k = G) }
                                })
                            } else d.step || (k = y(p.h)); this.autoRotation = m; this.labelRotation = F(l, b(f) ? f : 0); return k
                        }; a.prototype.getSlotWidth = function (d) {
                            var a = this.chart, c = this.horiz, e = this.options.labels, h = Math.max(this.tickPositions.length - (this.categories ? 0 : 1), 1), f = a.margin[3]; if (d && b(d.slotWidth)) return d.slotWidth; if (c && 2 > e.step) return e.rotation ? 0 : (this.staggerLines || 1) * this.len / h; if (!c) {
                                d = e.style.width; if (void 0 !== d) return parseInt(String(d),
                                    10); if (f) return f - a.spacing[3]
                            } return .33 * a.chartWidth
                        }; a.prototype.renderUnsquish = function () {
                            var b = this.chart, d = b.renderer, a = this.tickPositions, c = this.ticks, e = this.options.labels, h = e.style, f = this.horiz, g = this.getSlotWidth(), y = Math.max(1, Math.round(g - 2 * e.padding)), k = {}, G = this.labelMetrics(), l = h.textOverflow, t = 0; p(e.rotation) || (k.rotation = e.rotation || 0); a.forEach(function (b) { b = c[b]; b.movedLabel && b.replaceMovedLabel(); b && b.label && b.label.textPxLength > t && (t = b.label.textPxLength) }); this.maxLabelLength =
                                t; if (this.autoRotation) t > y && t > G.h ? k.rotation = this.labelRotation : this.labelRotation = 0; else if (g) { var m = y; if (!l) { var F = "clip"; for (y = a.length; !f && y--;) { var L = a[y]; if (L = c[L].label) L.styles && "ellipsis" === L.styles.textOverflow ? L.css({ textOverflow: "clip" }) : L.textPxLength > g && L.css({ width: g + "px" }), L.getBBox().height > this.len / a.length - (G.h - G.f) && (L.specificTextOverflow = "ellipsis") } } } k.rotation && (m = t > .5 * b.chartHeight ? .33 * b.chartHeight : t, l || (F = "ellipsis")); if (this.labelAlign = e.align || this.autoLabelAlign(this.labelRotation)) k.align =
                                    this.labelAlign; a.forEach(function (b) { var d = (b = c[b]) && b.label, a = h.width, e = {}; d && (d.attr(k), b.shortenLabel ? b.shortenLabel() : m && !a && "nowrap" !== h.whiteSpace && (m < d.textPxLength || "SPAN" === d.element.tagName) ? (e.width = m + "px", l || (e.textOverflow = d.specificTextOverflow || F), d.css(e)) : d.styles && d.styles.width && !e.width && !a && d.css({ width: null }), delete d.specificTextOverflow, b.rotation = k.rotation) }, this); this.tickRotCorr = d.rotCorr(G.b, this.labelRotation || 0, 0 !== this.side)
                        }; a.prototype.hasData = function () {
                            return this.series.some(function (b) { return b.hasData() }) ||
                                this.options.showEmpty && k(this.min) && k(this.max)
                        }; a.prototype.addTitle = function (b) {
                            var d = this.chart.renderer, a = this.horiz, c = this.opposite, e = this.options.title, h = this.chart.styledMode, f; this.axisTitle || ((f = e.textAlign) || (f = (a ? { low: "left", middle: "center", high: "right" } : { low: c ? "right" : "left", middle: "center", high: c ? "left" : "right" })[e.align]), this.axisTitle = d.text(e.text || "", 0, 0, e.useHTML).attr({ zIndex: 7, rotation: e.rotation, align: f }).addClass("highcharts-axis-title"), h || this.axisTitle.css(G(e.style)), this.axisTitle.add(this.axisGroup),
                                this.axisTitle.isNew = !0); h || e.style.width || this.isRadial || this.axisTitle.css({ width: this.len + "px" }); this.axisTitle[b ? "show" : "hide"](b)
                        }; a.prototype.generateTick = function (b) { var d = this.ticks; d[b] ? d[b].addLabel() : d[b] = new u(this, b) }; a.prototype.getOffset = function () {
                            var b = this, d = this, a = d.chart, c = a.renderer, e = d.options, h = d.tickPositions, f = d.ticks, p = d.horiz, g = d.side, y = a.inverted && !d.isZAxis ? [1, 0, 3, 2][g] : g, G = d.hasData(), l = e.title, m = e.labels, q = a.axisOffset; a = a.clipOffset; var v = [-1, 1, 1, -1][g], n = e.className,
                                B = d.axisParent, r, P = 0, D = 0, ca = 0; d.showAxis = r = G || e.showEmpty; d.staggerLines = d.horiz && m.staggerLines || void 0; if (!d.axisGroup) { var ia = function (d, a, e) { return c.g(d).attr({ zIndex: e }).addClass("highcharts-" + b.coll.toLowerCase() + a + " " + (b.isRadial ? "highcharts-radial-axis" + a + " " : "") + (n || "")).add(B) }; d.gridGroup = ia("grid", "-grid", e.gridZIndex); d.axisGroup = ia("axis", "", e.zIndex); d.labelGroup = ia("axis-labels", "-labels", m.zIndex) } G || d.isLinked ? (h.forEach(function (b) { d.generateTick(b) }), d.renderUnsquish(), d.reserveSpaceDefault =
                                    0 === g || 2 === g || { 1: "left", 3: "right" }[g] === d.labelAlign, F(m.reserveSpace, "center" === d.labelAlign ? !0 : null, d.reserveSpaceDefault) && h.forEach(function (b) { ca = Math.max(f[b].getLabelSize(), ca) }), d.staggerLines && (ca *= d.staggerLines), d.labelOffset = ca * (d.opposite ? -1 : 1)) : L(f, function (b, d) { b.destroy(); delete f[d] }); if (l && l.text && !1 !== l.enabled && (d.addTitle(r), r && !1 !== l.reserveSpace)) { d.titleOffset = P = d.axisTitle.getBBox()[p ? "height" : "width"]; var I = l.offset; D = k(I) ? 0 : F(l.margin, p ? 5 : 10) } d.renderLine(); d.offset = v * F(e.offset,
                                        q[g] ? q[g] + (e.margin || 0) : 0); d.tickRotCorr = d.tickRotCorr || { x: 0, y: 0 }; l = 0 === g ? -d.labelMetrics().h : 2 === g ? d.tickRotCorr.y : 0; G = Math.abs(ca) + D; ca && (G = G - l + v * (p ? F(m.y, d.tickRotCorr.y + 8 * v) : m.x)); d.axisTitleMargin = F(I, G); d.getMaxLabelDimensions && (d.maxLabelDimensions = d.getMaxLabelDimensions(f, h)); p = this.tickSize("tick"); q[g] = Math.max(q[g], (d.axisTitleMargin || 0) + P + v * d.offset, G, h && h.length && p ? p[0] + v * d.offset : 0); e = e.offset ? 0 : 2 * Math.floor(d.axisLine.strokeWidth() / 2); a[y] = Math.max(a[y], e); t(this, "afterGetOffset")
                        };
                    a.prototype.getLinePath = function (b) { var d = this.chart, a = this.opposite, c = this.offset, e = this.horiz, h = this.left + (a ? this.width : 0) + c; c = d.chartHeight - this.bottom - (a ? this.height : 0) + c; a && (b *= -1); return d.renderer.crispLine([["M", e ? this.left : h, e ? c : this.top], ["L", e ? d.chartWidth - this.right : h, e ? c : d.chartHeight - this.bottom]], b) }; a.prototype.renderLine = function () {
                        this.axisLine || (this.axisLine = this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup), this.chart.styledMode || this.axisLine.attr({
                            stroke: this.options.lineColor,
                            "stroke-width": this.options.lineWidth, zIndex: 7
                        }))
                    }; a.prototype.getTitlePosition = function () {
                        var b = this.horiz, d = this.left, a = this.top, c = this.len, e = this.options.title, h = b ? d : a, f = this.opposite, p = this.offset, g = e.x, y = e.y, k = this.axisTitle, G = this.chart.renderer.fontMetrics(e.style.fontSize, k); k = Math.max(k.getBBox(null, 0).height - G.h - 1, 0); c = { low: h + (b ? 0 : c), middle: h + c / 2, high: h + (b ? c : 0) }[e.align]; d = (b ? a + this.height : d) + (b ? 1 : -1) * (f ? -1 : 1) * this.axisTitleMargin + [-k, k, G.f, -k][this.side]; b = {
                            x: b ? c + g : d + (f ? this.width : 0) + p +
                                g, y: b ? d + y - (f ? this.height : 0) + p : c + y
                        }; t(this, "afterGetTitlePosition", { titlePosition: b }); return b
                    }; a.prototype.renderMinorTick = function (b, d) { var a = this.minorTicks; a[b] || (a[b] = new u(this, b, "minor")); d && a[b].isNew && a[b].render(null, !0); a[b].render(null, !1, 1) }; a.prototype.renderTick = function (b, d, a) { var c = this.ticks; if (!this.isLinked || b >= this.min && b <= this.max || this.grid && this.grid.isColumn) c[b] || (c[b] = new u(this, b)), a && c[b].isNew && c[b].render(d, !0, -1), c[b].render(d) }; a.prototype.render = function () {
                        var d = this,
                        a = d.chart, c = d.logarithmic, e = d.options, h = d.isLinked, f = d.tickPositions, p = d.axisTitle, g = d.ticks, y = d.minorTicks, k = d.alternateBands, G = e.stackLabels, l = e.alternateGridColor, F = d.tickmarkOffset, q = d.axisLine, v = d.showAxis, n = m(a.renderer.globalAnimation), B, r; d.labelEdge.length = 0; d.overlap = !1;[g, y, k].forEach(function (b) { L(b, function (b) { b.isActive = !1 }) }); if (d.hasData() || h) {
                            var P = d.chart.hasRendered && d.old && b(d.old.min); d.minorTickInterval && !d.categories && d.getMinorTickPositions().forEach(function (b) {
                                d.renderMinorTick(b,
                                    P)
                            }); f.length && (f.forEach(function (b, a) { d.renderTick(b, a, P) }), F && (0 === d.min || d.single) && (g[-1] || (g[-1] = new u(d, -1, null, !0)), g[-1].render(-1))); l && f.forEach(function (b, e) { r = "undefined" !== typeof f[e + 1] ? f[e + 1] + F : d.max - F; 0 === e % 2 && b < d.max && r <= d.max + (a.polar ? -F : F) && (k[b] || (k[b] = new J.PlotLineOrBand(d)), B = b + F, k[b].options = { from: c ? c.lin2log(B) : B, to: c ? c.lin2log(r) : r, color: l, className: "highcharts-alternate-grid" }, k[b].render(), k[b].isActive = !0) }); d._addedPlotLB || (d._addedPlotLB = !0, (e.plotLines || []).concat(e.plotBands ||
                                []).forEach(function (b) { d.addPlotBandOrLine(b) }))
                        } [g, y, k].forEach(function (b) { var d = [], c = n.duration; L(b, function (b, a) { b.isActive || (b.render(a, !1, 0), b.isActive = !1, d.push(a)) }); V(function () { for (var a = d.length; a--;)b[d[a]] && !b[d[a]].isActive && (b[d[a]].destroy(), delete b[d[a]]) }, b !== k && a.hasRendered && c ? c : 0) }); q && (q[q.isPlaced ? "animate" : "attr"]({ d: this.getLinePath(q.strokeWidth()) }), q.isPlaced = !0, q[v ? "show" : "hide"](v)); p && v && (e = d.getTitlePosition(), b(e.y) ? (p[p.isNew ? "attr" : "animate"](e), p.isNew = !1) : (p.attr("y",
                            -9999), p.isNew = !0)); G && G.enabled && d.stacking && d.stacking.renderStackTotals(); d.old = { len: d.len, max: d.max, min: d.min, transA: d.transA, userMax: d.userMax, userMin: d.userMin }; d.isDirty = !1; t(this, "afterRender")
                    }; a.prototype.redraw = function () { this.visible && (this.render(), this.plotLinesAndBands.forEach(function (b) { b.render() })); this.series.forEach(function (b) { b.isDirty = !0 }) }; a.prototype.getKeepProps = function () { return this.keepProps || a.keepProps }; a.prototype.destroy = function (b) {
                        var d = this, a = d.plotLinesAndBands,
                        c = this.eventOptions; t(this, "destroy", { keepEvents: b }); b || S(d);[d.ticks, d.minorTicks, d.alternateBands].forEach(function (b) { r(b) }); if (a) for (b = a.length; b--;)a[b].destroy(); "axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar".split(" ").forEach(function (b) { d[b] && (d[b] = d[b].destroy()) }); for (var e in d.plotLinesAndBandsGroups) d.plotLinesAndBandsGroups[e] = d.plotLinesAndBandsGroups[e].destroy(); L(d, function (b, a) { -1 === d.getKeepProps().indexOf(a) && delete d[a] }); this.eventOptions = c
                    }; a.prototype.drawCrosshair =
                        function (b, d) {
                            var a = this.crosshair, c = F(a && a.snap, !0), e = this.chart, h, f = this.cross; t(this, "drawCrosshair", { e: b, point: d }); b || (b = this.cross && this.cross.e); if (a && !1 !== (k(d) || !c)) {
                                c ? k(d) && (h = F("colorAxis" !== this.coll ? d.crosshairPos : null, this.isXAxis ? d.plotX : this.len - d.plotY)) : h = b && (this.horiz ? b.chartX - this.pos : this.len - b.chartY + this.pos); if (k(h)) {
                                    var p = { value: d && (this.isXAxis ? d.x : F(d.stackY, d.y)), translatedValue: h }; e.polar && O(p, { isCrosshair: !0, chartX: b && b.chartX, chartY: b && b.chartY, point: d }); p = this.getPlotLinePath(p) ||
                                        null
                                } if (!k(p)) { this.hideCrosshair(); return } c = this.categories && !this.isRadial; f || (this.cross = f = e.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-" + (c ? "category " : "thin ") + (a.className || "")).attr({ zIndex: F(a.zIndex, 2) }).add(), e.styledMode || (f.attr({ stroke: a.color || (c ? C.parse(E.highlightColor20).setOpacity(.25).get() : E.neutralColor20), "stroke-width": F(a.width, 1) }).css({ "pointer-events": "none" }), a.dashStyle && f.attr({ dashstyle: a.dashStyle }))); f.show().attr({ d: p }); c && !a.width && f.attr({ "stroke-width": this.transA });
                                this.cross.e = b
                            } else this.hideCrosshair(); t(this, "afterDrawCrosshair", { e: b, point: d })
                        }; a.prototype.hideCrosshair = function () { this.cross && this.cross.hide(); t(this, "afterHideCrosshair") }; a.prototype.hasVerticalPanning = function () { var b = this.chart.options.chart.panning; return !!(b && b.enabled && /y/.test(b.type)) }; a.prototype.validatePositiveValue = function (d) { return b(d) && 0 < d }; a.prototype.update = function (b, d) { var a = this.chart; b = G(this.userOptions, b); this.destroy(!0); this.init(a, b); a.isDirtyBox = !0; F(d, !0) && a.redraw() };
                    a.prototype.remove = function (b) { for (var d = this.chart, a = this.coll, c = this.series, e = c.length; e--;)c[e] && c[e].remove(!1); D(d.axes, this); D(d[a], this); d[a].forEach(function (b, d) { b.options.index = b.userOptions.index = d }); this.destroy(); d.isDirtyBox = !0; F(b, !0) && d.redraw() }; a.prototype.setTitle = function (b, d) { this.update({ title: b }, d) }; a.prototype.setCategories = function (b, d) { this.update({ categories: b }, d) }; a.defaultOptions = w.defaultXAxisOptions; a.keepProps = "extKey hcEvents names series userMax userMin".split(" ");
                    return a
                }(); ""; return a
            }); M(a, "Core/Axis/DateTimeAxis.js", [a["Core/Utilities.js"]], function (a) {
                var r = a.addEvent, C = a.getMagnitude, E = a.normalizeTickInterval, z = a.timeUnits, x; (function (a) {
                    function u() { return this.chart.time.getTimeTicks.apply(this.chart.time, arguments) } function n(a) { "datetime" !== a.userOptions.type ? this.dateTime = void 0 : this.dateTime || (this.dateTime = new g(this)) } var m = []; a.compose = function (a) {
                        -1 === m.indexOf(a) && (m.push(a), a.keepProps.push("dateTime"), a.prototype.getTimeTicks = u, r(a, "init",
                            n)); return a
                    }; var g = function () {
                        function a(a) { this.axis = a } a.prototype.normalizeTimeTickInterval = function (a, c) {
                            var e = c || [["millisecond", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]], ["second", [1, 2, 5, 10, 15, 30]], ["minute", [1, 2, 5, 10, 15, 30]], ["hour", [1, 2, 3, 4, 6, 8, 12]], ["day", [1, 2]], ["week", [1, 2]], ["month", [1, 2, 3, 4, 6]], ["year", null]]; c = e[e.length - 1]; var g = z[c[0]], l = c[1], k; for (k = 0; k < e.length && !(c = e[k], g = z[c[0]], l = c[1], e[k + 1] && a <= (g * l[l.length - 1] + z[e[k + 1][0]]) / 2); k++); g === z.year && a < 5 * g && (l = [1, 2, 5]); a = E(a / g, l, "year" === c[0] ?
                                Math.max(C(a / g), 1) : 1); return { unitRange: g, count: a, unitName: c[0] }
                        }; a.prototype.getXDateFormat = function (a, c) { var e = this.axis; return e.closestPointRange ? e.chart.time.getDateFormat(e.closestPointRange, a, e.options.startOfWeek, c) || c.year : c.day }; return a
                    }(); a.Additions = g
                })(x || (x = {})); return x
            }); M(a, "Core/Axis/LogarithmicAxis.js", [a["Core/Utilities.js"]], function (a) {
                var r = a.addEvent, C = a.getMagnitude, E = a.normalizeTickInterval, z = a.pick, x; (function (a) {
                    function u(a) {
                        var c = this.logarithmic; "logarithmic" !== a.userOptions.type ?
                            this.logarithmic = void 0 : c || (this.logarithmic = new g(this))
                    } function n() { var a = this.logarithmic; a && (this.lin2val = function (c) { return a.lin2log(c) }, this.val2lin = function (c) { return a.log2lin(c) }) } var m = []; a.compose = function (a) { -1 === m.indexOf(a) && (m.push(a), a.keepProps.push("logarithmic"), r(a, "init", u), r(a, "afterInit", n)); return a }; var g = function () {
                        function a(a) { this.axis = a } a.prototype.getLogTickPositions = function (a, c, f, g) {
                            var e = this.axis, k = e.len, l = e.options, m = []; g || (this.minorAutoInterval = void 0); if (.5 <=
                                a) a = Math.round(a), m = e.getLinearTickPositions(a, c, f); else if (.08 <= a) { var n = Math.floor(c), v, t = l = void 0; for (k = .3 < a ? [1, 2, 4] : .15 < a ? [1, 2, 4, 6, 8] : [1, 2, 3, 4, 5, 6, 7, 8, 9]; n < f + 1 && !t; n++) { var h = k.length; for (v = 0; v < h && !t; v++) { var d = this.log2lin(this.lin2log(n) * k[v]); d > c && (!g || l <= f) && "undefined" !== typeof l && m.push(l); l > f && (t = !0); l = d } } } else c = this.lin2log(c), f = this.lin2log(f), a = g ? e.getMinorTickInterval() : l.tickInterval, a = z("auto" === a ? null : a, this.minorAutoInterval, l.tickPixelInterval / (g ? 5 : 1) * (f - c) / ((g ? k / e.tickPositions.length :
                                    k) || 1)), a = E(a, void 0, C(a)), m = e.getLinearTickPositions(a, c, f).map(this.log2lin), g || (this.minorAutoInterval = a / 5); g || (e.tickInterval = a); return m
                        }; a.prototype.lin2log = function (a) { return Math.pow(10, a) }; a.prototype.log2lin = function (a) { return Math.log(a) / Math.LN10 }; return a
                    }(); a.Additions = g
                })(x || (x = {})); return x
            }); M(a, "Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js", [a["Core/Utilities.js"]], function (a) {
                var r = a.erase, C = a.extend, E = a.isNumber, z; (function (a) {
                    var x = [], u; a.compose = function (a, g) {
                        u || (u = a); -1 ===
                            x.indexOf(g) && (x.push(g), C(g.prototype, n.prototype)); return g
                    }; var n = function () {
                        function a() { } a.prototype.getPlotBandPath = function (a, c, e) {
                            void 0 === e && (e = this.options); var g = this.getPlotLinePath({ value: c, force: !0, acrossPanes: e.acrossPanes }), f = [], m = this.horiz; c = !E(this.min) || !E(this.max) || a < this.min && c < this.min || a > this.max && c > this.max; a = this.getPlotLinePath({ value: a, force: !0, acrossPanes: e.acrossPanes }); e = 1; if (a && g) {
                                if (c) { var q = a.toString() === g.toString(); e = 0 } for (c = 0; c < a.length; c += 2) {
                                    var k = a[c], n = a[c +
                                        1], r = g[c], B = g[c + 1]; "M" !== k[0] && "L" !== k[0] || "M" !== n[0] && "L" !== n[0] || "M" !== r[0] && "L" !== r[0] || "M" !== B[0] && "L" !== B[0] || (m && r[1] === k[1] ? (r[1] += e, B[1] += e) : m || r[2] !== k[2] || (r[2] += e, B[2] += e), f.push(["M", k[1], k[2]], ["L", n[1], n[2]], ["L", B[1], B[2]], ["L", r[1], r[2]], ["Z"])); f.isFlat = q
                                }
                            } return f
                        }; a.prototype.addPlotBand = function (a) { return this.addPlotBandOrLine(a, "plotBands") }; a.prototype.addPlotLine = function (a) { return this.addPlotBandOrLine(a, "plotLines") }; a.prototype.addPlotBandOrLine = function (a, c) {
                            var e = this,
                            g = this.userOptions, f = new u(this, a); this.visible && (f = f.render()); if (f) { this._addedPlotLB || (this._addedPlotLB = !0, (g.plotLines || []).concat(g.plotBands || []).forEach(function (a) { e.addPlotBandOrLine(a) })); if (c) { var m = g[c] || []; m.push(a); g[c] = m } this.plotLinesAndBands.push(f) } return f
                        }; a.prototype.removePlotBandOrLine = function (a) {
                            var c = this.plotLinesAndBands, e = this.options, g = this.userOptions; if (c) {
                                for (var f = c.length; f--;)c[f].id === a && c[f].destroy();[e.plotLines || [], g.plotLines || [], e.plotBands || [], g.plotBands ||
                                    []].forEach(function (c) { for (f = c.length; f--;)(c[f] || {}).id === a && r(c, c[f]) })
                            }
                        }; a.prototype.removePlotBand = function (a) { this.removePlotBandOrLine(a) }; a.prototype.removePlotLine = function (a) { this.removePlotBandOrLine(a) }; return a
                    }()
                })(z || (z = {})); return z
            }); M(a, "Core/Axis/PlotLineOrBand/PlotLineOrBand.js", [a["Core/Color/Palette.js"], a["Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js"], a["Core/Utilities.js"]], function (a, w, C) {
                var r = C.arrayMax, z = C.arrayMin, x = C.defined, J = C.destroyObjectProperties, u = C.erase, n =
                    C.fireEvent, m = C.merge, g = C.objectEach, c = C.pick; C = function () {
                        function e(a, c) { this.axis = a; c && (this.options = c, this.id = c.id) } e.compose = function (a) { return w.compose(e, a) }; e.prototype.render = function () {
                            n(this, "render"); var e = this, f = e.axis, v = f.horiz, q = f.logarithmic, k = e.options, r = k.color, D = c(k.zIndex, 0), B = k.events, u = {}, t = f.chart.renderer, h = k.label, d = e.label, b = k.to, p = k.from, G = k.value, y = e.svgElem, L = [], F = x(p) && x(b); L = x(G); var P = !y, S = { "class": "highcharts-plot-" + (F ? "band " : "line ") + (k.className || "") }, Q = F ? "bands" :
                                "lines"; q && (p = q.log2lin(p), b = q.log2lin(b), G = q.log2lin(G)); f.chart.styledMode || (L ? (S.stroke = r || a.neutralColor40, S["stroke-width"] = c(k.width, 1), k.dashStyle && (S.dashstyle = k.dashStyle)) : F && (S.fill = r || a.highlightColor10, k.borderWidth && (S.stroke = k.borderColor, S["stroke-width"] = k.borderWidth))); u.zIndex = D; Q += "-" + D; (q = f.plotLinesAndBandsGroups[Q]) || (f.plotLinesAndBandsGroups[Q] = q = t.g("plot-" + Q).attr(u).add()); P && (e.svgElem = y = t.path().attr(S).add(q)); if (L) L = f.getPlotLinePath({
                                    value: G, lineWidth: y.strokeWidth(),
                                    acrossPanes: k.acrossPanes
                                }); else if (F) L = f.getPlotBandPath(p, b, k); else return; !e.eventsAdded && B && (g(B, function (b, d) { y.on(d, function (b) { B[d].apply(e, [b]) }) }), e.eventsAdded = !0); (P || !y.d) && L && L.length ? y.attr({ d: L }) : y && (L ? (y.show(!0), y.animate({ d: L })) : y.d && (y.hide(), d && (e.label = d = d.destroy()))); h && (x(h.text) || x(h.formatter)) && L && L.length && 0 < f.width && 0 < f.height && !L.isFlat ? (h = m({ align: v && F && "center", x: v ? !F && 4 : 10, verticalAlign: !v && F && "middle", y: v ? F ? 16 : 10 : F ? 6 : -4, rotation: v && !F && 90 }, h), this.renderLabel(h, L,
                                    F, D)) : d && d.hide(); return e
                        }; e.prototype.renderLabel = function (a, c, e, g) {
                            var f = this.axis, l = f.chart.renderer, q = this.label; q || (this.label = q = l.text(this.getLabelText(a), 0, 0, a.useHTML).attr({ align: a.textAlign || a.align, rotation: a.rotation, "class": "highcharts-plot-" + (e ? "band" : "line") + "-label " + (a.className || ""), zIndex: g }).add(), f.chart.styledMode || q.css(m({ textOverflow: "ellipsis" }, a.style))); g = c.xBounds || [c[0][1], c[1][1], e ? c[2][1] : c[0][1]]; c = c.yBounds || [c[0][2], c[1][2], e ? c[2][2] : c[0][2]]; e = z(g); l = z(c); q.align(a,
                                !1, { x: e, y: l, width: r(g) - e, height: r(c) - l }); q.alignValue && "left" !== q.alignValue || q.css({ width: (90 === q.rotation ? f.height - (q.alignAttr.y - f.top) : f.width - (q.alignAttr.x - f.left)) + "px" }); q.show(!0)
                        }; e.prototype.getLabelText = function (a) { return x(a.formatter) ? a.formatter.call(this) : a.text }; e.prototype.destroy = function () { u(this.axis.plotLinesAndBands, this); delete this.axis; J(this) }; return e
                    }(); ""; ""; return C
            }); M(a, "Core/Tooltip.js", [a["Core/FormatUtilities.js"], a["Core/Globals.js"], a["Core/Color/Palette.js"],
            a["Core/Renderer/RendererUtilities.js"], a["Core/Renderer/RendererRegistry.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x) {
                var r = a.format, u = w.doc, n = E.distribute, m = x.addEvent, g = x.clamp, c = x.css, e = x.defined, l = x.discardElement, f = x.extend, v = x.fireEvent, q = x.isArray, k = x.isNumber, I = x.isString, D = x.merge, B = x.pick, O = x.splat, t = x.syncTimeout; a = function () {
                    function a(a, b) {
                        this.container = void 0; this.crosshairs = []; this.distance = 0; this.isHidden = !0; this.isSticky = !1; this.now = {}; this.options = {}; this.outside = !1; this.chart =
                            a; this.init(a, b)
                    } a.prototype.applyFilter = function () { var a = this.chart; a.renderer.definition({ tagName: "filter", attributes: { id: "drop-shadow-" + a.index, opacity: .5 }, children: [{ tagName: "feGaussianBlur", attributes: { "in": "SourceAlpha", stdDeviation: 1 } }, { tagName: "feOffset", attributes: { dx: 1, dy: 1 } }, { tagName: "feComponentTransfer", children: [{ tagName: "feFuncA", attributes: { type: "linear", slope: .3 } }] }, { tagName: "feMerge", children: [{ tagName: "feMergeNode" }, { tagName: "feMergeNode", attributes: { "in": "SourceGraphic" } }] }] }) };
                    a.prototype.bodyFormatter = function (a) { return a.map(function (b) { var a = b.series.tooltipOptions; return (a[(b.point.formatPrefix || "point") + "Formatter"] || b.point.tooltipFormatter).call(b.point, a[(b.point.formatPrefix || "point") + "Format"] || "") }) }; a.prototype.cleanSplit = function (a) { this.chart.series.forEach(function (b) { var d = b && b.tt; d && (!d.isActive || a ? b.tt = d.destroy() : d.isActive = !1) }) }; a.prototype.defaultFormatter = function (a) {
                        var b = this.points || O(this); var d = [a.tooltipFooterHeaderFormatter(b[0])]; d = d.concat(a.bodyFormatter(b));
                        d.push(a.tooltipFooterHeaderFormatter(b[0], !0)); return d
                    }; a.prototype.destroy = function () { this.label && (this.label = this.label.destroy()); this.split && this.tt && (this.cleanSplit(this.chart, !0), this.tt = this.tt.destroy()); this.renderer && (this.renderer = this.renderer.destroy(), l(this.container)); x.clearTimeout(this.hideTimer); x.clearTimeout(this.tooltipTimeout) }; a.prototype.getAnchor = function (a, b) {
                        var d = this.chart, c = d.pointer, e = d.inverted, h = d.plotTop, f = d.plotLeft, g, k, t = 0, l = 0; a = O(a); this.followPointer && b ? ("undefined" ===
                            typeof b.chartX && (b = c.normalize(b)), c = [b.chartX - f, b.chartY - h]) : a[0].tooltipPos ? c = a[0].tooltipPos : (a.forEach(function (b) { g = b.series.yAxis; k = b.series.xAxis; t += b.plotX || 0; l += b.plotLow ? (b.plotLow + (b.plotHigh || 0)) / 2 : b.plotY || 0; k && g && (e ? (t += h + d.plotHeight - k.len - k.pos, l += f + d.plotWidth - g.len - g.pos) : (t += k.pos - f, l += g.pos - h)) }), t /= a.length, l /= a.length, c = [e ? d.plotWidth - l : t, e ? d.plotHeight - t : l], this.shared && 1 < a.length && b && (e ? c[0] = b.chartX - f : c[1] = b.chartY - h)); return c.map(Math.round)
                    }; a.prototype.getLabel = function () {
                        var a =
                            this, b = this.chart.styledMode, h = this.options, f = "tooltip" + (e(h.className) ? " " + h.className : ""), g = h.style.pointerEvents || (!this.followPointer && h.stickOnContact ? "auto" : "none"), k = function () { a.inContact = !0 }, t = function (b) { var d = a.chart.hoverSeries; a.inContact = a.shouldStickOnContact() && a.chart.pointer.inClass(b.relatedTarget, "highcharts-tooltip"); if (!a.inContact && d && d.onMouseOut) d.onMouseOut() }, l, q = this.chart.renderer; if (!this.label) {
                                if (this.outside) {
                                    var n = this.chart.options.chart.style, v = z.getRendererType();
                                    this.container = l = w.doc.createElement("div"); l.className = "highcharts-tooltip-container"; c(l, { position: "absolute", top: "1px", pointerEvents: g, zIndex: Math.max(this.options.style.zIndex || 0, (n && n.zIndex || 0) + 3) }); m(l, "mouseenter", k); m(l, "mouseleave", t); w.doc.body.appendChild(l); this.renderer = q = new v(l, 0, 0, n, void 0, void 0, q.styledMode)
                                } this.split ? this.label = q.g(f) : (this.label = q.label("", 0, 0, h.shape, void 0, void 0, h.useHTML, void 0, f).attr({ padding: h.padding, r: h.borderRadius }), b || this.label.attr({
                                    fill: h.backgroundColor,
                                    "stroke-width": h.borderWidth
                                }).css(h.style).css({ pointerEvents: g }).shadow(h.shadow)); b && h.shadow && (this.applyFilter(), this.label.attr({ filter: "url(#drop-shadow-" + this.chart.index + ")" })); if (a.outside && !a.split) { var r = this.label, B = r.xSetter, D = r.ySetter; r.xSetter = function (b) { B.call(r, a.distance); l.style.left = b + "px" }; r.ySetter = function (b) { D.call(r, a.distance); l.style.top = b + "px" } } this.label.on("mouseenter", k).on("mouseleave", t).attr({ zIndex: 8 }).add()
                            } return this.label
                    }; a.prototype.getPosition = function (a,
                        b, c) {
                            var d = this.chart, e = this.distance, h = {}, f = d.inverted && c.h || 0, g = this.outside, p = g ? u.documentElement.clientWidth - 2 * e : d.chartWidth, k = g ? Math.max(u.body.scrollHeight, u.documentElement.scrollHeight, u.body.offsetHeight, u.documentElement.offsetHeight, u.documentElement.clientHeight) : d.chartHeight, l = d.pointer.getChartPosition(), t = function (h) {
                                var f = "x" === h; return [h, f ? p : k, f ? a : b].concat(g ? [f ? a * l.scaleX : b * l.scaleY, f ? l.left - e + (c.plotX + d.plotLeft) * l.scaleX : l.top - e + (c.plotY + d.plotTop) * l.scaleY, 0, f ? p : k] : [f ? a : b, f ?
                                    c.plotX + d.plotLeft : c.plotY + d.plotTop, f ? d.plotLeft : d.plotTop, f ? d.plotLeft + d.plotWidth : d.plotTop + d.plotHeight])
                            }, m = t("y"), q = t("x"), n, v = !this.followPointer && B(c.ttBelow, !d.inverted === !!c.negative), r = function (b, a, d, c, p, k, y) { var t = g ? "y" === b ? e * l.scaleY : e * l.scaleX : e, G = (d - c) / 2, A = c < p - e, m = p + e + c < a, F = p - t - d + G; p = p + t - G; if (v && m) h[b] = p; else if (!v && A) h[b] = F; else if (A) h[b] = Math.min(y - c, 0 > F - f ? F : F - f); else if (m) h[b] = Math.max(k, p + f + d > a ? p : p + f); else return !1 }, D = function (b, a, d, c, f) {
                                var g; f < e || f > a - e ? g = !1 : h[b] = f < d / 2 ? 1 : f > a - c /
                                    2 ? a - c - 2 : f - d / 2; return g
                            }, A = function (b) { var a = m; m = q; q = a; n = b }, U = function () { !1 !== r.apply(0, m) ? !1 !== D.apply(0, q) || n || (A(!0), U()) : n ? h.x = h.y = 0 : (A(!0), U()) }; (d.inverted || 1 < this.len) && A(); U(); return h
                    }; a.prototype.hide = function (a) { var b = this; x.clearTimeout(this.hideTimer); a = B(a, this.options.hideDelay); this.isHidden || (this.hideTimer = t(function () { b.getLabel().fadeOut(a ? void 0 : a); b.isHidden = !0 }, a)) }; a.prototype.init = function (a, b) {
                        this.chart = a; this.options = b; this.crosshairs = []; this.now = { x: 0, y: 0 }; this.isHidden =
                            !0; this.split = b.split && !a.inverted && !a.polar; this.shared = b.shared || this.split; this.outside = B(b.outside, !(!a.scrollablePixelsX && !a.scrollablePixelsY))
                    }; a.prototype.shouldStickOnContact = function () { return !(this.followPointer || !this.options.stickOnContact) }; a.prototype.isStickyOnContact = function () { return !(!this.shouldStickOnContact() || !this.inContact) }; a.prototype.move = function (a, b, c, e) {
                        var d = this, h = d.now, g = !1 !== d.options.animation && !d.isHidden && (1 < Math.abs(a - h.x) || 1 < Math.abs(b - h.y)), p = d.followPointer ||
                            1 < d.len; f(h, { x: g ? (2 * h.x + a) / 3 : a, y: g ? (h.y + b) / 2 : b, anchorX: p ? void 0 : g ? (2 * h.anchorX + c) / 3 : c, anchorY: p ? void 0 : g ? (h.anchorY + e) / 2 : e }); d.getLabel().attr(h); d.drawTracker(); g && (x.clearTimeout(this.tooltipTimeout), this.tooltipTimeout = setTimeout(function () { d && d.move(a, b, c, e) }, 32))
                    }; a.prototype.refresh = function (a, b) {
                        var d = this.chart, c = this.options, e = O(a), h = e[0], f = [], g = c.formatter || this.defaultFormatter, k = this.shared, l = d.styledMode, t = {}; if (c.enabled) {
                            x.clearTimeout(this.hideTimer); this.followPointer = !this.split &&
                                h.series.tooltipOptions.followPointer; var m = this.getAnchor(a, b), n = m[0], r = m[1]; !k || !q(a) && a.series && a.series.noSharedTooltip ? t = h.getLabelConfig() : (d.pointer.applyInactiveState(e), e.forEach(function (b) { b.setState("hover"); f.push(b.getLabelConfig()) }), t = { x: h.category, y: h.y }, t.points = f); this.len = f.length; a = g.call(t, this); g = h.series; this.distance = B(g.tooltipOptions.distance, 16); if (!1 === a) this.hide(); else {
                                    if (this.split) this.renderSplit(a, e); else if (e = n, k = r, b && d.pointer.isDirectTouch && (e = b.chartX - d.plotLeft,
                                        k = b.chartY - d.plotTop), d.polar || !1 === g.options.clip || g.shouldShowTooltip(e, k)) b = this.getLabel(), c.style.width && !l || b.css({ width: this.chart.spacingBox.width + "px" }), b.attr({ text: a && a.join ? a.join("") : a }), b.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-" + B(h.colorIndex, g.colorIndex)), l || b.attr({ stroke: c.borderColor || h.color || g.color || C.neutralColor60 }), this.updatePosition({ plotX: n, plotY: r, negative: h.negative, ttBelow: h.ttBelow, h: m[2] || 0 }); else { this.hide(); return } this.isHidden && this.label &&
                                            this.label.attr({ opacity: 1 }).show(); this.isHidden = !1
                                } v(this, "refresh")
                        }
                    }; a.prototype.renderSplit = function (a, b) {
                        function d(b, a, d, e, h) { void 0 === h && (h = !0); d ? (a = Y ? 0 : J, b = g(b - e / 2, N.left, N.right - e - (c.outside ? T : 0))) : (a -= da, b = h ? b - e - z : b + z, b = g(b, h ? b : N.left, N.right)); return { x: b, y: a } } var c = this, e = c.chart, h = c.chart, k = h.chartWidth, l = h.chartHeight, t = h.plotHeight, m = h.plotLeft, q = h.plotTop, r = h.pointer, v = h.scrollablePixelsY; v = void 0 === v ? 0 : v; var D = h.scrollablePixelsX, x = h.scrollingContainer; x = void 0 === x ? {
                            scrollLeft: 0,
                            scrollTop: 0
                        } : x; var w = x.scrollLeft; x = x.scrollTop; var O = h.styledMode, z = c.distance, A = c.options, U = c.options.positioner, N = c.outside && "number" !== typeof D ? u.documentElement.getBoundingClientRect() : { left: w, right: w + k, top: x, bottom: x + l }, W = c.getLabel(), X = this.renderer || e.renderer, Y = !(!e.xAxis[0] || !e.xAxis[0].opposite); e = r.getChartPosition(); var T = e.left; e = e.top; var da = q + x, E = 0, J = t - v; I(a) && (a = [!1, a]); a = a.slice(0, b.length + 1).reduce(function (a, e, h) {
                            if (!1 !== e && "" !== e) {
                                h = b[h - 1] || {
                                    isHeader: !0, plotX: b[0].plotX, plotY: t,
                                    series: {}
                                }; var f = h.isHeader, p = f ? c : h.series; e = e.toString(); var k = p.tt, l = h.isHeader; var y = h.series; var G = "highcharts-color-" + B(h.colorIndex, y.colorIndex, "none"); k || (k = { padding: A.padding, r: A.borderRadius }, O || (k.fill = A.backgroundColor, k["stroke-width"] = A.borderWidth), k = X.label("", 0, 0, A[l ? "headerShape" : "shape"], void 0, void 0, A.useHTML).addClass((l ? "highcharts-tooltip-header " : "") + "highcharts-tooltip-box " + G).attr(k).add(W)); k.isActive = !0; k.attr({ text: e }); O || k.css(A.style).shadow(A.shadow).attr({
                                    stroke: A.borderColor ||
                                        h.color || y.color || C.neutralColor80
                                }); p = p.tt = k; l = p.getBBox(); e = l.width + p.strokeWidth(); f && (E = l.height, J += E, Y && (da -= E)); y = h.plotX; y = void 0 === y ? 0 : y; G = h.plotY; G = void 0 === G ? 0 : G; k = h.series; if (h.isHeader) { y = m + y; var F = q + t / 2 } else { var n = k.xAxis, ca = k.yAxis; y = n.pos + g(y, -z, n.len + z); k.shouldShowTooltip(0, ca.pos - q + G, { ignoreX: !0 }) && (F = ca.pos + G) } y = g(y, N.left - z, N.right + z); "number" === typeof F ? (l = l.height + 1, G = U ? U.call(c, e, l, h) : d(y, F, f, e), a.push({
                                    align: U ? 0 : void 0, anchorX: y, anchorY: F, boxWidth: e, point: h, rank: B(G.rank, f ?
                                        1 : 0), size: l, target: G.y, tt: p, x: G.x
                                })) : p.isActive = !1
                            } return a
                        }, []); !U && a.some(function (b) { var a = (c.outside ? T : 0) + b.anchorX; return a < N.left && a + b.boxWidth < N.right ? !0 : a < T - N.left + b.boxWidth && N.right - a > a }) && (a = a.map(function (b) { var a = d(b.anchorX, b.anchorY, b.point.isHeader, b.boxWidth, !1); return f(b, { target: a.y, x: a.x }) })); c.cleanSplit(); n(a, J); var ba = T, ea = T; a.forEach(function (b) { var a = b.x, d = b.boxWidth; b = b.isHeader; b || (c.outside && T + a < ba && (ba = T + a), !b && c.outside && ba + d > ea && (ea = T + a)) }); a.forEach(function (b) {
                            var a =
                                b.x, d = b.anchorX, e = b.pos, h = b.point.isHeader; e = { visibility: "undefined" === typeof e ? "hidden" : "inherit", x: a, y: e + da, anchorX: d, anchorY: b.anchorY }; if (c.outside && a < d) { var f = T - ba; 0 < f && (h || (e.x = a + f, e.anchorX = d + f), h && (e.x = (ea - ba) / 2, e.anchorX = d + f)) } b.tt.attr(e)
                        }); a = c.container; v = c.renderer; c.outside && a && v && (h = W.getBBox(), v.setSize(h.width + h.x, h.height + h.y, !1), a.style.left = ba + "px", a.style.top = e + "px")
                    }; a.prototype.drawTracker = function () {
                        if (this.followPointer || !this.options.stickOnContact) this.tracker && this.tracker.destroy();
                        else {
                            var a = this.chart, b = this.label, c = this.shared ? a.hoverPoints : a.hoverPoint; if (b && c) {
                                var e = { x: 0, y: 0, width: 0, height: 0 }; c = this.getAnchor(c); var h = b.getBBox(); c[0] += a.plotLeft - b.translateX; c[1] += a.plotTop - b.translateY; e.x = Math.min(0, c[0]); e.y = Math.min(0, c[1]); e.width = 0 > c[0] ? Math.max(Math.abs(c[0]), h.width - c[0]) : Math.max(Math.abs(c[0]), h.width); e.height = 0 > c[1] ? Math.max(Math.abs(c[1]), h.height - Math.abs(c[1])) : Math.max(Math.abs(c[1]), h.height); this.tracker ? this.tracker.attr(e) : (this.tracker = b.renderer.rect(e).addClass("highcharts-tracker").add(b),
                                    a.styledMode || this.tracker.attr({ fill: "rgba(0,0,0,0)" }))
                            }
                        }
                    }; a.prototype.styledModeFormat = function (a) { return a.replace('style="font-size: 10px"', 'class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g, 'class="highcharts-color-{$1.colorIndex}"') }; a.prototype.tooltipFooterHeaderFormatter = function (a, b) {
                        var d = a.series, c = d.tooltipOptions, e = d.xAxis, h = e && e.dateTime; e = { isFooter: b, labelConfig: a }; var f = c.xDateFormat, g = c[b ? "footerFormat" : "headerFormat"]; v(this, "headerFormatter", e, function (b) {
                            h &&
                            !f && k(a.key) && (f = h.getXDateFormat(a.key, c.dateTimeLabelFormats)); h && f && (a.point && a.point.tooltipDateKeys || ["key"]).forEach(function (b) { g = g.replace("{point." + b + "}", "{point." + b + ":" + f + "}") }); d.chart.styledMode && (g = this.styledModeFormat(g)); b.text = r(g, { point: a, series: d }, this.chart)
                        }); return e.text
                    }; a.prototype.update = function (a) { this.destroy(); D(!0, this.chart.options.tooltip.userOptions, a); this.init(this.chart, D(!0, this.options, a)) }; a.prototype.updatePosition = function (a) {
                        var b = this.chart, d = this.options,
                        e = b.pointer, h = this.getLabel(); e = e.getChartPosition(); var f = (d.positioner || this.getPosition).call(this, h.width, h.height, a), g = a.plotX + b.plotLeft; a = a.plotY + b.plotTop; if (this.outside) { d = d.borderWidth + 2 * this.distance; this.renderer.setSize(h.width + d, h.height + d, !1); if (1 !== e.scaleX || 1 !== e.scaleY) c(this.container, { transform: "scale(" + e.scaleX + ", " + e.scaleY + ")" }), g *= e.scaleX, a *= e.scaleY; g += e.left - f.x; a += e.top - f.y } this.move(Math.round(f.x), Math.round(f.y || 0), g, a)
                    }; return a
                }(); ""; return a
            }); M(a, "Core/Series/Point.js",
                [a["Core/Renderer/HTML/AST.js"], a["Core/Animation/AnimationUtilities.js"], a["Core/DefaultOptions.js"], a["Core/FormatUtilities.js"], a["Core/Utilities.js"]], function (a, w, C, E, z) {
                    var r = w.animObject, J = C.defaultOptions, u = E.format, n = z.addEvent, m = z.defined, g = z.erase, c = z.extend, e = z.fireEvent, l = z.getNestedProperty, f = z.isArray, v = z.isFunction, q = z.isNumber, k = z.isObject, I = z.merge, D = z.objectEach, B = z.pick, O = z.syncTimeout, t = z.removeEvent, h = z.uniqueKey; w = function () {
                        function d() {
                            this.colorIndex = this.category = void 0;
                            this.formatPrefix = "point"; this.id = void 0; this.isNull = !1; this.percentage = this.options = this.name = void 0; this.selected = !1; this.total = this.series = void 0; this.visible = !0; this.x = void 0
                        } d.prototype.animateBeforeDestroy = function () {
                            var b = this, a = { x: b.startXPos, opacity: 0 }, d = b.getGraphicalProps(); d.singular.forEach(function (d) { b[d] = b[d].animate("dataLabel" === d ? { x: b[d].startXPos, y: b[d].startYPos, opacity: 0 } : a) }); d.plural.forEach(function (a) {
                                b[a].forEach(function (a) {
                                    a.element && a.animate(c({ x: b.startXPos }, a.startYPos ?
                                        { x: a.startXPos, y: a.startYPos } : {}))
                                })
                            })
                        }; d.prototype.applyOptions = function (b, a) {
                            var e = this.series, h = e.options.pointValKey || e.pointValKey; b = d.prototype.optionsToObject.call(this, b); c(this, b); this.options = this.options ? c(this.options, b) : b; b.group && delete this.group; b.dataLabels && delete this.dataLabels; h && (this.y = d.prototype.getNestedProperty.call(this, h)); this.formatPrefix = (this.isNull = B(this.isValid && !this.isValid(), null === this.x || !q(this.y))) ? "null" : "point"; this.selected && (this.state = "select"); "name" in
                                this && "undefined" === typeof a && e.xAxis && e.xAxis.hasNames && (this.x = e.xAxis.nameToX(this)); "undefined" === typeof this.x && e ? this.x = "undefined" === typeof a ? e.autoIncrement() : a : q(b.x) && e.options.relativeXValue && (this.x = e.autoIncrement(b.x)); return this
                        }; d.prototype.destroy = function () {
                            function b() { if (a.graphic || a.dataLabel || a.dataLabels) t(a), a.destroyElements(); for (f in a) a[f] = null } var a = this, d = a.series, c = d.chart; d = d.options.dataSorting; var e = c.hoverPoints, h = r(a.series.chart.renderer.globalAnimation), f; a.legendItem &&
                                c.legend.destroyItem(a); e && (a.setState(), g(e, a), e.length || (c.hoverPoints = null)); if (a === c.hoverPoint) a.onMouseOut(); d && d.enabled ? (this.animateBeforeDestroy(), O(b, h.duration)) : b(); c.pointCount--
                        }; d.prototype.destroyElements = function (b) { var a = this; b = a.getGraphicalProps(b); b.singular.forEach(function (b) { a[b] = a[b].destroy() }); b.plural.forEach(function (b) { a[b].forEach(function (b) { b.element && b.destroy() }); delete a[b] }) }; d.prototype.firePointEvent = function (b, a, d) {
                            var c = this, h = this.series.options; (h.point.events[b] ||
                                c.options && c.options.events && c.options.events[b]) && c.importEvents(); "click" === b && h.allowPointSelect && (d = function (b) { c.select && c.select(null, b.ctrlKey || b.metaKey || b.shiftKey) }); e(c, b, a, d)
                        }; d.prototype.getClassName = function () {
                            return "highcharts-point" + (this.selected ? " highcharts-point-select" : "") + (this.negative ? " highcharts-negative" : "") + (this.isNull ? " highcharts-null-point" : "") + ("undefined" !== typeof this.colorIndex ? " highcharts-color-" + this.colorIndex : "") + (this.options.className ? " " + this.options.className :
                                "") + (this.zone && this.zone.className ? " " + this.zone.className.replace("highcharts-negative", "") : "")
                        }; d.prototype.getGraphicalProps = function (b) { var a = this, d = [], c = { singular: [], plural: [] }, e; b = b || { graphic: 1, dataLabel: 1 }; b.graphic && d.push("graphic", "upperGraphic", "shadowGroup"); b.dataLabel && d.push("dataLabel", "dataLabelUpper", "connector"); for (e = d.length; e--;) { var h = d[e]; a[h] && c.singular.push(h) } ["dataLabel", "connector"].forEach(function (d) { var e = d + "s"; b[d] && a[e] && c.plural.push(e) }); return c }; d.prototype.getLabelConfig =
                            function () { return { x: this.category, y: this.y, color: this.color, colorIndex: this.colorIndex, key: this.name || this.category, series: this.series, point: this, percentage: this.percentage, total: this.total || this.stackTotal } }; d.prototype.getNestedProperty = function (b) { if (b) return 0 === b.indexOf("custom.") ? l(b, this.options) : this[b] }; d.prototype.getZone = function () {
                                var b = this.series, a = b.zones; b = b.zoneAxis || "y"; var d, c = 0; for (d = a[c]; this[b] >= d.value;)d = a[++c]; this.nonZonedColor || (this.nonZonedColor = this.color); this.color =
                                    d && d.color && !this.options.color ? d.color : this.nonZonedColor; return d
                            }; d.prototype.hasNewShapeType = function () { return (this.graphic && (this.graphic.symbolName || this.graphic.element.nodeName)) !== this.shapeType }; d.prototype.init = function (b, a, d) { this.series = b; this.applyOptions(a, d); this.id = m(this.id) ? this.id : h(); this.resolveColor(); b.chart.pointCount++; e(this, "afterInit"); return this }; d.prototype.optionsToObject = function (b) {
                                var a = this.series, c = a.options.keys, e = c || a.pointArrayMap || ["y"], h = e.length, g = {}, k =
                                    0, l = 0; if (q(b) || null === b) g[e[0]] = b; else if (f(b)) for (!c && b.length > h && (a = typeof b[0], "string" === a ? g.name = b[0] : "number" === a && (g.x = b[0]), k++); l < h;)c && "undefined" === typeof b[k] || (0 < e[l].indexOf(".") ? d.prototype.setNestedProperty(g, b[k], e[l]) : g[e[l]] = b[k]), k++, l++; else "object" === typeof b && (g = b, b.dataLabels && (a._hasPointLabels = !0), b.marker && (a._hasPointMarkers = !0)); return g
                            }; d.prototype.resolveColor = function () {
                                var b = this.series, a = b.chart.styledMode; var d = b.chart.options.chart.colorCount; delete this.nonZonedColor;
                                if (b.options.colorByPoint) { if (!a) { d = b.options.colors || b.chart.options.colors; var c = d[b.colorCounter]; d = d.length } a = b.colorCounter; b.colorCounter++; b.colorCounter === d && (b.colorCounter = 0) } else a || (c = b.color), a = b.colorIndex; this.colorIndex = B(this.options.colorIndex, a); this.color = B(this.options.color, c)
                            }; d.prototype.setNestedProperty = function (b, a, d) { d.split(".").reduce(function (b, d, c, e) { b[d] = e.length - 1 === c ? a : k(b[d], !0) ? b[d] : {}; return b[d] }, b); return b }; d.prototype.tooltipFormatter = function (b) {
                                var a = this.series,
                                d = a.tooltipOptions, c = B(d.valueDecimals, ""), e = d.valuePrefix || "", h = d.valueSuffix || ""; a.chart.styledMode && (b = a.chart.tooltip.styledModeFormat(b)); (a.pointArrayMap || ["y"]).forEach(function (a) { a = "{point." + a; if (e || h) b = b.replace(RegExp(a + "}", "g"), e + a + "}" + h); b = b.replace(RegExp(a + "}", "g"), a + ":,." + c + "f}") }); return u(b, { point: this, series: this.series }, a.chart)
                            }; d.prototype.update = function (b, a, d, c) {
                                function e() {
                                    h.applyOptions(b); var c = g && h.hasDummyGraphic; c = null === h.y ? !c : c; g && c && (h.graphic = g.destroy(), delete h.hasDummyGraphic);
                                    k(b, !0) && (g && g.element && b && b.marker && "undefined" !== typeof b.marker.symbol && (h.graphic = g.destroy()), b && b.dataLabels && h.dataLabel && (h.dataLabel = h.dataLabel.destroy()), h.connector && (h.connector = h.connector.destroy())); t = h.index; f.updateParallelArrays(h, t); l.data[t] = k(l.data[t], !0) || k(b, !0) ? h.options : B(b, l.data[t]); f.isDirty = f.isDirtyData = !0; !f.fixedBox && f.hasCartesianSeries && (p.isDirtyBox = !0); "point" === l.legendType && (p.isDirtyLegend = !0); a && p.redraw(d)
                                } var h = this, f = h.series, g = h.graphic, p = f.chart, l = f.options,
                                    t; a = B(a, !0); !1 === c ? e() : h.firePointEvent("update", { options: b }, e)
                            }; d.prototype.remove = function (b, a) { this.series.removePoint(this.series.data.indexOf(this), b, a) }; d.prototype.select = function (b, a) {
                                var d = this, c = d.series, e = c.chart; this.selectedStaging = b = B(b, !d.selected); d.firePointEvent(b ? "select" : "unselect", { accumulate: a }, function () {
                                    d.selected = d.options.selected = b; c.options.data[c.data.indexOf(d)] = d.options; d.setState(b && "select"); a || e.getSelectedPoints().forEach(function (b) {
                                        var a = b.series; b.selected &&
                                            b !== d && (b.selected = b.options.selected = !1, a.options.data[a.data.indexOf(b)] = b.options, b.setState(e.hoverPoints && a.options.inactiveOtherPoints ? "inactive" : ""), b.firePointEvent("unselect"))
                                    })
                                }); delete this.selectedStaging
                            }; d.prototype.onMouseOver = function (b) { var a = this.series.chart, d = a.pointer; b = b ? d.normalize(b) : d.getChartCoordinatesFromPoint(this, a.inverted); d.runPointActions(b, this) }; d.prototype.onMouseOut = function () {
                                var b = this.series.chart; this.firePointEvent("mouseOut"); this.series.options.inactiveOtherPoints ||
                                    (b.hoverPoints || []).forEach(function (b) { b.setState() }); b.hoverPoints = b.hoverPoint = null
                            }; d.prototype.importEvents = function () { if (!this.hasImportedEvents) { var b = this, a = I(b.series.options.point, b.options).events; b.events = a; D(a, function (a, d) { v(a) && n(b, d, a) }); this.hasImportedEvents = !0 } }; d.prototype.setState = function (b, d) {
                                var h = this.series, f = this.state, g = h.options.states[b || "normal"] || {}, k = J.plotOptions[h.type].marker && h.options.marker, p = k && !1 === k.enabled, l = k && k.states && k.states[b || "normal"] || {}, t = !1 ===
                                    l.enabled, m = this.marker || {}, n = h.chart, v = k && h.markerAttribs, r = h.halo, D, I = h.stateMarkerGraphic; b = b || ""; if (!(b === this.state && !d || this.selected && "select" !== b || !1 === g.enabled || b && (t || p && !1 === l.enabled) || b && m.states && m.states[b] && !1 === m.states[b].enabled)) {
                                        this.state = b; v && (D = h.markerAttribs(this, b)); if (this.graphic && !this.hasDummyGraphic) {
                                            f && this.graphic.removeClass("highcharts-point-" + f); b && this.graphic.addClass("highcharts-point-" + b); if (!n.styledMode) {
                                                var u = h.pointAttribs(this, b); var x = B(n.options.chart.animation,
                                                    g.animation); h.options.inactiveOtherPoints && q(u.opacity) && ((this.dataLabels || []).forEach(function (b) { b && b.animate({ opacity: u.opacity }, x) }), this.connector && this.connector.animate({ opacity: u.opacity }, x)); this.graphic.animate(u, x)
                                            } D && this.graphic.animate(D, B(n.options.chart.animation, l.animation, k.animation)); I && I.hide()
                                        } else {
                                            if (b && l) {
                                                f = m.symbol || h.symbol; I && I.currentSymbol !== f && (I = I.destroy()); if (D) if (I) I[d ? "animate" : "attr"]({ x: D.x, y: D.y }); else f && (h.stateMarkerGraphic = I = n.renderer.symbol(f, D.x, D.y,
                                                    D.width, D.height).add(h.markerGroup), I.currentSymbol = f); !n.styledMode && I && I.attr(h.pointAttribs(this, b))
                                            } I && (I[b && this.isInside ? "show" : "hide"](), I.element.point = this, I.addClass(this.getClassName(), !0))
                                        } g = g.halo; D = (I = this.graphic || I) && I.visibility || "inherit"; g && g.size && I && "hidden" !== D && !this.isCluster ? (r || (h.halo = r = n.renderer.path().add(I.parentGroup)), r.show()[d ? "animate" : "attr"]({ d: this.haloPath(g.size) }), r.attr({
                                            "class": "highcharts-halo highcharts-color-" + B(this.colorIndex, h.colorIndex) + (this.className ?
                                                " " + this.className : ""), visibility: D, zIndex: -1
                                        }), r.point = this, n.styledMode || r.attr(c({ fill: this.color || h.color, "fill-opacity": g.opacity }, a.filterUserAttributes(g.attributes || {})))) : r && r.point && r.point.haloPath && r.animate({ d: r.point.haloPath(0) }, null, r.hide); e(this, "afterSetState", { state: b })
                                    }
                            }; d.prototype.haloPath = function (b) { return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX) - b, this.plotY - b, 2 * b, 2 * b) }; return d
                    }(); ""; return w
                }); M(a, "Core/Pointer.js", [a["Core/Color/Color.js"], a["Core/Globals.js"],
                a["Core/Color/Palette.js"], a["Core/Tooltip.js"], a["Core/Utilities.js"]], function (a, w, C, E, z) {
                    var r = a.parse, J = w.charts, u = w.noop, n = z.addEvent, m = z.attr, g = z.css, c = z.defined, e = z.extend, l = z.find, f = z.fireEvent, v = z.isNumber, q = z.isObject, k = z.objectEach, I = z.offset, D = z.pick, B = z.splat; a = function () {
                        function a(a, c) { this.lastValidTouch = {}; this.pinchDown = []; this.runChartClick = !1; this.eventsToUnbind = []; this.chart = a; this.hasDragged = !1; this.options = c; this.init(a, c) } a.prototype.applyInactiveState = function (a) {
                            var c = [],
                            d; (a || []).forEach(function (b) { d = b.series; c.push(d); d.linkedParent && c.push(d.linkedParent); d.linkedSeries && (c = c.concat(d.linkedSeries)); d.navigatorSeries && c.push(d.navigatorSeries) }); this.chart.series.forEach(function (b) { -1 === c.indexOf(b) ? b.setState("inactive", !0) : b.options.inactiveOtherPoints && b.setAllPointsToState("inactive") })
                        }; a.prototype.destroy = function () {
                            var c = this; this.eventsToUnbind.forEach(function (a) { return a() }); this.eventsToUnbind = []; w.chartCount || (a.unbindDocumentMouseUp && (a.unbindDocumentMouseUp =
                                a.unbindDocumentMouseUp()), a.unbindDocumentTouchEnd && (a.unbindDocumentTouchEnd = a.unbindDocumentTouchEnd())); clearInterval(c.tooltipTimeout); k(c, function (a, d) { c[d] = void 0 })
                        }; a.prototype.drag = function (a) {
                            var c = this.chart, d = c.options.chart, b = this.zoomHor, e = this.zoomVert, f = c.plotLeft, g = c.plotTop, k = c.plotWidth, l = c.plotHeight, t = this.mouseDownX || 0, m = this.mouseDownY || 0, n = q(d.panning) ? d.panning && d.panning.enabled : d.panning, v = d.panKey && a[d.panKey + "Key"], B = a.chartX, D = a.chartY, I = this.selectionMarker; if (!I || !I.touch) if (B <
                                f ? B = f : B > f + k && (B = f + k), D < g ? D = g : D > g + l && (D = g + l), this.hasDragged = Math.sqrt(Math.pow(t - B, 2) + Math.pow(m - D, 2)), 10 < this.hasDragged) {
                                    var u = c.isInsidePlot(t - f, m - g, { visiblePlotOnly: !0 }); c.hasCartesianSeries && (this.zoomX || this.zoomY) && u && !v && !I && (this.selectionMarker = I = c.renderer.rect(f, g, b ? 1 : k, e ? 1 : l, 0).attr({ "class": "highcharts-selection-marker", zIndex: 7 }).add(), c.styledMode || I.attr({ fill: d.selectionMarkerFill || r(C.highlightColor80).setOpacity(.25).get() })); I && b && (b = B - t, I.attr({
                                        width: Math.abs(b), x: (0 < b ? 0 : b) +
                                            t
                                    })); I && e && (b = D - m, I.attr({ height: Math.abs(b), y: (0 < b ? 0 : b) + m })); u && !I && n && c.pan(a, d.panning)
                            }
                        }; a.prototype.dragStart = function (a) { var c = this.chart; c.mouseIsDown = a.type; c.cancelClick = !1; c.mouseDownX = this.mouseDownX = a.chartX; c.mouseDownY = this.mouseDownY = a.chartY }; a.prototype.drop = function (a) {
                            var h = this, d = this.chart, b = this.hasPinched; if (this.selectionMarker) {
                                var k = { originalEvent: a, xAxis: [], yAxis: [] }, l = this.selectionMarker, t = l.attr ? l.attr("x") : l.x, m = l.attr ? l.attr("y") : l.y, q = l.attr ? l.attr("width") : l.width,
                                n = l.attr ? l.attr("height") : l.height, r; if (this.hasDragged || b) d.axes.forEach(function (d) { if (d.zoomEnabled && c(d.min) && (b || h[{ xAxis: "zoomX", yAxis: "zoomY" }[d.coll]]) && v(t) && v(m)) { var e = d.horiz, f = "touchend" === a.type ? d.minPixelPadding : 0, g = d.toValue((e ? t : m) + f); e = d.toValue((e ? t + q : m + n) - f); k[d.coll].push({ axis: d, min: Math.min(g, e), max: Math.max(g, e) }); r = !0 } }), r && f(d, "selection", k, function (a) { d.zoom(e(a, b ? { animation: !1 } : null)) }); v(d.index) && (this.selectionMarker = this.selectionMarker.destroy()); b && this.scaleGroups()
                            } d &&
                                v(d.index) && (g(d.container, { cursor: d._cursor }), d.cancelClick = 10 < this.hasDragged, d.mouseIsDown = this.hasDragged = this.hasPinched = !1, this.pinchDown = [])
                        }; a.prototype.findNearestKDPoint = function (a, c, d) {
                            var b = this.chart, e = b.hoverPoint; b = b.tooltip; if (e && b && b.isStickyOnContact()) return e; var h; a.forEach(function (b) {
                                var a = !(b.noSharedTooltip && c) && 0 > b.options.findNearestPointBy.indexOf("y"); b = b.searchPoint(d, a); if ((a = q(b, !0) && b.series) && !(a = !q(h, !0))) {
                                    a = h.distX - b.distX; var e = h.dist - b.dist, f = (b.series.group &&
                                        b.series.group.zIndex) - (h.series.group && h.series.group.zIndex); a = 0 < (0 !== a && c ? a : 0 !== e ? e : 0 !== f ? f : h.series.index > b.series.index ? -1 : 1)
                                } a && (h = b)
                            }); return h
                        }; a.prototype.getChartCoordinatesFromPoint = function (a, c) { var d = a.series, b = d.xAxis; d = d.yAxis; var e = a.shapeArgs; if (b && d) { var h = D(a.clientX, a.plotX), f = a.plotY || 0; a.isNode && e && v(e.x) && v(e.y) && (h = e.x, f = e.y); return c ? { chartX: d.len + d.pos - f, chartY: b.len + b.pos - h } : { chartX: h + b.pos, chartY: f + d.pos } } if (e && e.x && e.y) return { chartX: e.x, chartY: e.y } }; a.prototype.getChartPosition =
                            function () { if (this.chartPosition) return this.chartPosition; var a = this.chart.container, c = I(a); this.chartPosition = { left: c.left, top: c.top, scaleX: 1, scaleY: 1 }; var d = a.offsetWidth; a = a.offsetHeight; 2 < d && 2 < a && (this.chartPosition.scaleX = c.width / d, this.chartPosition.scaleY = c.height / a); return this.chartPosition }; a.prototype.getCoordinates = function (a) { var c = { xAxis: [], yAxis: [] }; this.chart.axes.forEach(function (d) { c[d.isXAxis ? "xAxis" : "yAxis"].push({ axis: d, value: d.toValue(a[d.horiz ? "chartX" : "chartY"]) }) }); return c };
                        a.prototype.getHoverData = function (a, c, d, b, e, g) {
                            var h = []; b = !(!b || !a); var k = { chartX: g ? g.chartX : void 0, chartY: g ? g.chartY : void 0, shared: e }; f(this, "beforeGetHoverData", k); var p = c && !c.stickyTracking ? [c] : d.filter(function (b) { return k.filter ? k.filter(b) : b.visible && !(!e && b.directTouch) && D(b.options.enableMouseTracking, !0) && b.stickyTracking }); var t = b || !g ? a : this.findNearestKDPoint(p, e, g); c = t && t.series; t && (e && !c.noSharedTooltip ? (p = d.filter(function (b) {
                                return k.filter ? k.filter(b) : b.visible && !(!e && b.directTouch) &&
                                    D(b.options.enableMouseTracking, !0) && !b.noSharedTooltip
                            }), p.forEach(function (b) { var a = l(b.points, function (b) { return b.x === t.x && !b.isNull }); q(a) && (b.chart.isBoosting && (a = b.getPoint(a)), h.push(a)) })) : h.push(t)); k = { hoverPoint: t }; f(this, "afterGetHoverData", k); return { hoverPoint: k.hoverPoint, hoverSeries: c, hoverPoints: h }
                        }; a.prototype.getPointFromEvent = function (a) { a = a.target; for (var c; a && !c;)c = a.point, a = a.parentNode; return c }; a.prototype.onTrackerMouseOut = function (a) {
                            a = a.relatedTarget || a.toElement; var c =
                                this.chart.hoverSeries; this.isDirectTouch = !1; if (!(!c || !a || c.stickyTracking || this.inClass(a, "highcharts-tooltip") || this.inClass(a, "highcharts-series-" + c.index) && this.inClass(a, "highcharts-tracker"))) c.onMouseOut()
                        }; a.prototype.inClass = function (a, c) { for (var d; a;) { if (d = m(a, "class")) { if (-1 !== d.indexOf(c)) return !0; if (-1 !== d.indexOf("highcharts-container")) return !1 } a = a.parentNode } }; a.prototype.init = function (a, c) {
                            this.options = c; this.chart = a; this.runChartClick = !(!c.chart.events || !c.chart.events.click); this.pinchDown =
                                []; this.lastValidTouch = {}; E && (a.tooltip = new E(a, c.tooltip), this.followTouchMove = D(c.tooltip.followTouchMove, !0)); this.setDOMEvents()
                        }; a.prototype.normalize = function (a, c) { var d = a.touches, b = d ? d.length ? d.item(0) : D(d.changedTouches, a.changedTouches)[0] : a; c || (c = this.getChartPosition()); d = b.pageX - c.left; b = b.pageY - c.top; d /= c.scaleX; b /= c.scaleY; return e(a, { chartX: Math.round(d), chartY: Math.round(b) }) }; a.prototype.onContainerClick = function (a) {
                            var c = this.chart, d = c.hoverPoint; a = this.normalize(a); var b = c.plotLeft,
                                g = c.plotTop; c.cancelClick || (d && this.inClass(a.target, "highcharts-tracker") ? (f(d.series, "click", e(a, { point: d })), c.hoverPoint && d.firePointEvent("click", a)) : (e(a, this.getCoordinates(a)), c.isInsidePlot(a.chartX - b, a.chartY - g, { visiblePlotOnly: !0 }) && f(c, "click", a)))
                        }; a.prototype.onContainerMouseDown = function (a) {
                            var c = 1 === ((a.buttons || a.button) & 1); a = this.normalize(a); if (w.isFirefox && 0 !== a.button) this.onContainerMouseMove(a); if ("undefined" === typeof a.button || c) this.zoomOption(a), c && a.preventDefault && a.preventDefault(),
                                this.dragStart(a)
                        }; a.prototype.onContainerMouseLeave = function (c) { var e = J[D(a.hoverChartIndex, -1)], d = this.chart.tooltip; d && d.shouldStickOnContact() && this.inClass(c.relatedTarget, "highcharts-tooltip-container") || (c = this.normalize(c), e && (c.relatedTarget || c.toElement) && (e.pointer.reset(), e.pointer.chartPosition = void 0), d && !d.isHidden && this.reset()) }; a.prototype.onContainerMouseEnter = function (a) { delete this.chartPosition }; a.prototype.onContainerMouseMove = function (a) {
                            var c = this.chart; a = this.normalize(a);
                            this.setHoverChartIndex(); a.preventDefault || (a.returnValue = !1); ("mousedown" === c.mouseIsDown || this.touchSelect(a)) && this.drag(a); c.openMenu || !this.inClass(a.target, "highcharts-tracker") && !c.isInsidePlot(a.chartX - c.plotLeft, a.chartY - c.plotTop, { visiblePlotOnly: !0 }) || (this.inClass(a.target, "highcharts-no-tooltip") ? this.reset(!1, 0) : this.runPointActions(a))
                        }; a.prototype.onDocumentTouchEnd = function (c) { var e = J[D(a.hoverChartIndex, -1)]; e && e.pointer.drop(c) }; a.prototype.onContainerTouchMove = function (a) {
                            if (this.touchSelect(a)) this.onContainerMouseMove(a);
                            else this.touch(a)
                        }; a.prototype.onContainerTouchStart = function (a) { if (this.touchSelect(a)) this.onContainerMouseDown(a); else this.zoomOption(a), this.touch(a, !0) }; a.prototype.onDocumentMouseMove = function (a) { var c = this.chart, d = this.chartPosition; a = this.normalize(a, d); var b = c.tooltip; !d || b && b.isStickyOnContact() || c.isInsidePlot(a.chartX - c.plotLeft, a.chartY - c.plotTop, { visiblePlotOnly: !0 }) || this.inClass(a.target, "highcharts-tracker") || this.reset() }; a.prototype.onDocumentMouseUp = function (c) {
                            var e = J[D(a.hoverChartIndex,
                                -1)]; e && e.pointer.drop(c)
                        }; a.prototype.pinch = function (a) {
                            var c = this, d = c.chart, b = c.pinchDown, f = a.touches || [], g = f.length, k = c.lastValidTouch, l = c.hasZoom, m = {}, t = 1 === g && (c.inClass(a.target, "highcharts-tracker") && d.runTrackerClick || c.runChartClick), q = {}, n = c.selectionMarker; 1 < g ? c.initiated = !0 : 1 === g && this.followTouchMove && (c.initiated = !1); l && c.initiated && !t && !1 !== a.cancelable && a.preventDefault();[].map.call(f, function (b) { return c.normalize(b) }); "touchstart" === a.type ? ([].forEach.call(f, function (a, d) {
                                b[d] =
                                { chartX: a.chartX, chartY: a.chartY }
                            }), k.x = [b[0].chartX, b[1] && b[1].chartX], k.y = [b[0].chartY, b[1] && b[1].chartY], d.axes.forEach(function (b) { if (b.zoomEnabled) { var a = d.bounds[b.horiz ? "h" : "v"], c = b.minPixelPadding, e = b.toPixels(Math.min(D(b.options.min, b.dataMin), b.dataMin)), h = b.toPixels(Math.max(D(b.options.max, b.dataMax), b.dataMax)), f = Math.max(e, h); a.min = Math.min(b.pos, Math.min(e, h) - c); a.max = Math.max(b.pos + b.len, f + c) } }), c.res = !0) : c.followTouchMove && 1 === g ? this.runPointActions(c.normalize(a)) : b.length && (n ||
                                (c.selectionMarker = n = e({ destroy: u, touch: !0 }, d.plotBox)), c.pinchTranslate(b, f, m, n, q, k), c.hasPinched = l, c.scaleGroups(m, q), c.res && (c.res = !1, this.reset(!1, 0)))
                        }; a.prototype.pinchTranslate = function (a, c, d, b, e, f) { this.zoomHor && this.pinchTranslateDirection(!0, a, c, d, b, e, f); this.zoomVert && this.pinchTranslateDirection(!1, a, c, d, b, e, f) }; a.prototype.pinchTranslateDirection = function (a, c, d, b, e, f, g, k) {
                            var h = this.chart, l = a ? "x" : "y", p = a ? "X" : "Y", m = "chart" + p, y = a ? "width" : "height", t = h["plot" + (a ? "Left" : "Top")], q = h.inverted,
                            n = h.bounds[a ? "h" : "v"], r = 1 === c.length, v = c[0][m], B = !r && c[1][m]; c = function () { "number" === typeof I && 20 < Math.abs(v - B) && (D = k || Math.abs(N - I) / Math.abs(v - B)); A = (t - N) / D + v; G = h["plot" + (a ? "Width" : "Height")] / D }; var G, A, D = k || 1, N = d[0][m], I = !r && d[1][m]; c(); d = A; if (d < n.min) { d = n.min; var L = !0 } else d + G > n.max && (d = n.max - G, L = !0); L ? (N -= .8 * (N - g[l][0]), "number" === typeof I && (I -= .8 * (I - g[l][1])), c()) : g[l] = [N, I]; q || (f[l] = A - t, f[y] = G); f = q ? 1 / D : D; e[y] = G; e[l] = d; b[q ? a ? "scaleY" : "scaleX" : "scale" + p] = D; b["translate" + p] = f * t + (N - f * v)
                        }; a.prototype.reset =
                            function (a, c) {
                                var d = this.chart, b = d.hoverSeries, e = d.hoverPoint, h = d.hoverPoints, f = d.tooltip, g = f && f.shared ? h : e; a && g && B(g).forEach(function (b) { b.series.isCartesian && "undefined" === typeof b.plotX && (a = !1) }); if (a) f && g && B(g).length && (f.refresh(g), f.shared && h ? h.forEach(function (b) { b.setState(b.state, !0); b.series.isCartesian && (b.series.xAxis.crosshair && b.series.xAxis.drawCrosshair(null, b), b.series.yAxis.crosshair && b.series.yAxis.drawCrosshair(null, b)) }) : e && (e.setState(e.state, !0), d.axes.forEach(function (b) {
                                    b.crosshair &&
                                    e.series[b.coll] === b && b.drawCrosshair(null, e)
                                }))); else { if (e) e.onMouseOut(); h && h.forEach(function (b) { b.setState() }); if (b) b.onMouseOut(); f && f.hide(c); this.unDocMouseMove && (this.unDocMouseMove = this.unDocMouseMove()); d.axes.forEach(function (b) { b.hideCrosshair() }); this.hoverX = d.hoverPoints = d.hoverPoint = null }
                            }; a.prototype.runPointActions = function (c, e) {
                                var d = this.chart, b = d.tooltip && d.tooltip.options.enabled ? d.tooltip : void 0, h = b ? b.shared : !1, f = e || d.hoverPoint, g = f && f.series || d.hoverSeries; e = this.getHoverData(f,
                                    g, d.series, (!c || "touchmove" !== c.type) && (!!e || g && g.directTouch && this.isDirectTouch), h, c); f = e.hoverPoint; g = e.hoverSeries; var k = e.hoverPoints; e = g && g.tooltipOptions.followPointer && !g.tooltipOptions.split; h = h && g && !g.noSharedTooltip; if (f && (f !== d.hoverPoint || b && b.isHidden)) {
                                        (d.hoverPoints || []).forEach(function (b) { -1 === k.indexOf(b) && b.setState() }); if (d.hoverSeries !== g) g.onMouseOver(); this.applyInactiveState(k); (k || []).forEach(function (b) { b.setState("hover") }); d.hoverPoint && d.hoverPoint.firePointEvent("mouseOut");
                                        if (!f.series) return; d.hoverPoints = k; d.hoverPoint = f; f.firePointEvent("mouseOver"); b && b.refresh(h ? k : f, c)
                                    } else e && b && !b.isHidden && (f = b.getAnchor([{}], c), d.isInsidePlot(f[0], f[1], { visiblePlotOnly: !0 }) && b.updatePosition({ plotX: f[0], plotY: f[1] })); this.unDocMouseMove || (this.unDocMouseMove = n(d.container.ownerDocument, "mousemove", function (b) { var d = J[a.hoverChartIndex]; if (d) d.pointer.onDocumentMouseMove(b) }), this.eventsToUnbind.push(this.unDocMouseMove)); d.axes.forEach(function (b) {
                                        var a = D((b.crosshair || {}).snap,
                                            !0), e; a && ((e = d.hoverPoint) && e.series[b.coll] === b || (e = l(k, function (a) { return a.series[b.coll] === b }))); e || !a ? b.drawCrosshair(c, e) : b.hideCrosshair()
                                    })
                            }; a.prototype.scaleGroups = function (a, c) { var d = this.chart; d.series.forEach(function (b) { var e = a || b.getPlotBox(); b.xAxis && b.xAxis.zoomEnabled && b.group && (b.group.attr(e), b.markerGroup && (b.markerGroup.attr(e), b.markerGroup.clip(c ? d.clipRect : null)), b.dataLabelsGroup && b.dataLabelsGroup.attr(e)) }); d.clipRect.attr(c || d.clipBox) }; a.prototype.setDOMEvents = function () {
                                var c =
                                    this, e = this.chart.container, d = e.ownerDocument; e.onmousedown = this.onContainerMouseDown.bind(this); e.onmousemove = this.onContainerMouseMove.bind(this); e.onclick = this.onContainerClick.bind(this); this.eventsToUnbind.push(n(e, "mouseenter", this.onContainerMouseEnter.bind(this))); this.eventsToUnbind.push(n(e, "mouseleave", this.onContainerMouseLeave.bind(this))); a.unbindDocumentMouseUp || (a.unbindDocumentMouseUp = n(d, "mouseup", this.onDocumentMouseUp.bind(this))); for (var b = this.chart.renderTo.parentElement; b &&
                                        "BODY" !== b.tagName;)this.eventsToUnbind.push(n(b, "scroll", function () { delete c.chartPosition })), b = b.parentElement; w.hasTouch && (this.eventsToUnbind.push(n(e, "touchstart", this.onContainerTouchStart.bind(this), { passive: !1 })), this.eventsToUnbind.push(n(e, "touchmove", this.onContainerTouchMove.bind(this), { passive: !1 })), a.unbindDocumentTouchEnd || (a.unbindDocumentTouchEnd = n(d, "touchend", this.onDocumentTouchEnd.bind(this), { passive: !1 })))
                            }; a.prototype.setHoverChartIndex = function () {
                                var c = this.chart, e = w.charts[D(a.hoverChartIndex,
                                    -1)]; if (e && e !== c) e.pointer.onContainerMouseLeave({ relatedTarget: !0 }); e && e.mouseIsDown || (a.hoverChartIndex = c.index)
                            }; a.prototype.touch = function (a, c) {
                                var d = this.chart, b; this.setHoverChartIndex(); if (1 === a.touches.length) if (a = this.normalize(a), (b = d.isInsidePlot(a.chartX - d.plotLeft, a.chartY - d.plotTop, { visiblePlotOnly: !0 })) && !d.openMenu) {
                                    c && this.runPointActions(a); if ("touchmove" === a.type) { c = this.pinchDown; var e = c[0] ? 4 <= Math.sqrt(Math.pow(c[0].chartX - a.chartX, 2) + Math.pow(c[0].chartY - a.chartY, 2)) : !1 } D(e,
                                        !0) && this.pinch(a)
                                } else c && this.reset(); else 2 === a.touches.length && this.pinch(a)
                            }; a.prototype.touchSelect = function (a) { return !(!this.chart.options.chart.zoomBySingleTouch || !a.touches || 1 !== a.touches.length) }; a.prototype.zoomOption = function (a) { var c = this.chart, d = c.options.chart; c = c.inverted; var b = d.zoomType || ""; /touch/.test(a.type) && (b = D(d.pinchType, b)); this.zoomX = a = /x/.test(b); this.zoomY = d = /y/.test(b); this.zoomHor = a && !c || d && c; this.zoomVert = d && !c || a && c; this.hasZoom = a || d }; return a
                    }(); ""; return a
                }); M(a,
                    "Core/MSPointer.js", [a["Core/Globals.js"], a["Core/Pointer.js"], a["Core/Utilities.js"]], function (a, w, C) {
                        function r() { var a = []; a.item = function (a) { return this[a] }; e(f, function (c) { a.push({ pageX: c.pageX, pageY: c.pageY, target: c.target }) }); return a } function z(a, c, e, f) { var g = J[w.hoverChartIndex || NaN]; "touch" !== a.pointerType && a.pointerType !== a.MSPOINTER_TYPE_TOUCH || !g || (g = g.pointer, f(a), g[c]({ type: e, target: a.currentTarget, preventDefault: n, touches: r() })) } var x = this && this.__extends || function () {
                            var a = function (c,
                                e) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var e in c) c.hasOwnProperty(e) && (a[e] = c[e]) }; return a(c, e) }; return function (c, e) { function f() { this.constructor = c } a(c, e); c.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f) }
                        }(), J = a.charts, u = a.doc, n = a.noop, m = a.win, g = C.addEvent, c = C.css, e = C.objectEach, l = C.removeEvent, f = {}, v = !!m.PointerEvent; return function (e) {
                            function k() { return null !== e && e.apply(this, arguments) || this } x(k, e); k.isRequired =
                                function () { return !(a.hasTouch || !m.PointerEvent && !m.MSPointerEvent) }; k.prototype.batchMSEvents = function (a) { a(this.chart.container, v ? "pointerdown" : "MSPointerDown", this.onContainerPointerDown); a(this.chart.container, v ? "pointermove" : "MSPointerMove", this.onContainerPointerMove); a(u, v ? "pointerup" : "MSPointerUp", this.onDocumentPointerUp) }; k.prototype.destroy = function () { this.batchMSEvents(l); e.prototype.destroy.call(this) }; k.prototype.init = function (a, f) {
                                    e.prototype.init.call(this, a, f); this.hasZoom && c(a.container,
                                        { "-ms-touch-action": "none", "touch-action": "none" })
                                }; k.prototype.onContainerPointerDown = function (a) { z(a, "onContainerTouchStart", "touchstart", function (a) { f[a.pointerId] = { pageX: a.pageX, pageY: a.pageY, target: a.currentTarget } }) }; k.prototype.onContainerPointerMove = function (a) { z(a, "onContainerTouchMove", "touchmove", function (a) { f[a.pointerId] = { pageX: a.pageX, pageY: a.pageY }; f[a.pointerId].target || (f[a.pointerId].target = a.currentTarget) }) }; k.prototype.onDocumentPointerUp = function (a) {
                                    z(a, "onDocumentTouchEnd",
                                        "touchend", function (a) { delete f[a.pointerId] })
                                }; k.prototype.setDOMEvents = function () { e.prototype.setDOMEvents.call(this); (this.hasZoom || this.followTouchMove) && this.batchMSEvents(g) }; return k
                        }(w)
                    }); M(a, "Core/Legend/Legend.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/FormatUtilities.js"], a["Core/Globals.js"], a["Core/Series/Point.js"], a["Core/Renderer/RendererUtilities.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x) {
                        var r = a.animObject, u = a.setAnimation, n = w.format; a = C.isFirefox; var m = C.marginNames;
                        C = C.win; var g = z.distribute, c = x.addEvent, e = x.createElement, l = x.css, f = x.defined, v = x.discardElement, q = x.find, k = x.fireEvent, I = x.isNumber, D = x.merge, B = x.pick, O = x.relativeLength, t = x.stableSort, h = x.syncTimeout; z = x.wrap; x = function () {
                            function a(a, d) {
                                this.allItems = []; this.contentGroup = this.box = void 0; this.display = !1; this.group = void 0; this.offsetWidth = this.maxLegendWidth = this.maxItemWidth = this.legendWidth = this.legendHeight = this.lastLineHeight = this.lastItemY = this.itemY = this.itemX = this.itemMarginTop = this.itemMarginBottom =
                                    this.itemHeight = this.initialItemY = 0; this.options = {}; this.padding = 0; this.pages = []; this.proximate = !1; this.scrollGroup = void 0; this.widthOption = this.totalItemWidth = this.titleHeight = this.symbolWidth = this.symbolHeight = 0; this.chart = a; this.init(a, d)
                            } a.prototype.init = function (a, d) {
                                this.chart = a; this.setOptions(d); d.enabled && (this.render(), c(this.chart, "endResize", function () { this.legend.positionCheckboxes() }), this.proximate ? this.unchartrender = c(this.chart, "render", function () {
                                    this.legend.proximatePositions();
                                    this.legend.positionItems()
                                }) : this.unchartrender && this.unchartrender())
                            }; a.prototype.setOptions = function (a) { var b = B(a.padding, 8); this.options = a; this.chart.styledMode || (this.itemStyle = a.itemStyle, this.itemHiddenStyle = D(this.itemStyle, a.itemHiddenStyle)); this.itemMarginTop = a.itemMarginTop || 0; this.itemMarginBottom = a.itemMarginBottom || 0; this.padding = b; this.initialItemY = b - 5; this.symbolWidth = B(a.symbolWidth, 16); this.pages = []; this.proximate = "proximate" === a.layout && !this.chart.inverted; this.baseline = void 0 };
                            a.prototype.update = function (a, d) { var b = this.chart; this.setOptions(D(!0, this.options, a)); this.destroy(); b.isDirtyLegend = b.isDirtyBox = !0; B(d, !0) && b.redraw(); k(this, "afterUpdate") }; a.prototype.colorizeItem = function (a, d) {
                                a.legendGroup[d ? "removeClass" : "addClass"]("highcharts-legend-item-hidden"); if (!this.chart.styledMode) {
                                    var b = this.options, c = a.legendItem, e = a.legendLine, h = a.legendSymbol, f = this.itemHiddenStyle.color; b = d ? b.itemStyle.color : f; var g = d ? a.color || f : f, l = a.options && a.options.marker, p = { fill: g }; c &&
                                        c.css({ fill: b, color: b }); e && e.attr({ stroke: g }); h && (l && h.isMarker && (p = a.pointAttribs(), d || (p.stroke = p.fill = f)), h.attr(p))
                                } k(this, "afterColorizeItem", { item: a, visible: d })
                            }; a.prototype.positionItems = function () { this.allItems.forEach(this.positionItem, this); this.chart.isResizing || this.positionCheckboxes() }; a.prototype.positionItem = function (a) {
                                var b = this, d = this.options, c = d.symbolPadding, e = !d.rtl, h = a._legendItemPos; d = h[0]; h = h[1]; var g = a.checkbox, l = a.legendGroup; l && l.element && (c = {
                                    translateX: e ? d : this.legendWidth -
                                        d - 2 * c - 4, translateY: h
                                }, e = function () { k(b, "afterPositionItem", { item: a }) }, f(l.translateY) ? l.animate(c, void 0, e) : (l.attr(c), e())); g && (g.x = d, g.y = h)
                            }; a.prototype.destroyItem = function (a) { var b = a.checkbox;["legendItem", "legendLine", "legendSymbol", "legendGroup"].forEach(function (b) { a[b] && (a[b] = a[b].destroy()) }); b && v(a.checkbox) }; a.prototype.destroy = function () {
                                function a(a) { this[a] && (this[a] = this[a].destroy()) } this.getAllItems().forEach(function (b) { ["legendItem", "legendGroup"].forEach(a, b) }); "clipRect up down pager nav box title group".split(" ").forEach(a,
                                    this); this.display = null
                            }; a.prototype.positionCheckboxes = function () { var a = this.group && this.group.alignAttr, d = this.clipHeight || this.legendHeight, c = this.titleHeight; if (a) { var e = a.translateY; this.allItems.forEach(function (b) { var h = b.checkbox; if (h) { var f = e + c + h.y + (this.scrollOffset || 0) + 3; l(h, { left: a.translateX + b.checkboxOffset + h.x - 20 + "px", top: f + "px", display: this.proximate || f > e - 6 && f < e + d - 6 ? "" : "none" }) } }, this) } }; a.prototype.renderTitle = function () {
                                var a = this.options, d = this.padding, c = a.title, e = 0; c.text && (this.title ||
                                    (this.title = this.chart.renderer.label(c.text, d - 3, d - 4, null, null, null, a.useHTML, null, "legend-title").attr({ zIndex: 1 }), this.chart.styledMode || this.title.css(c.style), this.title.add(this.group)), c.width || this.title.css({ width: this.maxLegendWidth + "px" }), a = this.title.getBBox(), e = a.height, this.offsetWidth = a.width, this.contentGroup.attr({ translateY: e })); this.titleHeight = e
                            }; a.prototype.setText = function (a) { var b = this.options; a.legendItem.attr({ text: b.labelFormat ? n(b.labelFormat, a, this.chart) : b.labelFormatter.call(a) }) };
                            a.prototype.renderItem = function (a) {
                                var b = this.chart, d = b.renderer, c = this.options, e = this.symbolWidth, h = c.symbolPadding || 0, f = this.itemStyle, g = this.itemHiddenStyle, k = "horizontal" === c.layout ? B(c.itemDistance, 20) : 0, l = !c.rtl, m = !a.series, n = !m && a.series.drawLegendSymbol ? a.series : a, q = n.options, t = this.createCheckboxForItem && q && q.showCheckbox, v = c.useHTML, r = a.options.className, I = a.legendItem; q = e + h + k + (t ? 20 : 0); I || (a.legendGroup = d.g("legend-item").addClass("highcharts-" + n.type + "-series highcharts-color-" + a.colorIndex +
                                    (r ? " " + r : "") + (m ? " highcharts-series-" + a.index : "")).attr({ zIndex: 1 }).add(this.scrollGroup), a.legendItem = I = d.text("", l ? e + h : -h, this.baseline || 0, v), b.styledMode || I.css(D(a.visible ? f : g)), I.attr({ align: l ? "left" : "right", zIndex: 2 }).add(a.legendGroup), this.baseline || (this.fontMetrics = d.fontMetrics(b.styledMode ? 12 : f.fontSize, I), this.baseline = this.fontMetrics.f + 3 + this.itemMarginTop, I.attr("y", this.baseline), this.symbolHeight = c.symbolHeight || this.fontMetrics.f, c.squareSymbol && (this.symbolWidth = B(c.symbolWidth,
                                        Math.max(this.symbolHeight, 16)), q = this.symbolWidth + h + k + (t ? 20 : 0), l && I.attr("x", this.symbolWidth + h))), n.drawLegendSymbol(this, a), this.setItemEvents && this.setItemEvents(a, I, v)); t && !a.checkbox && this.createCheckboxForItem && this.createCheckboxForItem(a); this.colorizeItem(a, a.visible); !b.styledMode && f.width || I.css({ width: (c.itemWidth || this.widthOption || b.spacingBox.width) - q + "px" }); this.setText(a); b = I.getBBox(); a.itemWidth = a.checkboxOffset = c.itemWidth || a.legendItemWidth || b.width + q; this.maxItemWidth = Math.max(this.maxItemWidth,
                                            a.itemWidth); this.totalItemWidth += a.itemWidth; this.itemHeight = a.itemHeight = Math.round(a.legendItemHeight || b.height || this.symbolHeight)
                            }; a.prototype.layoutItem = function (a) {
                                var b = this.options, d = this.padding, c = "horizontal" === b.layout, e = a.itemHeight, h = this.itemMarginBottom, f = this.itemMarginTop, g = c ? B(b.itemDistance, 20) : 0, k = this.maxLegendWidth; b = b.alignColumns && this.totalItemWidth > k ? this.maxItemWidth : a.itemWidth; c && this.itemX - d + b > k && (this.itemX = d, this.lastLineHeight && (this.itemY += f + this.lastLineHeight +
                                    h), this.lastLineHeight = 0); this.lastItemY = f + this.itemY + h; this.lastLineHeight = Math.max(e, this.lastLineHeight); a._legendItemPos = [this.itemX, this.itemY]; c ? this.itemX += b : (this.itemY += f + e + h, this.lastLineHeight = e); this.offsetWidth = this.widthOption || Math.max((c ? this.itemX - d - (a.checkbox ? 0 : g) : b) + d, this.offsetWidth)
                            }; a.prototype.getAllItems = function () {
                                var a = []; this.chart.series.forEach(function (b) {
                                    var d = b && b.options; b && B(d.showInLegend, f(d.linkedTo) ? !1 : void 0, !0) && (a = a.concat(b.legendItems || ("point" === d.legendType ?
                                        b.data : b)))
                                }); k(this, "afterGetAllItems", { allItems: a }); return a
                            }; a.prototype.getAlignment = function () { var a = this.options; return this.proximate ? a.align.charAt(0) + "tv" : a.floating ? "" : a.align.charAt(0) + a.verticalAlign.charAt(0) + a.layout.charAt(0) }; a.prototype.adjustMargins = function (a, d) {
                                var b = this.chart, c = this.options, e = this.getAlignment(); e && [/(lth|ct|rth)/, /(rtv|rm|rbv)/, /(rbh|cb|lbh)/, /(lbv|lm|ltv)/].forEach(function (h, g) {
                                    h.test(e) && !f(a[g]) && (b[m[g]] = Math.max(b[m[g]], b.legend[(g + 1) % 2 ? "legendHeight" :
                                        "legendWidth"] + [1, -1, -1, 1][g] * c[g % 2 ? "x" : "y"] + B(c.margin, 12) + d[g] + (b.titleOffset[g] || 0)))
                                })
                            }; a.prototype.proximatePositions = function () {
                                var a = this.chart, d = [], c = "left" === this.options.align; this.allItems.forEach(function (b) {
                                    var e; var h = c; if (b.yAxis) {
                                        b.xAxis.options.reversed && (h = !h); b.points && (e = q(h ? b.points : b.points.slice(0).reverse(), function (a) { return I(a.plotY) })); h = this.itemMarginTop + b.legendItem.getBBox().height + this.itemMarginBottom; var f = b.yAxis.top - a.plotTop; b.visible ? (e = e ? e.plotY : b.yAxis.height,
                                            e += f - .3 * h) : e = f + b.yAxis.height; d.push({ target: e, size: h, item: b })
                                    }
                                }, this); g(d, a.plotHeight).forEach(function (b) { b.item._legendItemPos && (b.item._legendItemPos[1] = a.plotTop - a.spacing[0] + b.pos) })
                            }; a.prototype.render = function () {
                                var a = this.chart, d = a.renderer, c = this.options, e = this.padding, h = this.getAllItems(), f = this.group, g = this.box; this.itemX = e; this.itemY = this.initialItemY; this.lastItemY = this.offsetWidth = 0; this.widthOption = O(c.width, a.spacingBox.width - e); var l = a.spacingBox.width - 2 * e - c.x; -1 < ["rm", "lm"].indexOf(this.getAlignment().substring(0,
                                    2)) && (l /= 2); this.maxLegendWidth = this.widthOption || l; f || (this.group = f = d.g("legend").addClass(c.className || "").attr({ zIndex: 7 }).add(), this.contentGroup = d.g().attr({ zIndex: 1 }).add(f), this.scrollGroup = d.g().add(this.contentGroup)); this.renderTitle(); t(h, function (a, b) { return (a.options && a.options.legendIndex || 0) - (b.options && b.options.legendIndex || 0) }); c.reversed && h.reverse(); this.allItems = h; this.display = l = !!h.length; this.itemHeight = this.totalItemWidth = this.maxItemWidth = this.lastLineHeight = 0; h.forEach(this.renderItem,
                                        this); h.forEach(this.layoutItem, this); h = (this.widthOption || this.offsetWidth) + e; var m = this.lastItemY + this.lastLineHeight + this.titleHeight; m = this.handleOverflow(m); m += e; g || (this.box = g = d.rect().addClass("highcharts-legend-box").attr({ r: c.borderRadius }).add(f), g.isNew = !0); a.styledMode || g.attr({ stroke: c.borderColor, "stroke-width": c.borderWidth || 0, fill: c.backgroundColor || "none" }).shadow(c.shadow); 0 < h && 0 < m && (g[g.isNew ? "attr" : "animate"](g.crisp.call({}, { x: 0, y: 0, width: h, height: m }, g.strokeWidth())), g.isNew =
                                            !1); g[l ? "show" : "hide"](); a.styledMode && "none" === f.getStyle("display") && (h = m = 0); this.legendWidth = h; this.legendHeight = m; l && this.align(); this.proximate || this.positionItems(); k(this, "afterRender")
                            }; a.prototype.align = function (a) {
                                void 0 === a && (a = this.chart.spacingBox); var b = this.chart, d = this.options, c = a.y; /(lth|ct|rth)/.test(this.getAlignment()) && 0 < b.titleOffset[0] ? c += b.titleOffset[0] : /(lbh|cb|rbh)/.test(this.getAlignment()) && 0 < b.titleOffset[2] && (c -= b.titleOffset[2]); c !== a.y && (a = D(a, { y: c })); this.group.align(D(d,
                                    { width: this.legendWidth, height: this.legendHeight, verticalAlign: this.proximate ? "top" : d.verticalAlign }), !0, a)
                            }; a.prototype.handleOverflow = function (a) {
                                var b = this, d = this.chart, c = d.renderer, e = this.options, h = e.y, f = "top" === e.verticalAlign, g = this.padding, k = e.maxHeight, l = e.navigation, m = B(l.animation, !0), n = l.arrowSize || 12, q = this.pages, t = this.allItems, v = function (a) {
                                    "number" === typeof a ? N.attr({ height: a }) : N && (b.clipRect = N.destroy(), b.contentGroup.clip()); b.contentGroup.div && (b.contentGroup.div.style.clip = a ? "rect(" +
                                        g + "px,9999px," + (g + a) + "px,0)" : "auto")
                                }, r = function (a) { b[a] = c.circle(0, 0, 1.3 * n).translate(n / 2, n / 2).add(U); d.styledMode || b[a].attr("fill", "rgba(0,0,0,0.0001)"); return b[a] }, I, A; h = d.spacingBox.height + (f ? -h : h) - g; var U = this.nav, N = this.clipRect; "horizontal" !== e.layout || "middle" === e.verticalAlign || e.floating || (h /= 2); k && (h = Math.min(h, k)); q.length = 0; a && 0 < h && a > h && !1 !== l.enabled ? (this.clipHeight = I = Math.max(h - 20 - this.titleHeight - g, 0), this.currentPage = B(this.currentPage, 1), this.fullHeight = a, t.forEach(function (a,
                                    b) { var d = a._legendItemPos[1], c = Math.round(a.legendItem.getBBox().height), e = q.length; if (!e || d - q[e - 1] > I && (A || d) !== q[e - 1]) q.push(A || d), e++; a.pageIx = e - 1; A && (t[b - 1].pageIx = e - 1); b === t.length - 1 && d + c - q[e - 1] > I && d !== A && (q.push(d), a.pageIx = e); d !== A && (A = d) }), N || (N = b.clipRect = c.clipRect(0, g, 9999, 0), b.contentGroup.clip(N)), v(I), U || (this.nav = U = c.g().attr({ zIndex: 1 }).add(this.group), this.up = c.symbol("triangle", 0, 0, n, n).add(U), r("upTracker").on("click", function () { b.scroll(-1, m) }), this.pager = c.text("", 15, 10).addClass("highcharts-legend-navigation"),
                                        d.styledMode || this.pager.css(l.style), this.pager.add(U), this.down = c.symbol("triangle-down", 0, 0, n, n).add(U), r("downTracker").on("click", function () { b.scroll(1, m) })), b.scroll(0), a = h) : U && (v(), this.nav = U.destroy(), this.scrollGroup.attr({ translateY: 1 }), this.clipHeight = 0); return a
                            }; a.prototype.scroll = function (a, d) {
                                var b = this, c = this.chart, e = this.pages, f = e.length, g = this.clipHeight, l = this.options.navigation, m = this.pager, p = this.padding, n = this.currentPage + a; n > f && (n = f); 0 < n && ("undefined" !== typeof d && u(d, c), this.nav.attr({
                                    translateX: p,
                                    translateY: g + this.padding + 7 + this.titleHeight, visibility: "visible"
                                }), [this.up, this.upTracker].forEach(function (a) { a.attr({ "class": 1 === n ? "highcharts-legend-nav-inactive" : "highcharts-legend-nav-active" }) }), m.attr({ text: n + "/" + f }), [this.down, this.downTracker].forEach(function (a) { a.attr({ x: 18 + this.pager.getBBox().width, "class": n === f ? "highcharts-legend-nav-inactive" : "highcharts-legend-nav-active" }) }, this), c.styledMode || (this.up.attr({ fill: 1 === n ? l.inactiveColor : l.activeColor }), this.upTracker.css({
                                    cursor: 1 ===
                                        n ? "default" : "pointer"
                                }), this.down.attr({ fill: n === f ? l.inactiveColor : l.activeColor }), this.downTracker.css({ cursor: n === f ? "default" : "pointer" })), this.scrollOffset = -e[n - 1] + this.initialItemY, this.scrollGroup.animate({ translateY: this.scrollOffset }), this.currentPage = n, this.positionCheckboxes(), a = r(B(d, c.renderer.globalAnimation, !0)), h(function () { k(b, "afterScroll", { currentPage: n }) }, a.duration))
                            }; a.prototype.setItemEvents = function (a, d, c) {
                                var b = this, e = b.chart.renderer.boxWrapper, h = a instanceof E, f = "highcharts-legend-" +
                                    (h ? "point" : "series") + "-active", g = b.chart.styledMode, l = function (d) { b.allItems.forEach(function (b) { a !== b && [b].concat(b.linkedSeries || []).forEach(function (a) { a.setState(d, !h) }) }) }; (c ? [d, a.legendSymbol] : [a.legendGroup]).forEach(function (c) {
                                        if (c) c.on("mouseover", function () { a.visible && l("inactive"); a.setState("hover"); a.visible && e.addClass(f); g || d.css(b.options.itemHoverStyle) }).on("mouseout", function () { b.chart.styledMode || d.css(D(a.visible ? b.itemStyle : b.itemHiddenStyle)); l(""); e.removeClass(f); a.setState() }).on("click",
                                            function (b) { var d = function () { a.setVisible && a.setVisible(); l(a.visible ? "inactive" : "") }; e.removeClass(f); b = { browserEvent: b }; a.firePointEvent ? a.firePointEvent("legendItemClick", b, d) : k(a, "legendItemClick", b, d) })
                                    })
                            }; a.prototype.createCheckboxForItem = function (a) {
                                a.checkbox = e("input", { type: "checkbox", className: "highcharts-legend-checkbox", checked: a.selected, defaultChecked: a.selected }, this.options.itemCheckboxStyle, this.chart.container); c(a.checkbox, "click", function (b) {
                                    k(a.series || a, "checkboxClick", {
                                        checked: b.target.checked,
                                        item: a
                                    }, function () { a.select() })
                                })
                            }; return a
                        }(); (/Trident\/7\.0/.test(C.navigator && C.navigator.userAgent) || a) && z(x.prototype, "positionItem", function (a, b) { var d = this, c = function () { b._legendItemPos && a.call(d, b) }; c(); d.bubbleLegend || setTimeout(c) }); ""; return x
                    }); M(a, "Core/Series/SeriesRegistry.js", [a["Core/Globals.js"], a["Core/DefaultOptions.js"], a["Core/Series/Point.js"], a["Core/Utilities.js"]], function (a, w, C, E) {
                        var r = w.defaultOptions, x = E.error, J = E.extendClass, u = E.merge, n; (function (m) {
                            function g(a, e) {
                                var c =
                                    r.plotOptions || {}, f = e.defaultOptions; e.prototype.pointClass || (e.prototype.pointClass = C); e.prototype.type = a; f && (c[a] = f); m.seriesTypes[a] = e
                            } m.seriesTypes = a.seriesTypes; m.getSeries = function (a, e) { void 0 === e && (e = {}); var c = a.options.chart; c = e.type || c.type || c.defaultSeriesType || ""; var f = m.seriesTypes[c]; m || x(17, !0, a, { missingModuleFor: c }); c = new f; "function" === typeof c.init && c.init(a, e); return c }; m.registerSeriesType = g; m.seriesType = function (a, e, l, f, n) {
                                var c = r.plotOptions || {}; e = e || ""; c[a] = u(c[e], l); g(a, J(m.seriesTypes[e] ||
                                    function () { }, f)); m.seriesTypes[a].prototype.type = a; n && (m.seriesTypes[a].prototype.pointClass = J(C, n)); return m.seriesTypes[a]
                            }
                        })(n || (n = {})); return n
                    }); M(a, "Core/Chart/Chart.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/Axis/Axis.js"], a["Core/FormatUtilities.js"], a["Core/Foundation.js"], a["Core/Globals.js"], a["Core/Legend/Legend.js"], a["Core/MSPointer.js"], a["Core/DefaultOptions.js"], a["Core/Color/Palette.js"], a["Core/Pointer.js"], a["Core/Renderer/RendererRegistry.js"], a["Core/Series/SeriesRegistry.js"],
                    a["Core/Renderer/SVG/SVGRenderer.js"], a["Core/Time.js"], a["Core/Utilities.js"], a["Core/Renderer/HTML/AST.js"]], function (a, w, C, E, z, x, J, u, n, m, g, c, e, l, f, v) {
                        var q = a.animate, k = a.animObject, r = a.setAnimation, D = C.numberFormat, B = E.registerEventOptions, O = z.charts, t = z.doc, h = z.marginNames, d = z.svg, b = z.win, p = u.defaultOptions, G = u.defaultTime, y = c.seriesTypes, L = f.addEvent, F = f.attr, P = f.cleanRecursively, S = f.createElement, Q = f.css, V = f.defined, fa = f.discardElement, H = f.erase, K = f.error, M = f.extend, ha = f.find, R = f.fireEvent,
                        Z = f.getStyle, A = f.isArray, U = f.isNumber, N = f.isObject, W = f.isString, X = f.merge, Y = f.objectEach, T = f.pick, da = f.pInt, ka = f.relativeLength, ja = f.removeEvent, ba = f.splat, ea = f.syncTimeout, ma = f.uniqueKey; a = function () {
                            function a(a, b, d) {
                                this.series = this.renderTo = this.renderer = this.pointer = this.pointCount = this.plotWidth = this.plotTop = this.plotLeft = this.plotHeight = this.plotBox = this.options = this.numberFormatter = this.margin = this.legend = this.labelCollectors = this.isResizing = this.index = this.eventOptions = this.container = this.colorCounter =
                                    this.clipBox = this.chartWidth = this.chartHeight = this.bounds = this.axisOffset = this.axes = void 0; this.sharedClips = {}; this.yAxis = this.xAxis = this.userOptions = this.titleOffset = this.time = this.symbolCounter = this.spacingBox = this.spacing = void 0; this.getArgs(a, b, d)
                            } a.chart = function (b, d, c) { return new a(b, d, c) }; a.prototype.getArgs = function (a, b, d) { W(a) || a.nodeName ? (this.renderTo = a, this.init(b, d)) : this.init(a, b) }; a.prototype.init = function (a, b) {
                                var d = a.plotOptions || {}; R(this, "init", { args: arguments }, function () {
                                    var c =
                                        X(p, a), e = c.chart; Y(c.plotOptions, function (a, b) { N(a) && (a.tooltip = d[b] && X(d[b].tooltip) || void 0) }); c.tooltip.userOptions = a.chart && a.chart.forExport && a.tooltip.userOptions || a.tooltip; this.userOptions = a; this.margin = []; this.spacing = []; this.bounds = { h: {}, v: {} }; this.labelCollectors = []; this.callback = b; this.isResizing = 0; this.options = c; this.axes = []; this.series = []; this.time = a.time && Object.keys(a.time).length ? new l(a.time) : z.time; this.numberFormatter = e.numberFormatter || D; this.styledMode = e.styledMode; this.hasCartesianSeries =
                                            e.showAxes; this.index = O.length; O.push(this); z.chartCount++; B(this, e); this.xAxis = []; this.yAxis = []; this.pointCount = this.colorCounter = this.symbolCounter = 0; R(this, "afterInit"); this.firstRender()
                                })
                            }; a.prototype.initSeries = function (a) { var b = this.options.chart; b = a.type || b.type || b.defaultSeriesType; var d = y[b]; d || K(17, !0, this, { missingModuleFor: b }); b = new d; "function" === typeof b.init && b.init(this, a); return b }; a.prototype.setSeriesData = function () {
                                this.getSeriesOrderByLinks().forEach(function (a) {
                                    a.points || a.data ||
                                    !a.enabledDataSorting || a.setData(a.options.data, !1)
                                })
                            }; a.prototype.getSeriesOrderByLinks = function () { return this.series.concat().sort(function (a, b) { return a.linkedSeries.length || b.linkedSeries.length ? b.linkedSeries.length - a.linkedSeries.length : 0 }) }; a.prototype.orderSeries = function (a) { var b = this.series; a = a || 0; for (var d = b.length; a < d; ++a)b[a] && (b[a].index = a, b[a].name = b[a].getName()) }; a.prototype.isInsidePlot = function (a, b, d) {
                                void 0 === d && (d = {}); var c = this.inverted, e = this.plotBox, h = this.plotLeft, f = this.plotTop,
                                    g = this.scrollablePlotBox, k = 0; var l = 0; d.visiblePlotOnly && this.scrollingContainer && (l = this.scrollingContainer, k = l.scrollLeft, l = l.scrollTop); var m = d.series; e = d.visiblePlotOnly && g || e; g = d.inverted ? b : a; b = d.inverted ? a : b; a = { x: g, y: b, isInsidePlot: !0 }; if (!d.ignoreX) { var A = m && (c ? m.yAxis : m.xAxis) || { pos: h, len: Infinity }; g = d.paneCoordinates ? A.pos + g : h + g; g >= Math.max(k + h, A.pos) && g <= Math.min(k + h + e.width, A.pos + A.len) || (a.isInsidePlot = !1) } !d.ignoreY && a.isInsidePlot && (c = m && (c ? m.xAxis : m.yAxis) || { pos: f, len: Infinity }, d = d.paneCoordinates ?
                                        c.pos + b : f + b, d >= Math.max(l + f, c.pos) && d <= Math.min(l + f + e.height, c.pos + c.len) || (a.isInsidePlot = !1)); R(this, "afterIsInsidePlot", a); return a.isInsidePlot
                            }; a.prototype.redraw = function (a) {
                                R(this, "beforeRedraw"); var b = this.hasCartesianSeries ? this.axes : this.colorAxis || [], d = this.series, c = this.pointer, e = this.legend, h = this.userOptions.legend, f = this.renderer, g = f.isHidden(), k = [], l = this.isDirtyBox, m = this.isDirtyLegend; this.setResponsive && this.setResponsive(!1); r(this.hasRendered ? a : !1, this); g && this.temporaryDisplay();
                                this.layOutTitles(); for (a = d.length; a--;) { var A = d[a]; if (A.options.stacking || A.options.centerInCategory) { var p = !0; if (A.isDirty) { var n = !0; break } } } if (n) for (a = d.length; a--;)A = d[a], A.options.stacking && (A.isDirty = !0); d.forEach(function (a) { a.isDirty && ("point" === a.options.legendType ? ("function" === typeof a.updateTotals && a.updateTotals(), m = !0) : h && (h.labelFormatter || h.labelFormat) && (m = !0)); a.isDirtyData && R(a, "updatedData") }); m && e && e.options.enabled && (e.render(), this.isDirtyLegend = !1); p && this.getStacks(); b.forEach(function (a) {
                                    a.updateNames();
                                    a.setScale()
                                }); this.getMargins(); b.forEach(function (a) { a.isDirty && (l = !0) }); b.forEach(function (a) { var b = a.min + "," + a.max; a.extKey !== b && (a.extKey = b, k.push(function () { R(a, "afterSetExtremes", M(a.eventArgs, a.getExtremes())); delete a.eventArgs })); (l || p) && a.redraw() }); l && this.drawChartBox(); R(this, "predraw"); d.forEach(function (a) { (l || a.isDirty) && a.visible && a.redraw(); a.isDirtyData = !1 }); c && c.reset(!0); f.draw(); R(this, "redraw"); R(this, "render"); g && this.temporaryDisplay(!0); k.forEach(function (a) { a.call() })
                            };
                            a.prototype.get = function (a) { function b(b) { return b.id === a || b.options && b.options.id === a } for (var d = this.series, c = ha(this.axes, b) || ha(this.series, b), e = 0; !c && e < d.length; e++)c = ha(d[e].points || [], b); return c }; a.prototype.getAxes = function () { var a = this, b = this.options, d = b.xAxis = ba(b.xAxis || {}); b = b.yAxis = ba(b.yAxis || {}); R(this, "getAxes"); d.forEach(function (a, b) { a.index = b; a.isX = !0 }); b.forEach(function (a, b) { a.index = b }); d.concat(b).forEach(function (b) { new w(a, b) }); R(this, "afterGetAxes") }; a.prototype.getSelectedPoints =
                                function () { return this.series.reduce(function (a, b) { b.getPointsCollection().forEach(function (b) { T(b.selectedStaging, b.selected) && a.push(b) }); return a }, []) }; a.prototype.getSelectedSeries = function () { return this.series.filter(function (a) { return a.selected }) }; a.prototype.setTitle = function (a, b, d) { this.applyDescription("title", a); this.applyDescription("subtitle", b); this.applyDescription("caption", void 0); this.layOutTitles(d) }; a.prototype.applyDescription = function (a, b) {
                                    var d = this, c = "title" === a ? {
                                        color: n.neutralColor80,
                                        fontSize: this.options.isStock ? "16px" : "18px"
                                    } : { color: n.neutralColor60 }; c = this.options[a] = X(!this.styledMode && { style: c }, this.options[a], b); var e = this[a]; e && b && (this[a] = e = e.destroy()); c && !e && (e = this.renderer.text(c.text, 0, 0, c.useHTML).attr({ align: c.align, "class": "highcharts-" + a, zIndex: c.zIndex || 4 }).add(), e.update = function (b) { d[{ title: "setTitle", subtitle: "setSubtitle", caption: "setCaption" }[a]](b) }, this.styledMode || e.css(c.style), this[a] = e)
                                }; a.prototype.layOutTitles = function (a) {
                                    var b = [0, 0, 0], d = this.renderer,
                                    c = this.spacingBox;["title", "subtitle", "caption"].forEach(function (a) {
                                        var e = this[a], h = this.options[a], f = h.verticalAlign || "top"; a = "title" === a ? "top" === f ? -3 : 0 : "top" === f ? b[0] + 2 : 0; var g; if (e) {
                                            this.styledMode || (g = h.style && h.style.fontSize); g = d.fontMetrics(g, e).b; e.css({ width: (h.width || c.width + (h.widthAdjust || 0)) + "px" }); var k = Math.round(e.getBBox(h.useHTML).height); e.align(M({ y: "bottom" === f ? g : a + g, height: k }, h), !1, "spacingBox"); h.floating || ("top" === f ? b[0] = Math.ceil(b[0] + k) : "bottom" === f && (b[2] = Math.ceil(b[2] +
                                                k)))
                                        }
                                    }, this); b[0] && "top" === (this.options.title.verticalAlign || "top") && (b[0] += this.options.title.margin); b[2] && "bottom" === this.options.caption.verticalAlign && (b[2] += this.options.caption.margin); var e = !this.titleOffset || this.titleOffset.join(",") !== b.join(","); this.titleOffset = b; R(this, "afterLayOutTitles"); !this.isDirtyBox && e && (this.isDirtyBox = this.isDirtyLegend = e, this.hasRendered && T(a, !0) && this.isDirtyBox && this.redraw())
                                }; a.prototype.getChartSize = function () {
                                    var a = this.options.chart, b = a.width; a = a.height;
                                    var d = this.renderTo; V(b) || (this.containerWidth = Z(d, "width")); V(a) || (this.containerHeight = Z(d, "height")); this.chartWidth = Math.max(0, b || this.containerWidth || 600); this.chartHeight = Math.max(0, ka(a, this.chartWidth) || (1 < this.containerHeight ? this.containerHeight : 400))
                                }; a.prototype.temporaryDisplay = function (a) {
                                    var b = this.renderTo; if (a) for (; b && b.style;)b.hcOrigStyle && (Q(b, b.hcOrigStyle), delete b.hcOrigStyle), b.hcOrigDetached && (t.body.removeChild(b), b.hcOrigDetached = !1), b = b.parentNode; else for (; b && b.style;) {
                                        t.body.contains(b) ||
                                        b.parentNode || (b.hcOrigDetached = !0, t.body.appendChild(b)); if ("none" === Z(b, "display", !1) || b.hcOricDetached) b.hcOrigStyle = { display: b.style.display, height: b.style.height, overflow: b.style.overflow }, a = { display: "block", overflow: "hidden" }, b !== this.renderTo && (a.height = 0), Q(b, a), b.offsetWidth || b.style.setProperty("display", "block", "important"); b = b.parentNode; if (b === t.body) break
                                    }
                                }; a.prototype.setClassName = function (a) { this.container.className = "highcharts-container " + (a || "") }; a.prototype.getContainer = function () {
                                    var a =
                                        this.options, b = a.chart, c = ma(), h, f = this.renderTo; f || (this.renderTo = f = b.renderTo); W(f) && (this.renderTo = f = t.getElementById(f)); f || K(13, !0, this); var k = da(F(f, "data-highcharts-chart")); U(k) && O[k] && O[k].hasRendered && O[k].destroy(); F(f, "data-highcharts-chart", this.index); f.innerHTML = ""; b.skipClone || f.offsetWidth || this.temporaryDisplay(); this.getChartSize(); k = this.chartWidth; var l = this.chartHeight; Q(f, { overflow: "hidden" }); this.styledMode || (h = M({
                                            position: "relative", overflow: "hidden", width: k + "px", height: l +
                                                "px", textAlign: "left", lineHeight: "normal", zIndex: 0, "-webkit-tap-highlight-color": "rgba(0,0,0,0)", userSelect: "none", "touch-action": "manipulation", outline: "none"
                                        }, b.style || {})); this.container = c = S("div", { id: c }, h, f); this._cursor = c.style.cursor; this.renderer = new (b.renderer || !d ? g.getRendererType(b.renderer) : e)(c, k, l, void 0, b.forExport, a.exporting && a.exporting.allowHTML, this.styledMode); r(void 0, this); this.setClassName(b.className); if (this.styledMode) for (var m in a.defs) this.renderer.definition(a.defs[m]);
                                    else this.renderer.setStyle(b.style); this.renderer.chartIndex = this.index; R(this, "afterGetContainer")
                                }; a.prototype.getMargins = function (a) { var b = this.spacing, d = this.margin, c = this.titleOffset; this.resetMargins(); c[0] && !V(d[0]) && (this.plotTop = Math.max(this.plotTop, c[0] + b[0])); c[2] && !V(d[2]) && (this.marginBottom = Math.max(this.marginBottom, c[2] + b[2])); this.legend && this.legend.display && this.legend.adjustMargins(d, b); R(this, "getMargins"); a || this.getAxisMargins() }; a.prototype.getAxisMargins = function () {
                                    var a =
                                        this, b = a.axisOffset = [0, 0, 0, 0], d = a.colorAxis, c = a.margin, e = function (a) { a.forEach(function (a) { a.visible && a.getOffset() }) }; a.hasCartesianSeries ? e(a.axes) : d && d.length && e(d); h.forEach(function (d, e) { V(c[e]) || (a[d] += b[e]) }); a.setChartSize()
                                }; a.prototype.reflow = function (a) {
                                    var d = this, c = d.options.chart, e = d.renderTo, h = V(c.width) && V(c.height), g = c.width || Z(e, "width"); c = c.height || Z(e, "height"); e = a ? a.target : b; delete d.pointer.chartPosition; if (!h && !d.isPrinting && g && c && (e === b || e === t)) {
                                        if (g !== d.containerWidth || c !==
                                            d.containerHeight) f.clearTimeout(d.reflowTimeout), d.reflowTimeout = ea(function () { d.container && d.setSize(void 0, void 0, !1) }, a ? 100 : 0); d.containerWidth = g; d.containerHeight = c
                                    }
                                }; a.prototype.setReflow = function (a) { var d = this; !1 === a || this.unbindReflow ? !1 === a && this.unbindReflow && (this.unbindReflow = this.unbindReflow()) : (this.unbindReflow = L(b, "resize", function (a) { d.options && d.reflow(a) }), L(this, "destroy", this.unbindReflow)) }; a.prototype.setSize = function (a, b, d) {
                                    var c = this, e = c.renderer; c.isResizing += 1; r(d, c); d =
                                        e.globalAnimation; c.oldChartHeight = c.chartHeight; c.oldChartWidth = c.chartWidth; "undefined" !== typeof a && (c.options.chart.width = a); "undefined" !== typeof b && (c.options.chart.height = b); c.getChartSize(); c.styledMode || (d ? q : Q)(c.container, { width: c.chartWidth + "px", height: c.chartHeight + "px" }, d); c.setChartSize(!0); e.setSize(c.chartWidth, c.chartHeight, d); c.axes.forEach(function (a) { a.isDirty = !0; a.setScale() }); c.isDirtyLegend = !0; c.isDirtyBox = !0; c.layOutTitles(); c.getMargins(); c.redraw(d); c.oldChartHeight = null; R(c,
                                            "resize"); ea(function () { c && R(c, "endResize", null, function () { --c.isResizing }) }, k(d).duration)
                                }; a.prototype.setChartSize = function (a) {
                                    var b = this.inverted, d = this.renderer, c = this.chartWidth, e = this.chartHeight, h = this.options.chart, f = this.spacing, g = this.clipOffset, k, l, m, A; this.plotLeft = k = Math.round(this.plotLeft); this.plotTop = l = Math.round(this.plotTop); this.plotWidth = m = Math.max(0, Math.round(c - k - this.marginRight)); this.plotHeight = A = Math.max(0, Math.round(e - l - this.marginBottom)); this.plotSizeX = b ? A : m; this.plotSizeY =
                                        b ? m : A; this.plotBorderWidth = h.plotBorderWidth || 0; this.spacingBox = d.spacingBox = { x: f[3], y: f[0], width: c - f[3] - f[1], height: e - f[0] - f[2] }; this.plotBox = d.plotBox = { x: k, y: l, width: m, height: A }; b = 2 * Math.floor(this.plotBorderWidth / 2); c = Math.ceil(Math.max(b, g[3]) / 2); e = Math.ceil(Math.max(b, g[0]) / 2); this.clipBox = { x: c, y: e, width: Math.floor(this.plotSizeX - Math.max(b, g[1]) / 2 - c), height: Math.max(0, Math.floor(this.plotSizeY - Math.max(b, g[2]) / 2 - e)) }; a || (this.axes.forEach(function (a) { a.setAxisSize(); a.setAxisTranslation() }),
                                            d.alignElements()); R(this, "afterSetChartSize", { skipAxes: a })
                                }; a.prototype.resetMargins = function () { R(this, "resetMargins"); var a = this, b = a.options.chart;["margin", "spacing"].forEach(function (d) { var c = b[d], e = N(c) ? c : [c, c, c, c];["Top", "Right", "Bottom", "Left"].forEach(function (c, h) { a[d][h] = T(b[d + c], e[h]) }) }); h.forEach(function (b, d) { a[b] = T(a.margin[d], a.spacing[d]) }); a.axisOffset = [0, 0, 0, 0]; a.clipOffset = [0, 0, 0, 0] }; a.prototype.drawChartBox = function () {
                                    var a = this.options.chart, b = this.renderer, d = this.chartWidth,
                                    c = this.chartHeight, e = this.styledMode, h = this.plotBGImage, f = a.backgroundColor, g = a.plotBackgroundColor, k = a.plotBackgroundImage, l = this.plotLeft, m = this.plotTop, A = this.plotWidth, p = this.plotHeight, n = this.plotBox, q = this.clipRect, N = this.clipBox, t = this.chartBackground, v = this.plotBackground, r = this.plotBorder, B, y = "animate"; t || (this.chartBackground = t = b.rect().addClass("highcharts-background").add(), y = "attr"); if (e) var I = B = t.strokeWidth(); else {
                                        I = a.borderWidth || 0; B = I + (a.shadow ? 8 : 0); f = { fill: f || "none" }; if (I || t["stroke-width"]) f.stroke =
                                            a.borderColor, f["stroke-width"] = I; t.attr(f).shadow(a.shadow)
                                    } t[y]({ x: B / 2, y: B / 2, width: d - B - I % 2, height: c - B - I % 2, r: a.borderRadius }); y = "animate"; v || (y = "attr", this.plotBackground = v = b.rect().addClass("highcharts-plot-background").add()); v[y](n); e || (v.attr({ fill: g || "none" }).shadow(a.plotShadow), k && (h ? (k !== h.attr("href") && h.attr("href", k), h.animate(n)) : this.plotBGImage = b.image(k, l, m, A, p).add())); q ? q.animate({ width: N.width, height: N.height }) : this.clipRect = b.clipRect(N); y = "animate"; r || (y = "attr", this.plotBorder =
                                        r = b.rect().addClass("highcharts-plot-border").attr({ zIndex: 1 }).add()); e || r.attr({ stroke: a.plotBorderColor, "stroke-width": a.plotBorderWidth || 0, fill: "none" }); r[y](r.crisp({ x: l, y: m, width: A, height: p }, -r.strokeWidth())); this.isDirtyBox = !1; R(this, "afterDrawChartBox")
                                }; a.prototype.propFromSeries = function () {
                                    var a = this, b = a.options.chart, d = a.options.series, c, e, h;["inverted", "angular", "polar"].forEach(function (f) {
                                        e = y[b.type || b.defaultSeriesType]; h = b[f] || e && e.prototype[f]; for (c = d && d.length; !h && c--;)(e = y[d[c].type]) &&
                                            e.prototype[f] && (h = !0); a[f] = h
                                    })
                                }; a.prototype.linkSeries = function () { var a = this, b = a.series; b.forEach(function (a) { a.linkedSeries.length = 0 }); b.forEach(function (b) { var d = b.options.linkedTo; W(d) && (d = ":previous" === d ? a.series[b.index - 1] : a.get(d)) && d.linkedParent !== b && (d.linkedSeries.push(b), b.linkedParent = d, d.enabledDataSorting && b.setDataSortingOptions(), b.visible = T(b.options.visible, d.options.visible, b.visible)) }); R(this, "afterLinkSeries") }; a.prototype.renderSeries = function () {
                                    this.series.forEach(function (a) {
                                        a.translate();
                                        a.render()
                                    })
                                }; a.prototype.renderLabels = function () { var a = this, b = a.options.labels; b.items && b.items.forEach(function (d) { var c = M(b.style, d.style), e = da(c.left) + a.plotLeft, h = da(c.top) + a.plotTop + 12; delete c.left; delete c.top; a.renderer.text(d.html, e, h).attr({ zIndex: 2 }).css(c).add() }) }; a.prototype.render = function () {
                                    var a = this.axes, b = this.colorAxis, d = this.renderer, c = this.options, e = function (a) { a.forEach(function (a) { a.visible && a.render() }) }, h = 0; this.setTitle(); this.legend = new x(this, c.legend); this.getStacks &&
                                        this.getStacks(); this.getMargins(!0); this.setChartSize(); c = this.plotWidth; a.some(function (a) { if (a.horiz && a.visible && a.options.labels.enabled && a.series.length) return h = 21, !0 }); var f = this.plotHeight = Math.max(this.plotHeight - h, 0); a.forEach(function (a) { a.setScale() }); this.getAxisMargins(); var g = 1.1 < c / this.plotWidth, k = 1.05 < f / this.plotHeight; if (g || k) a.forEach(function (a) { (a.horiz && g || !a.horiz && k) && a.setTickInterval(!0) }), this.getMargins(); this.drawChartBox(); this.hasCartesianSeries ? e(a) : b && b.length && e(b);
                                    this.seriesGroup || (this.seriesGroup = d.g("series-group").attr({ zIndex: 3 }).add()); this.renderSeries(); this.renderLabels(); this.addCredits(); this.setResponsive && this.setResponsive(); this.hasRendered = !0
                                }; a.prototype.addCredits = function (a) {
                                    var d = this, c = X(!0, this.options.credits, a); c.enabled && !this.credits && (this.credits = this.renderer.text(c.text + (this.mapCredits || ""), 0, 0).addClass("highcharts-credits").on("click", function () { c.href && (b.location.href = c.href) }).attr({ align: c.position.align, zIndex: 8 }), d.styledMode ||
                                        this.credits.css(c.style), this.credits.add().align(c.position), this.credits.update = function (a) { d.credits = d.credits.destroy(); d.addCredits(a) })
                                }; a.prototype.destroy = function () {
                                    var a = this, b = a.axes, d = a.series, c = a.container, e = c && c.parentNode, h; R(a, "destroy"); a.renderer.forExport ? H(O, a) : O[a.index] = void 0; z.chartCount--; a.renderTo.removeAttribute("data-highcharts-chart"); ja(a); for (h = b.length; h--;)b[h] = b[h].destroy(); this.scroller && this.scroller.destroy && this.scroller.destroy(); for (h = d.length; h--;)d[h] =
                                        d[h].destroy(); "title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" ").forEach(function (b) { var d = a[b]; d && d.destroy && (a[b] = d.destroy()) }); c && (c.innerHTML = "", ja(c), e && fa(c)); Y(a, function (b, d) { delete a[d] })
                                }; a.prototype.firstRender = function () {
                                    var a = this, b = a.options; if (!a.isReadyToRender || a.isReadyToRender()) {
                                        a.getContainer(); a.resetMargins(); a.setChartSize(); a.propFromSeries(); a.getAxes();
                                        (A(b.series) ? b.series : []).forEach(function (b) { a.initSeries(b) }); a.linkSeries(); a.setSeriesData(); R(a, "beforeRender"); m && (J.isRequired() ? a.pointer = new J(a, b) : a.pointer = new m(a, b)); a.render(); a.pointer.getChartPosition(); if (!a.renderer.imgCount && !a.hasLoaded) a.onload(); a.temporaryDisplay(!0)
                                    }
                                }; a.prototype.onload = function () {
                                    this.callbacks.concat([this.callback]).forEach(function (a) { a && "undefined" !== typeof this.index && a.apply(this, [this]) }, this); R(this, "load"); R(this, "render"); V(this.index) && this.setReflow(this.options.chart.reflow);
                                    this.hasLoaded = !0
                                }; a.prototype.addSeries = function (a, b, d) { var c = this, e; a && (b = T(b, !0), R(c, "addSeries", { options: a }, function () { e = c.initSeries(a); c.isDirtyLegend = !0; c.linkSeries(); e.enabledDataSorting && e.setData(a.data, !1); R(c, "afterAddSeries", { series: e }); b && c.redraw(d) })); return e }; a.prototype.addAxis = function (a, b, d, c) { return this.createAxis(b ? "xAxis" : "yAxis", { axis: a, redraw: d, animation: c }) }; a.prototype.addColorAxis = function (a, b, d) { return this.createAxis("colorAxis", { axis: a, redraw: b, animation: d }) }; a.prototype.createAxis =
                                    function (a, b) { a = new w(this, X(b.axis, { index: this[a].length, isX: "xAxis" === a })); T(b.redraw, !0) && this.redraw(b.animation); return a }; a.prototype.showLoading = function (a) {
                                        var b = this, d = b.options, c = d.loading, e = function () { h && Q(h, { left: b.plotLeft + "px", top: b.plotTop + "px", width: b.plotWidth + "px", height: b.plotHeight + "px" }) }, h = b.loadingDiv, f = b.loadingSpan; h || (b.loadingDiv = h = S("div", { className: "highcharts-loading highcharts-loading-hidden" }, null, b.container)); f || (b.loadingSpan = f = S("span", { className: "highcharts-loading-inner" },
                                            null, h), L(b, "redraw", e)); h.className = "highcharts-loading"; v.setElementHTML(f, T(a, d.lang.loading, "")); b.styledMode || (Q(h, M(c.style, { zIndex: 10 })), Q(f, c.labelStyle), b.loadingShown || (Q(h, { opacity: 0, display: "" }), q(h, { opacity: c.style.opacity || .5 }, { duration: c.showDuration || 0 }))); b.loadingShown = !0; e()
                                    }; a.prototype.hideLoading = function () {
                                        var a = this.options, b = this.loadingDiv; b && (b.className = "highcharts-loading highcharts-loading-hidden", this.styledMode || q(b, { opacity: 0 }, {
                                            duration: a.loading.hideDuration || 100,
                                            complete: function () { Q(b, { display: "none" }) }
                                        })); this.loadingShown = !1
                                    }; a.prototype.update = function (a, b, d, c) {
                                        var e = this, h = { credits: "addCredits", title: "setTitle", subtitle: "setSubtitle", caption: "setCaption" }, f = a.isResponsiveOptions, g = [], k, m; R(e, "update", { options: a }); f || e.setResponsive(!1, !0); a = P(a, e.options); e.userOptions = X(e.userOptions, a); var A = a.chart; if (A) {
                                            X(!0, e.options.chart, A); "className" in A && e.setClassName(A.className); "reflow" in A && e.setReflow(A.reflow); if ("inverted" in A || "polar" in A || "type" in
                                                A) { e.propFromSeries(); var p = !0 } "alignTicks" in A && (p = !0); "events" in A && B(this, A); Y(A, function (a, b) { -1 !== e.propsRequireUpdateSeries.indexOf("chart." + b) && (k = !0); -1 !== e.propsRequireDirtyBox.indexOf(b) && (e.isDirtyBox = !0); -1 !== e.propsRequireReflow.indexOf(b) && (f ? e.isDirtyBox = !0 : m = !0) }); !e.styledMode && A.style && e.renderer.setStyle(e.options.chart.style || {})
                                        } !e.styledMode && a.colors && (this.options.colors = a.colors); a.time && (this.time === G && (this.time = new l(a.time)), X(!0, e.options.time, a.time)); Y(a, function (b,
                                            d) { if (e[d] && "function" === typeof e[d].update) e[d].update(b, !1); else if ("function" === typeof e[h[d]]) e[h[d]](b); else "colors" !== d && -1 === e.collectionsWithUpdate.indexOf(d) && X(!0, e.options[d], a[d]); "chart" !== d && -1 !== e.propsRequireUpdateSeries.indexOf(d) && (k = !0) }); this.collectionsWithUpdate.forEach(function (b) {
                                                if (a[b]) {
                                                    var c = []; e[b].forEach(function (a, b) { a.options.isInternal || c.push(T(a.options.index, b)) }); ba(a[b]).forEach(function (a, h) {
                                                        var f = V(a.id), g; f && (g = e.get(a.id)); !g && e[b] && (g = e[b][c ? c[h] : h]) && f &&
                                                            V(g.options.id) && (g = void 0); g && g.coll === b && (g.update(a, !1), d && (g.touched = !0)); !g && d && e.collectionsWithInit[b] && (e.collectionsWithInit[b][0].apply(e, [a].concat(e.collectionsWithInit[b][1] || []).concat([!1])).touched = !0)
                                                    }); d && e[b].forEach(function (a) { a.touched || a.options.isInternal ? delete a.touched : g.push(a) })
                                                }
                                            }); g.forEach(function (a) { a.chart && a.remove && a.remove(!1) }); p && e.axes.forEach(function (a) { a.update({}, !1) }); k && e.getSeriesOrderByLinks().forEach(function (a) { a.chart && a.update({}, !1) }, this); p = A &&
                                                A.width; A = A && (W(A.height) ? ka(A.height, p || e.chartWidth) : A.height); m || U(p) && p !== e.chartWidth || U(A) && A !== e.chartHeight ? e.setSize(p, A, c) : T(b, !0) && e.redraw(c); R(e, "afterUpdate", { options: a, redraw: b, animation: c })
                                    }; a.prototype.setSubtitle = function (a, b) { this.applyDescription("subtitle", a); this.layOutTitles(b) }; a.prototype.setCaption = function (a, b) { this.applyDescription("caption", a); this.layOutTitles(b) }; a.prototype.showResetZoom = function () {
                                        function a() { b.zoomOut() } var b = this, d = p.lang, c = b.options.chart.resetZoomButton,
                                            e = c.theme, h = e.states, f = "chart" === c.relativeTo || "spacingBox" === c.relativeTo ? null : "scrollablePlotBox"; R(this, "beforeShowResetZoom", null, function () { b.resetZoomButton = b.renderer.button(d.resetZoom, null, null, a, e, h && h.hover).attr({ align: c.position.align, title: d.resetZoomTitle }).addClass("highcharts-reset-zoom").add().align(c.position, !1, f) }); R(this, "afterShowResetZoom")
                                    }; a.prototype.zoomOut = function () { R(this, "selection", { resetSelection: !0 }, this.zoom) }; a.prototype.zoom = function (a) {
                                        var b = this, d = b.pointer,
                                        c = b.inverted ? d.mouseDownX : d.mouseDownY, e = !1, h; !a || a.resetSelection ? (b.axes.forEach(function (a) { h = a.zoom() }), d.initiated = !1) : a.xAxis.concat(a.yAxis).forEach(function (a) { var f = a.axis, g = b.inverted ? f.left : f.top, k = b.inverted ? g + f.width : g + f.height, l = f.isXAxis, A = !1; if (!l && c >= g && c <= k || l || !V(c)) A = !0; d[l ? "zoomX" : "zoomY"] && A && (h = f.zoom(a.min, a.max), f.displayBtn && (e = !0)) }); var f = b.resetZoomButton; e && !f ? b.showResetZoom() : !e && N(f) && (b.resetZoomButton = f.destroy()); h && b.redraw(T(b.options.chart.animation, a && a.animation,
                                            100 > b.pointCount))
                                    }; a.prototype.pan = function (a, b) {
                                        var d = this, c = d.hoverPoints; b = "object" === typeof b ? b : { enabled: b, type: "x" }; var e = d.options.chart, h = d.options.mapNavigation && d.options.mapNavigation.enabled; e && e.panning && (e.panning = b); var f = b.type, g; R(this, "pan", { originalEvent: a }, function () {
                                            c && c.forEach(function (a) { a.setState() }); var b = d.xAxis; "xy" === f ? b = b.concat(d.yAxis) : "y" === f && (b = d.yAxis); var e = {}; b.forEach(function (b) {
                                                if (b.options.panningEnabled && !b.options.isInternal) {
                                                    var c = b.horiz, k = a[c ? "chartX" :
                                                        "chartY"]; c = c ? "mouseDownX" : "mouseDownY"; var l = d[c], A = b.minPointOffset || 0, m = b.reversed && !d.inverted || !b.reversed && d.inverted ? -1 : 1, p = b.getExtremes(), n = b.toValue(l - k, !0) + A * m, q = b.toValue(l + b.len - k, !0) - (A * m || b.isXAxis && b.pointRangePadding || 0), t = q < n; m = b.hasVerticalPanning(); l = t ? q : n; n = t ? n : q; var N = b.panningState; !m || b.isXAxis || N && !N.isDirty || b.series.forEach(function (a) {
                                                            var b = a.getProcessedData(!0); b = a.getExtremes(b.yData, !0); N || (N = { startMin: Number.MAX_VALUE, startMax: -Number.MAX_VALUE }); U(b.dataMin) && U(b.dataMax) &&
                                                                (N.startMin = Math.min(T(a.options.threshold, Infinity), b.dataMin, N.startMin), N.startMax = Math.max(T(a.options.threshold, -Infinity), b.dataMax, N.startMax))
                                                        }); m = Math.min(T(N && N.startMin, p.dataMin), A ? p.min : b.toValue(b.toPixels(p.min) - b.minPixelPadding)); q = Math.max(T(N && N.startMax, p.dataMax), A ? p.max : b.toValue(b.toPixels(p.max) + b.minPixelPadding)); b.panningState = N; b.isOrdinal || (A = m - l, 0 < A && (n += A, l = m), A = n - q, 0 < A && (n = q, l -= A), b.series.length && l !== p.min && n !== p.max && l >= m && n <= q && (b.setExtremes(l, n, !1, !1, { trigger: "pan" }),
                                                            d.resetZoomButton || h || l === m || n === q || !f.match("y") || (d.showResetZoom(), b.displayBtn = !1), g = !0), e[c] = k)
                                                }
                                            }); Y(e, function (a, b) { d[b] = a }); g && d.redraw(!1); Q(d.container, { cursor: "move" })
                                        })
                                    }; return a
                        }(); M(a.prototype, {
                            callbacks: [], collectionsWithInit: { xAxis: [a.prototype.addAxis, [!0]], yAxis: [a.prototype.addAxis, [!1]], series: [a.prototype.addSeries] }, collectionsWithUpdate: ["xAxis", "yAxis", "series"], propsRequireDirtyBox: "backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),
                            propsRequireReflow: "margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft".split(" "), propsRequireUpdateSeries: "chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" ")
                        }); ""; return a
                    }); M(a, "Core/Legend/LegendSymbol.js", [a["Core/Utilities.js"]], function (a) {
                        var r = a.merge, C = a.pick, E; (function (a) {
                            a.drawLineMarker = function (a) {
                                var x = this.options, u = a.symbolWidth, n = a.symbolHeight, m = n / 2, g = this.chart.renderer,
                                c = this.legendGroup; a = a.baseline - Math.round(.3 * a.fontMetrics.b); var e = {}, l = x.marker; this.chart.styledMode || (e = { "stroke-width": x.lineWidth || 0 }, x.dashStyle && (e.dashstyle = x.dashStyle)); this.legendLine = g.path([["M", 0, a], ["L", u, a]]).addClass("highcharts-graph").attr(e).add(c); l && !1 !== l.enabled && u && (x = Math.min(C(l.radius, m), m), 0 === this.symbol.indexOf("url") && (l = r(l, { width: n, height: n }), x = 0), this.legendSymbol = u = g.symbol(this.symbol, u / 2 - x, a - x, 2 * x, 2 * x, l).addClass("highcharts-point").add(c), u.isMarker = !0)
                            }; a.drawRectangle =
                                function (a, r) { var u = a.symbolHeight, n = a.options.squareSymbol; r.legendSymbol = this.chart.renderer.rect(n ? (a.symbolWidth - u) / 2 : 0, a.baseline - u + 1, n ? u : a.symbolWidth, u, C(a.options.symbolRadius, u / 2)).addClass("highcharts-point").attr({ zIndex: 3 }).add(r.legendGroup) }
                        })(E || (E = {})); return E
                    }); M(a, "Core/Series/SeriesDefaults.js", [a["Core/Color/Palette.js"]], function (a) {
                        return {
                            lineWidth: 2, allowPointSelect: !1, crisp: !0, showCheckbox: !1, animation: { duration: 1E3 }, events: {}, marker: {
                                enabledThreshold: 2, lineColor: a.backgroundColor,
                                lineWidth: 0, radius: 4, states: { normal: { animation: !0 }, hover: { animation: { duration: 50 }, enabled: !0, radiusPlus: 2, lineWidthPlus: 1 }, select: { fillColor: a.neutralColor20, lineColor: a.neutralColor100, lineWidth: 2 } }
                            }, point: { events: {} }, dataLabels: { animation: {}, align: "center", defer: !0, formatter: function () { var a = this.series.chart.numberFormatter; return "number" !== typeof this.y ? "" : a(this.y, -1) }, padding: 5, style: { fontSize: "11px", fontWeight: "bold", color: "contrast", textOutline: "1px contrast" }, verticalAlign: "bottom", x: 0, y: 0 },
                            cropThreshold: 300, opacity: 1, pointRange: 0, softThreshold: !0, states: { normal: { animation: !0 }, hover: { animation: { duration: 50 }, lineWidthPlus: 1, marker: {}, halo: { size: 10, opacity: .25 } }, select: { animation: { duration: 0 } }, inactive: { animation: { duration: 50 }, opacity: .2 } }, stickyTracking: !0, turboThreshold: 1E3, findNearestPointBy: "x"
                        }
                    }); M(a, "Core/Series/Series.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/DefaultOptions.js"], a["Core/Foundation.js"], a["Core/Globals.js"], a["Core/Legend/LegendSymbol.js"], a["Core/Color/Palette.js"],
                    a["Core/Series/Point.js"], a["Core/Series/SeriesDefaults.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Renderer/SVG/SVGElement.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x, J, u, n, m, g) {
                        var c = a.animObject, e = a.setAnimation, l = w.defaultOptions, f = C.registerEventOptions, v = E.hasTouch, q = E.svg, k = E.win, r = n.seriesTypes, D = g.addEvent, B = g.arrayMax, O = g.arrayMin, t = g.clamp, h = g.cleanRecursively, d = g.correctFloat, b = g.defined, p = g.erase, G = g.error, y = g.extend, L = g.find, F = g.fireEvent, P = g.getNestedProperty, S = g.isArray,
                        Q = g.isNumber, V = g.isString, M = g.merge, H = g.objectEach, K = g.pick, la = g.removeEvent, ha = g.splat, R = g.syncTimeout; a = function () {
                            function a() { this.zones = this.yAxis = this.xAxis = this.userOptions = this.tooltipOptions = this.processedYData = this.processedXData = this.points = this.options = this.linkedSeries = this.index = this.eventsToUnbind = this.eventOptions = this.data = this.chart = this._i = void 0 } a.prototype.init = function (a, b) {
                                F(this, "init", { options: b }); var d = this, c = a.series; this.eventsToUnbind = []; d.chart = a; d.options = d.setOptions(b);
                                b = d.options; d.linkedSeries = []; d.bindAxes(); y(d, { name: b.name, state: "", visible: !1 !== b.visible, selected: !0 === b.selected }); f(this, b); var e = b.events; if (e && e.click || b.point && b.point.events && b.point.events.click || b.allowPointSelect) a.runTrackerClick = !0; d.getColor(); d.getSymbol(); d.parallelArrays.forEach(function (a) { d[a + "Data"] || (d[a + "Data"] = []) }); d.isCartesian && (a.hasCartesianSeries = !0); var h; c.length && (h = c[c.length - 1]); d._i = K(h && h._i, -1) + 1; d.opacity = d.options.opacity; a.orderSeries(this.insert(c)); b.dataSorting &&
                                    b.dataSorting.enabled ? d.setDataSortingOptions() : d.points || d.data || d.setData(b.data, !1); F(this, "afterInit")
                            }; a.prototype.is = function (a) { return r[a] && this instanceof r[a] }; a.prototype.insert = function (a) { var b = this.options.index, d; if (Q(b)) { for (d = a.length; d--;)if (b >= K(a[d].options.index, a[d]._i)) { a.splice(d + 1, 0, this); break } -1 === d && a.unshift(this); d += 1 } else a.push(this); return K(d, a.length - 1) }; a.prototype.bindAxes = function () {
                                var a = this, b = a.options, d = a.chart, c; F(this, "bindAxes", null, function () {
                                    (a.axisTypes ||
                                        []).forEach(function (e) { var h = 0; d[e].forEach(function (d) { c = d.options; if (b[e] === h && !c.isInternal || "undefined" !== typeof b[e] && b[e] === c.id || "undefined" === typeof b[e] && 0 === c.index) a.insert(d.series), a[e] = d, d.isDirty = !0; c.isInternal || h++ }); a[e] || a.optionalAxis === e || G(18, !0, d) })
                                }); F(this, "afterBindAxes")
                            }; a.prototype.updateParallelArrays = function (a, b) {
                                var d = a.series, c = arguments, e = Q(b) ? function (c) { var e = "y" === c && d.toYData ? d.toYData(a) : a[c]; d[c + "Data"][b] = e } : function (a) {
                                    Array.prototype[b].apply(d[a + "Data"],
                                        Array.prototype.slice.call(c, 2))
                                }; d.parallelArrays.forEach(e)
                            }; a.prototype.hasData = function () { return this.visible && "undefined" !== typeof this.dataMax && "undefined" !== typeof this.dataMin || this.visible && this.yData && 0 < this.yData.length }; a.prototype.autoIncrement = function (a) {
                                var b = this.options, d = b.pointIntervalUnit, c = b.relativeXValue, e = this.chart.time, h = this.xIncrement, f; h = K(h, b.pointStart, 0); this.pointInterval = f = K(this.pointInterval, b.pointInterval, 1); c && Q(a) && (f *= a); d && (b = new e.Date(h), "day" === d ? e.set("Date",
                                    b, e.get("Date", b) + f) : "month" === d ? e.set("Month", b, e.get("Month", b) + f) : "year" === d && e.set("FullYear", b, e.get("FullYear", b) + f), f = b.getTime() - h); if (c && Q(a)) return h + f; this.xIncrement = h + f; return h
                            }; a.prototype.setDataSortingOptions = function () { var a = this.options; y(this, { requireSorting: !1, sorted: !1, enabledDataSorting: !0, allowDG: !1 }); b(a.pointRange) || (a.pointRange = 1) }; a.prototype.setOptions = function (a) {
                                var d = this.chart, c = d.options, e = c.plotOptions, h = d.userOptions || {}; a = M(a); d = d.styledMode; var f = {
                                    plotOptions: e,
                                    userOptions: a
                                }; F(this, "setOptions", f); var g = f.plotOptions[this.type], k = h.plotOptions || {}; this.userOptions = f.userOptions; h = M(g, e.series, h.plotOptions && h.plotOptions[this.type], a); this.tooltipOptions = M(l.tooltip, l.plotOptions.series && l.plotOptions.series.tooltip, l.plotOptions[this.type].tooltip, c.tooltip.userOptions, e.series && e.series.tooltip, e[this.type].tooltip, a.tooltip); this.stickyTracking = K(a.stickyTracking, k[this.type] && k[this.type].stickyTracking, k.series && k.series.stickyTracking, this.tooltipOptions.shared &&
                                    !this.noSharedTooltip ? !0 : h.stickyTracking); null === g.marker && delete h.marker; this.zoneAxis = h.zoneAxis; e = this.zones = (h.zones || []).slice(); !h.negativeColor && !h.negativeFillColor || h.zones || (c = { value: h[this.zoneAxis + "Threshold"] || h.threshold || 0, className: "highcharts-negative" }, d || (c.color = h.negativeColor, c.fillColor = h.negativeFillColor), e.push(c)); e.length && b(e[e.length - 1].value) && e.push(d ? {} : { color: this.color, fillColor: this.fillColor }); F(this, "afterSetOptions", { options: h }); return h
                            }; a.prototype.getName =
                                function () { return K(this.options.name, "Series " + (this.index + 1)) }; a.prototype.getCyclic = function (a, d, c) { var e = this.chart, h = this.userOptions, f = a + "Index", g = a + "Counter", k = c ? c.length : K(e.options.chart[a + "Count"], e[a + "Count"]); if (!d) { var l = K(h[f], h["_" + f]); b(l) || (e.series.length || (e[g] = 0), h["_" + f] = l = e[g] % k, e[g] += 1); c && (d = c[l]) } "undefined" !== typeof l && (this[f] = l); this[a] = d }; a.prototype.getColor = function () {
                                    this.chart.styledMode ? this.getCyclic("color") : this.options.colorByPoint ? this.color = x.neutralColor20 :
                                        this.getCyclic("color", this.options.color || l.plotOptions[this.type].color, this.chart.options.colors)
                                }; a.prototype.getPointsCollection = function () { return (this.hasGroupedData ? this.points : this.data) || [] }; a.prototype.getSymbol = function () { this.getCyclic("symbol", this.options.marker.symbol, this.chart.options.symbols) }; a.prototype.findPointIndex = function (a, b) {
                                    var d = a.id, c = a.x, e = this.points, h = this.options.dataSorting, f, g; if (d) h = this.chart.get(d), h instanceof J && (f = h); else if (this.linkedParent || this.enabledDataSorting ||
                                        this.options.relativeXValue) if (f = function (b) { return !b.touched && b.index === a.index }, h && h.matchByName ? f = function (b) { return !b.touched && b.name === a.name } : this.options.relativeXValue && (f = function (b) { return !b.touched && b.options.x === a.x }), f = L(e, f), !f) return; if (f) { var k = f && f.index; "undefined" !== typeof k && (g = !0) } "undefined" === typeof k && Q(c) && (k = this.xData.indexOf(c, b)); -1 !== k && "undefined" !== typeof k && this.cropped && (k = k >= this.cropStart ? k - this.cropStart : k); !g && Q(k) && e[k] && e[k].touched && (k = void 0); return k
                                }; a.prototype.updateData =
                                    function (a, d) {
                                        var c = this.options, e = c.dataSorting, h = this.points, f = [], g = this.requireSorting, k = a.length === h.length, l, m, A, p = !0; this.xIncrement = null; a.forEach(function (a, d) { var m = b(a) && this.pointClass.prototype.optionsToObject.call({ series: this }, a) || {}, p = m.x; if (m.id || Q(p)) { if (m = this.findPointIndex(m, A), -1 === m || "undefined" === typeof m ? f.push(a) : h[m] && a !== c.data[m] ? (h[m].update(a, !1, null, !1), h[m].touched = !0, g && (A = m + 1)) : h[m] && (h[m].touched = !0), !k || d !== m || e && e.enabled || this.hasDerivedData) l = !0 } else f.push(a) },
                                            this); if (l) for (a = h.length; a--;)(m = h[a]) && !m.touched && m.remove && m.remove(!1, d); else !k || e && e.enabled ? p = !1 : (a.forEach(function (a, b) { a !== h[b].y && h[b].update && h[b].update(a, !1, null, !1) }), f.length = 0); h.forEach(function (a) { a && (a.touched = !1) }); if (!p) return !1; f.forEach(function (a) { this.addPoint(a, !1, null, null, !1) }, this); null === this.xIncrement && this.xData && this.xData.length && (this.xIncrement = B(this.xData), this.autoIncrement()); return !0
                                    }; a.prototype.setData = function (a, b, d, c) {
                                        var e = this, h = e.points, f = h && h.length ||
                                            0, g = e.options, k = e.chart, l = g.dataSorting, m = e.xAxis, A = g.turboThreshold, p = this.xData, n = this.yData, q = e.pointArrayMap; q = q && q.length; var t = g.keys, v, r = 0, B = 1, y = null; a = a || []; var N = a.length; b = K(b, !0); l && l.enabled && (a = this.sortData(a)); !1 !== c && N && f && !e.cropped && !e.hasGroupedData && e.visible && !e.isSeriesBoosting && (v = this.updateData(a, d)); if (!v) {
                                                e.xIncrement = null; e.colorCounter = 0; this.parallelArrays.forEach(function (a) { e[a + "Data"].length = 0 }); if (A && N > A) if (y = e.getFirstValidPoint(a), Q(y)) for (d = 0; d < N; d++)p[d] = this.autoIncrement(),
                                                    n[d] = a[d]; else if (S(y)) if (q) for (d = 0; d < N; d++)c = a[d], p[d] = c[0], n[d] = c.slice(1, q + 1); else for (t && (r = t.indexOf("x"), B = t.indexOf("y"), r = 0 <= r ? r : 0, B = 0 <= B ? B : 1), d = 0; d < N; d++)c = a[d], p[d] = c[r], n[d] = c[B]; else G(12, !1, k); else for (d = 0; d < N; d++)"undefined" !== typeof a[d] && (c = { series: e }, e.pointClass.prototype.applyOptions.apply(c, [a[d]]), e.updateParallelArrays(c, d)); n && V(n[0]) && G(14, !0, k); e.data = []; e.options.data = e.userOptions.data = a; for (d = f; d--;)h[d] && h[d].destroy && h[d].destroy(); m && (m.minRange = m.userMinRange); e.isDirty =
                                                        k.isDirtyBox = !0; e.isDirtyData = !!h; d = !1
                                            } "point" === g.legendType && (this.processData(), this.generatePoints()); b && k.redraw(d)
                                    }; a.prototype.sortData = function (a) {
                                        var d = this, c = d.options.dataSorting.sortKey || "y", e = function (a, d) { return b(d) && a.pointClass.prototype.optionsToObject.call({ series: a }, d) || {} }; a.forEach(function (b, c) { a[c] = e(d, b); a[c].index = c }, this); a.concat().sort(function (a, b) { a = P(c, a); b = P(c, b); return b < a ? -1 : b > a ? 1 : 0 }).forEach(function (a, b) { a.x = b }, this); d.linkedSeries && d.linkedSeries.forEach(function (b) {
                                            var d =
                                                b.options, c = d.data; d.dataSorting && d.dataSorting.enabled || !c || (c.forEach(function (d, h) { c[h] = e(b, d); a[h] && (c[h].x = a[h].x, c[h].index = h) }), b.setData(c, !1))
                                        }); return a
                                    }; a.prototype.getProcessedData = function (a) {
                                        var b = this.xAxis, d = this.options, c = d.cropThreshold, e = a || this.getExtremesFromAll || d.getExtremesFromAll, h = this.isCartesian; a = b && b.val2lin; d = !(!b || !b.logarithmic); var f = 0, g = this.xData, k = this.yData, l = this.requireSorting; var m = !1; var A = g.length; if (b) {
                                            m = b.getExtremes(); var p = m.min; var n = m.max; m = b.categories &&
                                                !b.names.length
                                        } if (h && this.sorted && !e && (!c || A > c || this.forceCrop)) if (g[A - 1] < p || g[0] > n) g = [], k = []; else if (this.yData && (g[0] < p || g[A - 1] > n)) { var q = this.cropData(this.xData, this.yData, p, n); g = q.xData; k = q.yData; f = q.start; q = !0 } for (c = g.length || 1; --c;)if (b = d ? a(g[c]) - a(g[c - 1]) : g[c] - g[c - 1], 0 < b && ("undefined" === typeof t || b < t)) var t = b; else 0 > b && l && !m && (G(15, !1, this.chart), l = !1); return { xData: g, yData: k, cropped: q, cropStart: f, closestPointRange: t }
                                    }; a.prototype.processData = function (a) {
                                        var b = this.xAxis; if (this.isCartesian &&
                                            !this.isDirty && !b.isDirty && !this.yAxis.isDirty && !a) return !1; a = this.getProcessedData(); this.cropped = a.cropped; this.cropStart = a.cropStart; this.processedXData = a.xData; this.processedYData = a.yData; this.closestPointRange = this.basePointRange = a.closestPointRange
                                    }; a.prototype.cropData = function (a, b, d, c, e) { var h = a.length, f, g = 0, k = h; e = K(e, this.cropShoulder); for (f = 0; f < h; f++)if (a[f] >= d) { g = Math.max(0, f - e); break } for (d = f; d < h; d++)if (a[d] > c) { k = d + e; break } return { xData: a.slice(g, k), yData: b.slice(g, k), start: g, end: k } }; a.prototype.generatePoints =
                                        function () {
                                            var a = this.options, b = a.data, d = this.processedXData, c = this.processedYData, e = this.pointClass, h = d.length, f = this.cropStart || 0, g = this.hasGroupedData, k = a.keys, l = []; a = a.dataGrouping && a.dataGrouping.groupAll ? f : 0; var m, p, n = this.data; if (!n && !g) { var q = []; q.length = b.length; n = this.data = q } k && g && (this.options.keys = !1); for (p = 0; p < h; p++) {
                                                q = f + p; if (g) {
                                                    var t = (new e).init(this, [d[p]].concat(ha(c[p]))); t.dataGroup = this.groupMap[a + p]; t.dataGroup.options && (t.options = t.dataGroup.options, y(t, t.dataGroup.options),
                                                        delete t.dataLabels)
                                                } else (t = n[q]) || "undefined" === typeof b[q] || (n[q] = t = (new e).init(this, b[q], d[p])); t && (t.index = g ? a + p : q, l[p] = t)
                                            } this.options.keys = k; if (n && (h !== (m = n.length) || g)) for (p = 0; p < m; p++)p !== f || g || (p += h), n[p] && (n[p].destroyElements(), n[p].plotX = void 0); this.data = n; this.points = l; F(this, "afterGeneratePoints")
                                        }; a.prototype.getXExtremes = function (a) { return { min: O(a), max: B(a) } }; a.prototype.getExtremes = function (a, b) {
                                            var d = this.xAxis, c = this.yAxis, e = this.processedXData || this.xData, h = [], f = this.requireSorting ?
                                                this.cropShoulder : 0; c = c ? c.positiveValuesOnly : !1; var g, k = 0, l = 0, m = 0; a = a || this.stackedYData || this.processedYData || []; var p = a.length; if (d) { var n = d.getExtremes(); k = n.min; l = n.max } for (g = 0; g < p; g++) { var A = e[g]; n = a[g]; var q = (Q(n) || S(n)) && (n.length || 0 < n || !c); A = b || this.getExtremesFromAll || this.options.getExtremesFromAll || this.cropped || !d || (e[g + f] || A) >= k && (e[g - f] || A) <= l; if (q && A) if (q = n.length) for (; q--;)Q(n[q]) && (h[m++] = n[q]); else h[m++] = n } a = { dataMin: O(h), dataMax: B(h) }; F(this, "afterGetExtremes", { dataExtremes: a });
                                            return a
                                        }; a.prototype.applyExtremes = function () { var a = this.getExtremes(); this.dataMin = a.dataMin; this.dataMax = a.dataMax; return a }; a.prototype.getFirstValidPoint = function (a) { for (var b = a.length, d = 0, c = null; null === c && d < b;)c = a[d], d++; return c }; a.prototype.translate = function () {
                                            this.processedXData || this.processData(); this.generatePoints(); var a = this.options, c = a.stacking, e = this.xAxis, h = e.categories, f = this.enabledDataSorting, g = this.yAxis, k = this.points, l = k.length, m = !!this.modifyValue, p = this.pointPlacementToXValue(),
                                                n = !!p, q = a.threshold, v = a.startFromThreshold ? q : 0, r = this.zoneAxis || "y", B, y, I = Number.MAX_VALUE; for (B = 0; B < l; B++) {
                                                    var D = k[B], u = D.x, G = void 0, x = void 0, w = D.y, L = D.low, z = c && g.stacking && g.stacking.stacks[(this.negStacks && w < (v ? 0 : q) ? "-" : "") + this.stackKey]; if (g.positiveValuesOnly && !g.validatePositiveValue(w) || e.positiveValuesOnly && !e.validatePositiveValue(u)) D.isNull = !0; D.plotX = y = d(t(e.translate(u, 0, 0, 0, 1, p, "flags" === this.type), -1E5, 1E5)); if (c && this.visible && z && z[u]) {
                                                        var C = this.getStackIndicator(C, u, this.index);
                                                        D.isNull || (G = z[u], x = G.points[C.key])
                                                    } S(x) && (L = x[0], w = x[1], L === v && C.key === z[u].base && (L = K(Q(q) && q, g.min)), g.positiveValuesOnly && 0 >= L && (L = null), D.total = D.stackTotal = G.total, D.percentage = G.total && D.y / G.total * 100, D.stackY = w, this.irregularWidths || G.setOffset(this.pointXOffset || 0, this.barW || 0)); D.yBottom = b(L) ? t(g.translate(L, 0, 1, 0, 1), -1E5, 1E5) : null; m && (w = this.modifyValue(w, D)); D.plotY = void 0; Q(w) && (G = g.translate(w, !1, !0, !1, !0), "undefined" !== typeof G && (D.plotY = t(G, -1E5, 1E5))); D.isInside = this.isPointInside(D);
                                                    D.clientX = n ? d(e.translate(u, 0, 0, 0, 1, p)) : y; D.negative = D[r] < (a[r + "Threshold"] || q || 0); D.category = h && "undefined" !== typeof h[D.x] ? h[D.x] : D.x; if (!D.isNull && !1 !== D.visible) { "undefined" !== typeof H && (I = Math.min(I, Math.abs(y - H))); var H = y } D.zone = this.zones.length && D.getZone(); !D.graphic && this.group && f && (D.isNew = !0)
                                                } this.closestPointRangePx = I; F(this, "afterTranslate")
                                        }; a.prototype.getValidPoints = function (a, b, d) {
                                            var c = this.chart; return (a || this.points || []).filter(function (a) {
                                                return b && !c.isInsidePlot(a.plotX, a.plotY,
                                                    { inverted: c.inverted }) ? !1 : !1 !== a.visible && (d || !a.isNull)
                                            })
                                        }; a.prototype.getClipBox = function (a, b) {
                                            var d = this.options, c = this.chart, e = c.inverted, h = this.xAxis, f = h && this.yAxis, g = c.options.chart.scrollablePlotArea || {}; a && !1 === d.clip && f ? a = e ? { y: -c.chartWidth + f.len + f.pos, height: c.chartWidth, width: c.chartHeight, x: -c.chartHeight + h.len + h.pos } : { y: -f.pos, height: c.chartHeight, width: c.chartWidth, x: -h.pos } : (a = this.clipBox || c.clipBox, b && (a.width = c.plotSizeX, a.x = (c.scrollablePixelsX || 0) * (g.scrollPositionX || 0))); return b ?
                                                { width: a.width, x: a.x } : a
                                        }; a.prototype.getSharedClipKey = function (a) { if (this.sharedClipKey) return this.sharedClipKey; var b = [a && a.duration, a && a.easing, a && a.defer, this.getClipBox(a).height, this.options.xAxis, this.options.yAxis].join(); if (!1 !== this.options.clip || a) this.sharedClipKey = b; return b }; a.prototype.setClip = function (a) {
                                            var b = this.chart, d = this.options, c = b.renderer, e = b.inverted, h = this.clipBox, f = this.getClipBox(a), g = this.getSharedClipKey(a), k = b.sharedClips[g], l = b.sharedClips[g + "m"]; a && (f.width = 0, e &&
                                                (f.x = b.plotHeight + (!1 !== d.clip ? 0 : b.plotTop))); k ? b.hasLoaded || k.attr(f) : (a && (b.sharedClips[g + "m"] = l = c.clipRect(e ? (b.plotSizeX || 0) + 99 : -99, e ? -b.plotLeft : -b.plotTop, 99, e ? b.chartWidth : b.chartHeight)), b.sharedClips[g] = k = c.clipRect(f), k.count = { length: 0 }); a && !k.count[this.index] && (k.count[this.index] = !0, k.count.length += 1); if (!1 !== d.clip || a) this.group.clip(a || h ? k : b.clipRect), this.markerGroup.clip(l); a || (k.count[this.index] && (delete k.count[this.index], --k.count.length), 0 === k.count.length && (h || (b.sharedClips[g] =
                                                    k.destroy()), l && (b.sharedClips[g + "m"] = l.destroy())))
                                        }; a.prototype.animate = function (a) { var b = this.chart, d = c(this.options.animation), e = this.sharedClipKey; if (a) this.setClip(d); else if (e) { a = b.sharedClips[e]; e = b.sharedClips[e + "m"]; var h = this.getClipBox(d, !0); a && a.animate(h, d); e && e.animate({ width: h.width + 99, x: h.x - (b.inverted ? 0 : 99) }, d) } }; a.prototype.afterAnimate = function () { this.setClip(); F(this, "afterAnimate"); this.finishedAnimating = !0 }; a.prototype.drawPoints = function () {
                                            var a = this.points, b = this.chart, d =
                                                this.options.marker, c = this[this.specialGroup] || this.markerGroup, e = this.xAxis, h = K(d.enabled, !e || e.isRadial ? !0 : null, this.closestPointRangePx >= d.enabledThreshold * d.radius), f, g; if (!1 !== d.enabled || this._hasPointMarkers) for (f = 0; f < a.length; f++) {
                                                    var k = a[f]; var l = (g = k.graphic) ? "animate" : "attr"; var m = k.marker || {}; var p = !!k.marker; if ((h && "undefined" === typeof m.enabled || m.enabled) && !k.isNull && !1 !== k.visible) {
                                                        var n = K(m.symbol, this.symbol, "rect"); var q = this.markerAttribs(k, k.selected && "select"); this.enabledDataSorting &&
                                                            (k.startXPos = e.reversed ? -(q.width || 0) : e.width); var t = !1 !== k.isInside; g ? g[t ? "show" : "hide"](t).animate(q) : t && (0 < (q.width || 0) || k.hasImage) && (k.graphic = g = b.renderer.symbol(n, q.x, q.y, q.width, q.height, p ? m : d).add(c), this.enabledDataSorting && b.hasRendered && (g.attr({ x: k.startXPos }), l = "animate")); g && "animate" === l && g[t ? "show" : "hide"](t).animate(q); if (g && !b.styledMode) g[l](this.pointAttribs(k, k.selected && "select")); g && g.addClass(k.getClassName(), !0)
                                                    } else g && (k.graphic = g.destroy())
                                                }
                                        }; a.prototype.markerAttribs =
                                            function (a, b) { var d = this.options, c = d.marker, e = a.marker || {}, h = e.symbol || c.symbol, f = K(e.radius, c.radius); b && (c = c.states[b], b = e.states && e.states[b], f = K(b && b.radius, c && c.radius, f + (c && c.radiusPlus || 0))); a.hasImage = h && 0 === h.indexOf("url"); a.hasImage && (f = 0); a = { x: d.crisp ? Math.floor(a.plotX - f) : a.plotX - f, y: a.plotY - f }; f && (a.width = a.height = 2 * f); return a }; a.prototype.pointAttribs = function (a, b) {
                                                var d = this.options.marker, c = a && a.options, e = c && c.marker || {}, h = c && c.color, f = a && a.color, g = a && a.zone && a.zone.color, k = this.color;
                                                a = K(e.lineWidth, d.lineWidth); c = 1; k = h || g || f || k; h = e.fillColor || d.fillColor || k; f = e.lineColor || d.lineColor || k; b = b || "normal"; d = d.states[b]; b = e.states && e.states[b] || {}; a = K(b.lineWidth, d.lineWidth, a + K(b.lineWidthPlus, d.lineWidthPlus, 0)); h = b.fillColor || d.fillColor || h; f = b.lineColor || d.lineColor || f; c = K(b.opacity, d.opacity, c); return { stroke: f, "stroke-width": a, fill: h, opacity: c }
                                            }; a.prototype.destroy = function (a) {
                                                var b = this, d = b.chart, c = /AppleWebKit\/533/.test(k.navigator.userAgent), e = b.data || [], h, f, l, n; F(b, "destroy");
                                                this.removeEvents(a); (b.axisTypes || []).forEach(function (a) { (n = b[a]) && n.series && (p(n.series, b), n.isDirty = n.forceRedraw = !0) }); b.legendItem && b.chart.legend.destroyItem(b); for (f = e.length; f--;)(l = e[f]) && l.destroy && l.destroy(); b.clips && b.clips.forEach(function (a) { return a.destroy() }); g.clearTimeout(b.animationTimeout); H(b, function (a, b) { a instanceof m && !a.survive && (h = c && "group" === b ? "hide" : "destroy", a[h]()) }); d.hoverSeries === b && (d.hoverSeries = void 0); p(d.series, b); d.orderSeries(); H(b, function (d, c) {
                                                    a && "hcEvents" ===
                                                    c || delete b[c]
                                                })
                                            }; a.prototype.applyZones = function () {
                                                var a = this, b = this.chart, d = b.renderer, c = this.zones, e = this.clips || [], h = this.graph, f = this.area, g = Math.max(b.chartWidth, b.chartHeight), k = this[(this.zoneAxis || "y") + "Axis"], l = b.inverted, m, p, n, q, v, r, B, y, D = !1; if (c.length && (h || f) && k && "undefined" !== typeof k.min) {
                                                    var I = k.reversed; var F = k.horiz; h && !this.showLine && h.hide(); f && f.hide(); var u = k.getExtremes(); c.forEach(function (c, A) {
                                                        m = I ? F ? b.plotWidth : 0 : F ? 0 : k.toPixels(u.min) || 0; m = t(K(p, m), 0, g); p = t(Math.round(k.toPixels(K(c.value,
                                                            u.max), !0) || 0), 0, g); D && (m = p = k.toPixels(u.max)); q = Math.abs(m - p); v = Math.min(m, p); r = Math.max(m, p); k.isXAxis ? (n = { x: l ? r : v, y: 0, width: q, height: g }, F || (n.x = b.plotHeight - n.x)) : (n = { x: 0, y: l ? r : v, width: g, height: q }, F && (n.y = b.plotWidth - n.y)); l && d.isVML && (n = k.isXAxis ? { x: 0, y: I ? v : r, height: n.width, width: b.chartWidth } : { x: n.y - b.plotLeft - b.spacingBox.x, y: 0, width: n.height, height: b.chartHeight }); e[A] ? e[A].animate(n) : e[A] = d.clipRect(n); B = a["zone-area-" + A]; y = a["zone-graph-" + A]; h && y && y.clip(e[A]); f && B && B.clip(e[A]); D = c.value >
                                                                u.max; a.resetZones && 0 === p && (p = void 0)
                                                    }); this.clips = e
                                                } else a.visible && (h && h.show(!0), f && f.show(!0))
                                            }; a.prototype.invertGroups = function (a) { function b() { ["group", "markerGroup"].forEach(function (b) { d[b] && (c.renderer.isVML && d[b].attr({ width: d.yAxis.len, height: d.xAxis.len }), d[b].width = d.yAxis.len, d[b].height = d.xAxis.len, d[b].invert(d.isRadialSeries ? !1 : a)) }) } var d = this, c = d.chart; d.xAxis && (d.eventsToUnbind.push(D(c, "resize", b)), b(), d.invertGroups = b) }; a.prototype.plotGroup = function (a, d, c, e, h) {
                                                var f = this[a],
                                                g = !f; c = { visibility: c, zIndex: e || .1 }; "undefined" === typeof this.opacity || this.chart.styledMode || "inactive" === this.state || (c.opacity = this.opacity); g && (this[a] = f = this.chart.renderer.g().add(h)); f.addClass("highcharts-" + d + " highcharts-series-" + this.index + " highcharts-" + this.type + "-series " + (b(this.colorIndex) ? "highcharts-color-" + this.colorIndex + " " : "") + (this.options.className || "") + (f.hasClass("highcharts-tracker") ? " highcharts-tracker" : ""), !0); f.attr(c)[g ? "attr" : "animate"](this.getPlotBox()); return f
                                            };
                            a.prototype.getPlotBox = function () { var a = this.chart, b = this.xAxis, d = this.yAxis; a.inverted && (b = d, d = this.xAxis); return { translateX: b ? b.left : a.plotLeft, translateY: d ? d.top : a.plotTop, scaleX: 1, scaleY: 1 } }; a.prototype.removeEvents = function (a) { a || la(this); this.eventsToUnbind.length && (this.eventsToUnbind.forEach(function (a) { a() }), this.eventsToUnbind.length = 0) }; a.prototype.render = function () {
                                var a = this, b = a.chart, d = a.options, e = c(d.animation), h = a.visible ? "inherit" : "hidden", f = d.zIndex, g = a.hasRendered, k = b.seriesGroup,
                                l = b.inverted, m = !a.finishedAnimating && b.renderer.isSVG && e.duration; F(this, "render"); var p = a.plotGroup("group", "series", h, f, k); a.markerGroup = a.plotGroup("markerGroup", "markers", h, f, k); m && a.animate && a.animate(!0); p.inverted = K(a.invertible, a.isCartesian) ? l : !1; a.drawGraph && (a.drawGraph(), a.applyZones()); a.visible && a.drawPoints(); a.drawDataLabels && a.drawDataLabels(); a.redrawPoints && a.redrawPoints(); a.drawTracker && !1 !== a.options.enableMouseTracking && a.drawTracker(); a.invertGroups(l); !1 === d.clip || a.sharedClipKey ||
                                    g || p.clip(b.clipRect); m && a.animate && a.animate(); g || (m && e.defer && (m += e.defer), a.animationTimeout = R(function () { a.afterAnimate() }, m || 0)); a.isDirty = !1; a.hasRendered = !0; F(a, "afterRender")
                            }; a.prototype.redraw = function () { var a = this.chart, b = this.isDirty || this.isDirtyData, d = this.group, c = this.xAxis, e = this.yAxis; d && (a.inverted && d.attr({ width: a.plotWidth, height: a.plotHeight }), d.animate({ translateX: K(c && c.left, a.plotLeft), translateY: K(e && e.top, a.plotTop) })); this.translate(); this.render(); b && delete this.kdTree };
                            a.prototype.searchPoint = function (a, b) { var d = this.xAxis, c = this.yAxis, e = this.chart.inverted; return this.searchKDTree({ clientX: e ? d.len - a.chartY + d.pos : a.chartX - d.pos, plotY: e ? c.len - a.chartX + c.pos : a.chartY - c.pos }, b, a) }; a.prototype.buildKDTree = function (a) {
                                function b(a, c, e) { var h = a && a.length; if (h) { var f = d.kdAxisArray[c % e]; a.sort(function (a, b) { return a[f] - b[f] }); h = Math.floor(h / 2); return { point: a[h], left: b(a.slice(0, h), c + 1, e), right: b(a.slice(h + 1), c + 1, e) } } } this.buildingKdTree = !0; var d = this, c = -1 < d.options.findNearestPointBy.indexOf("y") ?
                                    2 : 1; delete d.kdTree; R(function () { d.kdTree = b(d.getValidPoints(null, !d.directTouch), c, c); d.buildingKdTree = !1 }, d.options.kdNow || a && "touchstart" === a.type ? 0 : 1)
                            }; a.prototype.searchKDTree = function (a, d, c) {
                                function e(a, d, c, l) {
                                    var m = d.point, p = h.kdAxisArray[c % l], n = m, q = b(a[f]) && b(m[f]) ? Math.pow(a[f] - m[f], 2) : null; var t = b(a[g]) && b(m[g]) ? Math.pow(a[g] - m[g], 2) : null; t = (q || 0) + (t || 0); m.dist = b(t) ? Math.sqrt(t) : Number.MAX_VALUE; m.distX = b(q) ? Math.sqrt(q) : Number.MAX_VALUE; p = a[p] - m[p]; t = 0 > p ? "left" : "right"; q = 0 > p ? "right" : "left";
                                    d[t] && (t = e(a, d[t], c + 1, l), n = t[k] < n[k] ? t : m); d[q] && Math.sqrt(p * p) < n[k] && (a = e(a, d[q], c + 1, l), n = a[k] < n[k] ? a : n); return n
                                } var h = this, f = this.kdAxisArray[0], g = this.kdAxisArray[1], k = d ? "distX" : "dist"; d = -1 < h.options.findNearestPointBy.indexOf("y") ? 2 : 1; this.kdTree || this.buildingKdTree || this.buildKDTree(c); if (this.kdTree) return e(a, this.kdTree, d, d)
                            }; a.prototype.pointPlacementToXValue = function () {
                                var a = this.options, b = a.pointRange, d = this.xAxis; a = a.pointPlacement; "between" === a && (a = d.reversed ? -.5 : .5); return Q(a) ? a * (b ||
                                    d.pointRange) : 0
                            }; a.prototype.isPointInside = function (a) { return "undefined" !== typeof a.plotY && "undefined" !== typeof a.plotX && 0 <= a.plotY && a.plotY <= this.yAxis.len && 0 <= a.plotX && a.plotX <= this.xAxis.len }; a.prototype.drawTracker = function () {
                                var a = this, b = a.options, d = b.trackByArea, c = [].concat(d ? a.areaPath : a.graphPath), e = a.chart, h = e.pointer, f = e.renderer, g = e.options.tooltip.snap, k = a.tracker, l = function (b) { if (e.hoverSeries !== a) a.onMouseOver() }, m = "rgba(192,192,192," + (q ? .0001 : .002) + ")"; k ? k.attr({ d: c }) : a.graph && (a.tracker =
                                    f.path(c).attr({ visibility: a.visible ? "visible" : "hidden", zIndex: 2 }).addClass(d ? "highcharts-tracker-area" : "highcharts-tracker-line").add(a.group), e.styledMode || a.tracker.attr({ "stroke-linecap": "round", "stroke-linejoin": "round", stroke: m, fill: d ? m : "none", "stroke-width": a.graph.strokeWidth() + (d ? 0 : 2 * g) }), [a.tracker, a.markerGroup, a.dataLabelsGroup].forEach(function (a) {
                                        if (a && (a.addClass("highcharts-tracker").on("mouseover", l).on("mouseout", function (a) { h.onTrackerMouseOut(a) }), b.cursor && !e.styledMode && a.css({ cursor: b.cursor }),
                                            v)) a.on("touchstart", l)
                                    })); F(this, "afterDrawTracker")
                            }; a.prototype.addPoint = function (a, b, d, c, e) {
                                var h = this.options, f = this.data, g = this.chart, k = this.xAxis; k = k && k.hasNames && k.names; var l = h.data, m = this.xData, p; b = K(b, !0); var n = { series: this }; this.pointClass.prototype.applyOptions.apply(n, [a]); var q = n.x; var t = m.length; if (this.requireSorting && q < m[t - 1]) for (p = !0; t && m[t - 1] > q;)t--; this.updateParallelArrays(n, "splice", t, 0, 0); this.updateParallelArrays(n, t); k && n.name && (k[q] = n.name); l.splice(t, 0, a); p && (this.data.splice(t,
                                    0, null), this.processData()); "point" === h.legendType && this.generatePoints(); d && (f[0] && f[0].remove ? f[0].remove(!1) : (f.shift(), this.updateParallelArrays(n, "shift"), l.shift())); !1 !== e && F(this, "addPoint", { point: n }); this.isDirtyData = this.isDirty = !0; b && g.redraw(c)
                            }; a.prototype.removePoint = function (a, b, d) {
                                var c = this, h = c.data, f = h[a], g = c.points, k = c.chart, l = function () {
                                    g && g.length === h.length && g.splice(a, 1); h.splice(a, 1); c.options.data.splice(a, 1); c.updateParallelArrays(f || { series: c }, "splice", a, 1); f && f.destroy();
                                    c.isDirty = !0; c.isDirtyData = !0; b && k.redraw()
                                }; e(d, k); b = K(b, !0); f ? f.firePointEvent("remove", null, l) : l()
                            }; a.prototype.remove = function (a, b, d, c) { function e() { h.destroy(c); f.isDirtyLegend = f.isDirtyBox = !0; f.linkSeries(); K(a, !0) && f.redraw(b) } var h = this, f = h.chart; !1 !== d ? F(h, "remove", null, e) : e() }; a.prototype.update = function (a, b) {
                                a = h(a, this.userOptions); F(this, "update", { options: a }); var d = this, c = d.chart, e = d.userOptions, f = d.initialType || d.type, g = c.options.plotOptions, k = r[f].prototype, l = d.finishedAnimating && { animation: !1 },
                                    m = {}, p, n = ["eventOptions", "navigatorSeries", "baseSeries"], q = a.type || e.type || c.options.chart.type, t = !(this.hasDerivedData || q && q !== this.type || "undefined" !== typeof a.pointStart || "undefined" !== typeof a.pointInterval || "undefined" !== typeof a.relativeXValue || d.hasOptionChanged("dataGrouping") || d.hasOptionChanged("pointStart") || d.hasOptionChanged("pointInterval") || d.hasOptionChanged("pointIntervalUnit") || d.hasOptionChanged("keys")); q = q || f; t && (n.push("data", "isDirtyData", "points", "processedXData", "processedYData",
                                        "xIncrement", "cropped", "_hasPointMarkers", "_hasPointLabels", "clips", "nodes", "layout", "mapMap", "mapData", "minY", "maxY", "minX", "maxX"), !1 !== a.visible && n.push("area", "graph"), d.parallelArrays.forEach(function (a) { n.push(a + "Data") }), a.data && (a.dataSorting && y(d.options.dataSorting, a.dataSorting), this.setData(a.data, !1))); a = M(e, l, { index: "undefined" === typeof e.index ? d.index : e.index, pointStart: K(g && g.series && g.series.pointStart, e.pointStart, d.xData[0]) }, !t && { data: d.options.data }, a); t && a.data && (a.data = d.options.data);
                                n = ["group", "markerGroup", "dataLabelsGroup", "transformGroup"].concat(n); n.forEach(function (a) { n[a] = d[a]; delete d[a] }); g = !1; if (r[q]) { if (g = q !== d.type, d.remove(!1, !1, !1, !0), g) if (Object.setPrototypeOf) Object.setPrototypeOf(d, r[q].prototype); else { l = Object.hasOwnProperty.call(d, "hcEvents") && d.hcEvents; for (p in k) d[p] = void 0; y(d, r[q].prototype); l ? d.hcEvents = l : delete d.hcEvents } } else G(17, !0, c, { missingModuleFor: q }); n.forEach(function (a) { d[a] = n[a] }); d.init(c, a); if (t && this.points) {
                                    var v = d.options; !1 === v.visible ?
                                        (m.graphic = 1, m.dataLabel = 1) : d._hasPointLabels || (a = v.marker, k = v.dataLabels, !a || !1 !== a.enabled && (e.marker && e.marker.symbol) === a.symbol || (m.graphic = 1), k && !1 === k.enabled && (m.dataLabel = 1)); this.points.forEach(function (a) { a && a.series && (a.resolveColor(), Object.keys(m).length && a.destroyElements(m), !1 === v.showInLegend && a.legendItem && c.legend.destroyItem(a)) }, this)
                                } d.initialType = f; c.linkSeries(); g && d.linkedSeries.length && (d.isDirtyData = !0); F(this, "afterUpdate"); K(b, !0) && c.redraw(t ? void 0 : !1)
                            }; a.prototype.setName =
                                function (a) { this.name = this.options.name = this.userOptions.name = a; this.chart.isDirtyLegend = !0 }; a.prototype.hasOptionChanged = function (a) { var b = this.options[a], d = this.chart.options.plotOptions, c = this.userOptions[a]; return c ? b !== c : b !== K(d && d[this.type] && d[this.type][a], d && d.series && d.series[a], b) }; a.prototype.onMouseOver = function () {
                                    var a = this.chart, b = a.hoverSeries; a.pointer.setHoverChartIndex(); if (b && b !== this) b.onMouseOut(); this.options.events.mouseOver && F(this, "mouseOver"); this.setState("hover"); a.hoverSeries =
                                        this
                                }; a.prototype.onMouseOut = function () { var a = this.options, b = this.chart, d = b.tooltip, c = b.hoverPoint; b.hoverSeries = null; if (c) c.onMouseOut(); this && a.events.mouseOut && F(this, "mouseOut"); !d || this.stickyTracking || d.shared && !this.noSharedTooltip || d.hide(); b.series.forEach(function (a) { a.setState("", !0) }) }; a.prototype.setState = function (a, b) {
                                    var d = this, c = d.options, e = d.graph, h = c.inactiveOtherPoints, f = c.states, g = K(f[a || "normal"] && f[a || "normal"].animation, d.chart.options.chart.animation), k = c.lineWidth, l = 0, m = c.opacity;
                                    a = a || ""; if (d.state !== a && ([d.group, d.markerGroup, d.dataLabelsGroup].forEach(function (b) { b && (d.state && b.removeClass("highcharts-series-" + d.state), a && b.addClass("highcharts-series-" + a)) }), d.state = a, !d.chart.styledMode)) {
                                        if (f[a] && !1 === f[a].enabled) return; a && (k = f[a].lineWidth || k + (f[a].lineWidthPlus || 0), m = K(f[a].opacity, m)); if (e && !e.dashstyle) for (c = { "stroke-width": k }, e.animate(c, g); d["zone-graph-" + l];)d["zone-graph-" + l].animate(c, g), l += 1; h || [d.group, d.markerGroup, d.dataLabelsGroup, d.labelBySeries].forEach(function (a) {
                                            a &&
                                            a.animate({ opacity: m }, g)
                                        })
                                    } b && h && d.points && d.setAllPointsToState(a || void 0)
                                }; a.prototype.setAllPointsToState = function (a) { this.points.forEach(function (b) { b.setState && b.setState(a) }) }; a.prototype.setVisible = function (a, b) {
                                    var d = this, c = d.chart, e = d.legendItem, h = c.options.chart.ignoreHiddenSeries, f = d.visible, g = (d.visible = a = d.options.visible = d.userOptions.visible = "undefined" === typeof a ? !f : a) ? "show" : "hide";["group", "dataLabelsGroup", "markerGroup", "tracker", "tt"].forEach(function (a) { if (d[a]) d[a][g]() }); if (c.hoverSeries ===
                                        d || (c.hoverPoint && c.hoverPoint.series) === d) d.onMouseOut(); e && c.legend.colorizeItem(d, a); d.isDirty = !0; d.options.stacking && c.series.forEach(function (a) { a.options.stacking && a.visible && (a.isDirty = !0) }); d.linkedSeries.forEach(function (b) { b.setVisible(a, !1) }); h && (c.isDirtyBox = !0); F(d, g); !1 !== b && c.redraw()
                                }; a.prototype.show = function () { this.setVisible(!0) }; a.prototype.hide = function () { this.setVisible(!1) }; a.prototype.select = function (a) {
                                    this.selected = a = this.options.selected = "undefined" === typeof a ? !this.selected :
                                        a; this.checkbox && (this.checkbox.checked = a); F(this, a ? "select" : "unselect")
                                }; a.prototype.shouldShowTooltip = function (a, b, d) { void 0 === d && (d = {}); d.series = this; d.visiblePlotOnly = !0; return this.chart.isInsidePlot(a, b, d) }; a.defaultOptions = u; return a
                        }(); y(a.prototype, { axisTypes: ["xAxis", "yAxis"], coll: "series", colorCounter: 0, cropShoulder: 1, directTouch: !1, drawLegendSymbol: z.drawLineMarker, isCartesian: !0, kdAxisArray: ["clientX", "plotY"], parallelArrays: ["x", "y"], pointClass: J, requireSorting: !0, sorted: !0 }); n.series =
                            a; ""; ""; return a
                    }); M(a, "Extensions/ScrollablePlotArea.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/Axis/Axis.js"], a["Core/Chart/Chart.js"], a["Core/Series/Series.js"], a["Core/Renderer/RendererRegistry.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x) {
                        var r = a.stop, u = x.addEvent, n = x.createElement, m = x.merge, g = x.pick; u(C, "afterSetChartSize", function (a) {
                            var c = this.options.chart.scrollablePlotArea, g = c && c.minWidth; c = c && c.minHeight; if (!this.renderer.forExport) {
                                if (g) {
                                    if (this.scrollablePixelsX = g = Math.max(0,
                                        g - this.chartWidth)) { this.scrollablePlotBox = this.renderer.scrollablePlotBox = m(this.plotBox); this.plotBox.width = this.plotWidth += g; this.inverted ? this.clipBox.height += g : this.clipBox.width += g; var f = { 1: { name: "right", value: g } } }
                                } else c && (this.scrollablePixelsY = g = Math.max(0, c - this.chartHeight)) && (this.scrollablePlotBox = this.renderer.scrollablePlotBox = m(this.plotBox), this.plotBox.height = this.plotHeight += g, this.inverted ? this.clipBox.width += g : this.clipBox.height += g, f = { 2: { name: "bottom", value: g } }); f && !a.skipAxes &&
                                    this.axes.forEach(function (a) { f[a.side] ? a.getPlotLinePath = function () { var c = f[a.side].name, e = this[c]; this[c] = e - f[a.side].value; var g = w.prototype.getPlotLinePath.apply(this, arguments); this[c] = e; return g } : (a.setAxisSize(), a.setAxisTranslation()) })
                            }
                        }); u(C, "render", function () { this.scrollablePixelsX || this.scrollablePixelsY ? (this.setUpScrolling && this.setUpScrolling(), this.applyFixed()) : this.fixedDiv && this.applyFixed() }); C.prototype.setUpScrolling = function () {
                            var a = this, e = {
                                WebkitOverflowScrolling: "touch",
                                overflowX: "hidden", overflowY: "hidden"
                            }; this.scrollablePixelsX && (e.overflowX = "auto"); this.scrollablePixelsY && (e.overflowY = "auto"); this.scrollingParent = n("div", { className: "highcharts-scrolling-parent" }, { position: "relative" }, this.renderTo); this.scrollingContainer = n("div", { className: "highcharts-scrolling" }, e, this.scrollingParent); u(this.scrollingContainer, "scroll", function () { a.pointer && delete a.pointer.chartPosition }); this.innerContainer = n("div", { className: "highcharts-inner-container" }, null, this.scrollingContainer);
                            this.innerContainer.appendChild(this.container); this.setUpScrolling = null
                        }; C.prototype.moveFixedElements = function () {
                            var a = this.container, e = this.fixedRenderer, g = ".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title".split(" "), f; this.scrollablePixelsX &&
                                !this.inverted ? f = ".highcharts-yaxis" : this.scrollablePixelsX && this.inverted ? f = ".highcharts-xaxis" : this.scrollablePixelsY && !this.inverted ? f = ".highcharts-xaxis" : this.scrollablePixelsY && this.inverted && (f = ".highcharts-yaxis"); f && g.push(f + ":not(.highcharts-radial-axis)", f + "-labels:not(.highcharts-radial-axis-labels)"); g.forEach(function (c) { [].forEach.call(a.querySelectorAll(c), function (a) { (a.namespaceURI === e.SVG_NS ? e.box : e.box.parentNode).appendChild(a); a.style.pointerEvents = "auto" }) })
                        }; C.prototype.applyFixed =
                            function () {
                                var a = !this.fixedDiv, e = this.options.chart, l = e.scrollablePlotArea, f = z.getRendererType(); a ? (this.fixedDiv = n("div", { className: "highcharts-fixed" }, { position: "absolute", overflow: "hidden", pointerEvents: "none", zIndex: (e.style && e.style.zIndex || 0) + 2, top: 0 }, null, !0), this.scrollingContainer && this.scrollingContainer.parentNode.insertBefore(this.fixedDiv, this.scrollingContainer), this.renderTo.style.overflow = "visible", this.fixedRenderer = e = new f(this.fixedDiv, this.chartWidth, this.chartHeight, this.options.chart.style),
                                    this.scrollableMask = e.path().attr({ fill: this.options.chart.backgroundColor || "#fff", "fill-opacity": g(l.opacity, .85), zIndex: -1 }).addClass("highcharts-scrollable-mask").add(), u(this, "afterShowResetZoom", this.moveFixedElements), u(this, "afterDrilldown", this.moveFixedElements), u(this, "afterLayOutTitles", this.moveFixedElements)) : this.fixedRenderer.setSize(this.chartWidth, this.chartHeight); if (this.scrollableDirty || a) this.scrollableDirty = !1, this.moveFixedElements(); e = this.chartWidth + (this.scrollablePixelsX ||
                                        0); f = this.chartHeight + (this.scrollablePixelsY || 0); r(this.container); this.container.style.width = e + "px"; this.container.style.height = f + "px"; this.renderer.boxWrapper.attr({ width: e, height: f, viewBox: [0, 0, e, f].join(" ") }); this.chartBackground.attr({ width: e, height: f }); this.scrollingContainer.style.height = this.chartHeight + "px"; a && (l.scrollPositionX && (this.scrollingContainer.scrollLeft = this.scrollablePixelsX * l.scrollPositionX), l.scrollPositionY && (this.scrollingContainer.scrollTop = this.scrollablePixelsY * l.scrollPositionY));
                                f = this.axisOffset; a = this.plotTop - f[0] - 1; l = this.plotLeft - f[3] - 1; e = this.plotTop + this.plotHeight + f[2] + 1; f = this.plotLeft + this.plotWidth + f[1] + 1; var m = this.plotLeft + this.plotWidth - (this.scrollablePixelsX || 0), q = this.plotTop + this.plotHeight - (this.scrollablePixelsY || 0); a = this.scrollablePixelsX ? [["M", 0, a], ["L", this.plotLeft - 1, a], ["L", this.plotLeft - 1, e], ["L", 0, e], ["Z"], ["M", m, a], ["L", this.chartWidth, a], ["L", this.chartWidth, e], ["L", m, e], ["Z"]] : this.scrollablePixelsY ? [["M", l, 0], ["L", l, this.plotTop - 1], ["L", f, this.plotTop -
                                    1], ["L", f, 0], ["Z"], ["M", l, q], ["L", l, this.chartHeight], ["L", f, this.chartHeight], ["L", f, q], ["Z"]] : [["M", 0, 0]]; "adjustHeight" !== this.redrawTrigger && this.scrollableMask.attr({ d: a })
                            }; u(w, "afterInit", function () { this.chart.scrollableDirty = !0 }); u(E, "show", function () { this.chart.scrollableDirty = !0 }); ""
                    }); M(a, "Core/Axis/StackingAxis.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/Axis/Axis.js"], a["Core/Utilities.js"]], function (a, w, C) {
                        var r = a.getDeferredAnimation, z = C.addEvent, x = C.destroyObjectProperties,
                        J = C.fireEvent, u = C.isNumber, n = C.objectEach, m; (function (a) {
                            function c() { var a = this.stacking; if (a) { var c = a.stacks; n(c, function (a, e) { x(a); c[e] = null }); a && a.stackTotalGroup && a.stackTotalGroup.destroy() } } function e() { this.stacking || (this.stacking = new f(this)) } var g = []; a.compose = function (a) { -1 === g.indexOf(a) && (g.push(a), z(a, "init", e), z(a, "destroy", c)); return a }; var f = function () {
                                function a(a) { this.oldStacks = {}; this.stacks = {}; this.stacksTouched = 0; this.axis = a } a.prototype.buildStacks = function () {
                                    var a = this.axis,
                                    c = a.series, e = a.options.reversedStacks, f = c.length, g; if (!a.isXAxis) { this.usePercentage = !1; for (g = f; g--;) { var l = c[e ? g : f - g - 1]; l.setStackedPoints(); l.setGroupedPoints() } for (g = 0; g < f; g++)c[g].modifyStacks(); J(a, "afterBuildStacks") }
                                }; a.prototype.cleanStacks = function () { if (!this.axis.isXAxis) { if (this.oldStacks) var a = this.stacks = this.oldStacks; n(a, function (a) { n(a, function (a) { a.cumulative = a.total }) }) } }; a.prototype.resetStacks = function () {
                                    var a = this, c = a.stacks; a.axis.isXAxis || n(c, function (c) {
                                        n(c, function (e, f) {
                                            u(e.touched) &&
                                            e.touched < a.stacksTouched ? (e.destroy(), delete c[f]) : (e.total = null, e.cumulative = null)
                                        })
                                    })
                                }; a.prototype.renderStackTotals = function () { var a = this.axis, c = a.chart, e = c.renderer, f = this.stacks; a = r(c, a.options.stackLabels && a.options.stackLabels.animation || !1); var g = this.stackTotalGroup = this.stackTotalGroup || e.g("stack-labels").attr({ visibility: "visible", zIndex: 6, opacity: 0 }).add(); g.translate(c.plotLeft, c.plotTop); n(f, function (a) { n(a, function (a) { a.render(g) }) }); g.animate({ opacity: 1 }, a) }; return a
                            }(); a.Additions =
                                f
                        })(m || (m = {})); return m
                    }); M(a, "Extensions/Stacking.js", [a["Core/Axis/Axis.js"], a["Core/Chart/Chart.js"], a["Core/FormatUtilities.js"], a["Core/Globals.js"], a["Core/Series/Series.js"], a["Core/Axis/StackingAxis.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x, J) {
                        var r = C.format, n = J.correctFloat, m = J.defined, g = J.destroyObjectProperties, c = J.isArray, e = J.isNumber, l = J.objectEach, f = J.pick, v = function () {
                            function a(a, c, e, f, g) {
                                var k = a.chart.inverted; this.axis = a; this.isNegative = e; this.options = c = c || {}; this.x = f; this.total =
                                    null; this.points = {}; this.hasValidPoints = !1; this.stack = g; this.rightCliff = this.leftCliff = 0; this.alignOptions = { align: c.align || (k ? e ? "left" : "right" : "center"), verticalAlign: c.verticalAlign || (k ? "middle" : e ? "bottom" : "top"), y: c.y, x: c.x }; this.textAlign = c.textAlign || (k ? e ? "right" : "left" : "center")
                            } a.prototype.destroy = function () { g(this, this.axis) }; a.prototype.render = function (a) {
                                var c = this.axis.chart, e = this.options, g = e.format; g = g ? r(g, this, c) : e.formatter.call(this); this.label ? this.label.attr({ text: g, visibility: "hidden" }) :
                                    (this.label = c.renderer.label(g, null, null, e.shape, null, null, e.useHTML, !1, "stack-labels"), g = { r: e.borderRadius || 0, text: g, rotation: e.rotation, padding: f(e.padding, 5), visibility: "hidden" }, c.styledMode || (g.fill = e.backgroundColor, g.stroke = e.borderColor, g["stroke-width"] = e.borderWidth, this.label.css(e.style)), this.label.attr(g), this.label.added || this.label.add(a)); this.label.labelrank = c.plotSizeY
                            }; a.prototype.setOffset = function (a, c, g, l, n) {
                                var k = this.axis, h = k.chart; l = k.translate(k.stacking.usePercentage ? 100 :
                                    l ? l : this.total, 0, 0, 0, 1); g = k.translate(g ? g : 0); g = m(l) && Math.abs(l - g); a = f(n, h.xAxis[0].translate(this.x)) + a; k = m(l) && this.getStackBox(h, this, a, l, c, g, k); c = this.label; g = this.isNegative; a = "justify" === f(this.options.overflow, "justify"); var d = this.textAlign; c && k && (n = c.getBBox(), l = c.padding, d = "left" === d ? h.inverted ? -l : l : "right" === d ? n.width : h.inverted && "center" === d ? n.width / 2 : h.inverted ? g ? n.width + l : -l : n.width / 2, g = h.inverted ? n.height / 2 : g ? -l : n.height, this.alignOptions.x = f(this.options.x, 0), this.alignOptions.y = f(this.options.y,
                                        0), k.x -= d, k.y -= g, c.align(this.alignOptions, null, k), h.isInsidePlot(c.alignAttr.x + d - this.alignOptions.x, c.alignAttr.y + g - this.alignOptions.y) ? c.show() : (c.alignAttr.y = -9999, a = !1), a && z.prototype.justifyDataLabel.call(this.axis, c, this.alignOptions, c.alignAttr, n, k), c.attr({ x: c.alignAttr.x, y: c.alignAttr.y }), f(!a && this.options.crop, !0) && ((h = e(c.x) && e(c.y) && h.isInsidePlot(c.x - l + c.width, c.y) && h.isInsidePlot(c.x + l, c.y)) || c.hide()))
                            }; a.prototype.getStackBox = function (a, c, e, f, g, l, h) {
                                var d = c.axis.reversed, b = a.inverted,
                                k = h.height + h.pos - (b ? a.plotLeft : a.plotTop); c = c.isNegative && !d || !c.isNegative && d; return { x: b ? c ? f - h.right : f - l + h.pos - a.plotLeft : e + a.xAxis[0].transB - a.plotLeft, y: b ? h.height - e - g : c ? k - f - l : k - f, width: b ? l : g, height: b ? g : l }
                            }; return a
                        }(); w.prototype.getStacks = function () {
                            var a = this, c = a.inverted; a.yAxis.forEach(function (a) { a.stacking && a.stacking.stacks && a.hasVisibleSeries && (a.stacking.oldStacks = a.stacking.stacks) }); a.series.forEach(function (e) {
                                var g = e.xAxis && e.xAxis.options || {}; !e.options.stacking || !0 !== e.visible &&
                                    !1 !== a.options.chart.ignoreHiddenSeries || (e.stackKey = [e.type, f(e.options.stack, ""), c ? g.top : g.left, c ? g.height : g.width].join())
                            })
                        }; x.compose(a); z.prototype.setGroupedPoints = function () { var a = this.yAxis.stacking; this.options.centerInCategory && (this.is("column") || this.is("columnrange")) && !this.options.stacking && 1 < this.chart.series.length ? z.prototype.setStackedPoints.call(this, "group") : a && l(a.stacks, function (c, e) { "group" === e.slice(-5) && (l(c, function (a) { return a.destroy() }), delete a.stacks[e]) }) }; z.prototype.setStackedPoints =
                            function (a) {
                                var e = a || this.options.stacking; if (e && (!0 === this.visible || !1 === this.chart.options.chart.ignoreHiddenSeries)) {
                                    var g = this.processedXData, l = this.processedYData, q = [], r = l.length, t = this.options, h = t.threshold, d = f(t.startFromThreshold && h, 0); t = t.stack; a = a ? this.type + "," + e : this.stackKey; var b = "-" + a, p = this.negStacks, u = this.yAxis, y = u.stacking.stacks, x = u.stacking.oldStacks, F, w; u.stacking.stacksTouched += 1; for (w = 0; w < r; w++) {
                                        var z = g[w]; var C = l[w]; var E = this.getStackIndicator(E, z, this.index); var J = E.key;
                                        var H = (F = p && C < (d ? 0 : h)) ? b : a; y[H] || (y[H] = {}); y[H][z] || (x[H] && x[H][z] ? (y[H][z] = x[H][z], y[H][z].total = null) : y[H][z] = new v(u, u.options.stackLabels, F, z, t)); H = y[H][z]; null !== C ? (H.points[J] = H.points[this.index] = [f(H.cumulative, d)], m(H.cumulative) || (H.base = J), H.touched = u.stacking.stacksTouched, 0 < E.index && !1 === this.singleStacks && (H.points[J][0] = H.points[this.index + "," + z + ",0"][0])) : H.points[J] = H.points[this.index] = null; "percent" === e ? (F = F ? a : b, p && y[F] && y[F][z] ? (F = y[F][z], H.total = F.total = Math.max(F.total, H.total) +
                                            Math.abs(C) || 0) : H.total = n(H.total + (Math.abs(C) || 0))) : "group" === e ? (c(C) && (C = C[0]), null !== C && (H.total = (H.total || 0) + 1)) : H.total = n(H.total + (C || 0)); H.cumulative = "group" === e ? (H.total || 1) - 1 : f(H.cumulative, d) + (C || 0); null !== C && (H.points[J].push(H.cumulative), q[w] = H.cumulative, H.hasValidPoints = !0)
                                    } "percent" === e && (u.stacking.usePercentage = !0); "group" !== e && (this.stackedYData = q); u.stacking.oldStacks = {}
                                }
                            }; z.prototype.modifyStacks = function () {
                                var a = this, c = a.stackKey, e = a.yAxis.stacking.stacks, f = a.processedXData, g,
                                l = a.options.stacking; a[l + "Stacker"] && [c, "-" + c].forEach(function (c) { for (var h = f.length, d, b; h--;)if (d = f[h], g = a.getStackIndicator(g, d, a.index, c), b = (d = e[c] && e[c][d]) && d.points[g.key]) a[l + "Stacker"](b, d, h) })
                            }; z.prototype.percentStacker = function (a, c, e) { c = c.total ? 100 / c.total : 0; a[0] = n(a[0] * c); a[1] = n(a[1] * c); this.stackedYData[e] = a[1] }; z.prototype.getStackIndicator = function (a, c, e, f) { !m(a) || a.x !== c || f && a.key !== f ? a = { x: c, index: 0, key: f } : a.index++; a.key = [e, c, a.index].join(); return a }; E.StackItem = v; ""; return E.StackItem
                    });
    M(a, "Series/Line/LineSeries.js", [a["Core/Color/Palette.js"], a["Core/Series/Series.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]], function (a, w, C, E) {
        var r = this && this.__extends || function () {
            var a = function (n, m) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var e in c) c.hasOwnProperty(e) && (a[e] = c[e]) }; return a(n, m) }; return function (n, m) {
                function g() { this.constructor = n } a(n, m); n.prototype = null === m ? Object.create(m) : (g.prototype = m.prototype,
                    new g)
            }
        }(), x = E.defined, J = E.merge; E = function (u) {
            function n() { var a = null !== u && u.apply(this, arguments) || this; a.data = void 0; a.options = void 0; a.points = void 0; return a } r(n, u); n.prototype.drawGraph = function () {
                var m = this, g = this.options, c = (this.gappedPath || this.getGraphPath).call(this), e = this.chart.styledMode, l = [["graph", "highcharts-graph"]]; e || l[0].push(g.lineColor || this.color || a.neutralColor20, g.dashStyle); l = m.getZonesGraphs(l); l.forEach(function (a, l) {
                    var f = a[0], k = m[f], n = k ? "animate" : "attr"; k ? (k.endX = m.preventGraphAnimation ?
                        null : c.xMap, k.animate({ d: c })) : c.length && (m[f] = k = m.chart.renderer.path(c).addClass(a[1]).attr({ zIndex: 1 }).add(m.group)); k && !e && (f = { stroke: a[2], "stroke-width": g.lineWidth, fill: m.fillGraph && m.color || "none" }, a[3] ? f.dashstyle = a[3] : "square" !== g.linecap && (f["stroke-linecap"] = f["stroke-linejoin"] = "round"), k[n](f).shadow(2 > l && g.shadow)); k && (k.startX = c.xMap, k.isArea = c.isArea)
                })
            }; n.prototype.getGraphPath = function (a, g, c) {
                var e = this, l = e.options, f = [], m = [], n, k = l.step; a = a || e.points; var r = a.reversed; r && a.reverse();
                (k = { right: 1, center: 2 }[k] || k && 3) && r && (k = 4 - k); a = this.getValidPoints(a, !1, !(l.connectNulls && !g && !c)); a.forEach(function (q, r) {
                    var v = q.plotX, t = q.plotY, h = a[r - 1]; (q.leftCliff || h && h.rightCliff) && !c && (n = !0); q.isNull && !x(g) && 0 < r ? n = !l.connectNulls : q.isNull && !g ? n = !0 : (0 === r || n ? r = [["M", q.plotX, q.plotY]] : e.getPointSpline ? r = [e.getPointSpline(a, q, r)] : k ? (r = 1 === k ? [["L", h.plotX, t]] : 2 === k ? [["L", (h.plotX + v) / 2, h.plotY], ["L", (h.plotX + v) / 2, t]] : [["L", v, h.plotY]], r.push(["L", v, t])) : r = [["L", v, t]], m.push(q.x), k && (m.push(q.x),
                        2 === k && m.push(q.x)), f.push.apply(f, r), n = !1)
                }); f.xMap = m; return e.graphPath = f
            }; n.prototype.getZonesGraphs = function (a) { this.zones.forEach(function (g, c) { c = ["zone-graph-" + c, "highcharts-graph highcharts-zone-graph-" + c + " " + (g.className || "")]; this.chart.styledMode || c.push(g.color || this.color, g.dashStyle || this.options.dashStyle); a.push(c) }, this); return a }; n.defaultOptions = J(w.defaultOptions, {}); return n
        }(w); C.registerSeriesType("line", E); ""; return E
    }); M(a, "Series/Area/AreaSeries.js", [a["Core/Color/Color.js"],
    a["Core/Legend/LegendSymbol.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]], function (a, w, C, E) {
        var r = this && this.__extends || function () { var a = function (c, e) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var e in c) c.hasOwnProperty(e) && (a[e] = c[e]) }; return a(c, e) }; return function (c, e) { function g() { this.constructor = c } a(c, e); c.prototype = null === e ? Object.create(e) : (g.prototype = e.prototype, new g) } }(), x = a.parse, J = C.seriesTypes.line; a =
            E.extend; var u = E.merge, n = E.objectEach, m = E.pick; E = function (a) {
                function c() { var c = null !== a && a.apply(this, arguments) || this; c.data = void 0; c.options = void 0; c.points = void 0; return c } r(c, a); c.prototype.drawGraph = function () {
                    this.areaPath = []; a.prototype.drawGraph.apply(this); var c = this, g = this.areaPath, f = this.options, n = [["area", "highcharts-area", this.color, f.fillColor]]; this.zones.forEach(function (a, e) {
                        n.push(["zone-area-" + e, "highcharts-area highcharts-zone-area-" + e + " " + a.className, a.color || c.color, a.fillColor ||
                            f.fillColor])
                    }); n.forEach(function (a) { var e = a[0], l = c[e], n = l ? "animate" : "attr", q = {}; l ? (l.endX = c.preventGraphAnimation ? null : g.xMap, l.animate({ d: g })) : (q.zIndex = 0, l = c[e] = c.chart.renderer.path(g).addClass(a[1]).add(c.group), l.isArea = !0); c.chart.styledMode || (q.fill = m(a[3], x(a[2]).setOpacity(m(f.fillOpacity, .75)).get())); l[n](q); l.startX = g.xMap; l.shiftUnit = f.step ? 2 : 1 })
                }; c.prototype.getGraphPath = function (a) {
                    var c = J.prototype.getGraphPath, e = this.options, g = e.stacking, n = this.yAxis, k, r = [], u = [], B = this.index, x =
                        n.stacking.stacks[this.stackKey], t = e.threshold, h = Math.round(n.getThreshold(e.threshold)); e = m(e.connectNulls, "percent" === g); var d = function (b, d, c) { var e = a[b]; b = g && x[e.x].points[B]; var f = e[c + "Null"] || 0; c = e[c + "Cliff"] || 0; e = !0; if (c || f) { var k = (f ? b[0] : b[1]) + c; var l = b[0] + c; e = !!f } else !g && a[d] && a[d].isNull && (k = l = t); "undefined" !== typeof k && (u.push({ plotX: p, plotY: null === k ? h : n.getThreshold(k), isNull: e, isCliff: !0 }), r.push({ plotX: p, plotY: null === l ? h : n.getThreshold(l), doCurve: !1 })) }; a = a || this.points; g && (a = this.getStackPoints(a));
                    for (k = 0; k < a.length; k++) { g || (a[k].leftCliff = a[k].rightCliff = a[k].leftNull = a[k].rightNull = void 0); var b = a[k].isNull; var p = m(a[k].rectPlotX, a[k].plotX); var G = g ? m(a[k].yBottom, h) : h; if (!b || e) e || d(k, k - 1, "left"), b && !g && e || (u.push(a[k]), r.push({ x: k, plotX: p, plotY: G })), e || d(k, k + 1, "right") } k = c.call(this, u, !0, !0); r.reversed = !0; b = c.call(this, r, !0, !0); (G = b[0]) && "M" === G[0] && (b[0] = ["L", G[1], G[2]]); b = k.concat(b); b.length && b.push(["Z"]); c = c.call(this, u, !1, e); b.xMap = k.xMap; this.areaPath = b; return c
                }; c.prototype.getStackPoints =
                    function (a) {
                        var c = this, e = [], g = [], r = this.xAxis, k = this.yAxis, u = k.stacking.stacks[this.stackKey], x = {}, B = k.series, w = B.length, t = k.options.reversedStacks ? 1 : -1, h = B.indexOf(c); a = a || this.points; if (this.options.stacking) {
                            for (var d = 0; d < a.length; d++)a[d].leftNull = a[d].rightNull = void 0, x[a[d].x] = a[d]; n(u, function (a, b) { null !== a.total && g.push(b) }); g.sort(function (a, b) { return a - b }); var b = B.map(function (a) { return a.visible }); g.forEach(function (a, d) {
                                var f = 0, l, n; if (x[a] && !x[a].isNull) e.push(x[a]), [-1, 1].forEach(function (e) {
                                    var f =
                                        1 === e ? "rightNull" : "leftNull", k = 0, m = u[g[d + e]]; if (m) for (var p = h; 0 <= p && p < w;) { var r = B[p].index; l = m.points[r]; l || (r === c.index ? x[a][f] = !0 : b[p] && (n = u[a].points[r]) && (k -= n[1] - n[0])); p += t } x[a][1 === e ? "rightCliff" : "leftCliff"] = k
                                }); else { for (var p = h; 0 <= p && p < w;) { if (l = u[a].points[B[p].index]) { f = l[1]; break } p += t } f = m(f, 0); f = k.translate(f, 0, 1, 0, 1); e.push({ isNull: !0, plotX: r.translate(a, 0, 0, 0, 1), x: a, plotY: f, yBottom: f }) }
                            })
                        } return e
                    }; c.defaultOptions = u(J.defaultOptions, { threshold: 0 }); return c
            }(J); a(E.prototype, {
                singleStacks: !1,
                drawLegendSymbol: w.drawRectangle
            }); C.registerSeriesType("area", E); ""; return E
    }); M(a, "Series/Spline/SplineSeries.js", [a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]], function (a, w) {
        var r = this && this.__extends || function () {
            var a = function (r, n) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, g) { a.__proto__ = g } || function (a, g) { for (var c in g) g.hasOwnProperty(c) && (a[c] = g[c]) }; return a(r, n) }; return function (r, n) {
                function m() { this.constructor = r } a(r, n); r.prototype = null === n ? Object.create(n) :
                    (m.prototype = n.prototype, new m)
            }
        }(), E = a.seriesTypes.line, z = w.merge, x = w.pick; w = function (a) {
            function u() { var n = null !== a && a.apply(this, arguments) || this; n.data = void 0; n.options = void 0; n.points = void 0; return n } r(u, a); u.prototype.getPointSpline = function (a, m, g) {
                var c = m.plotX || 0, e = m.plotY || 0, l = a[g - 1]; g = a[g + 1]; if (l && !l.isNull && !1 !== l.doCurve && !m.isCliff && g && !g.isNull && !1 !== g.doCurve && !m.isCliff) {
                    a = l.plotY || 0; var f = g.plotX || 0; g = g.plotY || 0; var n = 0; var r = (1.5 * c + (l.plotX || 0)) / 2.5; var k = (1.5 * e + a) / 2.5; f = (1.5 * c +
                        f) / 2.5; var u = (1.5 * e + g) / 2.5; f !== r && (n = (u - k) * (f - c) / (f - r) + e - u); k += n; u += n; k > a && k > e ? (k = Math.max(a, e), u = 2 * e - k) : k < a && k < e && (k = Math.min(a, e), u = 2 * e - k); u > g && u > e ? (u = Math.max(g, e), k = 2 * e - u) : u < g && u < e && (u = Math.min(g, e), k = 2 * e - u); m.rightContX = f; m.rightContY = u
                } m = ["C", x(l.rightContX, l.plotX, 0), x(l.rightContY, l.plotY, 0), x(r, c, 0), x(k, e, 0), c, e]; l.rightContX = l.rightContY = void 0; return m
            }; u.defaultOptions = z(E.defaultOptions); return u
        }(E); a.registerSeriesType("spline", w); ""; return w
    }); M(a, "Series/AreaSpline/AreaSplineSeries.js",
        [a["Series/Area/AreaSeries.js"], a["Series/Spline/SplineSeries.js"], a["Core/Legend/LegendSymbol.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]], function (a, w, C, E, z) {
            var r = this && this.__extends || function () {
                var a = function (g, c) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var e in c) c.hasOwnProperty(e) && (a[e] = c[e]) }; return a(g, c) }; return function (g, c) {
                    function e() { this.constructor = g } a(g, c); g.prototype = null === c ? Object.create(c) :
                        (e.prototype = c.prototype, new e)
                }
            }(), J = a.prototype, u = z.extend, n = z.merge; z = function (m) { function g() { var a = null !== m && m.apply(this, arguments) || this; a.data = void 0; a.points = void 0; a.options = void 0; return a } r(g, m); g.defaultOptions = n(w.defaultOptions, a.defaultOptions); return g }(w); u(z.prototype, { getGraphPath: J.getGraphPath, getStackPoints: J.getStackPoints, drawGraph: J.drawGraph, drawLegendSymbol: C.drawRectangle }); E.registerSeriesType("areaspline", z); ""; return z
        }); M(a, "Series/Column/ColumnSeries.js", [a["Core/Animation/AnimationUtilities.js"],
        a["Core/Color/Color.js"], a["Core/Globals.js"], a["Core/Legend/LegendSymbol.js"], a["Core/Color/Palette.js"], a["Core/Series/Series.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x, J, u) {
            var n = this && this.__extends || function () {
                var a = function (c, d) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, d) { a.__proto__ = d } || function (a, d) { for (var b in d) d.hasOwnProperty(b) && (a[b] = d[b]) }; return a(c, d) }; return function (c, d) {
                    function b() { this.constructor = c } a(c, d);
                    c.prototype = null === d ? Object.create(d) : (b.prototype = d.prototype, new b)
                }
            }(), m = a.animObject, g = w.parse, c = C.hasTouch; a = C.noop; var e = u.clamp, l = u.css, f = u.defined, r = u.extend, q = u.fireEvent, k = u.isArray, I = u.isNumber, D = u.merge, B = u.pick, O = u.objectEach; u = function (a) {
                function h() { var d = null !== a && a.apply(this, arguments) || this; d.borderWidth = void 0; d.data = void 0; d.group = void 0; d.options = void 0; d.points = void 0; return d } n(h, a); h.prototype.animate = function (a) {
                    var b = this, d = this.yAxis, c = b.options, h = this.chart.inverted,
                    f = {}, g = h ? "translateX" : "translateY"; if (a) f.scaleY = .001, a = e(d.toPixels(c.threshold), d.pos, d.pos + d.len), h ? f.translateX = a - d.len : f.translateY = a, b.clipBox && b.setClip(), b.group.attr(f); else { var k = Number(b.group.attr(g)); b.group.animate({ scaleY: 1 }, r(m(b.options.animation), { step: function (a, c) { b.group && (f[g] = k + c.pos * (d.pos - k), b.group.attr(f)) } })) }
                }; h.prototype.init = function (d, b) {
                    a.prototype.init.apply(this, arguments); var c = this; d = c.chart; d.hasRendered && d.series.forEach(function (a) {
                        a.type === c.type && (a.isDirty =
                            !0)
                    })
                }; h.prototype.getColumnMetrics = function () {
                    var a = this, b = a.options, c = a.xAxis, e = a.yAxis, h = c.options.reversedStacks; h = c.reversed && !h || !c.reversed && h; var f = {}, g, k = 0; !1 === b.grouping ? k = 1 : a.chart.series.forEach(function (b) { var d = b.yAxis, c = b.options; if (b.type === a.type && (b.visible || !a.chart.options.chart.ignoreHiddenSeries) && e.len === d.len && e.pos === d.pos) { if (c.stacking && "group" !== c.stacking) { g = b.stackKey; "undefined" === typeof f[g] && (f[g] = k++); var h = f[g] } else !1 !== c.grouping && (h = k++); b.columnIndex = h } }); var l =
                        Math.min(Math.abs(c.transA) * (c.ordinal && c.ordinal.slope || b.pointRange || c.closestPointRange || c.tickInterval || 1), c.len), m = l * b.groupPadding, n = (l - 2 * m) / (k || 1); b = Math.min(b.maxPointWidth || c.len, B(b.pointWidth, n * (1 - 2 * b.pointPadding))); a.columnMetrics = { width: b, offset: (n - b) / 2 + (m + ((a.columnIndex || 0) + (h ? 1 : 0)) * n - l / 2) * (h ? -1 : 1), paddedWidth: n, columnCount: k }; return a.columnMetrics
                }; h.prototype.crispCol = function (a, b, c, e) {
                    var d = this.chart, h = this.borderWidth, f = -(h % 2 ? .5 : 0); h = h % 2 ? .5 : 1; d.inverted && d.renderer.isVML && (h +=
                        1); this.options.crisp && (c = Math.round(a + c) + f, a = Math.round(a) + f, c -= a); e = Math.round(b + e) + h; f = .5 >= Math.abs(b) && .5 < e; b = Math.round(b) + h; e -= b; f && e && (--b, e += 1); return { x: a, y: b, width: c, height: e }
                }; h.prototype.adjustForMissingColumns = function (a, b, c, e) {
                    var d = this, h = this.options.stacking; if (!c.isNull && 1 < e.columnCount) {
                        var f = 0, g = 0; O(this.yAxis.stacking && this.yAxis.stacking.stacks, function (a) {
                            if ("number" === typeof c.x && (a = a[c.x.toString()])) {
                                var b = a.points[d.index], e = a.total; h ? (b && (f = g), a.hasValidPoints && g++) : k(b) &&
                                    (f = b[1], g = e || 0)
                            }
                        }); a = (c.plotX || 0) + ((g - 1) * e.paddedWidth + b) / 2 - b - f * e.paddedWidth
                    } return a
                }; h.prototype.translate = function () {
                    var a = this, b = a.chart, c = a.options, h = a.dense = 2 > a.closestPointRange * a.xAxis.transA; h = a.borderWidth = B(c.borderWidth, h ? 0 : 1); var g = a.xAxis, k = a.yAxis, l = c.threshold, m = a.translatedThreshold = k.getThreshold(l), n = B(c.minPointLength, 5), r = a.getColumnMetrics(), t = r.width, q = a.pointXOffset = r.offset, v = a.dataMin, u = a.dataMax, w = a.barW = Math.max(t, 1 + 2 * h); b.inverted && (m -= .5); c.pointPadding && (w = Math.ceil(w));
                    x.prototype.translate.apply(a); a.points.forEach(function (d) {
                        var h = B(d.yBottom, m), p = 999 + Math.abs(h), y = d.plotX || 0; p = e(d.plotY, -p, k.len + p); var x = Math.min(p, h), F = Math.max(p, h) - x, D = t, G = y + q, z = w; n && Math.abs(F) < n && (F = n, y = !k.reversed && !d.negative || k.reversed && d.negative, I(l) && I(u) && d.y === l && u <= l && (k.min || 0) < l && (v !== u || (k.max || 0) <= l) && (y = !y), x = Math.abs(x - m) > n ? h - n : m - (y ? n : 0)); f(d.options.pointWidth) && (D = z = Math.ceil(d.options.pointWidth), G -= Math.round((D - t) / 2)); c.centerInCategory && (G = a.adjustForMissingColumns(G,
                            D, d, r)); d.barX = G; d.pointWidth = D; d.tooltipPos = b.inverted ? [e(k.len + k.pos - b.plotLeft - p, k.pos - b.plotLeft, k.len + k.pos - b.plotLeft), g.len + g.pos - b.plotTop - G - z / 2, F] : [g.left - b.plotLeft + G + z / 2, e(p + k.pos - b.plotTop, k.pos - b.plotTop, k.len + k.pos - b.plotTop), F]; d.shapeType = a.pointClass.prototype.shapeType || "rect"; d.shapeArgs = a.crispCol.apply(a, d.isNull ? [G, m, z, 0] : [G, x, z, F])
                    })
                }; h.prototype.drawGraph = function () { this.group[this.dense ? "addClass" : "removeClass"]("highcharts-dense-data") }; h.prototype.pointAttribs = function (a,
                    b) {
                        var d = this.options, c = this.pointAttrToOptions || {}, e = c.stroke || "borderColor", h = c["stroke-width"] || "borderWidth", f = a && a.color || this.color, k = a && a[e] || d[e] || f; c = a && a.options.dashStyle || d.dashStyle; var l = a && a[h] || d[h] || this[h] || 0, m = B(a && a.opacity, d.opacity, 1); if (a && this.zones.length) { var n = a.getZone(); f = a.options.color || n && (n.color || a.nonZonedColor) || this.color; n && (k = n.borderColor || k, c = n.dashStyle || c, l = n.borderWidth || l) } b && a && (a = D(d.states[b], a.options.states && a.options.states[b] || {}), b = a.brightness,
                            f = a.color || "undefined" !== typeof b && g(f).brighten(a.brightness).get() || f, k = a[e] || k, l = a[h] || l, c = a.dashStyle || c, m = B(a.opacity, m)); e = { fill: f, stroke: k, "stroke-width": l, opacity: m }; c && (e.dashstyle = c); return e
                }; h.prototype.drawPoints = function () {
                    var a = this, b = this.chart, c = a.options, e = b.renderer, h = c.animationLimit || 250, f; a.points.forEach(function (d) {
                        var g = d.graphic, k = !!g, l = g && b.pointCount < h ? "animate" : "attr"; if (I(d.plotY) && null !== d.y) {
                            f = d.shapeArgs; g && d.hasNewShapeType() && (g = g.destroy()); a.enabledDataSorting &&
                                (d.startXPos = a.xAxis.reversed ? -(f ? f.width || 0 : 0) : a.xAxis.width); g || (d.graphic = g = e[d.shapeType](f).add(d.group || a.group)) && a.enabledDataSorting && b.hasRendered && b.pointCount < h && (g.attr({ x: d.startXPos }), k = !0, l = "animate"); if (g && k) g[l](D(f)); if (c.borderRadius) g[l]({ r: c.borderRadius }); b.styledMode || g[l](a.pointAttribs(d, d.selected && "select")).shadow(!1 !== d.allowShadow && c.shadow, null, c.stacking && !c.borderRadius); g && (g.addClass(d.getClassName(), !0), g.attr({ visibility: d.visible ? "inherit" : "hidden" }))
                        } else g &&
                            (d.graphic = g.destroy())
                    })
                }; h.prototype.drawTracker = function () {
                    var a = this, b = a.chart, e = b.pointer, h = function (a) { var b = e.getPointFromEvent(a); "undefined" !== typeof b && (e.isDirectTouch = !0, b.onMouseOver(a)) }, f; a.points.forEach(function (a) { f = k(a.dataLabels) ? a.dataLabels : a.dataLabel ? [a.dataLabel] : []; a.graphic && (a.graphic.element.point = a); f.forEach(function (b) { b.div ? b.div.point = a : b.element.point = a }) }); a._hasTracking || (a.trackerGroups.forEach(function (d) {
                        if (a[d]) {
                            a[d].addClass("highcharts-tracker").on("mouseover",
                                h).on("mouseout", function (a) { e.onTrackerMouseOut(a) }); if (c) a[d].on("touchstart", h); !b.styledMode && a.options.cursor && a[d].css(l).css({ cursor: a.options.cursor })
                        }
                    }), a._hasTracking = !0); q(this, "afterDrawTracker")
                }; h.prototype.remove = function () { var a = this, b = a.chart; b.hasRendered && b.series.forEach(function (b) { b.type === a.type && (b.isDirty = !0) }); x.prototype.remove.apply(a, arguments) }; h.defaultOptions = D(x.defaultOptions, {
                    borderRadius: 0, centerInCategory: !1, groupPadding: .2, marker: null, pointPadding: .1, minPointLength: 0,
                    cropThreshold: 50, pointRange: null, states: { hover: { halo: !1, brightness: .1 }, select: { color: z.neutralColor20, borderColor: z.neutralColor100 } }, dataLabels: { align: void 0, verticalAlign: void 0, y: void 0 }, startFromThreshold: !0, stickyTracking: !1, tooltip: { distance: 6 }, threshold: 0, borderColor: z.backgroundColor
                }); return h
            }(x); r(u.prototype, { cropShoulder: 0, directTouch: !0, drawLegendSymbol: E.drawRectangle, getSymbol: a, negStacks: !0, trackerGroups: ["group", "dataLabelsGroup"] }); J.registerSeriesType("column", u); ""; ""; return u
        });
    M(a, "Core/Series/DataLabel.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/FormatUtilities.js"], a["Core/Color/Palette.js"], a["Core/Utilities.js"]], function (a, w, C, E) {
        var r = a.getDeferredAnimation, x = w.format, J = E.defined, u = E.extend, n = E.fireEvent, m = E.isArray, g = E.merge, c = E.objectEach, e = E.pick, l = E.splat, f; (function (a) {
            function f(a, c, b, f, g) {
                var d = this, h = this.chart, k = this.isCartesian && h.inverted, l = this.enabledDataSorting, m = e(a.dlBox && a.dlBox.centerX, a.plotX, -9999), n = e(a.plotY, -9999), p = c.getBBox(), r =
                    b.rotation, t = b.align, q = h.isInsidePlot(m, Math.round(n), { inverted: k, paneCoordinates: !0, series: d }), v = function (b) { l && d.xAxis && !B && d.setDataLabelStartPos(a, c, g, q, b) }, B = "justify" === e(b.overflow, l ? "none" : "justify"), x = this.visible && !1 !== a.visible && (a.series.forceDL || l && !B || q || e(b.inside, !!this.options.stacking) && f && h.isInsidePlot(m, k ? f.x + 1 : f.y + f.height - 1, { inverted: k, paneCoordinates: !0, series: d })); if (x) {
                        var w = h.renderer.fontMetrics(h.styledMode ? void 0 : b.style.fontSize, c).b; f = u({
                            x: k ? this.yAxis.len - n : m, y: Math.round(k ?
                                this.xAxis.len - m : n), width: 0, height: 0
                        }, f); u(b, { width: p.width, height: p.height }); r ? (B = !1, m = h.renderer.rotCorr(w, r), m = { x: f.x + (b.x || 0) + f.width / 2 + m.x, y: f.y + (b.y || 0) + { top: 0, middle: .5, bottom: 1 }[b.verticalAlign] * f.height }, v(m), c[g ? "attr" : "animate"](m).attr({ align: t }), v = (r + 720) % 360, v = 180 < v && 360 > v, "left" === t ? m.y -= v ? p.height : 0 : "center" === t ? (m.x -= p.width / 2, m.y -= p.height / 2) : "right" === t && (m.x -= p.width, m.y -= v ? 0 : p.height), c.placed = !0, c.alignAttr = m) : (v(f), c.align(b, void 0, f), m = c.alignAttr); B && 0 <= f.height ? this.justifyDataLabel(c,
                            b, m, p, f, g) : e(b.crop, !0) && (x = h.isInsidePlot(m.x, m.y, { paneCoordinates: !0, series: d }) && h.isInsidePlot(m.x + p.width, m.y + p.height, { paneCoordinates: !0, series: d })); if (b.shape && !r) c[g ? "attr" : "animate"]({ anchorX: k ? h.plotWidth - a.plotY : a.plotX, anchorY: k ? h.plotHeight - a.plotX : a.plotY })
                    } g && l && (c.placed = !1); x || l && !B || (c.hide(!0), c.placed = !1)
            } function k(a, c) {
                var b = c.filter; return b ? (c = b.operator, a = a[b.property], b = b.value, ">" === c && a > b || "<" === c && a < b || ">=" === c && a >= b || "<=" === c && a <= b || "==" === c && a == b || "===" === c && a === b ? !0 :
                    !1) : !0
            } function v() {
                var a = this, d = a.chart, b = a.options, f = a.points, g = a.hasRendered || 0, t = d.renderer, q = b.dataLabels, v, u = q.animation; u = q.defer ? r(d, u, a) : { defer: 0, duration: 0 }; q = B(B(d.options.plotOptions && d.options.plotOptions.series && d.options.plotOptions.series.dataLabels, d.options.plotOptions && d.options.plotOptions[a.type] && d.options.plotOptions[a.type].dataLabels), q); n(this, "drawDataLabels"); if (m(q) || q.enabled || a._hasPointLabels) {
                    var w = a.plotGroup("dataLabelsGroup", "data-labels", g ? "inherit" : "hidden", q.zIndex ||
                        6); w.attr({ opacity: +g }); !g && (g = a.dataLabelsGroup) && (a.visible && w.show(!0), g[b.animation ? "animate" : "attr"]({ opacity: 1 }, u)); f.forEach(function (f) {
                            v = l(B(q, f.dlOptions || f.options && f.options.dataLabels)); v.forEach(function (h, g) {
                                var l = h.enabled && (!f.isNull || f.dataLabelOnNull) && k(f, h), m = f.connectors ? f.connectors[g] : f.connector, n = f.dataLabels ? f.dataLabels[g] : f.dataLabel, p = e(h.distance, f.labelDistance), r = !n; if (l) {
                                    var q = f.getLabelConfig(); var v = e(h[f.formatPrefix + "Format"], h.format); q = J(v) ? x(v, q, d) : (h[f.formatPrefix +
                                        "Formatter"] || h.formatter).call(q, h); v = h.style; var u = h.rotation; d.styledMode || (v.color = e(h.color, v.color, a.color, C.neutralColor100), "contrast" === v.color ? (f.contrastColor = t.getContrast(f.color || a.color), v.color = !J(p) && h.inside || 0 > p || b.stacking ? f.contrastColor : C.neutralColor100) : delete f.contrastColor, b.cursor && (v.cursor = b.cursor)); var B = { r: h.borderRadius || 0, rotation: u, padding: h.padding, zIndex: 1 }; d.styledMode || (B.fill = h.backgroundColor, B.stroke = h.borderColor, B["stroke-width"] = h.borderWidth); c(B, function (a,
                                            b) { "undefined" === typeof a && delete B[b] })
                                } !n || l && J(q) ? l && J(q) && (n ? B.text = q : (f.dataLabels = f.dataLabels || [], n = f.dataLabels[g] = u ? t.text(q, 0, -9999, h.useHTML).addClass("highcharts-data-label") : t.label(q, 0, -9999, h.shape, null, null, h.useHTML, null, "data-label"), g || (f.dataLabel = n), n.addClass(" highcharts-data-label-color-" + f.colorIndex + " " + (h.className || "") + (h.useHTML ? " highcharts-tracker" : ""))), n.options = h, n.attr(B), d.styledMode || n.css(v).shadow(h.shadow), n.added || n.add(w), h.textPath && !h.useHTML && (n.setTextPath(f.getDataLabelPath &&
                                    f.getDataLabelPath(n) || f.graphic, h.textPath), f.dataLabelPath && !h.textPath.enabled && (f.dataLabelPath = f.dataLabelPath.destroy())), a.alignDataLabel(f, n, h, null, r)) : (f.dataLabel = f.dataLabel && f.dataLabel.destroy(), f.dataLabels && (1 === f.dataLabels.length ? delete f.dataLabels : delete f.dataLabels[g]), g || delete f.dataLabel, m && (f.connector = f.connector.destroy(), f.connectors && (1 === f.connectors.length ? delete f.connectors : delete f.connectors[g])))
                            })
                        })
                } n(this, "afterDrawDataLabels")
            } function w(a, c, b, e, f, g) {
                var d = this.chart,
                h = c.align, k = c.verticalAlign, l = a.box ? 0 : a.padding || 0, m = c.x; m = void 0 === m ? 0 : m; var n = c.y; n = void 0 === n ? 0 : n; var p = (b.x || 0) + l; if (0 > p) { "right" === h && 0 <= m ? (c.align = "left", c.inside = !0) : m -= p; var r = !0 } p = (b.x || 0) + e.width - l; p > d.plotWidth && ("left" === h && 0 >= m ? (c.align = "right", c.inside = !0) : m += d.plotWidth - p, r = !0); p = b.y + l; 0 > p && ("bottom" === k && 0 <= n ? (c.verticalAlign = "top", c.inside = !0) : n -= p, r = !0); p = (b.y || 0) + e.height - l; p > d.plotHeight && ("top" === k && 0 >= n ? (c.verticalAlign = "bottom", c.inside = !0) : n += d.plotHeight - p, r = !0); r && (c.x = m,
                    c.y = n, a.placed = !g, a.align(c, void 0, f)); return r
            } function B(a, c) { var b = [], d; if (m(a) && !m(c)) b = a.map(function (a) { return g(a, c) }); else if (m(c) && !m(a)) b = c.map(function (b) { return g(a, b) }); else if (m(a) || m(c)) for (d = Math.max(a.length, c.length); d--;)b[d] = g(a[d], c[d]); else b = g(a, c); return b } function z(a, c, b, e, f) {
                var d = this.chart, h = d.inverted, g = this.xAxis, k = g.reversed, l = h ? c.height / 2 : c.width / 2; a = (a = a.pointWidth) ? a / 2 : 0; c.startXPos = h ? f.x : k ? -l - a : g.width - l + a; c.startYPos = h ? k ? this.yAxis.height - l + a : -l - a : f.y; e ? "hidden" ===
                    c.visibility && (c.show(), c.attr({ opacity: 0 }).animate({ opacity: 1 })) : c.attr({ opacity: 1 }).animate({ opacity: 0 }, void 0, c.hide); d.hasRendered && (b && c.attr({ x: c.startXPos, y: c.startYPos }), c.placed = !0)
            } var t = []; a.compose = function (a) { if (-1 === t.indexOf(a)) { var c = a.prototype; t.push(a); c.alignDataLabel = f; c.drawDataLabels = v; c.justifyDataLabel = w; c.setDataLabelStartPos = z } }
        })(f || (f = {})); ""; return f
    }); M(a, "Series/Column/ColumnDataLabel.js", [a["Core/Series/DataLabel.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]],
        function (a, w, C) {
            var r = w.series, z = C.merge, x = C.pick, J; (function (u) {
                function n(a, c, e, l, f) {
                    var g = this.chart.inverted, m = a.series, k = a.dlBox || a.shapeArgs, n = x(a.below, a.plotY > x(this.translatedThreshold, m.yAxis.len)), u = x(e.inside, !!this.options.stacking); k && (l = z(k), 0 > l.y && (l.height += l.y, l.y = 0), k = l.y + l.height - m.yAxis.len, 0 < k && k < l.height && (l.height -= k), g && (l = { x: m.yAxis.len - l.y - l.height, y: m.xAxis.len - l.x - l.width, width: l.height, height: l.width }), u || (g ? (l.x += n ? 0 : l.width, l.width = 0) : (l.y += n ? l.height : 0, l.height = 0)));
                    e.align = x(e.align, !g || u ? "center" : n ? "right" : "left"); e.verticalAlign = x(e.verticalAlign, g || u ? "middle" : n ? "top" : "bottom"); r.prototype.alignDataLabel.call(this, a, c, e, l, f); e.inside && a.contrastColor && c.css({ color: a.contrastColor })
                } var m = []; u.compose = function (g) { a.compose(r); -1 === m.indexOf(g) && (m.push(g), g.prototype.alignDataLabel = n) }
            })(J || (J = {})); return J
        }); M(a, "Series/Bar/BarSeries.js", [a["Series/Column/ColumnSeries.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]], function (a, w, C) {
            var r = this &&
                this.__extends || function () { var a = function (r, n) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, g) { a.__proto__ = g } || function (a, g) { for (var c in g) g.hasOwnProperty(c) && (a[c] = g[c]) }; return a(r, n) }; return function (r, n) { function m() { this.constructor = r } a(r, n); r.prototype = null === n ? Object.create(n) : (m.prototype = n.prototype, new m) } }(), z = C.extend, x = C.merge; C = function (w) {
                    function u() { var a = null !== w && w.apply(this, arguments) || this; a.data = void 0; a.options = void 0; a.points = void 0; return a } r(u, w);
                    u.defaultOptions = x(a.defaultOptions, {}); return u
                }(a); z(C.prototype, { inverted: !0 }); w.registerSeriesType("bar", C); ""; return C
        }); M(a, "Series/Scatter/ScatterSeries.js", [a["Series/Column/ColumnSeries.js"], a["Series/Line/LineSeries.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]], function (a, w, C, E) {
            var r = this && this.__extends || function () {
                var a = function (m, g) {
                    a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, e) { a.__proto__ = e } || function (a, e) {
                        for (var c in e) e.hasOwnProperty(c) &&
                            (a[c] = e[c])
                    }; return a(m, g)
                }; return function (m, g) { function c() { this.constructor = m } a(m, g); m.prototype = null === g ? Object.create(g) : (c.prototype = g.prototype, new c) }
            }(), x = E.addEvent, J = E.extend, u = E.merge; E = function (a) {
                function m() { var g = null !== a && a.apply(this, arguments) || this; g.data = void 0; g.options = void 0; g.points = void 0; return g } r(m, a); m.prototype.applyJitter = function () {
                    var a = this, c = this.options.jitter, e = this.points.length; c && this.points.forEach(function (g, f) {
                        ["x", "y"].forEach(function (l, m) {
                            var k = "plot" +
                                l.toUpperCase(); if (c[l] && !g.isNull) { var n = a[l + "Axis"]; var r = c[l] * n.transA; if (n && !n.isLog) { var q = Math.max(0, g[k] - r); n = Math.min(n.len, g[k] + r); m = 1E4 * Math.sin(f + m * e); g[k] = q + (n - q) * (m - Math.floor(m)); "x" === l && (g.clientX = g.plotX) } }
                        })
                    })
                }; m.prototype.drawGraph = function () { this.options.lineWidth ? a.prototype.drawGraph.call(this) : this.graph && (this.graph = this.graph.destroy()) }; m.defaultOptions = u(w.defaultOptions, {
                    lineWidth: 0, findNearestPointBy: "xy", jitter: { x: 0, y: 0 }, marker: { enabled: !0 }, tooltip: {
                        headerFormat: '<span style="color:{point.color}">\u25cf</span> <span style="font-size: 10px"> {series.name}</span><br/>',
                        pointFormat: "x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"
                    }
                }); return m
            }(w); J(E.prototype, { drawTracker: a.prototype.drawTracker, sorted: !1, requireSorting: !1, noSharedTooltip: !0, trackerGroups: ["group", "markerGroup", "dataLabelsGroup"], takeOrdinalPosition: !1 }); x(E, "afterTranslate", function () { this.applyJitter() }); C.registerSeriesType("scatter", E); ""; return E
        }); M(a, "Mixins/CenteredSeries.js", [a["Core/Globals.js"], a["Core/Series/Series.js"], a["Core/Utilities.js"]], function (a, w, C) {
            var r = C.isNumber, z = C.pick,
            x = C.relativeLength, J = a.deg2rad; return a.CenteredSeriesMixin = {
                getCenter: function () {
                    var a = this.options, n = this.chart, m = 2 * (a.slicedOffset || 0), g = n.plotWidth - 2 * m, c = n.plotHeight - 2 * m, e = a.center, l = Math.min(g, c), f = a.size, r = a.innerSize || 0; "string" === typeof f && (f = parseFloat(f)); "string" === typeof r && (r = parseFloat(r)); a = [z(e[0], "50%"), z(e[1], "50%"), z(f && 0 > f ? void 0 : a.size, "100%"), z(r && 0 > r ? void 0 : a.innerSize || 0, "0%")]; !n.angular || this instanceof w || (a[3] = 0); for (e = 0; 4 > e; ++e)f = a[e], n = 2 > e || 2 === e && /%$/.test(f), a[e] =
                        x(f, [g, c, l, a[2]][e]) + (n ? m : 0); a[3] > a[2] && (a[3] = a[2]); return a
                }, getStartAndEndRadians: function (a, n) { a = r(a) ? a : 0; n = r(n) && n > a && 360 > n - a ? n : a + 360; return { start: J * (a + -90), end: J * (n + -90) } }
            }
        }); M(a, "Series/Pie/PiePoint.js", [a["Core/Animation/AnimationUtilities.js"], a["Core/Series/Point.js"], a["Core/Utilities.js"]], function (a, w, C) {
            var r = this && this.__extends || function () {
                var a = function (c, e) {
                    a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) {
                        for (var e in c) c.hasOwnProperty(e) &&
                            (a[e] = c[e])
                    }; return a(c, e)
                }; return function (c, e) { function g() { this.constructor = c } a(c, e); c.prototype = null === e ? Object.create(e) : (g.prototype = e.prototype, new g) }
            }(), z = a.setAnimation, x = C.addEvent, J = C.defined; a = C.extend; var u = C.isNumber, n = C.pick, m = C.relativeLength; w = function (a) {
                function c() { var c = null !== a && a.apply(this, arguments) || this; c.labelDistance = void 0; c.options = void 0; c.series = void 0; return c } r(c, a); c.prototype.getConnectorPath = function () {
                    var a = this.labelPosition, c = this.series.options.dataLabels,
                    f = this.connectorShapes, g = c.connectorShape; f[g] && (g = f[g]); return g.call(this, { x: a.final.x, y: a.final.y, alignment: a.alignment }, a.connectorPosition, c)
                }; c.prototype.getTranslate = function () { return this.sliced ? this.slicedTranslation : { translateX: 0, translateY: 0 } }; c.prototype.haloPath = function (a) { var c = this.shapeArgs; return this.sliced || !this.visible ? [] : this.series.chart.renderer.symbols.arc(c.x, c.y, c.r + a, c.r + a, { innerR: c.r - 1, start: c.start, end: c.end }) }; c.prototype.init = function () {
                    var c = this; a.prototype.init.apply(this,
                        arguments); this.name = n(this.name, "Slice"); var g = function (a) { c.slice("select" === a.type) }; x(this, "select", g); x(this, "unselect", g); return this
                }; c.prototype.isValid = function () { return u(this.y) && 0 <= this.y }; c.prototype.setVisible = function (a, c) {
                    var e = this, g = this.series, l = g.chart, k = g.options.ignoreHiddenPoint; c = n(c, k); a !== this.visible && (this.visible = this.options.visible = a = "undefined" === typeof a ? !this.visible : a, g.options.data[g.data.indexOf(this)] = this.options, ["graphic", "dataLabel", "connector", "shadowGroup"].forEach(function (c) {
                        if (e[c]) e[c][a ?
                            "show" : "hide"](a)
                    }), this.legendItem && l.legend.colorizeItem(this, a), a || "hover" !== this.state || this.setState(""), k && (g.isDirty = !0), c && l.redraw())
                }; c.prototype.slice = function (a, c, f) { var e = this.series; z(f, e.chart); n(c, !0); this.sliced = this.options.sliced = J(a) ? a : !this.sliced; e.options.data[e.data.indexOf(this)] = this.options; this.graphic && this.graphic.animate(this.getTranslate()); this.shadowGroup && this.shadowGroup.animate(this.getTranslate()) }; return c
            }(w); a(w.prototype, {
                connectorShapes: {
                    fixedOffset: function (a,
                        c, e) { var g = c.breakAt; c = c.touchingSliceAt; return [["M", a.x, a.y], e.softConnector ? ["C", a.x + ("left" === a.alignment ? -5 : 5), a.y, 2 * g.x - c.x, 2 * g.y - c.y, g.x, g.y] : ["L", g.x, g.y], ["L", c.x, c.y]] }, straight: function (a, c) { c = c.touchingSliceAt; return [["M", a.x, a.y], ["L", c.x, c.y]] }, crookedLine: function (a, c, e) {
                            c = c.touchingSliceAt; var g = this.series, f = g.center[0], n = g.chart.plotWidth, r = g.chart.plotLeft; g = a.alignment; var k = this.shapeArgs.r; e = m(e.crookDistance, 1); n = "left" === g ? f + k + (n + r - f - k) * (1 - e) : r + (f - k) * e; e = ["L", n, a.y]; f = !0; if ("left" ===
                                g ? n > a.x || n < c.x : n < a.x || n > c.x) f = !1; a = [["M", a.x, a.y]]; f && a.push(e); a.push(["L", c.x, c.y]); return a
                        }
                }
            }); return w
        }); M(a, "Series/Pie/PieSeries.js", [a["Mixins/CenteredSeries.js"], a["Series/Column/ColumnSeries.js"], a["Core/Globals.js"], a["Core/Legend/LegendSymbol.js"], a["Core/Color/Palette.js"], a["Series/Pie/PiePoint.js"], a["Core/Series/Series.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Renderer/SVG/Symbols.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x, J, u, n, m) {
            var g = this && this.__extends || function () {
                var a =
                    function (c, e) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var e in c) c.hasOwnProperty(e) && (a[e] = c[e]) }; return a(c, e) }; return function (c, e) { function f() { this.constructor = c } a(c, e); c.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f) }
            }(), c = a.getStartAndEndRadians; C = C.noop; var e = m.clamp, l = m.extend, f = m.fireEvent, r = m.merge, q = m.pick, k = m.relativeLength; m = function (a) {
                function l() {
                    var c = null !== a && a.apply(this, arguments) || this; c.center =
                        void 0; c.data = void 0; c.maxLabelDistance = void 0; c.options = void 0; c.points = void 0; return c
                } g(l, a); l.prototype.animate = function (a) { var c = this, e = c.points, f = c.startAngleRad; a || e.forEach(function (a) { var b = a.graphic, d = a.shapeArgs; b && d && (b.attr({ r: q(a.startR, c.center && c.center[3] / 2), start: f, end: f }), b.animate({ r: d.r, start: d.start, end: d.end }, c.options.animation)) }) }; l.prototype.drawEmpty = function () {
                    var a = this.startAngleRad, c = this.endAngleRad, e = this.options; if (0 === this.total && this.center) {
                        var f = this.center[0];
                        var d = this.center[1]; this.graph || (this.graph = this.chart.renderer.arc(f, d, this.center[1] / 2, 0, a, c).addClass("highcharts-empty-series").add(this.group)); this.graph.attr({ d: n.arc(f, d, this.center[2] / 2, 0, { start: a, end: c, innerR: this.center[3] / 2 }) }); this.chart.styledMode || this.graph.attr({ "stroke-width": e.borderWidth, fill: e.fillColor || "none", stroke: e.color || z.neutralColor20 })
                    } else this.graph && (this.graph = this.graph.destroy())
                }; l.prototype.drawPoints = function () {
                    var a = this.chart.renderer; this.points.forEach(function (c) {
                        c.graphic &&
                        c.hasNewShapeType() && (c.graphic = c.graphic.destroy()); c.graphic || (c.graphic = a[c.shapeType](c.shapeArgs).add(c.series.group), c.delayedRendering = !0)
                    })
                }; l.prototype.generatePoints = function () { a.prototype.generatePoints.call(this); this.updateTotals() }; l.prototype.getX = function (a, c, f) {
                    var h = this.center, d = this.radii ? this.radii[f.index] || 0 : h[2] / 2; a = Math.asin(e((a - h[1]) / (d + f.labelDistance), -1, 1)); return h[0] + (c ? -1 : 1) * Math.cos(a) * (d + f.labelDistance) + (0 < f.labelDistance ? (c ? -1 : 1) * this.options.dataLabels.padding :
                        0)
                }; l.prototype.hasData = function () { return !!this.processedXData.length }; l.prototype.redrawPoints = function () {
                    var a = this, c = a.chart, e = c.renderer, f = a.options.shadow, d, b, g, k; this.drawEmpty(); !f || a.shadowGroup || c.styledMode || (a.shadowGroup = e.g("shadow").attr({ zIndex: -1 }).add(a.group)); a.points.forEach(function (h) {
                        var l = {}; b = h.graphic; if (!h.isNull && b) {
                            var m = void 0; k = h.shapeArgs; d = h.getTranslate(); c.styledMode || (m = h.shadowGroup, f && !m && (m = h.shadowGroup = e.g("shadow").add(a.shadowGroup)), m && m.attr(d), g = a.pointAttribs(h,
                                h.selected && "select")); h.delayedRendering ? (b.setRadialReference(a.center).attr(k).attr(d), c.styledMode || b.attr(g).attr({ "stroke-linejoin": "round" }).shadow(f, m), h.delayedRendering = !1) : (b.setRadialReference(a.center), c.styledMode || r(!0, l, g), r(!0, l, k, d), b.animate(l)); b.attr({ visibility: h.visible ? "inherit" : "hidden" }); b.addClass(h.getClassName(), !0)
                        } else b && (h.graphic = b.destroy())
                    })
                }; l.prototype.sortByAngle = function (a, c) { a.sort(function (a, e) { return "undefined" !== typeof a.angle && (e.angle - a.angle) * c }) }; l.prototype.translate =
                    function (a) {
                        this.generatePoints(); var e = this.options, g = e.slicedOffset, h = g + (e.borderWidth || 0), d = c(e.startAngle, e.endAngle), b = this.startAngleRad = d.start; d = (this.endAngleRad = d.end) - b; var l = this.points, m = e.dataLabels.distance; e = e.ignoreHiddenPoint; var n = l.length, r, v = 0; a || (this.center = a = this.getCenter()); for (r = 0; r < n; r++) {
                            var u = l[r]; var x = b + v * d; !u.isValid() || e && !u.visible || (v += u.percentage / 100); var w = b + v * d; var B = { x: a[0], y: a[1], r: a[2] / 2, innerR: a[3] / 2, start: Math.round(1E3 * x) / 1E3, end: Math.round(1E3 * w) / 1E3 };
                            u.shapeType = "arc"; u.shapeArgs = B; u.labelDistance = q(u.options.dataLabels && u.options.dataLabels.distance, m); u.labelDistance = k(u.labelDistance, B.r); this.maxLabelDistance = Math.max(this.maxLabelDistance || 0, u.labelDistance); w = (w + x) / 2; w > 1.5 * Math.PI ? w -= 2 * Math.PI : w < -Math.PI / 2 && (w += 2 * Math.PI); u.slicedTranslation = { translateX: Math.round(Math.cos(w) * g), translateY: Math.round(Math.sin(w) * g) }; B = Math.cos(w) * a[2] / 2; var z = Math.sin(w) * a[2] / 2; u.tooltipPos = [a[0] + .7 * B, a[1] + .7 * z]; u.half = w < -Math.PI / 2 || w > Math.PI / 2 ? 1 : 0; u.angle =
                                w; x = Math.min(h, u.labelDistance / 5); u.labelPosition = { natural: { x: a[0] + B + Math.cos(w) * u.labelDistance, y: a[1] + z + Math.sin(w) * u.labelDistance }, "final": {}, alignment: 0 > u.labelDistance ? "center" : u.half ? "right" : "left", connectorPosition: { breakAt: { x: a[0] + B + Math.cos(w) * x, y: a[1] + z + Math.sin(w) * x }, touchingSliceAt: { x: a[0] + B, y: a[1] + z } } }
                        } f(this, "afterTranslate")
                    }; l.prototype.updateTotals = function () {
                        var a = this.points, c = a.length, e = this.options.ignoreHiddenPoint, f, d = 0; for (f = 0; f < c; f++) {
                            var b = a[f]; !b.isValid() || e && !b.visible ||
                                (d += b.y)
                        } this.total = d; for (f = 0; f < c; f++)b = a[f], b.percentage = 0 < d && (b.visible || !e) ? b.y / d * 100 : 0, b.total = d
                    }; l.defaultOptions = r(J.defaultOptions, {
                        center: [null, null], clip: !1, colorByPoint: !0, dataLabels: { allowOverlap: !0, connectorPadding: 5, connectorShape: "fixedOffset", crookDistance: "70%", distance: 30, enabled: !0, formatter: function () { return this.point.isNull ? void 0 : this.point.name }, softConnector: !0, x: 0 }, fillColor: void 0, ignoreHiddenPoint: !0, inactiveOtherPoints: !0, legendType: "point", marker: null, size: null, showInLegend: !1,
                        slicedOffset: 10, stickyTracking: !1, tooltip: { followPointer: !0 }, borderColor: z.backgroundColor, borderWidth: 1, lineWidth: void 0, states: { hover: { brightness: .1 } }
                    }); return l
            }(J); l(m.prototype, { axisTypes: [], directTouch: !0, drawGraph: void 0, drawLegendSymbol: E.drawRectangle, drawTracker: w.prototype.drawTracker, getCenter: a.getCenter, getSymbol: C, isCartesian: !1, noSharedTooltip: !0, pointAttribs: w.prototype.pointAttribs, pointClass: x, requireSorting: !1, searchPoint: C, trackerGroups: ["group", "dataLabelsGroup"] }); u.registerSeriesType("pie",
                m); ""; return m
        }); M(a, "Series/Pie/PieDataLabel.js", [a["Core/Series/DataLabel.js"], a["Core/Globals.js"], a["Core/Color/Palette.js"], a["Core/Renderer/RendererUtilities.js"], a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]], function (a, w, C, E, z, x) {
            var r = w.noop, u = E.distribute, n = z.series, m = x.arrayMax, g = x.clamp, c = x.defined, e = x.merge, l = x.pick, f = x.relativeLength, v; (function (q) {
                function k() {
                    var a = this, f = a.data, d = a.chart, b = a.options.dataLabels || {}, g = b.connectorPadding, k = d.plotWidth, r = d.plotHeight, q = d.plotLeft,
                    v = Math.round(d.chartWidth / 3), w = a.center, x = w[2] / 2, B = w[1], z = [[], []], D = [0, 0, 0, 0], E = a.dataLabelPositioners, I, J, M, O, Z, A, U, N, W, X, Y, T; a.visible && (b.enabled || a._hasPointLabels) && (f.forEach(function (a) { a.dataLabel && a.visible && a.dataLabel.shortened && (a.dataLabel.attr({ width: "auto" }).css({ width: "auto", textOverflow: "clip" }), a.dataLabel.shortened = !1) }), n.prototype.drawDataLabels.apply(a), f.forEach(function (a) {
                        a.dataLabel && (a.visible ? (z[a.half].push(a), a.dataLabel._pos = null, !c(b.style.width) && !c(a.options.dataLabels &&
                            a.options.dataLabels.style && a.options.dataLabels.style.width) && a.dataLabel.getBBox().width > v && (a.dataLabel.css({ width: Math.round(.7 * v) + "px" }), a.dataLabel.shortened = !0)) : (a.dataLabel = a.dataLabel.destroy(), a.dataLabels && 1 === a.dataLabels.length && delete a.dataLabels))
                    }), z.forEach(function (e, f) {
                        var h = e.length, m = [], n; if (h) {
                            a.sortByAngle(e, f - .5); if (0 < a.maxLabelDistance) {
                                var p = Math.max(0, B - x - a.maxLabelDistance); var t = Math.min(B + x + a.maxLabelDistance, d.plotHeight); e.forEach(function (a) {
                                    0 < a.labelDistance && a.dataLabel &&
                                    (a.top = Math.max(0, B - x - a.labelDistance), a.bottom = Math.min(B + x + a.labelDistance, d.plotHeight), n = a.dataLabel.getBBox().height || 21, a.distributeBox = { target: a.labelPosition.natural.y - a.top + n / 2, size: n, rank: a.y }, m.push(a.distributeBox))
                                }); p = t + n - p; u(m, p, p / 5)
                            } for (Y = 0; Y < h; Y++) {
                                I = e[Y]; A = I.labelPosition; O = I.dataLabel; X = !1 === I.visible ? "hidden" : "inherit"; W = p = A.natural.y; m && c(I.distributeBox) && ("undefined" === typeof I.distributeBox.pos ? X = "hidden" : (U = I.distributeBox.size, W = E.radialDistributionY(I))); delete I.positionIndex;
                                if (b.justify) N = E.justify(I, x, w); else switch (b.alignTo) { case "connectors": N = E.alignToConnectors(e, f, k, q); break; case "plotEdges": N = E.alignToPlotEdges(O, f, k, q); break; default: N = E.radialDistributionX(a, I, W, p) }O._attr = { visibility: X, align: A.alignment }; T = I.options.dataLabels || {}; O._pos = { x: N + l(T.x, b.x) + ({ left: g, right: -g }[A.alignment] || 0), y: W + l(T.y, b.y) - 10 }; A.final.x = N; A.final.y = W; l(b.crop, !0) && (Z = O.getBBox().width, p = null, N - Z < g && 1 === f ? (p = Math.round(Z - N + g), D[3] = Math.max(p, D[3])) : N + Z > k - g && 0 === f && (p = Math.round(N +
                                    Z - k + g), D[1] = Math.max(p, D[1])), 0 > W - U / 2 ? D[0] = Math.max(Math.round(-W + U / 2), D[0]) : W + U / 2 > r && (D[2] = Math.max(Math.round(W + U / 2 - r), D[2])), O.sideOverflow = p)
                            }
                        }
                    }), 0 === m(D) || this.verifyDataLabelOverflow(D)) && (this.placeDataLabels(), this.points.forEach(function (c) {
                        T = e(b, c.options.dataLabels); if (J = l(T.connectorWidth, 1)) {
                            var f; M = c.connector; if ((O = c.dataLabel) && O._pos && c.visible && 0 < c.labelDistance) {
                                X = O._attr.visibility; if (f = !M) c.connector = M = d.renderer.path().addClass("highcharts-data-label-connector  highcharts-color-" +
                                    c.colorIndex + (c.className ? " " + c.className : "")).add(a.dataLabelsGroup), d.styledMode || M.attr({ "stroke-width": J, stroke: T.connectorColor || c.color || C.neutralColor60 }); M[f ? "attr" : "animate"]({ d: c.getConnectorPath() }); M.attr("visibility", X)
                            } else M && (c.connector = M.destroy())
                        }
                    }))
                } function v() {
                    this.points.forEach(function (a) {
                        var c = a.dataLabel, d; c && a.visible && ((d = c._pos) ? (c.sideOverflow && (c._attr.width = Math.max(c.getBBox().width - c.sideOverflow, 0), c.css({
                            width: c._attr.width + "px", textOverflow: (this.options.dataLabels.style ||
                                {}).textOverflow || "ellipsis"
                        }), c.shortened = !0), c.attr(c._attr), c[c.moved ? "animate" : "attr"](d), c.moved = !0) : c && c.attr({ y: -9999 })); delete a.distributeBox
                    }, this)
                } function w(a) {
                    var c = this.center, d = this.options, b = d.center, e = d.minSize || 80, k = null !== d.size; if (!k) {
                        if (null !== b[0]) var l = Math.max(c[2] - Math.max(a[1], a[3]), e); else l = Math.max(c[2] - a[1] - a[3], e), c[0] += (a[3] - a[1]) / 2; null !== b[1] ? l = g(l, e, c[2] - Math.max(a[0], a[2])) : (l = g(l, e, c[2] - a[0] - a[2]), c[1] += (a[0] - a[2]) / 2); l < c[2] ? (c[2] = l, c[3] = Math.min(f(d.innerSize ||
                            0, l), l), this.translate(c), this.drawDataLabels && this.drawDataLabels()) : k = !0
                    } return k
                } var x = [], z = {
                    radialDistributionY: function (a) { return a.top + a.distributeBox.pos }, radialDistributionX: function (a, c, d, b) { return a.getX(d < c.top + 2 || d > c.bottom - 2 ? b : d, c.half, c) }, justify: function (a, c, d) { return d[0] + (a.half ? -1 : 1) * (c + a.labelDistance) }, alignToPlotEdges: function (a, c, d, b) { a = a.getBBox().width; return c ? a + b : d - a - b }, alignToConnectors: function (a, c, d, b) {
                        var e = 0, f; a.forEach(function (a) {
                            f = a.dataLabel.getBBox().width; f > e &&
                                (e = f)
                        }); return c ? e + b : d - e - b
                    }
                }; q.compose = function (c) { a.compose(n); -1 === x.indexOf(c) && (x.push(c), c = c.prototype, c.dataLabelPositioners = z, c.alignDataLabel = r, c.drawDataLabels = k, c.placeDataLabels = v, c.verifyDataLabelOverflow = w) }
            })(v || (v = {})); return v
        }); M(a, "Extensions/OverlappingDataLabels.js", [a["Core/Chart/Chart.js"], a["Core/Utilities.js"]], function (a, w) {
            function r(a, g) {
                var c = !1; if (a) {
                    var e = a.newOpacity; a.oldOpacity !== e && (a.alignAttr && a.placed ? (a[e ? "removeClass" : "addClass"]("highcharts-data-label-hidden"),
                        c = !0, a.alignAttr.opacity = e, a[a.isOld ? "animate" : "attr"](a.alignAttr, null, function () { g.styledMode || a.css({ pointerEvents: e ? "auto" : "none" }) }), z(g, "afterHideOverlappingLabel")) : a.attr({ opacity: e })); a.isOld = !0
                } return c
            } var E = w.addEvent, z = w.fireEvent, x = w.isArray, J = w.isNumber, u = w.objectEach, n = w.pick; E(a, "render", function () {
                var a = this, g = []; (this.labelCollectors || []).forEach(function (a) { g = g.concat(a()) }); (this.yAxis || []).forEach(function (a) {
                    a.stacking && a.options.stackLabels && !a.options.stackLabels.allowOverlap &&
                    u(a.stacking.stacks, function (a) { u(a, function (a) { a.label && "hidden" !== a.label.visibility && g.push(a.label) }) })
                }); (this.series || []).forEach(function (c) {
                    var e = c.options.dataLabels; c.visible && (!1 !== e.enabled || c._hasPointLabels) && (e = function (c) {
                        return c.forEach(function (c) {
                            c.visible && (x(c.dataLabels) ? c.dataLabels : c.dataLabel ? [c.dataLabel] : []).forEach(function (e) {
                                var f = e.options; e.labelrank = n(f.labelrank, c.labelrank, c.shapeArgs && c.shapeArgs.height); f.allowOverlap ? (e.oldOpacity = e.opacity, e.newOpacity = 1, r(e,
                                    a)) : g.push(e)
                            })
                        })
                    }, e(c.nodes || []), e(c.points))
                }); this.hideOverlappingLabels(g)
            }); a.prototype.hideOverlappingLabels = function (a) {
                var g = this, c = a.length, e = g.renderer, l, f, m, n = !1; var k = function (a) {
                    var c, f = a.box ? 0 : a.padding || 0, g = c = 0, d; if (a && (!a.alignAttr || a.placed)) {
                        var b = a.alignAttr || { x: a.attr("x"), y: a.attr("y") }; var k = a.parentGroup; a.width || (c = a.getBBox(), a.width = c.width, a.height = c.height, c = e.fontMetrics(null, a.element).h); var l = a.width - 2 * f; (d = { left: "0", center: "0.5", right: "1" }[a.alignValue]) ? g = +d * l : J(a.x) &&
                            Math.round(a.x) !== a.translateX && (g = a.x - a.translateX); return { x: b.x + (k.translateX || 0) + f - (g || 0), y: b.y + (k.translateY || 0) + f - c, width: a.width - 2 * f, height: a.height - 2 * f }
                    }
                }; for (f = 0; f < c; f++)if (l = a[f]) l.oldOpacity = l.opacity, l.newOpacity = 1, l.absoluteBox = k(l); a.sort(function (a, c) { return (c.labelrank || 0) - (a.labelrank || 0) }); for (f = 0; f < c; f++) {
                    var u = (k = a[f]) && k.absoluteBox; for (l = f + 1; l < c; ++l) {
                        var w = (m = a[l]) && m.absoluteBox; !u || !w || k === m || 0 === k.newOpacity || 0 === m.newOpacity || w.x >= u.x + u.width || w.x + w.width <= u.x || w.y >= u.y + u.height ||
                            w.y + w.height <= u.y || ((k.labelrank < m.labelrank ? k : m).newOpacity = 0)
                    }
                } a.forEach(function (a) { r(a, g) && (n = !0) }); n && z(g, "afterHideAllOverlappingLabels")
            }
        }); M(a, "Core/Responsive.js", [a["Core/Utilities.js"]], function (a) {
            var r = a.extend, C = a.find, E = a.isArray, z = a.isObject, x = a.merge, J = a.objectEach, u = a.pick, n = a.splat, m = a.uniqueKey, g; (function (a) {
                var c = []; a.compose = function (a) { -1 === c.indexOf(a) && (c.push(a), r(a.prototype, g.prototype)); return a }; var g = function () {
                    function a() { } a.prototype.currentOptions = function (a) {
                        function c(a,
                            f, g, k) { var h; J(a, function (a, b) { if (!k && -1 < e.collectionsWithUpdate.indexOf(b) && f[b]) for (a = n(a), g[b] = [], h = 0; h < Math.max(a.length, f[b].length); h++)f[b][h] && (void 0 === a[h] ? g[b][h] = f[b][h] : (g[b][h] = {}, c(a[h], f[b][h], g[b][h], k + 1))); else z(a) ? (g[b] = E(a) ? [] : {}, c(a, f[b] || {}, g[b], k + 1)) : g[b] = "undefined" === typeof f[b] ? null : f[b] }) } var e = this, f = {}; c(a, this.options, f, 0); return f
                    }; a.prototype.matchResponsiveRule = function (a, c) {
                        var e = a.condition; (e.callback || function () {
                            return this.chartWidth <= u(e.maxWidth, Number.MAX_VALUE) &&
                                this.chartHeight <= u(e.maxHeight, Number.MAX_VALUE) && this.chartWidth >= u(e.minWidth, 0) && this.chartHeight >= u(e.minHeight, 0)
                        }).call(this) && c.push(a._id)
                    }; a.prototype.setResponsive = function (a, c) {
                        var e = this, f = this.options.responsive, g = this.currentResponsive, l = []; !c && f && f.rules && f.rules.forEach(function (a) { "undefined" === typeof a._id && (a._id = m()); e.matchResponsiveRule(a, l) }, this); c = x.apply(void 0, l.map(function (a) { return C((f || {}).rules || [], function (c) { return c._id === a }) }).map(function (a) { return a && a.chartOptions }));
                        c.isResponsiveOptions = !0; l = l.toString() || void 0; l !== (g && g.ruleIds) && (g && this.update(g.undoOptions, a, !0), l ? (g = this.currentOptions(c), g.isResponsiveOptions = !0, this.currentResponsive = { ruleIds: l, mergedOptions: c, undoOptions: g }, this.update(c, a, !0)) : this.currentResponsive = void 0)
                    }; return a
                }()
            })(g || (g = {})); ""; ""; return g
        }); M(a, "masters/highcharts.src.js", [a["Core/Globals.js"], a["Core/Utilities.js"], a["Core/DefaultOptions.js"], a["Core/Animation/Fx.js"], a["Core/Animation/AnimationUtilities.js"], a["Core/Renderer/HTML/AST.js"],
        a["Core/FormatUtilities.js"], a["Core/Renderer/RendererUtilities.js"], a["Core/Renderer/SVG/SVGElement.js"], a["Core/Renderer/SVG/SVGRenderer.js"], a["Core/Renderer/HTML/HTMLElement.js"], a["Core/Renderer/HTML/HTMLRenderer.js"], a["Core/Axis/Axis.js"], a["Core/Axis/DateTimeAxis.js"], a["Core/Axis/LogarithmicAxis.js"], a["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"], a["Core/Axis/Tick.js"], a["Core/Tooltip.js"], a["Core/Series/Point.js"], a["Core/Pointer.js"], a["Core/MSPointer.js"], a["Core/Legend/Legend.js"], a["Core/Chart/Chart.js"],
        a["Core/Series/Series.js"], a["Core/Series/SeriesRegistry.js"], a["Series/Column/ColumnSeries.js"], a["Series/Column/ColumnDataLabel.js"], a["Series/Pie/PieSeries.js"], a["Series/Pie/PieDataLabel.js"], a["Core/Series/DataLabel.js"], a["Core/Responsive.js"], a["Core/Color/Color.js"], a["Core/Time.js"]], function (a, w, C, E, z, x, J, u, n, m, g, c, e, l, f, v, q, k, I, D, B, M, t, h, d, b, p, G, y, L, F, P, S) {
            a.animate = z.animate; a.animObject = z.animObject; a.getDeferredAnimation = z.getDeferredAnimation; a.setAnimation = z.setAnimation; a.stop = z.stop;
            a.timers = E.timers; a.AST = x; a.Axis = e; a.Chart = t; a.chart = t.chart; a.Fx = E; a.Legend = M; a.PlotLineOrBand = v; a.Point = I; a.Pointer = B.isRequired() ? B : D; a.Series = h; a.SVGElement = n; a.SVGRenderer = m; a.Tick = q; a.Time = S; a.Tooltip = k; a.Color = P; a.color = P.parse; c.compose(m); g.compose(n); a.defaultOptions = C.defaultOptions; a.getOptions = C.getOptions; a.time = C.defaultTime; a.setOptions = C.setOptions; a.dateFormat = J.dateFormat; a.format = J.format; a.numberFormat = J.numberFormat; a.addEvent = w.addEvent; a.arrayMax = w.arrayMax; a.arrayMin = w.arrayMin;
            a.attr = w.attr; a.clearTimeout = w.clearTimeout; a.correctFloat = w.correctFloat; a.createElement = w.createElement; a.css = w.css; a.defined = w.defined; a.destroyObjectProperties = w.destroyObjectProperties; a.discardElement = w.discardElement; a.distribute = u.distribute; a.erase = w.erase; a.error = w.error; a.extend = w.extend; a.extendClass = w.extendClass; a.find = w.find; a.fireEvent = w.fireEvent; a.getMagnitude = w.getMagnitude; a.getStyle = w.getStyle; a.inArray = w.inArray; a.isArray = w.isArray; a.isClass = w.isClass; a.isDOMElement = w.isDOMElement;
            a.isFunction = w.isFunction; a.isNumber = w.isNumber; a.isObject = w.isObject; a.isString = w.isString; a.keys = w.keys; a.merge = w.merge; a.normalizeTickInterval = w.normalizeTickInterval; a.objectEach = w.objectEach; a.offset = w.offset; a.pad = w.pad; a.pick = w.pick; a.pInt = w.pInt; a.relativeLength = w.relativeLength; a.removeEvent = w.removeEvent; a.seriesType = d.seriesType; a.splat = w.splat; a.stableSort = w.stableSort; a.syncTimeout = w.syncTimeout; a.timeUnits = w.timeUnits; a.uniqueKey = w.uniqueKey; a.useSerialIds = w.useSerialIds; a.wrap = w.wrap;
            p.compose(b); L.compose(h); l.compose(e); f.compose(e); y.compose(G); v.compose(e); F.compose(t); return a
        }); a["masters/highcharts.src.js"]._modules = a; return a["masters/highcharts.src.js"]
});
//# sourceMappingURL=highcharts.js.map
/*
 Highcharts JS v9.2.2 (2021-08-24)

 (c) 2009-2021 Torstein Honsi

 License: www.highcharts.com/license
*/
'use strict'; (function (e) { "object" === typeof module && module.exports ? (e["default"] = e, module.exports = e) : "function" === typeof define && define.amd ? define("highcharts/highcharts-more", ["highcharts"], function (z) { e(z); e.Highcharts = z; return e }) : e("undefined" !== typeof Highcharts ? Highcharts : void 0) })(function (e) {
    function z(e, d, h, c) { e.hasOwnProperty(d) || (e[d] = c.apply(null, h)) } e = e ? e._modules : {}; z(e, "Extensions/Pane.js", [e["Core/Chart/Chart.js"], e["Core/Globals.js"], e["Core/Color/Palette.js"], e["Core/Pointer.js"],
    e["Core/Utilities.js"], e["Mixins/CenteredSeries.js"]], function (e, d, h, c, a, t) {
        function m(b, p, a) { return Math.sqrt(Math.pow(b - a[0], 2) + Math.pow(p - a[1], 2)) <= a[2] / 2 } var l = a.addEvent, r = a.extend, x = a.merge, b = a.pick, q = a.splat; e.prototype.collectionsWithUpdate.push("pane"); a = function () {
            function b(b, a) {
                this.options = this.chart = this.center = this.background = void 0; this.coll = "pane"; this.defaultOptions = { center: ["50%", "50%"], size: "85%", innerSize: "0%", startAngle: 0 }; this.defaultBackgroundOptions = {
                    shape: "circle", borderWidth: 1,
                    borderColor: h.neutralColor20, backgroundColor: { linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, stops: [[0, h.backgroundColor], [1, h.neutralColor10]] }, from: -Number.MAX_VALUE, innerRadius: 0, to: Number.MAX_VALUE, outerRadius: "105%"
                }; this.init(b, a)
            } b.prototype.init = function (b, a) { this.chart = a; this.background = []; a.pane.push(this); this.setOptions(b) }; b.prototype.setOptions = function (b) { this.options = x(this.defaultOptions, this.chart.angular ? { background: {} } : void 0, b) }; b.prototype.render = function () {
                var b = this.options, a = this.options.background,
                k = this.chart.renderer; this.group || (this.group = k.g("pane-group").attr({ zIndex: b.zIndex || 0 }).add()); this.updateCenter(); if (a) for (a = q(a), b = Math.max(a.length, this.background.length || 0), k = 0; k < b; k++)a[k] && this.axis ? this.renderBackground(x(this.defaultBackgroundOptions, a[k]), k) : this.background[k] && (this.background[k] = this.background[k].destroy(), this.background.splice(k, 1))
            }; b.prototype.renderBackground = function (b, a) {
                var k = "animate", p = { "class": "highcharts-pane " + (b.className || "") }; this.chart.styledMode ||
                    r(p, { fill: b.backgroundColor, stroke: b.borderColor, "stroke-width": b.borderWidth }); this.background[a] || (this.background[a] = this.chart.renderer.path().add(this.group), k = "attr"); this.background[a][k]({ d: this.axis.getPlotBandPath(b.from, b.to, b) }).attr(p)
            }; b.prototype.updateCenter = function (b) { this.center = (b || this.axis || {}).center = t.getCenter.call(this) }; b.prototype.update = function (b, a) {
                x(!0, this.options, b); this.setOptions(this.options); this.render(); this.chart.axes.forEach(function (b) {
                    b.pane === this && (b.pane =
                        null, b.update({}, a))
                }, this)
            }; return b
        }(); e.prototype.getHoverPane = function (b) { var a = this, k; b && a.pane.forEach(function (p) { var q = b.chartX - a.plotLeft, v = b.chartY - a.plotTop; m(a.inverted ? v : q, a.inverted ? q : v, p.center) && (k = p) }); return k }; l(e, "afterIsInsidePlot", function (b) { this.polar && (b.isInsidePlot = this.pane.some(function (a) { return m(b.x, b.y, a.center) })) }); l(c, "beforeGetHoverData", function (a) {
            var k = this.chart; k.polar ? (k.hoverPane = k.getHoverPane(a), a.filter = function (q) {
                return q.visible && !(!a.shared && q.directTouch) &&
                    b(q.options.enableMouseTracking, !0) && (!k.hoverPane || q.xAxis.pane === k.hoverPane)
            }) : k.hoverPane = void 0
        }); l(c, "afterGetHoverData", function (b) { var a = this.chart; b.hoverPoint && b.hoverPoint.plotX && b.hoverPoint.plotY && a.hoverPane && !m(b.hoverPoint.plotX, b.hoverPoint.plotY, a.hoverPane.center) && (b.hoverPoint = void 0) }); d.Pane = a; return d.Pane
    }); z(e, "Core/Axis/RadialAxis.js", [e["Core/Axis/AxisDefaults.js"], e["Core/DefaultOptions.js"], e["Core/Globals.js"], e["Core/Utilities.js"]], function (e, d, h, c) {
        var a = d.defaultOptions,
        t = h.noop, m = c.addEvent, l = c.correctFloat, r = c.defined, x = c.extend, b = c.fireEvent, q = c.merge, k = c.pick, p = c.relativeLength, v = c.wrap, B; (function (c) {
            function d() { this.autoConnect = this.isCircular && "undefined" === typeof k(this.userMax, this.options.max) && l(this.endAngleRad - this.startAngleRad) === l(2 * Math.PI); !this.isCircular && this.chart.inverted && this.max++; this.autoConnect && (this.max += this.categories && 1 || this.pointRange || this.closestPointRange || 0) } function y() {
                var f = this; return function () {
                    if (f.isRadial && f.tickPositions &&
                        f.options.labels && !0 !== f.options.labels.allowOverlap) return f.tickPositions.map(function (g) { return f.ticks[g] && f.ticks[g].label }).filter(function (f) { return !!f })
                }
            } function h() { return t } function g(f, g, b) {
                var n = this.pane.center, u = f.value; if (this.isCircular) {
                    if (r(u)) f.point && (a = f.point.shapeArgs || {}, a.start && (u = this.chart.inverted ? this.translate(f.point.rectPlotY, !0) : f.point.x)); else { var a = f.chartX || 0; var w = f.chartY || 0; u = this.translate(Math.atan2(w - b, a - g) - this.startAngleRad, !0) } f = this.getPosition(u);
                    a = f.x; w = f.y
                } else r(u) || (a = f.chartX, w = f.chartY), r(a) && r(w) && (b = n[1] + this.chart.plotTop, u = this.translate(Math.min(Math.sqrt(Math.pow(a - g, 2) + Math.pow(w - b, 2)), n[2] / 2) - n[3] / 2, !0)); return [u, a || 0, w || 0]
            } function f(f, g, b) {
                f = this.pane.center; var u = this.chart, n = this.left || 0, a = this.top || 0, w = k(g, f[2] / 2 - this.offset); "undefined" === typeof b && (b = this.horiz ? 0 : this.center && -this.center[3] / 2); b && (w += b); this.isCircular || "undefined" !== typeof g ? (g = this.chart.renderer.symbols.arc(n + f[0], a + f[1], w, w, {
                    start: this.startAngleRad,
                    end: this.endAngleRad, open: !0, innerR: 0
                }), g.xBounds = [n + f[0]], g.yBounds = [a + f[1] - w]) : (g = this.postTranslate(this.angleRad, w), g = [["M", this.center[0] + u.plotLeft, this.center[1] + u.plotTop], ["L", g.x, g.y]]); return g
            } function u() { this.constructor.prototype.getOffset.call(this); this.chart.axisOffset[this.side] = 0 } function n(f, g, b) {
                var u = this.chart, n = function (f) { if ("string" === typeof f) { var g = parseInt(f, 10); y.test(f) && (g = g * A / 100); return g } return f }, a = this.center, w = this.startAngleRad, A = a[2] / 2, q = Math.min(this.offset,
                    0), p = this.left || 0, v = this.top || 0, y = /%$/, F = this.isCircular, c = k(n(b.outerRadius), A), d = n(b.innerRadius); n = k(n(b.thickness), 10); if ("polygon" === this.options.gridLineInterpolation) q = this.getPlotLinePath({ value: f }).concat(this.getPlotLinePath({ value: g, reverse: !0 })); else {
                        f = Math.max(f, this.min); g = Math.min(g, this.max); f = this.translate(f); g = this.translate(g); F || (c = f || 0, d = g || 0); if ("circle" !== b.shape && F) b = w + (f || 0), w += g || 0; else { b = -Math.PI / 2; w = 1.5 * Math.PI; var l = !0 } c -= q; q = u.renderer.symbols.arc(p + a[0], v + a[1], c, c,
                            { start: Math.min(b, w), end: Math.max(b, w), innerR: k(d, c - (n - q)), open: l }); F && (F = (w + b) / 2, p = p + a[0] + a[2] / 2 * Math.cos(F), q.xBounds = F > -Math.PI / 2 && F < Math.PI / 2 ? [p, u.plotWidth] : [0, p], q.yBounds = [v + a[1] + a[2] / 2 * Math.sin(F)], q.yBounds[0] += F > -Math.PI && 0 > F || F > Math.PI ? -10 : 10)
                    } return q
            } function w(f) {
                var g = this, b = this.pane.center, n = this.chart, u = n.inverted, a = f.reverse, w = this.pane.options.background ? this.pane.options.background[0] || this.pane.options.background : {}, q = w.innerRadius || "0%", A = w.outerRadius || "100%", k = b[0] + n.plotLeft,
                v = b[1] + n.plotTop, F = this.height, y = f.isCrosshair; w = b[3] / 2; var c = f.value, d; var l = this.getPosition(c); var h = l.x; l = l.y; y && (l = this.getCrosshairPosition(f, k, v), c = l[0], h = l[1], l = l[2]); if (this.isCircular) c = Math.sqrt(Math.pow(h - k, 2) + Math.pow(l - v, 2)), a = "string" === typeof q ? p(q, 1) : q / c, n = "string" === typeof A ? p(A, 1) : A / c, b && w && (w /= c, a < w && (a = w), n < w && (n = w)), b = [["M", k + a * (h - k), v - a * (v - l)], ["L", h - (1 - n) * (h - k), l + (1 - n) * (v - l)]]; else if ((c = this.translate(c)) && (0 > c || c > F) && (c = 0), "circle" === this.options.gridLineInterpolation) b =
                    this.getLinePath(0, c, w); else if (b = [], n[u ? "yAxis" : "xAxis"].forEach(function (f) { f.pane === g.pane && (d = f) }), d) for (k = d.tickPositions, d.autoConnect && (k = k.concat([k[0]])), a && (k = k.slice().reverse()), c && (c += w), v = 0; v < k.length; v++)w = d.getPosition(k[v], c), b.push(v ? ["L", w.x, w.y] : ["M", w.x, w.y]); return b
            } function A(f, g) { f = this.translate(f); return this.postTranslate(this.isCircular ? f : this.angleRad, k(this.isCircular ? g : 0 > f ? 0 : f, this.center[2] / 2) - this.offset) } function F() {
                var f = this.center, g = this.chart, b = this.options.title;
                return { x: g.plotLeft + f[0] + (b.x || 0), y: g.plotTop + f[1] - { high: .5, middle: .25, low: 0 }[b.align] * f[2] + (b.y || 0) }
            } function J(b) { b.beforeSetTickPositions = d; b.createLabelCollector = y; b.getCrosshairPosition = g; b.getLinePath = f; b.getOffset = u; b.getPlotBandPath = n; b.getPlotLinePath = w; b.getPosition = A; b.getTitlePosition = F; b.postTranslate = N; b.setAxisSize = E; b.setAxisTranslation = z; b.setOptions = O } function B() {
                var f = this.chart, g = this.options, b = this.pane, n = b && b.options; f.angular && this.isXAxis || !b || !f.angular && !f.polar || (this.angleRad =
                    (g.angle || 0) * Math.PI / 180, this.startAngleRad = (n.startAngle - 90) * Math.PI / 180, this.endAngleRad = (k(n.endAngle, n.startAngle + 360) - 90) * Math.PI / 180, this.offset = g.offset || 0)
            } function P(f) { this.isRadial && (f.align = void 0, f.preventDefault()) } function H() { if (this.chart && this.chart.labelCollectors) { var f = this.labelCollector ? this.chart.labelCollectors.indexOf(this.labelCollector) : -1; 0 <= f && this.chart.labelCollectors.splice(f, 1) } } function K(f) {
                var g = this.chart, b = g.inverted, n = g.angular, u = g.polar, a = this.isXAxis, w = this.coll,
                k = n && a, A = g.options; f = f.userOptions.pane || 0; f = this.pane = g.pane && g.pane[f]; var p; if ("colorAxis" === w) this.isRadial = !1; else {
                    if (n) { if (k ? (this.isHidden = !0, this.createLabelCollector = h, this.getOffset = t, this.render = this.redraw = Q, this.setTitle = this.setCategories = this.setScale = t) : J(this), p = !a) this.defaultPolarOptions = R } else u && (J(this), this.defaultPolarOptions = (p = this.horiz) ? S : q("xAxis" === w ? e.defaultXAxisOptions : e.defaultYAxisOptions, T), b && "yAxis" === w && (this.defaultPolarOptions.stackLabels = e.defaultYAxisOptions.stackLabels,
                        this.defaultPolarOptions.reversedStacks = !0)); n || u ? (this.isRadial = !0, A.chart.zoomType = null, this.labelCollector || (this.labelCollector = this.createLabelCollector()), this.labelCollector && g.labelCollectors.push(this.labelCollector)) : this.isRadial = !1; f && p && (f.axis = this); this.isCircular = p
                }
            } function C() { this.isRadial && this.beforeSetTickPositions() } function D(f) {
                var g = this.label; if (g) {
                    var b = this.axis, n = g.getBBox(), u = b.options.labels, a = (b.translate(this.pos) + b.startAngleRad + Math.PI / 2) / Math.PI * 180 % 360, w = Math.round(a),
                    q = r(u.y) ? 0 : .3 * -n.height, A = u.y, v = 20, F = u.align, c = "end", y = 0 > w ? w + 360 : w, l = y, d = 0, h = 0; if (b.isRadial) {
                        var m = b.getPosition(this.pos, b.center[2] / 2 + p(k(u.distance, -25), b.center[2] / 2, -b.center[2] / 2)); "auto" === u.rotation ? g.attr({ rotation: a }) : r(A) || (A = b.chart.renderer.fontMetrics(g.styles && g.styles.fontSize).b - n.height / 2); r(F) || (b.isCircular ? (n.width > b.len * b.tickInterval / (b.max - b.min) && (v = 0), F = a > v && a < 180 - v ? "left" : a > 180 + v && a < 360 - v ? "right" : "center") : F = "center", g.attr({ align: F })); if ("auto" === F && 2 === b.tickPositions.length &&
                            b.isCircular) {
                                90 < y && 180 > y ? y = 180 - y : 270 < y && 360 >= y && (y = 540 - y); 180 < l && 360 >= l && (l = 360 - l); if (b.pane.options.startAngle === w || b.pane.options.startAngle === w + 360 || b.pane.options.startAngle === w - 360) c = "start"; F = -90 <= w && 90 >= w || -360 <= w && -270 >= w || 270 <= w && 360 >= w ? "start" === c ? "right" : "left" : "start" === c ? "left" : "right"; 70 < l && 110 > l && (F = "center"); 15 > y || 180 <= y && 195 > y ? d = .3 * n.height : 15 <= y && 35 >= y ? d = "start" === c ? 0 : .75 * n.height : 195 <= y && 215 >= y ? d = "start" === c ? .75 * n.height : 0 : 35 < y && 90 >= y ? d = "start" === c ? .25 * -n.height : n.height : 215 < y &&
                                    270 >= y && (d = "start" === c ? n.height : .25 * -n.height); 15 > l ? h = "start" === c ? .15 * -n.height : .15 * n.height : 165 < l && 180 >= l && (h = "start" === c ? .15 * n.height : .15 * -n.height); g.attr({ align: F }); g.translate(h, d + q)
                        } f.pos.x = m.x + (u.x || 0); f.pos.y = m.y + (A || 0)
                    }
                }
            } function G(f) { this.axis.getPosition && x(f.pos, this.axis.getPosition(this.pos)) } function N(f, g) { var b = this.chart, n = this.center; f = this.startAngleRad + f; return { x: b.plotLeft + n[0] + Math.cos(f) * g, y: b.plotTop + n[1] + Math.sin(f) * g } } function Q() { this.isDirty = !1 } function E() {
                this.constructor.prototype.setAxisSize.call(this);
                if (this.isRadial) { this.pane.updateCenter(this); var f = this.center = this.pane.center.slice(); if (this.isCircular) this.sector = this.endAngleRad - this.startAngleRad; else { var g = this.postTranslate(this.angleRad, f[3] / 2); f[0] = g.x - this.chart.plotLeft; f[1] = g.y - this.chart.plotTop } this.len = this.width = this.height = (f[2] - f[3]) * k(this.sector, 1) / 2 }
            } function z() {
                this.constructor.prototype.setAxisTranslation.call(this); this.center && (this.transA = this.isCircular ? (this.endAngleRad - this.startAngleRad) / (this.max - this.min || 1) :
                    (this.center[2] - this.center[3]) / 2 / (this.max - this.min || 1), this.minPixelPadding = this.isXAxis ? this.transA * this.minPointOffset : 0)
            } function O(f) { f = this.options = q(this.constructor.defaultOptions, this.defaultPolarOptions, a[this.coll], f); f.plotBands || (f.plotBands = []); b(this, "afterSetOptions") } function U(f, g, b, n, u, w, a) { var k = this.axis; k.isRadial ? (f = k.getPosition(this.pos, k.center[2] / 2 + n), g = ["M", g, b, "L", f.x, f.y]) : g = f.call(this, g, b, n, u, w, a); return g } var M = [], S = {
                gridLineWidth: 1, labels: {
                    align: void 0, distance: 15,
                    x: 0, y: void 0, style: { textOverflow: "none" }
                }, maxPadding: 0, minPadding: 0, showLastLabel: !1, tickLength: 0
            }, R = { labels: { align: "center", x: 0, y: void 0 }, minorGridLineWidth: 0, minorTickInterval: "auto", minorTickLength: 10, minorTickPosition: "inside", minorTickWidth: 1, tickLength: 10, tickPosition: "inside", tickWidth: 2, title: { rotation: 0 }, zIndex: 2 }, T = { gridLineInterpolation: "circle", gridLineWidth: 1, labels: { align: "right", x: -3, y: -2 }, showLastLabel: !1, title: { x: 4, text: null, rotation: 90 } }; c.compose = function (f, g) {
                -1 === M.indexOf(f) &&
                (M.push(f), m(f, "afterInit", B), m(f, "autoLabelAlign", P), m(f, "destroy", H), m(f, "init", K), m(f, "initialAxisTranslation", C)); -1 === M.indexOf(g) && (M.push(g), m(g, "afterGetLabelPosition", D), m(g, "afterGetPosition", G), v(g.prototype, "getMarkPath", U)); return f
            }
        })(B || (B = {})); return B
    }); z(e, "Series/AreaRange/AreaRangePoint.js", [e["Series/Area/AreaSeries.js"], e["Core/Series/Point.js"], e["Core/Utilities.js"]], function (e, d, h) {
        var c = this && this.__extends || function () {
            var a = function (c, l) {
                a = Object.setPrototypeOf || { __proto__: [] } instanceof
                Array && function (b, a) { b.__proto__ = a } || function (b, a) { for (var k in a) a.hasOwnProperty(k) && (b[k] = a[k]) }; return a(c, l)
            }; return function (c, l) { function b() { this.constructor = c } a(c, l); c.prototype = null === l ? Object.create(l) : (b.prototype = l.prototype, new b) }
        }(), a = d.prototype, t = h.defined, m = h.isNumber; return function (l) {
            function d() {
                var a = null !== l && l.apply(this, arguments) || this; a.high = void 0; a.low = void 0; a.options = void 0; a.plotHigh = void 0; a.plotLow = void 0; a.plotHighX = void 0; a.plotLowX = void 0; a.plotX = void 0; a.series =
                    void 0; return a
            } c(d, l); d.prototype.setState = function () {
                var c = this.state, b = this.series, q = b.chart.polar; t(this.plotHigh) || (this.plotHigh = b.yAxis.toPixels(this.high, !0)); t(this.plotLow) || (this.plotLow = this.plotY = b.yAxis.toPixels(this.low, !0)); b.stateMarkerGraphic && (b.lowerStateMarkerGraphic = b.stateMarkerGraphic, b.stateMarkerGraphic = b.upperStateMarkerGraphic); this.graphic = this.upperGraphic; this.plotY = this.plotHigh; q && (this.plotX = this.plotHighX); a.setState.apply(this, arguments); this.state = c; this.plotY =
                    this.plotLow; this.graphic = this.lowerGraphic; q && (this.plotX = this.plotLowX); b.stateMarkerGraphic && (b.upperStateMarkerGraphic = b.stateMarkerGraphic, b.stateMarkerGraphic = b.lowerStateMarkerGraphic, b.lowerStateMarkerGraphic = void 0); a.setState.apply(this, arguments)
            }; d.prototype.haloPath = function () {
                var c = this.series.chart.polar, b = []; this.plotY = this.plotLow; c && (this.plotX = this.plotLowX); this.isInside && (b = a.haloPath.apply(this, arguments)); this.plotY = this.plotHigh; c && (this.plotX = this.plotHighX); this.isTopInside &&
                    (b = b.concat(a.haloPath.apply(this, arguments))); return b
            }; d.prototype.isValid = function () { return m(this.low) && m(this.high) }; return d
        }(e.prototype.pointClass)
    }); z(e, "Series/AreaRange/AreaRangeSeries.js", [e["Series/AreaRange/AreaRangePoint.js"], e["Series/Area/AreaSeries.js"], e["Series/Column/ColumnSeries.js"], e["Core/Globals.js"], e["Core/Series/Series.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d, h, c, a, t, m) {
        var l = this && this.__extends || function () {
            var b = function (a, k) {
                b = Object.setPrototypeOf ||
                { __proto__: [] } instanceof Array && function (b, g) { b.__proto__ = g } || function (b, g) { for (var f in g) g.hasOwnProperty(f) && (b[f] = g[f]) }; return b(a, k)
            }; return function (a, k) { function q() { this.constructor = a } b(a, k); a.prototype = null === k ? Object.create(k) : (q.prototype = k.prototype, new q) }
        }(), r = d.prototype, x = h.prototype; h = c.noop; var b = a.prototype, q = m.defined, k = m.extend, p = m.isArray, v = m.pick, B = m.merge; a = function (a) {
            function c() {
                var b = null !== a && a.apply(this, arguments) || this; b.data = void 0; b.options = void 0; b.points = void 0;
                b.lowerStateMarkerGraphic = void 0; b.xAxis = void 0; return b
            } l(c, a); c.prototype.toYData = function (b) { return [b.low, b.high] }; c.prototype.highToXY = function (b) { var a = this.chart, g = this.xAxis.postTranslate(b.rectPlotX || 0, this.yAxis.len - b.plotHigh); b.plotHighX = g.x - a.plotLeft; b.plotHigh = g.y - a.plotTop; b.plotLowX = b.plotX }; c.prototype.translate = function () {
                var b = this, a = b.yAxis, g = !!b.modifyValue; r.translate.apply(b); b.points.forEach(function (f) {
                    var u = f.high, n = f.plotY; f.isNull ? f.plotY = null : (f.plotLow = n, f.plotHigh = a.translate(g ?
                        b.modifyValue(u, f) : u, 0, 1, 0, 1), g && (f.yBottom = f.plotHigh))
                }); this.chart.polar && this.points.forEach(function (f) { b.highToXY(f); f.tooltipPos = [(f.plotHighX + f.plotLowX) / 2, (f.plotHigh + f.plotLow) / 2] })
            }; c.prototype.getGraphPath = function (b) {
                var a = [], g = [], f, u = r.getGraphPath; var n = this.options; var w = this.chart.polar, k = w && !1 !== n.connectEnds, q = n.connectNulls, c = n.step; b = b || this.points; for (f = b.length; f--;) {
                    var p = b[f]; var l = w ? { plotX: p.rectPlotX, plotY: p.yBottom, doCurve: !1 } : { plotX: p.plotX, plotY: p.plotY, doCurve: !1 }; p.isNull ||
                        k || q || b[f + 1] && !b[f + 1].isNull || g.push(l); var d = { polarPlotY: p.polarPlotY, rectPlotX: p.rectPlotX, yBottom: p.yBottom, plotX: v(p.plotHighX, p.plotX), plotY: p.plotHigh, isNull: p.isNull }; g.push(d); a.push(d); p.isNull || k || q || b[f - 1] && !b[f - 1].isNull || g.push(l)
                } b = u.call(this, b); c && (!0 === c && (c = "left"), n.step = { left: "right", center: "center", right: "left" }[c]); a = u.call(this, a); g = u.call(this, g); n.step = c; n = [].concat(b, a); !this.chart.polar && g[0] && "M" === g[0][0] && (g[0] = ["L", g[0][1], g[0][2]]); this.graphPath = n; this.areaPath = b.concat(g);
                n.isArea = !0; n.xMap = b.xMap; this.areaPath.xMap = b.xMap; return n
            }; c.prototype.drawDataLabels = function () {
                var a = this.points, q = a.length, g, f = [], u = this.options.dataLabels, n, w = this.chart.inverted; if (u) {
                    if (p(u)) { var A = u[0] || { enabled: !1 }; var c = u[1] || { enabled: !1 } } else A = k({}, u), A.x = u.xHigh, A.y = u.yHigh, c = k({}, u), c.x = u.xLow, c.y = u.yLow; if (A.enabled || this._hasPointLabels) {
                        for (g = q; g--;)if (n = a[g]) {
                            var v = A.inside ? n.plotHigh < n.plotLow : n.plotHigh > n.plotLow; n.y = n.high; n._plotY = n.plotY; n.plotY = n.plotHigh; f[g] = n.dataLabel;
                            n.dataLabel = n.dataLabelUpper; n.below = v; w ? A.align || (A.align = v ? "right" : "left") : A.verticalAlign || (A.verticalAlign = v ? "top" : "bottom")
                        } this.options.dataLabels = A; b.drawDataLabels && b.drawDataLabels.apply(this, arguments); for (g = q; g--;)if (n = a[g]) n.dataLabelUpper = n.dataLabel, n.dataLabel = f[g], delete n.dataLabels, n.y = n.low, n.plotY = n._plotY
                    } if (c.enabled || this._hasPointLabels) {
                        for (g = q; g--;)if (n = a[g]) v = c.inside ? n.plotHigh < n.plotLow : n.plotHigh > n.plotLow, n.below = !v, w ? c.align || (c.align = v ? "left" : "right") : c.verticalAlign ||
                            (c.verticalAlign = v ? "bottom" : "top"); this.options.dataLabels = c; b.drawDataLabels && b.drawDataLabels.apply(this, arguments)
                    } if (A.enabled) for (g = q; g--;)if (n = a[g]) n.dataLabels = [n.dataLabelUpper, n.dataLabel].filter(function (f) { return !!f }); this.options.dataLabels = u
                }
            }; c.prototype.alignDataLabel = function () { x.alignDataLabel.apply(this, arguments) }; c.prototype.drawPoints = function () {
                var a = this.points.length, c; b.drawPoints.apply(this, arguments); for (c = 0; c < a;) {
                    var g = this.points[c]; g.origProps = {
                        plotY: g.plotY, plotX: g.plotX,
                        isInside: g.isInside, negative: g.negative, zone: g.zone, y: g.y
                    }; g.lowerGraphic = g.graphic; g.graphic = g.upperGraphic; g.plotY = g.plotHigh; q(g.plotHighX) && (g.plotX = g.plotHighX); g.y = v(g.high, g.origProps.y); g.negative = g.y < (this.options.threshold || 0); this.zones.length && (g.zone = g.getZone()); this.chart.polar || (g.isInside = g.isTopInside = "undefined" !== typeof g.plotY && 0 <= g.plotY && g.plotY <= this.yAxis.len && 0 <= g.plotX && g.plotX <= this.xAxis.len); c++
                } b.drawPoints.apply(this, arguments); for (c = 0; c < a;)g = this.points[c], g.upperGraphic =
                    g.graphic, g.graphic = g.lowerGraphic, g.origProps && (k(g, g.origProps), delete g.origProps), c++
            }; c.defaultOptions = B(d.defaultOptions, { lineWidth: 1, threshold: null, tooltip: { pointFormat: '<span style="color:{series.color}">\u25cf</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>' }, trackByArea: !0, dataLabels: { align: void 0, verticalAlign: void 0, xLow: 0, xHigh: 0, yLow: 0, yHigh: 0 } }); return c
        }(d); k(a.prototype, { pointArrayMap: ["low", "high"], pointValKey: "low", deferTranslatePolar: !0, pointClass: e, setStackedPoints: h });
        t.registerSeriesType("arearange", a); ""; return a
    }); z(e, "Series/AreaSplineRange/AreaSplineRangeSeries.js", [e["Series/AreaRange/AreaRangeSeries.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d, h) {
        var c = this && this.__extends || function () {
            var a = function (c, l) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a } || function (b, a) { for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]) }; return a(c, l) }; return function (c, l) {
                function b() { this.constructor = c } a(c,
                    l); c.prototype = null === l ? Object.create(l) : (b.prototype = l.prototype, new b)
            }
        }(), a = d.seriesTypes.spline, t = h.merge; h = h.extend; var m = function (a) { function l() { var c = null !== a && a.apply(this, arguments) || this; c.options = void 0; c.data = void 0; c.points = void 0; return c } c(l, a); l.defaultOptions = t(e.defaultOptions); return l }(e); h(m.prototype, { getPointSpline: a.prototype.getPointSpline }); d.registerSeriesType("areasplinerange", m); ""; return m
    }); z(e, "Series/BoxPlot/BoxPlotSeries.js", [e["Series/Column/ColumnSeries.js"], e["Core/Globals.js"],
    e["Core/Color/Palette.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d, h, c, a) {
        var t = this && this.__extends || function () { var a = function (b, c) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a } || function (b, a) { for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]) }; return a(b, c) }; return function (b, c) { function k() { this.constructor = b } a(b, c); b.prototype = null === c ? Object.create(c) : (k.prototype = c.prototype, new k) } }(); d = d.noop; var m = a.extend, l = a.merge, r = a.pick;
        a = function (a) {
            function b() { var b = null !== a && a.apply(this, arguments) || this; b.data = void 0; b.options = void 0; b.points = void 0; return b } t(b, a); b.prototype.pointAttribs = function () { return {} }; b.prototype.translate = function () { var b = this.yAxis, c = this.pointArrayMap; a.prototype.translate.apply(this); this.points.forEach(function (a) { c.forEach(function (c) { null !== a[c] && (a[c + "Plot"] = b.translate(a[c], 0, 1, 0, 1)) }); a.plotHigh = a.highPlot }) }; b.prototype.drawPoints = function () {
                var b = this, a = b.options, c = b.chart, v = c.renderer,
                l, d, h, m, e, g, f = 0, u, n, w, A, F = !1 !== b.doQuartiles, t, x = b.options.whiskerLength; b.points.forEach(function (k) {
                    var p = k.graphic, q = p ? "animate" : "attr", y = k.shapeArgs, B = {}, J = {}, L = {}, H = {}, I = k.color || b.color; "undefined" !== typeof k.plotY && (u = Math.round(y.width), n = Math.floor(y.x), w = n + u, A = Math.round(u / 2), l = Math.floor(F ? k.q1Plot : k.lowPlot), d = Math.floor(F ? k.q3Plot : k.lowPlot), h = Math.floor(k.highPlot), m = Math.floor(k.lowPlot), p || (k.graphic = p = v.g("point").add(b.group), k.stem = v.path().addClass("highcharts-boxplot-stem").add(p),
                        x && (k.whiskers = v.path().addClass("highcharts-boxplot-whisker").add(p)), F && (k.box = v.path(void 0).addClass("highcharts-boxplot-box").add(p)), k.medianShape = v.path(void 0).addClass("highcharts-boxplot-median").add(p)), c.styledMode || (J.stroke = k.stemColor || a.stemColor || I, J["stroke-width"] = r(k.stemWidth, a.stemWidth, a.lineWidth), J.dashstyle = k.stemDashStyle || a.stemDashStyle || a.dashStyle, k.stem.attr(J), x && (L.stroke = k.whiskerColor || a.whiskerColor || I, L["stroke-width"] = r(k.whiskerWidth, a.whiskerWidth, a.lineWidth),
                            L.dashstyle = k.whiskerDashStyle || a.whiskerDashStyle || a.dashStyle, k.whiskers.attr(L)), F && (B.fill = k.fillColor || a.fillColor || I, B.stroke = a.lineColor || I, B["stroke-width"] = a.lineWidth || 0, B.dashstyle = k.boxDashStyle || a.boxDashStyle || a.dashStyle, k.box.attr(B)), H.stroke = k.medianColor || a.medianColor || I, H["stroke-width"] = r(k.medianWidth, a.medianWidth, a.lineWidth), H.dashstyle = k.medianDashStyle || a.medianDashStyle || a.dashStyle, k.medianShape.attr(H)), g = k.stem.strokeWidth() % 2 / 2, f = n + A + g, p = [["M", f, d], ["L", f, h], ["M",
                                f, l], ["L", f, m]], k.stem[q]({ d: p }), F && (g = k.box.strokeWidth() % 2 / 2, l = Math.floor(l) + g, d = Math.floor(d) + g, n += g, w += g, p = [["M", n, d], ["L", n, l], ["L", w, l], ["L", w, d], ["L", n, d], ["Z"]], k.box[q]({ d: p })), x && (g = k.whiskers.strokeWidth() % 2 / 2, h += g, m += g, t = /%$/.test(x) ? A * parseFloat(x) / 100 : x / 2, p = [["M", f - t, h], ["L", f + t, h], ["M", f - t, m], ["L", f + t, m]], k.whiskers[q]({ d: p })), e = Math.round(k.medianPlot), g = k.medianShape.strokeWidth() % 2 / 2, e += g, p = [["M", n, e], ["L", w, e]], k.medianShape[q]({ d: p }))
                })
            }; b.prototype.toYData = function (b) {
                return [b.low,
                b.q1, b.median, b.q3, b.high]
            }; b.defaultOptions = l(e.defaultOptions, { threshold: null, tooltip: { pointFormat: '<span style="color:{point.color}">\u25cf</span> <b> {series.name}</b><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>' }, whiskerLength: "50%", fillColor: h.backgroundColor, lineWidth: 1, medianWidth: 2, whiskerWidth: 2 }); return b
        }(e); m(a.prototype, {
            pointArrayMap: ["low", "q1", "median", "q3", "high"], pointValKey: "high",
            drawDataLabels: d, setStackedPoints: d
        }); c.registerSeriesType("boxplot", a); ""; return a
    }); z(e, "Series/Bubble/BubbleLegendDefaults.js", [e["Core/Color/Palette.js"]], function (e) {
        return {
            borderColor: void 0, borderWidth: 2, className: void 0, color: void 0, connectorClassName: void 0, connectorColor: void 0, connectorDistance: 60, connectorWidth: 1, enabled: !1, labels: { className: void 0, allowOverlap: !1, format: "", formatter: void 0, align: "right", style: { fontSize: "10px", color: e.neutralColor100 }, x: 0, y: 0 }, maxSize: 60, minSize: 10, legendIndex: 0,
            ranges: { value: void 0, borderColor: void 0, color: void 0, connectorColor: void 0 }, sizeBy: "area", sizeByAbsoluteValue: !1, zIndex: 1, zThreshold: 0
        }
    }); z(e, "Series/Bubble/BubbleLegendItem.js", [e["Core/Color/Color.js"], e["Core/FormatUtilities.js"], e["Core/Globals.js"], e["Core/Utilities.js"]], function (e, d, h, c) {
        var a = e.parse, t = h.noop, m = c.arrayMax, l = c.arrayMin, r = c.isNumber, x = c.merge, b = c.pick, q = c.stableSort; ""; return function () {
            function c(b, a) {
                this.options = this.symbols = this.visible = this.selected = this.ranges = this.movementX =
                    this.maxLabel = this.legendSymbol = this.legendItemWidth = this.legendItemHeight = this.legendItem = this.legendGroup = this.legend = this.fontMetrics = this.chart = void 0; this.setState = t; this.init(b, a)
            } c.prototype.init = function (b, a) { this.options = b; this.visible = !0; this.chart = a.chart; this.legend = a }; c.prototype.addToLegend = function (b) { b.splice(this.options.legendIndex, 0, this) }; c.prototype.drawLegendSymbol = function (a) {
                var c = this.chart, k = this.options, p = b(a.options.itemDistance, 20), l = k.ranges, d = k.connectorDistance; this.fontMetrics =
                    c.renderer.fontMetrics(k.labels.style.fontSize); l && l.length && r(l[0].value) ? (q(l, function (b, g) { return g.value - b.value }), this.ranges = l, this.setOptions(), this.render(), a = this.getMaxLabelSize(), l = this.ranges[0].radius, c = 2 * l, d = d - l + a.width, d = 0 < d ? d : 0, this.maxLabel = a, this.movementX = "left" === k.labels.align ? d : 0, this.legendItemWidth = c + d + p, this.legendItemHeight = c + this.fontMetrics.h / 2) : a.options.bubbleLegend.autoRanges = !0
            }; c.prototype.setOptions = function () {
                var c = this.ranges, k = this.options, l = this.chart.series[k.seriesIndex],
                q = this.legend.baseline, d = { zIndex: k.zIndex, "stroke-width": k.borderWidth }, h = { zIndex: k.zIndex, "stroke-width": k.connectorWidth }, e = { align: this.legend.options.rtl || "left" === k.labels.align ? "right" : "left", zIndex: k.zIndex }, g = l.options.marker.fillOpacity, f = this.chart.styledMode; c.forEach(function (u, n) {
                    f || (d.stroke = b(u.borderColor, k.borderColor, l.color), d.fill = b(u.color, k.color, 1 !== g ? a(l.color).setOpacity(g).get("rgba") : l.color), h.stroke = b(u.connectorColor, k.connectorColor, l.color)); c[n].radius = this.getRangeRadius(u.value);
                    c[n] = x(c[n], { center: c[0].radius - c[n].radius + q }); f || x(!0, c[n], { bubbleAttribs: x(d), connectorAttribs: x(h), labelAttribs: e })
                }, this)
            }; c.prototype.getRangeRadius = function (b) { var a = this.options; return this.chart.series[this.options.seriesIndex].getRadius.call(this, a.ranges[a.ranges.length - 1].value, a.ranges[0].value, a.minSize, a.maxSize, b) }; c.prototype.render = function () {
                var b = this.chart.renderer, a = this.options.zThreshold; this.symbols || (this.symbols = { connectors: [], bubbleItems: [], labels: [] }); this.legendSymbol =
                    b.g("bubble-legend"); this.legendItem = b.g("bubble-legend-item"); this.legendSymbol.translateX = 0; this.legendSymbol.translateY = 0; this.ranges.forEach(function (b) { b.value >= a && this.renderRange(b) }, this); this.legendSymbol.add(this.legendItem); this.legendItem.add(this.legendGroup); this.hideOverlappingLabels()
            }; c.prototype.renderRange = function (b) {
                var a = this.options, c = a.labels, k = this.chart, l = k.series[a.seriesIndex], d = k.renderer, q = this.symbols; k = q.labels; var g = b.center, f = Math.abs(b.radius), u = a.connectorDistance ||
                    0, n = c.align, w = a.connectorWidth, A = this.ranges[0].radius || 0, p = g - f - a.borderWidth / 2 + w / 2, h = this.fontMetrics; h = h.f / 2 - (h.h - h.f) / 2; var e = d.styledMode; u = this.legend.options.rtl || "left" === n ? -u : u; "center" === n && (u = 0, a.connectorDistance = 0, b.labelAttribs.align = "center"); n = p + a.labels.y; var m = A + u + a.labels.x; q.bubbleItems.push(d.circle(A, g + ((p % 1 ? 1 : .5) - (w % 2 ? 0 : .5)), f).attr(e ? {} : b.bubbleAttribs).addClass((e ? "highcharts-color-" + l.colorIndex + " " : "") + "highcharts-bubble-legend-symbol " + (a.className || "")).add(this.legendSymbol));
                q.connectors.push(d.path(d.crispLine([["M", A, p], ["L", A + u, p]], a.connectorWidth)).attr(e ? {} : b.connectorAttribs).addClass((e ? "highcharts-color-" + this.options.seriesIndex + " " : "") + "highcharts-bubble-legend-connectors " + (a.connectorClassName || "")).add(this.legendSymbol)); b = d.text(this.formatLabel(b), m, n + h).attr(e ? {} : b.labelAttribs).css(e ? {} : c.style).addClass("highcharts-bubble-legend-labels " + (a.labels.className || "")).add(this.legendSymbol); k.push(b); b.placed = !0; b.alignAttr = { x: m, y: n + h }
            }; c.prototype.getMaxLabelSize =
                function () { var b, a; this.symbols.labels.forEach(function (c) { a = c.getBBox(!0); b = b ? a.width > b.width ? a : b : a }); return b || {} }; c.prototype.formatLabel = function (b) { var a = this.options, c = a.labels.formatter; a = a.labels.format; var k = this.chart.numberFormatter; return a ? d.format(a, b) : c ? c.call(b) : k(b.value, 1) }; c.prototype.hideOverlappingLabels = function () {
                    var b = this.chart, a = this.symbols; !this.options.labels.allowOverlap && a && (b.hideOverlappingLabels(a.labels), a.labels.forEach(function (b, c) {
                        b.newOpacity ? b.newOpacity !==
                            b.oldOpacity && a.connectors[c].show() : a.connectors[c].hide()
                    }))
                }; c.prototype.getRanges = function () {
                    var a = this.legend.bubbleLegend, c = a.options.ranges, k, d = Number.MAX_VALUE, q = -Number.MAX_VALUE; a.chart.series.forEach(function (a) { a.isBubble && !a.ignoreSeries && (k = a.zData.filter(r), k.length && (d = b(a.options.zMin, Math.min(d, Math.max(l(k), !1 === a.options.displayNegative ? a.options.zThreshold : -Number.MAX_VALUE))), q = b(a.options.zMax, Math.max(q, m(k))))) }); var h = d === q ? [{ value: q }] : [{ value: d }, { value: (d + q) / 2 }, {
                        value: q,
                        autoRanges: !0
                    }]; c.length && c[0].radius && h.reverse(); h.forEach(function (b, a) { c && c[a] && (h[a] = x(c[a], b)) }); return h
                }; c.prototype.predictBubbleSizes = function () {
                    var b = this.chart, a = this.fontMetrics, c = b.legend.options, k = "horizontal" === c.layout, l = k ? b.legend.lastLineHeight : 0, d = b.plotSizeX, q = b.plotSizeY, g = b.series[this.options.seriesIndex]; b = Math.ceil(g.minPxSize); var f = Math.ceil(g.maxPxSize), u = Math.min(q, d); g = g.options.maxSize; if (c.floating || !/%$/.test(g)) a = f; else if (g = parseFloat(g), a = (u + l - a.h / 2) * g / 100 / (g /
                        100 + 1), k && q - a >= d || !k && d - a >= q) a = f; return [b, Math.ceil(a)]
                }; c.prototype.updateRanges = function (b, a) { var c = this.legend.options.bubbleLegend; c.minSize = b; c.maxSize = a; c.ranges = this.getRanges() }; c.prototype.correctSizes = function () { var b = this.legend, a = this.chart.series[this.options.seriesIndex]; 1 < Math.abs(Math.ceil(a.maxPxSize) - this.options.maxSize) && (this.updateRanges(this.options.minSize, a.maxPxSize), b.render()) }; return c
        }()
    }); z(e, "Series/Bubble/BubbleLegendComposition.js", [e["Series/Bubble/BubbleLegendDefaults.js"],
    e["Series/Bubble/BubbleLegendItem.js"], e["Core/DefaultOptions.js"], e["Core/Utilities.js"]], function (e, d, h, c) {
        var a = h.setOptions, t = c.addEvent, m = c.objectEach, l = c.wrap, r; (function (c) {
            function b(b, a, c) {
                var g = this.legend, f = 0 <= q(this); if (g && g.options.enabled && g.bubbleLegend && g.options.bubbleLegend.autoRanges && f) {
                    var u = g.bubbleLegend.options; f = g.bubbleLegend.predictBubbleSizes(); g.bubbleLegend.updateRanges(f[0], f[1]); u.placed || (g.group.placed = !1, g.allItems.forEach(function (f) { f.legendGroup.translateY = null }));
                    g.render(); this.getMargins(); this.axes.forEach(function (f) { f.visible && f.render(); u.placed || (f.setScale(), f.updateNames(), m(f.ticks, function (f) { f.isNew = !0; f.isNewLabel = !0 })) }); u.placed = !0; this.getMargins(); b.call(this, a, c); g.bubbleLegend.correctSizes(); r(g, k(g))
                } else b.call(this, a, c), g && g.options.enabled && g.bubbleLegend && (g.render(), r(g, k(g)))
            } function q(b) { b = b.series; for (var a = 0; a < b.length;) { if (b[a] && b[a].isBubble && b[a].visible && b[a].zData.length) return a; a++ } return -1 } function k(b) {
                b = b.allItems; var a =
                    [], c = b.length, g, f = 0; for (g = 0; g < c; g++)if (b[g].legendItemHeight && (b[g].itemHeight = b[g].legendItemHeight), b[g] === b[c - 1] || b[g + 1] && b[g]._legendItemPos[1] !== b[g + 1]._legendItemPos[1]) { a.push({ height: 0 }); var u = a[a.length - 1]; for (f; f <= g; f++)b[f].itemHeight > u.height && (u.height = b[f].itemHeight); u.step = g } return a
            } function h(b) {
                var a = this.bubbleLegend, c = this.options, g = c.bubbleLegend, f = q(this.chart); a && a.ranges && a.ranges.length && (g.ranges.length && (g.autoRanges = !!g.ranges[0].autoRanges), this.destroyItem(a)); 0 <= f &&
                    c.enabled && g.enabled && (g.seriesIndex = f, this.bubbleLegend = new d(g, this), this.bubbleLegend.addToLegend(b.allItems))
            } function v() { var b = this.chart, a = this.visible, c = this.chart.legend; c && c.bubbleLegend && (this.visible = !a, this.ignoreSeries = a, b = 0 <= q(b), c.bubbleLegend.visible !== b && (c.update({ bubbleLegend: { enabled: b } }), c.bubbleLegend.visible = b), this.visible = a) } function r(b, a) {
                var c = b.options.rtl, g, f, u, n = 0; b.allItems.forEach(function (b, k) {
                    g = b.legendGroup.translateX; f = b._legendItemPos[1]; if ((u = b.movementX) ||
                        c && b.ranges) u = c ? g - b.options.maxSize / 2 : g + u, b.legendGroup.attr({ translateX: u }); k > a[n].step && n++; b.legendGroup.attr({ translateY: Math.round(f + a[n].height / 2) }); b._legendItemPos[1] = f + a[n].height / 2
                })
            } var x = []; c.compose = function (c, k, d) { -1 === x.indexOf(c) && (x.push(c), a({ legend: { bubbleLegend: e } }), l(c.prototype, "drawChartBox", b)); -1 === x.indexOf(k) && (x.push(k), t(k, "afterGetAllItems", h)); -1 === x.indexOf(d) && (x.push(d), t(d, "legendItemClick", v)) }
        })(r || (r = {})); return r
    }); z(e, "Series/Bubble/BubblePoint.js", [e["Core/Series/Point.js"],
    e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d, h) {
        var c = this && this.__extends || function () { var a = function (c, d) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var d in c) c.hasOwnProperty(d) && (a[d] = c[d]) }; return a(c, d) }; return function (c, d) { function l() { this.constructor = c } a(c, d); c.prototype = null === d ? Object.create(d) : (l.prototype = d.prototype, new l) } }(); h = h.extend; d = function (a) {
            function d() {
                var c = null !== a && a.apply(this, arguments) ||
                    this; c.options = void 0; c.series = void 0; return c
            } c(d, a); d.prototype.haloPath = function (a) { return e.prototype.haloPath.call(this, 0 === a ? 0 : (this.marker ? this.marker.radius || 0 : 0) + a) }; return d
        }(d.seriesTypes.scatter.prototype.pointClass); h(d.prototype, { ttBelow: !1 }); return d
    }); z(e, "Series/Bubble/BubbleSeries.js", [e["Core/Axis/Axis.js"], e["Series/Bubble/BubbleLegendComposition.js"], e["Series/Bubble/BubblePoint.js"], e["Core/Color/Color.js"], e["Core/Globals.js"], e["Core/Series/Series.js"], e["Core/Series/SeriesRegistry.js"],
    e["Core/Utilities.js"]], function (e, d, h, c, a, t, m, l) {
        var r = this && this.__extends || function () { var b = function (f, a) { b = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, f) { b.__proto__ = f } || function (b, f) { for (var a in f) f.hasOwnProperty(a) && (b[a] = f[a]) }; return b(f, a) }; return function (f, a) { function g() { this.constructor = f } b(f, a); f.prototype = null === a ? Object.create(a) : (g.prototype = a.prototype, new g) } }(), x = c.parse; c = a.noop; var b = m.seriesTypes; a = b.column; var q = b.scatter, k = l.arrayMax, p = l.arrayMin, v =
            l.clamp, B = l.extend, H = l.isNumber, D = l.merge, y = l.pick, I = l.pInt; l = function (b) {
                function f() { var f = null !== b && b.apply(this, arguments) || this; f.data = void 0; f.maxPxSize = void 0; f.minPxSize = void 0; f.options = void 0; f.points = void 0; f.radii = void 0; f.yData = void 0; f.zData = void 0; return f } r(f, b); f.prototype.animate = function (b) {
                    !b && this.points.length < this.options.animationLimit && this.points.forEach(function (b) {
                        var f = b.graphic; f && f.width && (this.hasRendered || f.attr({ x: b.plotX, y: b.plotY, width: 1, height: 1 }), f.animate(this.markerAttribs(b),
                            this.options.animation))
                    }, this)
                }; f.prototype.getRadii = function (b, f, a) { var g = this.zData, c = this.yData, n = a.minPxSize, u = a.maxPxSize, k = []; var w = 0; for (a = g.length; w < a; w++) { var d = g[w]; k.push(this.getRadius(b, f, n, u, d, c[w])) } this.radii = k }; f.prototype.getRadius = function (b, f, a, g, c, k) {
                    var n = this.options, u = "width" !== n.sizeBy, w = n.zThreshold, d = f - b, q = .5; if (null === k || null === c) return null; if (H(c)) { n.sizeByAbsoluteValue && (c = Math.abs(c - w), d = Math.max(f - w, Math.abs(b - w)), b = 0); if (c < b) return a / 2 - 1; 0 < d && (q = (c - b) / d) } u && 0 <= q &&
                        (q = Math.sqrt(q)); return Math.ceil(a + q * (g - a)) / 2
                }; f.prototype.hasData = function () { return !!this.processedXData.length }; f.prototype.pointAttribs = function (b, f) { var a = this.options.marker.fillOpacity; b = t.prototype.pointAttribs.call(this, b, f); 1 !== a && (b.fill = x(b.fill).setOpacity(a).get("rgba")); return b }; f.prototype.translate = function () {
                    var f, a = this.data, g = this.radii; b.prototype.translate.call(this); for (f = a.length; f--;) {
                        var c = a[f]; var k = g ? g[f] : 0; H(k) && k >= this.minPxSize / 2 ? (c.marker = B(c.marker, {
                            radius: k, width: 2 *
                                k, height: 2 * k
                        }), c.dlBox = { x: c.plotX - k, y: c.plotY - k, width: 2 * k, height: 2 * k }) : c.shapeArgs = c.plotY = c.dlBox = void 0
                    }
                }; f.compose = d.compose; f.defaultOptions = D(q.defaultOptions, {
                    dataLabels: { formatter: function () { var b = this.series.chart.numberFormatter, f = this.point.z; return H(f) ? b(f, -1) : "" }, inside: !0, verticalAlign: "middle" }, animationLimit: 250, marker: { lineColor: null, lineWidth: 1, fillOpacity: .5, radius: null, states: { hover: { radiusPlus: 0 } }, symbol: "circle" }, minSize: 8, maxSize: "20%", softThreshold: !1, states: { hover: { halo: { size: 5 } } },
                    tooltip: { pointFormat: "({point.x}, {point.y}), Size: {point.z}" }, turboThreshold: 0, zThreshold: 0, zoneAxis: "z"
                }); return f
            }(q); B(l.prototype, { alignDataLabel: a.prototype.alignDataLabel, applyZones: c, bubblePadding: !0, buildKDTree: c, directTouch: !0, isBubble: !0, pointArrayMap: ["y", "z"], pointClass: h, parallelArrays: ["x", "y", "z"], trackerGroups: ["group", "dataLabelsGroup"], specialGroup: "group", zoneAxis: "z" }); e.prototype.beforePadding = function () {
                var b = this, f = this.len, a = this.chart, c = 0, w = f, d = this.isXAxis, q = d ? "xData" :
                    "yData", l = this.min, h = {}, e = Math.min(a.plotWidth, a.plotHeight), m = Number.MAX_VALUE, r = -Number.MAX_VALUE, x = this.max - l, t = f / x, B = []; this.series.forEach(function (f) {
                        var g = f.options; !f.bubblePadding || !f.visible && a.options.chart.ignoreHiddenSeries || (b.allowZoomOutside = !0, B.push(f), d && (["minSize", "maxSize"].forEach(function (b) { var f = g[b], a = /%$/.test(f); f = I(f); h[b] = a ? e * f / 100 : f }), f.minPxSize = h.minSize, f.maxPxSize = Math.max(h.maxSize, h.minSize), f = f.zData.filter(H), f.length && (m = y(g.zMin, v(p(f), !1 === g.displayNegative ?
                            g.zThreshold : -Number.MAX_VALUE, m)), r = y(g.zMax, Math.max(r, k(f))))))
                    }); B.forEach(function (f) { var a = f[q], g = a.length; d && f.getRadii(m, r, f); if (0 < x) for (; g--;)if (H(a[g]) && b.dataMin <= a[g] && a[g] <= b.max) { var n = f.radii ? f.radii[g] : 0; c = Math.min((a[g] - l) * t - n, c); w = Math.max((a[g] - l) * t + n, w) } }); B.length && 0 < x && !this.logarithmic && (w -= f, t *= (f + Math.max(0, c) - Math.min(w, f)) / f, [["min", "userMin", c], ["max", "userMax", w]].forEach(function (f) { "undefined" === typeof y(b.options[f[0]], b[f[1]]) && (b[f[0]] += f[2] / t) }))
            }; m.registerSeriesType("bubble",
                l); ""; ""; return l
    }); z(e, "Series/ColumnRange/ColumnRangePoint.js", [e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d) {
        var h = this && this.__extends || function () { var a = function (c, d) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, b) { a.__proto__ = b } || function (a, b) { for (var c in b) b.hasOwnProperty(c) && (a[c] = b[c]) }; return a(c, d) }; return function (c, d) { function l() { this.constructor = c } a(c, d); c.prototype = null === d ? Object.create(d) : (l.prototype = d.prototype, new l) } }(), c = e.seriesTypes;
        e = c.column.prototype.pointClass; var a = d.extend, t = d.isNumber; d = function (a) { function c() { var c = null !== a && a.apply(this, arguments) || this; c.series = void 0; c.options = void 0; c.barX = void 0; c.pointWidth = void 0; c.shapeType = void 0; return c } h(c, a); c.prototype.isValid = function () { return t(this.low) }; return c }(c.arearange.prototype.pointClass); a(d.prototype, { setState: e.prototype.setState }); return d
    }); z(e, "Series/ColumnRange/ColumnRangeSeries.js", [e["Series/ColumnRange/ColumnRangePoint.js"], e["Core/Globals.js"], e["Core/Series/SeriesRegistry.js"],
    e["Core/Utilities.js"]], function (e, d, h, c) {
        var a = this && this.__extends || function () { var b = function (a, c) { b = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a } || function (b, a) { for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]) }; return b(a, c) }; return function (a, c) { function k() { this.constructor = a } b(a, c); a.prototype = null === c ? Object.create(c) : (k.prototype = c.prototype, new k) } }(); d = d.noop; var t = h.seriesTypes, m = t.arearange, l = t.column, r = l.prototype, x = m.prototype, b = c.clamp, q = c.merge,
            k = c.pick; c = c.extend; var p = { pointRange: null, marker: null, states: { hover: { halo: !1 } } }; t = function (c) {
                function d() { var b = null !== c && c.apply(this, arguments) || this; b.data = void 0; b.points = void 0; b.options = void 0; return b } a(d, c); d.prototype.setOptions = function () { q(!0, arguments[0], { stacking: void 0 }); return x.setOptions.apply(this, arguments) }; d.prototype.translate = function () {
                    var a = this, c = a.yAxis, d = a.xAxis, q = d.startAngleRad, g, f = a.chart, u = a.xAxis.isRadial, n = Math.max(f.chartWidth, f.chartHeight) + 999, w; r.translate.apply(a);
                    a.points.forEach(function (l) {
                        var h = l.shapeArgs || {}, A = a.options.minPointLength; l.plotHigh = w = b(c.translate(l.high, 0, 1, 0, 1), -n, n); l.plotLow = b(l.plotY, -n, n); var e = w; var p = k(l.rectPlotY, l.plotY) - w; Math.abs(p) < A ? (A -= p, p += A, e -= A / 2) : 0 > p && (p *= -1, e -= p); u ? (g = l.barX + q, l.shapeType = "arc", l.shapeArgs = a.polarArc(e + p, e, g, g + l.pointWidth)) : (h.height = p, h.y = e, A = h.x, A = void 0 === A ? 0 : A, h = h.width, h = void 0 === h ? 0 : h, l.tooltipPos = f.inverted ? [c.len + c.pos - f.plotLeft - e - p / 2, d.len + d.pos - f.plotTop - A - h / 2, p] : [d.left - f.plotLeft + A + h / 2,
                        c.pos - f.plotTop + e + p / 2, p])
                    })
                }; d.prototype.crispCol = function () { return r.crispCol.apply(this, arguments) }; d.prototype.drawPoints = function () { return r.drawPoints.apply(this, arguments) }; d.prototype.drawTracker = function () { return r.drawTracker.apply(this, arguments) }; d.prototype.getColumnMetrics = function () { return r.getColumnMetrics.apply(this, arguments) }; d.prototype.pointAttribs = function () { return r.pointAttribs.apply(this, arguments) }; d.prototype.adjustForMissingColumns = function () {
                    return r.adjustForMissingColumns.apply(this,
                        arguments)
                }; d.prototype.animate = function () { return r.animate.apply(this, arguments) }; d.prototype.translate3dPoints = function () { return r.translate3dPoints.apply(this, arguments) }; d.prototype.translate3dShapes = function () { return r.translate3dShapes.apply(this, arguments) }; d.defaultOptions = q(l.defaultOptions, m.defaultOptions, p); return d
            }(m); c(t.prototype, { directTouch: !0, trackerGroups: ["group", "dataLabelsGroup"], drawGraph: d, getSymbol: d, polarArc: function () { return r.polarArc.apply(this, arguments) }, pointClass: e });
        h.registerSeriesType("columnrange", t); ""; return t
    }); z(e, "Series/ColumnPyramid/ColumnPyramidSeries.js", [e["Series/Column/ColumnSeries.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d, h) {
        var c = this && this.__extends || function () {
            var a = function (c, b) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a } || function (b, a) { for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]) }; return a(c, b) }; return function (c, b) {
                function d() { this.constructor = c } a(c, b); c.prototype =
                    null === b ? Object.create(b) : (d.prototype = b.prototype, new d)
            }
        }(), a = e.prototype, t = h.clamp, m = h.merge, l = h.pick; h = function (d) {
            function h() { var b = null !== d && d.apply(this, arguments) || this; b.data = void 0; b.options = void 0; b.points = void 0; return b } c(h, d); h.prototype.translate = function () {
                var b = this, c = b.chart, k = b.options, d = b.dense = 2 > b.closestPointRange * b.xAxis.transA; d = b.borderWidth = l(k.borderWidth, d ? 0 : 1); var h = b.yAxis, e = k.threshold, m = b.translatedThreshold = h.getThreshold(e), x = l(k.minPointLength, 5), r = b.getColumnMetrics(),
                    I = r.width, g = b.barW = Math.max(I, 1 + 2 * d), f = b.pointXOffset = r.offset; c.inverted && (m -= .5); k.pointPadding && (g = Math.ceil(g)); a.translate.apply(b); b.points.forEach(function (a) {
                        var n = l(a.yBottom, m), d = 999 + Math.abs(n), u = t(a.plotY, -d, h.len + d); d = a.plotX + f; var q = g / 2, p = Math.min(u, n); n = Math.max(u, n) - p; var v; a.barX = d; a.pointWidth = I; a.tooltipPos = c.inverted ? [h.len + h.pos - c.plotLeft - u, b.xAxis.len - d - q, n] : [d + q, u + h.pos - c.plotTop, n]; u = e + (a.total || a.y); "percent" === k.stacking && (u = e + (0 > a.y) ? -100 : 100); u = h.toPixels(u, !0); var r =
                            (v = c.plotHeight - u - (c.plotHeight - m)) ? q * (p - u) / v : 0; var y = v ? q * (p + n - u) / v : 0; v = d - r + q; r = d + r + q; var K = d + y + q; y = d - y + q; var C = p - x; var B = p + n; 0 > a.y && (C = p, B = p + n + x); c.inverted && (K = c.plotWidth - p, v = u - (c.plotWidth - m), r = q * (u - K) / v, y = q * (u - (K - n)) / v, v = d + q + r, r = v - 2 * r, K = d - y + q, y = d + y + q, C = p, B = p + n - x, 0 > a.y && (B = p + n + x)); a.shapeType = "path"; a.shapeArgs = { x: v, y: C, width: r - v, height: n, d: [["M", v, C], ["L", r, C], ["L", K, B], ["L", y, B], ["Z"]] }
                    })
            }; h.defaultOptions = m(e.defaultOptions, {}); return h
        }(e); d.registerSeriesType("columnpyramid", h); ""; return h
    });
    z(e, "Series/ErrorBar/ErrorBarSeries.js", [e["Series/BoxPlot/BoxPlotSeries.js"], e["Series/Column/ColumnSeries.js"], e["Core/Color/Palette.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d, h, c, a) {
        var t = this && this.__extends || function () {
            var a = function (b, c) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a } || function (b, a) { for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]) }; return a(b, c) }; return function (b, c) {
                function d() { this.constructor = b } a(b, c);
                b.prototype = null === c ? Object.create(c) : (d.prototype = c.prototype, new d)
            }
        }(), m = c.seriesTypes.arearange, l = a.merge; a = a.extend; var r = function (a) {
            function b() { var b = null !== a && a.apply(this, arguments) || this; b.data = void 0; b.options = void 0; b.points = void 0; return b } t(b, a); b.prototype.getColumnMetrics = function () { return this.linkedParent && this.linkedParent.columnMetrics || d.prototype.getColumnMetrics.call(this) }; b.prototype.drawDataLabels = function () {
                var b = this.pointValKey; m && (m.prototype.drawDataLabels.call(this),
                    this.data.forEach(function (a) { a.y = a[b] }))
            }; b.prototype.toYData = function (b) { return [b.low, b.high] }; b.defaultOptions = l(e.defaultOptions, { color: h.neutralColor100, grouping: !1, linkedTo: ":previous", tooltip: { pointFormat: '<span style="color:{point.color}">\u25cf</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>' }, whiskerWidth: null }); return b
        }(e); a(r.prototype, { pointArrayMap: ["low", "high"], pointValKey: "high", doQuartiles: !1 }); c.registerSeriesType("errorbar", r); ""; return r
    }); z(e, "Series/Gauge/GaugePoint.js",
        [e["Core/Series/SeriesRegistry.js"]], function (e) {
            var d = this && this.__extends || function () { var d = function (c, a) { d = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var d in c) c.hasOwnProperty(d) && (a[d] = c[d]) }; return d(c, a) }; return function (c, a) { function h() { this.constructor = c } d(c, a); c.prototype = null === a ? Object.create(a) : (h.prototype = a.prototype, new h) } }(); return function (h) {
                function c() {
                    var a = null !== h && h.apply(this, arguments) || this; a.options = void 0;
                    a.series = void 0; a.shapeArgs = void 0; return a
                } d(c, h); c.prototype.setState = function (a) { this.state = a }; return c
            }(e.series.prototype.pointClass)
        }); z(e, "Series/Gauge/GaugeSeries.js", [e["Series/Gauge/GaugePoint.js"], e["Core/Globals.js"], e["Core/Color/Palette.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d, h, c, a) {
            var t = this && this.__extends || function () {
                var b = function (a, c) {
                    b = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a } || function (b, a) {
                        for (var c in a) a.hasOwnProperty(c) &&
                            (b[c] = a[c])
                    }; return b(a, c)
                }; return function (a, c) { function d() { this.constructor = a } b(a, c); a.prototype = null === c ? Object.create(c) : (d.prototype = c.prototype, new d) }
            }(); d = d.noop; var m = c.series, l = c.seriesTypes.column, r = a.clamp, x = a.isNumber, b = a.extend, q = a.merge, k = a.pick, p = a.pInt; a = function (b) {
                function a() { var a = null !== b && b.apply(this, arguments) || this; a.data = void 0; a.points = void 0; a.options = void 0; a.yAxis = void 0; return a } t(a, b); a.prototype.translate = function () {
                    var b = this.yAxis, a = this.options, c = b.center; this.generatePoints();
                    this.points.forEach(function (d) {
                        var g = q(a.dial, d.dial), f = p(k(g.radius, "80%")) * c[2] / 200, u = p(k(g.baseLength, "70%")) * f / 100, n = p(k(g.rearLength, "10%")) * f / 100, w = g.baseWidth || 3, l = g.topWidth || 1, h = a.overshoot, e = b.startAngleRad + b.translate(d.y, null, null, null, !0); if (x(h) || !1 === a.wrap) h = x(h) ? h / 180 * Math.PI : 0, e = r(e, b.startAngleRad - h, b.endAngleRad + h); e = 180 * e / Math.PI; d.shapeType = "path"; d.shapeArgs = {
                            d: g.path || [["M", -n, -w / 2], ["L", u, -w / 2], ["L", f, -l / 2], ["L", f, l / 2], ["L", u, w / 2], ["L", -n, w / 2], ["Z"]], translateX: c[0], translateY: c[1],
                            rotation: e
                        }; d.plotX = c[0]; d.plotY = c[1]
                    })
                }; a.prototype.drawPoints = function () {
                    var b = this, a = b.chart, c = b.yAxis.center, d = b.pivot, g = b.options, f = g.pivot, u = a.renderer; b.points.forEach(function (f) {
                        var c = f.graphic, d = f.shapeArgs, n = d.d, k = q(g.dial, f.dial); c ? (c.animate(d), d.d = n) : f.graphic = u[f.shapeType](d).attr({ rotation: d.rotation, zIndex: 1 }).addClass("highcharts-dial").add(b.group); if (!a.styledMode) f.graphic[c ? "animate" : "attr"]({
                            stroke: k.borderColor || "none", "stroke-width": k.borderWidth || 0, fill: k.backgroundColor ||
                                h.neutralColor100
                        })
                    }); d ? d.animate({ translateX: c[0], translateY: c[1] }) : (b.pivot = u.circle(0, 0, k(f.radius, 5)).attr({ zIndex: 2 }).addClass("highcharts-pivot").translate(c[0], c[1]).add(b.group), a.styledMode || b.pivot.attr({ "stroke-width": f.borderWidth || 0, stroke: f.borderColor || h.neutralColor20, fill: f.backgroundColor || h.neutralColor100 }))
                }; a.prototype.animate = function (b) {
                    var a = this; b || a.points.forEach(function (b) {
                        var c = b.graphic; c && (c.attr({ rotation: 180 * a.yAxis.startAngleRad / Math.PI }), c.animate({ rotation: b.shapeArgs.rotation },
                            a.options.animation))
                    })
                }; a.prototype.render = function () { this.group = this.plotGroup("group", "series", this.visible ? "visible" : "hidden", this.options.zIndex, this.chart.seriesGroup); m.prototype.render.call(this); this.group.clip(this.chart.clipRect) }; a.prototype.setData = function (b, a) { m.prototype.setData.call(this, b, !1); this.processData(); this.generatePoints(); k(a, !0) && this.chart.redraw() }; a.prototype.hasData = function () { return !!this.points.length }; a.defaultOptions = q(m.defaultOptions, {
                    dataLabels: {
                        borderColor: h.neutralColor20,
                        borderRadius: 3, borderWidth: 1, crop: !1, defer: !1, enabled: !0, verticalAlign: "top", y: 15, zIndex: 2
                    }, dial: {}, pivot: {}, tooltip: { headerFormat: "" }, showInLegend: !1
                }); return a
            }(m); b(a.prototype, { angular: !0, directTouch: !0, drawGraph: d, drawTracker: l.prototype.drawTracker, fixedBox: !0, forceDL: !0, noSharedTooltip: !0, pointClass: e, trackerGroups: ["group", "dataLabelsGroup"] }); c.registerSeriesType("gauge", a); ""; return a
        }); z(e, "Series/PackedBubble/PackedBubblePoint.js", [e["Core/Chart/Chart.js"], e["Core/Series/Point.js"], e["Core/Series/SeriesRegistry.js"]],
            function (e, d, h) {
                var c = this && this.__extends || function () { var a = function (c, d) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var d in c) c.hasOwnProperty(d) && (a[d] = c[d]) }; return a(c, d) }; return function (c, d) { function l() { this.constructor = c } a(c, d); c.prototype = null === d ? Object.create(d) : (l.prototype = d.prototype, new l) } }(); return function (a) {
                    function h() {
                        var c = null !== a && a.apply(this, arguments) || this; c.degree = NaN; c.mass = NaN; c.radius = NaN; c.options = void 0;
                        c.series = void 0; c.value = null; return c
                    } c(h, a); h.prototype.destroy = function () { this.series.layout && this.series.layout.removeElementFromCollection(this, this.series.layout.nodes); return d.prototype.destroy.apply(this, arguments) }; h.prototype.firePointEvent = function () {
                        var a = this.series.options; if (this.isParentNode && a.parentNode) { var c = a.allowPointSelect; a.allowPointSelect = a.parentNode.allowPointSelect; d.prototype.firePointEvent.apply(this, arguments); a.allowPointSelect = c } else d.prototype.firePointEvent.apply(this,
                            arguments)
                    }; h.prototype.select = function () { var a = this.series.chart; this.isParentNode ? (a.getSelectedPoints = a.getSelectedParentNodes, d.prototype.select.apply(this, arguments), a.getSelectedPoints = e.prototype.getSelectedPoints) : d.prototype.select.apply(this, arguments) }; return h
                }(h.seriesTypes.bubble.prototype.pointClass)
            }); z(e, "Series/Networkgraph/DraggableNodes.js", [e["Core/Chart/Chart.js"], e["Core/Globals.js"], e["Core/Utilities.js"]], function (e, d, h) {
                var c = h.addEvent; d.dragNodesMixin = {
                    onMouseDown: function (a,
                        c) { c = this.chart.pointer.normalize(c); a.fixedPosition = { chartX: c.chartX, chartY: c.chartY, plotX: a.plotX, plotY: a.plotY }; a.inDragMode = !0 }, onMouseMove: function (a, c) {
                            if (a.fixedPosition && a.inDragMode) {
                                var d = this.chart, h = d.pointer.normalize(c); c = a.fixedPosition.chartX - h.chartX; h = a.fixedPosition.chartY - h.chartY; var e = void 0, x = void 0, b = d.graphLayoutsLookup; if (5 < Math.abs(c) || 5 < Math.abs(h)) e = a.fixedPosition.plotX - c, x = a.fixedPosition.plotY - h, d.isInsidePlot(e, x) && (a.plotX = e, a.plotY = x, a.hasDragged = !0, this.redrawHalo(a),
                                    b.forEach(function (b) { b.restartSimulation() }))
                            }
                        }, onMouseUp: function (a, c) { a.fixedPosition && (a.hasDragged && (this.layout.enableSimulation ? this.layout.start() : this.chart.redraw()), a.inDragMode = a.hasDragged = !1, this.options.fixedDraggable || delete a.fixedPosition) }, redrawHalo: function (a) { a && this.halo && this.halo.attr({ d: a.haloPath(this.options.states.hover.halo.size) }) }
                }; c(e, "load", function () {
                    var a = this, d, h, e; a.container && (d = c(a.container, "mousedown", function (d) {
                        var l = a.hoverPoint; l && l.series && l.series.hasDraggableNodes &&
                            l.series.options.draggable && (l.series.onMouseDown(l, d), h = c(a.container, "mousemove", function (b) { return l && l.series && l.series.onMouseMove(l, b) }), e = c(a.container.ownerDocument, "mouseup", function (b) { h(); e(); return l && l.series && l.series.onMouseUp(l, b) }))
                    })); c(a, "destroy", function () { d() })
                })
            }); z(e, "Series/Networkgraph/Integrations.js", [e["Core/Globals.js"]], function (e) {
                e.networkgraphIntegrations = {
                    verlet: {
                        attractiveForceFunction: function (d, h) { return (h - d) / d }, repulsiveForceFunction: function (d, h) {
                            return (h - d) /
                                d * (h > d ? 1 : 0)
                        }, barycenter: function () { var d = this.options.gravitationalConstant, h = this.barycenter.xFactor, c = this.barycenter.yFactor; h = (h - (this.box.left + this.box.width) / 2) * d; c = (c - (this.box.top + this.box.height) / 2) * d; this.nodes.forEach(function (a) { a.fixedPosition || (a.plotX -= h / a.mass / a.degree, a.plotY -= c / a.mass / a.degree) }) }, repulsive: function (d, h, c) { h = h * this.diffTemperature / d.mass / d.degree; d.fixedPosition || (d.plotX += c.x * h, d.plotY += c.y * h) }, attractive: function (d, h, c) {
                            var a = d.getMass(), e = -c.x * h * this.diffTemperature;
                            h = -c.y * h * this.diffTemperature; d.fromNode.fixedPosition || (d.fromNode.plotX -= e * a.fromNode / d.fromNode.degree, d.fromNode.plotY -= h * a.fromNode / d.fromNode.degree); d.toNode.fixedPosition || (d.toNode.plotX += e * a.toNode / d.toNode.degree, d.toNode.plotY += h * a.toNode / d.toNode.degree)
                        }, integrate: function (d, h) {
                            var c = -d.options.friction, a = d.options.maxSpeed, e = (h.plotX + h.dispX - h.prevX) * c; c *= h.plotY + h.dispY - h.prevY; var m = Math.abs, l = m(e) / (e || 1); m = m(c) / (c || 1); e = l * Math.min(a, Math.abs(e)); c = m * Math.min(a, Math.abs(c)); h.prevX =
                                h.plotX + h.dispX; h.prevY = h.plotY + h.dispY; h.plotX += e; h.plotY += c; h.temperature = d.vectorLength({ x: e, y: c })
                        }, getK: function (d) { return Math.pow(d.box.width * d.box.height / d.nodes.length, .5) }
                    }, euler: {
                        attractiveForceFunction: function (d, e) { return d * d / e }, repulsiveForceFunction: function (d, e) { return e * e / d }, barycenter: function () {
                            var d = this.options.gravitationalConstant, e = this.barycenter.xFactor, c = this.barycenter.yFactor; this.nodes.forEach(function (a) {
                                if (!a.fixedPosition) {
                                    var h = a.getDegree(); h *= 1 + h / 2; a.dispX += (e - a.plotX) *
                                        d * h / a.degree; a.dispY += (c - a.plotY) * d * h / a.degree
                                }
                            })
                        }, repulsive: function (d, e, c, a) { d.dispX += c.x / a * e / d.degree; d.dispY += c.y / a * e / d.degree }, attractive: function (d, e, c, a) { var h = d.getMass(), m = c.x / a * e; e *= c.y / a; d.fromNode.fixedPosition || (d.fromNode.dispX -= m * h.fromNode / d.fromNode.degree, d.fromNode.dispY -= e * h.fromNode / d.fromNode.degree); d.toNode.fixedPosition || (d.toNode.dispX += m * h.toNode / d.toNode.degree, d.toNode.dispY += e * h.toNode / d.toNode.degree) }, integrate: function (d, e) {
                            e.dispX += e.dispX * d.options.friction; e.dispY +=
                                e.dispY * d.options.friction; var c = e.temperature = d.vectorLength({ x: e.dispX, y: e.dispY }); 0 !== c && (e.plotX += e.dispX / c * Math.min(Math.abs(e.dispX), d.temperature), e.plotY += e.dispY / c * Math.min(Math.abs(e.dispY), d.temperature))
                        }, getK: function (d) { return Math.pow(d.box.width * d.box.height / d.nodes.length, .3) }
                    }
                }
            }); z(e, "Series/Networkgraph/QuadTree.js", [e["Core/Globals.js"], e["Core/Utilities.js"]], function (e, d) {
                d = d.extend; var h = e.QuadTreeNode = function (c) {
                    this.box = c; this.boxSize = Math.min(c.width, c.height); this.nodes =
                        []; this.body = this.isInternal = !1; this.isEmpty = !0
                }; d(h.prototype, {
                    insert: function (c, a) { this.isInternal ? this.nodes[this.getBoxPosition(c)].insert(c, a - 1) : (this.isEmpty = !1, this.body ? a ? (this.isInternal = !0, this.divideBox(), !0 !== this.body && (this.nodes[this.getBoxPosition(this.body)].insert(this.body, a - 1), this.body = !0), this.nodes[this.getBoxPosition(c)].insert(c, a - 1)) : (a = new h({ top: c.plotX, left: c.plotY, width: .1, height: .1 }), a.body = c, a.isInternal = !1, this.nodes.push(a)) : (this.isInternal = !1, this.body = c)) }, updateMassAndCenter: function () {
                        var c =
                            0, a = 0, d = 0; this.isInternal ? (this.nodes.forEach(function (e) { e.isEmpty || (c += e.mass, a += e.plotX * e.mass, d += e.plotY * e.mass) }), a /= c, d /= c) : this.body && (c = this.body.mass, a = this.body.plotX, d = this.body.plotY); this.mass = c; this.plotX = a; this.plotY = d
                    }, divideBox: function () {
                        var c = this.box.width / 2, a = this.box.height / 2; this.nodes[0] = new h({ left: this.box.left, top: this.box.top, width: c, height: a }); this.nodes[1] = new h({ left: this.box.left + c, top: this.box.top, width: c, height: a }); this.nodes[2] = new h({
                            left: this.box.left + c, top: this.box.top +
                                a, width: c, height: a
                        }); this.nodes[3] = new h({ left: this.box.left, top: this.box.top + a, width: c, height: a })
                    }, getBoxPosition: function (c) { var a = c.plotY < this.box.top + this.box.height / 2; return c.plotX < this.box.left + this.box.width / 2 ? a ? 0 : 3 : a ? 1 : 2 }
                }); e = e.QuadTree = function (c, a, d, e) { this.box = { left: c, top: a, width: d, height: e }; this.maxDepth = 25; this.root = new h(this.box, "0"); this.root.isInternal = !0; this.root.isRoot = !0; this.root.divideBox() }; d(e.prototype, {
                    insertNodes: function (c) {
                        c.forEach(function (a) { this.root.insert(a, this.maxDepth) },
                            this)
                    }, visitNodeRecursive: function (c, a, d) { var e; c || (c = this.root); c === this.root && a && (e = a(c)); !1 !== e && (c.nodes.forEach(function (c) { if (c.isInternal) { a && (e = a(c)); if (!1 === e) return; this.visitNodeRecursive(c, a, d) } else c.body && a && a(c.body); d && d(c) }, this), c === this.root && d && d(c)) }, calculateMassAndCenter: function () { this.visitNodeRecursive(null, null, function (c) { c.updateMassAndCenter() }) }
                })
            }); z(e, "Series/Networkgraph/Layouts.js", [e["Core/Chart/Chart.js"], e["Core/Animation/AnimationUtilities.js"], e["Core/Globals.js"],
            e["Core/Utilities.js"]], function (e, d, h, c) {
                var a = d.setAnimation; d = c.addEvent; var t = c.clamp, m = c.defined, l = c.extend, r = c.isFunction, x = c.pick; h.layouts = { "reingold-fruchterman": function () { } }; l(h.layouts["reingold-fruchterman"].prototype, {
                    init: function (b) {
                        this.options = b; this.nodes = []; this.links = []; this.series = []; this.box = { x: 0, y: 0, width: 0, height: 0 }; this.setInitialRendering(!0); this.integration = h.networkgraphIntegrations[b.integration]; this.enableSimulation = b.enableSimulation; this.attractiveForce = x(b.attractiveForce,
                            this.integration.attractiveForceFunction); this.repulsiveForce = x(b.repulsiveForce, this.integration.repulsiveForceFunction); this.approximation = b.approximation
                    }, updateSimulation: function (b) { this.enableSimulation = x(b, this.options.enableSimulation) }, start: function () {
                        var b = this.series, a = this.options; this.currentStep = 0; this.forces = b[0] && b[0].forces || []; this.chart = b[0] && b[0].chart; this.initialRendering && (this.initPositions(), b.forEach(function (b) { b.finishedAnimating = !0; b.render() })); this.setK(); this.resetSimulation(a);
                        this.enableSimulation && this.step()
                    }, step: function () {
                        var b = this, a = this.series; b.currentStep++; "barnes-hut" === b.approximation && (b.createQuadTree(), b.quadTree.calculateMassAndCenter()); b.forces.forEach(function (a) { b[a + "Forces"](b.temperature) }); b.applyLimits(b.temperature); b.temperature = b.coolDown(b.startTemperature, b.diffTemperature, b.currentStep); b.prevSystemTemperature = b.systemTemperature; b.systemTemperature = b.getSystemTemperature(); b.enableSimulation && (a.forEach(function (b) { b.chart && b.render() }),
                            b.maxIterations-- && isFinite(b.temperature) && !b.isStable() ? (b.simulation && h.win.cancelAnimationFrame(b.simulation), b.simulation = h.win.requestAnimationFrame(function () { b.step() })) : b.simulation = !1)
                    }, stop: function () { this.simulation && h.win.cancelAnimationFrame(this.simulation) }, setArea: function (b, a, c, d) { this.box = { left: b, top: a, width: c, height: d } }, setK: function () { this.k = this.options.linkLength || this.integration.getK(this) }, addElementsToCollection: function (b, a) { b.forEach(function (b) { -1 === a.indexOf(b) && a.push(b) }) },
                    removeElementFromCollection: function (b, a) { b = a.indexOf(b); -1 !== b && a.splice(b, 1) }, clear: function () { this.nodes.length = 0; this.links.length = 0; this.series.length = 0; this.resetSimulation() }, resetSimulation: function () { this.forcedStop = !1; this.systemTemperature = 0; this.setMaxIterations(); this.setTemperature(); this.setDiffTemperature() }, restartSimulation: function () {
                        this.simulation ? this.resetSimulation() : (this.setInitialRendering(!1), this.enableSimulation ? this.start() : this.setMaxIterations(1), this.chart && this.chart.redraw(),
                            this.setInitialRendering(!0))
                    }, setMaxIterations: function (b) { this.maxIterations = x(b, this.options.maxIterations) }, setTemperature: function () { this.temperature = this.startTemperature = Math.sqrt(this.nodes.length) }, setDiffTemperature: function () { this.diffTemperature = this.startTemperature / (this.options.maxIterations + 1) }, setInitialRendering: function (b) { this.initialRendering = b }, createQuadTree: function () { this.quadTree = new h.QuadTree(this.box.left, this.box.top, this.box.width, this.box.height); this.quadTree.insertNodes(this.nodes) },
                    initPositions: function () { var b = this.options.initialPositions; r(b) ? (b.call(this), this.nodes.forEach(function (b) { m(b.prevX) || (b.prevX = b.plotX); m(b.prevY) || (b.prevY = b.plotY); b.dispX = 0; b.dispY = 0 })) : "circle" === b ? this.setCircularPositions() : this.setRandomPositions() }, setCircularPositions: function () {
                        function b(a) { a.linksFrom.forEach(function (a) { h[a.toNode.id] || (h[a.toNode.id] = !0, l.push(a.toNode), b(a.toNode)) }) } var a = this.box, c = this.nodes, d = 2 * Math.PI / (c.length + 1), e = c.filter(function (b) { return 0 === b.linksTo.length }),
                            l = [], h = {}, m = this.options.initialPositionRadius; e.forEach(function (a) { l.push(a); b(a) }); l.length ? c.forEach(function (b) { -1 === l.indexOf(b) && l.push(b) }) : l = c; l.forEach(function (b, c) { b.plotX = b.prevX = x(b.plotX, a.width / 2 + m * Math.cos(c * d)); b.plotY = b.prevY = x(b.plotY, a.height / 2 + m * Math.sin(c * d)); b.dispX = 0; b.dispY = 0 })
                    }, setRandomPositions: function () {
                        function b(b) { b = b * b / Math.PI; return b -= Math.floor(b) } var a = this.box, c = this.nodes, d = c.length + 1; c.forEach(function (c, e) {
                            c.plotX = c.prevX = x(c.plotX, a.width * b(e)); c.plotY =
                                c.prevY = x(c.plotY, a.height * b(d + e)); c.dispX = 0; c.dispY = 0
                        })
                    }, force: function (b) { this.integration[b].apply(this, Array.prototype.slice.call(arguments, 1)) }, barycenterForces: function () { this.getBarycenter(); this.force("barycenter") }, getBarycenter: function () { var b = 0, a = 0, c = 0; this.nodes.forEach(function (d) { a += d.plotX * d.mass; c += d.plotY * d.mass; b += d.mass }); return this.barycenter = { x: a, y: c, xFactor: a / b, yFactor: c / b } }, barnesHutApproximation: function (b, a) {
                        var c = this.getDistXY(b, a), d = this.vectorLength(c); if (b !== a && 0 !==
                            d) if (a.isInternal) if (a.boxSize / d < this.options.theta && 0 !== d) { var e = this.repulsiveForce(d, this.k); this.force("repulsive", b, e * a.mass, c, d); var l = !1 } else l = !0; else e = this.repulsiveForce(d, this.k), this.force("repulsive", b, e * a.mass, c, d); return l
                    }, repulsiveForces: function () {
                        var b = this; "barnes-hut" === b.approximation ? b.nodes.forEach(function (a) { b.quadTree.visitNodeRecursive(null, function (c) { return b.barnesHutApproximation(a, c) }) }) : b.nodes.forEach(function (a) {
                            b.nodes.forEach(function (c) {
                                if (a !== c && !a.fixedPosition) {
                                    var d =
                                        b.getDistXY(a, c); var e = b.vectorLength(d); if (0 !== e) { var k = b.repulsiveForce(e, b.k); b.force("repulsive", a, k * c.mass, d, e) }
                                }
                            })
                        })
                    }, attractiveForces: function () { var b = this, a, c, d; b.links.forEach(function (e) { e.fromNode && e.toNode && (a = b.getDistXY(e.fromNode, e.toNode), c = b.vectorLength(a), 0 !== c && (d = b.attractiveForce(c, b.k), b.force("attractive", e, d, a, c))) }) }, applyLimits: function () { var b = this; b.nodes.forEach(function (a) { a.fixedPosition || (b.integration.integrate(b, a), b.applyLimitBox(a, b.box), a.dispX = 0, a.dispY = 0) }) },
                    applyLimitBox: function (b, a) { var c = b.radius; b.plotX = t(b.plotX, a.left + c, a.width - c); b.plotY = t(b.plotY, a.top + c, a.height - c) }, coolDown: function (a, c, d) { return a - c * d }, isStable: function () { return .00001 > Math.abs(this.systemTemperature - this.prevSystemTemperature) || 0 >= this.temperature }, getSystemTemperature: function () { return this.nodes.reduce(function (a, c) { return a + c.temperature }, 0) }, vectorLength: function (a) { return Math.sqrt(a.x * a.x + a.y * a.y) }, getDistR: function (a, c) { a = this.getDistXY(a, c); return this.vectorLength(a) },
                    getDistXY: function (a, c) { var b = a.plotX - c.plotX; a = a.plotY - c.plotY; return { x: b, y: a, absX: Math.abs(b), absY: Math.abs(a) } }
                }); d(e, "predraw", function () { this.graphLayoutsLookup && this.graphLayoutsLookup.forEach(function (a) { a.stop() }) }); d(e, "render", function () {
                    function b(a) { a.maxIterations-- && isFinite(a.temperature) && !a.isStable() && !a.enableSimulation && (a.beforeStep && a.beforeStep(), a.step(), d = !1, c = !0) } var c = !1; if (this.graphLayoutsLookup) {
                        a(!1, this); for (this.graphLayoutsLookup.forEach(function (a) { a.start() }); !d;) {
                            var d =
                                !0; this.graphLayoutsLookup.forEach(b)
                        } c && this.series.forEach(function (a) { a && a.layout && a.render() })
                    }
                }); d(e, "beforePrint", function () { this.graphLayoutsLookup && (this.graphLayoutsLookup.forEach(function (a) { a.updateSimulation(!1) }), this.redraw()) }); d(e, "afterPrint", function () { this.graphLayoutsLookup && this.graphLayoutsLookup.forEach(function (a) { a.updateSimulation() }); this.redraw() })
            }); z(e, "Series/PackedBubble/PackedBubbleComposition.js", [e["Core/Chart/Chart.js"], e["Core/Globals.js"], e["Core/Utilities.js"]],
                function (e, d, h) {
                    var c = d.layouts["reingold-fruchterman"], a = h.addEvent, t = h.extendClass, m = h.pick; e.prototype.getSelectedParentNodes = function () { var a = []; this.series.forEach(function (c) { c.parentNode && c.parentNode.selected && a.push(c.parentNode) }); return a }; d.networkgraphIntegrations.packedbubble = {
                        repulsiveForceFunction: function (a, c, d, b) { return Math.min(a, (d.marker.radius + b.marker.radius) / 2) }, barycenter: function () {
                            var a = this, c = a.options.gravitationalConstant, d = a.box, b = a.nodes, e, k; b.forEach(function (l) {
                                a.options.splitSeries &&
                                !l.isParentNode ? (e = l.series.parentNode.plotX, k = l.series.parentNode.plotY) : (e = d.width / 2, k = d.height / 2); l.fixedPosition || (l.plotX -= (l.plotX - e) * c / (l.mass * Math.sqrt(b.length)), l.plotY -= (l.plotY - k) * c / (l.mass * Math.sqrt(b.length)))
                            })
                        }, repulsive: function (a, c, d, b) { var e = c * this.diffTemperature / a.mass / a.degree; c = d.x * e; d = d.y * e; a.fixedPosition || (a.plotX += c, a.plotY += d); b.fixedPosition || (b.plotX -= c, b.plotY -= d) }, integrate: d.networkgraphIntegrations.verlet.integrate, getK: d.noop
                    }; d.layouts.packedbubble = t(c, {
                        beforeStep: function () {
                            this.options.marker &&
                            this.series.forEach(function (a) { a && a.calculateParentRadius() })
                        }, isStable: function () { var a = Math.abs(this.prevSystemTemperature - this.systemTemperature); return 1 > Math.abs(10 * this.systemTemperature / Math.sqrt(this.nodes.length)) && .00001 > a || 0 >= this.temperature }, setCircularPositions: function () {
                            var a = this, c = a.box, d = a.nodes, b = 2 * Math.PI / (d.length + 1), e, k, h = a.options.initialPositionRadius; d.forEach(function (d, l) {
                                a.options.splitSeries && !d.isParentNode ? (e = d.series.parentNode.plotX, k = d.series.parentNode.plotY) :
                                (e = c.width / 2, k = c.height / 2); d.plotX = d.prevX = m(d.plotX, e + h * Math.cos(d.index || l * b)); d.plotY = d.prevY = m(d.plotY, k + h * Math.sin(d.index || l * b)); d.dispX = 0; d.dispY = 0
                            })
                        }, repulsiveForces: function () {
                            var a = this, c, d, b, e = a.options.bubblePadding; a.nodes.forEach(function (k) {
                                k.degree = k.mass; k.neighbours = 0; a.nodes.forEach(function (h) {
                                    c = 0; k === h || k.fixedPosition || !a.options.seriesInteraction && k.series !== h.series || (b = a.getDistXY(k, h), d = a.vectorLength(b) - (k.marker.radius + h.marker.radius + e), 0 > d && (k.degree += .01, k.neighbours++,
                                        c = a.repulsiveForce(-d / Math.sqrt(k.neighbours), a.k, k, h)), a.force("repulsive", k, c * h.mass, b, h, d))
                                })
                            })
                        }, applyLimitBox: function (a) { if (this.options.splitSeries && !a.isParentNode && this.options.parentNodeLimit) { var d = this.getDistXY(a, a.series.parentNode); var e = a.series.parentNodeRadius - a.marker.radius - this.vectorLength(d); 0 > e && e > -2 * a.marker.radius && (a.plotX -= .01 * d.x, a.plotY -= .01 * d.y) } c.prototype.applyLimitBox.apply(this, arguments) }
                    }); a(e, "beforeRedraw", function () { this.allDataPoints && delete this.allDataPoints })
                });
    z(e, "Series/PackedBubble/PackedBubbleSeries.js", [e["Core/Color/Color.js"], e["Core/Globals.js"], e["Series/PackedBubble/PackedBubblePoint.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"]], function (e, d, h, c, a) {
        var t = this && this.__extends || function () {
            var a = function (b, f) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, b) { a.__proto__ = b } || function (a, b) { for (var f in b) b.hasOwnProperty(f) && (a[f] = b[f]) }; return a(b, f) }; return function (b, f) {
                function c() { this.constructor = b } a(b,
                    f); b.prototype = null === f ? Object.create(f) : (c.prototype = f.prototype, new c)
            }
        }(), m = e.parse, l = c.series, r = c.seriesTypes.bubble, x = a.addEvent, b = a.clamp, q = a.defined, k = a.extend, p = a.fireEvent, v = a.isArray, B = a.isNumber, z = a.merge, D = a.pick, y = d.dragNodesMixin; e = function (a) {
            function c() { var b = null !== a && a.apply(this, arguments) || this; b.chart = void 0; b.data = void 0; b.layout = void 0; b.options = void 0; b.points = void 0; b.xData = void 0; return b } t(c, a); c.prototype.accumulateAllPoints = function (a) {
                var b = a.chart, c = [], f, d; for (f = 0; f <
                    b.series.length; f++)if (a = b.series[f], a.is("packedbubble") && a.visible || !b.options.chart.ignoreHiddenSeries) for (d = 0; d < a.yData.length; d++)c.push([null, null, a.yData[d], a.index, d, { id: d, marker: { radius: 0 } }]); return c
            }; c.prototype.addLayout = function () {
                var a = this.options.layoutAlgorithm, b = this.chart.graphLayoutsStorage, c = this.chart.graphLayoutsLookup, g = this.chart.options.chart; b || (this.chart.graphLayoutsStorage = b = {}, this.chart.graphLayoutsLookup = c = []); var e = b[a.type]; e || (a.enableSimulation = q(g.forExport) ?
                    !g.forExport : a.enableSimulation, b[a.type] = e = new d.layouts[a.type], e.init(a), c.splice(e.index, 0, e)); this.layout = e; this.points.forEach(function (a) { a.mass = 2; a.degree = 1; a.collisionNmb = 1 }); e.setArea(0, 0, this.chart.plotWidth, this.chart.plotHeight); e.addElementsToCollection([this], e.series); e.addElementsToCollection(this.points, e.nodes)
            }; c.prototype.addSeriesLayout = function () {
                var a = this.options.layoutAlgorithm, b = this.chart.graphLayoutsStorage, c = this.chart.graphLayoutsLookup, g = z(a, a.parentNodeOptions, { enableSimulation: this.layout.options.enableSimulation });
                var e = b[a.type + "-series"]; e || (b[a.type + "-series"] = e = new d.layouts[a.type], e.init(g), c.splice(e.index, 0, e)); this.parentNodeLayout = e; this.createParentNodes()
            }; c.prototype.calculateParentRadius = function () { var a = this.seriesBox(); this.parentNodeRadius = b(Math.sqrt(2 * this.parentNodeMass / Math.PI) + 20, 20, a ? Math.max(Math.sqrt(Math.pow(a.width, 2) + Math.pow(a.height, 2)) / 2 + 20, 20) : Math.sqrt(2 * this.parentNodeMass / Math.PI) + 20); this.parentNode && (this.parentNode.marker.radius = this.parentNode.radius = this.parentNodeRadius) };
            c.prototype.calculateZExtremes = function () { var a = this.options.zMin, b = this.options.zMax, c = Infinity, d = -Infinity; if (a && b) return [a, b]; this.chart.series.forEach(function (a) { a.yData.forEach(function (a) { q(a) && (a > d && (d = a), a < c && (c = a)) }) }); a = D(a, c); b = D(b, d); return [a, b] }; c.prototype.checkOverlap = function (a, b) { var c = a[0] - b[0], f = a[1] - b[1]; return -.001 > Math.sqrt(c * c + f * f) - Math.abs(a[2] + b[2]) }; c.prototype.createParentNodes = function () {
                var a = this, b = a.chart, c = a.parentNodeLayout, d, g = a.parentNode, e = a.pointClass; a.parentNodeMass =
                    0; a.points.forEach(function (b) { a.parentNodeMass += Math.PI * Math.pow(b.marker.radius, 2) }); a.calculateParentRadius(); c.nodes.forEach(function (b) { b.seriesIndex === a.index && (d = !0) }); c.setArea(0, 0, b.plotWidth, b.plotHeight); d || (g || (g = (new e).init(this, { mass: a.parentNodeRadius / 2, marker: { radius: a.parentNodeRadius }, dataLabels: { inside: !1 }, dataLabelOnNull: !0, degree: a.parentNodeRadius, isParentNode: !0, seriesIndex: a.index })), a.parentNode && (g.plotX = a.parentNode.plotX, g.plotY = a.parentNode.plotY), a.parentNode = g, c.addElementsToCollection([a],
                        c.series), c.addElementsToCollection([g], c.nodes))
            }; c.prototype.deferLayout = function () { var a = this.options.layoutAlgorithm; this.visible && (this.addLayout(), a.splitSeries && this.addSeriesLayout()) }; c.prototype.destroy = function () {
                this.chart.graphLayoutsLookup && this.chart.graphLayoutsLookup.forEach(function (a) { a.removeElementFromCollection(this, a.series) }, this); this.parentNode && this.parentNodeLayout && (this.parentNodeLayout.removeElementFromCollection(this.parentNode, this.parentNodeLayout.nodes), this.parentNode.dataLabel &&
                    (this.parentNode.dataLabel = this.parentNode.dataLabel.destroy())); l.prototype.destroy.apply(this, arguments)
            }; c.prototype.drawDataLabels = function () {
                var a = this.options.dataLabels.textPath, b = this.points; l.prototype.drawDataLabels.apply(this, arguments); this.parentNode && (this.parentNode.formatPrefix = "parentNode", this.points = [this.parentNode], this.options.dataLabels.textPath = this.options.dataLabels.parentNodeTextPath, l.prototype.drawDataLabels.apply(this, arguments), this.points = b, this.options.dataLabels.textPath =
                    a)
            }; c.prototype.drawGraph = function () {
                if (this.layout && this.layout.options.splitSeries) {
                    var a = this.chart; var b = this.layout.options.parentNodeOptions.marker; var c = { fill: b.fillColor || m(this.color).brighten(.4).get(), opacity: b.fillOpacity, stroke: b.lineColor || this.color, "stroke-width": b.lineWidth }; this.parentNodesGroup || (this.parentNodesGroup = this.plotGroup("parentNodesGroup", "parentNode", this.visible ? "inherit" : "hidden", .1, a.seriesGroup), this.group.attr({ zIndex: 2 })); this.calculateParentRadius(); b = z({
                        x: this.parentNode.plotX -
                            this.parentNodeRadius, y: this.parentNode.plotY - this.parentNodeRadius, width: 2 * this.parentNodeRadius, height: 2 * this.parentNodeRadius
                    }, c); this.parentNode.graphic || (this.graph = this.parentNode.graphic = a.renderer.symbol(c.symbol).add(this.parentNodesGroup)); this.parentNode.graphic.attr(b)
                }
            }; c.prototype.drawTracker = function () {
                var b = this.parentNode; a.prototype.drawTracker.call(this); if (b) {
                    var c = v(b.dataLabels) ? b.dataLabels : b.dataLabel ? [b.dataLabel] : []; b.graphic && (b.graphic.element.point = b); c.forEach(function (a) {
                        a.div ?
                        a.div.point = b : a.element.point = b
                    })
                }
            }; c.prototype.getPointRadius = function () {
                var a = this, c = a.chart, d = a.options, g = d.useSimulation, e = Math.min(c.plotWidth, c.plotHeight), k = {}, h = [], l = c.allDataPoints, q, p, m, r;["minSize", "maxSize"].forEach(function (a) { var b = parseInt(d[a], 10), c = /%$/.test(d[a]); k[a] = c ? e * b / 100 : b * Math.sqrt(l.length) }); c.minRadius = q = k.minSize / Math.sqrt(l.length); c.maxRadius = p = k.maxSize / Math.sqrt(l.length); var v = g ? a.calculateZExtremes() : [q, p]; (l || []).forEach(function (c, f) {
                    m = g ? b(c[2], v[0], v[1]) : c[2];
                    r = a.getRadius(v[0], v[1], q, p, m); 0 === r && (r = null); l[f][2] = r; h.push(r)
                }); a.radii = h
            }; c.prototype.init = function () { l.prototype.init.apply(this, arguments); this.eventsToUnbind.push(x(this, "updatedData", function () { this.chart.series.forEach(function (a) { a.type === this.type && (a.isDirty = !0) }, this) })); return this }; c.prototype.onMouseUp = function (a) {
                if (a.fixedPosition && !a.removed) {
                    var b, c, f = this.layout, d = this.parentNodeLayout; d && f.options.dragBetweenSeries && d.nodes.forEach(function (d) {
                        a && a.marker && d !== a.series.parentNode &&
                        (b = f.getDistXY(a, d), c = f.vectorLength(b) - d.marker.radius - a.marker.radius, 0 > c && (d.series.addPoint(z(a.options, { plotX: a.plotX, plotY: a.plotY }), !1), f.removeElementFromCollection(a, f.nodes), a.remove()))
                    }); y.onMouseUp.apply(this, arguments)
                }
            }; c.prototype.placeBubbles = function (a) {
                var b = this.checkOverlap, c = this.positionBubble, f = [], d = 1, g = 0, e = 0; var k = []; var h; a = a.sort(function (a, b) { return b[2] - a[2] }); if (a.length) {
                    f.push([[0, 0, a[0][2], a[0][3], a[0][4]]]); if (1 < a.length) for (f.push([[0, 0 - a[1][2] - a[0][2], a[1][2], a[1][3],
                        a[1][4]]]), h = 2; h < a.length; h++)a[h][2] = a[h][2] || 1, k = c(f[d][g], f[d - 1][e], a[h]), b(k, f[d][0]) ? (f.push([]), e = 0, f[d + 1].push(c(f[d][g], f[d][0], a[h])), d++, g = 0) : 1 < d && f[d - 1][e + 1] && b(k, f[d - 1][e + 1]) ? (e++, f[d].push(c(f[d][g], f[d - 1][e], a[h])), g++) : (g++, f[d].push(k)); this.chart.stages = f; this.chart.rawPositions = [].concat.apply([], f); this.resizeRadius(); k = this.chart.rawPositions
                } return k
            }; c.prototype.positionBubble = function (a, b, c) {
                var f = Math.sqrt, d = Math.asin, g = Math.acos, e = Math.pow, k = Math.abs; f = f(e(a[0] - b[0], 2) + e(a[1] -
                    b[1], 2)); g = g((e(f, 2) + e(c[2] + b[2], 2) - e(c[2] + a[2], 2)) / (2 * (c[2] + b[2]) * f)); d = d(k(a[0] - b[0]) / f); a = (0 > a[1] - b[1] ? 0 : Math.PI) + g + d * (0 > (a[0] - b[0]) * (a[1] - b[1]) ? 1 : -1); return [b[0] + (b[2] + c[2]) * Math.sin(a), b[1] - (b[2] + c[2]) * Math.cos(a), c[2], c[3], c[4]]
            }; c.prototype.render = function () { var a = []; l.prototype.render.apply(this, arguments); this.options.dataLabels.allowOverlap || (this.data.forEach(function (b) { v(b.dataLabels) && b.dataLabels.forEach(function (b) { a.push(b) }) }), this.options.useSimulation && this.chart.hideOverlappingLabels(a)) };
            c.prototype.resizeRadius = function () {
                var a = this.chart, b = a.rawPositions, c = Math.min, d = Math.max, g = a.plotLeft, e = a.plotTop, k = a.plotHeight, h = a.plotWidth, l, q, p; var m = l = Number.POSITIVE_INFINITY; var r = q = Number.NEGATIVE_INFINITY; for (p = 0; p < b.length; p++) { var v = b[p][2]; m = c(m, b[p][0] - v); r = d(r, b[p][0] + v); l = c(l, b[p][1] - v); q = d(q, b[p][1] + v) } p = [r - m, q - l]; c = c.apply([], [(h - g) / p[0], (k - e) / p[1]]); if (1e-10 < Math.abs(c - 1)) { for (p = 0; p < b.length; p++)b[p][2] *= c; this.placeBubbles(b) } else a.diffY = k / 2 + e - l - (q - l) / 2, a.diffX = h / 2 + g - m - (r -
                    m) / 2
            }; c.prototype.seriesBox = function () { var a = this.chart, b = Math.max, c = Math.min, d, g = [a.plotLeft, a.plotLeft + a.plotWidth, a.plotTop, a.plotTop + a.plotHeight]; this.data.forEach(function (a) { q(a.plotX) && q(a.plotY) && a.marker.radius && (d = a.marker.radius, g[0] = c(g[0], a.plotX - d), g[1] = b(g[1], a.plotX + d), g[2] = c(g[2], a.plotY - d), g[3] = b(g[3], a.plotY + d)) }); return B(g.width / g.height) ? g : null }; c.prototype.setVisible = function () {
                var a = this; l.prototype.setVisible.apply(a, arguments); a.parentNodeLayout && a.graph ? a.visible ? (a.graph.show(),
                    a.parentNode.dataLabel && a.parentNode.dataLabel.show()) : (a.graph.hide(), a.parentNodeLayout.removeElementFromCollection(a.parentNode, a.parentNodeLayout.nodes), a.parentNode.dataLabel && a.parentNode.dataLabel.hide()) : a.layout && (a.visible ? a.layout.addElementsToCollection(a.points, a.layout.nodes) : a.points.forEach(function (b) { a.layout.removeElementFromCollection(b, a.layout.nodes) }))
            }; c.prototype.translate = function () {
                var a = this.chart, b = this.data, c = this.index, d, g = this.options.useSimulation; this.processedXData =
                    this.xData; this.generatePoints(); q(a.allDataPoints) || (a.allDataPoints = this.accumulateAllPoints(this), this.getPointRadius()); if (g) var e = a.allDataPoints; else e = this.placeBubbles(a.allDataPoints), this.options.draggable = !1; for (d = 0; d < e.length; d++)if (e[d][3] === c) { var h = b[e[d][4]]; var l = D(e[d][2], void 0); g || (h.plotX = e[d][0] - a.plotLeft + a.diffX, h.plotY = e[d][1] - a.plotTop + a.diffY); B(l) && (h.marker = k(h.marker, { radius: l, width: 2 * l, height: 2 * l }), h.radius = l) } g && this.deferLayout(); p(this, "afterTranslate")
            }; c.defaultOptions =
                z(r.defaultOptions, {
                    minSize: "10%", maxSize: "50%", sizeBy: "area", zoneAxis: "y", crisp: !1, tooltip: { pointFormat: "Value: {point.value}" }, draggable: !0, useSimulation: !0, parentNode: { allowPointSelect: !1 }, dataLabels: { formatter: function () { var a = this.series.chart.numberFormatter, b = this.point.value; return B(b) ? a(b, -1) : "" }, parentNodeFormatter: function () { return this.name }, parentNodeTextPath: { enabled: !0 }, padding: 0, style: { transition: "opacity 2000ms" } }, layoutAlgorithm: {
                        initialPositions: "circle", initialPositionRadius: 20,
                        bubblePadding: 5, parentNodeLimit: !1, seriesInteraction: !0, dragBetweenSeries: !1, parentNodeOptions: { maxIterations: 400, gravitationalConstant: .03, maxSpeed: 50, initialPositionRadius: 100, seriesInteraction: !0, marker: { fillColor: null, fillOpacity: 1, lineWidth: 1, lineColor: null, symbol: "circle" } }, enableSimulation: !0, type: "packedbubble", integration: "packedbubble", maxIterations: 1E3, splitSeries: !1, maxSpeed: 5, gravitationalConstant: .01, friction: -.981
                    }
                }); return c
        }(r); k(e.prototype, {
            alignDataLabel: l.prototype.alignDataLabel,
            axisTypes: [], directTouch: !0, forces: ["barycenter", "repulsive"], hasDraggableNodes: !0, isCartesian: !1, noSharedTooltip: !0, onMouseDown: y.onMouseDown, onMouseMove: y.onMouseMove, pointArrayMap: ["value"], pointClass: h, pointValKey: "value", redrawHalo: y.redrawHalo, requireSorting: !1, searchPoint: d.noop, trackerGroups: ["group", "dataLabelsGroup", "parentNodesGroup"]
        }); c.registerSeriesType("packedbubble", e); ""; ""; return e
    }); z(e, "Series/Polygon/PolygonSeries.js", [e["Core/Globals.js"], e["Core/Legend/LegendSymbol.js"], e["Core/Series/SeriesRegistry.js"],
    e["Core/Utilities.js"]], function (e, d, h, c) {
        var a = this && this.__extends || function () { var a = function (b, c) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, b) { a.__proto__ = b } || function (a, b) { for (var c in b) b.hasOwnProperty(c) && (a[c] = b[c]) }; return a(b, c) }; return function (b, c) { function d() { this.constructor = b } a(b, c); b.prototype = null === c ? Object.create(c) : (d.prototype = c.prototype, new d) } }(); e = e.noop; var t = h.series, m = h.seriesTypes, l = m.area, r = m.line, x = m.scatter; m = c.extend; var b = c.merge; c = function (c) {
            function d() {
                var a =
                    null !== c && c.apply(this, arguments) || this; a.data = void 0; a.options = void 0; a.points = void 0; return a
            } a(d, c); d.prototype.getGraphPath = function () { for (var a = r.prototype.getGraphPath.call(this), b = a.length + 1; b--;)(b === a.length || "M" === a[b][0]) && 0 < b && a.splice(b, 0, ["Z"]); return this.areaPath = a }; d.prototype.drawGraph = function () { this.options.fillColor = this.color; l.prototype.drawGraph.call(this) }; d.defaultOptions = b(x.defaultOptions, {
                marker: { enabled: !1, states: { hover: { enabled: !1 } } }, stickyTracking: !1, tooltip: {
                    followPointer: !0,
                    pointFormat: ""
                }, trackByArea: !0
            }); return d
        }(x); m(c.prototype, { type: "polygon", drawLegendSymbol: d.drawRectangle, drawTracker: t.prototype.drawTracker, setStackedPoints: e }); h.registerSeriesType("polygon", c); ""; return c
    }); z(e, "Core/Axis/WaterfallAxis.js", [e["Extensions/Stacking.js"], e["Core/Utilities.js"]], function (e, d) {
        var h = d.addEvent, c = d.objectEach, a; (function (a) {
            function d() { var a = this.waterfall.stacks; a && (a.changed = !1, delete a.alreadyChanged) } function l() {
                var a = this.options.stackLabels; a && a.enabled &&
                    this.waterfall.stacks && this.waterfall.renderStackTotals()
            } function r() { for (var a = this.axes, b = this.series, c = b.length; c--;)b[c].options.stacking && (a.forEach(function (a) { a.isXAxis || (a.waterfall.stacks.changed = !0) }), c = 0) } function x() { this.waterfall || (this.waterfall = new b(this)) } var b = function () {
                function a(a) { this.axis = a; this.stacks = { changed: !1 } } a.prototype.renderStackTotals = function () {
                    var a = this.axis, b = a.waterfall.stacks, d = a.stacking && a.stacking.stackTotalGroup, h = new e(a, a.options.stackLabels, !1, 0, void 0);
                    this.dummyStackItem = h; c(b, function (a) { c(a, function (a) { h.total = a.stackTotal; a.label && (h.label = a.label); e.prototype.render.call(h, d); a.label = h.label; delete h.label }) }); h.total = null
                }; return a
            }(); a.Composition = b; a.compose = function (a, b) { h(a, "init", x); h(a, "afterBuildStacks", d); h(a, "afterRender", l); h(b, "beforeRedraw", r) }
        })(a || (a = {})); return a
    }); z(e, "Series/Waterfall/WaterfallPoint.js", [e["Series/Column/ColumnSeries.js"], e["Core/Series/Point.js"], e["Core/Utilities.js"]], function (e, d, h) {
        var c = this && this.__extends ||
            function () { var a = function (c, d) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var b in c) c.hasOwnProperty(b) && (a[b] = c[b]) }; return a(c, d) }; return function (c, d) { function e() { this.constructor = c } a(c, d); c.prototype = null === d ? Object.create(d) : (e.prototype = d.prototype, new e) } }(), a = h.isNumber; return function (e) {
                function h() { var a = null !== e && e.apply(this, arguments) || this; a.options = void 0; a.series = void 0; return a } c(h, e); h.prototype.getClassName = function () {
                    var a =
                        d.prototype.getClassName.call(this); this.isSum ? a += " highcharts-sum" : this.isIntermediateSum && (a += " highcharts-intermediate-sum"); return a
                }; h.prototype.isValid = function () { return a(this.y) || this.isSum || !!this.isIntermediateSum }; return h
            }(e.prototype.pointClass)
    }); z(e, "Series/Waterfall/WaterfallSeries.js", [e["Core/Axis/Axis.js"], e["Core/Chart/Chart.js"], e["Core/Color/Palette.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Utilities.js"], e["Core/Axis/WaterfallAxis.js"], e["Series/Waterfall/WaterfallPoint.js"]],
        function (e, d, h, c, a, t, m) {
            var l = this && this.__extends || function () { var a = function (b, c) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, b) { a.__proto__ = b } || function (a, b) { for (var c in b) b.hasOwnProperty(c) && (a[c] = b[c]) }; return a(b, c) }; return function (b, c) { function d() { this.constructor = b } a(b, c); b.prototype = null === c ? Object.create(c) : (d.prototype = c.prototype, new d) } }(), r = c.seriesTypes, x = r.column, b = r.line, q = a.arrayMax, k = a.arrayMin, p = a.correctFloat; r = a.extend; var v = a.isNumber, z = a.merge, D =
                a.objectEach, L = a.pick; a = function (a) {
                    function c() { var b = null !== a && a.apply(this, arguments) || this; b.chart = void 0; b.data = void 0; b.options = void 0; b.points = void 0; b.stackedYNeg = void 0; b.stackedYPos = void 0; b.stackKey = void 0; b.xData = void 0; b.yAxis = void 0; b.yData = void 0; return b } l(c, a); c.prototype.generatePoints = function () { var a; x.prototype.generatePoints.apply(this); var b = 0; for (a = this.points.length; b < a; b++) { var c = this.points[b]; var d = this.processedYData[b]; if (c.isIntermediateSum || c.isSum) c.y = p(d) } }; c.prototype.translate =
                        function () {
                            var a = this.options, b = this.yAxis, c = L(a.minPointLength, 5), d = c / 2, e = a.threshold || 0, h = e, k = e; a = a.stacking; var l = b.waterfall.stacks[this.stackKey]; x.prototype.translate.apply(this); for (var q = this.points, p = 0; p < q.length; p++) {
                                var m = q[p]; var r = this.processedYData[p]; var C = m.shapeArgs; if (C && v(r)) {
                                    var t = [0, r]; var G = m.y; if (a) {
                                        if (l) {
                                            t = l[p]; if ("overlap" === a) {
                                                var y = t.stackState[t.stateIndex--]; y = 0 <= G ? y : y - G; Object.hasOwnProperty.call(t, "absolutePos") && delete t.absolutePos; Object.hasOwnProperty.call(t, "absoluteNeg") &&
                                                    delete t.absoluteNeg
                                            } else 0 <= G ? (y = t.threshold + t.posTotal, t.posTotal -= G) : (y = t.threshold + t.negTotal, t.negTotal -= G, y -= G), !t.posTotal && Object.hasOwnProperty.call(t, "absolutePos") && (t.posTotal = t.absolutePos, delete t.absolutePos), !t.negTotal && Object.hasOwnProperty.call(t, "absoluteNeg") && (t.negTotal = t.absoluteNeg, delete t.absoluteNeg); m.isSum || (t.connectorThreshold = t.threshold + t.stackTotal); b.reversed ? (r = 0 <= G ? y - G : y + G, G = y) : (r = y, G = y - G); m.below = r <= e; C.y = b.translate(r, !1, !0, !1, !0) || 0; C.height = Math.abs(C.y - (b.translate(G,
                                                !1, !0, !1, !0) || 0)); if (G = b.waterfall.dummyStackItem) G.x = p, G.label = l[p].label, G.setOffset(this.pointXOffset || 0, this.barW || 0, this.stackedYNeg[p], this.stackedYPos[p])
                                        }
                                    } else y = Math.max(h, h + G) + t[0], C.y = b.translate(y, !1, !0, !1, !0) || 0, m.isSum ? (C.y = b.translate(t[1], !1, !0, !1, !0) || 0, C.height = Math.min(b.translate(t[0], !1, !0, !1, !0) || 0, b.len) - C.y, m.below = t[1] <= e) : m.isIntermediateSum ? (0 <= G ? (r = t[1] + k, G = k) : (r = k, G = t[1] + k), b.reversed && (r ^= G, G ^= r, r ^= G), C.y = b.translate(r, !1, !0, !1, !0) || 0, C.height = Math.abs(C.y - Math.min(b.translate(G,
                                        !1, !0, !1, !0) || 0, b.len)), k += t[1], m.below = r <= e) : (C.height = 0 < r ? (b.translate(h, !1, !0, !1, !0) || 0) - C.y : (b.translate(h, !1, !0, !1, !0) || 0) - (b.translate(h - r, !1, !0, !1, !0) || 0), h += r, m.below = h < e), 0 > C.height && (C.y += C.height, C.height *= -1); m.plotY = C.y = Math.round(C.y || 0) - this.borderWidth % 2 / 2; C.height = Math.max(Math.round(C.height || 0), .001); m.yBottom = C.y + C.height; C.height <= c && !m.isNull ? (C.height = c, C.y -= d, m.plotY = C.y, m.minPointLengthOffset = 0 > m.y ? -d : d) : (m.isNull && (C.width = 0), m.minPointLengthOffset = 0); G = m.plotY + (m.negative ?
                                            C.height : 0); m.below && (m.plotY += C.height); m.tooltipPos && (this.chart.inverted ? m.tooltipPos[0] = b.len - G : m.tooltipPos[1] = G)
                                }
                            }
                        }; c.prototype.processData = function (b) {
                            var c = this.options, d = this.yData, g = c.data, e = d.length, h = c.threshold || 0, k, l, m, q, r; for (r = l = k = m = q = 0; r < e; r++) { var t = d[r]; var v = g && g[r] ? g[r] : {}; "sum" === t || v.isSum ? d[r] = p(l) : "intermediateSum" === t || v.isIntermediateSum ? (d[r] = p(k), k = 0) : (l += t, k += t); m = Math.min(l, m); q = Math.max(l, q) } a.prototype.processData.call(this, b); c.stacking || (this.dataMin = m + h, this.dataMax =
                                q)
                        }; c.prototype.toYData = function (a) { return a.isSum ? "sum" : a.isIntermediateSum ? "intermediateSum" : a.y }; c.prototype.updateParallelArrays = function (b, c) { a.prototype.updateParallelArrays.call(this, b, c); if ("sum" === this.yData[0] || "intermediateSum" === this.yData[0]) this.yData[0] = null }; c.prototype.pointAttribs = function (a, b) { var c = this.options.upColor; c && !a.options.color && (a.color = 0 < a.y ? c : null); a = x.prototype.pointAttribs.call(this, a, b); delete a.dashstyle; return a }; c.prototype.getGraphPath = function () {
                            return [["M",
                                0, 0]]
                        }; c.prototype.getCrispPath = function () {
                            var a = this.data, b = this.yAxis, c = a.length, d = Math.round(this.graph.strokeWidth()) % 2 / 2, e = Math.round(this.borderWidth) % 2 / 2, h = this.xAxis.reversed, k = this.yAxis.reversed, l = this.options.stacking, m = [], p; for (p = 1; p < c; p++) {
                                var q = a[p].shapeArgs; var r = a[p - 1]; var t = a[p - 1].shapeArgs; var v = b.waterfall.stacks[this.stackKey]; var x = 0 < r.y ? -t.height : 0; v && t && q && (v = v[p - 1], l ? (v = v.connectorThreshold, x = Math.round(b.translate(v, 0, 1, 0, 1) + (k ? x : 0)) - d) : x = t.y + r.minPointLengthOffset + e - d, m.push(["M",
                                    (t.x || 0) + (h ? 0 : t.width || 0), x], ["L", (q.x || 0) + (h ? q.width || 0 : 0), x])); t && m.length && (!l && 0 > r.y && !k || 0 < r.y && k) && ((r = m[m.length - 2]) && "number" === typeof r[2] && (r[2] += t.height || 0), (r = m[m.length - 1]) && "number" === typeof r[2] && (r[2] += t.height || 0))
                            } return m
                        }; c.prototype.drawGraph = function () { b.prototype.drawGraph.call(this); this.graph.attr({ d: this.getCrispPath() }) }; c.prototype.setStackedPoints = function () {
                            function a(a, b, c, d) {
                                if (H) for (c; c < H; c++)z.stackState[c] += d; else z.stackState[0] = a, H = z.stackState.length; z.stackState.push(z.stackState[H -
                                    1] + b)
                            } var b = this.options, c = this.yAxis.waterfall.stacks, d = b.threshold, e = d || 0, h = e, k = this.stackKey, l = this.xData, m = l.length, p, q, r; this.yAxis.stacking.usePercentage = !1; var t = q = r = e; if (this.visible || !this.chart.options.chart.ignoreHiddenSeries) {
                                var v = c.changed; (p = c.alreadyChanged) && 0 > p.indexOf(k) && (v = !0); c[k] || (c[k] = {}); p = c[k]; for (var x = 0; x < m; x++) {
                                    var y = l[x]; if (!p[y] || v) p[y] = { negTotal: 0, posTotal: 0, stackTotal: 0, threshold: 0, stateIndex: 0, stackState: [], label: v && p[y] ? p[y].label : void 0 }; var z = p[y]; var E = this.yData[x];
                                    0 <= E ? z.posTotal += E : z.negTotal += E; var B = b.data[x]; y = z.absolutePos = z.posTotal; var D = z.absoluteNeg = z.negTotal; z.stackTotal = y + D; var H = z.stackState.length; B && B.isIntermediateSum ? (a(r, q, 0, r), r = q, q = d, e ^= h, h ^= e, e ^= h) : B && B.isSum ? (a(d, t, H), e = d) : (a(e, E, 0, t), B && (t += E, q += E)); z.stateIndex++; z.threshold = e; e += z.stackTotal
                                } c.changed = !1; c.alreadyChanged || (c.alreadyChanged = []); c.alreadyChanged.push(k)
                            }
                        }; c.prototype.getExtremes = function () {
                            var a = this.options.stacking; if (a) {
                                var b = this.yAxis; b = b.waterfall.stacks; var c =
                                    this.stackedYNeg = []; var d = this.stackedYPos = []; "overlap" === a ? D(b[this.stackKey], function (a) { c.push(k(a.stackState)); d.push(q(a.stackState)) }) : D(b[this.stackKey], function (a) { c.push(a.negTotal + a.threshold); d.push(a.posTotal + a.threshold) }); return { dataMin: k(c), dataMax: q(d) }
                            } return { dataMin: this.dataMin, dataMax: this.dataMax }
                        }; c.defaultOptions = z(x.defaultOptions, { dataLabels: { inside: !0 }, lineWidth: 1, lineColor: h.neutralColor80, dashStyle: "Dot", borderColor: h.neutralColor80, states: { hover: { lineWidthPlus: 0 } } }); return c
                }(x);
            r(a.prototype, { getZonesGraphs: b.prototype.getZonesGraphs, pointValKey: "y", showLine: !0, pointClass: m }); c.registerSeriesType("waterfall", a); t.compose(e, d); ""; return a
        }); z(e, "Extensions/Polar.js", [e["Core/Animation/AnimationUtilities.js"], e["Core/Chart/Chart.js"], e["Core/Globals.js"], e["Extensions/Pane.js"], e["Core/Pointer.js"], e["Core/Series/Series.js"], e["Core/Series/SeriesRegistry.js"], e["Core/Renderer/SVG/SVGRenderer.js"], e["Core/Utilities.js"]], function (e, d, h, c, a, t, m, l, r) {
            var x = e.animObject; m = m.seriesTypes;
            var b = r.addEvent, q = r.defined, k = r.find, p = r.isNumber, v = r.pick, z = r.splat, H = r.uniqueKey; e = r.wrap; var D = t.prototype; a = a.prototype; D.searchPointByAngle = function (a) { var b = this.chart, c = this.xAxis.pane.center; return this.searchKDTree({ clientX: 180 + -180 / Math.PI * Math.atan2(a.chartX - c[0] - b.plotLeft, a.chartY - c[1] - b.plotTop) }) }; D.getConnectors = function (a, b, c, d) {
                var f = d ? 1 : 0; var e = 0 <= b && b <= a.length - 1 ? b : 0 > b ? a.length - 1 + b : 0; b = 0 > e - 1 ? a.length - (1 + f) : e - 1; f = e + 1 > a.length - 1 ? f : e + 1; var g = a[b]; f = a[f]; var h = g.plotX; g = g.plotY; var k =
                    f.plotX; var l = f.plotY; f = a[e].plotX; e = a[e].plotY; h = (1.5 * f + h) / 2.5; g = (1.5 * e + g) / 2.5; k = (1.5 * f + k) / 2.5; var n = (1.5 * e + l) / 2.5; l = Math.sqrt(Math.pow(h - f, 2) + Math.pow(g - e, 2)); var m = Math.sqrt(Math.pow(k - f, 2) + Math.pow(n - e, 2)); h = Math.atan2(g - e, h - f); n = Math.PI / 2 + (h + Math.atan2(n - e, k - f)) / 2; Math.abs(h - n) > Math.PI / 2 && (n -= Math.PI); h = f + Math.cos(n) * l; g = e + Math.sin(n) * l; k = f + Math.cos(Math.PI + n) * m; n = e + Math.sin(Math.PI + n) * m; f = { rightContX: k, rightContY: n, leftContX: h, leftContY: g, plotX: f, plotY: e }; c && (f.prevPointCont = this.getConnectors(a,
                        b, !1, d)); return f
            }; D.toXY = function (a) {
                var b = this.chart, c = this.xAxis, d = this.yAxis, e = a.plotX, g = a.plotY, h = a.series, k = b.inverted, l = a.y, m = k ? e : d.len - g; k && h && !h.isRadialBar && (a.plotY = g = "number" === typeof l ? d.translate(l) || 0 : 0); a.rectPlotX = e; a.rectPlotY = g; d.center && (m += d.center[3] / 2); p(g) && (d = k ? d.postTranslate(g, m) : c.postTranslate(e, m), a.plotX = a.polarPlotX = d.x - b.plotLeft, a.plotY = a.polarPlotY = d.y - b.plotTop); this.kdByAngle ? (b = (e / Math.PI * 180 + c.pane.options.startAngle) % 360, 0 > b && (b += 360), a.clientX = b) : a.clientX =
                    a.plotX
            }; m.spline && (e(m.spline.prototype, "getPointSpline", function (a, b, c, d) { this.chart.polar ? d ? (a = this.getConnectors(b, d, !0, this.connectEnds), b = a.prevPointCont && a.prevPointCont.rightContX, c = a.prevPointCont && a.prevPointCont.rightContY, a = ["C", p(b) ? b : a.plotX, p(c) ? c : a.plotY, p(a.leftContX) ? a.leftContX : a.plotX, p(a.leftContY) ? a.leftContY : a.plotY, a.plotX, a.plotY]) : a = ["M", c.plotX, c.plotY] : a = a.call(this, b, c, d); return a }), m.areasplinerange && (m.areasplinerange.prototype.getPointSpline = m.spline.prototype.getPointSpline));
            b(t, "afterTranslate", function () {
                var a = this.chart; if (a.polar && this.xAxis) {
                    (this.kdByAngle = a.tooltip && a.tooltip.shared) ? this.searchPoint = this.searchPointByAngle : this.options.findNearestPointBy = "xy"; if (!this.preventPostTranslate) for (var c = this.points, d = c.length; d--;)this.toXY(c[d]), !a.hasParallelCoordinates && !this.yAxis.reversed && c[d].y < this.yAxis.min && (c[d].isNull = !0); this.hasClipCircleSetter || (this.hasClipCircleSetter = !!this.eventsToUnbind.push(b(this, "afterRender", function () {
                        if (a.polar) {
                            var b = this.yAxis.pane.center;
                            this.clipCircle ? this.clipCircle.animate({ x: b[0], y: b[1], r: b[2] / 2, innerR: b[3] / 2 }) : this.clipCircle = a.renderer.clipCircle(b[0], b[1], b[2] / 2, b[3] / 2); this.group.clip(this.clipCircle); this.setClip = h.noop
                        }
                    })))
                }
            }, { order: 2 }); e(m.line.prototype, "getGraphPath", function (a, b) {
                var c = this, d; if (this.chart.polar) {
                    b = b || this.points; for (d = 0; d < b.length; d++)if (!b[d].isNull) { var e = d; break } if (!1 !== this.options.connectEnds && "undefined" !== typeof e) { this.connectEnds = !0; b.splice(b.length, 0, b[e]); var f = !0 } b.forEach(function (a) {
                        "undefined" ===
                        typeof a.polarPlotY && c.toXY(a)
                    })
                } d = a.apply(this, [].slice.call(arguments, 1)); f && b.pop(); return d
            }); var y = function (a, b) {
                var c = this, d = this.chart, e = this.options.animation, f = this.group, g = this.markerGroup, k = this.xAxis.center, l = d.plotLeft, m = d.plotTop, p, q, r, t; if (d.polar) if (c.isRadialBar) b || (c.startAngleRad = v(c.translatedThreshold, c.xAxis.startAngleRad), h.seriesTypes.pie.prototype.animate.call(c, b)); else {
                    if (d.renderer.isSVG) if (e = x(e), c.is("column")) {
                        if (!b) {
                            var y = k[3] / 2; c.points.forEach(function (a) {
                                p = a.graphic;
                                r = (q = a.shapeArgs) && q.r; t = q && q.innerR; p && q && (p.attr({ r: y, innerR: y }), p.animate({ r: r, innerR: t }, c.options.animation))
                            })
                        }
                    } else b ? (a = { translateX: k[0] + l, translateY: k[1] + m, scaleX: .001, scaleY: .001 }, f.attr(a), g && g.attr(a)) : (a = { translateX: l, translateY: m, scaleX: 1, scaleY: 1 }, f.animate(a, e), g && g.animate(a, e))
                } else a.call(this, b)
            }; e(D, "animate", y); if (m.column) {
                var I = m.arearange.prototype; m = m.column.prototype; m.polarArc = function (a, b, c, d) {
                    var e = this.xAxis.center, f = this.yAxis.len, g = e[3] / 2; b = f - b + g; a = f - v(a, f) + g; this.yAxis.reversed &&
                        (0 > b && (b = g), 0 > a && (a = g)); return { x: e[0], y: e[1], r: b, innerR: a, start: c, end: d }
                }; e(m, "animate", y); e(m, "translate", function (a) {
                    var b = this.options, c = b.stacking, d = this.chart, e = this.xAxis, g = this.yAxis, h = g.reversed, k = g.center, l = e.startAngleRad, m = e.endAngleRad - l; this.preventPostTranslate = !0; a.call(this); if (e.isRadial) {
                        a = this.points; e = a.length; var t = g.translate(g.min); var v = g.translate(g.max); b = b.threshold || 0; if (d.inverted && p(b)) { var x = g.translate(b); q(x) && (0 > x ? x = 0 : x > m && (x = m), this.translatedThreshold = x + l) } for (; e--;) {
                            b =
                            a[e]; var y = b.barX; var z = b.x; var B = b.y; b.shapeType = "arc"; if (d.inverted) {
                                b.plotY = g.translate(B); if (c && g.stacking) { if (B = g.stacking.stacks[(0 > B ? "-" : "") + this.stackKey], this.visible && B && B[z] && !b.isNull) { var D = B[z].points[this.getStackIndicator(void 0, z, this.index).key]; var E = g.translate(D[0]); D = g.translate(D[1]); q(E) && (E = r.clamp(E, 0, m)) } } else E = x, D = b.plotY; E > D && (D = [E, E = D][0]); if (!h) if (E < t) E = t; else if (D > v) D = v; else { if (D < t || E > v) E = D = 0 } else if (D > t) D = t; else if (E < v) E = v; else if (E > t || D < v) E = D = m; g.min > g.max && (E = D =
                                    h ? m : 0); E += l; D += l; k && (b.barX = y += k[3] / 2); z = Math.max(y, 0); B = Math.max(y + b.pointWidth, 0); b.shapeArgs = { x: k && k[0], y: k && k[1], r: B, innerR: z, start: E, end: D }; b.opacity = E === D ? 0 : void 0; b.plotY = (q(this.translatedThreshold) && (E < this.translatedThreshold ? E : D)) - l
                            } else E = y + l, b.shapeArgs = this.polarArc(b.yBottom, b.plotY, E, E + b.pointWidth); this.toXY(b); d.inverted ? (y = g.postTranslate(b.rectPlotY, y + b.pointWidth / 2), b.tooltipPos = [y.x - d.plotLeft, y.y - d.plotTop]) : b.tooltipPos = [b.plotX, b.plotY]; k && (b.ttBelow = b.plotY > k[1])
                        }
                    }
                }); m.findAlignments =
                    function (a, b) { null === b.align && (b.align = 20 < a && 160 > a ? "left" : 200 < a && 340 > a ? "right" : "center"); null === b.verticalAlign && (b.verticalAlign = 45 > a || 315 < a ? "bottom" : 135 < a && 225 > a ? "top" : "middle"); return b }; I && (I.findAlignments = m.findAlignments); e(m, "alignDataLabel", function (a, b, c, d, e, h) {
                        var f = this.chart, g = v(d.inside, !!this.options.stacking); f.polar ? (a = b.rectPlotX / Math.PI * 180, f.inverted ? (this.forceDL = f.isInsidePlot(b.plotX, Math.round(b.plotY)), g && b.shapeArgs ? (e = b.shapeArgs, e = this.yAxis.postTranslate(((e.start || 0) +
                            (e.end || 0)) / 2 - this.xAxis.startAngleRad, b.barX + b.pointWidth / 2), e = { x: e.x - f.plotLeft, y: e.y - f.plotTop }) : b.tooltipPos && (e = { x: b.tooltipPos[0], y: b.tooltipPos[1] }), d.align = v(d.align, "center"), d.verticalAlign = v(d.verticalAlign, "middle")) : this.findAlignments && (d = this.findAlignments(a, d)), D.alignDataLabel.call(this, b, c, d, e, h), this.isRadialBar && b.shapeArgs && b.shapeArgs.start === b.shapeArgs.end && c.hide(!0)) : a.call(this, b, c, d, e, h)
                    })
            } e(a, "getCoordinates", function (a, b) {
                var c = this.chart, d = { xAxis: [], yAxis: [] }; c.polar ?
                    c.axes.forEach(function (a) { var e = a.isXAxis, f = a.center; if ("colorAxis" !== a.coll) { var g = b.chartX - f[0] - c.plotLeft; f = b.chartY - f[1] - c.plotTop; d[e ? "xAxis" : "yAxis"].push({ axis: a, value: a.translate(e ? Math.PI - Math.atan2(g, f) : Math.sqrt(Math.pow(g, 2) + Math.pow(f, 2)), !0) }) } }) : d = a.call(this, b); return d
            }); l.prototype.clipCircle = function (a, b, c, d) { var e = H(), f = this.createElement("clipPath").attr({ id: e }).add(this.defs); a = d ? this.arc(a, b, c, d, 0, 2 * Math.PI).add(f) : this.circle(a, b, c).add(f); a.id = e; a.clipPath = f; return a }; b(d,
                "getAxes", function () { this.pane || (this.pane = []); this.options.pane = z(this.options.pane); this.options.pane.forEach(function (a) { new c(a, this) }, this) }); b(d, "afterDrawChartBox", function () { this.pane.forEach(function (a) { a.render() }) }); b(t, "afterInit", function () { var a = this.chart; a.inverted && a.polar && (this.isRadialSeries = !0, this.is("column") && (this.isRadialBar = !0)) }); e(d.prototype, "get", function (a, b) { return k(this.pane || [], function (a) { return a.options.id === b }) || a.call(this, b) })
        }); z(e, "masters/highcharts-more.src.js",
            [e["Core/Globals.js"], e["Core/Axis/RadialAxis.js"], e["Series/Bubble/BubbleSeries.js"]], function (e, d, h) { d.compose(e.Axis, e.Tick); h.compose(e.Chart, e.Legend, e.Series) })
});
//# sourceMappingURL=highcharts-more.js.map
/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});

/**
 * @popperjs/core v2.11.6 - MIT License
 */

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function w(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:w(b(e))}function x(e,n){var r;void 0===n&&(n=[]);var o=w(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(x(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=x(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,w=Y("number"!=typeof b?b:G(b,k)),x=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?x:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+w.top,bottom:B.bottom-E.bottom+w.bottom,left:E.left-B.left+w.left,right:B.right-E.right+w.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function Z(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,o=void 0===r?[]:r,i=t.defaultOptions,a=void 0===i?K:i;return function(e,t,r){void 0===r&&(r=a);var i,s,f={placement:"bottom",orderedModifiers:[],options:Object.assign({},K,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},c=[],p=!1,u={state:f,setOptions:function(r){var i="function"==typeof r?r(f.options):r;l(),f.options=Object.assign({},a,f.options,i),f.scrollParents={reference:n(e)?x(e):e.contextElement?x(e.contextElement):[],popper:x(t)};var s,p,d=function(e){var t=q(e);return V.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((s=[].concat(o,f.options.modifiers),p=s.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(p).map((function(e){return p[e]}))));return f.orderedModifiers=d.filter((function(e){return e.enabled})),f.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"==typeof o){var i=o({state:f,name:t,instance:u,options:r}),a=function(){};c.push(i||a)}})),u.update()},forceUpdate:function(){if(!p){var e=f.elements,t=e.reference,n=e.popper;if(Q(t,n)){f.rects={reference:y(t,E(n),"fixed"===f.options.strategy),popper:g(n)},f.reset=!1,f.placement=f.options.placement,f.orderedModifiers.forEach((function(e){return f.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<f.orderedModifiers.length;r++)if(!0!==f.reset){var o=f.orderedModifiers[r],i=o.fn,a=o.options,s=void 0===a?{}:a,c=o.name;"function"==typeof i&&(f=i({state:f,options:s,name:c,instance:u})||f)}else f.reset=!1,r=-1}}},update:(i=function(){return new Promise((function(e){u.forceUpdate(),e(f)}))},function(){return s||(s=new Promise((function(e){Promise.resolve().then((function(){s=void 0,e(i())}))}))),s}),destroy:function(){l(),p=!0}};if(!Q(e,t))return u;function l(){c.forEach((function(e){return e()})),c=[]}return u.setOptions(r).then((function(e){!p&&r.onFirstUpdate&&r.onFirstUpdate(e)})),u}}var $={passive:!0};var ee={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,r=e.instance,o=e.options,i=o.scroll,a=void 0===i||i,s=o.resize,f=void 0===s||s,c=t(n.elements.popper),p=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&p.forEach((function(e){e.addEventListener("scroll",r.update,$)})),f&&c.addEventListener("resize",r.update,$),function(){a&&p.forEach((function(e){e.removeEventListener("scroll",r.update,$)})),f&&c.removeEventListener("resize",r.update,$)}},data:{}};var te={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=X({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},ne={top:"auto",right:"auto",bottom:"auto",left:"auto"};function re(e){var n,r=e.popper,o=e.popperRect,i=e.placement,a=e.variation,f=e.offsets,c=e.position,p=e.gpuAcceleration,u=e.adaptive,l=e.roundOffsets,h=e.isFixed,v=f.x,y=void 0===v?0:v,g=f.y,b=void 0===g?0:g,w="function"==typeof l?l({x:y,y:b}):{x:y,y:b};y=w.x,b=w.y;var x=f.hasOwnProperty("x"),O=f.hasOwnProperty("y"),j=P,M=D,k=window;if(u){var W=E(r),H="clientHeight",T="clientWidth";if(W===t(r)&&"static"!==m(W=d(r)).position&&"absolute"===c&&(H="scrollHeight",T="scrollWidth"),W=W,i===D||(i===P||i===L)&&a===B)M=A,b-=(h&&W===k&&k.visualViewport?k.visualViewport.height:W[H])-o.height,b*=p?1:-1;if(i===P||(i===D||i===A)&&a===B)j=L,y-=(h&&W===k&&k.visualViewport?k.visualViewport.width:W[T])-o.width,y*=p?1:-1}var R,S=Object.assign({position:c},u&&ne),V=!0===l?function(e){var t=e.x,n=e.y,r=window.devicePixelRatio||1;return{x:s(t*r)/r||0,y:s(n*r)/r||0}}({x:y,y:b}):{x:y,y:b};return y=V.x,b=V.y,p?Object.assign({},S,((R={})[M]=O?"0":"",R[j]=x?"0":"",R.transform=(k.devicePixelRatio||1)<=1?"translate("+y+"px, "+b+"px)":"translate3d("+y+"px, "+b+"px, 0)",R)):Object.assign({},S,((n={})[M]=O?b+"px":"",n[j]=x?y+"px":"",n.transform="",n))}var oe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:C(t.placement),variation:U(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,re(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,re(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var ie={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];r(i)&&l(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});r(o)&&l(o)&&(Object.assign(o.style,a),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};var ae={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=S.reduce((function(e,n){return e[n]=function(e,t,n){var r=C(e),o=[P,D].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),w=t.rects.reference,x=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k<b.length;k++){var B=b[k],H=C(B),T=U(B)===W,R=[D,A].indexOf(H)>=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;w[S]>x[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),w=C(t.placement),x=U(t.placement),O=!x,j=z(w),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=x===W?B[_]:H[_],Q=x===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(w),we=null!=(ue=null==S?void 0:S[M])?ue:0,xe=be?ye:me-B[ve]-H[ve]-we+R.altAxis,Oe=be?me+B[ve]+H[ve]-we-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(xe,me,Oe):de(m?xe:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,w=p[l],x=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(w,O,x),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),we=[ee,te,oe,ie,ae,le,he,me,ge],xe=Z({defaultModifiers:we});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=xe,e.createPopperLite=be,e.defaultModifiers=we,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=popper.min.js.map

/**
 * Swiper 8.4.7
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2023 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: January 30, 2023
 */

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}class n extends Array{constructor(e){"number"==typeof e?super(e):(super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this))}}function l(e){void 0===e&&(e=[]);const t=[];return e.forEach((e=>{Array.isArray(e)?t.push(...l(e)):t.push(e)})),t}function o(e,t){return Array.prototype.filter.call(e,t)}function d(e,t){const s=r(),i=a();let l=[];if(!t&&e instanceof n)return e;if(!e)return new n(l);if("string"==typeof e){const s=e.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){let e="div";0===s.indexOf("<li")&&(e="ul"),0===s.indexOf("<tr")&&(e="tbody"),0!==s.indexOf("<td")&&0!==s.indexOf("<th")||(e="tr"),0===s.indexOf("<tbody")&&(e="table"),0===s.indexOf("<option")&&(e="select");const t=i.createElement(e);t.innerHTML=s;for(let e=0;e<t.childNodes.length;e+=1)l.push(t.childNodes[e])}else l=function(e,t){if("string"!=typeof e)return[e];const s=[],a=t.querySelectorAll(e);for(let e=0;e<a.length;e+=1)s.push(a[e]);return s}(e.trim(),t||i)}else if(e.nodeType||e===s||e===i)l.push(e);else if(Array.isArray(e)){if(e instanceof n)return e;l=e}return new n(function(e){const t=[];for(let s=0;s<e.length;s+=1)-1===t.indexOf(e[s])&&t.push(e[s]);return t}(l))}d.fn=n.prototype;const c={addClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return this.forEach((e=>{e.classList.add(...a)})),this},removeClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return this.forEach((e=>{e.classList.remove(...a)})),this},hasClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return o(this,(e=>a.filter((t=>e.classList.contains(t))).length>0)).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));this.forEach((e=>{a.forEach((t=>{e.classList.toggle(t)}))}))},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let s=0;s<this.length;s+=1)if(2===arguments.length)this[s].setAttribute(e,t);else for(const t in e)this[s][t]=e[t],this[s].setAttribute(t,e[t]);return this},removeAttr:function(e){for(let t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},transform:function(e){for(let t=0;t<this.length;t+=1)this[t].style.transform=e;return this},transition:function(e){for(let t=0;t<this.length;t+=1)this[t].style.transitionDuration="string"!=typeof e?`${e}ms`:e;return this},on:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];let[a,i,r,n]=t;function l(e){const t=e.target;if(!t)return;const s=e.target.dom7EventData||[];if(s.indexOf(e)<0&&s.unshift(e),d(t).is(i))r.apply(t,s);else{const e=d(t).parents();for(let t=0;t<e.length;t+=1)d(e[t]).is(i)&&r.apply(e[t],s)}}function o(e){const t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),r.apply(this,t)}"function"==typeof t[1]&&([a,r,n]=t,i=void 0),n||(n=!1);const c=a.split(" ");let p;for(let e=0;e<this.length;e+=1){const t=this[e];if(i)for(p=0;p<c.length;p+=1){const e=c[p];t.dom7LiveListeners||(t.dom7LiveListeners={}),t.dom7LiveListeners[e]||(t.dom7LiveListeners[e]=[]),t.dom7LiveListeners[e].push({listener:r,proxyListener:l}),t.addEventListener(e,l,n)}else for(p=0;p<c.length;p+=1){const e=c[p];t.dom7Listeners||(t.dom7Listeners={}),t.dom7Listeners[e]||(t.dom7Listeners[e]=[]),t.dom7Listeners[e].push({listener:r,proxyListener:o}),t.addEventListener(e,o,n)}}return this},off:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];let[a,i,r,n]=t;"function"==typeof t[1]&&([a,r,n]=t,i=void 0),n||(n=!1);const l=a.split(" ");for(let e=0;e<l.length;e+=1){const t=l[e];for(let e=0;e<this.length;e+=1){const s=this[e];let a;if(!i&&s.dom7Listeners?a=s.dom7Listeners[t]:i&&s.dom7LiveListeners&&(a=s.dom7LiveListeners[t]),a&&a.length)for(let e=a.length-1;e>=0;e-=1){const i=a[e];r&&i.listener===r||r&&i.listener&&i.listener.dom7proxy&&i.listener.dom7proxy===r?(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1)):r||(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1))}}}return this},trigger:function(){const e=r();for(var t=arguments.length,s=new Array(t),a=0;a<t;a++)s[a]=arguments[a];const i=s[0].split(" "),n=s[1];for(let t=0;t<i.length;t+=1){const a=i[t];for(let t=0;t<this.length;t+=1){const i=this[t];if(e.CustomEvent){const t=new e.CustomEvent(a,{detail:n,bubbles:!0,cancelable:!0});i.dom7EventData=s.filter(((e,t)=>t>0)),i.dispatchEvent(t),i.dom7EventData=[],delete i.dom7EventData}}}return this},transitionEnd:function(e){const t=this;return e&&t.on("transitionend",(function s(a){a.target===this&&(e.call(this,a),t.off("transitionend",s))})),this},outerWidth:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){const e=r();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){const e=r(),t=a(),s=this[0],i=s.getBoundingClientRect(),n=t.body,l=s.clientTop||n.clientTop||0,o=s.clientLeft||n.clientLeft||0,d=s===e?e.scrollY:s.scrollTop,c=s===e?e.scrollX:s.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}return null},css:function(e,t){const s=r();let a;if(1===arguments.length){if("string"!=typeof e){for(a=0;a<this.length;a+=1)for(const t in e)this[a].style[t]=e[t];return this}if(this[0])return s.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(a=0;a<this.length;a+=1)this[a].style[e]=t;return this}return this},each:function(e){return e?(this.forEach(((t,s)=>{e.apply(t,[t,s])})),this):this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(let t=0;t<this.length;t+=1)this[t].innerHTML=e;return this},text:function(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(let t=0;t<this.length;t+=1)this[t].textContent=e;return this},is:function(e){const t=r(),s=a(),i=this[0];let l,o;if(!i||void 0===e)return!1;if("string"==typeof e){if(i.matches)return i.matches(e);if(i.webkitMatchesSelector)return i.webkitMatchesSelector(e);if(i.msMatchesSelector)return i.msMatchesSelector(e);for(l=d(e),o=0;o<l.length;o+=1)if(l[o]===i)return!0;return!1}if(e===s)return i===s;if(e===t)return i===t;if(e.nodeType||e instanceof n){for(l=e.nodeType?[e]:e,o=0;o<l.length;o+=1)if(l[o]===i)return!0;return!1}return!1},index:function(){let e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}},eq:function(e){if(void 0===e)return this;const t=this.length;if(e>t-1)return d([]);if(e<0){const s=t+e;return d(s<0?[]:[this[s]])}return d([this[e]])},append:function(){let e;const t=a();for(let s=0;s<arguments.length;s+=1){e=s<0||arguments.length<=s?void 0:arguments[s];for(let s=0;s<this.length;s+=1)if("string"==typeof e){const a=t.createElement("div");for(a.innerHTML=e;a.firstChild;)this[s].appendChild(a.firstChild)}else if(e instanceof n)for(let t=0;t<e.length;t+=1)this[s].appendChild(e[t]);else this[s].appendChild(e)}return this},prepend:function(e){const t=a();let s,i;for(s=0;s<this.length;s+=1)if("string"==typeof e){const a=t.createElement("div");for(a.innerHTML=e,i=a.childNodes.length-1;i>=0;i-=1)this[s].insertBefore(a.childNodes[i],this[s].childNodes[0])}else if(e instanceof n)for(i=0;i<e.length;i+=1)this[s].insertBefore(e[i],this[s].childNodes[0]);else this[s].insertBefore(e,this[s].childNodes[0]);return this},next:function(e){return this.length>0?e?this[0].nextElementSibling&&d(this[0].nextElementSibling).is(e)?d([this[0].nextElementSibling]):d([]):this[0].nextElementSibling?d([this[0].nextElementSibling]):d([]):d([])},nextAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.nextElementSibling;){const a=s.nextElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&d(t.previousElementSibling).is(e)?d([t.previousElementSibling]):d([]):t.previousElementSibling?d([t.previousElementSibling]):d([])}return d([])},prevAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.previousElementSibling;){const a=s.previousElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},parent:function(e){const t=[];for(let s=0;s<this.length;s+=1)null!==this[s].parentNode&&(e?d(this[s].parentNode).is(e)&&t.push(this[s].parentNode):t.push(this[s].parentNode));return d(t)},parents:function(e){const t=[];for(let s=0;s<this.length;s+=1){let a=this[s].parentNode;for(;a;)e?d(a).is(e)&&t.push(a):t.push(a),a=a.parentNode}return d(t)},closest:function(e){let t=this;return void 0===e?d([]):(t.is(e)||(t=t.parents(e).eq(0)),t)},find:function(e){const t=[];for(let s=0;s<this.length;s+=1){const a=this[s].querySelectorAll(e);for(let e=0;e<a.length;e+=1)t.push(a[e])}return d(t)},children:function(e){const t=[];for(let s=0;s<this.length;s+=1){const a=this[s].children;for(let s=0;s<a.length;s+=1)e&&!d(a[s]).is(e)||t.push(a[s])}return d(t)},filter:function(e){return d(o(this,e))},remove:function(){for(let e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this}};function p(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function u(){return Date.now()}function h(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function m(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function f(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function g(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;s<arguments.length;s+=1){const a=s<0||arguments.length<=s?void 0:arguments[s];if(null!=a&&!f(a)){const s=Object.keys(Object(a)).filter((e=>t.indexOf(e)<0));for(let t=0,i=s.length;t<i;t+=1){const i=s[t],r=Object.getOwnPropertyDescriptor(a,i);void 0!==r&&r.enumerable&&(m(e[i])&&m(a[i])?a[i].__swiper__?e[i]=a[i]:g(e[i],a[i]):!m(e[i])&&m(a[i])?(e[i]={},a[i].__swiper__?e[i]=a[i]:g(e[i],a[i])):e[i]=a[i])}}}return e}function v(e,t,s){e.style.setProperty(t,s)}function w(e){let{swiper:t,targetPosition:s,side:a}=e;const i=r(),n=-t.translate;let l,o=null;const d=t.params.speed;t.wrapperEl.style.scrollSnapType="none",i.cancelAnimationFrame(t.cssModeFrameID);const c=s>n?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}let b,x,y;function E(){return b||(b=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),passiveListener:function(){let t=!1;try{const s=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",null,s)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),b}function C(e){return void 0===e&&(e={}),x||(x=function(e){let{userAgent:t}=void 0===e?{}:e;const s=E(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),m="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!m&&(l.os="android",l.android=!0),(p||h||u)&&(l.os="ios",l.ios=!0),l}(e)),x}function T(){return y||(y=function(){const e=r();return{isSafari:function(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),y}Object.keys(c).forEach((e=>{Object.defineProperty(d.fn,e,{value:c[e],writable:!0})}));var $={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n<s;n++)r[n]=arguments[n];t.apply(a,r)}return i.__emitterProxy=t,a.on(e,i,s)},onAny(e,t){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof e)return s;const a=t?"unshift":"push";return s.eventsAnyListeners.indexOf(e)<0&&s.eventsAnyListeners[a](e),s},offAny(e){const t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsAnyListeners)return t;const s=t.eventsAnyListeners.indexOf(e);return s>=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];"string"==typeof r[0]||Array.isArray(r[0])?(t=r[0],s=r.slice(1,r.length),a=e):(t=r[0].events,s=r[0].data,a=r[0].context||e),s.unshift(a);return(Array.isArray(t)?t:t.split(" ")).forEach((t=>{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};var S={updateSize:function(){const e=this;let t,s;const a=e.$el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a[0].clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(a.css("padding-left")||0,10)-parseInt(a.css("padding-right")||0,10),s=s-parseInt(a.css("padding-top")||0,10)-parseInt(a.css("padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{$wrapperEl:i,size:r,rtlTranslate:n,wrongRTL:l}=e,o=e.virtual&&a.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=i.children(`.${e.params.slideClass}`),p=o?e.virtual.slides.length:c.length;let u=[];const h=[],m=[];let f=a.slidesOffsetBefore;"function"==typeof f&&(f=a.slidesOffsetBefore.call(e));let g=a.slidesOffsetAfter;"function"==typeof g&&(g=a.slidesOffsetAfter.call(e));const w=e.snapGrid.length,b=e.slidesGrid.length;let x=a.spaceBetween,y=-f,E=0,C=0;if(void 0===r)return;"string"==typeof x&&x.indexOf("%")>=0&&(x=parseFloat(x.replace("%",""))/100*r),e.virtualSize=-x,n?c.css({marginLeft:"",marginBottom:"",marginTop:""}):c.css({marginRight:"",marginBottom:"",marginTop:""}),a.centeredSlides&&a.cssMode&&(v(e.wrapperEl,"--swiper-centered-offset-before",""),v(e.wrapperEl,"--swiper-centered-offset-after",""));const T=a.grid&&a.grid.rows>1&&e.grid;let $;T&&e.grid.initSlides(p);const S="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i<p;i+=1){$=0;const n=c.eq(i);if(T&&e.grid.updateSlide(i,n,p,t),"none"!==n.css("display")){if("auto"===a.slidesPerView){S&&(c[i].style[t("width")]="");const r=getComputedStyle(n[0]),l=n[0].style.transform,o=n[0].style.webkitTransform;if(l&&(n[0].style.transform="none"),o&&(n[0].style.webkitTransform="none"),a.roundLengths)$=e.isHorizontal()?n.outerWidth(!0):n.outerHeight(!0);else{const e=s(r,"width"),t=s(r,"padding-left"),a=s(r,"padding-right"),i=s(r,"margin-left"),l=s(r,"margin-right"),o=r.getPropertyValue("box-sizing");if(o&&"border-box"===o)$=e+i+l;else{const{clientWidth:s,offsetWidth:r}=n[0];$=e+t+a+i+l+(r-s)}}l&&(n[0].style.transform=l),o&&(n[0].style.webkitTransform=o),a.roundLengths&&($=Math.floor($))}else $=(r-(a.slidesPerView-1)*x)/a.slidesPerView,a.roundLengths&&($=Math.floor($)),c[i]&&(c[i].style[t("width")]=`${$}px`);c[i]&&(c[i].swiperSlideSize=$),m.push($),a.centeredSlides?(y=y+$/2+E/2+x,0===E&&0!==i&&(y=y-r/2-x),0===i&&(y=y-r/2-x),Math.abs(y)<.001&&(y=0),a.roundLengths&&(y=Math.floor(y)),C%a.slidesPerGroup==0&&u.push(y),h.push(y)):(a.roundLengths&&(y=Math.floor(y)),(C-Math.min(e.params.slidesPerGroupSkip,C))%e.params.slidesPerGroup==0&&u.push(y),h.push(y),y=y+$+x),e.virtualSize+=$+x,E=$,C+=1}}if(e.virtualSize=Math.max(e.virtualSize,r)+g,n&&l&&("slide"===a.effect||"coverflow"===a.effect)&&i.css({width:`${e.virtualSize+a.spaceBetween}px`}),a.setWrapperSize&&i.css({[t("width")]:`${e.virtualSize+a.spaceBetween}px`}),T&&e.grid.updateWrapperSize($,u,t),!a.centeredSlides){const t=[];for(let s=0;s<u.length;s+=1){let i=u[s];a.roundLengths&&(i=Math.floor(i)),u[s]<=e.virtualSize-r&&t.push(i)}u=t,Math.floor(e.virtualSize-r)-Math.floor(u[u.length-1])>1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==a.spaceBetween){const s=e.isHorizontal()&&n?"marginLeft":t("marginRight");c.filter(((e,t)=>!a.cssMode||t!==c.length-1)).css({[s]:`${x}px`})}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-r;u=u.map((e=>e<0?-f:e>t?t+g:e))}if(a.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e<r){const t=(r-e)/2;u.forEach(((e,s)=>{u[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSizesGrid:m}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){v(e.wrapperEl,"--swiper-centered-offset-before",-u[0]+"px"),v(e.wrapperEl,"--swiper-centered-offset-after",e.size/2-m[m.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),u.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==b&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(o||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.$el.hasClass(t);p<=a.maxBackfaceHiddenSlides?s||e.$el.addClass(t):s&&e.$el.removeClass(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e))[0]:t.slides.eq(e)[0];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||d([])).each((e=>{s.push(e)}));else for(i=0;i<Math.ceil(t.params.slidesPerView);i+=1){const e=t.activeIndex+i;if(e>t.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;i<s.length;i+=1)if(void 0!==s[i]){const e=s[i].offsetHeight;r=e>r?e:r}(r||0===r)&&t.$wrapperEl.css("height",`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides;for(let s=0;s<t.length;s+=1)t[s].swiperSlideOffset=e.isHorizontal()?t[s].offsetLeft:t[s].offsetTop},updateSlidesProgress:function(e){void 0===e&&(e=this&&this.translate||0);const t=this,s=t.params,{slides:a,rtlTranslate:i,snapGrid:r}=t;if(0===a.length)return;void 0===a[0].swiperSlideOffset&&t.updateSlidesOffset();let n=-e;i&&(n=e),a.removeClass(s.slideVisibleClass),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(let e=0;e<a.length;e+=1){const l=a[e];let o=l.swiperSlideOffset;s.cssMode&&s.centeredSlides&&(o-=a[0].swiperSlideOffset);const d=(n+(s.centeredSlides?t.minTranslate():0)-o)/(l.swiperSlideSize+s.spaceBetween),c=(n-r[0]+(s.centeredSlides?t.minTranslate():0)-o)/(l.swiperSlideSize+s.spaceBetween),p=-(n-o),u=p+t.slidesSizesGrid[e];(p>=0&&p<t.size-1||u>1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(s.slideVisibleClass)),l.progress=i?-d:d,l.originalProgress=i?-c:c}t.visibleSlides=d(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n}=t;const l=r,o=n;0===a?(i=0,r=!0,n=!0):(i=(e-t.minTranslate())/a,r=i<=0,n=i>=1),Object.assign(t,{progress:i,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.emit("reachBeginning toEdge"),n&&!o&&t.emit("reachEnd toEdge"),(l&&!r||o&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,$wrapperEl:a,activeIndex:i,realIndex:r}=e,n=e.virtual&&s.virtual.enabled;let l;t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`),l=n?e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),l.addClass(s.slideActiveClass),s.loop&&(l.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass));let o=l.nextAll(`.${s.slideClass}`).eq(0).addClass(s.slideNextClass);s.loop&&0===o.length&&(o=t.eq(0),o.addClass(s.slideNextClass));let d=l.prevAll(`.${s.slideClass}`).eq(0).addClass(s.slidePrevClass);s.loop&&0===d.length&&(d=t.eq(-1),d.addClass(s.slidePrevClass)),s.loop&&(o.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass),d.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:r,activeIndex:n,realIndex:l,snapIndex:o}=t;let d,c=e;if(void 0===c){for(let e=0;e<a.length;e+=1)void 0!==a[e+1]?s>=a[e]&&s<a[e+1]-(a[e+1]-a[e])/2?c=e:s>=a[e]&&s<a[e+1]&&(c=e+1):s>=a[e]&&(c=e);r.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(i.indexOf(s)>=0)d=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,c);d=e+Math.floor((c-e)/r.slidesPerGroup)}if(d>=i.length&&(d=i.length-1),c===n)return void(d!==o&&(t.snapIndex=d,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(c).attr("data-swiper-slide-index")||c,10);Object.assign(t,{snapIndex:d,realIndex:p,previousIndex:n,activeIndex:c}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),l!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=d(e).closest(`.${s.slideClass}`)[0];let i,r=!1;if(a)for(let e=0;e<t.slides.length;e+=1)if(t.slides[e]===a){r=!0,i=e;break}if(!a||!r)return t.clickedSlide=void 0,void(t.clickedIndex=void 0);t.clickedSlide=a,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(d(a).attr("data-swiper-slide-index"),10):t.clickedIndex=i,s.slideToClickedSlide&&void 0!==t.clickedIndex&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}};var M={getTranslate:function(e){void 0===e&&(e=this.isHorizontal()?"x":"y");const{params:t,rtlTranslate:s,translate:a,$wrapperEl:i}=this;if(t.virtualTranslate)return s?-a:a;if(t.cssMode)return a;let r=h(i[0],e);return s&&(r=-r),r||0},setTranslate:function(e,t){const s=this,{rtlTranslate:a,params:i,$wrapperEl:r,wrapperEl:n,progress:l}=s;let o,d=0,c=0;s.isHorizontal()?d=a?-e:e:c=e,i.roundLengths&&(d=Math.floor(d),c=Math.floor(c)),i.cssMode?n[s.isHorizontal()?"scrollLeft":"scrollTop"]=s.isHorizontal()?-d:-c:i.virtualTranslate||r.transform(`translate3d(${d}px, ${c}px, 0px)`),s.previousTranslate=s.translate,s.translate=s.isHorizontal()?d:c;const p=s.maxTranslate()-s.minTranslate();o=0===p?0:(e-s.minTranslate())/p,o!==l&&s.updateProgress(e),s.emit("setTranslate",s.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]},translateTo:function(e,t,s,a,i){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),void 0===a&&(a=!0);const r=this,{params:n,wrapperEl:l}=r;if(r.animating&&n.preventInteractionOnTransition)return!1;const o=r.minTranslate(),d=r.maxTranslate();let c;if(c=a&&e>o?o:a&&e<d?d:e,r.updateProgress(c),n.cssMode){const e=r.isHorizontal();if(0===t)l[e?"scrollLeft":"scrollTop"]=-c;else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:-c,side:e?"left":"top"}),!0;l.scrollTo({[e?"left":"top"]:-c,behavior:"smooth"})}return!0}return 0===t?(r.setTransition(0),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionEnd"))):(r.setTransition(t),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionStart")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,s&&r.emit("transitionEnd"))}),r.$wrapperEl[0].addEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd))),!0}};function P(e){let{swiper:t,runCallbacks:s,direction:a,step:i}=e;const{activeIndex:r,previousIndex:n}=t;let l=a;if(l||(l=r>n?"next":r<n?"prev":"reset"),t.emit(`transition${i}`),s&&r!==n){if("reset"===l)return void t.emit(`slideResetTransition${i}`);t.emit(`slideChangeTransition${i}`),"next"===l?t.emit(`slideNextTransition${i}`):t.emit(`slidePrevTransition${i}`)}}var k={slideTo:function(e,t,s,a,i){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"number"!=typeof e&&"string"!=typeof e)throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof e}] given.`);if("string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const r=this;let n=e;n<0&&(n=0);const{params:l,snapGrid:o,slidesGrid:d,previousIndex:c,activeIndex:p,rtlTranslate:u,wrapperEl:h,enabled:m}=r;if(r.animating&&l.preventInteractionOnTransition||!m&&!a&&!i)return!1;const f=Math.min(r.params.slidesPerGroupSkip,n);let g=f+Math.floor((n-f)/r.params.slidesPerGroup);g>=o.length&&(g=o.length-1);const v=-o[g];if(l.normalizeSlideIndex)for(let e=0;e<d.length;e+=1){const t=-Math.floor(100*v),s=Math.floor(100*d[e]),a=Math.floor(100*d[e+1]);void 0!==d[e+1]?t>=s&&t<a-(a-s)/2?n=e:t>=s&&t<a&&(n=e+1):t>=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&v<r.translate&&v<r.minTranslate())return!1;if(!r.allowSlidePrev&&v>r.translate&&v>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(v),b=n>p?"next":n<p?"prev":"reset",u&&-v===r.translate||!u&&v===r.translate)return r.updateActiveIndex(n),l.autoHeight&&r.updateAutoHeight(),r.updateSlidesClasses(),"slide"!==l.effect&&r.setTranslate(v),"reset"!==b&&(r.transitionStart(s,b),r.transitionEnd(s,b)),!1;if(l.cssMode){const e=r.isHorizontal(),s=u?v:-v;if(0===t){const t=r.virtual&&r.params.virtual.enabled;t&&(r.wrapperEl.style.scrollSnapType="none",r._immediateVirtual=!0),h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(v),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.$wrapperEl[0].addEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{animating:i,enabled:r,params:n}=a;if(!r)return a;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex<n.slidesPerGroupSkip?1:l;if(n.loop){if(i&&n.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}return n.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{params:i,animating:r,snapGrid:n,slidesGrid:l,rtlTranslate:o,enabled:d}=a;if(!d)return a;if(i.loop){if(r&&i.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}function c(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const p=c(o?a.translate:-a.translate),u=n.map((e=>c(e)));let h=n[u.indexOf(p)-1];if(void 0===h&&i.cssMode){let e;n.forEach(((t,s)=>{p>=t&&(e=s)})),void 0!==e&&(h=n[e>0?e-1:e])}let m=0;if(void 0!==h&&(m=l.indexOf(h),m<0&&(m=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(m=m-a.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(m,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?r<e.loopedSlides-a/2||r>e.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var z={loopCreate:function(){const e=this,t=a(),{params:s,$wrapperEl:i}=e,r=i.children().length>0?d(i.children()[0].parentNode):i;r.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();let n=r.children(`.${s.slideClass}`);if(s.loopFillGroupWithBlank){const e=s.slidesPerGroup-n.length%s.slidesPerGroup;if(e!==s.slidesPerGroup){for(let a=0;a<e;a+=1){const e=d(t.createElement("div")).addClass(`${s.slideClass} ${s.slideBlankClass}`);r.append(e)}n=r.children(`.${s.slideClass}`)}}"auto"!==s.slidesPerView||s.loopedSlides||(s.loopedSlides=n.length),e.loopedSlides=Math.ceil(parseFloat(s.loopedSlides||s.slidesPerView,10)),e.loopedSlides+=s.loopAdditionalSlides,e.loopedSlides>n.length&&e.params.loopedSlidesLimit&&(e.loopedSlides=n.length);const l=[],o=[];n.each(((e,t)=>{d(e).attr("data-swiper-slide-index",t)}));for(let t=0;t<e.loopedSlides;t+=1){const e=t-Math.floor(t/n.length)*n.length;o.push(n.eq(e)[0]),l.unshift(n.eq(n.length-e-1)[0])}for(let e=0;e<o.length;e+=1)r.append(d(o[e].cloneNode(!0)).addClass(s.slideDuplicateClass));for(let e=l.length-1;e>=0;e-=1)r.prepend(d(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:s,loopedSlides:a,allowSlidePrev:i,allowSlideNext:r,snapGrid:n,rtlTranslate:l}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const d=-n[t]-e.getTranslate();if(t<a){o=s.length-3*a+t,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}else if(t>=s.length-a){o=-s.length+t+a,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}e.allowSlidePrev=i,e.allowSlideNext=r,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:s}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),s.removeAttr("data-swiper-slide-index")}};function L(e){const t=this,s=a(),i=r(),n=t.touchEventsData,{params:l,touches:o,enabled:c}=t;if(!c)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let h=d(p.target);if("wrapper"===l.touchEventsTarget&&!h.closest(t.wrapperEl).length)return;if(n.isTouchEvent="touchstart"===p.type,!n.isTouchEvent&&"which"in p&&3===p.which)return;if(!n.isTouchEvent&&"button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;const m=!!l.noSwipingClass&&""!==l.noSwipingClass,f=e.composedPath?e.composedPath():e.path;m&&p.target&&p.target.shadowRoot&&f&&(h=d(f[0]));const g=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,v=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(v?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(g,h[0]):h.closest(g)[0]))return void(t.allowClick=!0);if(l.swipeHandler&&!h.closest(l.swipeHandler)[0])return;o.currentX="touchstart"===p.type?p.targetTouches[0].pageX:p.pageX,o.currentY="touchstart"===p.type?p.targetTouches[0].pageY:p.pageY;const w=o.currentX,b=o.currentY,x=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,y=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(x&&(w<=y||w>=i.innerWidth-y)){if("prevent"!==x)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=w,o.startY=b,n.touchStartTime=u(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==p.type){let e=!0;h.is(n.focusableElements)&&(e=!1,"SELECT"===h[0].nodeName&&(n.isTouched=!1)),s.activeElement&&d(s.activeElement).is(n.focusableElements)&&s.activeElement!==h[0]&&s.activeElement.blur();const a=e&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!a||h[0].isContentEditable||p.preventDefault()}t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function O(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:o}=s;if(!o)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));if(i.isTouchEvent&&"touchmove"!==c.type)return;const p="touchmove"===c.type&&c.targetTouches&&(c.targetTouches[0]||c.changedTouches[0]),h="touchmove"===c.type?p.pageX:c.pageX,m="touchmove"===c.type?p.pageY:c.pageY;if(c.preventedByNestedSwiper)return n.startX=h,void(n.startY=m);if(!s.allowTouchMove)return d(c.target).is(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:h,startY:m,currentX:h,currentY:m}),i.touchStartTime=u()));if(i.isTouchEvent&&r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(m<n.startY&&s.translate<=s.maxTranslate()||m>n.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(h<n.startX&&s.translate<=s.maxTranslate()||h>n.startX&&s.translate>=s.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&c.target===t.activeElement&&d(c.target).is(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=h,n.currentY=m;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)<s.params.threshold)return;if(void 0===i.isScrolling){let e;s.isHorizontal()&&n.currentY===n.startY||s.isVertical()&&n.currentX===n.startX?i.isScrolling=!1:f*f+g*g>=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation(),i.isMoved||(r.loop&&!r.cssMode&&s.loopFix(),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating&&s.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)),s.emit("sliderMove",c),i.isMoved=!0;let v=s.isHorizontal()?f:g;n.diff=v,v*=r.touchRatio,l&&(v=-v),s.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;let w=!0,b=r.resistanceRatio;if(r.touchReleaseOnEdges&&(b=0),v>0&&i.currentTranslate>s.minTranslate()?(w=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**b)):v<0&&i.currentTranslate<s.maxTranslate()&&(w=!1,r.resistance&&(i.currentTranslate=s.maxTranslate()+1-(s.maxTranslate()-i.startTranslate-v)**b)),w&&(c.preventedByNestedSwiper=!0),!s.allowSlideNext&&"next"===s.swipeDirection&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!s.allowSlidePrev&&"prev"===s.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function I(e){const t=this,s=t.touchEventsData,{params:a,touches:i,rtlTranslate:r,slidesGrid:n,enabled:l}=t;if(!l)return;let o=e;if(o.originalEvent&&(o=o.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",o),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&a.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);a.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const d=u(),c=d-s.touchStartTime;if(t.allowClick){const e=o.path||o.composedPath&&o.composedPath();t.updateClickedSlide(e&&e[0]||o.target),t.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap doubleClick",o)}if(s.lastClickTime=u(),p((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===i.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=a.followFinger?r?t.translate:-t.translate:-s.currentTranslate,a.cssMode)return;if(t.params.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let m=0,f=t.slidesSizesGrid[0];for(let e=0;e<n.length;e+=e<a.slidesPerGroupSkip?1:a.slidesPerGroup){const t=e<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;void 0!==n[e+t]?h>=n[e]&&h<n[e+t]&&(m=e,f=n[e+t]-n[e]):h>=n[e]&&(m=e,f=n[n.length-1]-n[n.length-2])}let g=null,v=null;a.rewind&&(t.isBeginning?v=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(g=0));const w=(h-n[m])/f,b=m<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;if(c>a.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(w>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?g:m+b):t.slideTo(m)),"prev"===t.swipeDirection&&(w>1-a.longSwipesRatio?t.slideTo(m+b):null!==v&&w<0&&Math.abs(w)>a.longSwipesRatio?t.slideTo(v):t.slideTo(m))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(o.target===t.navigation.nextEl||o.target===t.navigation.prevEl)?o.target===t.navigation.nextEl?t.slideTo(m+b):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(null!==g?g:m+b),"prev"===t.swipeDirection&&t.slideTo(null!==v?v:m))}}function A(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function D(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function G(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let N=!1;function B(){}const H=(e,t)=>{const s=a(),{params:i,touchEvents:r,el:n,wrapperEl:l,device:o,support:d}=e,c=!!i.nested,p="on"===t?"addEventListener":"removeEventListener",u=t;if(d.touch){const t=!("touchstart"!==r.start||!d.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};n[p](r.start,e.onTouchStart,t),n[p](r.move,e.onTouchMove,d.passiveListener?{passive:!1,capture:c}:c),n[p](r.end,e.onTouchEnd,t),r.cancel&&n[p](r.cancel,e.onTouchEnd,t)}else n[p](r.start,e.onTouchStart,!1),s[p](r.move,e.onTouchMove,c),s[p](r.end,e.onTouchEnd,!1);(i.preventClicks||i.preventClicksPropagation)&&n[p]("click",e.onClick,!0),i.cssMode&&l[p]("scroll",e.onScroll),i.updateOnWindowResize?e[u](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",A,!0):e[u]("observerUpdate",A,!0)};var X={attachEvents:function(){const e=this,t=a(),{params:s,support:i}=e;e.onTouchStart=L.bind(e),e.onTouchMove=O.bind(e),e.onTouchEnd=I.bind(e),s.cssMode&&(e.onScroll=G.bind(e)),e.onClick=D.bind(e),i.touch&&!N&&(t.addEventListener("touchstart",B),N=!0),H(e,"on")},detachEvents:function(){H(this,"off")}};const Y=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var R={addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,$el:i,device:r,support:n}=e,l=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"pointer-events":!n.touch},{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...l),i.addClass([...t].join(" ")),e.emitContainerClasses()},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" ")),this.emitContainerClasses()}};var W={init:!0,direction:"horizontal",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopedSlidesLimit:!0,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function q(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),g(t,s)):g(t,s)):g(t,s)}}const j={eventsEmitter:$,update:S,translate:M,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||s.$wrapperEl.transition(e),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),P({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),P({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:k,loop:z,grabCursor:{setGrabCursor:function(e){const t=this;if(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:X,breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:s,loopedSlides:a=0,params:i,$el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!l||e.currentBreakpoint===l)return;const o=(l in n?n[l]:void 0)||e.originalParams,d=Y(e,i),c=Y(e,o),p=i.enabled;d&&!c?(r.removeClass(`${i.containerModifierClass}grid ${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!d&&c&&(r.addClass(`${i.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.addClass(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const s=i[t]&&i[t].enabled,a=o[t]&&o[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u);u&&s&&e.changeDirection(),g(e.params,o);const m=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",o),h&&s&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;e<l.length;e+=1){const{point:r,value:n}=l[e];"window"===t?i.matchMedia(`(min-width: ${n}px)`).matches&&(a=r):n<=s.clientWidth&&(a=r)}return a||"max"}},checkOverflow:{checkOverflow:function(){const e=this,{isLocked:t,params:s}=e,{slidesOffsetBefore:a}=s;if(a){const t=e.slides.length-1,s=e.slidesGrid[t]+e.slidesSizesGrid[t]+2*a;e.isLocked=e.size>s}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:R,images:{loadImage:function(e,t,s,a,i,n){const l=r();let o;function c(){n&&n()}d(e).parent("picture")[0]||e.complete&&i?c():t?(o=new l.Image,o.onload=c,o.onerror=c,a&&(o.sizes=a),s&&(o.srcset=s),t&&(o.src=t)):c()},preloadImages:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(let s=0;s<e.imagesToLoad.length;s+=1){const a=e.imagesToLoad[s];e.loadImage(a,a.currentSrc||a.getAttribute("src"),a.srcset||a.getAttribute("srcset"),a.sizes||a.getAttribute("sizes"),!0,t)}}}},_={};class V{constructor(){let e,t;for(var s=arguments.length,a=new Array(s),i=0;i<s;i++)a[i]=arguments[i];if(1===a.length&&a[0].constructor&&"Object"===Object.prototype.toString.call(a[0]).slice(8,-1)?t=a[0]:[e,t]=a,t||(t={}),t=g({},t),e&&!t.el&&(t.el=e),t.el&&d(t.el).length>1){const e=[];return d(t.el).each((s=>{const a=g({},t,{el:s});e.push(new V(a))})),e}const r=this;r.__swiper__=!0,r.support=E(),r.device=C({userAgent:t.userAgent}),r.browser=T(),r.eventsListeners={},r.eventsAnyListeners=[],r.modules=[...r.__modules__],t.modules&&Array.isArray(t.modules)&&r.modules.push(...t.modules);const n={};r.modules.forEach((e=>{e({swiper:r,extendParams:q(t,n),on:r.on.bind(r),once:r.once.bind(r),off:r.off.bind(r),emit:r.emit.bind(r)})}));const l=g({},W,n);return r.params=g({},l,_,t),r.originalParams=g({},r.params),r.passedParams=g({},t),r.params&&r.params.on&&Object.keys(r.params.on).forEach((e=>{r.on(e,r.params.on[e])})),r.params&&r.params.onAny&&r.onAny(r.params.onAny),r.$=d,Object.assign(r,{enabled:r.params.enabled,el:e,classNames:[],slides:d(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===r.params.direction,isVertical:()=>"vertical"===r.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:r.params.allowSlideNext,allowSlidePrev:r.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","pointerup"];return r.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},r.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},r.support.touch||!r.params.simulateTouch?r.touchEventsTouch:r.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:r.params.focusableElements,lastClickTime:u(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.emit("_swiper"),r.params.init&&r.init(),r}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.each((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;s<a.length;s+=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e<a.length;e+=1){(t?i[e]+r[e]-i[l]<n:i[e]-i[l]<n)&&(o+=1)}else for(let e=l-1;e>=0;e-=1){i[l]-i[e]<n&&(o+=1)}return o}update(){const e=this;if(!e||e.destroyed)return;const{snapGrid:t,params:s}=e;function a(){const t=e.rtlTranslate?-1*e.translate:e.translate,s=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(s),e.updateActiveIndex(),e.updateSlidesClasses()}let i;s.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode&&e.params.freeMode.enabled?(a(),e.params.autoHeight&&e.updateAutoHeight()):(i=("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.$el.removeClass(`${s.params.containerModifierClass}${a}`).addClass(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.each((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.$el.addClass(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.$el.removeClass(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;const s=d(e||t.params.el);if(!(e=s[0]))return!1;e.swiper=t;const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>{if(e&&e.shadowRoot&&e.shadowRoot.querySelector){const t=d(e.shadowRoot.querySelector(i()));return t.children=e=>s.children(e),t}return s.children?s.children(i()):d(s).children(i())})();if(0===r.length&&t.params.createElements){const e=a().createElement("div");r=d(e),e.className=t.params.wrapperClass,s.append(e),s.children(`.${t.params.slideClass}`).each((e=>{r.append(e)}))}return Object.assign(t,{$el:s,el:e,$wrapperEl:r,wrapperEl:r[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction")),wrongRTL:"-webkit-box"===r.css("display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,$el:i,$wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.$el[0].swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){g(_,e)}static get extendedDefaults(){return _}static get defaults(){return W}static installModule(e){V.prototype.__modules__||(V.prototype.__modules__=[]);const t=V.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>V.installModule(e))),V):(V.installModule(e),V)}}function F(e,t,s,i){const r=a();return e.params.createElements&&Object.keys(i).forEach((a=>{if(!s[a]&&!0===s.auto){let n=e.$el.children(`.${i[a]}`)[0];n||(n=r.createElement("div"),n.className=i[a],e.$el.append(n)),s[a]=n,t[a]=n}})),s}function U(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function K(e){const t=this,{$wrapperEl:s,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&s.append(e[t]);else s.append(e);a.loop&&t.loopCreate(),a.observer||t.update()}function Z(e){const t=this,{params:s,$wrapperEl:a,activeIndex:i}=t;s.loop&&t.loopDestroy();let r=i+1;if("object"==typeof e&&"length"in e){for(let t=0;t<e.length;t+=1)e[t]&&a.prepend(e[t]);r=i+e.length}else a.prepend(e);s.loop&&t.loopCreate(),s.observer||t.update(),t.slideTo(r,0,!1)}function Q(e,t){const s=this,{$wrapperEl:a,params:i,activeIndex:r}=s;let n=r;i.loop&&(n-=s.loopedSlides,s.loopDestroy(),s.slides=a.children(`.${i.slideClass}`));const l=s.slides.length;if(e<=0)return void s.prependSlide(t);if(e>=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides.eq(t);e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;e<t.length;e+=1)t[e]&&a.append(t[e]);o=n>e?n+t.length:n}else a.append(t);for(let e=0;e<d.length;e+=1)a.append(d[e]);i.loop&&s.loopCreate(),i.observer||s.update(),i.loop?s.slideTo(o+s.loopedSlides,0,!1):s.slideTo(o,0,!1)}function J(e){const t=this,{params:s,$wrapperEl:a,activeIndex:i}=t;let r=i;s.loop&&(r-=t.loopedSlides,t.loopDestroy(),t.slides=a.children(`.${s.slideClass}`));let n,l=r;if("object"==typeof e&&"length"in e){for(let s=0;s<e.length;s+=1)n=e[s],t.slides[n]&&t.slides.eq(n).remove(),n<l&&(l-=1);l=Math.max(l,0)}else n=e,t.slides[n]&&t.slides.eq(n).remove(),n<l&&(l-=1),l=Math.max(l,0);s.loop&&t.loopCreate(),s.observer||t.update(),s.loop?t.slideTo(l+t.loopedSlides,0,!1):t.slideTo(l,0,!1)}function ee(){const e=this,t=[];for(let s=0;s<e.slides.length;s+=1)t.push(s);e.removeSlide(t)}function te(e){const{effect:t,swiper:s,on:a,setTranslate:i,setTransition:r,overwriteParams:n,perspective:l,recreateShadows:o,getEffectParams:d}=e;let c;a("beforeInit",(()=>{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.each((e=>{s.$(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").remove()})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function se(e,t){return e.transformEl?t.find(e.transformEl).css({"backface-visibility":"hidden","-webkit-backface-visibility":"hidden"}):t}function ae(e){let{swiper:t,duration:s,transformEl:a,allSlides:i}=e;const{slides:r,activeIndex:n,$wrapperEl:l}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a?r.find(a):r:a?r.eq(n).find(a):r.eq(n),e.transitionEnd((()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=["webkitTransitionEnd","transitionend"];for(let t=0;t<e.length;t+=1)l.trigger(e[t])}))}}function ie(e,t,s){const a="swiper-slide-shadow"+(s?`-${s}`:""),i=e.transformEl?t.find(e.transformEl):t;let r=i.children(`.${a}`);return r.length||(r=d(`<div class="swiper-slide-shadow${s?`-${s}`:""}"></div>`),i.append(r)),r}Object.keys(j).forEach((e=>{Object.keys(j[e]).forEach((t=>{V.prototype[t]=j[e][t]}))})),V.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,t){void 0===t&&(t={});const s=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(1===e.length)return void i("observerUpdate",e[0]);const t=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(t):l.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),n.push(s)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=t.$el.parents();for(let t=0;t<e.length;t+=1)o(e[t])}o(t.$el[0],{childList:t.params.observeSlideChildren}),o(t.$wrapperEl[0],{attributes:!1})}})),a("destroy",(()=>{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const re=[function(e){let t,{swiper:s,extendParams:a,on:i,emit:r}=e;function n(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];const i=a.renderSlide?d(a.renderSlide.call(s,e,t)):d(`<div class="${s.params.slideClass}" data-swiper-slide-index="${t}">${e}</div>`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(s.virtual.cache[t]=i),i}function l(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:d,to:c,slides:p,slidesGrid:u,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const m=s.activeIndex||0;let f,g,v;f=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(g=Math.floor(t/2)+a+o,v=Math.floor(t/2)+a+l):(g=t+(a-1)+o,v=a+l);const w=Math.max((m||0)-v,0),b=Math.min((m||0)+g,p.length-1),x=(s.slidesGrid[w]||0)-(s.slidesGrid[0]||0);function y(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),s.lazy&&s.params.lazy.enabled&&s.lazy.load(),r("virtualUpdate")}if(Object.assign(s.virtual,{from:w,to:b,offset:x,slidesGrid:s.slidesGrid}),d===w&&c===b&&!e)return s.slidesGrid!==u&&x!==h&&s.slides.css(f,`${x}px`),s.updateProgress(),void r("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:w,to:b,slides:function(){const e=[];for(let t=w;t<=b;t+=1)e.push(p[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?y():r("virtualUpdate"));const E=[],C=[];if(e)s.$wrapperEl.find(`.${s.params.slideClass}`).remove();else for(let e=d;e<=c;e+=1)(e<w||e>b)&&s.$wrapperEl.find(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t<p.length;t+=1)t>=w&&t<=b&&(void 0===c||e?C.push(t):(t>c&&C.push(t),t<d&&E.push(t)));C.forEach((e=>{s.$wrapperEl.append(n(p[e],e))})),E.sort(((e,t)=>t-e)).forEach((e=>{s.$wrapperEl.prepend(n(p[e],e))})),s.$wrapperEl.children(".swiper-slide").css(f,`${x}px`),y()}a({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},i("beforeInit",(()=>{s.params.virtual.enabled&&(s.virtual.slides=s.params.virtual.slides,s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||l())})),i("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{l()}),100)):l())})),i("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&v(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&s.virtual.slides.push(e[t]);else s.virtual.slides.push(e);l(!0)},prependSlide:function(e){const t=s.activeIndex;let a=t+1,i=1;if(Array.isArray(e)){for(let t=0;t<e.length;t+=1)e[t]&&s.virtual.slides.unshift(e[t]);a=t+e.length,i=e.length}else s.virtual.slides.unshift(e);if(s.params.virtual.cache){const e=s.virtual.cache,t={};Object.keys(e).forEach((s=>{const a=e[s],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}l(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]<t&&(t-=1),t=Math.max(t,0);else s.virtual.slides.splice(e,1),s.params.virtual.cache&&delete s.virtual.cache[e],e<t&&(t-=1),t=Math.max(t,0);l(!0),s.slideTo(t,0)},removeAllSlides:function(){s.virtual.slides=[],s.params.virtual.cache&&(s.virtual.cache={}),l(!0),s.slideTo(0,0)},update:l})},function(e){let{swiper:t,extendParams:s,on:i,emit:n}=e;const l=a(),o=r();function c(e){if(!t.enabled)return;const{rtlTranslate:s}=t;let a=e;a.originalEvent&&(a=a.originalEvent);const i=a.keyCode||a.charCode,r=t.params.keyboard.pageUpDown,d=r&&33===i,c=r&&34===i,p=37===i,u=39===i,h=38===i,m=40===i;if(!t.allowSlideNext&&(t.isHorizontal()&&u||t.isVertical()&&m||c))return!1;if(!t.allowSlidePrev&&(t.isHorizontal()&&p||t.isVertical()&&h||d))return!1;if(!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey||l.activeElement&&l.activeElement.nodeName&&("input"===l.activeElement.nodeName.toLowerCase()||"textarea"===l.activeElement.nodeName.toLowerCase()))){if(t.params.keyboard.onlyInViewport&&(d||c||p||u||h||m)){let e=!1;if(t.$el.parents(`.${t.params.slideClass}`).length>0&&0===t.$el.parents(`.${t.params.slideActiveClass}`).length)return;const a=t.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=o.innerWidth,l=o.innerHeight,d=t.$el.offset();s&&(d.left-=t.$el[0].scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t<c.length;t+=1){const s=c[t];if(s[0]>=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&t.slideNext(),(d||h)&&t.slidePrev()),n("keyPress",i)}}function p(){t.keyboard.enabled||(d(l).on("keydown",c),t.keyboard.enabled=!0)}function u(){t.keyboard.enabled&&(d(l).off("keydown",c),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&p()})),i("destroy",(()=>{t.keyboard.enabled&&u()})),Object.assign(t.keyboard,{enable:p,disable:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let l;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let o,c=u();const h=[];function m(){t.enabled&&(t.mouseEntered=!0)}function f(){t.enabled&&(t.mouseEntered=!1)}function g(e){return!(t.params.mousewheel.thresholdDelta&&e.delta<t.params.mousewheel.thresholdDelta)&&(!(t.params.mousewheel.thresholdTime&&u()-c<t.params.mousewheel.thresholdTime)&&(e.delta>=6&&u()-c<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),c=(new n.Date).getTime(),!1)))}function v(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.$el;if("container"!==t.params.mousewheel.eventsTarget&&(n=d(t.params.mousewheel.eventsTarget)),!t.mouseEntered&&!n[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let c=0;const m=t.rtlTranslate?-1:1,f=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(f.pixelX)>Math.abs(f.pixelY)))return!0;c=-f.pixelX*m}else{if(!(Math.abs(f.pixelY)>Math.abs(f.pixelX)))return!0;c=-f.pixelY}else c=Math.abs(f.pixelX)>Math.abs(f.pixelY)?-f.pixelX*m:-f.pixelY;if(0===c)return!0;r.invert&&(c=-c);let v=t.getTranslate()+c*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:u(),delta:Math.abs(c),direction:Math.sign(c)},a=o&&e.time<o.time+500&&e.delta<=o.delta&&e.direction===o.direction;if(!a){o=void 0,t.params.loop&&t.loopFix();let n=t.getTranslate()+c*r.sensitivity;const d=t.isBeginning,u=t.isEnd;if(n>=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!d&&t.isBeginning||!u&&t.isEnd)&&t.updateSlidesClasses(),t.params.freeMode.sticky){clearTimeout(l),l=void 0,h.length>=15&&h.shift();const s=h.length?h[h.length-1]:void 0,a=h[0];if(h.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))h.splice(0);else if(h.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=c>0?.8:.2;o=e,h.splice(0),l=p((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}l||(l=p((()=>{o=e,h.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),n===t.minTranslate()||n===t.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(c),direction:Math.sign(c),raw:e};h.length>=2&&h.shift();const a=h.length?h[h.length-1]:void 0;if(h.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&g(s):g(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function w(e){let s=t.$el;"container"!==t.params.mousewheel.eventsTarget&&(s=d(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",f),s[e]("wheel",v)}function b(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",v),!0):!t.mousewheel.enabled&&(w("on"),t.mousewheel.enabled=!0,!0)}function x(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,v),!0):!!t.mousewheel.enabled&&(w("off"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&x(),t.params.mousewheel.enabled&&b()})),a("destroy",(()=>{t.params.cssMode&&b(),t.mousewheel.enabled&&x()})),Object.assign(t.mousewheel,{enable:b,disable:x})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&(s=d(e),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.$el.find(e).length&&(s=t.$el.find(e))),s}function n(e,s){const a=t.params.navigation;e&&e.length>0&&(e[s?"addClass":"removeClass"](a.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=s),t.params.watchOverflow&&t.enabled&&e[t.isLocked?"addClass":"removeClass"](a.lockClass))}function l(){if(t.params.loop)return;const{$nextEl:e,$prevEl:s}=t.navigation;n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=F(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;const s=r(e.nextEl),a=r(e.prevEl);s&&s.length>0&&s.on("click",c),a&&a.length>0&&a.on("click",o),Object.assign(t.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),t.enabled||(s&&s.addClass(e.lockClass),a&&a.addClass(e.lockClass))}function u(){const{$nextEl:e,$prevEl:s}=t.navigation;e&&e.length&&(e.off("click",c),e.removeClass(t.params.navigation.disabledClass)),s&&s.length&&(s.off("click",o),s.removeClass(t.params.navigation.disabledClass))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?h():(p(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{const{$nextEl:e,$prevEl:s}=t.navigation;e&&e[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass),s&&s[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass)})),a("click",((e,s)=>{const{$nextEl:a,$prevEl:r}=t.navigation,n=s.target;if(t.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(a)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a?e=a.hasClass(t.params.navigation.hiddenClass):r&&(e=r.hasClass(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),a&&a.toggleClass(t.params.navigation.hiddenClass),r&&r.toggleClass(t.params.navigation.hiddenClass)}}));const h=()=>{t.$el.addClass(t.params.navigation.navigationDisabledClass),u()};Object.assign(t.navigation,{enable:()=>{t.$el.removeClass(t.params.navigation.navigationDisabledClass),p(),l()},disable:h,update:l,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,$el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||!t.pagination.$el||0===t.pagination.$el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;const a=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,r=t.pagination.$el;let p;const u=t.params.loop?Math.ceil((a-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(p=Math.ceil((t.activeIndex-t.loopedSlides)/t.params.slidesPerGroup),p>a-1-2*t.loopedSlides&&(p-=a-2*t.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==t.params.paginationType&&(p=u+p)):p=void 0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const a=t.pagination.bullets;let i,o,u;if(s.dynamicBullets&&(n=a.eq(0)[t.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(t.isHorizontal()?"width":"height",n*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==t.previousIndex&&(l+=p-(t.previousIndex-t.loopedSlides||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),i=Math.max(p-l,0),o=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(o+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),r.length>1)a.each((e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=o&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&c(t,"prev"),a===o&&c(t,"next"))}));else{const e=a.eq(p),r=e.index();if(e.addClass(s.bulletActiveClass),s.dynamicBullets){const e=a.eq(i),n=a.eq(o);for(let e=i;e<=o;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(t.params.loop)if(r>=a.length){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(`${s.bulletActiveClass}-main`);a.eq(a.length-s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else c(e,"prev"),c(n,"next");else c(e,"prev"),c(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),r=(n*i-n)/2-u*n,l=e?"right":"left";a.css(t.isHorizontal()?l:"top",`${r}px`)}}if("fraction"===s.type&&(r.find(U(s.currentClass)).text(s.formatFractionCurrent(p+1)),r.find(U(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let e;e=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,n=1;"horizontal"===e?i=a:n=a,r.find(U(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${n})`).transition(t.params.speed)}"custom"===s.type&&s.renderCustom?(r.html(s.renderCustom(t,p+1,u)),i("paginationRender",r[0])):i("paginationUpdate",r[0]),t.params.watchOverflow&&t.enabled&&r[t.isLocked?"addClass":"removeClass"](s.lockClass)}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,a=t.pagination.$el;let r="";if("bullets"===e.type){let i=t.params.loop?Math.ceil((s-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&!t.params.loop&&i>s&&(i=s);for(let s=0;s<i;s+=1)e.renderBullet?r+=e.renderBullet.call(t,s,e.bulletClass):r+=`<${e.bulletElement} class="${e.bulletClass}"></${e.bulletElement}>`;a.html(r),t.pagination.bullets=a.find(U(e.bulletClass))}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):`<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`,a.html(r)),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):`<span class="${e.progressbarFillClass}"></span>`,a.html(r)),"custom"!==e.type&&i("paginationRender",t.pagination.$el[0])}function h(){t.params.pagination=F(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s=d(e.el);0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&s.length>1&&(s=t.$el.find(e.el),s.length>1&&(s=s.filter((e=>d(e).parents(".swiper")[0]===t.el)))),"bullets"===e.type&&e.clickable&&s.addClass(e.clickableClass),s.addClass(e.modifierClass+e.type),s.addClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.addClass(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.addClass(e.progressbarOppositeClass),e.clickable&&s.on("click",U(e.bulletClass),(function(e){e.preventDefault();let s=d(this).index()*t.params.slidesPerGroup;t.params.loop&&(s+=t.loopedSlides),t.slideTo(s)})),Object.assign(t.pagination,{$el:s,el:s[0]}),t.enabled||s.addClass(e.lockClass))}function m(){const e=t.params.pagination;if(o())return;const s=t.pagination.$el;s.removeClass(e.hiddenClass),s.removeClass(e.modifierClass+e.type),s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.pagination.bullets&&t.pagination.bullets.removeClass&&t.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&s.off("click",U(e.bulletClass))}a("init",(()=>{!1===t.params.pagination.enabled?f():(h(),u(),p())})),a("activeIndexChange",(()=>{(t.params.loop||void 0===t.snapIndex)&&p()})),a("snapIndexChange",(()=>{t.params.loop||p()})),a("slidesLengthChange",(()=>{t.params.loop&&(u(),p())})),a("snapGridLengthChange",(()=>{t.params.loop||(u(),p())})),a("destroy",(()=>{m()})),a("enable disable",(()=>{const{$el:e}=t.pagination;e&&e[t.enabled?"removeClass":"addClass"](t.params.pagination.lockClass)})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,{$el:r}=t.pagination;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!d(a).hasClass(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r.hasClass(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.toggleClass(t.params.pagination.hiddenClass)}}));const f=()=>{t.$el.addClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.addClass(t.params.pagination.paginationDisabledClass),m()};Object.assign(t.pagination,{enable:()=>{t.$el.removeClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),h(),u(),p()},disable:f,render:u,update:p,init:h,destroy:m})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=a();let l,o,c,u,h=!1,m=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s,progress:a}=t,{$dragEl:i,$el:r}=e,n=t.params.scrollbar;let l=o,d=(c-o)*a;s?(d=-d,d>0?(l=o-d,d=0):-d+o>c&&(l=c+d)):d<0?(l=o+d,d=0):d+o>c&&(l=c-d),t.isHorizontal()?(i.transform(`translate3d(${d}px, 0, 0)`),i[0].style.width=`${l}px`):(i.transform(`translate3d(0px, ${d}px, 0)`),i[0].style.height=`${l}px`),n.hide&&(clearTimeout(m),r[0].style.opacity=1,m=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function v(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{$dragEl:s,$el:a}=e;s[0].style.width="",s[0].style.height="",c=t.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),o="auto"===t.params.scrollbar.dragSize?c*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s[0].style.width=`${o}px`:s[0].style.height=`${o}px`,a[0].style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a[0].style.opacity=0),t.params.watchOverflow&&t.enabled&&e.$el[t.isLocked?"addClass":"removeClass"](t.params.scrollbar.lockClass)}function w(e){return t.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY}function b(e){const{scrollbar:s,rtlTranslate:a}=t,{$el:i}=s;let r;r=(w(e)-i.offset()[t.isHorizontal()?"left":"top"]-(null!==l?l:o/2))/(c-o),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:o}=a;h=!0,l=e.target===o[0]||e.target===o?w(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),o.transition(100),b(e),clearTimeout(f),n.transition(0),s.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),r("scrollbarDragStart",e)}function y(e){const{scrollbar:s,$wrapperEl:a}=t,{$el:i,$dragEl:n}=s;h&&(e.preventDefault?e.preventDefault():e.returnValue=!1,b(e),a.transition(0),i.transition(0),n.transition(0),r("scrollbarDragMove",e))}function E(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;h&&(h=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),s.hide&&(clearTimeout(f),f=p((()=>{n.css("opacity",0),n.transition(400)}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:r,support:l}=t,o=s.$el;if(!o)return;const d=o[0],c=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};if(!d)return;const u="on"===e?"addEventListener":"removeEventListener";l.touch?(d[u](a.start,x,c),d[u](a.move,y,c),d[u](a.end,E,p)):(d[u](i.start,x,c),n[u](i.move,y,c),n[u](i.end,E,p))}function T(){const{scrollbar:e,$el:s}=t;t.params.scrollbar=F(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i=d(a.el);t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el)),i.addClass(t.isHorizontal()?a.horizontalClass:a.verticalClass);let r=i.find(`.${t.params.scrollbar.dragClass}`);0===r.length&&(r=d(`<div class="${t.params.scrollbar.dragClass}"></div>`),i.append(r)),Object.assign(e,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)}function $(){const e=t.params.scrollbar,s=t.scrollbar.$el;s&&s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?S():(T(),v(),g())})),i("update resize observerUpdate lock unlock",(()=>{v()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)}(s)})),i("enable disable",(()=>{const{$el:e}=t.scrollbar;e&&e[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{$()}));const S=()=>{t.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),$()};Object.assign(t.scrollbar,{enable:()=>{t.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),T(),v(),g()},disable:S,updateSize:v,setTranslate:g,init:T,destroy:$})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=d(e),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const c=i.attr("data-swiper-parallax-scale"),p=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):t.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=p){const e=p-(p-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==c)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=c-(c-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},r=()=>{const{$el:e,slides:s,progress:a,snapGrid:r}=t;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,a)})),s.each(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(e).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{$el:s}=t;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t=>{const s=d(t);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||e;0===e&&(a=0),s.transition(a)}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,o,c,p=1,u=!1;const m={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},f={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let v=1;function w(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function b(e){const s=t.support,a=t.params.zoom;if(o=!1,c=!1,!s.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;o=!0,m.scaleStart=w(e)}m.$slideEl&&m.$slideEl.length||(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`),0===m.$slideEl.length&&(m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`),m.maxRatio=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==m.$imageWrapEl.length)?(m.$imageEl&&m.$imageEl.transition(0),u=!0):m.$imageEl=void 0}function x(e){const s=t.support,a=t.params.zoom,i=t.zoom;if(!s.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c=!0,m.scaleMove=w(e)}m.$imageEl&&0!==m.$imageEl.length?(s.gestures?i.scale=e.scale*p:i.scale=m.scaleMove/m.scaleStart*p,i.scale>m.maxRatio&&(i.scale=m.maxRatio-1+(i.scale-m.maxRatio+1)**.5),i.scale<a.minRatio&&(i.scale=a.minRatio+1-(a.minRatio-i.scale+1)**.5),m.$imageEl.transform(`translate3d(0,0,0) scale(${i.scale})`)):"gesturechange"===e.type&&b(e)}function y(e){const s=t.device,a=t.support,i=t.params.zoom,r=t.zoom;if(!a.gestures){if(!o||!c)return;if("touchend"!==e.type||"touchend"===e.type&&e.changedTouches.length<2&&!s.android)return;o=!1,c=!1}m.$imageEl&&0!==m.$imageEl.length&&(r.scale=Math.max(Math.min(r.scale,m.maxRatio),i.minRatio),m.$imageEl.transition(t.params.speed).transform(`translate3d(0,0,0) scale(${r.scale})`),p=r.scale,u=!1,1===r.scale&&(m.$slideEl=void 0))}function E(e){const s=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(t.allowClick=!1,!f.isTouched||!m.$slideEl)return;f.isMoved||(f.width=m.$imageEl[0].offsetWidth,f.height=m.$imageEl[0].offsetHeight,f.startX=h(m.$imageWrapEl[0],"x")||0,f.startY=h(m.$imageWrapEl[0],"y")||0,m.slideWidth=m.$slideEl[0].offsetWidth,m.slideHeight=m.$slideEl[0].offsetHeight,m.$imageWrapEl.transition(0));const a=f.width*s.scale,i=f.height*s.scale;if(!(a<m.slideWidth&&i<m.slideHeight)){if(f.minX=Math.min(m.slideWidth/2-a/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-i/2,0),f.maxY=-f.minY,f.touchesCurrent.x="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesCurrent.y="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,!f.isMoved&&!u){if(t.isHorizontal()&&(Math.floor(f.minX)===Math.floor(f.startX)&&f.touchesCurrent.x<f.touchesStart.x||Math.floor(f.maxX)===Math.floor(f.startX)&&f.touchesCurrent.x>f.touchesStart.x))return void(f.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(f.minY)===Math.floor(f.startY)&&f.touchesCurrent.y<f.touchesStart.y||Math.floor(f.maxY)===Math.floor(f.startY)&&f.touchesCurrent.y>f.touchesStart.y))return void(f.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),f.isMoved=!0,f.currentX=f.touchesCurrent.x-f.touchesStart.x+f.startX,f.currentY=f.touchesCurrent.y-f.touchesStart.y+f.startY,f.currentX<f.minX&&(f.currentX=f.minX+1-(f.minX-f.currentX+1)**.8),f.currentX>f.maxX&&(f.currentX=f.maxX-1+(f.currentX-f.maxX+1)**.8),f.currentY<f.minY&&(f.currentY=f.minY+1-(f.minY-f.currentY+1)**.8),f.currentY>f.maxY&&(f.currentY=f.maxY-1+(f.currentY-f.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=f.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=f.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(f.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(f.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(f.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(f.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=f.touchesCurrent.x,g.prevPositionY=f.touchesCurrent.y,g.prevTime=Date.now(),m.$imageWrapEl.transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}}function C(){const e=t.zoom;m.$slideEl&&t.previousIndex!==t.activeIndex&&(m.$imageEl&&m.$imageEl.transform("translate3d(0,0,0) scale(1)"),m.$imageWrapEl&&m.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,p=1,m.$slideEl=void 0,m.$imageEl=void 0,m.$imageWrapEl=void 0)}function T(e){const s=t.zoom,a=t.params.zoom;if(m.$slideEl||(e&&e.target&&(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`)),m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`)),!m.$imageEl||0===m.$imageEl.length||!m.$imageWrapEl||0===m.$imageWrapEl.length)return;let i,r,l,o,c,u,h,g,v,w,b,x,y,E,C,T,$,S;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===f.touchesStart.x&&e?(i="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(i=f.touchesStart.x,r=f.touchesStart.y),s.scale=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,p=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?($=m.$slideEl[0].offsetWidth,S=m.$slideEl[0].offsetHeight,l=m.$slideEl.offset().left+n.scrollX,o=m.$slideEl.offset().top+n.scrollY,c=l+$/2-i,u=o+S/2-r,v=m.$imageEl[0].offsetWidth,w=m.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min($/2-b/2,0),E=Math.min(S/2-x/2,0),C=-y,T=-E,h=c*s.scale,g=u*s.scale,h<y&&(h=y),h>C&&(h=C),g<E&&(g=E),g>T&&(g=T)):(h=0,g=0),m.$imageWrapEl.transition(300).transform(`translate3d(${h}px, ${g}px,0)`),m.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function $(){const e=t.zoom,s=t.params.zoom;m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex),m.$imageEl=m.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${s.containerClass}`)),m.$imageEl&&0!==m.$imageEl.length&&m.$imageWrapEl&&0!==m.$imageWrapEl.length&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,p=1,m.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),m.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),m.$slideEl.removeClass(`${s.zoomedSlideClass}`),m.$slideEl=void 0)}function S(e){const s=t.zoom;s.scale&&1!==s.scale?$():T(e)}function M(){const e=t.support;return{passiveListener:!("touchstart"!==t.touchEvents.start||!e.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!e.passiveListener||{passive:!1,capture:!0}}}function P(){return`.${t.params.slideClass}`}function k(e){const{passiveListener:s}=M(),a=P();t.$wrapperEl[e]("gesturestart",a,b,s),t.$wrapperEl[e]("gesturechange",a,x,s),t.$wrapperEl[e]("gestureend",a,y,s)}function z(){l||(l=!0,k("on"))}function L(){l&&(l=!1,k("off"))}function O(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const s=t.support,{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.on(t.touchEvents.start,z,a),t.$wrapperEl.on(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.on(t.touchEvents.start,r,b,a),t.$wrapperEl.on(t.touchEvents.move,r,x,i),t.$wrapperEl.on(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.on(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.on(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}function I(){const e=t.zoom;if(!e.enabled)return;const s=t.support;e.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.off(t.touchEvents.start,z,a),t.$wrapperEl.off(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.off(t.touchEvents.start,r,b,a),t.$wrapperEl.off(t.touchEvents.move,r,x,i),t.$wrapperEl.off(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.off(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.off(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.$imageEl?m.$imageEl[0]:void 0,s=m.$slideEl?m.$slideEl[0]:void 0;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&O()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;m.$imageEl&&0!==m.$imageEl.length&&(f.isTouched||(s.android&&e.cancelable&&e.preventDefault(),f.isTouched=!0,f.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(!f.isTouched||!f.isMoved)return f.isTouched=!1,void(f.isMoved=!1);f.isTouched=!1,f.isMoved=!1;let s=300,a=300;const i=g.x*s,r=f.currentX+i,n=g.y*a,l=f.currentY+n;0!==g.x&&(s=Math.abs((r-f.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-f.currentY)/g.y));const o=Math.max(s,a);f.currentX=r,f.currentY=l;const d=f.width*e.scale,c=f.height*e.scale;f.minX=Math.min(m.slideWidth/2-d/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-c/2,0),f.maxY=-f.minY,f.currentX=Math.max(Math.min(f.currentX,f.maxX),f.minX),f.currentY=Math.max(Math.min(f.currentY,f.maxY),f.minY),m.$imageWrapEl.transition(o).transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&S(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:O,disable:I,in:T,out:$,toggle:S})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),t.lazy={};let n=!1,l=!1;function o(e,s){void 0===s&&(s=!0);const a=t.params.lazy;if(void 0===e)return;if(0===t.slides.length)return;const r=t.virtual&&t.params.virtual.enabled?t.$wrapperEl.children(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`):t.slides.eq(e),n=r.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||n.push(r[0]),0!==n.length&&n.each((e=>{const n=d(e);n.addClass(a.loadingClass);const l=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");t.loadImage(n[0],c||l,p,u,!1,(()=>{if(null!=t&&t&&(!t||t.params)&&!t.destroyed){if(l?(n.css("background-image",`url("${l}")`),n.removeAttr("data-background")):(p&&(n.attr("srcset",p),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each((e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),c&&(n.attr("src",c),n.removeAttr("data-src"))),n.addClass(a.loadedClass).removeClass(a.loadingClass),r.find(`.${a.preloaderClass}`).remove(),t.params.loop&&s){const e=r.attr("data-swiper-slide-index");if(r.hasClass(t.params.slideDuplicateClass)){o(t.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${t.params.slideDuplicateClass})`).index(),!1)}else{o(t.$wrapperEl.children(`.${t.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`).index(),!1)}}i("lazyImageReady",r[0],n[0]),t.params.autoHeight&&t.updateAutoHeight()}})),i("lazyImageLoad",r[0],n[0])}))}function c(){const{$wrapperEl:e,params:s,slides:a,activeIndex:i}=t,r=t.virtual&&s.virtual.enabled,n=s.lazy;let c=s.slidesPerView;function p(t){if(r){if(e.children(`.${s.slideClass}[data-swiper-slide-index="${t}"]`).length)return!0}else if(a[t])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),l||(l=!0),t.params.watchSlidesProgress)e.children(`.${s.slideVisibleClass}`).each((e=>{o(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(c>1)for(let e=i;e<i+c;e+=1)p(e)&&o(e);else o(i);if(n.loadPrevNext)if(c>1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){const e=n.loadPrevNextAmount,t=Math.ceil(c),s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),0);for(let e=i+t;e<s;e+=1)p(e)&&o(e);for(let e=r;e<i;e+=1)p(e)&&o(e)}else{const t=e.children(`.${s.slideNextClass}`);t.length>0&&o(u(t));const a=e.children(`.${s.slidePrevClass}`);a.length>0&&o(u(a))}}function p(){const e=r();if(!t||t.destroyed)return;const s=t.params.lazy.scrollingElement?d(t.params.lazy.scrollingElement):d(e),a=s[0]===e,i=a?e.innerWidth:s[0].offsetWidth,l=a?e.innerHeight:s[0].offsetHeight,o=t.$el.offset(),{rtlTranslate:u}=t;let h=!1;u&&(o.left-=t.$el[0].scrollLeft);const m=[[o.left,o.top],[o.left+t.width,o.top],[o.left,o.top+t.height],[o.left+t.width,o.top+t.height]];for(let e=0;e<m.length;e+=1){const t=m[e];if(t[0]>=0&&t[0]<=i&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1};h?(c(),s.off("scroll",p,f)):n||(n=!0,s.on("scroll",p,f))}a("beforeInit",(()=>{t.params.lazy.enabled&&t.params.preloadImages&&(t.params.preloadImages=!1)})),a("init",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("scroll",(()=>{t.params.freeMode&&t.params.freeMode.enabled&&!t.params.freeMode.sticky&&c()})),a("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("transitionStart",(()=>{t.params.lazy.enabled&&(t.params.lazy.loadOnTransitionStart||!t.params.lazy.loadOnTransitionStart&&!l)&&(t.params.lazy.checkInView?p():c())})),a("transitionEnd",(()=>{t.params.lazy.enabled&&!t.params.lazy.loadOnTransitionStart&&(t.params.lazy.checkInView?p():c())})),a("slideChange",(()=>{const{lazy:e,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=t.params;e.enabled&&(s||a&&(i||0===r))&&c()})),a("destroy",(()=>{t.$el&&t.$el.find(`.${t.params.lazy.loadingClass}`).removeClass(t.params.lazy.loadingClass)})),Object.assign(t.lazy,{load:c,loadInSlide:o})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline||(t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid))}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e<a.length;e+=1)a[e]!==s&&a[e]instanceof l&&o(a[e]);else a instanceof l&&s!==a&&o(a)},setTransition:function(e,s){const a=t.constructor,i=t.controller.control;let r;function n(s){s.setTransition(e,t),0!==e&&(s.transitionStart(),s.params.autoHeight&&p((()=>{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===t.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r<i.length;r+=1)i[r]!==s&&i[r]instanceof a&&n(i[r]);else i instanceof a&&s!==i&&n(i)}})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null}}),t.a11y={clicked:!1};let i=null;function r(e){const t=i;0!==t.length&&(t.html(""),t.html(e))}function n(e){e.attr("tabIndex","0")}function l(e){e.attr("tabIndex","-1")}function o(e,t){e.attr("role",t)}function c(e,t){e.attr("aria-roledescription",t)}function p(e,t){e.attr("aria-label",t)}function u(e){e.attr("aria-disabled",!0)}function h(e){e.attr("aria-disabled",!1)}function m(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=d(e.target);t.navigation&&t.navigation.$nextEl&&a.is(t.navigation.$nextEl)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.$prevEl&&a.is(t.navigation.$prevEl)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.is(U(t.params.pagination.bulletClass))&&a[0].click()}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function g(){return f()&&t.params.pagination.clickable}const v=(e,t,s)=>{n(e),"BUTTON"!==e[0].tagName&&(o(e,"button"),e.on("keydown",m)),p(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)},w=()=>{t.a11y.clicked=!0},b=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},y=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(d(t.slides),e.itemRoleDescriptionMessage),e.slideRole&&o(d(t.slides),e.slideRole);const s=t.params.loop?t.slides.filter((e=>!e.classList.contains(t.params.slideDuplicateClass))).length:t.slides.length;e.slideLabelMessage&&t.slides.each(((a,i)=>{const r=d(a),n=t.params.loop?parseInt(r.attr("data-swiper-slide-index"),10):i;p(r,e.slideLabelMessage.replace(/\{\{index\}\}/,n+1).replace(/\{\{slidesLength\}\}/,s))}))},E=()=>{const e=t.params.a11y;t.$el.append(i);const s=t.$el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.$wrapperEl,r=e.id||a.attr("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const l=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var o;let d,u;o=r,a.attr("id",o),function(e,t){e.attr("aria-live",t)}(a,l),y(),t.navigation&&t.navigation.$nextEl&&(d=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(u=t.navigation.$prevEl),d&&d.length&&v(d,r,e.nextSlideMessage),u&&u.length&&v(u,r,e.prevSlideMessage),g()&&t.pagination.$el.on("keydown",U(t.params.pagination.bulletClass),m),t.$el.on("focus",x,!0),t.$el.on("pointerdown",w,!0),t.$el.on("pointerup",b,!0)};a("beforeInit",(()=>{i=d(`<span class="${t.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`)})),a("afterInit",(()=>{t.params.a11y.enabled&&E()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&y()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{$nextEl:e,$prevEl:s}=t.navigation;s&&s.length>0&&(t.isBeginning?(u(s),l(s)):(h(s),n(s))),e&&e.length>0&&(t.isEnd?(u(e),l(e)):(h(e),n(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.each((s=>{const a=d(s);t.params.pagination.clickable&&(n(a),t.params.pagination.renderBullet||(o(a,"button"),p(a,e.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))),a.is(`.${t.params.pagination.bulletActiveClass}`)?a.attr("aria-current","true"):a.removeAttr("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){let e,s;i&&i.length>0&&i.remove(),t.navigation&&t.navigation.$nextEl&&(e=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(s=t.navigation.$prevEl),e&&e.off("keydown",m),s&&s.off("keydown",m),g()&&t.pagination.$el.off("keydown",U(t.params.pagination.bulletClass),m),t.$el.off("focus",x,!0),t.$el.off("pointerdown",w,!0),t.$el.off("pointerup",b,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides.eq(s);let d=l(o.attr("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e}/${d}`}else n.pathname.includes(e)||(d=`${e}/${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i<r;i+=1){const r=t.slides.eq(i);if(l(r.attr("data-history"))===s&&!r.hasClass(t.params.slideDuplicateClass)){const s=r.index();t.slideTo(s,e,a)}}else t.slideTo(0,e,a)},p=()=>{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),(n.key||n.value)&&(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p))}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),c=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const p=()=>{i("hashChange");const e=o.location.hash.replace("#","");if(e!==t.slides.eq(t.activeIndex).attr("data-hash")){const s=t.$wrapperEl.children(`.${t.params.slideClass}[data-hash="${e}"]`).index();if(void 0===s)return;t.slideTo(s)}},u=()=>{if(l&&t.params.hashNavigation.enabled)if(t.params.hashNavigation.replaceState&&c.history&&c.history.replaceState)c.history.replaceState(null,null,`#${t.slides.eq(t.activeIndex).attr("data-hash")}`||""),i("hashSet");else{const e=t.slides.eq(t.activeIndex),s=e.attr("data-hash")||e.attr("data-history");o.location.hash=s||"",i("hashSet")}};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0;for(let a=0,i=t.slides.length;a<i;a+=1){const i=t.slides.eq(a);if((i.attr("data-hash")||i.attr("data-history"))===e&&!i.hasClass(t.params.slideDuplicateClass)){const e=i.index();t.slideTo(e,s,t.params.runCallbacksOnInit,!0)}}}t.params.hashNavigation.watchState&&d(c).on("hashchange",p)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d(c).off("hashchange",p)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&u()})),n("slideChange",(()=>{l&&t.params.cssMode&&u()}))},function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;function l(){if(!s.size)return s.autoplay.running=!1,void(s.autoplay.paused=!1);const e=s.slides.eq(s.activeIndex);let a=s.params.autoplay.delay;e.attr("data-swiper-autoplay")&&(a=e.attr("data-swiper-autoplay")||s.params.autoplay.delay),clearTimeout(t),t=p((()=>{let e;s.params.autoplay.reverseDirection?s.params.loop?(s.loopFix(),e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.isBeginning?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(s.slides.length-1,s.params.speed,!0,!0),n("autoplay")):(e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.params.loop?(s.loopFix(),e=s.slideNext(s.params.speed,!0,!0),n("autoplay")):s.isEnd?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(0,s.params.speed,!0,!0),n("autoplay")):(e=s.slideNext(s.params.speed,!0,!0),n("autoplay")),(s.params.cssMode&&s.autoplay.running||!1===e)&&l()}),a)}function o(){return void 0===t&&(!s.autoplay.running&&(s.autoplay.running=!0,n("autoplayStart"),l(),!0))}function d(){return!!s.autoplay.running&&(void 0!==t&&(t&&(clearTimeout(t),t=void 0),s.autoplay.running=!1,n("autoplayStop"),!0))}function c(e){s.autoplay.running&&(s.autoplay.paused||(t&&clearTimeout(t),s.autoplay.paused=!0,0!==e&&s.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].addEventListener(e,h)})):(s.autoplay.paused=!1,l())))}function u(){const e=a();"hidden"===e.visibilityState&&s.autoplay.running&&c(),"visible"===e.visibilityState&&s.autoplay.paused&&(l(),s.autoplay.paused=!1)}function h(e){s&&!s.destroyed&&s.$wrapperEl&&e.target===s.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)})),s.autoplay.paused=!1,s.autoplay.running?l():d())}function m(){s.params.autoplay.disableOnInteraction?d():(n("autoplayPause"),c()),["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)}))}function f(){s.params.autoplay.disableOnInteraction||(s.autoplay.paused=!1,n("autoplayResume"),l())}s.autoplay={running:!1,paused:!1},i({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),r("init",(()=>{if(s.params.autoplay.enabled){o();a().addEventListener("visibilitychange",u),s.params.autoplay.pauseOnMouseEnter&&(s.$el.on("mouseenter",m),s.$el.on("mouseleave",f))}})),r("beforeTransitionStart",((e,t,a)=>{s.autoplay.running&&(a||!s.params.autoplay.disableOnInteraction?s.autoplay.pause(t):d())})),r("sliderFirstMove",(()=>{s.autoplay.running&&(s.params.autoplay.disableOnInteraction?d():c())})),r("touchEnd",(()=>{s.params.cssMode&&s.autoplay.paused&&!s.params.autoplay.disableOnInteraction&&l()})),r("destroy",(()=>{s.$el.off("mouseenter",m),s.$el.off("mouseleave",f),s.autoplay.running&&d();a().removeEventListener("visibilitychange",u)})),Object.assign(s.autoplay,{pause:c,run:l,start:o,stop:d})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,r=!1;function n(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&d(a).hasClass(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=e.params.loop?parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10):s,t.params.loop){let e=t.activeIndex;t.slides.eq(e).hasClass(t.params.slideDuplicateClass)&&(t.loopFix(),t._clientLeft=t.$wrapperEl[0].clientLeft,e=t.activeIndex);const s=t.slides.eq(e).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=t.slides.eq(e).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-e<e-s?a:s}t.slideTo(i)}function l(){const{thumbs:e}=t.params;if(i)return!1;i=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1});else if(m(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),r=!0}return t.thumbs.swiper.$el.addClass(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",n),!0}function o(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.removeClass(r),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e<i;e+=1)s.$wrapperEl.children(`[data-swiper-slide-index="${t.realIndex+e}"]`).addClass(r);else for(let e=0;e<i;e+=1)s.slides.eq(t.realIndex+e).addClass(r);const n=t.params.thumbs.autoScrollOffset,l=n&&!s.params.loop;if(t.realIndex!==s.realIndex||l){let i,r,o=s.activeIndex;if(s.params.loop){s.slides.eq(o).hasClass(s.params.slideDuplicateClass)&&(s.loopFix(),s._clientLeft=s.$wrapperEl[0].clientLeft,o=s.activeIndex);const e=s.slides.eq(o).prevAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index(),a=s.slides.eq(o).nextAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index();i=void 0===e?a:void 0===a?e:a-o==o-e?s.params.slidesPerGroup>1?a:o:a-o<o-e?a:e,r=t.activeIndex>t.previousIndex?"next":"prev"}else i=t.realIndex,r=i>t.previousIndex?"next":"prev";l&&(i+="next"===r?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(i)<0&&(s.params.centeredSlides?i=i>o?i-Math.floor(a/2)+1:i+Math.floor(a/2)-1:i>o&&s.params.slidesPerGroup,s.slideTo(i,e?0:void 0))}}t.thumbs={swiper:null},a("beforeInit",(()=>{const{thumbs:e}=t.params;e&&e.swiper&&(l(),o(!0))})),a("slideChange update resize observerUpdate",(()=>{o()})),a("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),a("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&r&&e.destroy()})),Object.assign(t.thumbs,{init:l,update:o})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,$wrapperEl:n,rtlTranslate:l,snapGrid:o,touchEventsData:d}=t,c=u()-d.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length<o.length?t.slideTo(o.length-1):t.slideTo(t.slides.length-1);else{if(r.freeMode.momentum){if(d.velocities.length>1){const e=d.velocities.pop(),s=d.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)<r.freeMode.minimumVelocity&&(t.velocity=0),(i>150||u()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,d.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let c=t.translate+s;l&&(c=-c);let p,h=!1;const m=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(c<t.maxTranslate())r.freeMode.momentumBounce?(c+t.maxTranslate()<-m&&(c=t.maxTranslate()-m),p=t.maxTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.maxTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(c>t.minTranslate())r.freeMode.momentumBounce?(c-t.minTranslate()>m&&(c=t.minTranslate()+m),p=t.minTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t<o.length;t+=1)if(o[t]>-c){e=t;break}c=Math.abs(o[e]-c)<Math.abs(o[e-1]-c)||"next"===t.swipeDirection?o[e]:o[e-1],c=-c}if(f&&i("transitionEnd",(()=>{t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-c:c)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s<a?r.speed:s<2*a?1.5*r.speed:2.5*r.speed}}else if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode.momentumBounce&&h?(t.updateProgress(p),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&d.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(p),n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||c>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,h,m;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+s*o,u=h+m*t/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(e/c),m=e-h*c,(h>a||h===a&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(e/s),h=e-m*s);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.$wrapperEl.css({[a("width")]:`${i.virtualSize+r}px`}),n){s.splice(0,s.length);const e=[];for(let t=0;t<s.length;t+=1){let a=s[t];l&&(a=Math.floor(a)),s[t]<i.virtualSize+s[0]&&e.push(a)}s.push(...e)}}}},function(e){let{swiper:t}=e;Object.assign(t,{appendSlide:K.bind(t),prependSlide:Z.bind(t),addSlide:Q.bind(t),removeSlide:J.bind(t),removeAllSlides:ee.bind(t)})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({fadeEffect:{crossFade:!1,transformEl:null}}),te({effect:"fade",swiper:t,on:a,setTranslate:()=>{const{slides:e}=t,s=t.params.fadeEffect;for(let a=0;a<e.length;a+=1){const e=t.slides.eq(a);let i=-e[0].swiperSlideOffset;t.params.virtualTranslate||(i-=t.translate);let r=0;t.isHorizontal()||(r=i,i=0);const n=t.params.fadeEffect.crossFade?Math.max(1-Math.abs(e[0].progress),0):1+Math.min(Math.max(e[0].progress,-1),0);se(s,e).css({opacity:n}).transform(`translate3d(${i}px, ${r}px, 0px)`)}},setTransition:e=>{const{transformEl:s}=t.params.fadeEffect;(s?t.slides.find(s):t.slides).transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),i=s?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===a.length&&(a=d(`<div class="swiper-slide-shadow-${s?"left":"top"}"></div>`),e.append(a)),0===i.length&&(i=d(`<div class="swiper-slide-shadow-${s?"right":"bottom"}"></div>`),e.append(i)),a.length&&(a[0].style.opacity=Math.max(-t,0)),i.length&&(i[0].style.opacity=Math.max(t,0))};te({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{$el:e,$wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:c}=t,p=t.params.cubeEffect,u=t.isHorizontal(),h=t.virtual&&t.params.virtual.enabled;let m,f=0;p.shadow&&(u?(m=s.find(".swiper-cube-shadow"),0===m.length&&(m=d('<div class="swiper-cube-shadow"></div>'),s.append(m)),m.css({height:`${r}px`})):(m=e.find(".swiper-cube-shadow"),0===m.length&&(m=d('<div class="swiper-cube-shadow"></div>'),e.append(m))));for(let e=0;e<a.length;e+=1){const t=a.eq(e);let s=e;h&&(s=parseInt(t.attr("data-swiper-slide-index"),10));let r=90*s,n=Math.floor(r/360);l&&(r=-r,n=Math.floor(-r/360));const d=Math.max(Math.min(t[0].progress,1),-1);let c=0,m=0,g=0;s%4==0?(c=4*-n*o,g=0):(s-1)%4==0?(c=0,g=4*-n*o):(s-2)%4==0?(c=o+4*n*o,g=o):(s-3)%4==0&&(c=-o,g=3*o+4*o*n),l&&(c=-c),u||(m=c,c=0);const v=`rotateX(${u?0:-r}deg) rotateY(${u?r:0}deg) translate3d(${c}px, ${m}px, ${g}px)`;d<=1&&d>-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.transform(v),p.slideShadows&&i(t,d,u)}if(s.css({"-webkit-transform-origin":`50% 50% -${o/2}px`,"transform-origin":`50% 50% -${o/2}px`}),p.shadow)if(u)m.transform(`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;m.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`)}const g=c.isSafari||c.isWebView?-o/2:0;s.transform(`translate3d(0px,0,${g}px) rotateX(${t.isHorizontal()?0:f}deg) rotateY(${t.isHorizontal()?-f:0}deg)`),s[0].style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{$el:s,slides:a}=t;a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&s.find(".swiper-cube-shadow").transition(e)},recreateShadows:()=>{const e=t.isHorizontal();t.slides.each((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(d(t),s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===i.length&&(i=ie(a,e,t.isHorizontal()?"left":"top")),0===r.length&&(r=ie(a,e,t.isHorizontal()?"right":"bottom")),i.length&&(i[0].style.opacity=Math.max(-s,0)),r.length&&(r[0].style.opacity=Math.max(s,0))};te({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r<e.length;r+=1){const n=e.eq(r);let l=n[0].progress;t.params.flipEffect.limitRotation&&(l=Math.max(Math.min(n[0].progress,1),-1));const o=n[0].swiperSlideOffset;let d=-180*l,c=0,p=t.params.cssMode?-o-t.translate:-o,u=0;t.isHorizontal()?s&&(d=-d):(u=p,p=0,c=-d,d=0),n[0].style.zIndex=-Math.abs(Math.round(l))+e.length,a.slideShadows&&i(n,l,a);const h=`translate3d(${p}px, ${u}px, 0px) rotateX(${c}deg) rotateY(${d}deg)`;se(a,n).transform(h)}},setTransition:e=>{const{transformEl:s}=t.params.flipEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),ae({swiper:t,duration:e,transformEl:s})},recreateShadows:()=>{const e=t.params.flipEffect;t.slides.each((s=>{const a=d(s);let r=a[0].progress;t.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s.progress,1),-1)),i(a,r,e)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),te({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e<t;e+=1){const t=a.eq(e),s=i[e],l=(o-t[0].swiperSlideOffset-s/2)/s,p="function"==typeof r.modifier?r.modifier(l):l*r.modifier;let u=n?d*p:0,h=n?0:d*p,m=-c*Math.abs(p),f=r.stretch;"string"==typeof f&&-1!==f.indexOf("%")&&(f=parseFloat(r.stretch)/100*s);let g=n?0:f*p,v=n?f*p:0,w=1-(1-r.scale)*Math.abs(p);Math.abs(v)<.001&&(v=0),Math.abs(g)<.001&&(g=0),Math.abs(m)<.001&&(m=0),Math.abs(u)<.001&&(u=0),Math.abs(h)<.001&&(h=0),Math.abs(w)<.001&&(w=0);const b=`translate3d(${v}px,${g}px,${m}px)  rotateX(${h}deg) rotateY(${u}deg) scale(${w})`;if(se(r,t).transform(b),t[0].style.zIndex=1-Math.abs(Math.round(p)),r.slideShadows){let e=n?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),s=n?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=ie(r,t,n?"left":"top")),0===s.length&&(s=ie(r,t,n?"right":"bottom")),e.length&&(e[0].style.opacity=p>0?p:0),s.length&&(s[0].style.opacity=-p>0?-p:0)}}},setTransition:e=>{const{transformEl:s}=t.params.coverflowEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{transformEl:null,limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;te({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,$wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${e}px))`)}for(let s=0;s<e.length;s+=1){const a=e.eq(s),o=a[0].progress,d=Math.min(Math.max(a[0].progress,-r.limitProgress),r.limitProgress);let c=d;l||(c=Math.min(Math.max(a[0].originalProgress,-r.limitProgress),r.limitProgress));const p=a[0].swiperSlideOffset,u=[t.params.cssMode?-p-t.translate:-p,0,0],h=[0,0,0];let m=!1;t.isHorizontal()||(u[1]=u[0],u[0]=0);let f={translate:[0,0,0],rotate:[0,0,0],scale:1,opacity:1};d<0?(f=r.next,m=!0):d>0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),a[0].style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,x=`translate3d(${g}) ${v} ${w}`;if(m&&f.shadow||!m){let e=a.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=ie(r,a)),e.length){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e[0].style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const y=se(r,a);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:e=>{const{transformEl:s}=t.params.creativeEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,transformEl:null,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),te({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l<e.length;l+=1){const o=e.eq(l),d=o[0].progress,c=Math.min(Math.max(d,-4),4);let p=o[0].swiperSlideOffset;t.params.centeredSlides&&!t.params.cssMode&&t.$wrapperEl.transform(`translateX(${t.minTranslate()}px)`),t.params.centeredSlides&&t.params.cssMode&&(p-=e[0].swiperSlideOffset);let u=t.params.cssMode?-p-t.translate:-p,h=0;const m=-100*Math.abs(c);let f=1,g=-a.perSlideRotate*c,v=a.perSlideOffset-.75*Math.abs(c);const w=t.virtual&&t.params.virtual.enabled?t.virtual.from+l:l,b=(w===s||w===s-1)&&c>0&&c<1&&(r||t.params.cssMode)&&n<i,x=(w===s||w===s+1)&&c<0&&c>-1&&(r||t.params.cssMode)&&n>i;if(b||x){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=h;h=u,u=e}const y=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),E=`\n        translate3d(${u}, ${h}, ${m}px)\n        rotateZ(${a.rotate?g:0}deg)\n        scale(${y})\n      `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=ie(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+e.length;se(a,o).transform(E)}},setTransition:e=>{const{transformEl:s}=t.params.cardsEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return V.use(re),V}));
//# sourceMappingURL=swiper-bundle.min.js.map
/*!
  * Bootstrap v5.2.3 (https://getbootstrap.com/)
  * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
  */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},m=t=>{"function"==typeof t&&t()},_=(e,i,n=!0)=>{if(!n)return void m(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),m(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=N(t);return C.has(o)||(o=t),[n,s,o]}function D(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return j(s,{delegateTarget:r}),n.oneOff&&P.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return j(n,{delegateTarget:t}),i.oneOff&&P.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function S(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function I(t,e,i,n){const s=e[i]||{};for(const o of Object.keys(s))if(o.includes(n)){const n=s[o];S(t,e,i,n.callable,n.delegationSelector)}}function N(t){return t=t.replace(y,""),T[t]||t}const P={on(t,e,i,n){D(t,e,i,n,!1)},one(t,e,i,n){D(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))I(t,l,i,e.slice(1));for(const i of Object.keys(c)){const n=i.replace(w,"");if(!a||e.includes(n)){const e=c[i];S(t,l,r,e.callable,e.delegationSelector)}}}else{if(!Object.keys(c).length)return;S(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==N(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());let l=new Event(e,{bubbles:o,cancelable:!0});return l=j(l,i),a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function j(t,e){for(const[i,n]of Object.entries(e||{}))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}const M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};function $(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function W(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const B={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${W(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${W(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=$(t.dataset[n])}return e},getDataAttribute:(t,e)=>$(t.getAttribute(`data-bs-${W(e)}`))};class F{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?B.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?B.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const n of Object.keys(e)){const s=e[n],r=t[n],a=o(r)?"element":null==(i=r)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(a))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}var i}}class z extends F{constructor(t,e){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(e),H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),P.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return H.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.2.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const q=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;P.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class R extends z{static get NAME(){return"alert"}close(){if(P.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),P.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=R.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}q(R,"close"),g(R);const V='[data-bs-toggle="button"]';class K extends z{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=K.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}P.on(document,"click.bs.button.data-api",V,(t=>{t.preventDefault();const e=t.target.closest(V);K.getOrCreateInstance(e).toggle()})),g(K);const Q={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))}},X={endCallback:null,leftCallback:null,rightCallback:null},Y={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class U extends F{constructor(t,e){super(),this._element=t,t&&U.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return X}static get DefaultType(){return Y}static get NAME(){return"swipe"}dispose(){P.off(this._element,".bs.swipe")}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),m(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&m(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(P.on(this._element,"pointerdown.bs.swipe",(t=>this._start(t))),P.on(this._element,"pointerup.bs.swipe",(t=>this._end(t))),this._element.classList.add("pointer-event")):(P.on(this._element,"touchstart.bs.swipe",(t=>this._start(t))),P.on(this._element,"touchmove.bs.swipe",(t=>this._move(t))),P.on(this._element,"touchend.bs.swipe",(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const G="next",J="prev",Z="left",tt="right",et="slid.bs.carousel",it="carousel",nt="active",st={ArrowLeft:tt,ArrowRight:Z},ot={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},rt={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class at extends z{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=Q.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===it&&this.cycle()}static get Default(){return ot}static get DefaultType(){return rt}static get NAME(){return"carousel"}next(){this._slide(G)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(J)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?P.one(this._element,et,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void P.one(this._element,et,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?G:J;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&P.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(P.on(this._element,"mouseenter.bs.carousel",(()=>this.pause())),P.on(this._element,"mouseleave.bs.carousel",(()=>this._maybeEnableCycle()))),this._config.touch&&U.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of Q.find(".carousel-item img",this._element))P.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(Z)),rightCallback:()=>this._slide(this._directionToOrder(tt)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new U(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=st[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=Q.findOne(".active",this._indicatorsElement);e.classList.remove(nt),e.removeAttribute("aria-current");const i=Q.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(nt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===G,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>P.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r("slide.bs.carousel").defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(nt),i.classList.remove(nt,c,l),this._isSliding=!1,r(et)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return Q.findOne(".active.carousel-item",this._element)}_getItems(){return Q.find(".carousel-item",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===Z?J:G:t===Z?G:J}_orderToDirection(t){return p()?t===J?Z:tt:t===J?tt:Z}static jQueryInterface(t){return this.each((function(){const e=at.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}P.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",(function(t){const e=n(this);if(!e||!e.classList.contains(it))return;t.preventDefault();const i=at.getOrCreateInstance(e),s=this.getAttribute("data-bs-slide-to");return s?(i.to(s),void i._maybeEnableCycle()):"next"===B.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),P.on(window,"load.bs.carousel.data-api",(()=>{const t=Q.find('[data-bs-ride="carousel"]');for(const e of t)at.getOrCreateInstance(e)})),g(at);const lt="show",ct="collapse",ht="collapsing",dt='[data-bs-toggle="collapse"]',ut={parent:null,toggle:!0},ft={parent:"(null|element)",toggle:"boolean"};class pt extends z{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const n=Q.find(dt);for(const t of n){const e=i(t),n=Q.find(e).filter((t=>t===this._element));null!==e&&n.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return ut}static get DefaultType(){return ft}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>pt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(P.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[e]="",P.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(P.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);for(const t of this._triggerArray){const e=n(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),P.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(dt);for(const e of t){const t=n(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=Q.find(":scope .collapse .collapse",this._config.parent);return Q.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}P.on(document,"click.bs.collapse.data-api",dt,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this),n=Q.find(e);for(const t of n)pt.getOrCreateInstance(t,{toggle:!1}).toggle()})),g(pt);var gt="top",mt="bottom",_t="right",bt="left",vt="auto",yt=[gt,mt,_t,bt],wt="start",At="end",Et="clippingParents",Tt="viewport",Ct="popper",Ot="reference",xt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+At])}),[]),kt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+At])}),[]),Lt="beforeRead",Dt="read",St="afterRead",It="beforeMain",Nt="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",$t=[Lt,Dt,St,It,Nt,Pt,jt,Mt,Ht];function Wt(t){return t?(t.nodeName||"").toLowerCase():null}function Bt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Ft(t){return t instanceof Bt(t).Element||t instanceof Element}function zt(t){return t instanceof Bt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Bt(t).ShadowRoot||t instanceof ShadowRoot)}const Rt={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];zt(s)&&Wt(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});zt(n)&&Wt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Vt(t){return t.split("-")[0]}var Kt=Math.max,Qt=Math.min,Xt=Math.round;function Yt(){var t=navigator.userAgentData;return null!=t&&t.brands?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ut(){return!/^((?!chrome|android).)*safari/i.test(Yt())}function Gt(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&zt(t)&&(s=t.offsetWidth>0&&Xt(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Xt(n.height)/t.offsetHeight||1);var r=(Ft(t)?Bt(t):window).visualViewport,a=!Ut()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Jt(t){var e=Gt(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Zt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function te(t){return Bt(t).getComputedStyle(t)}function ee(t){return["table","td","th"].indexOf(Wt(t))>=0}function ie(t){return((Ft(t)?t.ownerDocument:t.document)||window.document).documentElement}function ne(t){return"html"===Wt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||ie(t)}function se(t){return zt(t)&&"fixed"!==te(t).position?t.offsetParent:null}function oe(t){for(var e=Bt(t),i=se(t);i&&ee(i)&&"static"===te(i).position;)i=se(i);return i&&("html"===Wt(i)||"body"===Wt(i)&&"static"===te(i).position)?e:i||function(t){var e=/firefox/i.test(Yt());if(/Trident/i.test(Yt())&&zt(t)&&"fixed"===te(t).position)return null;var i=ne(t);for(qt(i)&&(i=i.host);zt(i)&&["html","body"].indexOf(Wt(i))<0;){var n=te(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function re(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function ae(t,e,i){return Kt(t,Qt(e,i))}function le(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ce(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const he={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=Vt(i.placement),l=re(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return le("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ce(t,yt))}(s.padding,i),d=Jt(o),u="y"===l?gt:bt,f="y"===l?mt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],g=r[l]-i.rects.reference[l],m=oe(o),_=m?"y"===l?m.clientHeight||0:m.clientWidth||0:0,b=p/2-g/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=ae(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Zt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function de(t){return t.split("-")[1]}var ue={top:"auto",right:"auto",bottom:"auto",left:"auto"};function fe(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,g=void 0===p?0:p,m="function"==typeof h?h({x:f,y:g}):{x:f,y:g};f=m.x,g=m.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=bt,y=gt,w=window;if(c){var A=oe(i),E="clientHeight",T="clientWidth";A===Bt(i)&&"static"!==te(A=ie(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===gt||(s===bt||s===_t)&&o===At)&&(y=mt,g-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,g*=l?1:-1),s!==bt&&(s!==gt&&s!==mt||o!==At)||(v=_t,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&ue),x=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:Xt(e*n)/n||0,y:Xt(i*n)/n||0}}({x:f,y:g}):{x:f,y:g};return f=x.x,g=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+g+"px)":"translate3d("+f+"px, "+g+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?g+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const pe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:Vt(e.placement),variation:de(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,fe(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,fe(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ge={passive:!0};const me={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=Bt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ge)})),a&&l.addEventListener("resize",i.update,ge),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ge)})),a&&l.removeEventListener("resize",i.update,ge)}},data:{}};var _e={left:"right",right:"left",bottom:"top",top:"bottom"};function be(t){return t.replace(/left|right|bottom|top/g,(function(t){return _e[t]}))}var ve={start:"end",end:"start"};function ye(t){return t.replace(/start|end/g,(function(t){return ve[t]}))}function we(t){var e=Bt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ae(t){return Gt(ie(t)).left+we(t).scrollLeft}function Ee(t){var e=te(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Te(t){return["html","body","#document"].indexOf(Wt(t))>=0?t.ownerDocument.body:zt(t)&&Ee(t)?t:Te(ne(t))}function Ce(t,e){var i;void 0===e&&(e=[]);var n=Te(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Bt(n),r=s?[o].concat(o.visualViewport||[],Ee(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ce(ne(r)))}function Oe(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function xe(t,e,i){return e===Tt?Oe(function(t,e){var i=Bt(t),n=ie(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ut();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ae(t),y:l}}(t,i)):Ft(e)?function(t,e){var i=Gt(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Oe(function(t){var e,i=ie(t),n=we(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=Kt(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=Kt(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ae(t),l=-n.scrollTop;return"rtl"===te(s||i).direction&&(a+=Kt(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(ie(t)))}function ke(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Vt(s):null,r=s?de(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case gt:e={x:a,y:i.y-n.height};break;case mt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?re(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case At:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Et:a,c=i.rootBoundary,h=void 0===c?Tt:c,d=i.elementContext,u=void 0===d?Ct:d,f=i.altBoundary,p=void 0!==f&&f,g=i.padding,m=void 0===g?0:g,_=le("number"!=typeof m?m:ce(m,yt)),b=u===Ct?Ot:Ct,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Ce(ne(t)),i=["absolute","fixed"].indexOf(te(t).position)>=0&&zt(t)?oe(t):t;return Ft(i)?e.filter((function(t){return Ft(t)&&Zt(t,i)&&"body"!==Wt(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=xe(t,i,n);return e.top=Kt(s.top,e.top),e.right=Qt(s.right,e.right),e.bottom=Qt(s.bottom,e.bottom),e.left=Kt(s.left,e.left),e}),xe(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(Ft(y)?y:y.contextElement||ie(t.elements.popper),l,h,r),A=Gt(t.elements.reference),E=ke({reference:A,element:v,strategy:"absolute",placement:s}),T=Oe(Object.assign({},v,E)),C=u===Ct?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Ct&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[_t,mt].indexOf(t)>=0?1:-1,i=[gt,mt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function De(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?kt:l,h=de(n),d=h?a?xt:xt.filter((function(t){return de(t)===h})):yt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=Le(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[Vt(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const Se={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,g=i.allowedAutoPlacements,m=e.options.placement,_=Vt(m),b=l||(_!==m&&p?function(t){if(Vt(t)===vt)return[];var e=be(t);return[ye(t),e,ye(e)]}(m):[be(m)]),v=[m].concat(b).reduce((function(t,i){return t.concat(Vt(i)===vt?De(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:g}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=Vt(O),k=de(O)===wt,L=[gt,mt].indexOf(x)>=0,D=L?"width":"height",S=Le(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),I=L?k?_t:bt:k?mt:gt;y[D]>w[D]&&(I=be(I));var N=be(I),P=[];if(o&&P.push(S[x]<=0),a&&P.push(S[I]<=0,S[N]<=0),P.every((function(t){return t}))){T=O,E=!1;break}A.set(O,P)}if(E)for(var j=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Ie(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Ne(t){return[gt,_t,mt,bt].some((function(e){return t[e]>=0}))}const Pe={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=Le(e,{elementContext:"reference"}),a=Le(e,{altBoundary:!0}),l=Ie(r,n),c=Ie(a,s,o),h=Ne(l),d=Ne(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},je={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=kt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Vt(t),s=[bt,gt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[bt,_t].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},Me={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ke({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},He={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,g=void 0===p?0:p,m=Le(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=Vt(e.placement),b=de(e.placement),v=!b,y=re(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof g?g(Object.assign({},e.rects,{placement:e.placement})):g,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,D="y"===y?gt:bt,S="y"===y?mt:_t,I="y"===y?"height":"width",N=A[y],P=N+m[D],j=N-m[S],M=f?-T[I]/2:0,H=b===wt?E[I]:T[I],$=b===wt?-T[I]:-E[I],W=e.elements.arrow,B=f&&W?Jt(W):{width:0,height:0},F=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=F[D],q=F[S],R=ae(0,E[I],B[I]),V=v?E[I]/2-M-R-z-O.mainAxis:H-R-z-O.mainAxis,K=v?-E[I]/2+M+R+q+O.mainAxis:$+R+q+O.mainAxis,Q=e.elements.arrow&&oe(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=N+K-Y,G=ae(f?Qt(P,N+V-Y-X):P,N,f?Kt(j,U):j);A[y]=G,k[y]=G-N}if(a){var J,Z="x"===y?gt:bt,tt="x"===y?mt:_t,et=A[w],it="y"===w?"height":"width",nt=et+m[Z],st=et-m[tt],ot=-1!==[gt,bt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=ae(t,e,i);return n>i?i:n}(at,et,lt):ae(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function $e(t,e,i){void 0===i&&(i=!1);var n,s,o=zt(e),r=zt(e)&&function(t){var e=t.getBoundingClientRect(),i=Xt(e.width)/t.offsetWidth||1,n=Xt(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=ie(e),l=Gt(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==Wt(e)||Ee(a))&&(c=(n=e)!==Bt(n)&&zt(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:we(n)),zt(e)?((h=Gt(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ae(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function We(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Fe(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function ze(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?Be:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},Be,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:Ft(t)?Ce(t):t.contextElement?Ce(t.contextElement):[],popper:Ce(e)};var r,c,u=function(t){var e=We(t);return $t.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled})),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(Fe(e,i)){a.rects={reference:$e(e,oe(i),"fixed"===a.options.strategy),popper:Jt(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!Fe(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var qe=ze(),Re=ze({defaultModifiers:[me,Me,pe,Rt]}),Ve=ze({defaultModifiers:[me,Me,pe,Rt,je,Se,He,he,Pe]});const Ke=Object.freeze(Object.defineProperty({__proto__:null,popperGenerator:ze,detectOverflow:Le,createPopperBase:qe,createPopper:Ve,createPopperLite:Re,top:gt,bottom:mt,right:_t,left:bt,auto:vt,basePlacements:yt,start:wt,end:At,clippingParents:Et,viewport:Tt,popper:Ct,reference:Ot,variationPlacements:xt,placements:kt,beforeRead:Lt,read:Dt,afterRead:St,beforeMain:It,main:Nt,afterMain:Pt,beforeWrite:jt,write:Mt,afterWrite:Ht,modifierPhases:$t,applyStyles:Rt,arrow:he,computeStyles:pe,eventListeners:me,flip:Se,hide:Pe,offset:je,popperOffsets:Me,preventOverflow:He},Symbol.toStringTag,{value:"Module"})),Qe="dropdown",Xe="ArrowUp",Ye="ArrowDown",Ue="click.bs.dropdown.data-api",Ge="keydown.bs.dropdown.data-api",Je="show",Ze='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',ti=`${Ze}.show`,ei=".dropdown-menu",ii=p()?"top-end":"top-start",ni=p()?"top-start":"top-end",si=p()?"bottom-end":"bottom-start",oi=p()?"bottom-start":"bottom-end",ri=p()?"left-start":"right-start",ai=p()?"right-start":"left-start",li={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},ci={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class hi extends z{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=Q.next(this._element,ei)[0]||Q.prev(this._element,ei)[0]||Q.findOne(ei,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return li}static get DefaultType(){return ci}static get NAME(){return Qe}toggle(){return this._isShown()?this.hide():this.show()}show(){if(l(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!P.trigger(this._element,"show.bs.dropdown",t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))P.on(t,"mouseover",h);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),P.trigger(this._element,"shown.bs.dropdown",t)}}hide(){if(l(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!P.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))P.off(t,"mouseover",h);this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),B.removeDataAttribute(this._menu,"popper"),P.trigger(this._element,"hidden.bs.dropdown",t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Qe.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===Ke)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:o(this._config.reference)?t=r(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=Ve(t,this._menu,e)}_isShown(){return this._menu.classList.contains(Je)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(B.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=Q.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=Q.find(ti);for(const i of e){const e=hi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Xe,Ye].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ze)?this:Q.prev(this,Ze)[0]||Q.next(this,Ze)[0]||Q.findOne(Ze,t.delegateTarget.parentNode),o=hi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}P.on(document,Ge,Ze,hi.dataApiKeydownHandler),P.on(document,Ge,ei,hi.dataApiKeydownHandler),P.on(document,Ue,hi.clearMenus),P.on(document,"keyup.bs.dropdown.data-api",hi.clearMenus),P.on(document,Ue,Ze,(function(t){t.preventDefault(),hi.getOrCreateInstance(this).toggle()})),g(hi);const di=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",ui=".sticky-top",fi="padding-right",pi="margin-right";class gi{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,fi,(e=>e+t)),this._setElementAttributes(di,fi,(e=>e+t)),this._setElementAttributes(ui,pi,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,fi),this._resetElementAttributes(di,fi),this._resetElementAttributes(ui,pi)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&B.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=B.getDataAttribute(t,e);null!==i?(B.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of Q.find(t,this._element))e(i)}}const mi="show",_i="mousedown.bs.backdrop",bi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},vi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class yi extends F{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return bi}static get DefaultType(){return vi}static get NAME(){return"backdrop"}show(t){if(!this._config.isVisible)return void m(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(mi),this._emulateAnimation((()=>{m(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(mi),this._emulateAnimation((()=>{this.dispose(),m(t)}))):m(t)}dispose(){this._isAppended&&(P.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),P.on(t,_i,(()=>{m(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const wi=".bs.focustrap",Ai="backward",Ei={autofocus:!0,trapElement:null},Ti={autofocus:"boolean",trapElement:"element"};class Ci extends F{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Ei}static get DefaultType(){return Ti}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),P.off(document,wi),P.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),P.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,P.off(document,wi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=Q.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===Ai?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ai:"forward")}}const Oi="hidden.bs.modal",xi="show.bs.modal",ki="modal-open",Li="show",Di="modal-static",Si={backdrop:!0,focus:!0,keyboard:!0},Ii={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ni extends z{constructor(t,e){super(t,e),this._dialog=Q.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new gi,this._addEventListeners()}static get Default(){return Si}static get DefaultType(){return Ii}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||P.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(ki),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(P.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Li),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){for(const t of[window,this._dialog])P.off(t,".bs.modal");this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new yi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ci({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=Q.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(Li),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,P.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){P.on(this._element,"keydown.dismiss.bs.modal",(t=>{if("Escape"===t.key)return this._config.keyboard?(t.preventDefault(),void this.hide()):void this._triggerBackdropTransition()})),P.on(window,"resize.bs.modal",(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),P.on(this._element,"mousedown.dismiss.bs.modal",(t=>{P.one(this._element,"click.dismiss.bs.modal",(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(ki),this._resetAdjustments(),this._scrollBar.reset(),P.trigger(this._element,Oi)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(P.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Di)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Di),this._queueCallback((()=>{this._element.classList.remove(Di),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Ni.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}P.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),P.one(e,xi,(t=>{t.defaultPrevented||P.one(e,Oi,(()=>{a(this)&&this.focus()}))}));const i=Q.findOne(".modal.show");i&&Ni.getInstance(i).hide(),Ni.getOrCreateInstance(e).toggle(this)})),q(Ni),g(Ni);const Pi="show",ji="showing",Mi="hiding",Hi=".offcanvas.show",$i="hidePrevented.bs.offcanvas",Wi="hidden.bs.offcanvas",Bi={backdrop:!0,keyboard:!0,scroll:!1},Fi={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class zi extends z{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Bi}static get DefaultType(){return Fi}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||P.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new gi).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(ji),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Pi),this._element.classList.remove(ji),P.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(P.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Mi),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Pi,Mi),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new gi).reset(),P.trigger(this._element,Wi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new yi({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():P.trigger(this._element,$i)}:null})}_initializeFocusTrap(){return new Ci({trapElement:this._element})}_addEventListeners(){P.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():P.trigger(this._element,$i))}))}static jQueryInterface(t){return this.each((function(){const e=zi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}P.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;P.one(e,Wi,(()=>{a(this)&&this.focus()}));const i=Q.findOne(Hi);i&&i!==e&&zi.getInstance(i).hide(),zi.getOrCreateInstance(e).toggle(this)})),P.on(window,"load.bs.offcanvas.data-api",(()=>{for(const t of Q.find(Hi))zi.getOrCreateInstance(t).show()})),P.on(window,"resize.bs.offcanvas",(()=>{for(const t of Q.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&zi.getOrCreateInstance(t).hide()})),q(zi),g(zi);const qi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Ri=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Vi=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Ki=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!qi.has(i)||Boolean(Ri.test(t.nodeValue)||Vi.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Qi={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Xi={allowList:Qi,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},Yi={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ui={entry:"(string|element|function|null)",selector:"(string|element)"};class Gi extends F{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Ui)}_setContent(t,e,i){const n=Q.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Ki(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return"function"==typeof t?t(this):t}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Ji=new Set(["sanitize","allowList","sanitizeFn"]),Zi="fade",tn="show",en=".modal",nn="hide.bs.modal",sn="hover",on="focus",rn={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},an={allowList:Qi,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},ln={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cn extends z{constructor(t,e){if(void 0===Ke)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return an}static get DefaultType(){return ln}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),P.off(this._element.closest(en),nn,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=P.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),P.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(tn),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))P.on(t,"mouseover",h);this._queueCallback((()=>{P.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!P.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(tn),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))P.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),P.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Zi,tn),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(Zi),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Gi({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Zi)}_isShown(){return this.tip&&this.tip.classList.contains(tn)}_createPopper(t){const e="function"==typeof this._config.placement?this._config.placement.call(this,t,this._element):this._config.placement,i=rn[e.toUpperCase()];return Ve(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)P.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===sn?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===sn?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");P.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?on:sn]=!0,e._enter()})),P.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?on:sn]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},P.on(this._element.closest(en),nn,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=B.getDataAttributes(this._element);for(const t of Object.keys(e))Ji.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(cn);const hn={...cn.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},dn={...cn.DefaultType,content:"(null|string|element|function)"};class un extends cn{static get Default(){return hn}static get DefaultType(){return dn}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn="click.bs.scrollspy",pn="active",gn="[href]",mn={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},_n={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class bn extends z{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return mn}static get DefaultType(){return _n}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(P.off(this._config.target,fn),P.on(this._config.target,fn,gn,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=Q.find(gn,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=Q.findOne(e.hash,this._element);a(t)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(pn),this._activateParents(t),P.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))Q.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(pn);else for(const e of Q.parents(t,".nav, .list-group"))for(const t of Q.prev(e,".nav-link, .nav-item > .nav-link, .list-group-item"))t.classList.add(pn)}_clearActiveClass(t){t.classList.remove(pn);const e=Q.find("[href].active",t);for(const t of e)t.classList.remove(pn)}static jQueryInterface(t){return this.each((function(){const e=bn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(window,"load.bs.scrollspy.data-api",(()=>{for(const t of Q.find('[data-bs-spy="scroll"]'))bn.getOrCreateInstance(t)})),g(bn);const vn="ArrowLeft",yn="ArrowRight",wn="ArrowUp",An="ArrowDown",En="active",Tn="fade",Cn="show",On='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',xn=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${On}`;class kn extends z{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),P.on(this._element,"keydown.bs.tab",(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?P.trigger(e,"hide.bs.tab",{relatedTarget:t}):null;P.trigger(t,"show.bs.tab",{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(En),this._activate(n(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),P.trigger(t,"shown.bs.tab",{relatedTarget:e})):t.classList.add(Cn)}),t,t.classList.contains(Tn)))}_deactivate(t,e){t&&(t.classList.remove(En),t.blur(),this._deactivate(n(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),P.trigger(t,"hidden.bs.tab",{relatedTarget:e})):t.classList.remove(Cn)}),t,t.classList.contains(Tn)))}_keydown(t){if(![vn,yn,wn,An].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[yn,An].includes(t.key),i=b(this._getChildren().filter((t=>!l(t))),t.target,e,!0);i&&(i.focus({preventScroll:!0}),kn.getOrCreateInstance(i).show())}_getChildren(){return Q.find(xn,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=n(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`#${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=Q.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",En),n(".dropdown-menu",Cn),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(En)}_getInnerElement(t){return t.matches(xn)?t:Q.findOne(xn,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=kn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(document,"click.bs.tab",On,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||kn.getOrCreateInstance(this).show()})),P.on(window,"load.bs.tab",(()=>{for(const t of Q.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]'))kn.getOrCreateInstance(t)})),g(kn);const Ln="hide",Dn="show",Sn="showing",In={animation:"boolean",autohide:"boolean",delay:"number"},Nn={animation:!0,autohide:!0,delay:5e3};class Pn extends z{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Nn}static get DefaultType(){return In}static get NAME(){return"toast"}show(){P.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Ln),d(this._element),this._element.classList.add(Dn,Sn),this._queueCallback((()=>{this._element.classList.remove(Sn),P.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(P.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(Sn),this._queueCallback((()=>{this._element.classList.add(Ln),this._element.classList.remove(Sn,Dn),P.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(Dn),super.dispose()}isShown(){return this._element.classList.contains(Dn)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){P.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),P.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),P.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),P.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Pn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return q(Pn),g(Pn),{Alert:R,Button:K,Carousel:at,Collapse:pt,Dropdown:hi,Modal:Ni,Offcanvas:zi,Popover:un,ScrollSpy:bn,Tab:kn,Toast:Pn,Tooltip:cn}}));
//# sourceMappingURL=bootstrap.bundle.min.js.map
