/**
 * @license
 * Copyright (c) 2018 amCharts (Antanas Marcelionis, Martynas Majeris)
 *
 * This sofware is provided under multiple licenses. Please see below for
 * links to appropriate usage.
 *
 * Free amCharts linkware license. Details and conditions:
 * https://github.com/amcharts/amcharts4/blob/master/LICENSE
 *
 * One of the amCharts commercial licenses. Details and pricing:
 * https://www.amcharts.com/online-store/
 * https://www.amcharts.com/online-store/licenses-explained/
 *
 * If in doubt, contact amCharts at contact@amcharts.com
 *
 * PLEASE DO NOT REMOVE THIS COPYRIGHT NOTICE.
 * @hidden
 */
! function(t) {
  var e = window.am4internal_webpackJsonp;
  window.am4internal_webpackJsonp = function(i, a, o) {
    for (var s, l, u, h = 0, c = []; h < i.length; h++) l = i[h], r[l] && c.push(r[l][0]), r[l] = 0;
    for (s in a) Object.prototype.hasOwnProperty.call(a, s) && (t[s] = a[s]);
    for (e && e(i, a, o); c.length;) c.shift()();
    if (o)
      for (h = 0; h < o.length; h++) u = n(n.s = o[h]);
    return u
  };
  var i = {},
    r = {
      "04af": 0
    };

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

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

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

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

    function a(t) {
      return +t
    }

    function o(t) {
      return t * t
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function y(t) {
      "@babel/helpers - typeof";
      return (y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
        return typeof t
      } : function(t) {
        return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
      })(t)
    }

    function v(t) {
      return t.index
    }

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

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

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

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

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

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

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

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

    function T(t, e, i) {
      for (var r = 0, n = t.length; r < n; ++r)
        if (t[r].name === e) {
          t[r] = _, t = t.slice(0, r).concat(t.slice(r + 1));
          break
        } return null != i && t.push({
        name: e,
        value: i
      }), t
    }
    w.prototype = P.prototype = {
      constructor: w,
      on: function(t, e) {
        var i, r = this._,
          n = function(t, e) {
            return t.trim().split(/^|\s+/).map(function(t) {
              var i = "",
                r = t.indexOf(".");
              if (r >= 0 && (i = t.slice(r + 1), t = t.slice(0, r)), t && !e.hasOwnProperty(t)) throw new Error("unknown type: " + t);
              return {
                type: t,
                name: i
              }
            })
          }(t + "", r),
          a = -1,
          o = n.length;
        if (!(arguments.length < 2)) {
          if (null != e && "function" != typeof e) throw new Error("invalid callback: " + e);
          for (; ++a < o;)
            if (i = (t = n[a]).type) r[i] = T(r[i], t.name, e);
            else if (null == e)
            for (i in r) r[i] = T(r[i], t.name, null);
          return this
        }
        for (; ++a < o;)
          if ((i = (t = n[a]).type) && (i = O(r[i], t.name))) return i
      },
      copy: function() {
        var t = {},
          e = this._;
        for (var i in e) t[i] = e[i].slice();
        return new w(t)
      },
      call: function(t, e) {
        if ((i = arguments.length - 2) > 0)
          for (var i, r, n = new Array(i), a = 0; a < i; ++a) n[a] = arguments[a + 2];
        if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t);
        for (a = 0, i = (r = this._[t]).length; a < i; ++a) r[a].value.apply(e, n)
      },
      apply: function(t, e, i) {
        if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t);
        for (var r = this._[t], n = 0, a = r.length; n < a; ++n) r[n].value.apply(e, i)
      }
    };
    var S = P;

    function C(t) {
      "@babel/helpers - typeof";
      return (C = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
        return typeof t
      } : function(t) {
        return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
      })(t)
    }
    var I, k, D = 0,
      j = 0,
      V = 0,
      A = 1e3,
      M = 0,
      F = 0,
      E = 0,
      R = "object" === ("undefined" == typeof performance ? "undefined" : C(performance)) && performance.now ? performance : Date,
      L = "object" === ("undefined" == typeof window ? "undefined" : C(window)) && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) {
        setTimeout(t, 17)
      };

    function N() {
      return F || (L(B), F = R.now() + E)
    }

    function B() {
      F = 0
    }

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

    function W(t, e, i) {
      var r = new U;
      return r.restart(t, e, i), r
    }

    function H() {
      F = (M = R.now()) + E, D = j = 0;
      try {
        ! function() {
          N(), ++D;
          for (var t, e = I; e;)(t = F - e._time) >= 0 && e._call.call(null, t), e = e._next;
          --D
        }()
      } finally {
        D = 0,
          function() {
            var t, e, i = I,
              r = 1 / 0;
            for (; i;) i._call ? (r > i._time && (r = i._time), t = i, i = i._next) : (e = i._next, i._next = null, i = t ? t._next = e : I = e);
            k = t, z(r)
          }(), F = 0
      }
    }

    function Y() {
      var t = R.now(),
        e = t - M;
      e > A && (E -= e, M = t)
    }

    function z(t) {
      D || (j && (j = clearTimeout(j)), t - F > 24 ? (t < 1 / 0 && (j = setTimeout(H, t - R.now() - E)), V && (V = clearInterval(V))) : (V || (M = R.now(), V = setInterval(Y, A)), D = 1, L(H)))
    }
    U.prototype = W.prototype = {
      constructor: U,
      restart: function(t, e, i) {
        if ("function" != typeof t) throw new TypeError("callback is not a function");
        i = (null == i ? N() : +i) + (null == e ? 0 : +e), this._next || k === this || (k ? k._next = this : I = this, k = this), this._call = t, this._time = i, z()
      },
      stop: function() {
        this._call && (this._call = null, this._time = 1 / 0, z())
      }
    };
    var X = 4294967296;

    function G(t) {
      return t.x
    }

    function K(t) {
      return t.y
    }
    var q = 10,
      Z = Math.PI * (3 - Math.sqrt(5)),
      Q = function(t) {
        var e, i = 1,
          r = .001,
          n = 1 - Math.pow(r, 1 / 300),
          a = 0,
          o = .6,
          s = new Map,
          l = W(c),
          u = S("tick", "end"),
          h = function() {
            var t = 1;
            return function() {
              return (t = (1664525 * t + 1013904223) % X) / X
            }
          }();

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

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

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

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

        function h(i) {
          var n, a = t.length,
            o = l(t, G, K).visitAfter(f);
          for (r = i, n = 0; n < a; ++n) e = t[n], o.visit(g)
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function l(t) {
      return t instanceof o
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function c(t) {
      return "object" == typeof t && null != t
    }
  },
  "ND2/": function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return l
    });
    var r = i("m4/l"),
      n = i("PTiM"),
      a = i("8ZqG"),
      o = i("aFzC"),
      s = i("hGwe"),
      l = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "WavedLine", e.element = e.paper.add("path"), e.waveLength = 16, e.waveHeight = 4, e.tension = .8, e.pixelPerfect = !1, e.fill = Object(a.c)(), e.applyTheme(), e
        }
        return Object(r.c)(e, t), e.prototype.draw = function() {
          var t = {
              x: this.x1,
              y: this.y1
            },
            e = {
              x: this.x2,
              y: this.y2
            };
          this.path = s.moveTo(t) + Object(o.e)(t, e, this.waveLength, this.waveHeight, this.tension, !0)
        }, Object.defineProperty(e.prototype, "waveLength", {
          get: function() {
            return this.getPropertyValue("waveLength")
          },
          set: function(t) {
            this.setPropertyValue("waveLength", t), this.invalidate()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "waveHeight", {
          get: function() {
            return this.getPropertyValue("waveHeight")
          },
          set: function(t) {
            this.setPropertyValue("waveHeight", t), this.invalidate()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "tension", {
          get: function() {
            return this.getPropertyValue("tension")
          },
          set: function(t) {
            this.setPropertyValue("tension", t), this.invalidate()
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(n.a)
  },
  "NI+5": function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("3sMl"),
      a = i("hqo8"),
      o = i("7X7h"),
      s = i("EErT"),
      l = i("Ox5T"),
      u = i("gxUV").f;
    n && r({
      target: "Object",
      proto: !0,
      forced: a
    }, {
      __lookupSetter__: function(t) {
        var e, i = o(this),
          r = s(t, !0);
        do {
          if (e = u(i, r)) return e.set
        } while (i = l(i))
      }
    })
  },
  NK3S: function(t, e, i) {
    "use strict";
    var r = i("3weC"),
      n = i("EErT");
    t.exports = function(t) {
      if ("string" !== t && "number" !== t && "default" !== t) throw TypeError("Incorrect hint");
      return n(r(this), "number" !== t)
    }
  },
  NKcy: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("UjlR"),
      a = i("7X7h"),
      o = i("tHyI"),
      s = i("HnbP"),
      l = i("Rs0P");
    r({
      target: "Array",
      proto: !0
    }, {
      flatMap: function(t) {
        var e, i = a(this),
          r = o(i.length);
        return s(t), (e = l(i, 0)).length = n(e, i, i, r, 0, 1, t, arguments.length > 1 ? arguments[1] : void 0), e
      }
    })
  },
  NNEa: function(t, e, i) {
    "use strict";
    var r = i("/vWR"),
      n = i("Tl3C").getWeakData,
      a = i("3weC"),
      o = i("Kg2n"),
      s = i("L56b"),
      l = i("L4xm"),
      u = i("X/sl"),
      h = i("JZRr"),
      c = i("SqFF"),
      p = c.set,
      d = c.getterFor,
      f = u.find,
      g = u.findIndex,
      m = 0,
      y = function(t) {
        return t.frozen || (t.frozen = new v)
      },
      v = function() {
        this.entries = []
      },
      b = function(t, e) {
        return f(t.entries, function(t) {
          return t[0] === e
        })
      };
    v.prototype = {
      get: function(t) {
        var e = b(this, t);
        if (e) return e[1]
      },
      has: function(t) {
        return !!b(this, t)
      },
      set: function(t, e) {
        var i = b(this, t);
        i ? i[1] = e : this.entries.push([t, e])
      },
      delete: function(t) {
        var e = g(this.entries, function(e) {
          return e[0] === t
        });
        return ~e && this.entries.splice(e, 1), !!~e
      }
    }, t.exports = {
      getConstructor: function(t, e, i, u) {
        var c = t(function(t, r) {
            s(t, c, e), p(t, {
              type: e,
              id: m++,
              frozen: void 0
            }), void 0 != r && l(r, t[u], t, i)
          }),
          f = d(e),
          g = function(t, e, i) {
            var r = f(t),
              o = n(a(e), !0);
            return !0 === o ? y(r).set(e, i) : o[r.id] = i, t
          };
        return r(c.prototype, {
          delete: function(t) {
            var e = f(this);
            if (!o(t)) return !1;
            var i = n(t);
            return !0 === i ? y(e).delete(t) : i && h(i, e.id) && delete i[e.id]
          },
          has: function(t) {
            var e = f(this);
            if (!o(t)) return !1;
            var i = n(t);
            return !0 === i ? y(e).has(t) : i && h(i, e.id)
          }
        }), r(c.prototype, i ? {
          get: function(t) {
            var e = f(this);
            if (o(t)) {
              var i = n(t);
              return !0 === i ? y(e).get(t) : i ? i[e.id] : void 0
            }
          },
          set: function(t, e) {
            return g(this, t, e)
          }
        } : {
          add: function(t) {
            return g(this, t, !0)
          }
        }), c
      }
    }
  },
  NR9A: function(t, e, i) {
    i("NRfM")(Math, "Math", !0)
  },
  NRfM: function(t, e, i) {
    var r = i("8+rI").f,
      n = i("JZRr"),
      a = i("KslR")("toStringTag");
    t.exports = function(t, e, i) {
      t && !n(t = i ? t : t.prototype, a) && r(t, a, {
        configurable: !0,
        value: e
      })
    }
  },
  NSJ1: function(t, e, i) {
    var r = i("vfdp"),
      n = i("6aQQ"),
      a = i("XqrT"),
      o = i("UseD").NATIVE_ARRAY_BUFFER_VIEWS,
      s = r.ArrayBuffer,
      l = r.Int8Array;
    t.exports = !o || !n(function() {
      l(1)
    }) || !n(function() {
      new l(-1)
    }) || !a(function(t) {
      new l, new l(null), new l(1.5), new l(t)
    }, !0) || n(function() {
      return 1 !== new l(new s(2), 1, void 0).length
    })
  },
  NWlt: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("saPf");
    r({
      target: "String",
      proto: !0,
      forced: i("v0oN")("big")
    }, {
      big: function() {
        return n(this, "big", "", "")
      }
    })
  },
  NZ9V: function(t, e, i) {
    "use strict";
    i("1M4z");
    var r = i("z3p0"),
      n = i("6aQQ"),
      a = i("KslR"),
      o = i("4Wbs"),
      s = i("k2B3"),
      l = a("species"),
      u = !n(function() {
        var t = /./;
        return t.exec = function() {
          var t = [];
          return t.groups = {
            a: "7"
          }, t
        }, "7" !== "".replace(t, "$<a>")
      }),
      h = "$0" === "a".replace(/./, "$0"),
      c = a("replace"),
      p = !!/./ [c] && "" === /./ [c]("a", "$0"),
      d = !n(function() {
        var t = /(?:)/,
          e = t.exec;
        t.exec = function() {
          return e.apply(this, arguments)
        };
        var i = "ab".split(t);
        return 2 !== i.length || "a" !== i[0] || "b" !== i[1]
      });
    t.exports = function(t, e, i, c) {
      var f = a(t),
        g = !n(function() {
          var e = {};
          return e[f] = function() {
            return 7
          }, 7 != "" [t](e)
        }),
        m = g && !n(function() {
          var e = !1,
            i = /a/;
          return "split" === t && ((i = {}).constructor = {}, i.constructor[l] = function() {
            return i
          }, i.flags = "", i[f] = /./ [f]), i.exec = function() {
            return e = !0, null
          }, i[f](""), !e
        });
      if (!g || !m || "replace" === t && (!u || !h || p) || "split" === t && !d) {
        var y = /./ [f],
          v = i(f, "" [t], function(t, e, i, r, n) {
            return e.exec === o ? g && !n ? {
              done: !0,
              value: y.call(e, i, r)
            } : {
              done: !0,
              value: t.call(i, e, r)
            } : {
              done: !1
            }
          }, {
            REPLACE_KEEPS_$0: h,
            REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: p
          }),
          b = v[0],
          x = v[1];
        r(String.prototype, t, b), r(RegExp.prototype, f, 2 == e ? function(t, e) {
          return x.call(t, this, e)
        } : function(t) {
          return x.call(t, this)
        })
      }
      c && s(RegExp.prototype[f], "sham", !0)
    }
  },
  Nfo5: function(t, e, i) {
    var r = i("3weC"),
      n = i("HnbP"),
      a = i("KslR")("species");
    t.exports = function(t, e) {
      var i, o = r(t).constructor;
      return void 0 === o || void 0 == (i = r(o)[a]) ? e : n(i)
    }
  },
  "Nv8/": function(t, e, i) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
      value: !0
    });
    var r = {};
    i.d(r, "System", function() {
      return m.a
    }), i.d(r, "system", function() {
      return m.b
    }), i.d(r, "BaseObject", function() {
      return y.a
    }), i.d(r, "BaseObjectEvents", function() {
      return y.b
    }), i.d(r, "Component", function() {
      return v.a
    }), i.d(r, "Container", function() {
      return b.a
    }), i.d(r, "DataItem", function() {
      return x.a
    }), i.d(r, "Sprite", function() {
      return _.a
    }), i.d(r, "SpriteEventDispatcher", function() {
      return P.a
    }), i.d(r, "SpriteState", function() {
      return w.a
    }), i.d(r, "registry", function() {
      return O.c
    }), i.d(r, "Registry", function() {
      return O.a
    }), i.d(r, "is", function() {
      return O.b
    }), i.d(r, "options", function() {
      return T.a
    }), i.d(r, "CSVParser", function() {
      return S.a
    }), i.d(r, "DataLoader", function() {
      return C.a
    }), i.d(r, "dataLoader", function() {
      return C.b
    }), i.d(r, "DataParser", function() {
      return I.a
    }), i.d(r, "DataSource", function() {
      return k.a
    }), i.d(r, "JSONParser", function() {
      return D.a
    }), i.d(r, "SVGDefaults", function() {
      return j.a
    }), i.d(r, "Button", function() {
      return V.a
    }), i.d(r, "Circle", function() {
      return A.a
    }), i.d(r, "Ellipse", function() {
      return M.a
    }), i.d(r, "Image", function() {
      return L
    }), i.d(r, "Label", function() {
      return N.a
    }), i.d(r, "Line", function() {
      return B.a
    }), i.d(r, "Popup", function() {
      return U.a
    }), i.d(r, "Modal", function() {
      return W.a
    }), i.d(r, "PointedRectangle", function() {
      return H.a
    }), i.d(r, "PointedShape", function() {
      return Y.a
    }), i.d(r, "Polyarc", function() {
      return z.a
    }), i.d(r, "Polygon", function() {
      return X.a
    }), i.d(r, "Polyline", function() {
      return G.a
    }), i.d(r, "Polyspline", function() {
      return K.a
    }), i.d(r, "Preloader", function() {
      return J
    }), i.d(r, "Rectangle", function() {
      return $.a
    }), i.d(r, "ResizeButton", function() {
      return tt.a
    }), i.d(r, "CloseButton", function() {
      return rt
    }), i.d(r, "SwitchButton", function() {
      return nt
    }), i.d(r, "RoundedRectangle", function() {
      return at.a
    }), i.d(r, "Scrollbar", function() {
      return ot.a
    }), i.d(r, "Slider", function() {
      return st
    }), i.d(r, "Slice", function() {
      return Z.a
    }), i.d(r, "TextLink", function() {
      return lt.a
    }), i.d(r, "Tooltip", function() {
      return ut.a
    }), i.d(r, "Trapezoid", function() {
      return ht.a
    }), i.d(r, "Triangle", function() {
      return ct.a
    }), i.d(r, "WavedCircle", function() {
      return pt.a
    }), i.d(r, "WavedLine", function() {
      return dt.a
    }), i.d(r, "WavedRectangle", function() {
      return ft.a
    }), i.d(r, "ZoomOutButton", function() {
      return gt.a
    }), i.d(r, "PlayButton", function() {
      return mt
    }), i.d(r, "Cone", function() {
      return yt.a
    }), i.d(r, "Rectangle3D", function() {
      return vt.a
    }), i.d(r, "Slice3D", function() {
      return bt.a
    }), i.d(r, "Export", function() {
      return xt.a
    }), i.d(r, "ExportMenu", function() {
      return _t.a
    }), i.d(r, "DateFormatter", function() {
      return Pt.a
    }), i.d(r, "DurationFormatter", function() {
      return wt.a
    }), i.d(r, "NumberFormatter", function() {
      return Ot.a
    }), i.d(r, "TextFormatter", function() {
      return Tt.a
    }), i.d(r, "getTextFormatter", function() {
      return Tt.b
    }), i.d(r, "Inertia", function() {
      return St.a
    }), i.d(r, "Interaction", function() {
      return Ct.a
    }), i.d(r, "getInteraction", function() {
      return Ct.b
    }), i.d(r, "InteractionKeyboardObject", function() {
      return It.a
    }), i.d(r, "InteractionObject", function() {
      return kt.a
    }), i.d(r, "InteractionObjectEventDispatcher", function() {
      return Dt.a
    }), i.d(r, "MouseCursorStyle", function() {
      return it.a
    }), i.d(r, "AMElement", function() {
      return jt.a
    }), i.d(r, "Group", function() {
      return Vt.a
    }), i.d(r, "Paper", function() {
      return At.a
    }), i.d(r, "Tension", function() {
      return Mt.d
    }), i.d(r, "Basis", function() {
      return Mt.a
    }), i.d(r, "SVGContainer", function() {
      return Ft.a
    }), i.d(r, "ColorModifier", function() {
      return Et.a
    }), i.d(r, "LinearGradient", function() {
      return Rt.a
    }), i.d(r, "LinearGradientModifier", function() {
      return Lt.a
    }), i.d(r, "RadialGradientModifier", function() {
      return Bt
    }), i.d(r, "LinePattern", function() {
      return Ut.a
    }), i.d(r, "CirclePattern", function() {
      return Wt.a
    }), i.d(r, "Pattern", function() {
      return Ht.a
    }), i.d(r, "RadialGradient", function() {
      return Nt.a
    }), i.d(r, "RectPattern", function() {
      return Yt.a
    }), i.d(r, "ColorizeFilter", function() {
      return Xt
    }), i.d(r, "DesaturateFilter", function() {
      return Gt.a
    }), i.d(r, "DropShadowFilter", function() {
      return Kt.a
    }), i.d(r, "BlurFilter", function() {
      return qt
    }), i.d(r, "Filter", function() {
      return zt.a
    }), i.d(r, "FocusFilter", function() {
      return Zt
    }), i.d(r, "LightenFilter", function() {
      return Qt.a
    }), i.d(r, "GlobalAdapter", function() {
      return Jt.b
    }), i.d(r, "globalAdapter", function() {
      return Jt.c
    }), i.d(r, "Adapter", function() {
      return Jt.a
    }), i.d(r, "Animation", function() {
      return $t.a
    }), i.d(r, "animate", function() {
      return $t.c
    }), i.d(r, "nextFrame", function() {
      return te.a
    }), i.d(r, "readFrame", function() {
      return te.c
    }), i.d(r, "writeFrame", function() {
      return te.f
    }), i.d(r, "whenIdle", function() {
      return te.e
    }), i.d(r, "triggerIdle", function() {
      return te.d
    }), i.d(r, "Cache", function() {
      return ee.a
    }), i.d(r, "cache", function() {
      return ee.b
    }), i.d(r, "Color", function() {
      return ie.a
    }), i.d(r, "color", function() {
      return ie.c
    }), i.d(r, "isColor", function() {
      return ie.d
    }), i.d(r, "castColor", function() {
      return ie.b
    }), i.d(r, "ColorSet", function() {
      return re.a
    }), i.d(r, "PatternSet", function() {
      return ne.a
    }), i.d(r, "InterfaceColorSet", function() {
      return q.a
    }), i.d(r, "DictionaryDisposer", function() {
      return ae.b
    }), i.d(r, "Dictionary", function() {
      return ae.a
    }), i.d(r, "DictionaryTemplate", function() {
      return ae.c
    }), i.d(r, "Disposer", function() {
      return oe.b
    }), i.d(r, "MultiDisposer", function() {
      return oe.c
    }), i.d(r, "MutableValueDisposer", function() {
      return oe.d
    }), i.d(r, "CounterDisposer", function() {
      return oe.a
    }), i.d(r, "StyleRule", function() {
      return E.c
    }), i.d(r, "StyleClass", function() {
      return E.b
    }), i.d(r, "getElement", function() {
      return E.q
    }), i.d(r, "addClass", function() {
      return E.f
    }), i.d(r, "removeClass", function() {
      return E.y
    }), i.d(r, "blur", function() {
      return E.h
    }), i.d(r, "focus", function() {
      return E.o
    }), i.d(r, "outerHTML", function() {
      return E.w
    }), i.d(r, "isElement", function() {
      return E.t
    }), i.d(r, "copyAttributes", function() {
      return E.j
    }), i.d(r, "fixPixelPerfect", function() {
      return E.n
    }), i.d(r, "ready", function() {
      return E.x
    }), i.d(r, "EventDispatcher", function() {
      return se.a
    }), i.d(r, "TargetedEventDispatcher", function() {
      return se.b
    }), i.d(r, "ListIterator", function() {
      return le.ListIterator
    }), i.d(r, "min", function() {
      return le.min
    }), i.d(r, "max", function() {
      return le.max
    }), i.d(r, "join", function() {
      return le.join
    }), i.d(r, "Keyboard", function() {
      return ue.a
    }), i.d(r, "keyboard", function() {
      return ue.b
    }), i.d(r, "Language", function() {
      return he.a
    }), i.d(r, "IndexedIterable", function() {
      return ce.a
    }), i.d(r, "ListGrouper", function() {
      return ce.d
    }), i.d(r, "ListDisposer", function() {
      return ce.c
    }), i.d(r, "List", function() {
      return ce.b
    }), i.d(r, "ListTemplate", function() {
      return ce.e
    }), i.d(r, "Morpher", function() {
      return pe.a
    }), i.d(r, "reverse", function() {
      return de.b
    }), i.d(r, "or", function() {
      return de.a
    }), i.d(r, "Percent", function() {
      return Q.a
    }), i.d(r, "percent", function() {
      return Q.c
    }), i.d(r, "isPercent", function() {
      return Q.b
    }), i.d(r, "Plugin", function() {
      return fe.a
    }), i.d(r, "Responsive", function() {
      return ge.a
    }), i.d(r, "ResponsiveBreakpoints", function() {
      return ge.b
    }), i.d(r, "defaultRules", function() {
      return ge.c
    }), i.d(r, "OrderedList", function() {
      return me.a
    }), i.d(r, "SortedList", function() {
      return me.c
    }), i.d(r, "OrderedListTemplate", function() {
      return me.b
    }), i.d(r, "SortedListTemplate", function() {
      return me.d
    }), i.d(r, "PX", function() {
      return ye.f
    }), i.d(r, "STRING", function() {
      return ye.g
    }), i.d(r, "NUMBER", function() {
      return ye.c
    }), i.d(r, "DATE", function() {
      return ye.a
    }), i.d(r, "DURATION", function() {
      return ye.b
    }), i.d(r, "PLACEHOLDER", function() {
      return ye.d
    }), i.d(r, "PLACEHOLDER2", function() {
      return ye.e
    }), i.d(r, "isNaN", function() {
      return R.isNaN
    }), i.d(r, "checkString", function() {
      return R.checkString
    }), i.d(r, "checkBoolean", function() {
      return R.checkBoolean
    }), i.d(r, "checkNumber", function() {
      return R.checkNumber
    }), i.d(r, "checkObject", function() {
      return R.checkObject
    }), i.d(r, "castString", function() {
      return R.castString
    }), i.d(r, "castNumber", function() {
      return R.castNumber
    }), i.d(r, "isString", function() {
      return R.isString
    }), i.d(r, "isNumber", function() {
      return R.isNumber
    }), i.d(r, "isObject", function() {
      return R.isObject
    }), i.d(r, "isArray", function() {
      return R.isArray
    }), i.d(r, "Validatable", function() {
      return ve.a
    }), i.d(r, "path", function() {
      return et
    }), i.d(r, "colors", function() {
      return be
    }), i.d(r, "ease", function() {
      return xe
    }), i.d(r, "math", function() {
      return _e
    }), i.d(r, "array", function() {
      return Pe
    }), i.d(r, "number", function() {
      return we
    }), i.d(r, "object", function() {
      return Oe
    }), i.d(r, "string", function() {
      return Te
    }), i.d(r, "time", function() {
      return Se
    }), i.d(r, "utils", function() {
      return Ce
    }), i.d(r, "iter", function() {
      return le
    }), i.d(r, "type", function() {
      return R
    }), i.d(r, "net", function() {
      return Ie
    }), i.d(r, "create", function() {
      return Re
    }), i.d(r, "createFromConfig", function() {
      return Le
    }), i.d(r, "createDeferred", function() {
      return Ne
    }), i.d(r, "disposeAllCharts", function() {
      return Ve
    }), i.d(r, "useTheme", function() {
      return Ue
    }), i.d(r, "unuseTheme", function() {
      return We
    }), i.d(r, "unuseAllThemes", function() {
      return He
    }), i.d(r, "addLicense", function() {
      return Ye
    });
    const n = window.Promise,
      a = n && n.prototype.then,
      o = n && n.prototype.catch,
      s = n && n.prototype.finally,
      l = n && n.reject,
      u = n && n.resolve,
      h = n && n.allSettled,
      c = n && n.all,
      p = n && n.race,
      d = window.fetch,
      f = String.prototype.startsWith,
      g = String.prototype.endsWith;
    i("nj15"), i("TFFM");
    var m = i("Rpw0"),
      y = i("Tjl+"),
      v = i("Y9w3"),
      b = i("C6dT"),
      x = i("A6AV"),
      _ = i("Vs7R"),
      P = i("kQxV"),
      w = i("ux7t"),
      O = i("aCit"),
      T = i("Q4nc"),
      S = i("4DCw"),
      C = i("Mpxm"),
      I = i("mIpt"),
      k = i("EjGA"),
      D = i("ZhuL"),
      j = i("hpNl"),
      V = i("aGXA"),
      A = i("FzPm"),
      M = i("Ybtf"),
      F = i("m4/l"),
      E = i("58Sn"),
      R = i("Mtpk"),
      L = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "Image", e.element = e.paper.add("image"), e.applyTheme(), e.width = 50, e.height = 50, e
        }
        return Object(F.c)(e, t), e.prototype.draw = function() {
          if (t.prototype.draw.call(this), this.href) {
            var e = this.innerWidth,
              i = this.innerHeight;
            R.isNumber(this.widthRatio) && (e = i * this.widthRatio, this.width = e), R.isNumber(this.heightRatio) && (i = e * this.heightRatio, this.height = i), this.element.attr({
              width: e,
              height: i
            }), this.element.attrNS(E.d, "xlink:href", this.href)
          }
        }, Object.defineProperty(e.prototype, "href", {
          get: function() {
            return this.getPropertyValue("href")
          },
          set: function(t) {
            this.setPropertyValue("href", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "widthRatio", {
          get: function() {
            return this.getPropertyValue("widthRatio")
          },
          set: function(t) {
            this.setPropertyValue("widthRatio", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "heightRatio", {
          get: function() {
            return this.getPropertyValue("heightRatio")
          },
          set: function(t) {
            this.setPropertyValue("heightRatio", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "bbox", {
          get: function() {
            return {
              x: 0,
              y: 0,
              width: this.pixelWidth,
              height: this.pixelHeight
            }
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(_.a);
    O.c.registeredClasses.Image = L;
    var N = i("p9TX"),
      B = i("PTiM"),
      U = i("UsNi"),
      W = i("W8Sc"),
      H = i("MZQ8"),
      Y = i("1qam"),
      z = i("MXvJ"),
      X = i("R6wv"),
      G = i("jfaP"),
      K = i("xgTw"),
      q = i("MIZb"),
      Z = i("Inf5"),
      Q = i("tjMS"),
      J = function(t) {
        function e() {
          var e = t.call(this) || this;
          e.className = "Preloader", e.width = Object(Q.c)(100), e.height = Object(Q.c)(100);
          var i = new q.a,
            r = e.createChild(b.a);
          r.shouldClone = !1;
          var n = r.createChild(Z.a);
          n.shouldClone = !1, n.radius = 53, n.arc = 360, n.fill = i.getFor("fill"), n.fillOpacity = .8, n.innerRadius = 42, n.isMeasured = !1, e.backgroundSlice = n;
          var a = r.createChild(Z.a);
          a.shouldClone = !1, a.radius = 50, a.innerRadius = 45, a.fill = i.getFor("alternativeBackground"), a.fillOpacity = .2, a.isMeasured = !1, e.progressSlice = a;
          var o = r.createChild(N.a);
          return o.shouldClone = !1, o.horizontalCenter = "middle", o.verticalCenter = "middle", o.isMeasured = !1, o.fill = i.getFor("text"), o.align = "center", o.valign = "middle", o.textAlign = "middle", o.fillOpacity = .4, e.label = o, e.background.opacity = 1, e.background.fill = i.getFor("background"), e.contentAlign = "center", e.contentValign = "middle", e.delay = 300, e.states.create("hidden").properties.opacity = 0, e.visible = !1, e.hide(0), e.__disabled = !0, e._disposers.push(e.backgroundSlice), e._disposers.push(e.progressSlice), e._disposers.push(e.label), e._disposers.push(r), e
        }
        return Object(F.c)(e, t), Object.defineProperty(e.prototype, "progress", {
          get: function() {
            return this.getPropertyValue("progress")
          },
          set: function(t) {
            var e = this;
            this.__disabled = !1, this.validateLayout(), this.setPropertyValue("progress", t), this.progressSlice.arc = 360 * t, this.label && (this.label.text = Math.round(100 * t) + "%"), t >= 1 ? (this._started && (this._started = void 0), O.c.events.once("enterframe", function() {
              var t = e.hide();
              t && !t.isFinished() ? t.events.once("animationended", function() {
                e.__disabled = !0
              }) : e.__disabled = !0
            }), this.interactionsEnabled = !1, this.setPropertyValue("progress", 0)) : t > 0 && (this.delay ? this._started ? this._started + this.delay <= (new Date).getTime() && (this.__disabled = !1, this.show(), this.interactionsEnabled = !0) : this._started = (new Date).getTime() : (this.__disabled = !1, this.show(), this.interactionsEnabled = !0))
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "delay", {
          get: function() {
            return this.getPropertyValue("delay")
          },
          set: function(t) {
            this.setPropertyValue("delay", t)
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(b.a);
    O.c.registeredClasses.Preloader = J;
    var $ = i("GtDR"),
      tt = i("xIv9"),
      et = i("hGwe"),
      it = i("qCRI"),
      rt = function(t) {
        function e() {
          var e = t.call(this) || this;
          e.className = "CloseButton", e.padding(8, 8, 8, 8), e.showSystemTooltip = !0, e.width = 30, e.height = 30;
          var i = new q.a;
          e.cursorOverStyle = it.a.pointer;
          var r = e.background;
          r.cornerRadius(20, 20, 20, 20);
          var n = i.getFor("background");
          r.fill = n, r.stroke = i.getFor("primaryButton"), r.strokeOpacity = 1, r.strokeWidth = 1;
          var a = i.getFor("primaryButtonActive"),
            o = r.states.getKey("hover");
          o.properties.strokeWidth = 3, o.properties.fill = n;
          var s = r.states.getKey("down");
          s.properties.stroke = a, s.properties.fill = n;
          var l = new _.a;
          return l.element = e.paper.add("path"), l.stroke = r.stroke, e.icon = l, e.applyTheme(), e
        }
        return Object(F.c)(e, t), e.prototype.validate = function() {
          t.prototype.validate.call(this);
          var e = this.pixelWidth / 3,
            i = this.pixelHeight / 3,
            r = et.moveTo({
              x: -e / 2,
              y: -i / 2
            });
          r += et.lineTo({
            x: e / 2,
            y: i / 2
          }), r += et.moveTo({
            x: e / 2,
            y: -i / 2
          }), r += et.lineTo({
            x: -e / 2,
            y: i / 2
          }), this.icon.path = r, this.invalidateLayout()
        }, e.prototype.applyInternalDefaults = function() {
          t.prototype.applyInternalDefaults.call(this), R.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Close"))
        }, e
      }(V.a);
    O.c.registeredClasses.CloseButton = rt;
    var nt = function(t) {
      function e() {
        var e = t.call(this) || this;
        e.className = "SwitchButton", e.tooltipY = 0, e.layout = "horizontal", e.contentAlign = "center", e.contentValign = "middle", e.padding(8, 16, 8, 16), e.setStateOnChildren = !0, e.states.create("active");
        var i = new q.a,
          r = new N.a;
        r.fillOpacity = .3, r.states.create("active").properties.fillOpacity = 1, r.isActive = !0, e.leftLabel = r;
        var n = new V.a,
          a = new A.a;
        n.contentValign = "none", n.padding(0, 0, 0, 0), a.radius = 10, n.icon = a, n.icon.valign = "middle", n.label = void 0;
        var o = Object(Q.c)(100);
        n.background.cornerRadius(o, o, o, o), n.width = 3.5 * a.radius, n.height = 2.1 * a.radius, n.marginLeft = 8, n.marginRight = 8, n.togglable = !0, a.dx = .7 * -a.radius, a.fill = i.getFor("primaryButton"), a.states.create("hover").properties.fill = i.getFor("primaryButtonHover");
        var s = a.states.create("active");
        s.properties.fill = i.getFor("primaryButtonActive"), s.properties.dx = .7 * a.radius, e.switchButton = n, e.events.on("toggled", function() {
          e.leftLabel.isActive = !e.isActive, e.rightLabel.isActive = e.isActive
        });
        var l = new N.a;
        return l.fillOpacity = .3, l.states.create("active").properties.fillOpacity = 1, e.rightLabel = l, e.role = "button", e.focusable = !0, l.valign = "middle", r.valign = "middle", n.valign = "middle", e.applyTheme(), e
      }
      return Object(F.c)(e, t), Object.defineProperty(e.prototype, "leftLabel", {
        get: function() {
          return this._leftLabel
        },
        set: function(t) {
          this._leftLabel && this.removeDispose(this._leftLabel), this._leftLabel = t, t && (t.parent = this, t.interactionsEnabled = !1, t.shouldClone = !1, this._disposers.push(this._leftLabel))
        },
        enumerable: !0,
        configurable: !0
      }), Object.defineProperty(e.prototype, "rightLabel", {
        get: function() {
          return this._rightLabel
        },
        set: function(t) {
          this._rightLabel && this.removeDispose(this._rightLabel), this._rightLabel = t, t && (t.parent = this, t.interactionsEnabled = !1, t.shouldClone = !1, this._disposers.push(this._rightLabel))
        },
        enumerable: !0,
        configurable: !0
      }), Object.defineProperty(e.prototype, "switch", {
        get: function() {
          return this._switchButton
        },
        enumerable: !0,
        configurable: !0
      }), Object.defineProperty(e.prototype, "switchButton", {
        set: function(t) {
          this._switchButton && this.removeDispose(this._switchButton), this._switchButton = t, t && (t.parent = this, t.shouldClone = !1, this._disposers.push(this._switchButton))
        },
        enumerable: !0,
        configurable: !0
      }), e.prototype.copyFrom = function(e) {
        t.prototype.copyFrom.call(this, e), e.leftLabel && this.leftLabel.copyFrom(e.leftLabel), e.rightLabel && this.rightLabel.copyFrom(e.rightLabel), e.switchButton && this.switchButton.copyFrom(e.switchButton)
      }, e
    }(b.a);
    O.c.registeredClasses.SwitchButton = nt;
    var at = i("CnhP"),
      ot = i("ISWh"),
      st = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "Slider", e.thumb.opacity = 0, e.thumb.interactionsEnabled = !1, e.endGrip.opacity = 0, e.endGrip.interactionsEnabled = !1, e.startGrip.events.on("drag", function() {
            e.endGrip.x = e.startGrip.x, e.endGrip.y = e.startGrip.y
          }), e.applyTheme(), e
        }
        return Object(F.c)(e, t), Object.defineProperty(e.prototype, "__end", {
          get: function() {
            return this._start
          },
          set: function(t) {},
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "end", {
          get: function() {
            return this._start
          },
          set: function(t) {},
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "start", {
          get: function() {
            return this._start
          },
          set: function(t) {
            this._isBusy || (this.__start = t)
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(ot.a);
    O.c.registeredClasses.Slider = st;
    var lt = i("Trvg"),
      ut = i("cxKZ"),
      ht = i("DziZ"),
      ct = i("Rnbi"),
      pt = i("Vk33"),
      dt = i("ND2/"),
      ft = i("w4m0"),
      gt = i("BEgH"),
      mt = function(t) {
        function e() {
          var e = t.call(this) || this;
          e.className = "PlayButton", e.padding(12, 12, 12, 12), e.showSystemTooltip = !0;
          var i = new q.a,
            r = e.background;
          r.cornerRadius(25, 25, 25, 25), r.fill = i.getFor("primaryButton"), r.stroke = i.getFor("primaryButtonStroke"), r.strokeOpacity = 0, r.states.getKey("hover").properties.fill = i.getFor("primaryButtonHover"), r.states.getKey("down").properties.fill = i.getFor("primaryButtonActive");
          var n = new ct.a;
          n.direction = "right", n.width = 9, n.height = 11, n.marginLeft = 1, n.marginRight = 1, n.horizontalCenter = "middle", n.verticalCenter = "middle", n.stroke = i.getFor("primaryButtonText"), n.fill = n.stroke, e.icon = n;
          var a = new at.a;
          a.width = 11, a.height = 11, a.horizontalCenter = "middle", a.verticalCenter = "middle", a.cornerRadius(0, 0, 0, 0), a.stroke = i.getFor("primaryButtonText"), a.fill = n.stroke, e.togglable = !0;
          var o = e.states.create("active");
          return o.transitionDuration = 0, o.properties.icon = a, e.defaultState.transitionDuration = 0, e.applyTheme(), e
        }
        return Object(F.c)(e, t), e.prototype.applyInternalDefaults = function() {
          t.prototype.applyInternalDefaults.call(this), R.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Play"))
        }, e
      }(V.a);
    O.c.registeredClasses.PlayButton = mt;
    var yt = i("ncT3"),
      vt = i("Mr4Y"),
      bt = i("nPzZ"),
      xt = i("GAaQ"),
      _t = i("qJno"),
      Pt = i("7XB+"),
      wt = i("akNo"),
      Ot = i("CTEm"),
      Tt = i("MipW"),
      St = i("0PyG"),
      Ct = i("zhwk"),
      It = i("Oe1l"),
      kt = i("vbOF"),
      Dt = i("YotE"),
      jt = i("pzs1"),
      Vt = i("cOH5"),
      At = i("P7v+"),
      Mt = i("aFzC"),
      Ft = i("HDh7"),
      Et = i("DA7/"),
      Rt = i("sxA1"),
      Lt = i("/e9j"),
      Nt = i("CuFa"),
      Bt = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "RadialGradientModifier", e.gradient = new Nt.a, e.applyTheme(), e
        }
        return Object(F.c)(e, t), e.prototype.copyFrom = function(e) {
          t.prototype.copyFrom.call(this, e), this.gradient = e.gradient.clone()
        }, e
      }(i("3/51").a);
    O.c.registeredClasses.RadialGradientModifier = Bt;
    var Ut = i("WODi"),
      Wt = i("TZWN"),
      Ht = i("ZLF9"),
      Yt = i("2gKx"),
      zt = i("ohjg"),
      Xt = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "ColorizeFilter", e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({
            type: "matrix"
          }), e.filterPrimitives.push(e.feColorMatrix), e.intensity = 1, e.applyTheme(), e
        }
        return Object(F.c)(e, t), e.prototype.applyFilter = function() {
          var t, e, i, r = this.intensity,
            n = 1 - r,
            a = this.color;
          a && a.rgb ? (t = a.rgb.r / 255 * r, e = a.rgb.g / 255 * r, i = a.rgb.b / 255 * r) : (t = 0, e = 0, i = 0), this.feColorMatrix.attr({
            values: n + " 0 0 0 " + t + " 0 " + n + " 0 0 " + e + " 0 0 " + n + " 0 " + i + " 0 0 0 1 0"
          })
        }, Object.defineProperty(e.prototype, "color", {
          get: function() {
            return this.properties.color
          },
          set: function(t) {
            this.properties.color = t, this.applyFilter()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "intensity", {
          get: function() {
            return this.properties.intensity
          },
          set: function(t) {
            this.properties.intensity = t, this.applyFilter()
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(zt.a);
    O.c.registeredClasses.ColorizeFilter = Xt;
    var Gt = i("85D4"),
      Kt = i("VAFc"),
      qt = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "BlurFilter", e.feGaussianBlur = e.paper.add("feGaussianBlur"), e.feGaussianBlur.attr({
            result: "blurOut",
            in: "SourceGraphic"
          }), e.filterPrimitives.push(e.feGaussianBlur), e.width = 200, e.height = 200, e.blur = 1.5, e.applyTheme(), e
        }
        return Object(F.c)(e, t), Object.defineProperty(e.prototype, "blur", {
          get: function() {
            return this.properties.blur
          },
          set: function(t) {
            this.properties.blur = t, this.feGaussianBlur.attr({
              stdDeviation: t / this.scale
            })
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(zt.a);
    O.c.registeredClasses.BlurFilter = qt;
    var Zt = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "FocusFilter", e.feFlood = e.paper.add("feFlood"), e.feFlood.attr({
            "flood-color": (new q.a).getFor("primaryButtonHover"),
            result: "base"
          }), e.filterPrimitives.push(e.feFlood), e.feMorphology = e.paper.add("feMorphology"), e.feMorphology.attr({
            result: "bigger",
            in: "SourceGraphic",
            operator: "dilate",
            radius: "2"
          }), e.filterPrimitives.push(e.feMorphology), e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({
            result: "mask",
            in: "bigger",
            type: "matrix",
            values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"
          }), e.filterPrimitives.push(e.feColorMatrix), e.feComposite = e.paper.add("feComposite"), e.feComposite.attr({
            result: "drop",
            in: "base",
            in2: "mask",
            operator: "in"
          }), e.filterPrimitives.push(e.feComposite), e.feBlend = e.paper.add("feBlend"), e.feBlend.attr({
            in: "SourceGraphic",
            in2: "drop",
            mode: "normal"
          }), e.filterPrimitives.push(e.feBlend), e.width = 130, e.height = 130, e.applyTheme(), e
        }
        return Object(F.c)(e, t), Object.defineProperty(e.prototype, "stroke", {
          get: function() {
            return this.properties.stroke
          },
          set: function(t) {
            this.properties.stroke = t, this.feFlood.attr({
              "flood-color": t
            })
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "strokeWidth", {
          get: function() {
            return this.properties.strokeWidth
          },
          set: function(t) {
            this.properties.strokeWidth = t, this.feMorphology.attr({
              radius: t
            })
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "opacity", {
          get: function() {
            return this.properties.opacity
          },
          set: function(t) {
            this.properties.opacity = t, this.feColorMatrix.attr({
              values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " + t + " 0"
            })
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.setSprite = function(e) {
          this._sprite && this._sprite != e && this._sprite.group.removeStyle("outline"), e.group.addStyle({
            outline: "none"
          }), t.prototype.setSprite.call(this, e)
        }, e
      }(zt.a),
      Qt = i("C84C"),
      Jt = i("x79X"),
      $t = i("1yyj"),
      te = i("/9XX"),
      ee = i("eCqC"),
      ie = i("8ZqG"),
      re = i("DHte"),
      ne = i("W0E6"),
      ae = i("+qIf"),
      oe = i("hD5A"),
      se = i("o0Lc"),
      le = i("Wglt"),
      ue = i("WYhe"),
      he = i("P/bD"),
      ce = i("vMqJ"),
      pe = i("oC3T"),
      de = i("MlsF"),
      fe = i("Iz1H"),
      ge = i("TGuK"),
      me = i("VGgz"),
      ye = i("ScGY"),
      ve = i("/IEW"),
      be = i("hxI2"),
      xe = i("0FpR"),
      _e = i("Gg2j"),
      Pe = i("hJ5i"),
      we = i("3Cxr"),
      Oe = i("Qkdp"),
      Te = i("wUYf"),
      Se = i("L91H"),
      Ce = i("v9UT"),
      Ie = i("OVUc"),
      ke = function(t) {
        function e() {
          var e = t.call(this) || this;
          e.className = "AmChartsLogo", e.valign = "bottom";
          var i = .3;
          e.opacity = .3, e.defaultState.properties.opacity = .4, e.url = "https://www.amcharts.com/", e.urlTarget = "_blank", e.showSystemTooltip = !0, e.readerTitle = "Chart created using amCharts library", e.width = 66, e.height = 21, e.background.opacity = 0;
          var r = Object(ie.c)("#474758");
          "#ffffff" == (new q.a).getFor("background").alternative.hex && (r = Object(ie.c)("#ffffff"));
          var n = new Rt.a;
          n.addColor(r), n.addColor(r, 1, .75), n.addColor(Object(ie.c)("#3cabff"), 1, .755), n.rotation = -10;
          var a = n,
            o = e.createChild(K.a);
          o.shouldClone = !1, o.isMeasured = !1, o.segments = [
            [{
              x: 15,
              y: 15
            }, {
              x: 27,
              y: 15
            }, {
              x: 36,
              y: 6
            }, {
              x: 40.5,
              y: 10.5
            }, {
              x: 45,
              y: 6
            }, {
              x: 54,
              y: 15
            }, {
              x: 60,
              y: 15
            }]
          ], o.strokeWidth = 6 * i, o.tensionX = .8, o.tensionY = 1, o.stroke = Object(ie.c)("#3cabff");
          var s = e.createChild(K.a);
          s.shouldClone = !1, s.isMeasured = !1, s.segments = [
            [{
              x: 6,
              y: 15
            }, {
              x: 15,
              y: 15
            }, {
              x: 27,
              y: 12 * i
            }, {
              x: 39.9,
              y: 15
            }, {
              x: 51,
              y: 15
            }, {
              x: 60,
              y: 15
            }]
          ], s.strokeWidth = 6 * i, s.tensionX = .75, s.tensionY = 1, s.stroke = a, e._disposers.push(s);
          var l = new Gt.a;
          e.filters.push(l);
          var u = new Gt.a;
          u.saturation = 1;
          var h = e.states.create("hover");
          return h.properties.opacity = 1, h.filters.push(u), e.applyTheme(), e
        }
        return Object(F.c)(e, t), e
      }(b.a),
      De = i("pjXm");

    function je(t, e) {
      var i = E.q(t),
        r = !1;
      if (i || ((i = document.createElement("div")).style.width = "200px", i.style.height = "200px", i.style.visibility = "hidden", i.style.position = "absolute", document.body.appendChild(i), r = !0), i) {
        i.innerHTML = "";
        var n = new Ft.a(i),
          a = new At.a(n.SVGContainer, "svg-" + (Ft.b.length - 1)),
          o = new b.a;
        o.htmlContainer = i, o.svgContainer = n, o.width = Object(Q.c)(100), o.height = Object(Q.c)(100), o.background.fillOpacity = 0, o.paper = a, a.append(o.group), r && E.x(function() {
          o.moveHtmlContainer(t)
        }), o.relativeWidth = 1, o.relativeHeight = 1, n.container = o;
        var s = o.createChild(e);
        s.topParent = o;
        var l = s.uid;
        O.c.invalidSprites[l] = [], O.c.invalidDatas[l] = [], O.c.invalidPositions[l] = [], O.c.invalidLayouts[l] = [], o.baseId = l, s.isBaseSprite = !0, s.focusFilter = new Zt, O.c.baseSprites.push(s), O.c.baseSpritesByUid[l] = s, s.maskRectangle = {
          x: 0,
          y: 0,
          width: Math.max(n.width || 0, 0),
          height: Math.max(n.height || 0, 0)
        }, o.events.on("maxsizechanged", function(t) {
          0 != t.previousWidth && 0 != t.previousHeight || o.deepInvalidate(), s.maskRectangle && (s.maskRectangle = {
            x: 0,
            y: 0,
            width: Math.max(n.width || 0, 0),
            height: Math.max(n.height || 0, 0)
          })
        });
        var u = null,
          h = function() {
            s.isDisposed() ? u = null : null == E.r(s.dom) ? (T.a.autoDispose ? (o.htmlContainer = void 0, n.htmlElement = void 0, s.dispose()) : De.b("Chart was not disposed", s.uid), u = null) : u = window.setTimeout(h, 1e3)
          };
        h(), s.addDisposer(new oe.b(function() {
          null !== u && clearTimeout(u), Pe.remove(O.c.baseSprites, s), O.c.baseSpritesByUid[s.uid] = void 0
        })), s.addDisposer(o);
        var c = o.createChild(b.a);
        c.topParent = o, c.width = Object(Q.c)(100), c.height = Object(Q.c)(100), c.isMeasured = !1, o.tooltipContainer = c, s.tooltip = new ut.a, s.tooltip.hide(0), s.tooltip.setBounds({
          x: 0,
          y: 0,
          width: c.maxWidth,
          height: c.maxHeight
        }), c.events.on("maxsizechanged", function() {
          R.getValue(s.tooltip).setBounds({
            x: 0,
            y: 0,
            width: c.maxWidth,
            height: c.maxHeight
          })
        }, void 0, !1);
        var p = new J;
        if (p.events.on("inited", function() {
            p.__disabled = !0
          }, void 0, !1), o.preloader = p, s instanceof b.a && !s.hasLicense()) {
          var d = c.createChild(ke);
          c.events.on("maxsizechanged", function(t) {
            c.maxWidth <= 100 || c.maxHeight <= 50 ? d.hide() : (d.isHidden || d.isHiding) && d.show()
          }, void 0, !1), s.logo = d, d.align = "left", d.valign = "bottom"
        }
        if (Ce.used(s.numberFormatter), o.isStandaloneInstance = !0, T.a.onlyShowOnViewport)
          if (E.u(i, T.a.viewportTarget)) T.a.queue && Ae(s);
          else {
            s.__disabled = !0, s.tooltipContainer.__disabled = !0;
            var f = [E.g(window, "DOMContentLoaded", function() {
              Fe(s)
            }), E.g(window, "load", function() {
              Fe(s)
            }), E.g(window, "resize", function() {
              Fe(s)
            }), E.g(window, "scroll", function() {
              Fe(s)
            })];
            if (T.a.viewportTarget)
              for (var g = R.isArray(T.a.viewportTarget) ? T.a.viewportTarget : T.a.viewportTarget ? [T.a.viewportTarget] : [], y = 0; y < g.length; y++) {
                var v = g[y];
                f.push(E.g(v, "resize", function() {
                  Fe(s)
                })), f.push(E.g(v, "scroll", function() {
                  Fe(s)
                }))
              }
            var x = new oe.c(f);
            s.addDisposer(x), s.vpDisposer = x
          }
        else T.a.queue && Ae(s);
        return s
      }
      throw m.b.log("html container not found"), new Error("html container not found")
    }

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

    function Ae(t) {
      -1 == O.c.queue.indexOf(t) && (t.__disabled = !0, t.tooltipContainer.__disabled = !0, t.events.disableType("appeared"), 0 == O.c.queue.length && (O.c.events.once("exitframe", function() {
        Ee(t)
      }), m.b.requestFrame()), t.addDisposer(new oe.b(function() {
        Me(t)
      })), O.c.queue.push(t))
    }

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

    function Fe(t) {
      t.__disabled && E.u(t.htmlContainer, T.a.viewportTarget) && (t.vpDisposer && t.vpDisposer.dispose(), Ae(t))
    }

    function Ee(t) {
      t.__disabled = !1, t.tooltipContainer.__disabled = !1, t.events.enableType("appeared"), t.dispatch("removedfromqueue"), t.showOnInit && t.events.on("appeared", function() {
        Me(t)
      }), t.vpDisposer && t.vpDisposer.dispose(), t instanceof b.a && t.invalidateLabels(), t.tooltipContainer && t.tooltipContainer.invalidateLayout(), t instanceof v.a ? (t.invalidateData(), t.reinit(), t.events.once("datavalidated", function() {
        t.showOnInit ? t.appear() : Me(t)
      })) : (t.reinit(), t.events.once("inited", function() {
        Me(t)
      }), t.showOnInit && t.appear())
    }

    function Re(t, e) {
      var i;
      R.isString(e) && (R.hasValue(O.c.registeredClasses[e]) ? e = O.c.registeredClasses[e] : (e = O.c.registeredClasses.Container, i = new Error("Class [" + e + "] is not loaded.")));
      var r = je(t, e);
      return i && r.raiseCriticalError(i), r
    }

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

    function Ne(t, e) {
      for (var i = [], r = 2; r < arguments.length; r++) i[r - 2] = arguments[r];
      return new Promise(function(r, n) {
        O.c.deferred.push({
          scope: e,
          callback: t,
          args: i,
          resolve: r
        }), 1 == O.c.deferred.length && Be()
      })
    }

    function Be() {
      var t, e = O.c.deferred[0];
      if (e) {
        var i = (t = e.callback).call.apply(t, Object(F.f)([e.scope], e.args));
        i.events.on("ready", function() {
          e.resolve(i), O.c.deferred.shift(), T.a.deferredDelay ? setTimeout(Be, T.a.deferredDelay) : Be()
        })
      }
    }

    function Ue(t) {
      -1 === O.c.themes.indexOf(t) && O.c.themes.push(t)
    }

    function We(t) {
      Pe.remove(O.c.themes, t)
    }

    function He() {
      O.c.themes = []
    }

    function Ye(t) {
      T.a.licenses.push(t)
    }
    window.am4core = r, i.p = function(t) {
      return /(.*\/)[^\/]*$/.exec(t)[1]
    }(function() {
      if (document.currentScript) return document.currentScript;
      var t = document.getElementsByTagName("script");
      return t[t.length - 1]
    }().src), n && (window.Promise = n, a && (n.prototype.then = a), o && (n.prototype.catch = o), s && (n.prototype.finally = s), l && (n.reject = l), u && (n.resolve = u), h && (n.allSettled = h), c && (n.all = c), p && (n.race = p)), d && (window.fetch = d), f && (String.prototype.startsWith = f), g && (String.prototype.endsWith = g)
  },
  OMnz: function(t, e, i) {
    var r = i("z3p0"),
      n = Date.prototype,
      a = n.toString,
      o = n.getTime;
    new Date(NaN) + "" != "Invalid Date" && r(n, "toString", function() {
      var t = o.call(this);
      return t == t ? a.call(this) : "Invalid Date"
    })
  },
  ORGY: function(t, e, i) {
    i("6WsA")("replace")
  },
  OVUc: function(t, e, i) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), e.load = function(t, e, i) {
      return new Promise(function(a, o) {
        var s = r.hasValue(i) && "blob" == i.responseType,
          l = new XMLHttpRequest;
        if (l.onload = function() {
            if (200 === l.status) {
              var t, i = void 0;
              if (s) return void n(t = l.response).then(function(i) {
                var r = {
                  xhr: l,
                  error: !1,
                  response: i,
                  blob: t,
                  type: l.getResponseHeader("Content-Type"),
                  target: e
                };
                a(r)
              });
              i = l.responseText || l.response;
              var r = {
                xhr: l,
                error: !1,
                response: i,
                blob: t,
                type: l.getResponseHeader("Content-Type"),
                target: e
              };
              a(r)
            } else o({
              xhr: l,
              error: !0,
              type: l.getResponseHeader("Content-Type"),
              target: e
            })
          }, l.onerror = function() {
            o({
              xhr: l,
              error: !0,
              type: l.getResponseHeader("Content-Type"),
              target: e
            })
          }, l.open("GET", t, !0), i && i.withCredentials && (l.withCredentials = !0), r.hasValue(i)) {
          if (r.hasValue(i.requestHeaders))
            for (var u = 0; u < i.requestHeaders.length; u++) {
              var h = i.requestHeaders[u];
              l.setRequestHeader(h.key, h.value)
            }
          r.hasValue(i.responseType) && (l.responseType = i.responseType)
        }
        l.send()
      })
    }, e.readBlob = n;
    var r = i("Mtpk");

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

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

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

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

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

    function u(t, e, i) {
      r.each(i, function(i) {
        n.hasValue(t[i]) && (e[i] = t[i])
      })
    }
  },
  "QwL+": function(t, e, i) {
    var r = i("0sYB"),
      n = i("vRI3"),
      a = Math.acosh,
      o = Math.log,
      s = Math.sqrt,
      l = Math.LN2;
    r({
      target: "Math",
      stat: !0,
      forced: !a || 710 != Math.floor(a(Number.MAX_VALUE)) || a(1 / 0) != 1 / 0
    }, {
      acosh: function(t) {
        return (t = +t) < 1 ? NaN : t > 94906265.62425156 ? o(t) + l : n(t - 1 + s(t - 1) * s(t + 1))
      }
    })
  },
  QzDi: function(t, e, i) {
    var r, n = i("3weC"),
      a = i("Mdrz"),
      o = i("XhXf"),
      s = i("lt6Q"),
      l = i("fGTV"),
      u = i("BAfC"),
      h = i("fYap")("IE_PROTO"),
      c = function() {},
      p = function(t) {
        return "<script>" + t + "<\/script>"
      },
      d = function() {
        try {
          r = document.domain && new ActiveXObject("htmlfile")
        } catch (t) {}
        d = r ? function(t) {
          t.write(p("")), t.close();
          var e = t.parentWindow.Object;
          return t = null, e
        }(r) : function() {
          var t, e = u("iframe");
          return e.style.display = "none", l.appendChild(e), e.src = String("javascript:"), (t = e.contentWindow.document).open(), t.write(p("document.F=Object")), t.close(), t.F
        }();
        for (var t = o.length; t--;) delete d.prototype[o[t]];
        return d()
      };
    s[h] = !0, t.exports = Object.create || function(t, e) {
      var i;
      return null !== t ? (c.prototype = n(t), i = new c, c.prototype = null, i[h] = t) : i = d(), void 0 === e ? i : a(i, e)
    }
  },
  R3j0: function(t, e, i) {
    i("6WsA")("hasInstance")
  },
  R6wv: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return u
    });
    var r = i("m4/l"),
      n = i("Vs7R"),
      a = i("oC3T"),
      o = i("aCit"),
      s = i("hGwe"),
      l = i("Mtpk"),
      u = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "Polygon", e.element = e.paper.add("path"), e.shapeRendering = "auto", e._currentPoints = [], e.applyTheme(), e
        }
        return Object(r.c)(e, t), Object.defineProperty(e.prototype, "points", {
          get: function() {
            var t = this.getPropertyValue("points"),
              e = this.path;
            if (e && (!t || 0 == t.length)) {
              for (var i = e.slice(1, e.length - 1).split("ZM"), r = 0; r < i.length; r++) {
                var n = i[r];
                if (n.length > 0) {
                  var a = n.split("M"),
                    o = a[0],
                    s = a[1];
                  if (o && o.length > 0) {
                    var l = o.split("L");
                    if (l.length > 0) {
                      var u = [],
                        h = [u];
                      t.push(h);
                      for (var c = 0; c < l.length; c++) {
                        var p = l[c].split(",");
                        u.push({
                          x: +p[0],
                          y: +p[1]
                        })
                      }
                      if (s && s.length > 0) {
                        var d = s.split("L");
                        if (d.length > 0) {
                          var f = [];
                          h.push(f);
                          for (c = d.length - 1; c >= 0; c--) {
                            p = d[c].split(",");
                            f.push({
                              x: +p[0],
                              y: +p[1]
                            })
                          }
                        }
                      }
                    }
                  }
                }
              }
              this.setPropertyValue("points", t), this._currentPoints = t
            }
            return t
          },
          set: function(t) {
            this.setPropertyValue("points", t, !0), this._currentPoints = t
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "currentPoints", {
          get: function() {
            return this._currentPoints && 0 != this._currentPoints.length || !this.path || (this._currentPoints = this.points), this._currentPoints
          },
          set: function(t) {
            this._currentPoints != t && (this._currentPoints = t, this.draw())
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.draw = function() {
          var e, i, r, n, a = "",
            o = this._currentPoints;
          if (o.length > 0) {
            for (var u = 0, h = o.length; u < h; u++) {
              var c = o[u][0],
                p = o[u][1];
              if (c && c.length > 0) {
                var d = c[0];
                a += s.moveTo(d);
                for (var f = 0; f < c.length; f++) d = c[f], a += s.lineTo(d), (!l.isNumber(i) || i < d.x) && (i = d.x), (!l.isNumber(e) || e > d.x) && (e = d.x), (!l.isNumber(r) || r > d.y) && (r = d.y), (!l.isNumber(n) || n < d.y) && (n = d.y)
              }
              if (p && p.length > 0) {
                d = p[0];
                a += s.moveTo(d);
                for (var g = 0, m = p.length; g < m; g++) d = p[g], a += s.lineTo(d)
              }
            }
            a && (a += s.closePath()), this.bbox.x = e, this.bbox.y = r, this.bbox.width = i - e, this.bbox.height = n - r, t.prototype.setPath.call(this, a)
          }
        }, e.prototype.setPath = function(e) {
          return !!t.prototype.setPath.call(this, e) && (this.points = [], this._bbox = this.group.getBBox(), !0)
        }, e.prototype.measureElement = function() {}, Object.defineProperty(e.prototype, "centerPoint", {
          get: function() {
            return {
              x: this.bbox.x + this.bbox.width / 2,
              y: this.bbox.y + this.bbox.height / 2
            }
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "morpher", {
          get: function() {
            return this._morpher || (this._morpher = new a.a(this), this._disposers.push(this._morpher)), this._morpher
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(n.a);
    o.c.registeredClasses.Polygon = u
  },
  RBX2: function(t, e, i) {
    "use strict";
    i("0sYB")({
      target: "URL",
      proto: !0,
      enumerable: !0
    }, {
      toJSON: function() {
        return URL.prototype.toString.call(this)
      }
    })
  },
  "RIy+": function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("jnLg").start,
      a = i("rCh7")("trimStart"),
      o = a ? function() {
        return n(this)
      } : "".trimStart;
    r({
      target: "String",
      proto: !0,
      forced: a
    }, {
      trimStart: o,
      trimLeft: o
    })
  },
  RjhM: function(t, e, i) {
    var r = i("1wCr");
    t.exports = r("navigator", "userAgent") || ""
  },
  RlUG: function(t, e, i) {
    "use strict";
    var r = i("HMf+"),
      n = i("JZFm");
    t.exports = r("Map", function(t) {
      return function() {
        return t(this, arguments.length ? arguments[0] : void 0)
      }
    }, n)
  },
  Rnbi: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return s
    });
    var r = i("m4/l"),
      n = i("Vs7R"),
      a = i("aCit"),
      o = i("hGwe"),
      s = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "Triangle", e.element = e.paper.add("path"), e.direction = "top", e.applyTheme(), e
        }
        return Object(r.c)(e, t), e.prototype.draw = function() {
          t.prototype.draw.call(this);
          var e, i = this.pixelWidth,
            r = this.pixelHeight;
          switch (this.direction) {
            case "right":
              e = o.moveTo({
                x: 0,
                y: 0
              }) + o.lineTo({
                x: i,
                y: r / 2
              }) + o.lineTo({
                x: 0,
                y: r
              }) + o.closePath();
              break;
            case "left":
              e = o.moveTo({
                x: i,
                y: 0
              }) + o.lineTo({
                x: 0,
                y: r / 2
              }) + o.lineTo({
                x: i,
                y: r
              }) + o.closePath();
              break;
            case "bottom":
              e = o.moveTo({
                x: 0,
                y: 0
              }) + o.lineTo({
                x: i,
                y: 0
              }) + o.lineTo({
                x: i / 2,
                y: r
              }) + o.closePath();
              break;
            case "top":
              e = o.moveTo({
                x: i / 2,
                y: 0
              }) + o.lineTo({
                x: i,
                y: r
              }) + o.lineTo({
                x: 0,
                y: r
              }) + o.closePath()
          }
          this.path = e
        }, Object.defineProperty(e.prototype, "direction", {
          get: function() {
            return this.getPropertyValue("direction")
          },
          set: function(t) {
            this.setPropertyValue("direction", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(n.a);
    a.c.registeredClasses.Triangle = s
  },
  Rpw0: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return u
    }), i.d(e, "b", function() {
      return h
    });
    var r = i("aCit"),
      n = i("C6dT"),
      a = i("/9XX"),
      o = i("hJ5i"),
      s = i("Qkdp"),
      l = i("pjXm"),
      u = function() {
        function t() {
          this._isPaused = !1, this.animations = [], this.uid = r.c.getUniqueId(), this.dummyCounter = 0, this._frameRequested = !1, this.updateStepDuration = 45, this.time = Date.now()
        }
        return t.prototype.reportTime = function(t, e) {
          this.dummyCounter, e && (this.time = Date.now())
        }, t.prototype.update = function() {
          var t = this;
          if (!this._isPaused) {
            this._frameRequested = !1;
            var e = Date.now();
            r.c.dispatchImmediately("enterframe");
            for (var i in r.c.invalidDatas)
              if (s.hasKey(r.c.invalidDatas, i)) {
                for (var n = r.c.invalidDatas[i]; n.length > 0;) {
                  var l = (u = n[0]).dataProvider;
                  if (u.isDisposed()) o.remove(n, u);
                  else if (l && l.dataInvalid) try {
                    if (l.validateData(), l.dataValidationProgress < 1) break
                  } catch (t) {
                    o.remove(n, l), l.raiseCriticalError(t)
                  } else try {
                    if (u.validateData(), u.dataValidationProgress < 1) break
                  } catch (t) {
                    o.remove(n, u), u.raiseCriticalError(t)
                  }
                }
                if (Date.now() - e > this.updateStepDuration) break
              } for (; r.c.invalidRawDatas.length > 0;) {
              if ((u = r.c.invalidRawDatas[0]).isDisposed()) o.remove(r.c.invalidRawDatas, u);
              else try {
                u.validateRawData()
              } catch (t) {
                o.remove(r.c.invalidRawDatas, u), u.raiseCriticalError(t)
              }
            }
            for (; r.c.invalidDataItems.length > 0;) {
              l = (u = r.c.invalidDataItems[0]).dataProvider;
              if (u.isDisposed() || u.dataInvalid || l && l.dataInvalid);
              else try {
                u.validateDataItems()
              } catch (t) {
                o.remove(r.c.invalidDataItems, u), u.raiseCriticalError(t)
              }
              o.remove(r.c.invalidDataItems, u)
            }
            for (; r.c.invalidDataRange.length > 0;) {
              var u;
              l = (u = r.c.invalidDataRange[0]).dataProvider;
              if (u.isDisposed() || u.dataInvalid || l && l.dataInvalid);
              else try {
                u.validateDataRange(), u.skipRangeEvent || u.dispatchImmediately("datarangechanged"), u.skipRangeEvent = !1
              } catch (t) {
                o.remove(r.c.invalidDataRange, u), u.raiseCriticalError(t)
              }
              o.remove(r.c.invalidDataRange, u)
            }
            var h = [];
            s.each(r.c.invalidLayouts, function(e) {
              t.validateLayouts(e)
            }), s.each(r.c.invalidPositions, function(e) {
              t.validatePositions(e)
            });
            var c = !1;
            if (e = Date.now(), s.each(r.c.invalidSprites, function(i, n) {
                for (var a = 0; n.length > 0;) {
                  if (t.validateLayouts(i), t.validatePositions(i), 5 == ++a) {
                    if (Date.now() - e > t.updateStepDuration) break;
                    a = 0
                  }
                  var s = n[n.length - 1];
                  if (s && !s.isDisposed()) {
                    if (s._systemCheckIfValidate())
                      if (t.checkIfValidate2(s)) try {
                        s._systemUpdate(h)
                      } catch (t) {
                        s.invalid = !1, o.remove(n, s), s.raiseCriticalError(t)
                      } else h.push(s);
                      else h.push(s);
                    s.invalid = !1
                  }
                  o.remove(n, s)
                }
                r.c.invalidSprites[i] = r.c.invalidSprites[i].concat(h)
              }), s.each(r.c.invalidSprites, function(t, e) {
                e.length > 0 && (c = !0)
              }), s.each(r.c.invalidDatas, function(t, e) {
                e.length > 0 && (c = !0)
              }), o.each(o.copy(this.animations), function(t) {
                t.update()
              }), s.each(r.c.invalidLayouts, function(e) {
                t.validateLayouts(e)
              }), s.each(r.c.invalidPositions, function(e) {
                t.validatePositions(e)
              }), Object(a.d)(), s.each(r.c.invalidLayouts, function(e) {
                t.validateLayouts(e)
              }), s.each(r.c.invalidPositions, function(e) {
                t.validatePositions(e)
              }), r.c.dispatchImmediately("exitframe"), (c || this.animations.length > 0 || [].length > 0) && this.requestFrame(), this.updateStepDuration < 200) {
              var p = !0;
              s.each(r.c.invalidDatas, function(t, e) {
                e.length > 0 && (p = !1)
              }), s.each(r.c.invalidSprites, function(t, e) {
                e.length > 0 && (p = !1)
              }), p && (this.updateStepDuration = 200)
            }
          }
        }, t.prototype.checkIfValidate2 = function(t) {
          return !(t.dataItem && t.dataItem.component && t.dataItem.component.dataInvalid && !t.dataItem.component.isTemplate)
        }, t.prototype.requestFrame = function() {
          var t = this;
          this._frameRequested || (Object(a.b)(function() {
            t.update()
          }), this._frameRequested = !0)
        }, t.prototype.softInvalidate = function(t) {
          var e = this;
          t.children.each(function(t) {
            t instanceof n.a && e.softInvalidate(t), t.measureFailed && (Object(r.b)(t, "Label") ? t.hardInvalidate() : t.invalidate(), t.measureFailed = !1)
          })
        }, t.prototype.validatePositions = function(t) {
          for (var e = r.c.invalidPositions[t]; e.length > 0;) {
            var i = e[e.length - 1];
            if (i.isDisposed()) o.remove(e, i);
            else try {
              i._systemValidatePositions()
            } catch (t) {
              i.positionInvalid = !1, o.remove(e, i), i.raiseCriticalError(t)
            }
          }
        }, t.prototype.validateLayouts = function(t) {
          for (var e = r.c.invalidLayouts[t]; e.length > 0;) {
            var i = e[e.length - 1];
            if (i.isDisposed()) o.remove(e, i);
            else try {
              i.children.each(function(t) {
                t._systemValidateLayouts()
              }), i.validateLayout()
            } catch (t) {
              i.layoutInvalid = !1, o.remove(e, i), i.raiseCriticalError(t)
            }
          }
        }, t.prototype.log = function(t) {
          l.a(t)
        }, Object.defineProperty(t.prototype, "isPaused", {
          get: function() {
            return this._isPaused
          },
          set: function(t) {
            this._isPaused = t, t || (this._frameRequested = !1, this.requestFrame())
          },
          enumerable: !0,
          configurable: !0
        }), t.VERSION = "4.10.7", t
      }(),
      h = new u
  },
  Rs0P: function(t, e, i) {
    var r = i("Kg2n"),
      n = i("o3G/"),
      a = i("KslR")("species");
    t.exports = function(t, e) {
      var i;
      return n(t) && ("function" != typeof(i = t.constructor) || i !== Array && !n(i.prototype) ? r(i) && null === (i = i[a]) && (i = void 0) : i = void 0), new(void 0 === i ? Array : i)(0 === e ? 0 : e)
    }
  },
  "S+7J": function(t, e, i) {
    var r = i("0sYB"),
      n = i("L4xm"),
      a = i("WShl");
    r({
      target: "Object",
      stat: !0
    }, {
      fromEntries: function(t) {
        var e = {};
        return n(t, function(t, i) {
          a(e, t, i)
        }, void 0, !0), e
      }
    })
  },
  ScGY: function(t, e, i) {
    "use strict";
    i.d(e, "f", function() {
      return r
    }), i.d(e, "g", function() {
      return n
    }), i.d(e, "c", function() {
      return a
    }), i.d(e, "a", function() {
      return o
    }), i.d(e, "b", function() {
      return s
    }), i.d(e, "d", function() {
      return l
    }), i.d(e, "e", function() {
      return u
    });
    var r = "px",
      n = "string",
      a = "number",
      o = "date",
      s = "duration",
      l = "__§§§__",
      u = "__§§§§__"
  },
  ScUe: function(t, e, i) {
    "use strict";
    var r = i("exNg"),
      n = i("swFJ");
    t.exports = "".repeat || function(t) {
      var e = String(n(this)),
        i = "",
        a = r(t);
      if (a < 0 || a == 1 / 0) throw RangeError("Wrong number of repetitions");
      for (; a > 0;
        (a >>>= 1) && (e += e)) 1 & a && (i += e);
      return i
    }
  },
  SqFF: function(t, e, i) {
    var r, n, a, o = i("JAqT"),
      s = i("vfdp"),
      l = i("Kg2n"),
      u = i("k2B3"),
      h = i("JZRr"),
      c = i("fYap"),
      p = i("lt6Q"),
      d = s.WeakMap;
    if (o) {
      var f = new d,
        g = f.get,
        m = f.has,
        y = f.set;
      r = function(t, e) {
        return y.call(f, t, e), e
      }, n = function(t) {
        return g.call(f, t) || {}
      }, a = function(t) {
        return m.call(f, t)
      }
    } else {
      var v = c("state");
      p[v] = !0, r = function(t, e) {
        return u(t, v, e), e
      }, n = function(t) {
        return h(t, v) ? t[v] : {}
      }, a = function(t) {
        return h(t, v)
      }
    }
    t.exports = {
      set: r,
      get: n,
      has: a,
      enforce: function(t) {
        return a(t) ? n(t) : r(t, {})
      },
      getterFor: function(t) {
        return function(e) {
          var i;
          if (!l(e) || (i = n(e)).type !== t) throw TypeError("Incompatible receiver, " + t + " required");
          return i
        }
      }
    }
  },
  "TDx+": function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return o
    });
    var r = i("m4/l"),
      n = i("p9TX"),
      a = i("aCit"),
      o = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "AxisLabel", e.isMeasured = !1, e.padding(10, 10, 10, 10), e.location = .5, e.applyTheme(), e
        }
        return Object(r.c)(e, t), Object.defineProperty(e.prototype, "location", {
          get: function() {
            return this.getPropertyValue("location")
          },
          set: function(t) {
            this.setPropertyValue("location", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "inside", {
          get: function() {
            return this.getPropertyValue("inside")
          },
          set: function(t) {
            this.setPropertyValue("inside", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.setDisabled = function(e) {
          var i = t.prototype.setDisabled.call(this, e);
          return this.axis && this.axis.invalidateDataItems(), i
        }, e
      }(n.a);
    a.c.registeredClasses.AxisLabel = o
  },
  TFFM: function(t, e, i) {
    var r = function(t) {
      "use strict";
      var e, i = Object.prototype,
        r = i.hasOwnProperty,
        n = "function" == typeof Symbol ? Symbol : {},
        a = n.iterator || "@@iterator",
        o = n.asyncIterator || "@@asyncIterator",
        s = n.toStringTag || "@@toStringTag";

      function l(t, e, i) {
        return Object.defineProperty(t, e, {
          value: i,
          enumerable: !0,
          configurable: !0,
          writable: !0
        }), t[e]
      }
      try {
        l({}, "")
      } catch (t) {
        l = function(t, e, i) {
          return t[e] = i
        }
      }

      function u(t, e, i, r) {
        var n = e && e.prototype instanceof m ? e : m,
          a = Object.create(n.prototype),
          o = new I(r || []);
        return a._invoke = function(t, e, i) {
          var r = c;
          return function(n, a) {
            if (r === d) throw new Error("Generator is already running");
            if (r === f) {
              if ("throw" === n) throw a;
              return D()
            }
            for (i.method = n, i.arg = a;;) {
              var o = i.delegate;
              if (o) {
                var s = T(o, i);
                if (s) {
                  if (s === g) continue;
                  return s
                }
              }
              if ("next" === i.method) i.sent = i._sent = i.arg;
              else if ("throw" === i.method) {
                if (r === c) throw r = f, i.arg;
                i.dispatchException(i.arg)
              } else "return" === i.method && i.abrupt("return", i.arg);
              r = d;
              var l = h(t, e, i);
              if ("normal" === l.type) {
                if (r = i.done ? f : p, l.arg === g) continue;
                return {
                  value: l.arg,
                  done: i.done
                }
              }
              "throw" === l.type && (r = f, i.method = "throw", i.arg = l.arg)
            }
          }
        }(t, i, o), a
      }

      function h(t, e, i) {
        try {
          return {
            type: "normal",
            arg: t.call(e, i)
          }
        } catch (t) {
          return {
            type: "throw",
            arg: t
          }
        }
      }
      t.wrap = u;
      var c = "suspendedStart",
        p = "suspendedYield",
        d = "executing",
        f = "completed",
        g = {};

      function m() {}

      function y() {}

      function v() {}
      var b = {};
      b[a] = function() {
        return this
      };
      var x = Object.getPrototypeOf,
        _ = x && x(x(k([])));
      _ && _ !== i && r.call(_, a) && (b = _);
      var P = v.prototype = m.prototype = Object.create(b);

      function w(t) {
        ["next", "throw", "return"].forEach(function(e) {
          l(t, e, function(t) {
            return this._invoke(e, t)
          })
        })
      }

      function O(t, e) {
        var i;
        this._invoke = function(n, a) {
          function o() {
            return new e(function(i, o) {
              ! function i(n, a, o, s) {
                var l = h(t[n], t, a);
                if ("throw" !== l.type) {
                  var u = l.arg,
                    c = u.value;
                  return c && "object" == typeof c && r.call(c, "__await") ? e.resolve(c.__await).then(function(t) {
                    i("next", t, o, s)
                  }, function(t) {
                    i("throw", t, o, s)
                  }) : e.resolve(c).then(function(t) {
                    u.value = t, o(u)
                  }, function(t) {
                    return i("throw", t, o, s)
                  })
                }
                s(l.arg)
              }(n, a, i, o)
            })
          }
          return i = i ? i.then(o, o) : o()
        }
      }

      function T(t, i) {
        var r = t.iterator[i.method];
        if (r === e) {
          if (i.delegate = null, "throw" === i.method) {
            if (t.iterator.return && (i.method = "return", i.arg = e, T(t, i), "throw" === i.method)) return g;
            i.method = "throw", i.arg = new TypeError("The iterator does not provide a 'throw' method")
          }
          return g
        }
        var n = h(r, t.iterator, i.arg);
        if ("throw" === n.type) return i.method = "throw", i.arg = n.arg, i.delegate = null, g;
        var a = n.arg;
        return a ? a.done ? (i[t.resultName] = a.value, i.next = t.nextLoc, "return" !== i.method && (i.method = "next", i.arg = e), i.delegate = null, g) : a : (i.method = "throw", i.arg = new TypeError("iterator result is not an object"), i.delegate = null, g)
      }

      function S(t) {
        var e = {
          tryLoc: t[0]
        };
        1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e)
      }

      function C(t) {
        var e = t.completion || {};
        e.type = "normal", delete e.arg, t.completion = e
      }

      function I(t) {
        this.tryEntries = [{
          tryLoc: "root"
        }], t.forEach(S, this), this.reset(!0)
      }

      function k(t) {
        if (t) {
          var i = t[a];
          if (i) return i.call(t);
          if ("function" == typeof t.next) return t;
          if (!isNaN(t.length)) {
            var n = -1,
              o = function i() {
                for (; ++n < t.length;)
                  if (r.call(t, n)) return i.value = t[n], i.done = !1, i;
                return i.value = e, i.done = !0, i
              };
            return o.next = o
          }
        }
        return {
          next: D
        }
      }

      function D() {
        return {
          value: e,
          done: !0
        }
      }
      return y.prototype = P.constructor = v, v.constructor = y, y.displayName = l(v, s, "GeneratorFunction"), t.isGeneratorFunction = function(t) {
        var e = "function" == typeof t && t.constructor;
        return !!e && (e === y || "GeneratorFunction" === (e.displayName || e.name))
      }, t.mark = function(t) {
        return Object.setPrototypeOf ? Object.setPrototypeOf(t, v) : (t.__proto__ = v, l(t, s, "GeneratorFunction")), t.prototype = Object.create(P), t
      }, t.awrap = function(t) {
        return {
          __await: t
        }
      }, w(O.prototype), O.prototype[o] = function() {
        return this
      }, t.AsyncIterator = O, t.async = function(e, i, r, n, a) {
        void 0 === a && (a = Promise);
        var o = new O(u(e, i, r, n), a);
        return t.isGeneratorFunction(i) ? o : o.next().then(function(t) {
          return t.done ? t.value : o.next()
        })
      }, w(P), l(P, s, "Generator"), P[a] = function() {
        return this
      }, P.toString = function() {
        return "[object Generator]"
      }, t.keys = function(t) {
        var e = [];
        for (var i in t) e.push(i);
        return e.reverse(),
          function i() {
            for (; e.length;) {
              var r = e.pop();
              if (r in t) return i.value = r, i.done = !1, i
            }
            return i.done = !0, i
          }
      }, t.values = k, I.prototype = {
        constructor: I,
        reset: function(t) {
          if (this.prev = 0, this.next = 0, this.sent = this._sent = e, this.done = !1, this.delegate = null, this.method = "next", this.arg = e, this.tryEntries.forEach(C), !t)
            for (var i in this) "t" === i.charAt(0) && r.call(this, i) && !isNaN(+i.slice(1)) && (this[i] = e)
        },
        stop: function() {
          this.done = !0;
          var t = this.tryEntries[0].completion;
          if ("throw" === t.type) throw t.arg;
          return this.rval
        },
        dispatchException: function(t) {
          if (this.done) throw t;
          var i = this;

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

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

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

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

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

    function l(t, e) {
      return null == t || e > t ? e : t
    }
    var u = function() {
      function t(t, e) {
        this.createNewItems = !1, this.list = t, this._create = e, this.reset()
      }
      return t.prototype.reset = function() {
        this._listCopy = a(this.list.iterator())
      }, t.prototype.clear = function() {
        this._listCopy.length = 0
      }, t.prototype.getFirst = function() {
        return this.returnItem(0)
      }, t.prototype.getLast = function() {
        return this.returnItem(this._listCopy.length - 1)
      }, t.prototype.find = function(t) {
        var e = r.findIndex(this._listCopy, t);
        if (-1 !== e) {
          var i = this._listCopy[e];
          return r.remove(this._listCopy, i), i
        }
        return this.getLast()
      }, t.prototype.removeItem = function(t) {
        return r.remove(this._listCopy, t)
      }, t.prototype.returnItem = function(t) {
        if (t >= 0 && t < this._listCopy.length) {
          var e = this._listCopy[t];
          return r.remove(this._listCopy, e), e
        }
        if (this.createNewItems) return this._create()
      }, t.prototype.iterator = function() {
        return n(this._listCopy)
      }, t
    }()
  },
  Wqjq: function(t, e, i) {
    var r = i("exNg"),
      n = i("swFJ"),
      a = function(t) {
        return function(e, i) {
          var a, o, s = String(n(e)),
            l = r(i),
            u = s.length;
          return l < 0 || l >= u ? t ? "" : void 0 : (a = s.charCodeAt(l)) < 55296 || a > 56319 || l + 1 === u || (o = s.charCodeAt(l + 1)) < 56320 || o > 57343 ? t ? s.charAt(l) : a : t ? s.slice(l, l + 2) : o - 56320 + (a - 55296 << 10) + 65536
        }
      };
    t.exports = {
      codeAt: a(!1),
      charAt: a(!0)
    }
  },
  "X/sl": function(t, e, i) {
    var r = i("cLsB"),
      n = i("tNpr"),
      a = i("7X7h"),
      o = i("tHyI"),
      s = i("Rs0P"),
      l = [].push,
      u = function(t) {
        var e = 1 == t,
          i = 2 == t,
          u = 3 == t,
          h = 4 == t,
          c = 6 == t,
          p = 5 == t || c;
        return function(d, f, g, m) {
          for (var y, v, b = a(d), x = n(b), _ = r(f, g, 3), P = o(x.length), w = 0, O = m || s, T = e ? O(d, P) : i ? O(d, 0) : void 0; P > w; w++)
            if ((p || w in x) && (v = _(y = x[w], w, b), t))
              if (e) T[w] = v;
              else if (v) switch (t) {
            case 3:
              return !0;
            case 5:
              return y;
            case 6:
              return w;
            case 2:
              l.call(T, y)
          } else if (h) return !1;
          return c ? -1 : u || h ? h : T
        }
      };
    t.exports = {
      forEach: u(0),
      map: u(1),
      filter: u(2),
      some: u(3),
      every: u(4),
      find: u(5),
      findIndex: u(6)
    }
  },
  XDqO: function(t, e, i) {
    var r = i("0sYB"),
      n = i("IpLv"),
      a = Math.abs;
    r({
      target: "Number",
      stat: !0
    }, {
      isSafeInteger: function(t) {
        return n(t) && a(t) <= 9007199254740991
      }
    })
  },
  XDyS: function(t, e, i) {
    i("0sYB")({
      target: "Reflect",
      stat: !0
    }, {
      has: function(t, e) {
        return e in t
      }
    })
  },
  XUj0: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("saPf");
    r({
      target: "String",
      proto: !0,
      forced: i("v0oN")("bold")
    }, {
      bold: function() {
        return n(this, "b", "", "")
      }
    })
  },
  XaED: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("saPf");
    r({
      target: "String",
      proto: !0,
      forced: i("v0oN")("anchor")
    }, {
      anchor: function(t) {
        return n(this, "a", "name", t)
      }
    })
  },
  XhXf: function(t, e) {
    t.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
  },
  XqrT: function(t, e, i) {
    var r = i("KslR")("iterator"),
      n = !1;
    try {
      var a = 0,
        o = {
          next: function() {
            return {
              done: !!a++
            }
          },
          return: function() {
            n = !0
          }
        };
      o[r] = function() {
        return this
      }, Array.from(o, function() {
        throw 2
      })
    } catch (t) {}
    t.exports = function(t, e) {
      if (!e && !n) return !1;
      var i = !1;
      try {
        var a = {};
        a[r] = function() {
          return {
            next: function() {
              return {
                done: i = !0
              }
            }
          }
        }, t(a)
      } catch (t) {}
      return i
    }
  },
  Xroj: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("saPf");
    r({
      target: "String",
      proto: !0,
      forced: i("v0oN")("strike")
    }, {
      strike: function() {
        return n(this, "strike", "", "")
      }
    })
  },
  Xw1K: function(t, e, i) {
    var r = i("2xmP"),
      n = i("4Wbs");
    t.exports = function(t, e) {
      var i = t.exec;
      if ("function" == typeof i) {
        var a = i.call(t, e);
        if ("object" != typeof a) throw TypeError("RegExp exec method returned something other than an Object or null");
        return a
      }
      if ("RegExp" !== r(t)) throw TypeError("RegExp#exec called on incompatible receiver");
      return n.call(t, e)
    }
  },
  Y2i6: function(t, e, i) {
    var r = i("vfdp");
    t.exports = function(t, e) {
      var i = r.console;
      i && i.error && (1 === arguments.length ? i.error(t) : i.error(t, e))
    }
  },
  Y8n3: function(t, e, i) {
    var r = i("exNg"),
      n = Math.max,
      a = Math.min;
    t.exports = function(t, e) {
      var i = r(t);
      return i < 0 ? n(i + e, 0) : a(i, e)
    }
  },
  Y8ws: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("saPf");
    r({
      target: "String",
      proto: !0,
      forced: i("v0oN")("small")
    }, {
      small: function() {
        return n(this, "small", "", "")
      }
    })
  },
  Y9w3: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return _
    });
    var r = i("m4/l"),
      n = i("C6dT"),
      a = i("vMqJ"),
      o = i("VGgz"),
      s = i("+qIf"),
      l = i("hD5A"),
      u = i("EjGA"),
      h = i("TGuK"),
      c = i("Rpw0"),
      p = i("A6AV"),
      d = i("aCit"),
      f = i("Gg2j"),
      g = i("hJ5i"),
      m = i("0FpR"),
      y = i("v9UT"),
      v = i("Wglt"),
      b = i("Qkdp"),
      x = i("Mtpk"),
      _ = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.dataFields = {}, e._dataSources = {}, e._parseDataFrom = 0, e._dataDisposers = [], e._currentDataSetId = "", e._start = 0, e._end = 1, e.skipRangeEvent = !1, e.rangeChangeDuration = 0, e.rangeChangeEasing = m.cubicOut, e.parsingStepDuration = 50, e.dataInvalid = !1, e.rawDataInvalid = !1, e.dataRangeInvalid = !1, e.dataItemsInvalid = !1, e.interpolationDuration = 0, e.interpolationEasing = m.cubicOut, e.sequencedInterpolation = !0, e.sequencedInterpolationDelay = 0, e.dataValidationProgress = 0, e._addAllDataItems = !0, e._usesData = !0, e.className = "Component", e.minZoomCount = 1, e.maxZoomCount = 0, e._dataItems = new o.b(e.createDataItem()), e._dataItems.events.on("inserted", e.handleDataItemAdded, e, !1), e._dataItems.events.on("removed", e.handleDataItemRemoved, e, !1), e._disposers.push(new a.c(e._dataItems)), e._disposers.push(e._dataItems.template), e.invalidateData(), e.dataUsers.events.on("inserted", e.handleDataUserAdded, e, !1), e._disposers.push(new l.c(e._dataDisposers)), e._start = 0, e._end = 1, e.maxZoomDeclination = 1, e.applyTheme(), e
        }
        return Object(r.c)(e, t), e.prototype.createDataItem = function() {
          return new p.a
        }, e.prototype.handleDataUserAdded = function(t) {
          t.newValue.dataProvider = this
        }, e.prototype.handleDataItemValueChange = function(t, e) {
          this.dataItemsInvalid || this.invalidateDataItems()
        }, e.prototype.handleDataItemWorkingValueChange = function(t, e) {}, e.prototype.handleDataItemWorkingLocationChange = function(t, e) {}, e.prototype.handleDataItemCalculatedValueChange = function(t, e) {}, e.prototype.handleDataItemPropertyChange = function(t, e) {}, e.prototype.processDataItem = function(t, e) {
          var i = this;
          if (t) {
            e || (e = {}), t.dataContext = e;
            var r = !1;
            b.each(this.dataFields, function(n, s) {
              var l = n,
                u = e[s];
              if (i._adapterO && i._adapterO.isEnabled("dataContextValue") && (u = i._adapterO.apply("dataContextValue", {
                  field: l,
                  value: u,
                  dataItem: t
                }).value), x.hasValue(u))
                if (r = !0, t.hasChildren[l]) {
                  var h = i.createDataItem();
                  h.copyFrom(i.mainDataSet.template);
                  var c = new o.b(h);
                  c.events.on("inserted", i.handleDataItemAdded, i, !1), c.events.on("removed", i.handleDataItemRemoved, i, !1), i._dataDisposers.push(new a.c(c));
                  for (var p = u.length, d = 0; d < p; d++) {
                    var f = u[d],
                      g = c.create();
                    g.parent = t, i.processDataItem(g, f)
                  }
                  t[l] = c
                } else t[l] = u
            }), b.each(this.propertyFields, function(i, n) {
              var a = i,
                o = e[n];
              x.hasValue(o) && (r = !0, t.setProperty(a, o))
            }), this._addAllDataItems || r || this.mainDataSet.remove(t)
          }
        }, e.prototype.updateDataItem = function(t) {
          var e = this;
          if (t) {
            var i = t.dataContext;
            b.each(this.dataFields, function(r, n) {
              var a = r,
                o = i[n];
              (e._adapterO && (o = e._adapterO.apply("dataContextValue", {
                field: a,
                value: o,
                dataItem: t
              }).value), x.hasValue(o)) && (t.hasChildren[a] ? t[a].each(function(t) {
                e.updateDataItem(t)
              }) : t[a] = o)
            }), b.each(this.propertyFields, function(e, r) {
              var n = e,
                a = i[r];
              x.hasValue(a) && t.setProperty(n, a)
            })
          }
        }, e.prototype.validateDataElements = function() {
          for (var t = this.endIndex, e = this.startIndex; e < t; e++) {
            var i = this.dataItems.getIndex(e);
            i && this.validateDataElement(i)
          }
        }, e.prototype.validate = function() {
          this.validateDataElements(), t.prototype.validate.call(this)
        }, e.prototype.validateDataElement = function(t) {}, e.prototype.addData = function(t, e, i) {
          var r = this;
          if (!this.dataInvalid && this.inited && (this._parseDataFrom = this.data.length), i || (t instanceof Array ? g.each(t, function(t) {
              r.data.push(t)
            }) : this.data.push(t)), this.inited) this.removeData(e, i);
          else if (x.isNumber(e))
            for (; e > 0;) this.data.shift(), e--;
          this.invalidateData()
        }, e.prototype.removeData = function(t, e) {
          if (x.isNumber(t) && t > 0) {
            for (; t > 0;) {
              var i = this.mainDataSet.getIndex(0);
              i && this.mainDataSet.remove(i), this.dataUsers.each(function(t) {
                if (!t.data || 0 == t.data.length) {
                  var e = t.mainDataSet.getIndex(0);
                  e && t.mainDataSet.remove(e)
                }
              }), e || this.data.shift(), this._parseDataFrom > 0 && this._parseDataFrom--, t--
            }
            this.invalidateDataItems()
          }
        }, e.prototype.invalidateData = function() {
          this.disabled || this.isTemplate || (d.c.addToInvalidComponents(this), c.b.requestFrame(), this.dataInvalid = !0, v.each(this.dataUsers.iterator(), function(t) {
            t.invalidateDataItems()
          }))
        }, e.prototype.invalidateDataUsers = function() {
          v.each(this.dataUsers.iterator(), function(t) {
            t.invalidate()
          })
        }, e.prototype.invalidateDataItems = function() {
          this.disabled || this.isTemplate || (g.move(d.c.invalidDataItems, this), c.b.requestFrame(), this.dataItemsInvalid = !0, v.each(this.dataUsers.iterator(), function(t) {
            t.invalidateDataItems()
          }))
        }, e.prototype.invalidateDataRange = function() {
          this.disabled || this.isTemplate || (this.dataRangeInvalid = !0, g.move(d.c.invalidDataRange, this), c.b.requestFrame())
        }, e.prototype.validateDataRange = function() {
          g.remove(d.c.invalidDataRange, this), this.dataRangeInvalid = !1, this.startIndex == this._prevStartIndex && this.endIndex == this._prevEndIndex || (this.rangeChangeUpdate(), this.appendDataItems(), this.invalidate(), this.dispatchImmediately("datarangechanged"))
        }, e.prototype.sliceData = function() {
          this._workingStartIndex = this.startIndex, this._workingEndIndex = this.endIndex
        }, e.prototype.rangeChangeUpdate = function() {
          this.sliceData(), this._prevStartIndex = this.startIndex, this._prevEndIndex = this.endIndex
        }, e.prototype.appendDataItems = function() {
          for (var t = this.endIndex, e = this.startIndex; e < t; e++) {
            (i = this.dataItems.getIndex(e)) && (i.__disabled = !1)
          }
          for (e = 0; e < this.startIndex; e++) {
            (i = this.dataItems.getIndex(e)) && (i.__disabled = !0)
          }
          for (e = this.endIndex; e < this.dataItems.length; e++) {
            var i;
            (i = this.dataItems.getIndex(e)) && (i.__disabled = !0)
          }
        }, e.prototype.invalidateRawData = function() {
          this.disabled || this.isTemplate || (g.move(d.c.invalidRawDatas, this), c.b.requestFrame(), this.rawDataInvalid = !0, v.each(this.dataUsers.iterator(), function(t) {
            t.invalidateRawData()
          }))
        }, e.prototype.validateRawData = function() {
          var t = this;
          g.remove(d.c.invalidRawDatas, this), v.each(this.mainDataSet.iterator(), function(e) {
            e && t.updateDataItem(e)
          })
        }, e.prototype.dispose = function() {
          var e = this;
          this.mainDataSet.template.clones.clear(), b.each(this._dataSources, function(t, i) {
            e.removeDispose(i)
          }), t.prototype.dispose.call(this)
        }, e.prototype.disposeData = function() {
          this.mainDataSet.template.clones.clear(), g.each(this._dataDisposers, function(t) {
            t.dispose()
          }), v.each(this.dataUsers.iterator(), function(t) {
            t.disposeData()
          }), this._dataDisposers.length = 0, this._startIndex = void 0, this._endIndex = void 0, this.mainDataSet.clear(), this.mainDataSet.template.clones.clear(), this._dataSets && this._dataSets.clear()
        }, e.prototype.getDataItem = function(t) {
          return this.mainDataSet.create()
        }, e.prototype.validateData = function() {
          if (this.dispatchImmediately("beforedatavalidated"), this.dataInvalid = !1, d.c.removeFromInvalidComponents(this), !this.__disabled) {
            if (this.dataValidationProgress = 0, this._prevStartIndex = void 0, this._prevEndIndex = void 0, this._startIndex = void 0, this._endIndex = void 0, this.dataFields.data && this.dataItem) {
              var t = this.dataItem.dataContext;
              this._data = t[this.dataFields.data]
            }
            if (0 === this._parseDataFrom && this.data.length > 0 && this.disposeData(), this.data.length > 0) {
              var e = this.preloader;
              v.each(this.dataUsers.iterator(), function(t) {
                t._startIndex = void 0, t._endIndex = void 0
              });
              for (var i = 0, r = Date.now(), n = this._parseDataFrom, a = this.data.length, o = function() {
                  var t = s.data[n];
                  if (s._usesData) {
                    var a = s.getDataItem(t);
                    s.processDataItem(a, t)
                  }
                  if ((s.dataUsers.each(function(e) {
                      if (0 == e.data.length) {
                        var i = e.getDataItem(t);
                        e.processDataItem(i, t)
                      }
                    }), 100 == ++i) && (i = 0, Date.now() - r > s.parsingStepDuration && n < s.data.length - 10)) return s._parseDataFrom = n + 1, e && (n / s.data.length > .5 && !e.visible || (e.progress = n / s.data.length)), s.dataValidationProgress = n / s.data.length, n = s.data.length, s.invalidateData(), {
                    value: void 0
                  }
                }, s = this; n < a; n++) {
                var l = o();
                if ("object" == typeof l) return l.value
              }
              e && (e.progress = 1), this.dataUsers.each(function(t) {
                t.hidden && t.hide(0)
              })
            }
            this.dataValidationProgress = 1, this._parseDataFrom = 0, this.invalidateDataItems(), this._internalDefaultsApplied || this.applyInternalDefaults(), this.dispatch("datavalidated")
          }
        }, e.prototype.validateDataItems = function() {
          g.remove(d.c.invalidDataItems, this), this.dataItemsInvalid = !1, this.invalidateDataRange(), this.invalidate(), this.dispatch("dataitemsvalidated")
        }, Object.defineProperty(e.prototype, "data", {
          get: function() {
            return this._data || (this._data = []), this._adapterO ? this._adapterO.apply("data", this._data) : this._data
          },
          set: function(t) {
            this.setData(t)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.setData = function(t) {
          this._parseDataFrom = 0, this.disposeData(), this._data = t, t && t.length > 0 ? this.invalidateData() : (this.dispatchImmediately("beforedatavalidated"), this.dispatch("datavalidated"))
        }, e.prototype.getDataSource = function(t) {
          var e = this;
          return x.hasValue(this._dataSources[t]) || (this._dataSources[t] = new u.a, this._dataSources[t].component = this, this.setDataSourceEvents(this._dataSources[t], t), this._dataSources[t].adapter.add("dateFields", function(t) {
            return e.dataSourceDateFields(t)
          }), this._dataSources[t].adapter.add("numberFields", function(t) {
            return e.dataSourceNumberFields(t)
          }), this.events.on("inited", function() {
            e.loadData(t)
          }, this, !1)), this._dataSources[t]
        }, Object.defineProperty(e.prototype, "dataSource", {
          get: function() {
            return this._dataSources.data || this.getDataSource("data"), this._dataSources.data
          },
          set: function(t) {
            var e = this;
            this._dataSources.data && this.removeDispose(this._dataSources.data), this._dataSources.data = t, this._dataSources.data.component = this, this.events.on("inited", function() {
              e.loadData("data")
            }, this, !1), this.setDataSourceEvents(t, "data")
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.loadData = function(t) {
          this._dataSources[t].load()
        }, e.prototype.dataSourceDateFields = function(t) {
          return t
        }, e.prototype.dataSourceNumberFields = function(t) {
          return t
        }, e.prototype.populateDataSourceFields = function(t, e, i) {
          return g.each(i, function(i) {
            e[i] && -1 === g.indexOf(t, e[i]) && t.push(e[i])
          }), t
        }, e.prototype.setDataSourceEvents = function(t, e) {
          var i = this;
          t.events.on("started", function(t) {
            var e = i.preloader;
            e && (e.progress = 0)
          }, void 0, !1), t.events.on("loadstarted", function(t) {
            var e = i.preloader;
            e && (e.progress = .25)
          }, void 0, !1), t.events.on("loadended", function(t) {
            var e = i.preloader;
            e && (e.progress = .5)
          }, void 0, !1), t.events.on("parseended", function(t) {
            var e = i.preloader;
            e && (e.progress = .75)
          }, void 0, !1), t.events.on("ended", function(t) {
            var e = i.preloader;
            e && (e.progress = 1)
          }, void 0, !1), t.events.on("error", function(t) {
            var e = i.preloader;
            e && (e.progress = 1), i.openModal(t.message)
          }, void 0, !1), e && t.events.on("done", function(r) {
            var n = i.preloader;
            n && (n.progress = 1), "data" != e || x.isArray(r.data) || (r.data = [r.data]), t.incremental && "data" == e && i.data.length ? i.addData(r.data, t.keepCount ? r.data.length : 0) : t.updateCurrentData && "data" == e && i.data.length ? (g.each(i.data, function(t, e) {
              x.hasValue(r.data[e]) && b.each(t, function(i, n) {
                x.hasValue(r.data[e][i]) && (t[i] = r.data[e][i])
              })
            }), i.invalidateRawData()) : i[e] = r.data
          })
        }, Object.defineProperty(e.prototype, "responsive", {
          get: function() {
            return this._responsive || (this._responsive = new h.a, this._responsive.component = this), this._responsive
          },
          set: function(t) {
            this._responsive = t, this._responsive.component = this
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.zoom = function(t, e, i, r) {
          var n = this;
          void 0 === e && (e = !1), void 0 === i && (i = !1);
          var a = t.start,
            o = t.end,
            s = t.priority;
          if (t.start == t.end && (t.start = t.start - .5 / this.maxZoomFactor, t.end = t.end + .5 / this.maxZoomFactor), "end" == s && 1 == o && 0 != a && a < this.start && (s = "start"), "start" == s && 0 == a && o > this.end && (s = "end"), x.isNumber(r) || (r = this.maxZoomDeclination), !x.isNumber(a) || !x.isNumber(o)) return {
            start: this.start,
            end: this.end
          };
          if (this._finalStart != a || this._finalEnd != o) {
            var l = this.maxZoomFactor / this.minZoomCount,
              u = this.maxZoomFactor / this.maxZoomCount;
            if ("start" == s ? (this.maxZoomCount > 0 && 1 / (o - a) < u && (o = a + 1 / u), 1 / (o - a) > l && (o = a + 1 / l), o > 1 && o - a < 1 / l && (a = o - 1 / l)) : (this.maxZoomCount > 0 && 1 / (o - a) < u && (a = o - 1 / u), 1 / (o - a) > l && (a = o - 1 / l), a < 0 && o - a < 1 / l && (o = a + 1 / l)), a < -r && (a = -r), 1 / (o - a) > l && (o = a + 1 / l), o > 1 + r && (o = 1 + r), 1 / (o - a) > l && (a = o - 1 / l), this._finalEnd = o, this._finalStart = a, this.skipRangeEvent = e, this.dispatchImmediately("rangechangestarted"), this.rangeChangeDuration > 0 && !i) {
              var h = this.rangeChangeAnimation;
              if (h && h.progress < 1) {
                var c = h.animationOptions;
                if (c.length > 1) {
                  if (c[0].to == a && c[1].to == o) return {
                    start: a,
                    end: o
                  };
                  h.isDisposed() || h.stop()
                }
              }
              this.rangeChangeAnimation && this.rangeChangeAnimation.kill(), h = this.animate([{
                property: "start",
                to: a
              }, {
                property: "end",
                to: o
              }], this.rangeChangeDuration, this.rangeChangeEasing), this.rangeChangeAnimation = h, h && !h.isFinished() ? h.events.on("animationended", function() {
                n.dispatchImmediately("rangechangeended")
              }) : this.dispatchImmediately("rangechangeended")
            } else this.start = a, this.end = o, this.dispatch("rangechangeended")
          }
          return {
            start: a,
            end: o
          }
        }, e.prototype.zoomToIndexes = function(t, e, i, r) {
          if (x.isNumber(t) && x.isNumber(e)) {
            var n = t / this.dataItems.length,
              a = e / this.dataItems.length;
            this.zoom({
              start: n,
              end: a
            }, i, r)
          }
        }, Object.defineProperty(e.prototype, "zoomFactor", {
          get: function() {
            return f.fitToRange(1 / (this.end - this.start), 1, this.maxZoomFactor)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "maxZoomFactor", {
          get: function() {
            return this.getPropertyValue("maxZoomFactor")
          },
          set: function(t) {
            this.setPropertyValue("maxZoomFactor", t) && (1 == t && (this.maxZoomDeclination = 0), this.invalidateDataRange())
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "maxZoomDeclination", {
          get: function() {
            return this.getPropertyValue("maxZoomDeclination")
          },
          set: function(t) {
            this.setPropertyValue("maxZoomDeclination", t) && this.invalidateDataRange()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "startIndex", {
          get: function() {
            return x.isNumber(this._startIndex) || (this._startIndex = 0), this._startIndex
          },
          set: function(t) {
            this._startIndex = f.fitToRange(Math.round(t), 0, this.dataItems.length), this.start = this.indexToPosition(this._startIndex)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.indexToPosition = function(t) {
          return t / this.dataItems.length
        }, Object.defineProperty(e.prototype, "endIndex", {
          get: function() {
            var t = this.dataItems.length;
            return (!x.isNumber(this._endIndex) || this._endIndex > t) && (this._endIndex = t), this._endIndex
          },
          set: function(t) {
            this._endIndex = f.fitToRange(Math.round(t), 0, this.dataItems.length), this.end = this.indexToPosition(this._endIndex)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "start", {
          get: function() {
            return this._adapterO ? this._adapterO.apply("start", this._start) : this._start
          },
          set: function(t) {
            if (this._start != t) {
              this._start = t;
              var e = Math.max(0, Math.floor(this.dataItems.length * t) || 0);
              this._startIndex = Math.min(e, this.dataItems.length), this.invalidateDataRange(), this.invalidate(), this.dispatchImmediately("startchanged"), this.dispatch("startendchanged")
            }
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "end", {
          get: function() {
            return this._adapterO ? this._adapterO.apply("end", this._end) : this._end
          },
          set: function(t) {
            this._end != t && (this._end = t, this._endIndex = Math.min(this.dataItems.length, Math.ceil(this.dataItems.length * t) || 0), this.invalidateDataRange(), this.invalidate(), this.dispatchImmediately("endchanged"), this.dispatch("startendchanged"))
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.removeFromInvalids = function() {
          t.prototype.removeFromInvalids.call(this), d.c.removeFromInvalidComponents(this), g.remove(d.c.invalidDataItems, this), g.remove(d.c.invalidDataRange, this), g.remove(d.c.invalidRawDatas, this)
        }, Object.defineProperty(e.prototype, "dataItems", {
          get: function() {
            if ("" != this._currentDataSetId) {
              var t = this.dataSets.getKey(this._currentDataSetId);
              if (t) return t
            }
            return this._dataItems
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "dataSets", {
          get: function() {
            return this._dataSets || (this._dataSets = new s.a), this._dataSets
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.setDataSet = function(t) {
          if (this._currentDataSetId != t) {
            if (this.dataSets.getKey(t)) return this.dataItems.each(function(t) {
              t.__disabled = !0
            }), this._currentDataSetId = t, this.invalidateDataRange(), this._prevStartIndex = void 0, this.dataItems.each(function(t) {
              t.__disabled = !1
            }), !0;
            if ("" != this._currentDataSetId) return this.dataItems.each(function(t) {
              t.__disabled = !0
            }), this._currentDataSetId = "", this.invalidateDataRange(), this._prevStartIndex = void 0, this.dataItems.each(function(t) {
              t.__disabled = !1
            }), !0
          }
          return !1
        }, Object.defineProperty(e.prototype, "currentDataSetId", {
          get: function() {
            return this._currentDataSetId
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "mainDataSet", {
          get: function() {
            return this._dataItems
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype._updateDataItemIndexes = function(t) {
          for (var e = this.mainDataSet.values, i = e.length, r = t; r < i; ++r) e[r]._index = r
        }, e.prototype.handleDataItemAdded = function(t) {
          t.newValue.component = this, this._updateDataItemIndexes(t.index), this.dataItemsInvalid || this.invalidateDataItems()
        }, e.prototype.handleDataItemRemoved = function(t) {
          this._updateDataItemIndexes(t.index), this.dataItemsInvalid || this.invalidateDataItems()
        }, e.prototype.bindDataField = function(t, e) {
          this.dataFields[t] = e, this.invalidateDataRange()
        }, e.prototype.invalidateProcessedData = function() {
          this.resetProcessedRange(), this.invalidateDataRange()
        }, e.prototype.resetProcessedRange = function() {
          this._prevEndIndex = null, this._prevStartIndex = null
        }, Object.defineProperty(e.prototype, "dataUsers", {
          get: function() {
            var t = this;
            return this._dataUsers || (this._dataUsers = new a.b, this._disposers.push(new l.b(function() {
              v.each(t._dataUsers.iterator(), function(t) {
                t.dispose()
              })
            }))), this._dataUsers
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.clone = function() {
          var e = t.prototype.clone.call(this);
          return e.dataFields = y.copyProperties(this.dataFields, {}), e
        }, e.prototype.copyFrom = function(e) {
          t.prototype.copyFrom.call(this, e), this.data = e.data, this.sequencedInterpolation = e.sequencedInterpolation, this.sequencedInterpolationDelay = e.sequencedInterpolationDelay, this.interpolationDuration = e.interpolationDuration, this.interpolationEasing = e.interpolationEasing
        }, e.prototype.reinit = function() {
          this._inited = !1, this.deepInvalidate()
        }, e.prototype.getExporting = function() {
          var e = t.prototype.getExporting.call(this);
          return e.adapter.has("data", this._exportData, -1, this) || (e.adapter.add("data", this._exportData, -1, this), this.events.on("datavalidated", function(t) {
            e.handleDataUpdated()
          })), e
        }, e.prototype._exportData = function(t) {
          return t.data = this.data, t
        }, e.prototype.setDisabled = function(e) {
          var i = t.prototype.setDisabled.call(this, e);
          return i && this.invalidateData(), i
        }, e.prototype.setShowOnInit = function(e) {
          e != this.getPropertyValue("showOnInit") && (!e || this.inited || this.hidden ? this._showOnInitDisposer2 && this.removeDispose(this._showOnInitDisposer2) : (this._showOnInitDisposer2 = this.events.once("dataitemsvalidated", this.hideInitially, this, !1), this._disposers.push(this._showOnInitDisposer2))), t.prototype.setShowOnInit.call(this, e)
        }, e.prototype.setBaseId = function(e) {
          e != this._baseId && this.dataInvalid && (this.dataInvalid = !1, d.c.removeFromInvalidComponents(this), this._baseId = e, this.invalidateData()), t.prototype.setBaseId.call(this, e)
        }, Object.defineProperty(e.prototype, "minZoomCount", {
          get: function() {
            return this.getPropertyValue("minZoomCount")
          },
          set: function(t) {
            this.setPropertyValue("minZoomCount", t)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "maxZoomCount", {
          get: function() {
            return this.getPropertyValue("maxZoomCount")
          },
          set: function(t) {
            this.setPropertyValue("maxZoomCount", t)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype._systemCheckIfValidate = function() {
          return !(this.dataInvalid || this.dataProvider && this.dataProvider.dataInvalid)
        }, e.prototype.asFunction = function(e) {
          return "interpolationEasing" == e || "rangeChangeEasing" == e || t.prototype.asIs.call(this, e)
        }, e
      }(n.a);
    d.c.registeredClasses.Component = _
  },
  YG4I: function(t, e, i) {
    var r = i("9XRO"),
      n = i("GtmK").f,
      a = {}.toString,
      o = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
    t.exports.f = function(t) {
      return o && "[object Window]" == a.call(t) ? function(t) {
        try {
          return n(t)
        } catch (t) {
          return o.slice()
        }
      }(t) : n(r(t))
    }
  },
  YOID: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return p
    });
    var r = i("m4/l"),
      n = i("C6dT"),
      a = i("Vs7R"),
      o = i("aCit"),
      s = i("hGwe"),
      l = i("Qkdp"),
      u = i("Mtpk"),
      h = i("8ZqG"),
      c = i("aFzC"),
      p = function(t) {
        function e() {
          var e = t.call(this) || this;
          e.className = "LineSeriesSegment", e.isMeasured = !1, e.interactionsEnabled = !1, e.layout = "none";
          var i = e.createChild(a.a);
          e.fillSprite = i, i.shouldClone = !1, i.setElement(e.paper.add("path")), i.isMeasured = !1, e._disposers.push(i);
          var r = e.createChild(a.a);
          return e.strokeSprite = r, r.shouldClone = !1, r.fill = Object(h.c)(), r.setElement(e.paper.add("path")), r.isMeasured = !1, e._disposers.push(r), e
        }
        return Object(r.c)(e, t), e.prototype.drawSegment = function(t, e, i, r) {
          if (!this.disabled)
            if (t.length > 0 && e.length > 0 && u.isNumber(t[0].x) && u.isNumber(t[0].y)) {
              var n = s.moveTo({
                  x: t[0].x - .2,
                  y: t[0].y - .2
                }) + s.moveTo(t[0]),
                a = this.series;
              "bezier" == a.smoothing ? n += new c.d(i, r).smooth(t) : "monotoneX" == a.smoothing ? n += new c.b({
                closed: !1
              }).smooth(t) : "monotoneY" == a.smoothing && (n += new c.c({
                closed: !1
              }).smooth(t)), 0 == this.strokeOpacity || 0 == this.strokeSprite.strokeOpacity || (this.strokeSprite.path = n), (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) && u.isNumber(e[0].x) && u.isNumber(e[0].y) && (n += s.lineTo(e[0]), "bezier" == a.smoothing ? n += new c.d(i, r).smooth(e) : "monotoneX" == a.smoothing ? n += new c.b({
                closed: !1
              }).smooth(e) : "monotoneY" == a.smoothing && (n += new c.c({
                closed: !1
              }).smooth(e)), n += s.lineTo(t[0]), n += s.closePath(), this.fillSprite.path = n)
            } else this.fillSprite.path = "", this.strokeSprite.path = ""
        }, e.prototype.copyFrom = function(e) {
          t.prototype.copyFrom.call(this, e);
          var i = this.strokeSprite;
          l.copyProperties(e, i.properties, a.b), i.events.copyFrom(e.strokeSprite.events), i.fillOpacity = 0;
          var r = this.fillSprite;
          l.copyProperties(e, r.properties, a.b), r.events.copyFrom(e.fillSprite.events), r.strokeOpacity = 0
        }, e
      }(n.a);
    o.c.registeredClasses.LineSeriesSegment = p
  },
  "YRD/": function(t, e, i) {
    "use strict";
    var r = i("1wCr"),
      n = i("8+rI"),
      a = i("KslR"),
      o = i("3sMl"),
      s = a("species");
    t.exports = function(t) {
      var e = r(t),
        i = n.f;
      o && e && !e[s] && i(e, s, {
        configurable: !0,
        get: function() {
          return this
        }
      })
    }
  },
  YWS7: function(t, e, i) {
    var r = i("0sYB"),
      n = i("9XRO"),
      a = i("tHyI");
    r({
      target: "String",
      stat: !0
    }, {
      raw: function(t) {
        for (var e = n(t.raw), i = a(e.length), r = arguments.length, o = [], s = 0; i > s;) o.push(String(e[s++])), s < r && o.push(String(arguments[s]));
        return o.join("")
      }
    })
  },
  Ybtf: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return o
    });
    var r = i("m4/l"),
      n = i("FzPm"),
      a = i("aCit"),
      o = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "Ellipse", e.element = e.paper.add("ellipse"), e.applyTheme(), e
        }
        return Object(r.c)(e, t), e.prototype.draw = function() {
          t.prototype.draw.call(this), this.element.attr({
            rx: this.radius
          }), this.element.attr({
            ry: this.radiusY
          })
        }, Object.defineProperty(e.prototype, "radiusY", {
          get: function() {
            return this.innerHeight / 2
          },
          set: function(t) {
            this.height = 2 * t, this.invalidate()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "radius", {
          get: function() {
            return this.innerWidth / 2
          },
          set: function(t) {
            this.width = 2 * t, this.invalidate()
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(n.a);
    a.c.registeredClasses.Ellipse = o
  },
  YcPX: function(t, e, i) {
    var r = i("0sYB"),
      n = i("Kg2n"),
      a = i("Tl3C").onFreeze,
      o = i("6EAy"),
      s = i("6aQQ"),
      l = Object.preventExtensions;
    r({
      target: "Object",
      stat: !0,
      forced: s(function() {
        l(1)
      }),
      sham: !o
    }, {
      preventExtensions: function(t) {
        return l && n(t) ? l(a(t)) : t
      }
    })
  },
  Ygeo: function(t, e, i) {
    "use strict";
    var r = i("UseD"),
      n = i("7dku").right,
      a = r.aTypedArray;
    (0, r.exportTypedArrayMethod)("reduceRight", function(t) {
      return n(a(this), t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
    })
  },
  YotE: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return o
    });
    var r = i("m4/l"),
      n = i("o0Lc"),
      a = i("hD5A"),
      o = function(t) {
        function e() {
          var e = null !== t && t.apply(this, arguments) || this;
          return e._domEvents = {}, e
        }
        return Object(r.c)(e, t), e.prototype._addDOMEvent = function(t, e, i, r) {
          var n = this;
          if (!this._domEvents[t]) {
            var o = function(t) {
              i.call(r, e, t)
            };
            this.target.element.addEventListener(t, o, !1), this._domEvents[t] = new a.a(function() {
              delete n._domEvents[t], n.target.element.removeEventListener(t, o, !1)
            })
          }
          return this._domEvents[t].increment()
        }, e.prototype._dispatchKeyboardEvent = function(t, e) {
          this.target.events.isEnabled(t) && this.target.events.dispatchImmediately(t, {
            type: t,
            target: this.target,
            event: e
          })
        }, e.prototype._on = function(e, i, r, n, o, s) {
          var l = t.prototype._on.call(this, e, i, r, n, o, s),
            u = [l.disposer];
          switch (i) {
            case "hit":
            case "doublehit":
            case "rightclick":
            case "down":
            case "up":
              this.target.clickable = !0;
              break;
            case "drag":
            case "dragstart":
            case "dragstop":
              this.target.draggable = !0;
              break;
            case "track":
              this.target.trackable = !0;
              break;
            case "resize":
              this.target.resizable = !0;
              break;
            case "swipe":
            case "swipeleft":
            case "swiperight":
              this.target.swipeable = !0;
              break;
            case "wheel":
            case "wheelup":
            case "wheeldown":
            case "wheelleft":
            case "wheelright":
              this.target.wheelable = !0;
              break;
            case "over":
            case "out":
              this.target.hoverable = !0;
              break;
            case "focus":
            case "blur":
            case "focusin":
            case "focusout":
              this.target.focusable = !0;
              break;
            case "keydown":
            case "keyup":
            case "keypress":
            case "input":
              u.push(this._addDOMEvent(i, i, this._dispatchKeyboardEvent, this))
          }
          return l.disposer = new a.c(u), l
        }, e
      }(n.b)
  },
  ZKUO: function(t, e, i) {
    i("0sYB")({
      target: "Reflect",
      stat: !0
    }, {
      ownKeys: i("grfs")
    })
  },
  ZLF9: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return d
    });
    var r = i("m4/l"),
      n = i("Tjl+"),
      a = i("P7v+"),
      o = i("vMqJ"),
      s = i("1yyj"),
      l = i("aCit"),
      u = i("MIZb"),
      h = i("Wglt"),
      c = i("Qkdp"),
      p = i("Mtpk"),
      d = function(t) {
        function e() {
          var e = t.call(this) || this;
          e._elements = new o.b, e.properties = {}, e.className = "Pattern", e.width = 10, e.height = 10, e.x = 0, e.y = 0, e.patternUnits = "userSpaceOnUse";
          var i = new u.a;
          return e.backgroundFill = i.getFor("background"), e.backgroundOpacity = 0, e.fillOpacity = 1, e.fill = i.getFor("alternativeBackground"), e.stroke = i.getFor("alternativeBackground"), e.strokeOpacity = 1, e.strokeWidth = 1, e.shapeRendering = "crispEdges", e.rotation = 0, e.element = e.paper.addGroup("pattern"), e.id = "pattern-" + l.c.getUniqueId(), e.element.attr({
            id: e.id
          }), e._disposers.push(e.element), e._disposers.push(new o.c(e._elements)), e.patternUnits = e.patternUnits, e.width = e.width, e.height = e.height, e.applyTheme(), e
        }
        return Object(r.c)(e, t), e.prototype.draw = function() {
          var t = this,
            e = this.element;
          if (e) {
            e.removeChildNodes();
            var i = this.paper.add("rect");
            i.attr({
              width: this.width,
              height: this.height,
              "shape-rendering": "crispEdges",
              fill: this.backgroundFill.hex,
              "fill-opacity": this.backgroundOpacity,
              stroke: this.backgroundFill.hex,
              "stroke-opacity": 0
            }), e.add(i), e.attr({
              x: this.x,
              y: this.y,
              width: this.width,
              height: this.height,
              stroke: this.stroke.hex,
              fill: this.fill.hex,
              "fill-opacity": this.fillOpacity,
              "stroke-opacity": this.strokeOpacity,
              "stroke-width": this.strokeWidth,
              "shape-rendering": this.shapeRendering,
              patternUnits: this.patternUnits,
              "stroke-dasharray": this.strokeDasharray
            }), h.each(this._elements.iterator(), function(e) {
              e.rotation = t.rotation, e.rotationX = t.properties.rotationX, e.rotationY = t.properties.rotationY, t.element.add(e)
            })
          }
        }, e.prototype.animate = function(t, e, i) {
          return new s.a(this, t, e, i).start()
        }, e.prototype.addElement = function(t) {
          this._elements.push(t), this._disposers.push(t)
        }, e.prototype.removeElement = function(t) {
          this._elements.removeValue(t), this.removeDispose(t)
        }, Object.defineProperty(e.prototype, "elements", {
          get: function() {
            return this._elements
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "fillOpacity", {
          get: function() {
            return this.properties.fillOpacity
          },
          set: function(t) {
            this.properties.fillOpacity = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "fill", {
          get: function() {
            return this.properties.fill
          },
          set: function(t) {
            this.properties.fill = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "backgroundFill", {
          get: function() {
            return this.properties.backgroundFill
          },
          set: function(t) {
            this.properties.backgroundFill = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "backgroundOpacity", {
          get: function() {
            return this.properties.backgroundOpacity
          },
          set: function(t) {
            this.properties.backgroundOpacity = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "stroke", {
          get: function() {
            return this.properties.stroke
          },
          set: function(t) {
            this.properties.stroke = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "strokeOpacity", {
          get: function() {
            return this.properties.strokeOpacity
          },
          set: function(t) {
            this.properties.strokeOpacity = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "strokeWidth", {
          get: function() {
            return this.properties.strokeWidth
          },
          set: function(t) {
            this.properties.strokeWidth = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "shapeRendering", {
          get: function() {
            return this.properties.shapeRendering
          },
          set: function(t) {
            this.properties.shapeRendering = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "rotation", {
          get: function() {
            return this.properties.rotation
          },
          set: function(t) {
            this.properties.rotation = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "patternUnits", {
          get: function() {
            return this.properties.patternUnits
          },
          set: function(t) {
            this.properties.patternUnits = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "width", {
          get: function() {
            return this.properties.width
          },
          set: function(t) {
            this.properties.width = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "height", {
          get: function() {
            return this.properties.height
          },
          set: function(t) {
            this.properties.height = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "x", {
          get: function() {
            return this.properties.x
          },
          set: function(t) {
            this.properties.x = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "y", {
          get: function() {
            return this.properties.y
          },
          set: function(t) {
            this.properties.y = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "paper", {
          get: function() {
            return this._paper ? this._paper : Object(a.b)()
          },
          set: function(t) {
            this._paper != t && (this._paper = t, this.draw(), t.appendDef(this.element))
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.copyFrom = function(e) {
          var i = this;
          t.prototype.copyFrom.call(this, e), c.each(e.properties, function(t, e) {
            i[t] = e
          })
        }, Object.defineProperty(e.prototype, "animations", {
          get: function() {
            return this._animations || (this._animations = [], this._disposers.push(new s.b(this._animations))), this._animations
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "strokeDasharray", {
          get: function() {
            return this.properties.strokeDashArray
          },
          set: function(t) {
            this.properties.strokeDashArray = t, this.draw()
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.processConfig = function(e) {
          if (e && p.hasValue(e.elements) && p.isArray(e.elements))
            for (var i = 0, r = e.elements.length; i < r; i++) {
              var a = e.elements[i];
              if (p.hasValue(a.type)) {
                var o = this.createEntryInstance(a);
                o instanceof n.a && (o.config = a), this.addElement(p.hasValue(a.typeProperty) ? o[a.typeProperty] : o.element)
              }
            }
          t.prototype.processConfig.call(this, e)
        }, e
      }(n.a);
    l.c.registeredClasses.Pattern = d
  },
  ZYec: function(t, e, i) {
    i("0sYB")({
      target: "Object",
      stat: !0
    }, {
      is: i("fXYt")
    })
  },
  ZhuL: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return s
    });
    var r = i("m4/l"),
      n = i("mIpt"),
      a = i("Qkdp"),
      o = i("Mtpk"),
      s = function(t) {
        function e() {
          var e = null !== t && t.apply(this, arguments) || this;
          return e.contentType = "application/json", e.options = {}, e
        }
        return Object(r.c)(e, t), e.isJSON = function(t) {
          try {
            return JSON.parse(t), !0
          } catch (t) {
            return !1
          }
        }, e.prototype.parse = function(t) {
          var e, i = this;
          try {
            o.hasValue(JSON) && (e = JSON.parse(t))
          } catch (t) {
            return
          }
          var r = o.hasValue(this.options.emptyAs),
            n = this.parsableNumbers,
            s = this.parsableDates;
          if (Array.isArray(e) && (n || s || r))
            for (var l = function(t, o) {
                var l = e[t];
                a.each(l, function(t, e) {
                  r && (l[t] = i.maybeToEmpty(l[t])), n && (l[t] = i.maybeToNumber(t, l[t])), s && (l[t] = i.maybeToDate(t, l[t]))
                })
              }, u = 0, h = e.length; u < h; u++) l(u);
          return e
        }, e
      }(n.a)
  },
  ZjxQ: function(t, e, i) {
    "use strict";
    var r = i("UseD"),
      n = r.aTypedArray,
      a = r.exportTypedArrayMethod,
      o = [].join;
    a("join", function(t) {
      return o.apply(n(this), arguments)
    })
  },
  ZoDA: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return o
    });
    var r = i("m4/l"),
      n = i("Uslz"),
      a = i("aCit"),
      o = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "ValueAxisBreak", e.applyTheme(), e
        }
        return Object(r.c)(e, t), Object.defineProperty(e.prototype, "startPosition", {
          get: function() {
            if (this.axis) return this.axis.valueToPosition(this.adjustedStartValue)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "endPosition", {
          get: function() {
            if (this.axis) return this.axis.valueToPosition(this.adjustedEndValue)
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(n.a);
    a.c.registeredClasses.ValueAxisBreak = o
  },
  aCit: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return u
    }), i.d(e, "c", function() {
      return h
    }), e.b = function(t, e) {
      var i = h.registeredClasses[e];
      return null != i && t instanceof i
    };
    var r = i("o0Lc"),
      n = i("+qIf"),
      a = i("eCqC"),
      o = i("Mtpk"),
      s = i("wUYf"),
      l = i("hJ5i"),
      u = function() {
        function t() {
          var t = this;
          this.events = new r.a, this.themes = [], this.loadedThemes = {}, this._uidCount = 0, this.registeredClasses = {}, this._placeholders = {}, this.invalidSprites = {}, this.invalidDatas = {}, this.invalidRawDatas = [], this.invalidDataItems = [], this.invalidDataRange = [], this.invalidPositions = {}, this.invalidLayouts = {}, this.baseSprites = [], this.baseSpritesByUid = {}, this.queue = [], this.deferred = [], this.uid = this.getUniqueId(), this.invalidSprites.noBase = [], this.invalidDatas.noBase = [], this.invalidLayouts.noBase = [], this.invalidPositions.noBase = [], "undefined" != typeof addEventListener && (addEventListener("beforeprint", function() {
            l.each(t.baseSprites, function(t) {
              var e = t.paper.svg;
              e.setAttribute("viewBox", "0 0 " + e.clientWidth + " " + e.clientHeight)
            })
          }), addEventListener("afterprint", function() {
            l.each(t.baseSprites, function(t) {
              t.paper.svg.removeAttribute("viewBox")
            })
          }))
        }
        return t.prototype.getUniqueId = function() {
          var t = this._uidCount;
          return this._uidCount += 1, "id-" + t
        }, Object.defineProperty(t.prototype, "map", {
          get: function() {
            return this._map || (this._map = new n.a), this._map
          },
          enumerable: !0,
          configurable: !0
        }), t.prototype.setCache = function(t, e, i) {
          a.b.set(this.uid, t, e, i)
        }, t.prototype.getCache = function(t, e) {
          return void 0 === e && (e = void 0), a.b.get(this.uid, t, e)
        }, t.prototype.dispatch = function(t, e) {
          this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatch(t, {
            type: t,
            target: this
          })) : this.events.dispatch(t, {
            type: t,
            target: this
          }))
        }, t.prototype.dispatchImmediately = function(t, e) {
          this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatchImmediately(t, e)) : this.events.dispatchImmediately(t, {
            type: t,
            target: this
          }))
        }, t.prototype.getPlaceholder = function(t) {
          return o.hasValue(this._placeholders[t]) ? this._placeholders[t] : (this._placeholders[t] = "__amcharts_" + t + "_" + s.random(8) + "__", this._placeholders[t])
        }, t.prototype.addToInvalidComponents = function(t) {
          t.baseId ? l.move(this.invalidDatas[t.baseId], t) : l.move(this.invalidDatas.noBase, t)
        }, t.prototype.removeFromInvalidComponents = function(t) {
          t.baseId && l.remove(this.invalidDatas[t.baseId], t), l.remove(this.invalidDatas.noBase, t)
        }, t.prototype.addToInvalidSprites = function(t) {
          t.baseId ? l.add(this.invalidSprites[t.baseId], t) : l.add(this.invalidSprites.noBase, t)
        }, t.prototype.removeFromInvalidSprites = function(t) {
          t.baseId && l.remove(this.invalidSprites[t.baseId], t), l.remove(this.invalidSprites.noBase, t)
        }, t.prototype.addToInvalidPositions = function(t) {
          t.baseId ? l.add(this.invalidPositions[t.baseId], t) : l.add(this.invalidPositions.noBase, t)
        }, t.prototype.removeFromInvalidPositions = function(t) {
          t.baseId && l.remove(this.invalidPositions[t.baseId], t), l.remove(this.invalidPositions.noBase, t)
        }, t.prototype.addToInvalidLayouts = function(t) {
          t.baseId ? l.add(this.invalidLayouts[t.baseId], t) : l.add(this.invalidLayouts.noBase, t)
        }, t.prototype.removeFromInvalidLayouts = function(t) {
          t.baseId && l.remove(this.invalidLayouts[t.baseId], t), l.remove(this.invalidLayouts.noBase, t)
        }, t
      }(),
      h = new u
  },
  aFzC: function(t, e, i) {
    "use strict";
    i.d(e, "d", function() {
      return u
    }), e.e = function(t, e, i, r, o, h) {
      var c = t.x,
        p = t.y,
        d = e.x,
        f = e.y,
        g = l.getDistance(t, e);
      h && (i = g / Math.round(g / i));
      var m = n.c.getCache(s.stringify(["wavedLine", t.x, e.x, t.y, e.y, i, r]));
      if (!m) {
        if (g > 0) {
          var y = Math.atan2(f - p, d - c),
            v = Math.cos(y),
            b = Math.sin(y),
            x = i * v,
            _ = i * b;
          if (i <= 1 || r <= 1) m = a.lineTo(e);
          else {
            var P = Math.round(2 * g / i),
              w = [],
              O = 1;
            d < c && (O *= -1), f < p && (O *= -1);
            for (var T = 0; T <= P; T++) {
              var S = c + T * x / 2 + (O *= -1) * r / 2 * b,
                C = p + T * _ / 2 - O * r / 2 * v;
              w.push({
                x: S,
                y: C
              })
            }
            m = new u(o, o).smooth(w)
          }
        } else m = "";
        n.c.setCache(s.stringify(["wavedLine", t.x, e.x, t.y, e.y, i, r]), m)
      }
      return m
    }, i.d(e, "b", function() {
      return f
    }), i.d(e, "c", function() {
      return g
    }), i.d(e, "a", function() {
      return m
    });
    var r = i("m4/l"),
      n = i("aCit"),
      a = i("hGwe"),
      o = i("hJ5i"),
      s = i("v9UT"),
      l = i("Gg2j"),
      u = function() {
        function t(t, e) {
          this._tensionX = t, this._tensionY = e
        }
        return t.prototype.smooth = function(t) {
          for (var e = t.length - 1; e > 0; e--) {
            var i = t[e],
              r = t[e - 1];
            Math.abs(i.x - r.x) < .1 && Math.abs(i.y - r.y) < .1 && t.splice(e - 1, 1)
          }
          var n = this._tensionX,
            o = this._tensionY;
          if (t.length < 3 || n >= 1 && o >= 1) return a.polyline(t);
          var s = t[0],
            u = t[t.length - 1],
            h = !1;
          l.round(s.x, 3) == l.round(u.x) && l.round(s.y) == l.round(u.y) && (h = !0);
          for (var c = "", p = (e = 0, t.length - 1); e < p; e++) {
            i = t[e - 1], r = t[e];
            var d = t[e + 1],
              f = t[e + 2];
            0 === e ? i = h ? t[t.length - 2] : t[e] : e == t.length - 2 && (f = h ? t[1] : t[e + 1]);
            var g = l.getCubicControlPointA(i, r, d, f, n, o),
              m = l.getCubicControlPointB(i, r, d, f, n, o);
            c += a.cubicCurveTo(d, g, m)
          }
          return c
        }, t
      }();
    var h = function() {
      function t(t, e) {
        this._reversed = t, this._closed = e.closed
      }
      return t.prototype._curve = function(t, e, i, r, n, o) {
        var s = (e - t) / 3;
        return this._reversed ? a.cubicCurveTo({
          x: r,
          y: e
        }, {
          x: i + s * n,
          y: t + s
        }, {
          x: r - s * o,
          y: e - s
        }) : a.cubicCurveTo({
          x: e,
          y: r
        }, {
          x: t + s,
          y: i + s * n
        }, {
          x: e - s,
          y: r - s * o
        })
      }, t.prototype.smooth = function(t) {
        var e = this,
          i = NaN,
          r = NaN,
          n = NaN,
          s = NaN,
          l = NaN,
          u = 0,
          h = "";
        switch (o.each(t, function(t) {
            var o = t.x,
              c = t.y;
            if (e._reversed) {
              var f = o;
              o = c, c = f
            }
            var g = NaN;
            if (o !== r || c !== s) {
              switch (u) {
                case 0:
                  u = 1, e._reversed ? h += a.lineTo({
                    x: c,
                    y: o
                  }) : h += a.lineTo({
                    x: o,
                    y: c
                  });
                  break;
                case 1:
                  u = 2;
                  break;
                case 2:
                  u = 3, h += e._curve(i, r, n, s, p(i, r, n, s, g = d(i, r, n, s, o, c)), g);
                  break;
                default:
                  h += e._curve(i, r, n, s, l, g = d(i, r, n, s, o, c))
              }
              i = r, r = o, n = s, s = c, l = g
            }
          }), u) {
          case 2:
            this._reversed ? h += a.lineTo({
              x: s,
              y: r
            }) : h += a.lineTo({
              x: r,
              y: s
            });
            break;
          case 3:
            h += this._curve(i, r, n, s, l, p(i, r, n, s, l))
        }
        return this._closed && (h += a.closePath()), h
      }, t
    }();

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

    function p(t, e, i, r, n) {
      var a = e - t;
      return a ? (3 * (r - i) / a - n) / 2 : n
    }

    function d(t, e, i, r, n, a) {
      var o = e - t,
        s = n - e,
        l = (r - i) / (o || s < 0 && -0),
        u = (a - r) / (s || o < 0 && -0),
        h = (l * s + u * o) / (o + s);
      return (c(l) + c(u)) * Math.min(Math.abs(l), Math.abs(u), .5 * Math.abs(h)) || 0
    }
    var f = function(t) {
        function e(e) {
          return t.call(this, !1, e) || this
        }
        return Object(r.c)(e, t), e
      }(h),
      g = function(t) {
        function e(e) {
          return t.call(this, !0, e) || this
        }
        return Object(r.c)(e, t), e
      }(h),
      m = function() {
        function t(t) {
          this._closed = t.closed
        }
        return t.prototype.smooth = function(t) {
          var e = this,
            i = NaN,
            r = NaN,
            n = NaN,
            s = NaN,
            l = NaN,
            u = NaN,
            h = NaN,
            c = NaN,
            p = NaN,
            d = NaN,
            f = 0,
            g = "",
            m = function(t, e) {
              g += a.cubicCurveTo({
                x: (i + 4 * r + t) / 6,
                y: (u + 4 * h + e) / 6
              }, {
                x: (2 * i + r) / 3,
                y: (2 * u + h) / 3
              }, {
                x: (i + 2 * r) / 3,
                y: (u + 2 * h) / 3
              })
            },
            y = function(t) {
              var o = t.x,
                y = t.y;
              switch (f) {
                case 0:
                  f = 1, e._closed ? (n = o, c = y) : g += a.lineTo({
                    x: o,
                    y: y
                  });
                  break;
                case 1:
                  f = 2, e._closed && (s = o, p = y);
                  break;
                case 2:
                  if (f = 3, e._closed) {
                    l = o, d = y, g += a.moveTo({
                      x: (i + 4 * r + o) / 6,
                      y: (u + 4 * h + y) / 6
                    });
                    break
                  }
                  g += a.lineTo({
                    x: (5 * i + r) / 6,
                    y: (5 * u + h) / 6
                  });
                default:
                  m(o, y)
              }
              i = r, r = o, u = h, h = y
            };
          if (o.each(t, y), this._closed) switch (f) {
            case 1:
              g += a.moveTo({
                x: n,
                y: c
              }), g += a.closePath();
              break;
            case 2:
              g += a.moveTo({
                x: (n + 2 * s) / 3,
                y: (c + 2 * p) / 3
              }), g += a.lineTo({
                x: (s + 2 * n) / 3,
                y: (p + 2 * c) / 3
              }), g += a.closePath();
              break;
            case 3:
              y({
                x: n,
                y: c
              }), y({
                x: s,
                y: p
              }), y({
                x: l,
                y: d
              })
          } else {
            switch (f) {
              case 3:
                m(r, h);
              case 2:
                g += a.lineTo({
                  x: r,
                  y: h
                })
            }
            g += a.closePath()
          }
          return g
        }, t
      }()
  },
  aGXA: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return u
    });
    var r = i("m4/l"),
      n = i("C6dT"),
      a = i("p9TX"),
      o = i("CnhP"),
      s = i("MIZb"),
      l = i("aCit"),
      u = function(t) {
        function e() {
          var e = t.call(this) || this;
          e.className = "Button", e.tooltipY = 0, e.iconPosition = "left", e.layout = "horizontal", e.contentAlign = "center", e.contentValign = "middle", e.padding(8, 16, 8, 16), e.setStateOnChildren = !0;
          var i = new s.a,
            r = e.background;
          r.fill = i.getFor("secondaryButton"), r.stroke = i.getFor("secondaryButtonStroke"), r.fillOpacity = 1, r.strokeOpacity = 1, r.cornerRadius(3, 3, 3, 3), e.label = new a.a, e.label.fill = i.getFor("secondaryButtonText"), e.label.shouldClone = !1;
          var n = r.states.create("hover");
          n.properties.fillOpacity = 1, n.properties.fill = i.getFor("secondaryButtonHover");
          var o = r.states.create("down");
          return o.transitionDuration = 100, o.properties.fill = i.getFor("secondaryButtonDown"), o.properties.fillOpacity = 1, e.role = "button", e.focusable = !0, e.applyTheme(), e
        }
        return Object(r.c)(e, t), Object.defineProperty(e.prototype, "icon", {
          get: function() {
            return this._icon
          },
          set: function(t) {
            var e = this._icon;
            e && (e.parent = void 0), t && (this._icon = t, t.parent = this, t.interactionsEnabled = !1, t.shouldClone = !1, this.iconPosition = this.iconPosition, this._disposers.push(t))
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "iconPosition", {
          get: function() {
            return this.getPropertyValue("iconPosition")
          },
          set: function(t) {
            this.setPropertyValue("iconPosition", t), this.icon && ("left" == t ? this.icon.toBack() : this.icon.toFront())
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "label", {
          get: function() {
            return this._label
          },
          set: function(t) {
            this._label && this.removeDispose(this._label), this._label = t, t && (t.parent = this, t.interactionsEnabled = !1, this._disposers.push(this._label))
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.createBackground = function() {
          return new o.a
        }, e.prototype.copyFrom = function(e) {
          t.prototype.copyFrom.call(this, e), e.label && this.label.copyFrom(e.label), e.icon && (this.icon = e.icon.clone())
        }, e
      }(n.a);
    l.c.registeredClasses.Button = u
  },
  aHAe: function(t, e, i) {
    "use strict";
    var r = i("cLsB"),
      n = i("7X7h"),
      a = i("VwzZ"),
      o = i("3Ok2"),
      s = i("tHyI"),
      l = i("WShl"),
      u = i("Ur2B");
    t.exports = function(t) {
      var e, i, h, c, p, d, f = n(t),
        g = "function" == typeof this ? this : Array,
        m = arguments.length,
        y = m > 1 ? arguments[1] : void 0,
        v = void 0 !== y,
        b = u(f),
        x = 0;
      if (v && (y = r(y, m > 2 ? arguments[2] : void 0, 2)), void 0 == b || g == Array && o(b))
        for (i = new g(e = s(f.length)); e > x; x++) d = v ? y(f[x], x) : f[x], l(i, x, d);
      else
        for (p = (c = b.call(f)).next, i = new g; !(h = p.call(c)).done; x++) d = v ? a(c, y, [h.value, x], !0) : h.value, l(i, x, d);
      return i.length = x, i
    }
  },
  aM7D: function(t, e, i) {
    "use strict";
    i.d(e, "b", function() {
      return O
    }), i.d(e, "a", function() {
      return T
    });
    var r = i("m4/l"),
      n = i("Y9w3"),
      a = i("Vs7R"),
      o = i("vMqJ"),
      s = i("+qIf"),
      l = i("A6AV"),
      u = i("C6dT"),
      h = i("cxKZ"),
      c = i("TXRX"),
      p = i("uWmK"),
      d = i("Q4nc"),
      f = i("8ZqG"),
      g = i("aCit"),
      m = i("Wglt"),
      y = i("Gg2j"),
      v = i("0FpR"),
      b = i("v9UT"),
      x = i("Qkdp"),
      _ = i("Mtpk"),
      P = i("hJ5i"),
      w = i("hxI2"),
      O = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "SeriesDataItem", e.values.value = {}, e.values.value = {}, e.applyTheme(), e
        }
        return Object(r.c)(e, t), Object.defineProperty(e.prototype, "bullets", {
          get: function() {
            return this._bullets || (this._bullets = new s.a, this._disposers.push(new s.b(this._bullets))), this._bullets
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.dispose = function() {
          this.bullets.clear(), t.prototype.dispose.call(this)
        }, Object.defineProperty(e.prototype, "value", {
          get: function() {
            return this.values.value.value
          },
          set: function(t) {
            this.setValue("value", t)
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(l.a),
      T = function(t) {
        function e() {
          var i = t.call(this) || this;
          if (i._ignoreMinMax = !1, i._showBullets = !0, i.legendSettings = new p.c, i._tmin = new s.a, i._tmax = new s.a, i._smin = new s.a, i._smax = new s.a, i.dataItemsByAxis = new s.a, i.skipFocusThreshold = 20, i._itemReaderTextChanged = !1, i.calculatePercent = !1, i.usePercentHack = !0, i.autoDispose = !0, i.simplifiedProcessing = !1, i.constructor === e) throw new Error("'Series' cannot be instantiated directly. Please use a specific series type.");
          i.className = "Series", i.isMeasured = !1, i.layout = "none", i.shouldClone = !1, i.setPropertyValue("hidden", !1), i.axisRanges = new o.b, i.axisRanges.events.on("inserted", i.processAxisRange, i, !1), i.minBulletDistance = 0, i.mainContainer = i.createChild(u.a), i.mainContainer.shouldClone = !1, i.mainContainer.mask = i.createChild(a.a), i._disposers.push(i.mainContainer);
          var r = i.mainContainer.createChild(u.a);
          return i._shouldBeReady.push(r), r.shouldClone = !1, r.layout = "none", r.virtualParent = i, i._disposers.push(r), i.bulletsContainer = r, i.tooltip = new h.a, i.tooltip.virtualParent = i, i._disposers.push(i.tooltip), i.hiddenState.transitionEasing = v.cubicIn, i.dataItem = i.createDataItem(), i._disposers.push(i.dataItem), i.dataItem.component = i, i.role = "group", i.applyTheme(), i
        }
        return Object(r.c)(e, t), e.prototype.applyTheme = function() {
          t.prototype.applyTheme.call(this), d.a.autoSetClassName && this.bulletsContainer && (this.bulletsContainer.className = this.className + "-bullets", this.bulletsContainer.setClassName())
        }, e.prototype.applyInternalDefaults = function() {
          t.prototype.applyInternalDefaults.call(this), _.hasValue(this.readerTitle) || (this.readerTitle = this.language.translate("Series"))
        }, e.prototype.createDataItem = function() {
          return new O
        }, Object.defineProperty(e.prototype, "chart", {
          get: function() {
            return this._chart
          },
          set: function(t) {
            this._chart = t
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.positionBullet = function(t) {}, e.prototype.processBullet = function(t) {
          var e = this,
            i = t.newValue;
          i.isTemplate = !0, this.events.once("datavalidated", function(t) {
            e.itemsFocusable() && (i.focusable = !0)
          })
        }, e.prototype.removeBullet = function(t) {
          var e = t.oldValue;
          this.dataItems.each(function(t) {
            var i = t.bullets.getKey(e.uid);
            i && i.dispose()
          }), this.invalidate()
        }, e.prototype.validateDataItems = function() {
          t.prototype.validateDataItems.call(this), this.processValues(!1)
        }, e.prototype.getFirstValue = function(t, e) {
          for (var i = e; i >= 0; i--) {
            var r = this.dataItems.getIndex(i).getActualWorkingValue(t);
            if (_.isNumber(r)) return r
          }
          return null
        }, e.prototype.getAbsoluteFirstValue = function(t) {
          for (var e = 0; e < this.dataItems.length; e++) {
            var i = this.dataItems.getIndex(e).values[t].value;
            if (_.isNumber(i)) return i
          }
          return null
        }, e.prototype.rangeChangeUpdate = function() {
          t.prototype.rangeChangeUpdate.call(this), this.processValues(!0)
        }, e.prototype.processValues = function(t) {
          var e = this;
          if (!this.simplifiedProcessing) {
            var i = this.dataItems,
              r = {},
              n = {},
              a = {},
              o = {},
              s = {},
              l = {},
              u = {},
              h = {},
              c = {},
              p = {},
              d = y.max(0, this.startIndex);
            d = y.min(d, this.dataItems.length);
            var f = y.min(this.endIndex, this.dataItems.length);
            if (_.isNumber(d) || (d = 0), _.isNumber(f) || (f = this.dataItems.length), d > 0) {
              var g = i.getIndex(d - 1);
              x.each(g.values, function(t, e) {
                var i = g.getActualWorkingValue(t);
                _.isNumber(i) && (h[t] = i)
              })
            }
            for (var m = function(t) {
                var f = i.getIndex(t);
                x.each(f.values, function(t, i) {
                  var g = f.getActualWorkingValue(t);
                  if (_.isNumber(g)) {
                    _.isNumber(r[t]) || (r[t] = 0), r[t]++, _.isNumber(n[t]) || (n[t] = 0), n[t] += g, _.isNumber(a[t]) || (a[t] = 0), a[t] += Math.abs(g), _.isNumber(l[t]) || (l[t] = g), u[t] = g, _.isNumber(o[t]) ? o[t] > g && (o[t] = g) : o[t] = g, _.isNumber(s[t]) ? s[t] < g && (s[t] = g) : s[t] = g, _.isNumber(c[t]) || (c[t] = e.getFirstValue(t, d)), _.isNumber(p[t]) || (p[t] = e.getAbsoluteFirstValue(t)), f.setCalculatedValue(t, g - c[t], "change"), f.setCalculatedValue(t, (g - c[t]) / c[t] * 100, "changePercent"), f.setCalculatedValue(t, g - p[t], "startChange"), f.setCalculatedValue(t, (g - p[t]) / p[t] * 100, "startChangePercent");
                    var m = h[t];
                    _.isNumber(m) || (m = g), f.setCalculatedValue(t, g - m, "previousChange"), f.setCalculatedValue(t, (g - m) / m * 100, "previousChangePercent"), h[t] = g
                  }
                })
              }, v = d; v < f; v++) m(v);
            if (this.calculatePercent) {
              var b = function(t) {
                var r = i.getIndex(t);
                x.each(r.values, function(t) {
                  var i = a[t],
                    n = r.getActualWorkingValue(t);
                  if (_.isNumber(n))
                    if (i > 0) {
                      e.usePercentHack && n == i && (i = r.values[t].value);
                      var o = n / i * 100;
                      r.setCalculatedValue(t, o, "percent")
                    } else r.setCalculatedValue(t, 0, "percent")
                })
              };
              for (v = d; v < f; v++) b(v)
            }
            if (d > 0) {
              var P = i.getIndex(d - 1);
              x.each(P.values, function(t) {
                var e = P.values[t].value;
                P.setCalculatedValue(t, e - l[t], "change"), P.setCalculatedValue(t, (e - l[t]) / l[t] * 100, "changePercent")
              })
            }
            var w = this.dataItem;
            x.each(w.values, function(t) {
              w.setCalculatedValue(t, n[t], "sum"), w.setCalculatedValue(t, a[t], "absoluteSum"), w.setCalculatedValue(t, n[t] / r[t], "average"), w.setCalculatedValue(t, l[t], "open"), w.setCalculatedValue(t, u[t], "close"), w.setCalculatedValue(t, o[t], "low"), w.setCalculatedValue(t, s[t], "high"), w.setCalculatedValue(t, r[t], "count")
            })
          }
        }, e.prototype.validate = function() {
          b.isIE() && this.filters.clear(), m.each(this.axisRanges.iterator(), function(t) {
            t.validate()
          }), t.prototype.validate.call(this);
          var e = this.bulletsContainer;
          if (e.fill = this.fill, e.stroke = this.stroke, e.x = this.pixelX, e.y = this.pixelY, this.bulletsContainer.children.length > 0)
            if (this._showBullets) {
              for (var i = 0; i < this.startIndex; i++) {
                (r = this.dataItems.getIndex(i)) && r.bullets.each(function(t, e) {
                  e.__disabled = !0
                })
              }
              for (i = this.dataItems.length - 1; i > this.endIndex; i--) {
                var r;
                (r = this.dataItems.getIndex(i)) && r.bullets.each(function(t, e) {
                  e.__disabled = !0
                })
              }
            } else this.bulletsContainer.children.each(function(t) {
              t.__disabled = !0
            });
          this.updateTooltipBounds()
        }, e.prototype.updateTooltipBounds = function() {
          if (this.topParent) {
            var t = {
              x: 0,
              y: 0,
              width: this.topParent.maxWidth,
              height: this.topParent.maxHeight
            };
            this.tooltip.setBounds(t)
          }
        }, e.prototype.shouldCreateBullet = function(t, e) {
          return !0
        }, e.prototype.validateDataElement = function(e) {
          var i = this;
          t.prototype.validateDataElement.call(this, e), this._showBullets ? (this.isHidden || (this.bulletsContainer.visible = !0), this.bullets.each(function(t) {
            var r = e.bullets.getKey(t.uid);
            if (i.shouldCreateBullet(e, t)) {
              if (!r) {
                var n = t.propertyFields.disabled,
                  a = e.dataContext;
                n && a && !1 === a[n] ? (t.applyOnClones = !1, t.disabled = !1, r = t.clone(), t.disabled = !0, t.applyOnClones = !0) : r = t.clone(), r.shouldClone = !1, e.addSprite(r), i.visible && !i.isHiding || r.hide(0)
              }
              var o = r.dataItem;
              if (o != e) {
                o && o.bullets.setKey(t.uid, void 0);
                var s = i.itemReaderText;
                r instanceof c.a && (s || (s = "{" + r.xField + "}: {" + r.yField + "}"), r.isDynamic && (e.events.on("workingvaluechanged", r.deepInvalidate, r, !1), i.dataItem.events.on("workingvaluechanged", r.deepInvalidate, r, !1)), r.deepInvalidate()), r.focusable && (r.events.on("focus", function(t) {
                  r.readerTitle = i.populateString(s, r.dataItem)
                }, void 0, !1), r.events.on("blur", function(t) {
                  r.readerTitle = ""
                }, void 0, !1)), r.hoverable && (r.events.on("over", function(t) {
                  r.readerTitle = i.populateString(s, r.dataItem)
                }, void 0, !1), r.events.on("out", function(t) {
                  r.readerTitle = ""
                }, void 0, !1))
              }
              r.parent = i.bulletsContainer, e.bullets.setKey(t.uid, r), r.maxWidth = e.itemWidth, r.maxHeight = e.itemHeight, r.__disabled = !1, i.positionBullet(r)
            } else r && (r.__disabled = !0)
          })) : this.bulletsContainer.visible = !1
        }, e.prototype.handleDataItemWorkingValueChange = function(t, e) {
          this.dataRangeInvalid || this.invalidateProcessedData()
        }, Object.defineProperty(e.prototype, "ignoreMinMax", {
          get: function() {
            return this._ignoreMinMax
          },
          set: function(t) {
            this._ignoreMinMax = t, this.invalidateDataItems()
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.createMask = function() {}, e.prototype.processAxisRange = function(t) {
          this.rangesContainer || (this.rangesContainer = this.createChild(u.a), this.rangesContainer.shouldClone = !1, this.rangesContainer.isMeasured = !1);
          var e = t.newValue;
          e && (e.contents.parent = this.rangesContainer, e.isRange = !0, e.events.on("valuechanged", this.invalidateDataItems, this, !1))
        }, e.prototype.getAxisField = function(t) {}, e.prototype.showTooltipAtPosition = function(t, e) {}, Object.defineProperty(e.prototype, "minBulletDistance", {
          get: function() {
            return this.getPropertyValue("minBulletDistance")
          },
          set: function(t) {
            this.setPropertyValue("minBulletDistance", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "bullets", {
          get: function() {
            return this._bullets || (this._bullets = new o.e(new c.a), this._bullets.template.virtualParent = this, this._bullets.events.on("inserted", this.processBullet, this, !1), this._bullets.events.on("removed", this.removeBullet, this, !1), this._disposers.push(new o.c(this._bullets)), this._disposers.push(this._bullets.template)), this._bullets
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.createLegendMarker = function(t) {}, Object.defineProperty(e.prototype, "hiddenInLegend", {
          get: function() {
            return this.getPropertyValue("hiddenInLegend")
          },
          set: function(t) {
            this.setPropertyValue("hiddenInLegend", t) && this.chart && this.chart.feedLegend()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "name", {
          get: function() {
            return this.getPropertyValue("name")
          },
          set: function(t) {
            this.setPropertyValue("name", t);
            var e = this.legendDataItem;
            e && (e.component.invalidate(), e.component.invalidateRawData()), this.readerTitle = t
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "itemReaderText", {
          get: function() {
            var t = this._itemReaderText;
            return t || (this.tooltipText ? t = b.plainText(this.tooltipText) : this.tooltipHTML && (t = b.plainText(this.tooltipHTML))), this._adapterO ? this._adapterO.apply("itemReaderText", t) : t
          },
          set: function(t) {
            this._itemReaderText = t, this._itemReaderTextChanged = !0
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.itemsFocusable = function() {
          return !(this.dataItems.length >= this.skipFocusThreshold)
        }, Object.defineProperty(e.prototype, "legendDataItem", {
          get: function() {
            return this._legendDataItem
          },
          set: function(t) {
            this._legendDataItem = t, this._legendDataItem.itemContainer.deepInvalidate()
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.updateLegendValue = function(t, e) {
          if (this.legendDataItem) {
            var i = this.legendSettings,
              r = this.legendDataItem,
              n = r.label,
              a = r.valueLabel;
            t || e ? (a && (i.itemValueText && (a.text = i.itemValueText), a.dataItem = t), n && (i.itemLabelText && (n.text = i.itemLabelText), n.dataItem = t)) : (n && ((i.labelText || void 0 != i.itemLabelText) && (n.text = i.labelText), n.dataItem = this.dataItem), a && ((i.valueText || void 0 != i.itemValueText) && (a.text = i.valueText), a.dataItem = this.dataItem))
          }
        }, e.prototype.copyFrom = function(e) {
          this.bullets.copyFrom(e.bullets), this.bulletsContainer.copyFrom(e.bulletsContainer), this.calculatePercent = e.calculatePercent, this.usePercentHack = e.usePercentHack, this.simplifiedProcessing = e.simplifiedProcessing, t.prototype.copyFrom.call(this, e)
        }, e.prototype.raiseCriticalError = function(t) {
          this._chart && this._chart.modal && (this._chart.modal.content = this._chart.adapter.apply("criticalError", t).message, this._chart.modal.closable = !1, d.a.suppressErrors || this._chart.modal.open(), this._chart.disabled = !0), d.a.verbose && console.log(t)
        }, e.prototype.applyFilters = function() {
          var e = this;
          t.prototype.applyFilters.call(this), this.bulletsContainer.filters.clear(), m.each(this.filters.iterator(), function(t) {
            e.bulletsContainer.filters.push(t.clone())
          })
        }, Object.defineProperty(e.prototype, "heatRules", {
          get: function() {
            var t = this;
            return this._heatRules || (this._heatRules = new o.b, this._heatRules.events.on("inserted", function(e) {
              var i = e.newValue,
                r = i.target;
              if (r) {
                var n = i.dataField;
                _.hasValue(n) || (n = "value");
                var o = t.dataItem,
                  s = i.property,
                  l = _.toNumber(i.minValue),
                  h = _.toNumber(i.maxValue);
                _.isNumber(l) || _.isNumber(h) || t.dataItem.events.on("calculatedvaluechanged", function(e) {
                  e.property == n && m.each(t.dataItems.iterator(), function(t) {
                    var e = !1;
                    P.each(t.sprites, function(t) {
                      if (t.clonedFrom == r) {
                        var i = t;
                        i[s] = i[s], e = !0
                      }
                    }), e || P.each(t.sprites, function(t) {
                      t instanceof u.a && m.each(t.children.iterator(), function(t) {
                        if (t.className == r.className) {
                          var e = t;
                          e[s] = e[s]
                        } else t instanceof u.a && t.deepInvalidate()
                      })
                    })
                  })
                }), t.dataItems.template.events.on("workingvaluechanged", function(t) {
                  if (t.property == n) {
                    var e = t.target,
                      i = !1;
                    P.each(e.sprites, function(t) {
                      if (t.clonedFrom == r) {
                        var e = t;
                        e[s] = e[s], i = !0
                      }
                    }), i || P.each(e.sprites, function(t) {
                      t instanceof u.a && m.each(t.children.iterator(), function(t) {
                        if (t.className == r.className) {
                          var e = t;
                          e[s] = e[s]
                        } else t instanceof u.a && t.deepInvalidate()
                      })
                    })
                  }
                }), r.adapter.add(s, function(t, e, r) {
                  var s = _.toNumber(i.minValue),
                    l = _.toNumber(i.maxValue),
                    u = i.min,
                    h = i.max;
                  if (e instanceof a.a) {
                    var c = e.propertyFields[r];
                    if (c && e.dataItem) {
                      var p = e.dataItem.dataContext;
                      if (p && _.hasValue(p[c])) return t
                    }
                  }
                  var d = e.dataItem;
                  if ((_.isNumber(s) || (s = o.values[n].low), _.isNumber(l) || (l = o.values[n].high), d) && d.values[n]) {
                    var g = d.getActualWorkingValue(n);
                    if (_.hasValue(u) && _.hasValue(h) && _.isNumber(s) && _.isNumber(l) && _.isNumber(g)) {
                      var m = void 0;
                      if (m = i.logarithmic ? (Math.log(g) * Math.LOG10E - Math.log(s) * Math.LOG10E) / (Math.log(l) * Math.LOG10E - Math.log(s) * Math.LOG10E) : (g - s) / (l - s), !_.isNumber(g) || _.isNumber(m) && Math.abs(m) != 1 / 0 || (m = .5), _.isNumber(u)) return u + (h - u) * m;
                      if (u instanceof f.a) return new f.a(w.interpolate(u.rgb, h.rgb, m))
                    }
                  }
                  return t
                })
              }
            })), this._heatRules
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.processConfig = function(e) {
          var i;
          if (e) {
            if (_.hasValue(e.bullets) && _.isArray(e.bullets))
              for (var r = 0, n = e.bullets.length; r < n; r++) {
                var a = e.bullets[r];
                _.hasValue(a.type) || (a.type = "Bullet")
              }
            _.hasValue(e.heatRules) && _.isArray(e.heatRules) && (i = e.heatRules, delete e.heatRules)
          }
          if (t.prototype.processConfig.call(this, e), i) {
            for (r = 0, n = i.length; r < n; r++) {
              var s = i[r],
                l = this;
              if (_.hasValue(s.target) && _.isString(s.target))
                if (this.map.hasKey(s.target)) l = this.map.getKey(s.target);
                else
                  for (var u = s.target.split("."), h = 0; h < u.length; h++)
                    if (l instanceof o.b) {
                      var c = l.getIndex(_.toNumber(u[h]));
                      l = c || l[u[h]]
                    } else {
                      var p = u[h].match(/^(.*)\[([0-9]+)\]/);
                      l = p ? l[p[1]] instanceof o.b ? l[p[1]].getIndex(_.toNumber(p[2])) : l[p[1]][_.toNumber(p[2])] : l[u[h]]
                    } s.target = l, _.hasValue(s.min) && (s.min = this.maybeColorOrPercent(s.min)), _.hasValue(s.max) && (s.max = this.maybeColorOrPercent(s.max))
            }
            t.prototype.processConfig.call(this, {
              heatRules: i
            })
          }
        }, e.prototype.configOrder = function(e, i) {
          return e == i ? 0 : "heatRules" == e ? 1 : "heatRules" == i ? -1 : t.prototype.configOrder.call(this, e, i)
        }, e.prototype.setVisibility = function(e) {
          t.prototype.setVisibility.call(this, e), this.bulletsContainer.visible = e
        }, e
      }(n.a);
    g.c.registeredClasses.Series = T, g.c.registeredClasses.SeriesDataItem = O
  },
  aSLB: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("3sMl"),
      a = i("hqo8"),
      o = i("7X7h"),
      s = i("HnbP"),
      l = i("8+rI");
    n && r({
      target: "Object",
      proto: !0,
      forced: a
    }, {
      __defineSetter__: function(t, e) {
        l.f(o(this), t, {
          set: s(e),
          enumerable: !0,
          configurable: !0
        })
      }
    })
  },
  abrF: function(t, e, i) {
    var r = i("0sYB"),
      n = i("6aQQ"),
      a = i("YG4I").f;
    r({
      target: "Object",
      stat: !0,
      forced: n(function() {
        return !Object.getOwnPropertyNames(1)
      })
    }, {
      getOwnPropertyNames: a
    })
  },
  akNo: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return d
    });
    var r = i("m4/l"),
      n = i("P/bD"),
      a = i("Tjl+"),
      o = i("MipW"),
      s = i("aCit"),
      l = i("ScGY"),
      u = i("Qkdp"),
      h = i("v9UT"),
      c = i("Mtpk"),
      p = i("Gg2j"),
      d = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e._negativeBase = 0, e._baseUnit = "second", e._outputFormat = "svg", e._unitValues = {
            millisecond: 1,
            second: 1e3,
            minute: 6e4,
            hour: 36e5,
            day: 864e5,
            week: 6048e5,
            month: 2592e6,
            year: 31536e6
          }, e._unitAliases = {
            Y: "y",
            D: "d",
            H: "h",
            K: "h",
            k: "h",
            n: "S"
          }, e.className = "DurationFormatter", e.applyTheme(), e
        }
        return Object(r.c)(e, t), e.prototype.format = function(t, e, i) {
          this.language || (this.sprite ? this.language = this.sprite.language : this.language = new n.a);
          var r = i || this._baseUnit;
          void 0 !== e && "" !== e || (e = c.hasValue(this.durationFormat) ? this.durationFormat : this.getFormat(c.toNumber(t), null, r)), e = h.cleanFormat(e);
          var a, o = this.parseFormat(e, r),
            s = Number(t);
          a = s > this._negativeBase ? o.positive : s < this._negativeBase ? o.negative : o.zero;
          var l = this.applyFormat(s, a);
          return "" !== a.color && ("svg" === this._outputFormat ? l = "<tspan fill='" + a.color + "'>" + l + "</tspan>" : "html" === this._outputFormat && (l = "<span style='color: " + a.color + ";'>" + l + "</span>")), l
        }, e.prototype.parseFormat = function(t, e) {
          var i = this,
            r = this.getCache(t);
          if (c.hasValue(r)) return r;
          var n = e || this._baseUnit,
            a = {
              positive: {
                color: "",
                template: "",
                parts: [],
                source: "",
                baseUnit: n,
                parsed: !1,
                absolute: !1
              },
              negative: {
                color: "",
                template: "",
                parts: [],
                source: "",
                baseUnit: n,
                parsed: !1,
                absolute: !1
              },
              zero: {
                color: "",
                template: "",
                parts: [],
                source: "",
                baseUnit: n,
                parsed: !1,
                absolute: !1
              }
            },
            s = (t = t.replace("||", l.e)).split("|");
          return a.positive.source = s[0], void 0 === s[2] ? a.zero = a.positive : a.zero.source = s[2], void 0 === s[1] ? a.negative = a.positive : a.negative.source = s[1], u.each(a, function(t, e) {
            if (!e.parsed)
              if (void 0 === i.getCache(e.source)) {
                var r, n = e.source;
                (r = e.source.match(/^\[([^\]]*)\]/)) && r.length && "" !== r[0] && (n = e.source.substr(r[0].length), e.color = r[1]);
                for (var s = Object(o.b)().chunk(n, !0), u = 0; u < s.length; u++) {
                  var h = s[u];
                  if (h.text = h.text.replace(l.e, "|"), "value" === h.type) {
                    h.text.match(/[yYMdDwhHKkmsSn]+a/) && (e.absolute = !0, h.text = h.text.replace(/([yYMdDwhHKkmsSn]+)a/, "$1"));
                    var p = h.text.match(/y+|Y+|M+|d+|D+|w+|h+|H+|K+|k+|m+|s+|S+|n+/g);
                    if (p)
                      for (var d = 0; d < p.length; d++) c.hasValue(p[d]) || (p[d] = i._unitAliases[p[d]]), e.parts.push(p[d]), h.text = h.text.replace(p[d], l.d)
                  }
                  e.template += h.text
                }
                i.setCache(e.source, e), e.parsed = !0
              } else a[t] = i.getCache(e.source)
          }), this.setCache(t, a), a
        }, e.prototype.applyFormat = function(t, e) {
          var i = !e.absolute && t < this._negativeBase;
          t = Math.abs(t);
          for (var r = this.toTimeStamp(t, e.baseUnit), n = e.template, a = 0, o = e.parts.length; a < o; a++) {
            var s = e.parts[a],
              u = this.toTimeUnit(s.substr(0, 1)),
              c = s.length,
              p = Math.floor(r / this._unitValues[u]);
            n = n.replace(l.d, h.padString(p, c, "0")), r -= p * this._unitValues[u]
          }
          return i && (n = "-" + n), n
        }, e.prototype.toTimeStamp = function(t, e) {
          return t * this._unitValues[e]
        }, e.prototype.toTimeUnit = function(t) {
          switch (t) {
            case "S":
              return "millisecond";
            case "s":
              return "second";
            case "m":
              return "minute";
            case "h":
              return "hour";
            case "d":
              return "day";
            case "w":
              return "week";
            case "M":
              return "month";
            case "y":
              return "year"
          }
        }, e.prototype.invalidateSprite = function() {
          this.sprite && this.sprite.invalidate()
        }, Object.defineProperty(e.prototype, "baseUnit", {
          get: function() {
            return this._baseUnit
          },
          set: function(t) {
            this._baseUnit = t, this.invalidateSprite()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "outputFormat", {
          get: function() {
            return this._outputFormat
          },
          set: function(t) {
            this._outputFormat = t.toLowerCase(), this.invalidateSprite()
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.getFormat = function(t, e, i) {
          if (c.hasValue(this.durationFormat)) return this.durationFormat;
          if (i || (i = this.baseUnit), c.hasValue(e) && t != e) {
            t = Math.abs(t), e = Math.abs(e);
            var r = this.getValueUnit(p.max(t, e), i);
            return this.durationFormats[i][r]
          }
          var n = this.getValueUnit(t, i);
          return this.durationFormats[i][n]
        }, e.prototype.getValueUnit = function(t, e) {
          var i;
          e || (e = this.baseUnit);
          var r = this.getMilliseconds(t, e);
          return u.eachContinue(this._unitValues, function(t, n) {
            if (t == e || i) {
              if (r / n <= 1) return i || (i = t), !1;
              i = t
            }
            return !0
          }), i
        }, e.prototype.getMilliseconds = function(t, e) {
          return e || (e = this.baseUnit), t * this._unitValues[e]
        }, Object.defineProperty(e.prototype, "durationFormat", {
          get: function() {
            return this._durationFormat
          },
          set: function(t) {
            this._durationFormat != t && (this._durationFormat = t, this.invalidateSprite())
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "durationFormats", {
          get: function() {
            return this._durationFormats || (this._durationFormats = {
              millisecond: {
                millisecond: this.language.translate("_duration_millisecond"),
                second: this.language.translate("_duration_millisecond_second"),
                minute: this.language.translate("_duration_millisecond_minute"),
                hour: this.language.translate("_duration_millisecond_hour"),
                day: this.language.translate("_duration_millisecond_day"),
                week: this.language.translate("_duration_millisecond_week"),
                month: this.language.translate("_duration_millisecond_month"),
                year: this.language.translate("_duration_millisecond_year")
              },
              second: {
                second: this.language.translate("_duration_second"),
                minute: this.language.translate("_duration_second_minute"),
                hour: this.language.translate("_duration_second_hour"),
                day: this.language.translate("_duration_second_day"),
                week: this.language.translate("_duration_second_week"),
                month: this.language.translate("_duration_second_month"),
                year: this.language.translate("_duration_second_year")
              },
              minute: {
                minute: this.language.translate("_duration_minute"),
                hour: this.language.translate("_duration_minute_hour"),
                day: this.language.translate("_duration_minute_day"),
                week: this.language.translate("_duration_minute_week"),
                month: this.language.translate("_duration_minute_month"),
                year: this.language.translate("_duration_minute_year")
              },
              hour: {
                hour: this.language.translate("_duration_hour"),
                day: this.language.translate("_duration_hour_day"),
                week: this.language.translate("_duration_hour_week"),
                month: this.language.translate("_duration_hour_month"),
                year: this.language.translate("_duration_hour_year")
              },
              day: {
                day: this.language.translate("_duration_day"),
                week: this.language.translate("_duration_day_week"),
                month: this.language.translate("_duration_day_month"),
                year: this.language.translate("_duration_day_year")
              },
              week: {
                week: this.language.translate("_duration_week"),
                month: this.language.translate("_duration_week_month"),
                year: this.language.translate("_duration_week_year")
              },
              month: {
                month: this.language.translate("_duration_month"),
                year: this.language.translate("_duration_month_year")
              },
              year: {
                year: this.language.translate("_duration_year")
              }
            }), this._durationFormats
          },
          set: function(t) {
            this._durationFormats = t, this.invalidateSprite()
          },
          enumerable: !0,
          configurable: !0
        }), e
      }(a.a);
    s.c.registeredClasses.DurationFormatter = d
  },
  bUwg: function(t, e, i) {
    i("0sYB")({
      target: "Object",
      stat: !0,
      sham: !i("3sMl")
    }, {
      create: i("QzDi")
    })
  },
  bZFJ: function(t, e, i) {
    var r = i("0sYB"),
      n = i("8nEM"),
      a = Math.abs,
      o = Math.pow;
    r({
      target: "Math",
      stat: !0
    }, {
      cbrt: function(t) {
        return n(t = +t) * o(a(t), 1 / 3)
      }
    })
  },
  bvi0: function(t, e, i) {
    var r = i("vfdp"),
      n = i("29Us"),
      a = r["__core-js_shared__"] || n("__core-js_shared__", {});
    t.exports = a
  },
  cBFz: function(t, e, i) {
    "use strict";
    var r = i("vfdp"),
      n = i("UseD"),
      a = i("6aQQ"),
      o = r.Int8Array,
      s = n.aTypedArray,
      l = n.exportTypedArrayMethod,
      u = [].toLocaleString,
      h = [].slice,
      c = !!o && a(function() {
        u.call(new o(1))
      });
    l("toLocaleString", function() {
      return u.apply(c ? h.call(s(this)) : s(this), arguments)
    }, a(function() {
      return [1, 2].toLocaleString() != new o([1, 2]).toLocaleString()
    }) || !a(function() {
      o.prototype.toLocaleString.call([1, 2])
    }))
  },
  cLsB: function(t, e, i) {
    var r = i("HnbP");
    t.exports = function(t, e, i) {
      if (r(t), void 0 === e) return t;
      switch (i) {
        case 0:
          return function() {
            return t.call(e)
          };
        case 1:
          return function(i) {
            return t.call(e, i)
          };
        case 2:
          return function(i, r) {
            return t.call(e, i, r)
          };
        case 3:
          return function(i, r, n) {
            return t.call(e, i, r, n)
          }
      }
      return function() {
        return t.apply(e, arguments)
      }
    }
  },
  cOH5: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return n
    });
    var r = i("m4/l"),
      n = function(t) {
        function e(e) {
          return t.call(this, e) || this
        }
        return Object(r.c)(e, t), e.prototype.add = function(t) {
          t && this.node.appendChild(t.node)
        }, e.prototype.addToBack = function(t) {
          if (t) {
            var e = this.node.childNodes[0];
            e ? e != t.node && this.node.insertBefore(t.node, e) : this.node.appendChild(t.node)
          }
        }, e.prototype.removeElement = function(t) {
          if (t) try {
            t.node && t.node.parentNode == this.node && this.node.removeChild(t.node)
          } catch (t) {}
        }, e.prototype.hasChild = function(t) {
          for (var e = 0; e < this.node.childNodes.length; e++)
            if (this.node.childNodes[e] == t.node) return !0;
          return !1
        }, Object.defineProperty(e.prototype, "content", {
          get: function() {
            return this.node.innerHTML
          },
          set: function(t) {
            this.node.innerHTML = t
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.removeChildren = function() {
          if (this.node.childNodes)
            for (; this.node.childNodes.length > 0;) {
              var t = this.node.firstChild;
              t && t.parentNode && t.parentNode.removeChild(t)
            }
        }, e
      }(i("pzs1").a)
  },
  cSfM: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("saPf");
    r({
      target: "String",
      proto: !0,
      forced: i("v0oN")("sup")
    }, {
      sup: function() {
        return n(this, "sup", "", "")
      }
    })
  },
  "cXJ+": function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("7dku").right,
      a = i("xlUI"),
      o = i("J+FZ"),
      s = a("reduceRight"),
      l = o("reduce", {
        1: 0
      });
    r({
      target: "Array",
      proto: !0,
      forced: !s || !l
    }, {
      reduceRight: function(t) {
        return n(this, t, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
      }
    })
  },
  cxKZ: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return f
    });
    var r = i("m4/l"),
      n = i("C6dT"),
      a = i("aCit"),
      o = i("MZQ8"),
      s = i("p9TX"),
      l = i("1yyj"),
      u = i("8ZqG"),
      h = i("VAFc"),
      c = i("Gg2j"),
      p = i("0FpR"),
      d = i("v9UT"),
      f = function(t) {
        function e() {
          var e = t.call(this) || this;
          e._boundingRect = {
            x: -4e4,
            y: -4e4,
            width: 8e4,
            height: 8e4
          }, e._pointTo = {
            x: 0,
            y: 0
          }, e.fitPointerToBounds = !1, e._verticalOrientation = "up", e.fixDoc = !0, e.className = "Tooltip", e.isMeasured = !1, e.getFillFromObject = !0, e.margin(5, 5, 5, 5), e.defaultState.transitionDuration = 1, e.hiddenState.transitionDuration = 1;
          var i = e.background;
          i.interactionsEnabled = !1, i.fillOpacity = .9, i.strokeWidth = 1, i.strokeOpacity = 1, i.stroke = Object(u.c)("#ffffff"), i.cornerRadius = 3, i.pointerLength = 6, i.pointerBaseWidth = 10;
          var r = new h.a;
          r.dy = 1, r.dx = 1, r.opacity = .5, i.filters.push(r), e.autoTextColor = !0;
          var n = e.createChild(s.a);
          return n.shouldClone = !1, e.label = n, n.padding(7, 12, 4, 12), n.interactionsEnabled = !1, n.horizontalCenter = "middle", n.fill = Object(u.c)("#ffffff"), e._disposers.push(n), e.label.events.on("sizechanged", e.drawBackground, e), e.label.zIndex = 1, e.pointerOrientation = "vertical", e.animationDuration = 0, e.animationEasing = p.cubicOut, e.setPropertyValue("showInViewport", !1), e.role = "tooltip", e.visible = !1, e.opacity = 0, e.x = 0, e.y = 0, e.events.on("visibilitychanged", e.handleVisibility, e), e.applyTheme(), e
        }
        return Object(r.c)(e, t), e.prototype.handleVisibility = function() {
          this.visible && this.label.invalidate()
        }, Object.defineProperty(e.prototype, "getStrokeFromObject", {
          get: function() {
            return this.getPropertyValue("getStrokeFromObject")
          },
          set: function(t) {
            this.setPropertyValue("getStrokeFromObject", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "autoTextColor", {
          get: function() {
            return this.getPropertyValue("autoTextColor")
          },
          set: function(t) {
            this.setPropertyValue("autoTextColor", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "keepTargetHover", {
          get: function() {
            return this.getPropertyValue("keepTargetHover")
          },
          set: function(t) {
            var e = this;
            this.setPropertyValue("keepTargetHover", t, !0) && t && (this.hoverable = !0, this.background.interactionsEnabled = !0, this._disposers.push(this.events.on("over", function(t) {
              e.targetSprite && e.targetSprite.hoverable && (e.targetSprite.isHover = !0)
            })), this._disposers.push(this.events.on("out", function(t) {
              e.targetSprite && e.targetSprite.hoverable && (e.targetSprite.isHover = !1)
            })))
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "showInViewport", {
          get: function() {
            return this.getPropertyValue("showInViewport")
          },
          set: function(t) {
            this.setPropertyValue("showInViewport", t)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "getFillFromObject", {
          get: function() {
            return this.getPropertyValue("getFillFromObject")
          },
          set: function(t) {
            this.setPropertyValue("getFillFromObject", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.createBackground = function() {
          return new o.a
        }, Object.defineProperty(e.prototype, "pointerOrientation", {
          get: function() {
            return this.getPropertyValue("pointerOrientation")
          },
          set: function(t) {
            this.setPropertyValue("pointerOrientation", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "animationDuration", {
          get: function() {
            return this.getPropertyValue("animationDuration")
          },
          set: function(t) {
            this.setPropertyValue("animationDuration", t)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "animationEasing", {
          get: function() {
            return this.getPropertyValue("animationEasing")
          },
          set: function(t) {
            this.setPropertyValue("animationEasing", t)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "html", {
          get: function() {
            return this.label.html
          },
          set: function(t) {
            this.label.html != t && (this.label.html = t, this.invalidate())
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "text", {
          get: function() {
            return this.label.text
          },
          set: function(t) {
            this.label.text != t && (this.label.text = t, this.invalidate())
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.draw = function() {
          t.prototype.draw.call(this);
          var e = this.label;
          e.invalid && e.validate();
          var i, r, n = this._pointTo.x,
            a = this._pointTo.y,
            o = this._boundingRect,
            s = e.measuredWidth,
            l = e.measuredHeight,
            u = this.background.pointerLength;
          if (this.fixDoc && s > o.width) {
            d.spritePointToDocument({
              x: o.x,
              y: o.y
            }, this.parent);
            var h = d.spritePointToDocument({
                x: o.x + o.width,
                y: o.y + o.height
              }, this.parent),
              p = document.body.offsetWidth;
            d.used(document.body.offsetHeight), h.x > p / 2 ? o.x = o.width - s : o.width = o.x + s
          }
          var f = this.pointerOrientation;
          "horizontal" == f || "left" == f || "right" == f ? (r = -l / 2, i = "horizontal" == f ? n > o.x + o.width / 2 ? -s / 2 - u : s / 2 + u : "left" == f ? s / 2 + u : -s / 2 - u) : (i = c.fitToRange(0, o.x - n + s / 2, o.x - n + o.width - s / 2), "vertical" == f ? a > o.y + l + u ? (r = -l - u, this._verticalOrientation = "up") : (r = u, this._verticalOrientation = "down") : "down" == f ? (r = -l - u, this._verticalOrientation = "up") : (r = u, this._verticalOrientation = "down")), r = c.fitToRange(r, o.y - a, o.y + o.height - l - a), e.x = i, e.y = r, this.drawBackground()
        }, e.prototype.updateBackground = function() {
          this.group.addToBack(this.background.group)
        }, e.prototype.drawBackground = function() {
          var t = this.label,
            e = this.background,
            i = t.measuredWidth,
            r = t.measuredHeight,
            n = this._boundingRect,
            a = i,
            o = t.pixelX - i / 2,
            s = r,
            l = t.pixelY,
            u = this._pointTo.x,
            h = this._pointTo.y,
            p = n.x - u,
            d = p + n.width,
            f = n.y - h,
            g = f + n.height;
          e.x = o, e.y = l, e.width = a, e.height = s, this.fitPointerToBounds ? (e.pointerX = c.fitToRange(-e.x, p - e.x, d - e.x), e.pointerY = c.fitToRange(-e.y, f - e.y, g - e.y)) : (e.pointerX = -e.x, e.pointerY = -e.y), e.validate()
        }, e.prototype.delayedPointTo = function(t, e) {
          var i = this;
          this._pointToDisposer && this._pointToDisposer.dispose(), this._pointToDisposer = a.c.events.once("exitframe", function() {
            i.pointTo(t, e)
          }), this.addDisposer(this._pointToDisposer)
        }, e.prototype.pointTo = function(t, e) {
          this._pointTo.x == t.x && this._pointTo.y == t.y || (this._pointTo = t, this.invalidate(), !this.visible || e ? (this.moveTo(this._pointTo), this._animation && this._animation.kill()) : 0 == this.pixelX && 0 == this.pixelY ? this.moveTo(this._pointTo) : (this._animation && this._animation.kill(), this._animation = new l.a(this, [{
            property: "x",
            to: t.x,
            from: this.pixelX
          }, {
            property: "y",
            to: t.y,
            from: this.pixelY
          }], this.animationDuration, this.animationEasing).start()))
        }, e.prototype.setBounds = function(t) {
          var e = this._boundingRect;
          e.x == t.x && e.y == t.y && e.width == t.width && e.height == t.height || (this._boundingRect = t, this.invalidate())
        }, Object.defineProperty(e.prototype, "boundingContainer", {
          set: function(t) {
            this._boundingContainer = t, t.events.on("sizechanged", this.updateBounds, this), t.events.on("positionchanged", this.updateBounds, this)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.updateBounds = function() {
          var t = this._boundingContainer,
            e = d.spriteRectToSvg({
              x: t.pixelX,
              y: t.pixelY,
              width: t.maxWidth,
              height: t.maxHeight
            }, t);
          this.setBounds(e)
        }, Object.defineProperty(e.prototype, "verticalOrientation", {
          get: function() {
            return this._verticalOrientation
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "tooltip", {
          get: function() {},
          enumerable: !0,
          configurable: !0
        }), e.prototype.copyFrom = function(e) {
          t.prototype.copyFrom.call(this, e), this.label.copyFrom(e.label), e._boundingRect && (this._boundingRect = e._boundingRect)
        }, e.prototype.asFunction = function(e) {
          return "animationEasing" == e || t.prototype.asIs.call(this, e)
        }, e
      }(n.a);
    a.c.registeredClasses.Tooltip = f
  },
  dAGi: function(t, e, i) {
    "use strict";
    var r = i("NZ9V"),
      n = i("3weC"),
      a = i("swFJ"),
      o = i("fXYt"),
      s = i("Xw1K");
    r("search", 1, function(t, e, i) {
      return [function(e) {
        var i = a(this),
          r = void 0 == e ? void 0 : e[t];
        return void 0 !== r ? r.call(e, i) : new RegExp(e)[t](String(i))
      }, function(t) {
        var r = i(e, t, this);
        if (r.done) return r.value;
        var a = n(t),
          l = String(this),
          u = a.lastIndex;
        o(u, 0) || (a.lastIndex = 0);
        var h = s(a, l);
        return o(a.lastIndex, u) || (a.lastIndex = u), null === h ? -1 : h.index
      }]
    })
  },
  dEJP: function(t, e, i) {
    var r = i("0sYB"),
      n = i("Uskt");
    r({
      target: "Number",
      stat: !0,
      forced: Number.parseInt != n
    }, {
      parseInt: n
    })
  },
  dlbc: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("saPf");
    r({
      target: "String",
      proto: !0,
      forced: i("v0oN")("fontcolor")
    }, {
      fontcolor: function(t) {
        return n(this, "font", "color", t)
      }
    })
  },
  dzqq: function(t, e, i) {
    var r = i("0sYB"),
      n = i("ibOM").values;
    r({
      target: "Object",
      stat: !0
    }, {
      values: function(t) {
        return n(t)
      }
    })
  },
  e71F: function(t, e, i) {
    var r = i("0sYB"),
      n = i("6aQQ"),
      a = i("Kg2n"),
      o = Object.isExtensible;
    r({
      target: "Object",
      stat: !0,
      forced: n(function() {
        o(1)
      })
    }, {
      isExtensible: function(t) {
        return !!a(t) && (!o || o(t))
      }
    })
  },
  eAid: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return l
    });
    var r = i("m4/l"),
      n = i("Vs7R"),
      a = i("aCit"),
      o = i("8ZqG"),
      s = i("MIZb"),
      l = function(t) {
        function e() {
          var e = t.call(this) || this;
          e.className = "AxisLine", e.element = e.paper.add("path");
          var i = new s.a;
          return e.stroke = i.getFor("grid"), e.strokeOpacity = .15, e.pixelPerfect = !0, e.fill = Object(o.c)(), e.applyTheme(), e.interactionsEnabled = !1, e
        }
        return Object(r.c)(e, t), e
      }(n.a);
    a.c.registeredClasses.AxisLine = l
  },
  eCqC: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return a
    }), i.d(e, "b", function() {
      return o
    });
    var r = i("+qIf"),
      n = i("Mtpk"),
      a = function() {
        function t() {
          this._storage = new r.a, this.ttl = 1e3
        }
        return t.prototype.set = function(t, e, i, a) {
          var o = this._storage.insertKeyIfEmpty(t, function() {
              return new r.a
            }),
            s = {
              touched: (new Date).getTime(),
              ttl: n.isNumber(a) ? a : this.ttl,
              value: i
            };
          o.setKey(e, s)
        }, t.prototype.get = function(t, e, i) {
          if (void 0 === i && (i = void 0), this._storage.hasKey(t)) {
            var r = this._storage.getKey(t);
            if (r.hasKey(e)) {
              var n = r.getKey(e);
              return n.ttl && n.touched + n.ttl < (new Date).getTime() && (n.expired = !0), n.expired ? (r.removeKey(e), i) : n.value
            }
            return i
          }
          return i
        }, t.prototype.clear = function(t) {
          t ? this._storage.removeKey(t) : this._storage.clear()
        }, t
      }(),
      o = new a
  },
  eK2B: function(t, e, i) {
    i("6WsA")("matchAll")
  },
  eKCf: function(t, e, i) {
    var r = i("0sYB"),
      n = i("1wCr"),
      a = i("3weC");
    r({
      target: "Reflect",
      stat: !0,
      sham: !i("6EAy")
    }, {
      preventExtensions: function(t) {
        a(t);
        try {
          var e = n("Object", "preventExtensions");
          return e && e(t), !0
        } catch (t) {
          return !1
        }
      }
    })
  },
  eKg1: function(t, e, i) {
    var r = i("0sYB"),
      n = Math.asinh,
      a = Math.log,
      o = Math.sqrt;
    r({
      target: "Math",
      stat: !0,
      forced: !(n && 1 / n(0) > 0)
    }, {
      asinh: function t(e) {
        return isFinite(e = +e) && 0 != e ? e < 0 ? -t(-e) : a(e + o(e * e + 1)) : e
      }
    })
  },
  eN1s: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return o
    });
    var r = i("m4/l"),
      n = i("qzbU"),
      a = i("aCit"),
      o = function(t) {
        function e() {
          var e = t.call(this) || this;
          return e.className = "AxisTick", e.element = e.paper.add("path"), e.location = .5, e.above = !1, e.isMeasured = !1, e.pixelPerfect = !0, e.strokeOpacity = 0, e.length = 5, e.applyTheme(), e
        }
        return Object(r.c)(e, t), Object.defineProperty(e.prototype, "location", {
          get: function() {
            return this.getPropertyValue("location")
          },
          set: function(t) {
            this.setPropertyValue("location", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "inside", {
          get: function() {
            return this.getPropertyValue("inside")
          },
          set: function(t) {
            this.setPropertyValue("inside", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "above", {
          get: function() {
            return this.getPropertyValue("above")
          },
          set: function(t) {
            this.setPropertyValue("above", t, !0)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.setDisabled = function(e) {
          var i = t.prototype.setDisabled.call(this, e);
          return this.axis && this.axis.invalidateDataItems(), i
        }, e
      }(n.a);
    a.c.registeredClasses.AxisTick = o
  },
  eVN0: function(t, e, i) {
    var r = i("KslR")("match");
    t.exports = function(t) {
      var e = /./;
      try {
        "/./" [t](e)
      } catch (i) {
        try {
          return e[r] = !1, "/./" [t](e)
        } catch (t) {}
      }
      return !1
    }
  },
  exNg: function(t, e) {
    var i = Math.ceil,
      r = Math.floor;
    t.exports = function(t) {
      return isNaN(t = +t) ? 0 : (t > 0 ? r : i)(t)
    }
  },
  eygo: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("vfdp"),
      a = i("3sMl"),
      o = i("NSJ1"),
      s = i("UseD"),
      l = i("mtbW"),
      u = i("L56b"),
      h = i("Pm8L"),
      c = i("k2B3"),
      p = i("tHyI"),
      d = i("E+A3"),
      f = i("oxAz"),
      g = i("EErT"),
      m = i("JZRr"),
      y = i("5ou3"),
      v = i("Kg2n"),
      b = i("QzDi"),
      x = i("KJuV"),
      _ = i("GtmK").f,
      P = i("3Fha"),
      w = i("X/sl").forEach,
      O = i("YRD/"),
      T = i("8+rI"),
      S = i("gxUV"),
      C = i("SqFF"),
      I = i("047P"),
      k = C.get,
      D = C.set,
      j = T.f,
      V = S.f,
      A = Math.round,
      M = n.RangeError,
      F = l.ArrayBuffer,
      E = l.DataView,
      R = s.NATIVE_ARRAY_BUFFER_VIEWS,
      L = s.TYPED_ARRAY_TAG,
      N = s.TypedArray,
      B = s.TypedArrayPrototype,
      U = s.aTypedArrayConstructor,
      W = s.isTypedArray,
      H = function(t, e) {
        for (var i = 0, r = e.length, n = new(U(t))(r); r > i;) n[i] = e[i++];
        return n
      },
      Y = function(t, e) {
        j(t, e, {
          get: function() {
            return k(this)[e]
          }
        })
      },
      z = function(t) {
        var e;
        return t instanceof F || "ArrayBuffer" == (e = y(t)) || "SharedArrayBuffer" == e
      },
      X = function(t, e) {
        return W(t) && "symbol" != typeof e && e in t && String(+e) == String(e)
      },
      G = function(t, e) {
        return X(t, e = g(e, !0)) ? h(2, t[e]) : V(t, e)
      },
      K = function(t, e, i) {
        return !(X(t, e = g(e, !0)) && v(i) && m(i, "value")) || m(i, "get") || m(i, "set") || i.configurable || m(i, "writable") && !i.writable || m(i, "enumerable") && !i.enumerable ? j(t, e, i) : (t[e] = i.value, t)
      };
    a ? (R || (S.f = G, T.f = K, Y(B, "buffer"), Y(B, "byteOffset"), Y(B, "byteLength"), Y(B, "length")), r({
      target: "Object",
      stat: !0,
      forced: !R
    }, {
      getOwnPropertyDescriptor: G,
      defineProperty: K
    }), t.exports = function(t, e, i) {
      var a = t.match(/\d+$/)[0] / 8,
        s = t + (i ? "Clamped" : "") + "Array",
        l = "get" + t,
        h = "set" + t,
        g = n[s],
        m = g,
        y = m && m.prototype,
        T = {},
        S = function(t, e) {
          j(t, e, {
            get: function() {
              return function(t, e) {
                var i = k(t);
                return i.view[l](e * a + i.byteOffset, !0)
              }(this, e)
            },
            set: function(t) {
              return function(t, e, r) {
                var n = k(t);
                i && (r = (r = A(r)) < 0 ? 0 : r > 255 ? 255 : 255 & r), n.view[h](e * a + n.byteOffset, r, !0)
              }(this, e, t)
            },
            enumerable: !0
          })
        };
      R ? o && (m = e(function(t, e, i, r) {
        return u(t, m, s), I(v(e) ? z(e) ? void 0 !== r ? new g(e, f(i, a), r) : void 0 !== i ? new g(e, f(i, a)) : new g(e) : W(e) ? H(m, e) : P.call(m, e) : new g(d(e)), t, m)
      }), x && x(m, N), w(_(g), function(t) {
        t in m || c(m, t, g[t])
      }), m.prototype = y) : (m = e(function(t, e, i, r) {
        u(t, m, s);
        var n, o, l, h = 0,
          c = 0;
        if (v(e)) {
          if (!z(e)) return W(e) ? H(m, e) : P.call(m, e);
          n = e, c = f(i, a);
          var g = e.byteLength;
          if (void 0 === r) {
            if (g % a) throw M("Wrong length");
            if ((o = g - c) < 0) throw M("Wrong length")
          } else if ((o = p(r) * a) + c > g) throw M("Wrong length");
          l = o / a
        } else l = d(e), n = new F(o = l * a);
        for (D(t, {
            buffer: n,
            byteOffset: c,
            byteLength: o,
            length: l,
            view: new E(n)
          }); h < l;) S(t, h++)
      }), x && x(m, N), y = m.prototype = b(B)), y.constructor !== m && c(y, "constructor", m), L && c(y, L, s), T[s] = m, r({
        global: !0,
        forced: m != g,
        sham: !R
      }, T), "BYTES_PER_ELEMENT" in m || c(m, "BYTES_PER_ELEMENT", a), "BYTES_PER_ELEMENT" in y || c(y, "BYTES_PER_ELEMENT", a), O(s)
    }) : t.exports = function() {}
  },
  f3Fu: function(t, e, i) {
    var r = i("0sYB"),
      n = i("1wCr"),
      a = i("HnbP"),
      o = i("3weC"),
      s = i("Kg2n"),
      l = i("QzDi"),
      u = i("uKH8"),
      h = i("6aQQ"),
      c = n("Reflect", "construct"),
      p = h(function() {
        function t() {}
        return !(c(function() {}, [], t) instanceof t)
      }),
      d = !h(function() {
        c(function() {})
      }),
      f = p || d;
    r({
      target: "Reflect",
      stat: !0,
      forced: f,
      sham: f
    }, {
      construct: function(t, e) {
        a(t), o(e);
        var i = arguments.length < 3 ? t : a(arguments[2]);
        if (d && !p) return c(t, e, i);
        if (t == i) {
          switch (e.length) {
            case 0:
              return new t;
            case 1:
              return new t(e[0]);
            case 2:
              return new t(e[0], e[1]);
            case 3:
              return new t(e[0], e[1], e[2]);
            case 4:
              return new t(e[0], e[1], e[2], e[3])
          }
          var r = [null];
          return r.push.apply(r, e), new(u.apply(t, r))
        }
        var n = i.prototype,
          h = l(s(n) ? n : Object.prototype),
          f = Function.apply.call(t, h, e);
        return s(f) ? f : h
      }
    })
  },
  "fG/y": function(t, e, i) {
    "use strict";
    var r = i("UseD"),
      n = r.aTypedArray,
      a = r.exportTypedArrayMethod,
      o = Math.floor;
    a("reverse", function() {
      for (var t, e = n(this).length, i = o(e / 2), r = 0; r < i;) t = this[r], this[r++] = this[--e], this[e] = t;
      return this
    })
  },
  fGTV: function(t, e, i) {
    var r = i("1wCr");
    t.exports = r("document", "documentElement")
  },
  fXYt: function(t, e) {
    t.exports = Object.is || function(t, e) {
      return t === e ? 0 !== t || 1 / t == 1 / e : t != t && e != e
    }
  },
  fYap: function(t, e, i) {
    var r = i("LO3D"),
      n = i("vfRf"),
      a = r("keys");
    t.exports = function(t) {
      return a[t] || (a[t] = n(t))
    }
  },
  ffjw: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("X/sl").find,
      a = i("0FA2"),
      o = !0,
      s = i("J+FZ")("find");
    "find" in [] && Array(1).find(function() {
      o = !1
    }), r({
      target: "Array",
      proto: !0,
      forced: o || !s
    }, {
      find: function(t) {
        return n(this, t, arguments.length > 1 ? arguments[1] : void 0)
      }
    }), a("find")
  },
  fjAw: function(t, e, i) {
    i("6WsA")("unscopables")
  },
  flUP: function(t, e, i) {
    "use strict";
    var r = i("0sYB"),
      n = i("gxUV").f,
      a = i("tHyI"),
      o = i("qK31"),
      s = i("swFJ"),
      l = i("eVN0"),
      u = i("lnCe"),
      h = "".startsWith,
      c = Math.min,
      p = l("startsWith");
    r({
      target: "String",
      proto: !0,
      forced: !(!u && !p && !! function() {
        var t = n(String.prototype, "startsWith");
        return t && !t.writable
      }()) && !p
    }, {
      startsWith: function(t) {
        var e = String(s(this));
        o(t);
        var i = a(c(arguments.length > 1 ? arguments[1] : void 0, e.length)),
          r = String(t);
        return h ? h.call(e, r, i) : e.slice(i, i + r.length) === r
      }
    })
  },
  fluH: function(t, e, i) {
    "use strict";
    var r = i("UseD"),
      n = i("+s7l"),
      a = r.aTypedArray;
    (0, r.exportTypedArrayMethod)("lastIndexOf", function(t) {
      return n.apply(a(this), arguments)
    })
  },
  g3YV: function(t, e, i) {
    var r = i("0sYB"),
      n = i("3sMl"),
      a = i("grfs"),
      o = i("9XRO"),
      s = i("gxUV"),
      l = i("WShl");
    r({
      target: "Object",
      stat: !0,
      sham: !n
    }, {
      getOwnPropertyDescriptors: function(t) {
        for (var e, i, r = o(t), n = s.f, u = a(r), h = {}, c = 0; u.length > c;) void 0 !== (i = n(r, e = u[c++])) && l(h, e, i);
        return h
      }
    })
  },
  gBcN: function(t, e, i) {
    var r, n, a, o = i("vfdp"),
      s = i("6aQQ"),
      l = i("2xmP"),
      u = i("cLsB"),
      h = i("fGTV"),
      c = i("BAfC"),
      p = i("q8hm"),
      d = o.location,
      f = o.setImmediate,
      g = o.clearImmediate,
      m = o.process,
      y = o.MessageChannel,
      v = o.Dispatch,
      b = 0,
      x = {},
      _ = function(t) {
        if (x.hasOwnProperty(t)) {
          var e = x[t];
          delete x[t], e()
        }
      },
      P = function(t) {
        return function() {
          _(t)
        }
      },
      w = function(t) {
        _(t.data)
      },
      O = function(t) {
        o.postMessage(t + "", d.protocol + "//" + d.host)
      };
    f && g || (f = function(t) {
      for (var e = [], i = 1; arguments.length > i;) e.push(arguments[i++]);
      return x[++b] = function() {
        ("function" == typeof t ? t : Function(t)).apply(void 0, e)
      }, r(b), b
    }, g = function(t) {
      delete x[t]
    }, "process" == l(m) ? r = function(t) {
      m.nextTick(P(t))
    } : v && v.now ? r = function(t) {
      v.now(P(t))
    } : y && !p ? (a = (n = new y).port2, n.port1.onmessage = w, r = u(a.postMessage, a, 1)) : !o.addEventListener || "function" != typeof postMessage || o.importScripts || s(O) || "file:" === d.protocol ? r = "onreadystatechange" in c("script") ? function(t) {
      h.appendChild(c("script")).onreadystatechange = function() {
        h.removeChild(this), _(t)
      }
    } : function(t) {
      setTimeout(P(t), 0)
    } : (r = O, o.addEventListener("message", w, !1))), t.exports = {
      set: f,
      clear: g
    }
  },
  gaw2: function(t, e, i) {
    var r = i("vfdp"),
      n = i("pVcl"),
      a = i("HgTb"),
      o = i("k2B3");
    for (var s in n) {
      var l = r[s],
        u = l && l.prototype;
      if (u && u.forEach !== a) try {
        o(u, "forEach", a)
      } catch (t) {
        u.forEach = a
      }
    }
  },
  gqvf: function(t, e, i) {
    "use strict";
    i.d(e, "a", function() {
      return x
    });
    var r = i("m4/l"),
      n = i("1Fjw"),
      a = i("Vs7R"),
      o = i("hD5A"),
      s = i("pR7v"),
      l = i("KknQ"),
      u = i("Uf57"),
      h = i("aCit"),
      c = i("8ZqG"),
      p = i("MIZb"),
      d = i("zhwk"),
      f = i("qCRI"),
      g = i("Gg2j"),
      m = i("v9UT"),
      y = i("Mtpk"),
      v = i("hJ5i"),
      b = i("hGwe"),
      x = function(t) {
        function e() {
          var e = t.call(this) || this;
          e._lineX = new o.d, e._lineY = new o.d, e._xAxis = new o.d, e._yAxis = new o.d, e._snapToDisposers = [], e.className = "XYCursor", e.behavior = "zoomX", e.maxPanOut = .1;
          var i = new p.a,
            r = e.createChild(a.a);
          r.shouldClone = !1, r.fillOpacity = .2, r.fill = i.getFor("alternativeBackground"), r.isMeasured = !1, r.visible = !1, r.interactionsEnabled = !1, e.selection = r, e._disposers.push(e.selection);
          var n = e.createChild(a.a);
          n.shouldClone = !1, n.stroke = i.getFor("grid"), n.fill = Object(c.c)(), n.strokeDasharray = "3,3", n.isMeasured = !1, n.strokeOpacity = .4, n.interactionsEnabled = !1, n.y = 0, e.lineX = n, e._disposers.push(e.lineX);
          var s = e.createChild(a.a);
          return s.shouldClone = !1, s.stroke = i.getFor("grid"), s.fill = Object(c.c)(), s.strokeDasharray = "3,3", s.isMeasured = !1, s.strokeOpacity = .4, s.interactionsEnabled = !1, s.x = 0, e.lineY = s, e._disposers.push(e.lineY), e.events.on("sizechanged", e.updateSize, e, !1), e._disposers.push(e._lineX), e._disposers.push(e._lineY), e._disposers.push(e._xAxis), e._disposers.push(e._yAxis), e.mask = e, e.hideSeriesTooltipsOnSelection = !0, e.applyTheme(), e
        }
        return Object(r.c)(e, t), e.prototype.updateSize = function() {
          this.lineX && (this.lineX.path = b.moveTo({
            x: 0,
            y: 0
          }) + b.lineTo({
            x: 0,
            y: this.innerHeight
          })), this.lineY && (this.lineY.path = b.moveTo({
            x: 0,
            y: 0
          }) + b.lineTo({
            x: this.innerWidth,
            y: 0
          }))
        }, e.prototype.updateSelection = function() {
          if (this._usesSelection) {
            var t = this.downPoint,
              e = this.behavior;
            if (t) {
              var i = this.point;
              this.lineX && (i.x = this.lineX.pixelX), this.lineY && (i.y = this.lineY.pixelY);
              var r = this.selection,
                n = Math.min(i.x, t.x),
                a = Math.min(i.y, t.y),
                o = g.round(Math.abs(t.x - i.x), this._positionPrecision),
                s = g.round(Math.abs(t.y - i.y), this._positionPrecision);
              switch (e) {
                case "zoomX":
                  a = 0, s = this.pixelHeight;
                  break;
                case "zoomY":
                  n = 0, o = this.pixelWidth;
                  break;
                case "selectX":
                  a = 0, s = this.pixelHeight;
                  break;
                case "selectY":
                  n = 0, o = this.pixelWidth
              }
              r.x = n, r.y = a, r.path = b.rectangle(o, s), r.validatePosition()
            } else "select" != this._generalBehavior && this.selection.hide()
          }
        }, e.prototype.fixPoint = function(t) {
          return t.x = Math.max(0, t.x), t.y = Math.max(0, t.y), t.x = Math.min(this.pixelWidth, t.x), t.y = Math.min(this.pixelHeight, t.y), t
        }, e.prototype.triggerMoveReal = function(e, i) {
          t.prototype.triggerMoveReal.call(this, e, i);
          var r = this.snapToSeries;
          if (r && !this.downPoint)
            if (r instanceof u.a) r.isHidden && this.updateLinePositions(e);
            else {
              var n = !0;
              v.each(r, function(t) {
                t.isHidden || (n = !1)
              }), n && this.updateLinePositions(e)
            }
          else this.updateLinePositions(e);
          this.downPoint && g.getDistance(this.downPoint, e) > 3 && "pan" == this._generalBehavior && (this.getPanningRanges(), this.dispatch("panning"))
        }, e.prototype.updateLinePositions = function(t) {
          t = this.fixPoint(this.point), this.lineX && this.lineX.visible && !this.xAxis && (this.lineX.x = t.x), this.lineY && this.lineY.visible && !this.yAxis && (this.lineY.y = t.y), this.updateSelection()
        }, e.prototype.triggerDownReal = function(e) {
          if (this.visible && !this.isHiding)
            if ("select" == this._generalBehavior && (this.selection.parent = this.parent), this.fitsToBounds(e)) {
              this.downPoint = {
                x: e.x,
                y: e.y
              }, this.updatePoint(e), this.point.x = this.downPoint.x, this.point.y = this.downPoint.y;
              var i = this.selection,
                r = this.downPoint.x,
                n = this.downPoint.y;
              this._usesSelection && (i.x = r, i.y = n, i.path = "", i.show()), t.prototype.triggerDownReal.call(this, e)
            } else this.downPoint = void 0;
          else this.downPoint = void 0
        }, e.prototype.updatePoint = function(t) {
          this.lineX && (t.x = this.lineX.pixelX), this.lineY && (t.y = this.lineY.pixelY)
        }, e.prototype.triggerUpReal = function(e) {
          if (this.hasMoved()) this.downPoint && (this.upPoint = e, this.updatePoint(this.upPoint), "pan" != this._generalBehavior && this.getRanges(), "select" != this._generalBehavior && this.selection.hide(), t.prototype.triggerUpReal.call(this, e));
          else {
            if ("select" != this._generalBehavior ? this.selection.hide(0) : (this.xRange = void 0, this.yRange = void 0, this.dispatchImmediately("selectended")), "pan" == this._generalBehavior) Object(d.b)().setGlobalStyle(f.a.default);
            this.dispatchImmediately("behaviorcanceled")
          }
          this.downPoint = void 0, this.dispatch("cursorpositionchanged")
        }, e.prototype.hasMoved = function() {
          return ("zoomX" == this.behavior || "panX" == this.behavior ? g.getHorizontalDistance(this._upPointOrig, this._downPointOrig) : "zoomY" == this.behavior || "panY" == this.behavior ? g.getVerticalDistance(this._upPointOrig, this._downPointOrig) : g.getDistance(this._upPointOrig, this._downPointOrig)) > Object(d.b)().getHitOption(this.interactions, "hitTolerance")
        }, e.prototype.getPanningRanges = function() {
          var t = g.round(this.downPoint.x / this.innerWidth, 5),
            e = 1 - g.round(this.downPoint.y / this.innerHeight, 5),
            i = t - g.round(this.point.x / this.innerWidth, 5),
            r = e - (1 - g.round(this.point.y / this.innerHeight, 5));
          this.xRange = {
            start: i,
            end: 1 + i
          }, this.yRange = {
            start: r,
            end: 1 + r
          }, "panX" == this.behavior && (this.yRange.start = 0, this.yRange.end = 1), "panY" == this.behavior && (this.xRange.start = 0, this.xRange.end = 1)
        }, e.prototype.getRanges = function() {
          this.lineX && (this.upPoint.x = this.lineX.pixelX), this.lineY && (this.upPoint.y = this.lineY.pixelY), m.used(this.selection);
          var t = g.round(this.downPoint.x / this.innerWidth, 5),
            e = g.round(this.upPoint.x / this.innerWidth, 5),
            i = 1 - g.round(this.downPoint.y / this.innerHeight, 5),
            r = 1 - g.round(this.upPoint.y / this.innerHeight, 5);
          this.xRange = {
            start: g.min(t, e),
            end: g.max(t, e)
          }, this.yRange = {
            start: g.min(i, r),
            end: g.max(i, r)
          }
        }, Object.defineProperty(e.prototype, "behavior", {
          get: function() {
            return this.getPropertyValue("behavior")
          },
          set: function(t) {
            this.setPropertyValue("behavior", t, !0), this._usesSelection = !1, -1 != t.indexOf("zoom") && (this._generalBehavior = "zoom", this._usesSelection = !0), -1 != t.indexOf("select") && (this._generalBehavior = "select", this._usesSelection = !0), -1 != t.indexOf("pan") && (this._generalBehavior = "pan", this._usesSelection = !1)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.shouldPreventGestures = function(t) {
          return !(this.interactions.isTouchProtected && t || "none" == this.behavior)
        }, Object.defineProperty(e.prototype, "fullWidthLineX", {
          get: function() {
            return this.getPropertyValue("fullWidthLineX")
          },
          set: function(t) {
            this.setPropertyValue("fullWidthLineX", t), t || this.updateSize()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "fullWidthLineY", {
          get: function() {
            return this.getPropertyValue("fullWidthLineY")
          },
          set: function(t) {
            this.setPropertyValue("fullWidthLineY", t), t || this.updateSize()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "hideSeriesTooltipsOnSelection", {
          get: function() {
            return this.getPropertyValue("hideSeriesTooltipsOnSelection")
          },
          set: function(t) {
            this.setPropertyValue("hideSeriesTooltipsOnSelection", t)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "maxTooltipDistance", {
          get: function() {
            return this.getPropertyValue("maxTooltipDistance")
          },
          set: function(t) {
            this.setPropertyValue("maxTooltipDistance", t)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "maxPanOut", {
          get: function() {
            return this.getPropertyValue("maxPanOut")
          },
          set: function(t) {
            this.setPropertyValue("maxPanOut", t)
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "xAxis", {
          get: function() {
            return this._xAxis.get()
          },
          set: function(t) {
            var e = this;
            this._xAxis.get() != t && this._xAxis.set(t, new o.c([t.tooltip.events.on("positionchanged", this.handleXTooltipPosition, this, !1), t.events.on("rangechangestarted", function(t) {
              e.hide(0), e.preventShow = !0
            }, void 0, !1), t.events.on("rangechangeended", function(t) {
              e.preventShow = !1, e.hide(0), e.dispatch("cursorpositionchanged")
            }, void 0, !1)]))
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "yAxis", {
          get: function() {
            return this._yAxis.get()
          },
          set: function(t) {
            var e = this;
            this._yAxis.get() != t && this._yAxis.set(t, new o.c([t.tooltip.events.on("positionchanged", this.handleYTooltipPosition, this, !1), t.events.on("rangechangestarted", function(t) {
              e.hide(0), e.__disabled = !0
            }, void 0, !1), t.events.on("rangechangeended", function(t) {
              e.__disabled = !1, e.hide(0), e.dispatch("cursorpositionchanged")
            }, void 0, !1)]))
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.handleXTooltipPosition = function(t) {
          var e = this.xAxis.tooltip,
            i = m.svgPointToSprite({
              x: e.pixelX,
              y: e.pixelY
            }, this),
            r = i.x;
          if (i.y = 1, this.lineX && (this.lineX.x = r, this.fitsToBounds(i) || this.hide()), this.xAxis && this.fullWidthLineX) {
            var n = this.xAxis.currentItemStartPoint,
              a = this.xAxis.currentItemEndPoint;
            if (n && a) {
              this.lineX.x = r;
              var o = a.x - n.x;
              this.lineX.path = b.rectangle(o, this.innerHeight, -o / 2)
            }
          }
        }, e.prototype.handleYTooltipPosition = function(t) {
          var e = this.yAxis.tooltip,
            i = m.svgPointToSprite({
              x: e.pixelX,
              y: e.pixelY
            }, this),
            r = i.y;
          if (i.x = 1, this.lineY && (this.lineY.y = r, this.fitsToBounds(i) || this.hide()), this.yAxis && this.fullWidthLineY) {
            var n = this.yAxis.currentItemStartPoint,
              a = this.yAxis.currentItemEndPoint;
            if (n && a) {
              this.lineY.y = r;
              var o = a.y - n.y;
              this.lineY.path = b.rectangle(this.innerWidth, o, 0, -o / 2)
            }
          }
        }, Object.defineProperty(e.prototype, "lineX", {
          get: function() {
            return this._lineX.get()
          },
          set: function(t) {
            t ? (t.setElement(this.paper.add("path")), this._lineX.set(t, t.events.on("positionchanged", this.updateSelection, this, !1)), t.interactionsEnabled = !1, t.parent = this) : this._lineX.reset()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "lineY", {
          get: function() {
            return this._lineY.get()
          },
          set: function(t) {
            t ? (t.setElement(this.paper.add("path")), this._lineY.set(t, t.events.on("positionchanged", this.updateSelection, this, !1)), t.parent = this, t.interactionsEnabled = !1) : this._lineY.reset()
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "selection", {
          get: function() {
            return this._selection
          },
          set: function(t) {
            this._selection = t, t && (t.element = this.paper.add("path"), t.parent = this)
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.processConfig = function(e) {
          var i = this;
          if (e && (y.hasValue(e.xAxis) && y.isString(e.xAxis) && (this.map.hasKey(e.xAxis) ? e.xAxis = this.map.getKey(e.xAxis) : (this.processingErrors.push('[XYCursor] No axis with id "' + e.xAxis + '" found for `xAxis`'), delete e.xAxis)), y.hasValue(e.yAxis) && y.isString(e.yAxis) && (this.map.hasKey(e.yAxis) ? e.yAxis = this.map.getKey(e.yAxis) : (this.processingErrors.push('[XYCursor] No axis with id "' + e.yAxis + '" found for `yAxis`'), delete e.yAxis)), y.hasValue(e.snapToSeries))) {
            var r = y.isArray(e.snapToSeries) ? e.snapToSeries : [e.snapToSeries],
              n = !1;
            v.each(r, function(t, e) {
              y.isString(t) && (i.map.hasKey(t) ? r[e] = i.map.getKey(t) : (i.processingErrors.push('[XYCursor] No series with id "' + t + '" found for `series`'), n = !0))
            }), n ? delete e.snapToSeries : e.snapToSeries = r
          }
          t.prototype.processConfig.call(this, e)
        }, Object.defineProperty(e.prototype, "snapToSeries", {
          get: function() {
            return this.getPropertyValue("snapToSeries")
          },
          set: function(t) {
            var e = this;
            this.setPropertyValue("snapToSeries", t) && (t instanceof u.a && (t = [t]), this._snapToDisposers && v.each(this._snapToDisposers, function(t) {
              t.dispose()
            }), this._snapToDisposers = [], t && v.each(t, function(t) {
              e._snapToDisposers.push(t.events.on("tooltipshownat", function() {
                e.handleSnap(t)
              }, void 0, !1))
            }))
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.handleSnap = function(t) {
          if (!this.downPoint) {
            var e = t.getTooltipX() + t.xAxis.pixelX,
              i = t.getTooltipY() + t.yAxis.pixelY;
            this.xAxis && this.xAxis.renderer.opposite && (i -= this.pixelHeight), this.point = {
              x: e,
              y: i
            }, this.getPositions();
            var r = e,
              n = i;
            e -= this.pixelWidth, this.yAxis && this.yAxis.renderer.opposite && (e += this.pixelWidth);
            var a = t.tooltip,
              o = a.animationDuration,
              u = a.animationEasing,
              h = t.xAxis,
              c = t.yAxis;
            h instanceof s.a && !(h instanceof l.a) && c instanceof s.a && !(c instanceof l.a) ? (t.yAxis.showTooltipAtPosition(this.yPosition), t.xAxis.showTooltipAtPosition(this.xPosition)) : (t.baseAxis == t.xAxis && t.yAxis.showTooltipAtPosition(this.yPosition), t.baseAxis == t.yAxis && t.xAxis.showTooltipAtPosition(this.xPosition)), this.lineX.animate([{
              property: "y",
              to: i
            }], o, u), this.lineY.animate([{
              property: "x",
              to: e
            }], o, u), this.xAxis || this.lineX.animate([{
              property: "x",
              to: r
            }], o, u), this.yAxis || this.lineY.animate([{
              property: "y",
              to: n
            }], o, u)
          }
        }, e.prototype.dispose = function() {
          this.hide(0), t.prototype.dispose.call(this)
        }, e
      }(n.a);
    h.c.registeredClasses.XYCursor = x
  },
  grfs: function(t, e, i) {
    var r = i("1wCr"),
      n = i("GtmK"),
      a = i("KSd4"),
      o = i("3weC");
    t.exports = r("Reflect", "ownKeys") || function(t) {
      var e = n.f(o(t)),
        i = a.f;
      return i ? e.concat(i(t)) : e
    }
  },
  gxUV: function(t, e, i) {
    var r = i("3sMl"),
      n = i("EVp9"),
      a = i("Pm8L"),
      o = i("9XRO"),
      s = i("EErT"),
      l = i("JZRr"),
      u = i("t+NF"),
      h = Object.getOwnPropertyDescriptor;
    e.f = r ? h : function(t, e) {
      if (t = o(t), e = s(e, !0), u) try {
        return h(t, e)
      } catch (t) {}
      if (l(t, e)) return a(!n.f.call(t, e), t[e])
    }
  },
  "h+H5": function(t, e, i) {
    var r = i("0sYB"),
      n = i("ibOM").entries;
    r({
      target: "Object",
      stat: !0
    }, {
      entries: function(t) {
        return n(t)
      }
    })
  },
  hD5A: function(t, e, i) {
    "use strict";
    i.d(e, "b", function() {
      return o
    }), i.d(e, "c", function() {
      return s
    }), i.d(e, "d", function() {
      return l
    }), i.d(e, "a", function() {
      return u
    });
    var r = i("m4/l"),
      n = i("hJ5i"),
      a = i("Mtpk"),
      o = function() {
        function t(t) {
          this._disposed = !1, this._dispose = t
        }
        return t.prototype.isDisposed = function() {
          return this._disposed
        }, t.prototype.dispose = function() {
          this._disposed || (this._disposed = !0, this._dispose())
        }, t
      }(),
      s = function(t) {
        function e(e) {
          return t.call(this, function() {
            n.each(e, function(t) {
              t.dispose()
            })
          }) || this
        }
        return Object(r.c)(e, t), e
      }(o),
      l = function(t) {
        function e() {
          var e = t.call(this, function() {
            a.hasValue(e._disposer) && (e._disposer.dispose(), e._disposer = void 0)
          }) || this;
          return e
        }
        return Object(r.c)(e, t), e.prototype.get = function() {
          return this._value
        }, e.prototype.set = function(t, e) {
          a.hasValue(this._disposer) && this._disposer.dispose(), this._disposer = e, this._value = t
        }, e.prototype.reset = function() {
          this.set(void 0, void 0)
        }, e
      }(o),
      u = function(t) {
        function e() {
          var e = null !== t && t.apply(this, arguments) || this;
          return e._counter = 0, e
        }
        return Object(r.c)(e, t), e.prototype.increment = function() {
          var t = this;
          return ++this._counter, new o(function() {
            --t._counter, 0 === t._counter && t.dispose()
          })
        }, e
      }(o)
  },
  hGwe: function(t, e, i) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), e.polyline = function(t) {
      var e = l(t[0]),
        i = {
          x: 0,
          y: 0
        },
        a = o.a.minPolylineStep;
      n.isNumber(a) || (a = .5);
      for (var s = 0, u = t.length; s < u; s++) {
        var h = t[s];
        r.getDistance(h, i) > a && (e += l(h), i = h)
      }
      return e
    }, e.moveTo = s, e.lineTo = l, e.quadraticCurveTo = function(t, e) {
      return " Q" + r.round(e.x, 4) + "," + r.round(e.y, 4) + " " + r.round(t.x, 4) + "," + r.round(t.y, 4)
    }, e.cubicCurveTo = function(t, e, i) {
      return " C" + r.round(e.x, 4) + "," + r.round(e.y, 4) + " " + r.round(i.x, 4) + "," + r.round(i.y, 4) + " " + r.round(t.x, 4) + "," + r.round(t.y, 4)
    }, e.closePath = u, e.arcTo = h, e.arc = function(t, e, i, a, o, u, p) {
      if (0 == e) return "";
      n.isNumber(a) || (a = 0);
      if (0 == i && a <= 0) return "";
      if (i < a) {
        var d = i;
        i = a, a = d, n.isNumber(o) && (o = o / a * i)
      }
      360 == (e = r.min(e, 360)) && (u = 0, p = 0);
      var f = t + e,
        g = r.sin(r.min(e, 45) / 2);
      o = n.isNumber(o) ? o : i, u = u || 0, p = n.isNumber(p) ? p : u;
      var m = o / i * a,
        y = o / i * u,
        v = o / i * p;
      u = r.fitToRange(u, 0, (i - a) / 2), y = r.fitToRange(y, 0, (o - m) / 2), p = r.fitToRange(p, 0, (i - a) / 2), v = r.fitToRange(v, 0, (o - m) / 2), u = r.round(r.fitToRange(u, 0, i * g), 4), y = r.round(r.fitToRange(y, 0, o * g), 4), p = r.round(r.fitToRange(p, 0, a * g), 4), v = r.round(r.fitToRange(v, 0, m * g), 4);
      var b = Math.asin(u / i / 2) * r.DEGREES * 2,
        x = Math.asin(y / o / 2) * r.DEGREES * 2;
      a < p && (a = p);
      m < v && (m = v);
      var _ = Math.asin(p / a / 2) * r.DEGREES * 2,
        P = Math.asin(v / m / 2) * r.DEGREES * 2;
      n.isNumber(_) || (_ = 0);
      n.isNumber(P) || (P = 0);
      var w = t + e / 2,
        O = {
          x: r.round(r.cos(w) * a, 4),
          y: r.sin(w) * m
        },
        T = {
          x: r.cos(t) * (a + p),
          y: r.sin(t) * (m + v)
        },
        S = {
          x: r.cos(t) * (i - u),
          y: r.sin(t) * (o - y)
        },
        C = {
          x: r.cos(f) * (i - u),
          y: r.sin(f) * (o - y)
        },
        I = {
          x: r.cos(f) * (a + p),
          y: r.sin(f) * (m + v)
        },
        k = {
          x: r.cos(t + b) * i,
          y: r.sin(t + x) * o
        },
        D = {
          x: r.cos(f - _) * a,
          y: r.sin(f - P) * m
        };
      p += p * r.sin(_ / 2), v += v * r.sin(P / 2), _ > (f - t) / 2 && (D = O);
      var j = "";
      360 == e ? j = s(S) : (j = s(T), j += l(S), j += c(k, u, y, !0));
      j += h(t + b, e - 2 * b, i, o), n.isNumber(a) && 0 != a ? (360 == e && 0 == u ? j += s(I) : (j += c(C, u, y, !0), j += l(I), j += c(D, p, v, !0)), j += h(f - _, -(e - 2 * _), a, m), (e < 360 || u > 0) && (j += c(T, p, v, !0)), j += l(T)) : (j += c(C, u, y, !0), e < 360 && (j += l(T)));
      return j
    }, e.arcToPoint = c, e.rectangle = function(t, e, i, r) {
      n.isNumber(i) || (i = 0);
      n.isNumber(r) || (r = 0);
      return s({
        x: i,
        y: r
      }) + l({
        x: i + t,
        y: r
      }) + l({
        x: i + t,
        y: r + e
      }) + l({
        x: i,
        y: r + e
      }) + " Z"
    }, e.rectToPath = function(t, e) {
      var i = ",",
        r = " L";
      return e ? "M" + t.x + i + t.y + r + t.x + i + (t.y + t.height) + r + (t.x + t.width) + i + (t.y + t.height) + r + (t.x + t.width) + i + t.y + r + t.x + i + t.y : "M" + t.x + i + t.y + r + (t.x + t.width) + i + t.y + r + (t.x + t.width) + i + (t.y + t.height) + r + t.x + i + (t.y + t.height) + r + t.x + i + t.y
    }, e.pathToPoints = function(t, e) {
      var i = Object(a.b)().add("path").node;
      if (i.setAttribute("d", t), i.getPointAtLength && i.getTotalLength) {
        for (var r = i.getTotalLength(), n = [], o = 0; o < e; o++) {
          var s = i.getPointAtLength(o / e * r);
          n.push({
            x: s.x,
            y: s.y
          })
        }
        return n
      }
      i.remove()
    }, e.spiralPoints = function(t, e, i, a, o, s, l, u, h) {
      n.isNumber(u) || (u = 0);
      n.isNumber(u) || (h = u);
      var c = o + .01,
        p = u * r.RADIANS,
        d = [];
      for (; c < i + l;) {
        var f = s;
        if (f / 2 > c && (f = 2 * c), (p += 2 * Math.asin(f / 2 / c)) * r.DEGREES > h + (i - o) / l * 360) break;
        var g = p * r.DEGREES,
          m = {
            x: t + c * Math.cos(p),
            y: e + c * a / i * Math.sin(p)
          };
        d.push(m), c = o + g / 360 * l
      }
      return d.shift(), d
    }, e.pointsToPath = function(t) {
      if (!t || 0 == t.length) return "";
      var e = s(t[0]);
      if (t && t.length > 0)
        for (var i = 1; i < t.length; i++) e += l(t[i]);
      return e
    };
    var r = i("Gg2j"),
      n = i("Mtpk"),
      a = i("P7v+"),
      o = i("Q4nc");

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

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

    function u() {
      return " Z"
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function a(t) {
      var e = "function" == typeof Symbol && Symbol.iterator,
        i = e && t[e],
        r = 0;
      if (i) return i.call(t);
      if (t && "number" == typeof t.length) return {
        next: function() {
          return t && r >= t.length && (t = void 0), {
            value: t && t[r++],
            done: !t
          }
        }
      };
      throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined.")
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function O() {
      return null == w && (w = new P), w
    }
  }
});
//# sourceMappingURL=core.js.map