UNPKG

ileaf-text-editor

Version:

A React-based rich text editor library with Quill.js, featuring PDF/DOCX export, print support, and extensive customization options

6,676 lines 225 kB
import { c as Da, _ as Va, g as il } from "./index-DT8xSPmq.js";
var fn = {}, cn = {}, cr, vn;
function Q() {
  if (vn) return cr;
  vn = 1;
  var n = function(e) {
    return e && e.Math === Math && e;
  };
  return cr = // eslint-disable-next-line es/no-global-this -- safe
  n(typeof globalThis == "object" && globalThis) || n(typeof window == "object" && window) || // eslint-disable-next-line no-restricted-globals -- safe
  n(typeof self == "object" && self) || n(typeof Da == "object" && Da) || n(typeof cr == "object" && cr) || // eslint-disable-next-line no-new-func -- fallback
  /* @__PURE__ */ function() {
    return this;
  }() || Function("return this")(), cr;
}
var Qr = {}, Zr, gn;
function Z() {
  return gn || (gn = 1, Zr = function(n) {
    try {
      return !!n();
    } catch {
      return !0;
    }
  }), Zr;
}
var Jr, dn;
function we() {
  if (dn) return Jr;
  dn = 1;
  var n = Z();
  return Jr = !n(function() {
    return Object.defineProperty({}, 1, { get: function() {
      return 7;
    } })[1] !== 7;
  }), Jr;
}
var et, pn;
function Ar() {
  if (pn) return et;
  pn = 1;
  var n = Z();
  return et = !n(function() {
    var e = (function() {
    }).bind();
    return typeof e != "function" || e.hasOwnProperty("prototype");
  }), et;
}
var rt, yn;
function ne() {
  if (yn) return rt;
  yn = 1;
  var n = Ar(), e = Function.prototype.call;
  return rt = n ? e.bind(e) : function() {
    return e.apply(e, arguments);
  }, rt;
}
var tt = {}, mn;
function Yl() {
  if (mn) return tt;
  mn = 1;
  var n = {}.propertyIsEnumerable, e = Object.getOwnPropertyDescriptor, r = e && !n.call({ 1: 2 }, 1);
  return tt.f = r ? function(i) {
    var a = e(this, i);
    return !!a && a.enumerable;
  } : n, tt;
}
var it, bn;
function Fa() {
  return bn || (bn = 1, it = function(n, e) {
    return {
      enumerable: !(n & 1),
      configurable: !(n & 2),
      writable: !(n & 4),
      value: e
    };
  }), it;
}
var at, xn;
function J() {
  if (xn) return at;
  xn = 1;
  var n = Ar(), e = Function.prototype, r = e.call, t = n && e.bind.bind(r, r);
  return at = n ? t : function(i) {
    return function() {
      return r.apply(i, arguments);
    };
  }, at;
}
var nt, On;
function er() {
  if (On) return nt;
  On = 1;
  var n = J(), e = n({}.toString), r = n("".slice);
  return nt = function(t) {
    return r(e(t), 8, -1);
  }, nt;
}
var st, Tn;
function al() {
  if (Tn) return st;
  Tn = 1;
  var n = J(), e = Z(), r = er(), t = Object, i = n("".split);
  return st = e(function() {
    return !t("z").propertyIsEnumerable(0);
  }) ? function(a) {
    return r(a) === "String" ? i(a, "") : t(a);
  } : t, st;
}
var ot, Sn;
function Ir() {
  return Sn || (Sn = 1, ot = function(n) {
    return n == null;
  }), ot;
}
var ut, En;
function Pe() {
  if (En) return ut;
  En = 1;
  var n = Ir(), e = TypeError;
  return ut = function(r) {
    if (n(r)) throw new e("Can't call method on " + r);
    return r;
  }, ut;
}
var lt, Rn;
function dr() {
  if (Rn) return lt;
  Rn = 1;
  var n = al(), e = Pe();
  return lt = function(r) {
    return n(e(r));
  }, lt;
}
var ht, Cn;
function re() {
  if (Cn) return ht;
  Cn = 1;
  var n = typeof document == "object" && document.all;
  return ht = typeof n > "u" && n !== void 0 ? function(e) {
    return typeof e == "function" || e === n;
  } : function(e) {
    return typeof e == "function";
  }, ht;
}
var ft, wn;
function pe() {
  if (wn) return ft;
  wn = 1;
  var n = re();
  return ft = function(e) {
    return typeof e == "object" ? e !== null : n(e);
  }, ft;
}
var ct, Pn;
function rr() {
  if (Pn) return ct;
  Pn = 1;
  var n = Q(), e = re(), r = function(t) {
    return e(t) ? t : void 0;
  };
  return ct = function(t, i) {
    return arguments.length < 2 ? r(n[t]) : n[t] && n[t][i];
  }, ct;
}
var vt, An;
function Nr() {
  if (An) return vt;
  An = 1;
  var n = J();
  return vt = n({}.isPrototypeOf), vt;
}
var gt, In;
function pr() {
  if (In) return gt;
  In = 1;
  var n = Q(), e = n.navigator, r = e && e.userAgent;
  return gt = r ? String(r) : "", gt;
}
var dt, Nn;
function Ua() {
  if (Nn) return dt;
  Nn = 1;
  var n = Q(), e = pr(), r = n.process, t = n.Deno, i = r && r.versions || t && t.version, a = i && i.v8, s, o;
  return a && (s = a.split("."), o = s[0] > 0 && s[0] < 4 ? 1 : +(s[0] + s[1])), !o && e && (s = e.match(/Edge\/(\d+)/), (!s || s[1] >= 74) && (s = e.match(/Chrome\/(\d+)/), s && (o = +s[1]))), dt = o, dt;
}
var pt, _n;
function nl() {
  if (_n) return pt;
  _n = 1;
  var n = Ua(), e = Z(), r = Q(), t = r.String;
  return pt = !!Object.getOwnPropertySymbols && !e(function() {
    var i = Symbol("symbol detection");
    return !t(i) || !(Object(i) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
    !Symbol.sham && n && n < 41;
  }), pt;
}
var yt, Mn;
function sl() {
  if (Mn) return yt;
  Mn = 1;
  var n = nl();
  return yt = n && !Symbol.sham && typeof Symbol.iterator == "symbol", yt;
}
var mt, qn;
function ol() {
  if (qn) return mt;
  qn = 1;
  var n = rr(), e = re(), r = Nr(), t = sl(), i = Object;
  return mt = t ? function(a) {
    return typeof a == "symbol";
  } : function(a) {
    var s = n("Symbol");
    return e(s) && r(s.prototype, i(a));
  }, mt;
}
var bt, Dn;
function _r() {
  if (Dn) return bt;
  Dn = 1;
  var n = String;
  return bt = function(e) {
    try {
      return n(e);
    } catch {
      return "Object";
    }
  }, bt;
}
var xt, Vn;
function Fe() {
  if (Vn) return xt;
  Vn = 1;
  var n = re(), e = _r(), r = TypeError;
  return xt = function(t) {
    if (n(t)) return t;
    throw new r(e(t) + " is not a function");
  }, xt;
}
var Ot, Ln;
function nr() {
  if (Ln) return Ot;
  Ln = 1;
  var n = Fe(), e = Ir();
  return Ot = function(r, t) {
    var i = r[t];
    return e(i) ? void 0 : n(i);
  }, Ot;
}
var Tt, kn;
function Xl() {
  if (kn) return Tt;
  kn = 1;
  var n = ne(), e = re(), r = pe(), t = TypeError;
  return Tt = function(i, a) {
    var s, o;
    if (a === "string" && e(s = i.toString) && !r(o = n(s, i)) || e(s = i.valueOf) && !r(o = n(s, i)) || a !== "string" && e(s = i.toString) && !r(o = n(s, i))) return o;
    throw new t("Can't convert object to primitive value");
  }, Tt;
}
var St = { exports: {} }, Et, jn;
function Me() {
  return jn || (jn = 1, Et = !1), Et;
}
var Rt, Bn;
function Ga() {
  if (Bn) return Rt;
  Bn = 1;
  var n = Q(), e = Object.defineProperty;
  return Rt = function(r, t) {
    try {
      e(n, r, { value: t, configurable: !0, writable: !0 });
    } catch {
      n[r] = t;
    }
    return t;
  }, Rt;
}
var Fn;
function $a() {
  if (Fn) return St.exports;
  Fn = 1;
  var n = Me(), e = Q(), r = Ga(), t = "__core-js_shared__", i = St.exports = e[t] || r(t, {});
  return (i.versions || (i.versions = [])).push({
    version: "3.44.0",
    mode: n ? "pure" : "global",
    copyright: "© 2014-2025 Denis Pushkarev (zloirock.ru)",
    license: "https://github.com/zloirock/core-js/blob/v3.44.0/LICENSE",
    source: "https://github.com/zloirock/core-js"
  }), St.exports;
}
var Ct, Un;
function za() {
  if (Un) return Ct;
  Un = 1;
  var n = $a();
  return Ct = function(e, r) {
    return n[e] || (n[e] = r || {});
  }, Ct;
}
var wt, Gn;
function Mr() {
  if (Gn) return wt;
  Gn = 1;
  var n = Pe(), e = Object;
  return wt = function(r) {
    return e(n(r));
  }, wt;
}
var Pt, $n;
function Ae() {
  if ($n) return Pt;
  $n = 1;
  var n = J(), e = Mr(), r = n({}.hasOwnProperty);
  return Pt = Object.hasOwn || function(i, a) {
    return r(e(i), a);
  }, Pt;
}
var At, zn;
function ul() {
  if (zn) return At;
  zn = 1;
  var n = J(), e = 0, r = Math.random(), t = n(1.1.toString);
  return At = function(i) {
    return "Symbol(" + (i === void 0 ? "" : i) + ")_" + t(++e + r, 36);
  }, At;
}
var It, Hn;
function ae() {
  if (Hn) return It;
  Hn = 1;
  var n = Q(), e = za(), r = Ae(), t = ul(), i = nl(), a = sl(), s = n.Symbol, o = e("wks"), u = a ? s.for || s : s && s.withoutSetter || t;
  return It = function(l) {
    return r(o, l) || (o[l] = i && r(s, l) ? s[l] : u("Symbol." + l)), o[l];
  }, It;
}
var Nt, Wn;
function Kl() {
  if (Wn) return Nt;
  Wn = 1;
  var n = ne(), e = pe(), r = ol(), t = nr(), i = Xl(), a = ae(), s = TypeError, o = a("toPrimitive");
  return Nt = function(u, l) {
    if (!e(u) || r(u)) return u;
    var h = t(u, o), c;
    if (h) {
      if (l === void 0 && (l = "default"), c = n(h, u, l), !e(c) || r(c)) return c;
      throw new s("Can't convert object to primitive value");
    }
    return l === void 0 && (l = "number"), i(u, l);
  }, Nt;
}
var _t, Yn;
function ll() {
  if (Yn) return _t;
  Yn = 1;
  var n = Kl(), e = ol();
  return _t = function(r) {
    var t = n(r, "string");
    return e(t) ? t : t + "";
  }, _t;
}
var Mt, Xn;
function qr() {
  if (Xn) return Mt;
  Xn = 1;
  var n = Q(), e = pe(), r = n.document, t = e(r) && e(r.createElement);
  return Mt = function(i) {
    return t ? r.createElement(i) : {};
  }, Mt;
}
var qt, Kn;
function hl() {
  if (Kn) return qt;
  Kn = 1;
  var n = we(), e = Z(), r = qr();
  return qt = !n && !e(function() {
    return Object.defineProperty(r("div"), "a", {
      get: function() {
        return 7;
      }
    }).a !== 7;
  }), qt;
}
var Qn;
function Dr() {
  if (Qn) return Qr;
  Qn = 1;
  var n = we(), e = ne(), r = Yl(), t = Fa(), i = dr(), a = ll(), s = Ae(), o = hl(), u = Object.getOwnPropertyDescriptor;
  return Qr.f = n ? u : function(h, c) {
    if (h = i(h), c = a(c), o) try {
      return u(h, c);
    } catch {
    }
    if (s(h, c)) return t(!e(r.f, h, c), h[c]);
  }, Qr;
}
var Dt = {}, Vt, Zn;
function fl() {
  if (Zn) return Vt;
  Zn = 1;
  var n = we(), e = Z();
  return Vt = n && e(function() {
    return Object.defineProperty(function() {
    }, "prototype", {
      value: 42,
      writable: !1
    }).prototype !== 42;
  }), Vt;
}
var Lt, Jn;
function le() {
  if (Jn) return Lt;
  Jn = 1;
  var n = pe(), e = String, r = TypeError;
  return Lt = function(t) {
    if (n(t)) return t;
    throw new r(e(t) + " is not an object");
  }, Lt;
}
var es;
function Ye() {
  if (es) return Dt;
  es = 1;
  var n = we(), e = hl(), r = fl(), t = le(), i = ll(), a = TypeError, s = Object.defineProperty, o = Object.getOwnPropertyDescriptor, u = "enumerable", l = "configurable", h = "writable";
  return Dt.f = n ? r ? function(v, f, g) {
    if (t(v), f = i(f), t(g), typeof v == "function" && f === "prototype" && "value" in g && h in g && !g[h]) {
      var d = o(v, f);
      d && d[h] && (v[f] = g.value, g = {
        configurable: l in g ? g[l] : d[l],
        enumerable: u in g ? g[u] : d[u],
        writable: !1
      });
    }
    return s(v, f, g);
  } : s : function(v, f, g) {
    if (t(v), f = i(f), t(g), e) try {
      return s(v, f, g);
    } catch {
    }
    if ("get" in g || "set" in g) throw new a("Accessors not supported");
    return "value" in g && (v[f] = g.value), v;
  }, Dt;
}
var kt, rs;
function yr() {
  if (rs) return kt;
  rs = 1;
  var n = we(), e = Ye(), r = Fa();
  return kt = n ? function(t, i, a) {
    return e.f(t, i, r(1, a));
  } : function(t, i, a) {
    return t[i] = a, t;
  }, kt;
}
var jt = { exports: {} }, Bt, ts;
function Vr() {
  if (ts) return Bt;
  ts = 1;
  var n = we(), e = Ae(), r = Function.prototype, t = n && Object.getOwnPropertyDescriptor, i = e(r, "name"), a = i && (function() {
  }).name === "something", s = i && (!n || n && t(r, "name").configurable);
  return Bt = {
    EXISTS: i,
    PROPER: a,
    CONFIGURABLE: s
  }, Bt;
}
var Ft, is;
function Ha() {
  if (is) return Ft;
  is = 1;
  var n = J(), e = re(), r = $a(), t = n(Function.toString);
  return e(r.inspectSource) || (r.inspectSource = function(i) {
    return t(i);
  }), Ft = r.inspectSource, Ft;
}
var Ut, as;
function Ql() {
  if (as) return Ut;
  as = 1;
  var n = Q(), e = re(), r = n.WeakMap;
  return Ut = e(r) && /native code/.test(String(r)), Ut;
}
var Gt, ns;
function Wa() {
  if (ns) return Gt;
  ns = 1;
  var n = za(), e = ul(), r = n("keys");
  return Gt = function(t) {
    return r[t] || (r[t] = e(t));
  }, Gt;
}
var $t, ss;
function Ya() {
  return ss || (ss = 1, $t = {}), $t;
}
var zt, os;
function Lr() {
  if (os) return zt;
  os = 1;
  var n = Ql(), e = Q(), r = pe(), t = yr(), i = Ae(), a = $a(), s = Wa(), o = Ya(), u = "Object already initialized", l = e.TypeError, h = e.WeakMap, c, v, f, g = function(m) {
    return f(m) ? v(m) : c(m, {});
  }, d = function(m) {
    return function(b) {
      var x;
      if (!r(b) || (x = v(b)).type !== m)
        throw new l("Incompatible receiver, " + m + " required");
      return x;
    };
  };
  if (n || a.state) {
    var p = a.state || (a.state = new h());
    p.get = p.get, p.has = p.has, p.set = p.set, c = function(m, b) {
      if (p.has(m)) throw new l(u);
      return b.facade = m, p.set(m, b), b;
    }, v = function(m) {
      return p.get(m) || {};
    }, f = function(m) {
      return p.has(m);
    };
  } else {
    var y = s("state");
    o[y] = !0, c = function(m, b) {
      if (i(m, y)) throw new l(u);
      return b.facade = m, t(m, y, b), b;
    }, v = function(m) {
      return i(m, y) ? m[y] : {};
    }, f = function(m) {
      return i(m, y);
    };
  }
  return zt = {
    set: c,
    get: v,
    has: f,
    enforce: g,
    getterFor: d
  }, zt;
}
var us;
function cl() {
  if (us) return jt.exports;
  us = 1;
  var n = J(), e = Z(), r = re(), t = Ae(), i = we(), a = Vr().CONFIGURABLE, s = Ha(), o = Lr(), u = o.enforce, l = o.get, h = String, c = Object.defineProperty, v = n("".slice), f = n("".replace), g = n([].join), d = i && !e(function() {
    return c(function() {
    }, "length", { value: 8 }).length !== 8;
  }), p = String(String).split("String"), y = jt.exports = function(m, b, x) {
    v(h(b), 0, 7) === "Symbol(" && (b = "[" + f(h(b), /^Symbol\(([^)]*)\).*$/, "$1") + "]"), x && x.getter && (b = "get " + b), x && x.setter && (b = "set " + b), (!t(m, "name") || a && m.name !== b) && (i ? c(m, "name", { value: b, configurable: !0 }) : m.name = b), d && x && t(x, "arity") && m.length !== x.arity && c(m, "length", { value: x.arity });
    try {
      x && t(x, "constructor") && x.constructor ? i && c(m, "prototype", { writable: !1 }) : m.prototype && (m.prototype = void 0);
    } catch {
    }
    var S = u(m);
    return t(S, "source") || (S.source = g(p, typeof b == "string" ? b : "")), m;
  };
  return Function.prototype.toString = y(function() {
    return r(this) && l(this).source || s(this);
  }, "toString"), jt.exports;
}
var Ht, ls;
function tr() {
  if (ls) return Ht;
  ls = 1;
  var n = re(), e = Ye(), r = cl(), t = Ga();
  return Ht = function(i, a, s, o) {
    o || (o = {});
    var u = o.enumerable, l = o.name !== void 0 ? o.name : a;
    if (n(s) && r(s, l, o), o.global)
      u ? i[a] = s : t(a, s);
    else {
      try {
        o.unsafe ? i[a] && (u = !0) : delete i[a];
      } catch {
      }
      u ? i[a] = s : e.f(i, a, {
        value: s,
        enumerable: !1,
        configurable: !o.nonConfigurable,
        writable: !o.nonWritable
      });
    }
    return i;
  }, Ht;
}
var Wt = {}, Yt, hs;
function Zl() {
  if (hs) return Yt;
  hs = 1;
  var n = Math.ceil, e = Math.floor;
  return Yt = Math.trunc || function(t) {
    var i = +t;
    return (i > 0 ? e : n)(i);
  }, Yt;
}
var Xt, fs;
function kr() {
  if (fs) return Xt;
  fs = 1;
  var n = Zl();
  return Xt = function(e) {
    var r = +e;
    return r !== r || r === 0 ? 0 : n(r);
  }, Xt;
}
var Kt, cs;
function Jl() {
  if (cs) return Kt;
  cs = 1;
  var n = kr(), e = Math.max, r = Math.min;
  return Kt = function(t, i) {
    var a = n(t);
    return a < 0 ? e(a + i, 0) : r(a, i);
  }, Kt;
}
var Qt, vs;
function sr() {
  if (vs) return Qt;
  vs = 1;
  var n = kr(), e = Math.min;
  return Qt = function(r) {
    var t = n(r);
    return t > 0 ? e(t, 9007199254740991) : 0;
  }, Qt;
}
var Zt, gs;
function Xa() {
  if (gs) return Zt;
  gs = 1;
  var n = sr();
  return Zt = function(e) {
    return n(e.length);
  }, Zt;
}
var Jt, ds;
function vl() {
  if (ds) return Jt;
  ds = 1;
  var n = dr(), e = Jl(), r = Xa(), t = function(i) {
    return function(a, s, o) {
      var u = n(a), l = r(u);
      if (l === 0) return !i && -1;
      var h = e(o, l), c;
      if (i && s !== s) {
        for (; l > h; )
          if (c = u[h++], c !== c) return !0;
      } else for (; l > h; h++)
        if ((i || h in u) && u[h] === s) return i || h || 0;
      return !i && -1;
    };
  };
  return Jt = {
    // `Array.prototype.includes` method
    // https://tc39.es/ecma262/#sec-array.prototype.includes
    includes: t(!0),
    // `Array.prototype.indexOf` method
    // https://tc39.es/ecma262/#sec-array.prototype.indexof
    indexOf: t(!1)
  }, Jt;
}
var ei, ps;
function gl() {
  if (ps) return ei;
  ps = 1;
  var n = J(), e = Ae(), r = dr(), t = vl().indexOf, i = Ya(), a = n([].push);
  return ei = function(s, o) {
    var u = r(s), l = 0, h = [], c;
    for (c in u) !e(i, c) && e(u, c) && a(h, c);
    for (; o.length > l; ) e(u, c = o[l++]) && (~t(h, c) || a(h, c));
    return h;
  }, ei;
}
var ri, ys;
function Ka() {
  return ys || (ys = 1, ri = [
    "constructor",
    "hasOwnProperty",
    "isPrototypeOf",
    "propertyIsEnumerable",
    "toLocaleString",
    "toString",
    "valueOf"
  ]), ri;
}
var ms;
function eh() {
  if (ms) return Wt;
  ms = 1;
  var n = gl(), e = Ka(), r = e.concat("length", "prototype");
  return Wt.f = Object.getOwnPropertyNames || function(i) {
    return n(i, r);
  }, Wt;
}
var ti = {}, bs;
function rh() {
  return bs || (bs = 1, ti.f = Object.getOwnPropertySymbols), ti;
}
var ii, xs;
function th() {
  if (xs) return ii;
  xs = 1;
  var n = rr(), e = J(), r = eh(), t = rh(), i = le(), a = e([].concat);
  return ii = n("Reflect", "ownKeys") || function(o) {
    var u = r.f(i(o)), l = t.f;
    return l ? a(u, l(o)) : u;
  }, ii;
}
var ai, Os;
function ih() {
  if (Os) return ai;
  Os = 1;
  var n = Ae(), e = th(), r = Dr(), t = Ye();
  return ai = function(i, a, s) {
    for (var o = e(a), u = t.f, l = r.f, h = 0; h < o.length; h++) {
      var c = o[h];
      !n(i, c) && !(s && n(s, c)) && u(i, c, l(a, c));
    }
  }, ai;
}
var ni, Ts;
function dl() {
  if (Ts) return ni;
  Ts = 1;
  var n = Z(), e = re(), r = /#|\.prototype\./, t = function(u, l) {
    var h = a[i(u)];
    return h === o ? !0 : h === s ? !1 : e(l) ? n(l) : !!l;
  }, i = t.normalize = function(u) {
    return String(u).replace(r, ".").toLowerCase();
  }, a = t.data = {}, s = t.NATIVE = "N", o = t.POLYFILL = "P";
  return ni = t, ni;
}
var si, Ss;
function he() {
  if (Ss) return si;
  Ss = 1;
  var n = Q(), e = Dr().f, r = yr(), t = tr(), i = Ga(), a = ih(), s = dl();
  return si = function(o, u) {
    var l = o.target, h = o.global, c = o.stat, v, f, g, d, p, y;
    if (h ? f = n : c ? f = n[l] || i(l, {}) : f = n[l] && n[l].prototype, f) for (g in u) {
      if (p = u[g], o.dontCallGetSet ? (y = e(f, g), d = y && y.value) : d = f[g], v = s(h ? g : l + (c ? "." : "#") + g, o.forced), !v && d !== void 0) {
        if (typeof p == typeof d) continue;
        a(p, d);
      }
      (o.sham || d && d.sham) && r(p, "sham", !0), t(f, g, p, o);
    }
  }, si;
}
var oi, Es;
function pl() {
  if (Es) return oi;
  Es = 1;
  var n = Q(), e = pr(), r = er(), t = function(i) {
    return e.slice(0, i.length) === i;
  };
  return oi = function() {
    return t("Bun/") ? "BUN" : t("Cloudflare-Workers") ? "CLOUDFLARE" : t("Deno/") ? "DENO" : t("Node.js/") ? "NODE" : n.Bun && typeof Bun.version == "string" ? "BUN" : n.Deno && typeof Deno.version == "object" ? "DENO" : r(n.process) === "process" ? "NODE" : n.window && n.document ? "BROWSER" : "REST";
  }(), oi;
}
var ui, Rs;
function jr() {
  if (Rs) return ui;
  Rs = 1;
  var n = pl();
  return ui = n === "NODE", ui;
}
var li, Cs;
function ah() {
  if (Cs) return li;
  Cs = 1;
  var n = Q();
  return li = n, li;
}
var hi, ws;
function nh() {
  if (ws) return hi;
  ws = 1;
  var n = J(), e = Fe();
  return hi = function(r, t, i) {
    try {
      return n(e(Object.getOwnPropertyDescriptor(r, t)[i]));
    } catch {
    }
  }, hi;
}
var fi, Ps;
function sh() {
  if (Ps) return fi;
  Ps = 1;
  var n = pe();
  return fi = function(e) {
    return n(e) || e === null;
  }, fi;
}
var ci, As;
function oh() {
  if (As) return ci;
  As = 1;
  var n = sh(), e = String, r = TypeError;
  return ci = function(t) {
    if (n(t)) return t;
    throw new r("Can't set " + e(t) + " as a prototype");
  }, ci;
}
var vi, Is;
function yl() {
  if (Is) return vi;
  Is = 1;
  var n = nh(), e = pe(), r = Pe(), t = oh();
  return vi = Object.setPrototypeOf || ("__proto__" in {} ? function() {
    var i = !1, a = {}, s;
    try {
      s = n(Object.prototype, "__proto__", "set"), s(a, []), i = a instanceof Array;
    } catch {
    }
    return function(u, l) {
      return r(u), t(l), e(u) && (i ? s(u, l) : u.__proto__ = l), u;
    };
  }() : void 0), vi;
}
var gi, Ns;
function Br() {
  if (Ns) return gi;
  Ns = 1;
  var n = Ye().f, e = Ae(), r = ae(), t = r("toStringTag");
  return gi = function(i, a, s) {
    i && !s && (i = i.prototype), i && !e(i, t) && n(i, t, { configurable: !0, value: a });
  }, gi;
}
var di, _s;
function uh() {
  if (_s) return di;
  _s = 1;
  var n = cl(), e = Ye();
  return di = function(r, t, i) {
    return i.get && n(i.get, t, { getter: !0 }), i.set && n(i.set, t, { setter: !0 }), e.f(r, t, i);
  }, di;
}
var pi, Ms;
function lh() {
  if (Ms) return pi;
  Ms = 1;
  var n = rr(), e = uh(), r = ae(), t = we(), i = r("species");
  return pi = function(a) {
    var s = n(a);
    t && s && !s[i] && e(s, i, {
      configurable: !0,
      get: function() {
        return this;
      }
    });
  }, pi;
}
var yi, qs;
function hh() {
  if (qs) return yi;
  qs = 1;
  var n = Nr(), e = TypeError;
  return yi = function(r, t) {
    if (n(t, r)) return r;
    throw new e("Incorrect invocation");
  }, yi;
}
var mi, Ds;
function fh() {
  if (Ds) return mi;
  Ds = 1;
  var n = ae(), e = n("toStringTag"), r = {};
  return r[e] = "z", mi = String(r) === "[object z]", mi;
}
var bi, Vs;
function Qa() {
  if (Vs) return bi;
  Vs = 1;
  var n = fh(), e = re(), r = er(), t = ae(), i = t("toStringTag"), a = Object, s = r(/* @__PURE__ */ function() {
    return arguments;
  }()) === "Arguments", o = function(u, l) {
    try {
      return u[l];
    } catch {
    }
  };
  return bi = n ? r : function(u) {
    var l, h, c;
    return u === void 0 ? "Undefined" : u === null ? "Null" : typeof (h = o(l = a(u), i)) == "string" ? h : s ? r(l) : (c = r(l)) === "Object" && e(l.callee) ? "Arguments" : c;
  }, bi;
}
var xi, Ls;
function ch() {
  if (Ls) return xi;
  Ls = 1;
  var n = J(), e = Z(), r = re(), t = Qa(), i = rr(), a = Ha(), s = function() {
  }, o = i("Reflect", "construct"), u = /^\s*(?:class|function)\b/, l = n(u.exec), h = !u.test(s), c = function(g) {
    if (!r(g)) return !1;
    try {
      return o(s, [], g), !0;
    } catch {
      return !1;
    }
  }, v = function(g) {
    if (!r(g)) return !1;
    switch (t(g)) {
      case "AsyncFunction":
      case "GeneratorFunction":
      case "AsyncGeneratorFunction":
        return !1;
    }
    try {
      return h || !!l(u, a(g));
    } catch {
      return !0;
    }
  };
  return v.sham = !0, xi = !o || e(function() {
    var f;
    return c(c.call) || !c(Object) || !c(function() {
      f = !0;
    }) || f;
  }) ? v : c, xi;
}
var Oi, ks;
function vh() {
  if (ks) return Oi;
  ks = 1;
  var n = ch(), e = _r(), r = TypeError;
  return Oi = function(t) {
    if (n(t)) return t;
    throw new r(e(t) + " is not a constructor");
  }, Oi;
}
var Ti, js;
function ml() {
  if (js) return Ti;
  js = 1;
  var n = le(), e = vh(), r = Ir(), t = ae(), i = t("species");
  return Ti = function(a, s) {
    var o = n(a).constructor, u;
    return o === void 0 || r(u = n(o)[i]) ? s : e(u);
  }, Ti;
}
var Si, Bs;
function bl() {
  if (Bs) return Si;
  Bs = 1;
  var n = Ar(), e = Function.prototype, r = e.apply, t = e.call;
  return Si = typeof Reflect == "object" && Reflect.apply || (n ? t.bind(r) : function() {
    return t.apply(r, arguments);
  }), Si;
}
var Ei, Fs;
function Fr() {
  if (Fs) return Ei;
  Fs = 1;
  var n = er(), e = J();
  return Ei = function(r) {
    if (n(r) === "Function") return e(r);
  }, Ei;
}
var Ri, Us;
function Za() {
  if (Us) return Ri;
  Us = 1;
  var n = Fr(), e = Fe(), r = Ar(), t = n(n.bind);
  return Ri = function(i, a) {
    return e(i), a === void 0 ? i : r ? t(i, a) : function() {
      return i.apply(a, arguments);
    };
  }, Ri;
}
var Ci, Gs;
function xl() {
  if (Gs) return Ci;
  Gs = 1;
  var n = rr();
  return Ci = n("document", "documentElement"), Ci;
}
var wi, $s;
function gh() {
  if ($s) return wi;
  $s = 1;
  var n = J();
  return wi = n([].slice), wi;
}
var Pi, zs;
function dh() {
  if (zs) return Pi;
  zs = 1;
  var n = TypeError;
  return Pi = function(e, r) {
    if (e < r) throw new n("Not enough arguments");
    return e;
  }, Pi;
}
var Ai, Hs;
function Ol() {
  if (Hs) return Ai;
  Hs = 1;
  var n = pr();
  return Ai = /(?:ipad|iphone|ipod).*applewebkit/i.test(n), Ai;
}
var Ii, Ws;
function Tl() {
  if (Ws) return Ii;
  Ws = 1;
  var n = Q(), e = bl(), r = Za(), t = re(), i = Ae(), a = Z(), s = xl(), o = gh(), u = qr(), l = dh(), h = Ol(), c = jr(), v = n.setImmediate, f = n.clearImmediate, g = n.process, d = n.Dispatch, p = n.Function, y = n.MessageChannel, m = n.String, b = 0, x = {}, S = "onreadystatechange", E, O, P, _;
  a(function() {
    E = n.location;
  });
  var A = function(C) {
    if (i(x, C)) {
      var w = x[C];
      delete x[C], w();
    }
  }, q = function(C) {
    return function() {
      A(C);
    };
  }, I = function(C) {
    A(C.data);
  }, j = function(C) {
    n.postMessage(m(C), E.protocol + "//" + E.host);
  };
  return (!v || !f) && (v = function(w) {
    l(arguments.length, 1);
    var U = t(w) ? w : p(w), L = o(arguments, 1);
    return x[++b] = function() {
      e(U, void 0, L);
    }, O(b), b;
  }, f = function(w) {
    delete x[w];
  }, c ? O = function(C) {
    g.nextTick(q(C));
  } : d && d.now ? O = function(C) {
    d.now(q(C));
  } : y && !h ? (P = new y(), _ = P.port2, P.port1.onmessage = I, O = r(_.postMessage, _)) : n.addEventListener && t(n.postMessage) && !n.importScripts && E && E.protocol !== "file:" && !a(j) ? (O = j, n.addEventListener("message", I, !1)) : S in u("script") ? O = function(C) {
    s.appendChild(u("script"))[S] = function() {
      s.removeChild(this), A(C);
    };
  } : O = function(C) {
    setTimeout(q(C), 0);
  }), Ii = {
    set: v,
    clear: f
  }, Ii;
}
var Ni, Ys;
function ph() {
  if (Ys) return Ni;
  Ys = 1;
  var n = Q(), e = we(), r = Object.getOwnPropertyDescriptor;
  return Ni = function(t) {
    if (!e) return n[t];
    var i = r(n, t);
    return i && i.value;
  }, Ni;
}
var _i, Xs;
function Sl() {
  if (Xs) return _i;
  Xs = 1;
  var n = function() {
    this.head = null, this.tail = null;
  };
  return n.prototype = {
    add: function(e) {
      var r = { item: e, next: null }, t = this.tail;
      t ? t.next = r : this.head = r, this.tail = r;
    },
    get: function() {
      var e = this.head;
      if (e) {
        var r = this.head = e.next;
        return r === null && (this.tail = null), e.item;
      }
    }
  }, _i = n, _i;
}
var Mi, Ks;
function yh() {
  if (Ks) return Mi;
  Ks = 1;
  var n = pr();
  return Mi = /ipad|iphone|ipod/i.test(n) && typeof Pebble < "u", Mi;
}
var qi, Qs;
function mh() {
  if (Qs) return qi;
  Qs = 1;
  var n = pr();
  return qi = /web0s(?!.*chrome)/i.test(n), qi;
}
var Di, Zs;
function bh() {
  if (Zs) return Di;
  Zs = 1;
  var n = Q(), e = ph(), r = Za(), t = Tl().set, i = Sl(), a = Ol(), s = yh(), o = mh(), u = jr(), l = n.MutationObserver || n.WebKitMutationObserver, h = n.document, c = n.process, v = n.Promise, f = e("queueMicrotask"), g, d, p, y, m;
  if (!f) {
    var b = new i(), x = function() {
      var S, E;
      for (u && (S = c.domain) && S.exit(); E = b.get(); ) try {
        E();
      } catch (O) {
        throw b.head && g(), O;
      }
      S && S.enter();
    };
    !a && !u && !o && l && h ? (d = !0, p = h.createTextNode(""), new l(x).observe(p, { characterData: !0 }), g = function() {
      p.data = d = !d;
    }) : !s && v && v.resolve ? (y = v.resolve(void 0), y.constructor = v, m = r(y.then, y), g = function() {
      m(x);
    }) : u ? g = function() {
      c.nextTick(x);
    } : (t = r(t, n), g = function() {
      t(x);
    }), f = function(S) {
      b.head || g(), b.add(S);
    };
  }
  return Di = f, Di;
}
var Vi, Js;
function xh() {
  return Js || (Js = 1, Vi = function(n, e) {
    try {
      arguments.length === 1 ? console.error(n) : console.error(n, e);
    } catch {
    }
  }), Vi;
}
var Li, eo;
function Ja() {
  return eo || (eo = 1, Li = function(n) {
    try {
      return { error: !1, value: n() };
    } catch (e) {
      return { error: !0, value: e };
    }
  }), Li;
}
var ki, ro;
function mr() {
  if (ro) return ki;
  ro = 1;
  var n = Q();
  return ki = n.Promise, ki;
}
var ji, to;
function br() {
  if (to) return ji;
  to = 1;
  var n = Q(), e = mr(), r = re(), t = dl(), i = Ha(), a = ae(), s = pl(), o = Me(), u = Ua(), l = e && e.prototype, h = a("species"), c = !1, v = r(n.PromiseRejectionEvent), f = t("Promise", function() {
    var g = i(e), d = g !== String(e);
    if (!d && u === 66 || o && !(l.catch && l.finally)) return !0;
    if (!u || u < 51 || !/native code/.test(g)) {
      var p = new e(function(b) {
        b(1);
      }), y = function(b) {
        b(function() {
        }, function() {
        });
      }, m = p.constructor = {};
      if (m[h] = y, c = p.then(function() {
      }) instanceof y, !c) return !0;
    }
    return !d && (s === "BROWSER" || s === "DENO") && !v;
  });
  return ji = {
    CONSTRUCTOR: f,
    REJECTION_EVENT: v,
    SUBCLASSING: c
  }, ji;
}
var Bi = {}, io;
function xr() {
  if (io) return Bi;
  io = 1;
  var n = Fe(), e = TypeError, r = function(t) {
    var i, a;
    this.promise = new t(function(s, o) {
      if (i !== void 0 || a !== void 0) throw new e("Bad Promise constructor");
      i = s, a = o;
    }), this.resolve = n(i), this.reject = n(a);
  };
  return Bi.f = function(t) {
    return new r(t);
  }, Bi;
}
var ao;
function Oh() {
  if (ao) return cn;
  ao = 1;
  var n = he(), e = Me(), r = jr(), t = Q(), i = ah(), a = ne(), s = tr(), o = yl(), u = Br(), l = lh(), h = Fe(), c = re(), v = pe(), f = hh(), g = ml(), d = Tl().set, p = bh(), y = xh(), m = Ja(), b = Sl(), x = Lr(), S = mr(), E = br(), O = xr(), P = "Promise", _ = E.CONSTRUCTOR, A = E.REJECTION_EVENT, q = E.SUBCLASSING, I = x.getterFor(P), j = x.set, C = S && S.prototype, w = S, U = C, L = t.TypeError, V = t.document, M = t.process, N = O.f, k = N, z = !!(V && V.createEvent && t.dispatchEvent), H = "unhandledrejection", X = "rejectionhandled", se = 0, be = 1, oe = 2, Ue = 1, Ge = 2, fe, Ne, _e, me, ce = function(R) {
    var B;
    return v(R) && c(B = R.then) ? B : !1;
  }, xe = function(R, B) {
    var G = B.value, $ = B.state === be, W = $ ? R.ok : R.fail, Te = R.resolve, Le = R.reject, Se = R.domain, Ee, lr, hr;
    try {
      W ? ($ || (B.rejection === Ge && $e(B), B.rejection = Ue), W === !0 ? Ee = G : (Se && Se.enter(), Ee = W(G), Se && (Se.exit(), hr = !0)), Ee === R.promise ? Le(new L("Promise-chain cycle")) : (lr = ce(Ee)) ? a(lr, Ee, Te, Le) : Te(Ee)) : Le(G);
    } catch (fr) {
      Se && !hr && Se.exit(), Le(fr);
    }
  }, De = function(R, B) {
    R.notified || (R.notified = !0, p(function() {
      for (var G = R.reactions, $; $ = G.get(); )
        xe($, R);
      R.notified = !1, B && !R.rejection && Xe(R);
    }));
  }, Ve = function(R, B, G) {
    var $, W;
    z ? ($ = V.createEvent("Event"), $.promise = B, $.reason = G, $.initEvent(R, !1, !0), t.dispatchEvent($)) : $ = { promise: B, reason: G }, !A && (W = t["on" + R]) ? W($) : R === H && y("Unhandled promise rejection", G);
  }, Xe = function(R) {
    a(d, t, function() {
      var B = R.facade, G = R.value, $ = ur(R), W;
      if ($ && (W = m(function() {
        r ? M.emit("unhandledRejection", G, B) : Ve(H, B, G);
      }), R.rejection = r || ur(R) ? Ge : Ue, W.error))
        throw W.value;
    });
  }, ur = function(R) {
    return R.rejection !== Ue && !R.parent;
  }, $e = function(R) {
    a(d, t, function() {
      var B = R.facade;
      r ? M.emit("rejectionHandled", B) : Ve(X, B, R.value);
    });
  }, ve = function(R, B, G) {
    return function($) {
      R(B, $, G);
    };
  }, ge = function(R, B, G) {
    R.done || (R.done = !0, G && (R = G), R.value = B, R.state = oe, De(R, !0));
  }, Oe = function(R, B, G) {
    if (!R.done) {
      R.done = !0, G && (R = G);
      try {
        if (R.facade === B) throw new L("Promise can't be resolved itself");
        var $ = ce(B);
        $ ? p(function() {
          var W = { done: !1 };
          try {
            a(
              $,
              B,
              ve(Oe, W, R),
              ve(ge, W, R)
            );
          } catch (Te) {
            ge(W, Te, R);
          }
        }) : (R.value = B, R.state = be, De(R, !1));
      } catch (W) {
        ge({ done: !1 }, W, R);
      }
    }
  };
  if (_ && (w = function(B) {
    f(this, U), h(B), a(fe, this);
    var G = I(this);
    try {
      B(ve(Oe, G), ve(ge, G));
    } catch ($) {
      ge(G, $);
    }
  }, U = w.prototype, fe = function(B) {
    j(this, {
      type: P,
      done: !1,
      notified: !1,
      parent: !1,
      reactions: new b(),
      rejection: !1,
      state: se,
      value: null
    });
  }, fe.prototype = s(U, "then", function(B, G) {
    var $ = I(this), W = N(g(this, w));
    return $.parent = !0, W.ok = c(B) ? B : !0, W.fail = c(G) && G, W.domain = r ? M.domain : void 0, $.state === se ? $.reactions.add(W) : p(function() {
      xe(W, $);
    }), W.promise;
  }), Ne = function() {
    var R = new fe(), B = I(R);
    this.promise = R, this.resolve = ve(Oe, B), this.reject = ve(ge, B);
  }, O.f = N = function(R) {
    return R === w || R === _e ? new Ne(R) : k(R);
  }, !e && c(S) && C !== Object.prototype)) {
    me = C.then, q || s(C, "then", function(B, G) {
      var $ = this;
      return new w(function(W, Te) {
        a(me, $, W, Te);
      }).then(B, G);
    }, { unsafe: !0 });
    try {
      delete C.constructor;
    } catch {
    }
    o && o(C, U);
  }
  return n({ global: !0, constructor: !0, wrap: !0, forced: _ }, {
    Promise: w
  }), _e = i.Promise, u(w, P, !1, !0), l(P), cn;
}
var no = {}, Fi, so;
function Or() {
  return so || (so = 1, Fi = {}), Fi;
}
var Ui, oo;
function Th() {
  if (oo) return Ui;
  oo = 1;
  var n = ae(), e = Or(), r = n("iterator"), t = Array.prototype;
  return Ui = function(i) {
    return i !== void 0 && (e.Array === i || t[r] === i);
  }, Ui;
}
var Gi, uo;
function El() {
  if (uo) return Gi;
  uo = 1;
  var n = Qa(), e = nr(), r = Ir(), t = Or(), i = ae(), a = i("iterator");
  return Gi = function(s) {
    if (!r(s)) return e(s, a) || e(s, "@@iterator") || t[n(s)];
  }, Gi;
}
var $i, lo;
function Sh() {
  if (lo) return $i;
  lo = 1;
  var n = ne(), e = Fe(), r = le(), t = _r(), i = El(), a = TypeError;
  return $i = function(s, o) {
    var u = arguments.length < 2 ? i(s) : o;
    if (e(u)) return r(n(u, s));
    throw new a(t(s) + " is not iterable");
  }, $i;
}
var zi, ho;
function Eh() {
  if (ho) return zi;
  ho = 1;
  var n = ne(), e = le(), r = nr();
  return zi = function(t, i, a) {
    var s, o;
    e(t);
    try {
      if (s = r(t, "return"), !s) {
        if (i === "throw") throw a;
        return a;
      }
      s = n(s, t);
    } catch (u) {
      o = !0, s = u;
    }
    if (i === "throw") throw a;
    if (o) throw s;
    return e(s), a;
  }, zi;
}
var Hi, fo;
function Rl() {
  if (fo) return Hi;
  fo = 1;
  var n = Za(), e = ne(), r = le(), t = _r(), i = Th(), a = Xa(), s = Nr(), o = Sh(), u = El(), l = Eh(), h = TypeError, c = function(f, g) {
    this.stopped = f, this.result = g;
  }, v = c.prototype;
  return Hi = function(f, g, d) {
    var p = d && d.that, y = !!(d && d.AS_ENTRIES), m = !!(d && d.IS_RECORD), b = !!(d && d.IS_ITERATOR), x = !!(d && d.INTERRUPTED), S = n(g, p), E, O, P, _, A, q, I, j = function(w) {
      return E && l(E, "normal"), new c(!0, w);
    }, C = function(w) {
      return y ? (r(w), x ? S(w[0], w[1], j) : S(w[0], w[1])) : x ? S(w, j) : S(w);
    };
    if (m)
      E = f.iterator;
    else if (b)
      E = f;
    else {
      if (O = u(f), !O) throw new h(t(f) + " is not iterable");
      if (i(O)) {
        for (P = 0, _ = a(f); _ > P; P++)
          if (A = C(f[P]), A && s(v, A)) return A;
        return new c(!1);
      }
      E = o(f, O);
    }
    for (q = m ? f.next : E.next; !(I = e(q, E)).done; ) {
      try {
        A = C(I.value);
      } catch (w) {
        l(E, "throw", w);
      }
      if (typeof A == "object" && A && s(v, A)) return A;
    }
    return new c(!1);
  }, Hi;
}
var Wi, co;
function Rh() {
  if (co) return Wi;
  co = 1;
  var n = ae(), e = n("iterator"), r = !1;
  try {
    var t = 0, i = {
      next: function() {
        return { done: !!t++ };
      },
      return: function() {
        r = !0;
      }
    };
    i[e] = function() {
      return this;
    }, Array.from(i, function() {
      throw 2;
    });
  } catch {
  }
  return Wi = function(a, s) {
    try {
      if (!s && !r) return !1;
    } catch {
      return !1;
    }
    var o = !1;
    try {
      var u = {};
      u[e] = function() {
        return {
          next: function() {
            return { done: o = !0 };
          }
        };
      }, a(u);
    } catch {
    }
    return o;
  }, Wi;
}
var Yi, vo;
function Cl() {
  if (vo) return Yi;
  vo = 1;
  var n = mr(), e = Rh(), r = br().CONSTRUCTOR;
  return Yi = r || !e(function(t) {
    n.all(t).then(void 0, function() {
    });
  }), Yi;
}
var go;
function Ch() {
  if (go) return no;
  go = 1;
  var n = he(), e = ne(), r = Fe(), t = xr(), i = Ja(), a = Rl(), s = Cl();
  return n({ target: "Promise", stat: !0, forced: s }, {
    all: function(u) {
      var l = this, h = t.f(l), c = h.resolve, v = h.reject, f = i(function() {
        var g = r(l.resolve), d = [], p = 0, y = 1;
        a(u, function(m) {
          var b = p++, x = !1;
          y++, e(g, l, m).then(function(S) {
            x || (x = !0, d[b] = S, --y || c(d));
          }, v);
        }), --y || c(d);
      });
      return f.error && v(f.value), h.promise;
    }
  }), no;
}
var po = {}, yo;
function wh() {
  if (yo) return po;
  yo = 1;
  var n = he(), e = Me(), r = br().CONSTRUCTOR, t = mr(), i = rr(), a = re(), s = tr(), o = t && t.prototype;
  if (n({ target: "Promise", proto: !0, forced: r, real: !0 }, {
    catch: function(l) {
      return this.then(void 0, l);
    }
  }), !e && a(t)) {
    var u = i("Promise").prototype.catch;
    o.catch !== u && s(o, "catch", u, { unsafe: !0 });
  }
  return po;
}
var mo = {}, bo;
function Ph() {
  if (bo) return mo;
  bo = 1;
  var n = he(), e = ne(), r = Fe(), t = xr(), i = Ja(), a = Rl(), s = Cl();
  return n({ target: "Promise", stat: !0, forced: s }, {
    race: function(u) {
      var l = this, h = t.f(l), c = h.reject, v = i(function() {
        var f = r(l.resolve);
        a(u, function(g) {
          e(f, l, g).then(h.resolve, c);
        });
      });
      return v.error && c(v.value), h.promise;
    }
  }), mo;
}
var xo = {}, Oo;
function Ah() {
  if (Oo) return xo;
  Oo = 1;
  var n = he(), e = xr(), r = br().CONSTRUCTOR;
  return n({ target: "Promise", stat: !0, forced: r }, {
    reject: function(i) {
      var a = e.f(this), s = a.reject;
      return s(i), a.promise;
    }
  }), xo;
}
var To = {}, Xi, So;
function Ih() {
  if (So) return Xi;
  So = 1;
  var n = le(), e = pe(), r = xr();
  return Xi = function(t, i) {
    if (n(t), e(i) && i.constructor === t) return i;
    var a = r.f(t), s = a.resolve;
    return s(i), a.promise;
  }, Xi;
}
var Eo;
function Nh() {
  if (Eo) return To;
  Eo = 1;
  var n = he(), e = rr(), r = Me(), t = mr(), i = br().CONSTRUCTOR, a = Ih(), s = e("Promise"), o = r && !i;
  return n({ target: "Promise", stat: !0, forced: r || i }, {
    resolve: function(l) {
      return a(o && this === s ? t : this, l);
    }
  }), To;
}
var Ro;
function _h() {
  return Ro || (Ro = 1, Oh(), Ch(), wh(), Ph(), Ah(), Nh()), fn;
}
_h();
function Co(n, e, r, t, i, a, s) {
  try {
    var o = n[a](s), u = o.value;
  } catch (l) {
    return void r(l);
  }
  o.done ? e(u) : Promise.resolve(u).then(t, i);
}
function Be(n) {
  return function() {
    var e = this, r = arguments;
    return new Promise(function(t, i) {
      var a = n.apply(e, r);
      function s(u) {
        Co(a, t, i, s, o, "next", u);
      }
      function o(u) {
        Co(a, t, i, s, o, "throw", u);
      }
      s(void 0);
    });
  };
}
var wo = {}, Po = {}, Ki, Ao;
function qe() {
  if (Ao) return Ki;
  Ao = 1;
  var n = Qa(), e = String;
  return Ki = function(r) {
    if (n(r) === "Symbol") throw new TypeError("Cannot convert a Symbol value to a string");
    return e(r);
  }, Ki;
}
var Qi, Io;
function wl() {
  if (Io) return Qi;
  Io = 1;
  var n = le();
  return Qi = function() {
    var e = n(this), r = "";
    return e.hasIndices && (r += "d"), e.global && (r += "g"), e.ignoreCase && (r += "i"), e.multiline && (r += "m"), e.dotAll && (r += "s"), e.unicode && (r += "u"), e.unicodeSets && (r += "v"), e.sticky && (r += "y"), r;
  }, Qi;
}
var Zi, No;
function Pl() {
  if (No) return Zi;
  No = 1;
  var n = Z(), e = Q(), r = e.RegExp, t = n(function() {
    var s = r("a", "y");
    return s.lastIndex = 2, s.exec("abcd") !== null;
  }), i = t || n(function() {
    return !r("a", "y").sticky;
  }), a = t || n(function() {
    var s = r("^r", "gy");
    return s.lastIndex = 2, s.exec("str") !== null;
  });
  return Zi = {
    BROKEN_CARET: a,
    MISSED_STICKY: i,
    UNSUPPORTED_Y: t
  }, Zi;
}
var Ji = {}, ea, _o;
function Mh() {
  if (_o) return ea;
  _o = 1;
  var n = gl(), e = Ka();
  return ea = Object.keys || function(t) {
    return n(t, e);
  }, ea;
}
var Mo;
function qh() {
  if (Mo) return Ji;
  Mo = 1;
  var n = we(), e = fl(), r = Ye(), t = le(), i = dr(), a = Mh();
  return Ji.f = n && !e ? Object.defineProperties : function(o, u) {
    t(o);
    for (var l = i(u), h = a(u), c = h.length, v = 0, f; c > v; ) r.f(o, f = h[v++], l[f]);
    return o;
  }, Ji;
}
var ra, qo;
function Ur() {
  if (qo) return ra;
  qo = 1;
  var n = le(), e = qh(), r = Ka(), t = Ya(), i = xl(), a = qr(), s = Wa(), o = ">", u = "<", l = "prototype", h = "script", c = s("IE_PROTO"), v = function() {
  }, f = function(m) {
    return u + h + o + m + u + "/" + h + o;
  }, g = function(m) {
    m.write(f("")), m.close();
    var b = m.parentWindow.Object;
    return m = null, b;
  }, d = function() {
    var m = a("iframe"), b = "java" + h + ":", x;
    return m.style.display = "none", i.appendChild(m), m.src = String(b), x = m.contentWindow.document, x.open(), x.write(f("document.F=Object")), x.close(), x.F;
  }, p, y = function() {
    try {
      p = new ActiveXObject("htmlfile");
    } catch {
    }
    y = typeof document < "u" ? document.domain && p ? g(p) : d() : g(p);
    for (var m = r.length; m--; ) delete y[l][r[m]];
    return y();
  };
  return t[c] = !0, ra = Object.create || function(b, x) {
    var S;
    return b !== null ? (v[l] = n(b), S = new v(), v[l] = null, S[c] = b) : S = y(), x === void 0 ? S : e.f(S, x);
  }, ra;
}
var ta, Do;
function Dh() {
  if (Do) return ta;
  Do = 1;
  var n = Z(), e = Q(), r = e.RegExp;
  return ta = n(function() {
    var t = r(".", "s");
    return !(t.dotAll && t.test(`
`) && t.flags === "s");
  }), ta;
}
var ia, Vo;
function Vh() {
  if (Vo) return ia;
  Vo = 1;
  var n = Z(), e = Q(), r = e.RegExp;
  return ia = n(function() {
    var t = r("(?<a>b)", "g");
    return t.exec("b").groups.a !== "b" || "b".replace(t, "$<a>c") !== "bc";
  }), ia;
}
var aa, Lo;
function en() {
  if (Lo) return aa;
  Lo = 1;
  var n = ne(), e = J(), r = qe(), t = wl(), i = Pl(), a = za(), s = Ur(), o = Lr().get, u = Dh(), l = Vh(), h = a("native-string-replace", String.prototype.replace), c = RegExp.prototype.exec, v = c, f = e("".charAt), g = e("".indexOf), d = e("".replace), p = e("".slice), y = function() {
    var S = /a/, E = /b*/g;
    return n(c, S, "a"), n(c, E, "a"), S.lastIndex !== 0 || E.lastIndex !== 0;
  }(), m = i.BROKEN_CARET, b = /()??/.exec("")[1] !== void 0, x = y || b || m || u || l;
  return x && (v = function(E) {
    var O = this, P = o(O), _ = r(E), A = P.raw, q, I, j, C, w, U, L;
    if (A)
      return A.lastIndex = O.lastIndex, q = n(v, A, _), O.lastIndex = A.lastIndex, q;
    var V = P.groups, M = m && O.sticky, N = n(t, O), k = O.source, z = 0, H = _;
    if (M && (N = d(N, "y", ""), g(N, "g") === -1 && (N += "g"), H = p(_, O.lastIndex), O.lastIndex > 0 && (!O.multiline || O.multiline && f(_, O.lastIndex - 1) !== `
`) && (k = "(?: " + k + ")", H = " " + H, z++), I = new RegExp("^(?:" + k + ")", N)), b && (I = new RegExp("^" + k + "$(?!\\s)", N)), y && (j = O.lastIndex), C = n(c, M ? I : O, H), M ? C ? (C.input = p(C.input, z), C[0] = p(C[0], z), C.index = O.lastIndex, O.lastIndex += C[0].length) : O.lastIndex = 0 : y && C && (O.lastIndex = O.global ? C.index + C[0].length : j), b && C && C.length > 1 && n(h, C[0], I, function() {
      for (w = 1; w < arguments.length - 2; w++)
        arguments[w] === void 0 && (C[w] = void 0);
    }), C && V)
      for (C.groups = U = s(null), w = 0; w < V.length; w++)
        L = V[w], U[L[0]] = C[L[1]];
    return C;
  }), aa = v, aa;
}
var ko;
function Lh() {
  if (ko) return Po;
  ko = 1;
  var n = he(), e = en();
  return n({ target: "RegExp", proto: !0, forced: /./.exec !== e }, {
    exec: e
  }), Po;
}
var na, jo;
function rn() {
  if (jo) return na;
  jo = 1, Lh();
  var n = ne(), e = tr(), r = en(), t = Z(), i = ae(), a = yr(), s = i("species"), o = RegExp.prototype;
  return na = function(u, l, h, c) {
    var v = i(u), f = !t(function() {
      var y = {};
      return y[v] = function() {
        return 7;
      }, ""[u](y) !== 7;
    }), g = f && !t(function() {
      var y = !1, m = /a/;
      return u === "split" && (m = {}, m.constructor = {}, m.constructor[s] = function() {
        return m;
      }, m.flags = "", m[v] = /./[v]), m.exec = function() {
        return y = !0, null;
      }, m[v](""), !y;
    });
    if (!f || !g || h) {
      var d = /./[v], p = l(v, ""[u], function(y, m, b, x, S) {
        var E = m.exec;
        return E === r || E === o.exec ? f && !S ? { done: !0, value: n(d, m, b, x) } : { done: !0, value: n(y, b, m, x) } : { done: !1 };
      });
      e(String.prototype, u, p[0]), e(o, v, p[1]);
    }
    c && a(o[v], "sham", !0);
  }, na;
}
var sa, Bo;
function kh() {
  if (Bo) return sa;
  Bo = 1;
  var n = J(), e = kr(), r = qe(), t = Pe(), i = n("".charAt), a = n("".charCodeAt), s = n("".slice), o = function(u) {
    return function(l, h) {
      var c = r(t(l)), v = e(h), f = c.length, g, d;
      return v < 0 || v >= f ? u ? "" : void 0 : (g = a(c, v), g < 55296 || g > 56319 || v + 1 === f || (d = a(c, v + 1)) < 56320 || d > 57343 ? u ? i(c, v) : g : u ? s(c, v, v + 2) : (g - 55296 << 10) + (d - 56320) + 65536);
    };
  };
  return sa = {
    // `String.prototype.codePointAt` method
    // https://tc39.es/ecma262/#sec-string.prototype.codepointat
    codeAt: o(!1),
    // `String.prototype.at` method
    // https://github.com/mathiasbynens/String.prototype.at
    charAt: o(!0)
  }, sa;
}
var oa, Fo;
function tn() {
  if (Fo) return oa;
  Fo = 1;
  var n = kh().charAt;
  return oa = function(e, r, t) {
    return r + (t ? n(e, r).length : 1);
  }, oa;
}
var ua, Uo;
function jh() {
  if (Uo) return ua;
  Uo = 1;
  var n = Q(), e = Z(), r = n.RegExp, t = !e(function() {
    var i = !0;
    try {
      r(".", "d");
    } catch {
      i = !1;
    }
    var a = {}, s = "", o = i ? "dgimsy" : "gimsy", u = function(v, f) {
      Object.defineProperty(a, v, { get: function() {
        return s += f, !0;
      } });
    }, l = {
      dotAll: "s",
      global: "g",
      ignoreCase: "i",
      multiline: "m",
      sticky: "y"
    };
    i && (l.hasIndices = "d");
    for (var h in l) u(h, l[h]);
    var c = Object.getOwnPropertyDescriptor(r.prototype, "flags").get.call(a);
    return c !== o || s !== o;
  });
  return ua = { correct: t }, ua;
}
var la, Go;
function an() {
  if (Go) return la;
  Go = 1;
  var n = ne(), e = Ae(), r = Nr(), t = jh(), i = wl(), a = RegExp.prototype;
  return la = t.correct ? function(s) {
    return s.flags;
  } : function(s) {
    return !t.correct && r(a, s) && !e(s, "flags") ? n(i, s) : s.flags;
  }, la;
}
var ha, $o;
function nn() {
  if ($o) return ha;
  $o = 1;
  var n = ne(), e = le(), r = re(), t = er(), i = en(), a = TypeError;
  return ha = function(s, o) {
    var u = s.exec;
    if (r(u)) {
      var l = n(u, s, o);
      return l !== null && e(l), l;
    }
    if (t(s) === "RegExp") return n(i, s, o);
    throw new a("RegExp#exec called on incompatible receiver");
  }, ha;
}
var zo;
function Bh() {
  if (zo) return wo;
  zo = 1;
  var n = ne(), e = J(), r = rn(), t = le(), i = pe(), a = sr(), s = qe(), o = Pe(), u = nr(), l = tn(), h = an(), c = nn(), v = e("".indexOf);
  return r("match", function(f, g, d) {
    return [
      // `String.prototype.match` method
      // https://tc39.es/ecma262/#sec-string.prototype.match
      function(y) {
        var m = o(this), b = i(y) ? u(y, f) : void 0;
        return b ? n(b, y, m) : new RegExp(y)[f](s(m));
      },
      // `RegExp.prototype[@@match]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
      function(p) {
        var y = t(this), m = s(p), b = d(g, y, m);
        if (b.done) return b.value;
        var x = s(h(y));
        if (v(x, "g") === -1) return c(y, m);
        var S = v(x, "u") !== -1;
        y.lastIndex = 0;
        for (var E = [], O = 0, P; (P = c(y, m)) !== null; ) {
          var _ = s(P[0]);
          E[O] = _, _ === "" && (y.lastIndex = l(m, a(y.lastIndex), S)), O++;
        }
        return O === 0 ? null : E;
      }
    ];
  }), wo;
}
Bh();
var Ho = {}, fa, Wo;
function Fh() {
  if (Wo) return fa;
  Wo = 1;
  var n = J(), e = Mr(), r = Math.floor, t = n("".charAt), i = n("".replace), a = n("".slice), s = /\$([$&'`]|\d{1,2}|<[^>]*>)/g, o = /\$([$&'`]|\d{1,2})/g;
  return fa = function(u, l, h, c, v, f) {
    var g = h + u.length, d = c.length, p = o;
    return v !== void 0 && (v = e(v), p = s), i(f, p, function(y, m) {
      var b;
      switch (t(m, 0)) {
        case "$":
          return "$";
        case "&":
          return u;
        case "`":
          return a(l, 0, h);
        case "'":
          return a(l, g);
        case "<":
          b = v[a(m, 1, -1)];
          break;
        default:
          var x = +m;
          if (x === 0) return y;
          if (x > d) {
            var S = r(x / 10);
            return S === 0 ? y : S <= d ? c[S - 1] === void 0 ? t(m, 1) : c[S - 1] + t(m, 1) : y;
          }
          b = c[x - 1];
      }
      return b === void 0 ? "" : b;
    });
  }, fa;
}
var Yo;
function Uh() {
  if (Yo) return Ho;
  Yo = 1;
  var n = bl(), e = ne(), r = J(), t = rn(), i = Z(), a = le(), s = re(), o = pe(), u = kr(), l = sr(), h = qe(), c = Pe(), v = tn(), f = nr(), g = Fh(), d = an(), p = nn(), y = ae(), m = y("replace"), b = Math.max, x = Math.min, S = r([].concat), E = r([].push), O = r("".indexOf), P = r("".slice), _ = function(j) {
    return j === void 0 ? j : String(j);
  }, A = function() {
    return "a".replace(/./, "$0") === "$0";
  }(), q = function() {
    return /./[m] ? /./[m]("a", "$0") === "" : !1;
  }(), I = !i(function() {
    var j = /./;
    return j.exec = function() {
      var C = [];
      return C.groups = { a: "7" }, C;
    }, "".replace(j, "$<a>") !== "7";
  });
  return t("replace", function(j, C, w) {
    var U = q ? "$" : "$0";
    return [
      // `String.prototype.replace` method
      // https://tc39.es/ecma262/#sec-string.prototype.replace
      function(V, M) {
        var N = c(this), k = o(V) ? f(V, m) : void 0;
        return k ? e(k, V, N, M) : e(C, h(N), V, M);
      },
      // `RegExp.prototype[@@replace]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
      function(L, V) {
        var M = a(this), N = h(L);
        if (typeof V == "string" && O(V, U) === -1 && O(V, "$<") === -1) {
          var k = w(C, M, N, V);
          if (k.done) return k.value;
        }
        var z = s(V);
        z || (V = h(V));
        var H = h(d(M)), X = O(H, "g") !== -1, se;
        X && (se = O(H, "u") !== -1, M.lastIndex = 0);
        for (var be = [], oe; oe = p(M, N), !(oe === null || (E(be, oe), !X)); ) {
          var Ue = h(oe[0]);
          Ue === "" && (M.lastIndex = v(N, l(M.lastIndex), se));
        }
        for (var Ge = "", fe = 0, Ne = 0; Ne < be.length; Ne++) {
          oe = be[Ne];
          for (var _e = h(oe[0]), me = b(x(u(oe.index), N.length), 0), ce = [], xe, De = 1; De < oe.length; De++) E(ce, _(oe[De]));
          var Ve = oe.groups;
          if (z) {
            var Xe = S([_e], ce, me, N);
            Ve !== void 0 && E(Xe, Ve), xe = h(n(V, void 0, Xe));
          } else
            xe = g(_e, N, me, ce, Ve, V);
          me >= fe && (Ge += P(N, fe, me) + xe, fe = me + _e.length);
        }
        return Ge + P(N, fe);
      }
    ];
  }, !I || !A || q), Ho;
}
Uh();
var Xo = {}, ca, Ko;
function Gh() {
  if (Ko) return ca;
  Ko = 1;
  var n = pe(), e = er(), r = ae(), t = r("match");
  return ca = function(i) {
    var a;
    return n(i) && ((a = i[t]) !== void 0 ? !!a : e(i) === "RegExp");
  }, ca;
}
var va, Qo;
function sn() {
  if (Qo) return va;
  Qo = 1;
  var n = Gh(), e = TypeError;
  return va = function(r) {
    if (n(r))
      throw new e("The method doesn't accept regular expressions");
    return r;
  }, va;
}
var ga, Zo;
function on() {
  if (Zo) return ga;
  Zo = 1;
  var n = ae(), e = n("match");
  return ga = function(r) {
    var t = /./;
    try {
      "/./"[r](t);
    } catch {
      try {
        return t[e] = !1, "/./"[r](t);
      } catch {
      }
    }
    return !1;
  }, ga;
}
var Jo;
function $h() {
  if (Jo) return Xo;
  Jo = 1;
  var n = he(), e = Fr(), r = Dr().f, t = sr(), i = qe(), a = sn(), s = Pe(), o = on(), u = Me(), l = e("".slice), h = Math.min, c = o("startsWith"), v = !u && !c && !!function() {
    var f = r(String.prototype, "startsWith");
    return f && !f.writable;
  }();
  return n({ target: "String", proto: !0, forced: !v && !c }, {
    startsWith: function(g) {
      var d = i(s(this));
      a(g);
      var p = t(h(arguments.length > 1 ? arguments[1] : void 0, d.length)), y = i(g);
      return l(d, p, p + y.length) === y;
    }
  }), Xo;
}
$h();
var da, eu;
function zh() {
  if (eu) return da;
  eu = 1;
  var n = ae(), e = Ur(), r = Ye().f, t = n("unscopables"), i = Array.prototype;
  return i[t] === void 0 && r(i, t, {
    configurable: !0,
    value: e(null)
  }), da = function(a) {
    i[t][a] = !0;
  }, da;
}
var pa, ru;
function Hh() {
  if (ru) return pa;
  ru = 1;
  var n = Z();
  return pa = !n(function() {
    function e() {
    }
    return e.prototype.constructor = null, Object.getPrototypeOf(new e()) !== e.prototype;
  }), pa;
}
var ya, tu;
function Al() {
  if (tu) return ya;
  tu = 1;
  var n = Ae(), e = re(), r = Mr(), t = Wa(), i = Hh(), a = t("IE_PROTO"), s = Object, o = s.prototype;
  return ya = i ? s.getPrototypeOf : function(u) {
    var l = r(u);
    if (n(l, a)) return l[a];
    var h = l.constructor;
    return e(h) && l instanceof h ? h.prototype : l instanceof s ? o : null;
  }, ya;
}
var ma, iu;
function Il() {
  if (iu) return ma;
  iu = 1;
  var n = Z(), e = re(), r = pe(), t = Ur(), i = Al(), a = tr(), s = ae(), o = Me(), u = s("iterator"), l = !1, h, c, v;
  [].keys && (v = [].keys(), "next" in v ? (c = i(i(v)), c !== Object.prototype && (h = c)) : l = !0);
  var f = !r(h) || n(function() {
    var g = {};
    return h[u].call(g) !== g;
  });
  return f ? h = {} : o && (h = t(h)), e(h[u]) || a(h, u, function() {
    return this;
  }), ma = {
    IteratorPrototype: h,
    BUGGY_SAFARI_ITERATORS: l
  }, ma;
}
var ba, au;
function Wh() {
  if (au) return ba;
  au = 1;
  var n = Il().IteratorPrototype, e = Ur(), r = Fa(), t = Br(), i = Or(), a = function() {
    return this;
  };
  return ba = function(s, o, u, l) {
    var h = o + " Iterator";
    return s.prototype = e(n, { next: r(+!l, u) }), t(s, h, !1, !0), i[h] = a, s;
  }, ba;
}
var xa, nu;
function Yh() {
  if (nu) return xa;
  nu = 1;
  var n = he(), e = ne(), r = Me(), t = Vr(), i = re(), a = Wh(), s = Al(), o = yl(), u = Br(), l = yr(), h = tr(), c = ae(), v = Or(), f = Il(), g = t.PROPER, d = t.CONFIGURABLE, p = f.IteratorPrototype, y = f.BUGGY_SAFARI_ITERATORS, m = c("iterator"), b = "keys", x = "values", S = "entries", E = function() {
    return this;
  };
  return xa = function(O, P, _, A, q, I, j) {
    a(_, P, A);
    var C = function(X) {
      if (X === q && M) return M;
      if (!y && X && X in L) return L[X];
      switch (X) {
        case b:
          return function() {
            return new _(this, X);
          };
        case x:
          return function() {
            return new _(this, X);
          };
        case S:
          return function() {
            return new _(this, X);
          };
      }
      return function() {
        return new _(this);
      };
    }, w = P + " Iterator", U = !1, L = O.prototype, V = L[m] || L["@@iterator"] || q && L[q], M = !y && V || C(q), N = P === "Array" && L.entries || V, k, z, H;
    if (N && (k = s(N.call(new O())), k !== Object.prototype && k.next && (!r && s(k) !== p && (o ? o(k, p) : i(k[m]) || h(k, m, E)), u(k, w, !0, !0), r && (v[w] = E))), g && q === x && V && V.name !== x && (!r && d ? l(L, "name", x) : (U = !0, M = function() {
      return e(V, this);
    })), q)
      if (z = {
        values: C(x),
        keys: I ? M : C(b),
        entries: C(S)
      }, j) for (H in z)
        (y || U || !(H in L)) && h(L, H, z[H]);
      else n({ target: P, proto: !0, forced: y || U }, z);
    return (!r || j) && L[m] !== M && h(L, m, M, { name: q }), v[P] = M, z;
  }, xa;
}
var Oa, su;
function Xh() {
  return su || (su = 1, Oa = function(n, e) {
    return { value: n, done: e };
  }), Oa;
}
var Ta, ou;
function Nl() {
  if (ou) return Ta;
  ou = 1;
  var n = dr(), e = zh(), r = Or(), t = Lr(), i = Ye().f, a = Yh(), s = Xh(), o = Me(), u = we(), l = "Array Iterator", h = t.set, c = t.getterFor(l);
  Ta = a(Array, "Array", function(f, g) {
    h(this, {
      type: l,
      target: n(f),
      // target
      index: 0,
      // next index
      kind: g
      // kind
    });
  }, function() {
    var f = c(this), g = f.target, d = f.index++;
    if (!g || d >= g.length)
      return f.target = null, s(void 0, !0);
    switch (f.kind) {
      case "keys":
        return s(d, !1);
      case "values":
        return s(g[d], !1);
    }
    return s([d, g[d]], !1);
  }, "values");
  var v = r.Arguments = r.Array;
  if (e("keys"), e("values"), e("entries"), !o && u && v.name !== "values") try {
    i(v, "name", { value: "values" });
  } catch {
  }
  return Ta;
}
Nl();
var uu = {}, Sa, lu;
function Kh() {
  return lu || (lu = 1, Sa = {
    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
  }), Sa;
}
var Ea, hu;
function Qh() {
  if (hu) return Ea;
  hu = 1;
  var n = qr(), e = n("span").classList, r = e && e.constructor && e.constructor.prototype;
  return Ea = r === Object.prototype ? void 0 : r, Ea;
}
var fu;
function Zh() {
  if (fu) return uu;
  fu = 1;
  var n = Q(), e = Kh(), r = Qh(), t = Nl(), i = yr(), a = Br(), s = ae(), o = s("iterator"), u = t.values, l = function(c, v) {
    if (c) {
      if (c[o] !== u) try {
        i(c, o, u);
      } catch {
        c[o] = u;
      }
      if (a(c, v, !0), e[v]) {
        for (var f in t)
          if (c[f] !== t[f]) try {
            i(c, f, t[f]);
          } catch {
            c[f] = t[f];
          }
      }
    }
  };
  for (var h in e)
    l(n[h] && n[h].prototype, h);
  return l(r, "DOMTokenList"), uu;
}
Zh();
function Jh(n, e) {
  if (Va(n) != "object" || !n) return n;
  var r = n[Symbol.toPrimitive];
  if (r !== void 0) {
    var t = r.call(n, e);
    if (Va(t) != "object") return t;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return (e === "string" ? String : Number)(n);
}
function ef(n) {
  var e = Jh(n, "string");
  return Va(e) == "symbol" ? e : e + "";
}
function un(n, e, r) {
  return (e = ef(e)) in n ? Object.defineProperty(n, e, {
    value: r,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : n[e] = r, n;
}
var cu = {}, Ra, vu;
function rf() {
  if (vu) return Ra;
  vu = 1;
  var n = Fe(), e = Mr(), r = al(), t = Xa(), i = TypeError, a = "Reduce of empty array with no initial value", s = function(o) {
    return function(u, l, h, c) {
      var v = e(u), f = r(v), g = t(v);
      if (n(l), g === 0 && h < 2) throw new i(a);
      var d = o ? g - 1 : 0, p = o ? -1 : 1;
      if (h < 2) for (; ; ) {
        if (d in f) {
          c = f[d], d += p;
          break;
        }
        if (d += p, o ? d < 0 : g <= d)
          throw new i(a);
      }
      for (; o ? d >= 0 : g > d; d += p) d in f && (c = l(c, f[d], d, v));
      return c;
    };
  };
  return Ra = {
    // `Array.prototype.reduce` method
    // https://tc39.es/ecma262/#sec-array.prototype.reduce
    left: s(!1),
    // `Array.prototype.reduceRight` method
    // https://tc39.es/ecma262/#sec-array.prototype.reduceright
    right: s(!0)
  }, Ra;
}
var Ca, gu;
function _l() {
  if (gu) return Ca;
  gu = 1;
  var n = Z();
  return Ca = function(e, r) {
    var t = [][e];
    return !!t && n(function() {
      t.call(null, r || function() {
        return 1;
      }, 1);
    });
  }, Ca;
}
var du;
function tf() {
  if (du) return cu;
  du = 1;
  var n = he(), e = rf().left, r = _l(), t = Ua(), i = jr(), a = !i && t > 79 && t < 83, s = a || !r("reduce");
  return n({ target: "Array", proto: !0, forced: s }, {
    reduce: function(u) {
      var l = arguments.length;
      return e(this, u, l, l > 1 ? arguments[1] : void 0);
    }
  }), cu;
}
tf();
var pu = {}, yu;
function af() {
  if (yu) return pu;
  yu = 1;
  var n = he(), e = Fr(), r = Dr().f, t = sr(), i = qe(), a = sn(), s = Pe(), o = on(), u = Me(), l = e("".slice), h = Math.min, c = o("endsWith"), v = !u && !c && !!function() {
    var f = r(String.prototype, "endsWith");
    return f && !f.writable;
  }();
  return n({ target: "String", proto: !0, forced: !v && !c }, {
    endsWith: function(g) {
      var d = i(s(this));
      a(g);
      var p = arguments.length > 1 ? arguments[1] : void 0, y = d.length, m = p === void 0 ? y : h(t(p), y), b = i(g);
      return l(d, m - b.length, m) === b;
    }
  }), pu;
}
af();
var mu = {}, bu;
function nf() {
  if (bu) return mu;
  bu = 1;
  var n = ne(), e = J(), r = rn(), t = le(), i = pe(), a = Pe(), s = ml(), o = tn(), u = sr(), l = qe(), h = nr(), c = nn(), v = Pl(), f = Z(), g = v.UNSUPPORTED_Y, d = 4294967295, p = Math.min, y = e([].push), m = e("".slice), b = !f(function() {
    var S = /(?:)/, E = S.exec;
    S.exec = function() {
      return E.apply(this, arguments);
    };
    var O = "ab".split(S);
    return O.length !== 2 || O[0] !== "a" || O[1] !== "b";
  }), x = "abbc".split(/(b)*/)[1] === "c" || // eslint-disable-next-line regexp/no-empty-group -- required for testing
  "test".split(/(?:)/, -1).length !== 4 || "ab".split(/(?:ab)*/).length !== 2 || ".".split(/(.?)(.?)/).length !== 4 || // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing
  ".".split(/()()/).length > 1 || "".split(/.?/).length;
  return r("split", function(S, E, O) {
    var P = "0".split(void 0, 0).length ? function(_, A) {
      return _ === void 0 && A === 0 ? [] : n(E, this, _, A);
    } : E;
    return [
      // `String.prototype.split` method
      // https://tc39.es/ecma262/#sec-string.prototype.split
      function(A, q) {
        var I = a(this), j = i(A) ? h(A, S) : void 0;
        return j ? n(j, A, I, q) : n(P, l(I), A, q);
      },
      // `RegExp.prototype[@@split]` method
      // https://tc39.es/ecma262/#sec-regexp.prototype-@@split
      //
      // NOTE: This cannot be properly polyfilled in engines that don't support
      // the 'y' flag.
      function(_, A) {
        var q = t(this), I = l(_);
        if (!x) {
          var j = O(P, q, I, A, P !== E);
          if (j.done) return j.value;
        }
        var C = s(q, RegExp), w = q.unicode, U = (q.ignoreCase ? "i" : "") + (q.multiline ? "m" : "") + (q.unicode ? "u" : "") + (g ? "g" : "y"), L = new C(g ? "^(?:" + q.source + ")" : q, U), V = A === void 0 ? d : A >>> 0;
        if (V === 0) return [];
        if (I.length === 0) return c(L, I) === null ? [I] : [];
        for (var M = 0, N = 0, k = []; N < I.length; ) {
          L.lastIndex = g ? 0 : N;
          var z = c(L, g ? m(I, N) : I), H;
          if (z === null || (H = p(u(L.lastIndex + (g ? N : 0)), I.length)) === M)
            N = o(I, N, w);
          else {
            if (y(k, m(I, M, N)), k.length === V) return k;
            for (var X = 1; X <= z.length - 1; X++)
              if (y(k, z[X]), k.length === V) return k;
            N = M = H;
          }
        }
        return y(k, m(I, M)), k;
      }
    ];
  }, x || !b, g), mu;
}
nf();
var vr = { exports: {} }, Ze = { exports: {} }, sf = Ze.exports, xu;
function of() {
  return xu || (xu = 1, (function() {
    var n, e, r, t, i, a;
    typeof performance < "u" && performance !== null && performance.now ? Ze.exports = function() {
      return performance.now();
    } : typeof process < "u" && process !== null && process.hrtime ? (Ze.exports = function() {
      return (n() - i) / 1e6;
    }, e = process.hrtime, n = function() {
      var s;
      return s = e(), s[0] * 1e9 + s[1];
    }, t = n(), a = process.uptime() * 1e9, i = t - a) : Date.now ? (Ze.exports = function() {
      return Date.now() - r;
    }, r = Date.now()) : (Ze.exports = function() {
      return (/* @__PURE__ */ new Date()).getTime() - r;
    }, r = (/* @__PURE__ */ new Date()).getTime());
  }).call(sf)), Ze.exports;
}
var Ou;
function uf() {
  if (Ou) return vr.exports;
  Ou = 1;
  for (var n = of(), e = typeof window > "u" ? Da : window, r = ["moz", "webkit"], t = "AnimationFrame", i = e["request" + t], a = e["cancel" + t] || e["cancelRequest" + t], s = 0; !i && s < r.length; s++)
    i = e[r[s] + "Request" + t], a = e[r[s] + "Cancel" + t] || e[r[s] + "CancelRequest" + t];
  if (!i || !a) {
    var o = 0, u = 0, l = [], h = 1e3 / 60;
    i = function(c) {
      if (l.length === 0) {
        var v = n(), f = Math.max(0, h - (v - o));
        o = f + v, setTimeout(function() {
          var g = l.slice(0);
          l.length = 0;
          for (var d = 0; d < g.length; d++)
            if (!g[d].cancelled)
              try {
                g[d].callback(o);
              } catch (p) {
                setTimeout(function() {
                  throw p;
                }, 0);
              }
        }, Math.round(f));
      }
      return l.push({
        handle: ++u,
        callback: c,
        cancelled: !1
      }), u;
    }, a = function(c) {
      for (var v = 0; v < l.length; v++)
        l[v].handle === c && (l[v].cancelled = !0);
    };
  }
  return vr.exports = function(c) {
    return i.call(e, c);
  }, vr.exports.cancel = function() {
    a.apply(e, arguments);
  }, vr.exports.polyfill = function(c) {
    c || (c = e), c.requestAnimationFrame = i, c.cancelAnimationFrame = a;
  }, vr.exports;
}
var lf = uf();
const wa = /* @__PURE__ */ il(lf);
var Tu = {}, Pa, Su;
function Ml() {
  return Su || (Su = 1, Pa = `	
\v\f\r                 \u2028\u2029\uFEFF`), Pa;
}
var Aa, Eu;
function hf() {
  if (Eu) return Aa;
  Eu = 1;
  var n = J(), e = Pe(), r = qe(), t = Ml(), i = n("".replace), a = RegExp("^[" + t + "]+"), s = RegExp("(^|[^" + t + "])[" + t + "]+$"), o = function(u) {
    return function(l) {
      var h = r(e(l));
      return u & 1 && (h = i(h, a, "")), u & 2 && (h = i(h, s, "$1")), h;
    };
  };
  return Aa = {
    // `String.prototype.{ trimLeft, trimStart }` methods
    // https://tc39.es/ecma262/#sec-string.prototype.trimstart
    start: o(1),
    // `String.prototype.{ trimRight, trimEnd }` methods
    // https://tc39.es/ecma262/#sec-string.prototype.trimend
    end: o(2),
    // `String.prototype.trim` method
    // https://tc39.es/ecma262/#sec-string.prototype.trim
    trim: o(3)
  }, Aa;
}
var Ia, Ru;
function ff() {
  if (Ru) return Ia;
  Ru = 1;
  var n = Vr().PROPER, e = Z(), r = Ml(), t = "​…᠎";
  return Ia = function(i) {
    return e(function() {
      return !!r[i]() || t[i]() !== t || n && r[i].name !== i;
    });
  }, Ia;
}
var Cu;
function cf() {
  if (Cu) return Tu;
  Cu = 1;
  var n = he(), e = hf().trim, r = ff();
  return n({ target: "String", proto: !0, forced: r("trim") }, {
    trim: function() {
      return e(this);
    }
  }), Tu;
}
cf();
var Na, wu;
function vf() {
  return wu || (wu = 1, Na = function(n) {
    this.ok = !1, this.alpha = 1, n.charAt(0) == "#" && (n = n.substr(1, 6)), n = n.replace(/ /g, ""), n = n.toLowerCase();
    var e = {
      aliceblue: "f0f8ff",
      antiquewhite: "faebd7",
      aqua: "00ffff",
      aquamarine: "7fffd4",
      azure: "f0ffff",
      beige: "f5f5dc",
      bisque: "ffe4c4",
      black: "000000",
      blanchedalmond: "ffebcd",
      blue: "0000ff",
      blueviolet: "8a2be2",
      brown: "a52a2a",
      burlywood: "deb887",
      cadetblue: "5f9ea0",
      chartreuse: "7fff00",
      chocolate: "d2691e",
      coral: "ff7f50",
      cornflowerblue: "6495ed",
      cornsilk: "fff8dc",
      crimson: "dc143c",
      cyan: "00ffff",
      darkblue: "00008b",
      darkcyan: "008b8b",
      darkgoldenrod: "b8860b",
      darkgray: "a9a9a9",
      darkgreen: "006400",
      darkkhaki: "bdb76b",
      darkmagenta: "8b008b",
      darkolivegreen: "556b2f",
      darkorange: "ff8c00",
      darkorchid: "9932cc",
      darkred: "8b0000",
      darksalmon: "e9967a",
      darkseagreen: "8fbc8f",
      darkslateblue: "483d8b",
      darkslategray: "2f4f4f",
      darkturquoise: "00ced1",
      darkviolet: "9400d3",
      deeppink: "ff1493",
      deepskyblue: "00bfff",
      dimgray: "696969",
      dodgerblue: "1e90ff",
      feldspar: "d19275",
      firebrick: "b22222",
      floralwhite: "fffaf0",
      forestgreen: "228b22",
      fuchsia: "ff00ff",
      gainsboro: "dcdcdc",
      ghostwhite: "f8f8ff",
      gold: "ffd700",
      goldenrod: "daa520",
      gray: "808080",
      green: "008000",
      greenyellow: "adff2f",
      honeydew: "f0fff0",
      hotpink: "ff69b4",
      indianred: "cd5c5c",
      indigo: "4b0082",
      ivory: "fffff0",
      khaki: "f0e68c",
      lavender: "e6e6fa",
      lavenderblush: "fff0f5",
      lawngreen: "7cfc00",
      lemonchiffon: "fffacd",
      lightblue: "add8e6",
      lightcoral: "f08080",
      lightcyan: "e0ffff",
      lightgoldenrodyellow: "fafad2",
      lightgrey: "d3d3d3",
      lightgreen: "90ee90",
      lightpink: "ffb6c1",
      lightsalmon: "ffa07a",
      lightseagreen: "20b2aa",
      lightskyblue: "87cefa",
      lightslateblue: "8470ff",
      lightslategray: "778899",
      lightsteelblue: "b0c4de",
      lightyellow: "ffffe0",
      lime: "00ff00",
      limegreen: "32cd32",
      linen: "faf0e6",
      magenta: "ff00ff",
      maroon: "800000",
      mediumaquamarine: "66cdaa",
      mediumblue: "0000cd",
      mediumorchid: "ba55d3",
      mediumpurple: "9370d8",
      mediumseagreen: "3cb371",
      mediumslateblue: "7b68ee",
      mediumspringgreen: "00fa9a",
      mediumturquoise: "48d1cc",
      mediumvioletred: "c71585",
      midnightblue: "191970",
      mintcream: "f5fffa",
      mistyrose: "ffe4e1",
      moccasin: "ffe4b5",
      navajowhite: "ffdead",
      navy: "000080",
      oldlace: "fdf5e6",
      olive: "808000",
      olivedrab: "6b8e23",
      orange: "ffa500",
      orangered: "ff4500",
      orchid: "da70d6",
      palegoldenrod: "eee8aa",
      palegreen: "98fb98",
      paleturquoise: "afeeee",
      palevioletred: "d87093",
      papayawhip: "ffefd5",
      peachpuff: "ffdab9",
      peru: "cd853f",
      pink: "ffc0cb",
      plum: "dda0dd",
      powderblue: "b0e0e6",
      purple: "800080",
      rebeccapurple: "663399",
      red: "ff0000",
      rosybrown: "bc8f8f",
      royalblue: "4169e1",
      saddlebrown: "8b4513",
      salmon: "fa8072",
      sandybrown: "f4a460",
      seagreen: "2e8b57",
      seashell: "fff5ee",
      sienna: "a0522d",
      silver: "c0c0c0",
      skyblue: "87ceeb",
      slateblue: "6a5acd",
      slategray: "708090",
      snow: "fffafa",
      springgreen: "00ff7f",
      steelblue: "4682b4",
      tan: "d2b48c",
      teal: "008080",
      thistle: "d8bfd8",
      tomato: "ff6347",
      turquoise: "40e0d0",
      violet: "ee82ee",
      violetred: "d02090",
      wheat: "f5deb3",
      white: "ffffff",
      whitesmoke: "f5f5f5",
      yellow: "ffff00",
      yellowgreen: "9acd32"
    };
    n = e[n] || n;
    for (var r = [
      {
        re: /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,
        example: ["rgba(123, 234, 45, 0.8)", "rgba(255,234,245,1.0)"],
        process: function(u) {
          return [
            parseInt(u[1]),
            parseInt(u[2]),
            parseInt(u[3]),
            parseFloat(u[4])
          ];
        }
      },
      {
        re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
        example: ["rgb(123, 234, 45)", "rgb(255,234,245)"],
        process: function(u) {
          return [
            parseInt(u[1]),
            parseInt(u[2]),
            parseInt(u[3])
          ];
        }
      },
      {
        re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
        example: ["#00ff00", "336699"],
        process: function(u) {
          return [
            parseInt(u[1], 16),
            parseInt(u[2], 16),
            parseInt(u[3], 16)
          ];
        }
      },
      {
        re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
        example: ["#fb0", "f0f"],
        process: function(u) {
          return [
            parseInt(u[1] + u[1], 16),
            parseInt(u[2] + u[2], 16),
            parseInt(u[3] + u[3], 16)
          ];
        }
      }
    ], t = 0; t < r.length; t++) {
      var i = r[t].re, a = r[t].process, s = i.exec(n);
      if (s) {
        var o = a(s);
        this.r = o[0], this.g = o[1], this.b = o[2], o.length > 3 && (this.alpha = o[3]), this.ok = !0;
      }
    }
    this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r, this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g, this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b, this.alpha = this.alpha < 0 ? 0 : this.alpha > 1 || isNaN(this.alpha) ? 1 : this.alpha, this.toRGB = function() {
      return "rgb(" + this.r + ", " + this.g + ", " + this.b + ")";
    }, this.toRGBA = function() {
      return "rgba(" + this.r + ", " + this.g + ", " + this.b + ", " + this.alpha + ")";
    }, this.toHex = function() {
      var u = this.r.toString(16), l = this.g.toString(16), h = this.b.toString(16);
      return u.length == 1 && (u = "0" + u), l.length == 1 && (l = "0" + l), h.length == 1 && (h = "0" + h), "#" + u + l + h;
    }, this.getHelpXML = function() {
      for (var u = new Array(), l = 0; l < r.length; l++)
        for (var h = r[l].example, c = 0; c < h.length; c++)
          u[u.length] = h[c];
      for (var v in e)
        u[u.length] = v;
      var f = document.createElement("ul");
      f.setAttribute("id", "rgbcolor-examples");
      for (var l = 0; l < u.length; l++)
        try {
          var g = document.createElement("li"), d = new RGBColor(u[l]), p = document.createElement("div");
          p.style.cssText = "margin: 3px; border: 1px solid black; background:" + d.toHex() + "; color:" + d.toHex(), p.appendChild(document.createTextNode("test"));
          var y = document.createTextNode(
            " " + u[l] + " -> " + d.toRGB() + " -> " + d.toHex()
          );
          g.appendChild(p), g.appendChild(y), f.appendChild(g);
        } catch {
        }
      return f;
    };
  }), Na;
}
var gf = vf();
const La = /* @__PURE__ */ il(gf);
var Pu = {}, Au;
function df() {
  if (Au) return Pu;
  Au = 1;
  var n = he(), e = Fr(), r = vl().indexOf, t = _l(), i = e([].indexOf), a = !!i && 1 / i([1], 1, -0) < 0, s = a || !t("indexOf");
  return n({ target: "Array", proto: !0, forced: s }, {
    indexOf: function(u) {
      var l = arguments.length > 1 ? arguments[1] : void 0;
      return a ? i(this, u, l) || 0 : r(this, u, l);
    }
  }), Pu;
}
df();
var Iu = {}, Nu;
function pf() {
  if (Nu) return Iu;
  Nu = 1;
  var n = he(), e = J(), r = sn(), t = Pe(), i = qe(), a = on(), s = e("".indexOf);
  return n({ target: "String", proto: !0, forced: !a("includes") }, {
    includes: function(u) {
      return !!~s(
        i(t(this)),
        i(r(u)),
        arguments.length > 1 ? arguments[1] : void 0
      );
    }
  }), Iu;
}
pf();
var _u = {}, _a, Mu;
function yf() {
  if (Mu) return _a;
  Mu = 1;
  var n = er();
  return _a = Array.isArray || function(r) {
    return n(r) === "Array";
  }, _a;
}
var qu;
function mf() {
  if (qu) return _u;
  qu = 1;
  var n = he(), e = J(), r = yf(), t = e([].reverse), i = [1, 2];
  return n({ target: "Array", proto: !0, forced: String(i) === String(i.reverse()) }, {
    reverse: function() {
      return r(this) && (this.length = this.length), t(this);
    }
  }), _u;
}
mf();
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
var ql = function(n, e) {
  return (ql = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, t) {
    r.__proto__ = t;
  } || function(r, t) {
    for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && (r[i] = t[i]);
  })(n, e);
};
function Dl(n, e) {
  if (typeof e != "function" && e !== null) throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
  function r() {
    this.constructor = n;
  }
  ql(n, e), n.prototype = e === null ? Object.create(e) : (r.prototype = e.prototype, new r());
}
function bf(n) {
  var e = "";
  Array.isArray(n) || (n = [n]);
  for (var r = 0; r < n.length; r++) {
    var t = n[r];
    if (t.type === T.CLOSE_PATH) e += "z";
    else if (t.type === T.HORIZ_LINE_TO) e += (t.relative ? "h" : "H") + t.x;
    else if (t.type === T.VERT_LINE_TO) e += (t.relative ? "v" : "V") + t.y;
    else if (t.type === T.MOVE_TO) e += (t.relative ? "m" : "M") + t.x + " " + t.y;
    else if (t.type === T.LINE_TO) e += (t.relative ? "l" : "L") + t.x + " " + t.y;
    else if (t.type === T.CURVE_TO) e += (t.relative ? "c" : "C") + t.x1 + " " + t.y1 + " " + t.x2 + " " + t.y2 + " " + t.x + " " + t.y;
    else if (t.type === T.SMOOTH_CURVE_TO) e += (t.relative ? "s" : "S") + t.x2 + " " + t.y2 + " " + t.x + " " + t.y;
    else if (t.type === T.QUAD_TO) e += (t.relative ? "q" : "Q") + t.x1 + " " + t.y1 + " " + t.x + " " + t.y;
    else if (t.type === T.SMOOTH_QUAD_TO) e += (t.relative ? "t" : "T") + t.x + " " + t.y;
    else {
      if (t.type !== T.ARC) throw new Error('Unexpected command type "' + t.type + '" at index ' + r + ".");
      e += (t.relative ? "a" : "A") + t.rX + " " + t.rY + " " + t.xRot + " " + +t.lArcFlag + " " + +t.sweepFlag + " " + t.x + " " + t.y;
    }
  }
  return e;
}
function ka(n, e) {
  var r = n[0], t = n[1];
  return [r * Math.cos(e) - t * Math.sin(e), r * Math.sin(e) + t * Math.cos(e)];
}
function Ce() {
  for (var n = [], e = 0; e < arguments.length; e++) n[e] = arguments[e];
  for (var r = 0; r < n.length; r++) if (typeof n[r] != "number") throw new Error("assertNumbers arguments[" + r + "] is not a number. " + typeof n[r] + " == typeof " + n[r]);
  return !0;
}
var ze = Math.PI;
function Ma(n, e, r) {
  n.lArcFlag = n.lArcFlag === 0 ? 0 : 1, n.sweepFlag = n.sweepFlag === 0 ? 0 : 1;
  var t = n.rX, i = n.rY, a = n.x, s = n.y;
  t = Math.abs(n.rX), i = Math.abs(n.rY);
  var o = ka([(e - a) / 2, (r - s) / 2], -n.xRot / 180 * ze), u = o[0], l = o[1], h = Math.pow(u, 2) / Math.pow(t, 2) + Math.pow(l, 2) / Math.pow(i, 2);
  1 < h && (t *= Math.sqrt(h), i *= Math.sqrt(h)), n.rX = t, n.rY = i;
  var c = Math.pow(t, 2) * Math.pow(l, 2) + Math.pow(i, 2) * Math.pow(u, 2), v = (n.lArcFlag !== n.sweepFlag ? 1 : -1) * Math.sqrt(Math.max(0, (Math.pow(t, 2) * Math.pow(i, 2) - c) / c)), f = t * l / i * v, g = -i * u / t * v, d = ka([f, g], n.xRot / 180 * ze);
  n.cX = d[0] + (e + a) / 2, n.cY = d[1] + (r + s) / 2, n.phi1 = Math.atan2((l - g) / i, (u - f) / t), n.phi2 = Math.atan2((-l - g) / i, (-u - f) / t), n.sweepFlag === 0 && n.phi2 > n.phi1 && (n.phi2 -= 2 * ze), n.sweepFlag === 1 && n.phi2 < n.phi1 && (n.phi2 += 2 * ze), n.phi1 *= 180 / ze, n.phi2 *= 180 / ze;
}
function Du(n, e, r) {
  Ce(n, e, r);
  var t = n * n + e * e - r * r;
  if (0 > t) return [];
  if (t === 0) return [[n * r / (n * n + e * e), e * r / (n * n + e * e)]];
  var i = Math.sqrt(t);
  return [[(n * r + e * i) / (n * n + e * e), (e * r - n * i) / (n * n + e * e)], [(n * r - e * i) / (n * n + e * e), (e * r + n * i) / (n * n + e * e)]];
}
var ie, ke = Math.PI / 180;
function Vu(n, e, r) {
  return (1 - r) * n + r * e;
}
function Lu(n, e, r, t) {
  return n + Math.cos(t / 180 * ze) * e + Math.sin(t / 180 * ze) * r;
}
function ku(n, e, r, t) {
  var i = 1e-6, a = e - n, s = r - e, o = 3 * a + 3 * (t - r) - 6 * s, u = 6 * (s - a), l = 3 * a;
  return Math.abs(o) < i ? [-l / u] : function(h, c, v) {
    var f = h * h / 4 - c;
    if (f < -v) return [];
    if (f <= v) return [-h / 2];
    var g = Math.sqrt(f);
    return [-h / 2 - g, -h / 2 + g];
  }(u / o, l / o, i);
}
function ju(n, e, r, t, i) {
  var a = 1 - i;
  return n * (a * a * a) + e * (3 * a * a * i) + r * (3 * a * i * i) + t * (i * i * i);
}
(function(n) {
  function e() {
    return i(function(o, u, l) {
      return o.relative && (o.x1 !== void 0 && (o.x1 += u), o.y1 !== void 0 && (o.y1 += l), o.x2 !== void 0 && (o.x2 += u), o.y2 !== void 0 && (o.y2 += l), o.x !== void 0 && (o.x += u), o.y !== void 0 && (o.y += l), o.relative = !1), o;
    });
  }
  function r() {
    var o = NaN, u = NaN, l = NaN, h = NaN;
    return i(function(c, v, f) {
      return c.type & T.SMOOTH_CURVE_TO && (c.type = T.CURVE_TO, o = isNaN(o) ? v : o, u = isNaN(u) ? f : u, c.x1 = c.relative ? v - o : 2 * v - o, c.y1 = c.relative ? f - u : 2 * f - u), c.type & T.CURVE_TO ? (o = c.relative ? v + c.x2 : c.x2, u = c.relative ? f + c.y2 : c.y2) : (o = NaN, u = NaN), c.type & T.SMOOTH_QUAD_TO && (c.type = T.QUAD_TO, l = isNaN(l) ? v : l, h = isNaN(h) ? f : h, c.x1 = c.relative ? v - l : 2 * v - l, c.y1 = c.relative ? f - h : 2 * f - h), c.type & T.QUAD_TO ? (l = c.relative ? v + c.x1 : c.x1, h = c.relative ? f + c.y1 : c.y1) : (l = NaN, h = NaN), c;
    });
  }
  function t() {
    var o = NaN, u = NaN;
    return i(function(l, h, c) {
      if (l.type & T.SMOOTH_QUAD_TO && (l.type = T.QUAD_TO, o = isNaN(o) ? h : o, u = isNaN(u) ? c : u, l.x1 = l.relative ? h - o : 2 * h - o, l.y1 = l.relative ? c - u : 2 * c - u), l.type & T.QUAD_TO) {
        o = l.relative ? h + l.x1 : l.x1, u = l.relative ? c + l.y1 : l.y1;
        var v = l.x1, f = l.y1;
        l.type = T.CURVE_TO, l.x1 = ((l.relative ? 0 : h) + 2 * v) / 3, l.y1 = ((l.relative ? 0 : c) + 2 * f) / 3, l.x2 = (l.x + 2 * v) / 3, l.y2 = (l.y + 2 * f) / 3;
      } else o = NaN, u = NaN;
      return l;
    });
  }
  function i(o) {
    var u = 0, l = 0, h = NaN, c = NaN;
    return function(v) {
      if (isNaN(h) && !(v.type & T.MOVE_TO)) throw new Error("path must start with moveto");
      var f = o(v, u, l, h, c);
      return v.type & T.CLOSE_PATH && (u = h, l = c), v.x !== void 0 && (u = v.relative ? u + v.x : v.x), v.y !== void 0 && (l = v.relative ? l + v.y : v.y), v.type & T.MOVE_TO && (h = u, c = l), f;
    };
  }
  function a(o, u, l, h, c, v) {
    return Ce(o, u, l, h, c, v), i(function(f, g, d, p) {
      var y = f.x1, m = f.x2, b = f.relative && !isNaN(p), x = f.x !== void 0 ? f.x : b ? 0 : g, S = f.y !== void 0 ? f.y : b ? 0 : d;
      function E(z) {
        return z * z;
      }
      f.type & T.HORIZ_LINE_TO && u !== 0 && (f.type = T.LINE_TO, f.y = f.relative ? 0 : d), f.type & T.VERT_LINE_TO && l !== 0 && (f.type = T.LINE_TO, f.x = f.relative ? 0 : g), f.x !== void 0 && (f.x = f.x * o + S * l + (b ? 0 : c)), f.y !== void 0 && (f.y = x * u + f.y * h + (b ? 0 : v)), f.x1 !== void 0 && (f.x1 = f.x1 * o + f.y1 * l + (b ? 0 : c)), f.y1 !== void 0 && (f.y1 = y * u + f.y1 * h + (b ? 0 : v)), f.x2 !== void 0 && (f.x2 = f.x2 * o + f.y2 * l + (b ? 0 : c)), f.y2 !== void 0 && (f.y2 = m * u + f.y2 * h + (b ? 0 : v));
      var O = o * h - u * l;
      if (f.xRot !== void 0 && (o !== 1 || u !== 0 || l !== 0 || h !== 1)) if (O === 0) delete f.rX, delete f.rY, delete f.xRot, delete f.lArcFlag, delete f.sweepFlag, f.type = T.LINE_TO;
      else {
        var P = f.xRot * Math.PI / 180, _ = Math.sin(P), A = Math.cos(P), q = 1 / E(f.rX), I = 1 / E(f.rY), j = E(A) * q + E(_) * I, C = 2 * _ * A * (q - I), w = E(_) * q + E(A) * I, U = j * h * h - C * u * h + w * u * u, L = C * (o * h + u * l) - 2 * (j * l * h + w * o * u), V = j * l * l - C * o * l + w * o * o, M = (Math.atan2(L, U - V) + Math.PI) % Math.PI / 2, N = Math.sin(M), k = Math.cos(M);
        f.rX = Math.abs(O) / Math.sqrt(U * E(k) + L * N * k + V * E(N)), f.rY = Math.abs(O) / Math.sqrt(U * E(N) - L * N * k + V * E(k)), f.xRot = 180 * M / Math.PI;
      }
      return f.sweepFlag !== void 0 && 0 > O && (f.sweepFlag = +!f.sweepFlag), f;
    });
  }
  function s() {
    return function(o) {
      var u = {};
      for (var l in o) u[l] = o[l];
      return u;
    };
  }
  n.ROUND = function(o) {
    function u(l) {
      return Math.round(l * o) / o;
    }
    return o === void 0 && (o = 1e13), Ce(o), function(l) {
      return l.x1 !== void 0 && (l.x1 = u(l.x1)), l.y1 !== void 0 && (l.y1 = u(l.y1)), l.x2 !== void 0 && (l.x2 = u(l.x2)), l.y2 !== void 0 && (l.y2 = u(l.y2)), l.x !== void 0 && (l.x = u(l.x)), l.y !== void 0 && (l.y = u(l.y)), l.rX !== void 0 && (l.rX = u(l.rX)), l.rY !== void 0 && (l.rY = u(l.rY)), l;
    };
  }, n.TO_ABS = e, n.TO_REL = function() {
    return i(function(o, u, l) {
      return o.relative || (o.x1 !== void 0 && (o.x1 -= u), o.y1 !== void 0 && (o.y1 -= l), o.x2 !== void 0 && (o.x2 -= u), o.y2 !== void 0 && (o.y2 -= l), o.x !== void 0 && (o.x -= u), o.y !== void 0 && (o.y -= l), o.relative = !0), o;
    });
  }, n.NORMALIZE_HVZ = function(o, u, l) {
    return o === void 0 && (o = !0), u === void 0 && (u = !0), l === void 0 && (l = !0), i(function(h, c, v, f, g) {
      if (isNaN(f) && !(h.type & T.MOVE_TO)) throw new Error("path must start with moveto");
      return u && h.type & T.HORIZ_LINE_TO && (h.type = T.LINE_TO, h.y = h.relative ? 0 : v), l && h.type & T.VERT_LINE_TO && (h.type = T.LINE_TO, h.x = h.relative ? 0 : c), o && h.type & T.CLOSE_PATH && (h.type = T.LINE_TO, h.x = h.relative ? f - c : f, h.y = h.relative ? g - v : g), h.type & T.ARC && (h.rX === 0 || h.rY === 0) && (h.type = T.LINE_TO, delete h.rX, delete h.rY, delete h.xRot, delete h.lArcFlag, delete h.sweepFlag), h;
    });
  }, n.NORMALIZE_ST = r, n.QT_TO_C = t, n.INFO = i, n.SANITIZE = function(o) {
    o === void 0 && (o = 0), Ce(o);
    var u = NaN, l = NaN, h = NaN, c = NaN;
    return i(function(v, f, g, d, p) {
      var y = Math.abs, m = !1, b = 0, x = 0;
      if (v.type & T.SMOOTH_CURVE_TO && (b = isNaN(u) ? 0 : f - u, x = isNaN(l) ? 0 : g - l), v.type & (T.CURVE_TO | T.SMOOTH_CURVE_TO) ? (u = v.relative ? f + v.x2 : v.x2, l = v.relative ? g + v.y2 : v.y2) : (u = NaN, l = NaN), v.type & T.SMOOTH_QUAD_TO ? (h = isNaN(h) ? f : 2 * f - h, c = isNaN(c) ? g : 2 * g - c) : v.type & T.QUAD_TO ? (h = v.relative ? f + v.x1 : v.x1, c = v.relative ? g + v.y1 : v.y2) : (h = NaN, c = NaN), v.type & T.LINE_COMMANDS || v.type & T.ARC && (v.rX === 0 || v.rY === 0 || !v.lArcFlag) || v.type & T.CURVE_TO || v.type & T.SMOOTH_CURVE_TO || v.type & T.QUAD_TO || v.type & T.SMOOTH_QUAD_TO) {
        var S = v.x === void 0 ? 0 : v.relative ? v.x : v.x - f, E = v.y === void 0 ? 0 : v.relative ? v.y : v.y - g;
        b = isNaN(h) ? v.x1 === void 0 ? b : v.relative ? v.x : v.x1 - f : h - f, x = isNaN(c) ? v.y1 === void 0 ? x : v.relative ? v.y : v.y1 - g : c - g;
        var O = v.x2 === void 0 ? 0 : v.relative ? v.x : v.x2 - f, P = v.y2 === void 0 ? 0 : v.relative ? v.y : v.y2 - g;
        y(S) <= o && y(E) <= o && y(b) <= o && y(x) <= o && y(O) <= o && y(P) <= o && (m = !0);
      }
      return v.type & T.CLOSE_PATH && y(f - d) <= o && y(g - p) <= o && (m = !0), m ? [] : v;
    });
  }, n.MATRIX = a, n.ROTATE = function(o, u, l) {
    u === void 0 && (u = 0), l === void 0 && (l = 0), Ce(o, u, l);
    var h = Math.sin(o), c = Math.cos(o);
    return a(c, h, -h, c, u - u * c + l * h, l - u * h - l * c);
  }, n.TRANSLATE = function(o, u) {
    return u === void 0 && (u = 0), Ce(o, u), a(1, 0, 0, 1, o, u);
  }, n.SCALE = function(o, u) {
    return u === void 0 && (u = o), Ce(o, u), a(o, 0, 0, u, 0, 0);
  }, n.SKEW_X = function(o) {
    return Ce(o), a(1, 0, Math.atan(o), 1, 0, 0);
  }, n.SKEW_Y = function(o) {
    return Ce(o), a(1, Math.atan(o), 0, 1, 0, 0);
  }, n.X_AXIS_SYMMETRY = function(o) {
    return o === void 0 && (o = 0), Ce(o), a(-1, 0, 0, 1, o, 0);
  }, n.Y_AXIS_SYMMETRY = function(o) {
    return o === void 0 && (o = 0), Ce(o), a(1, 0, 0, -1, 0, o);
  }, n.A_TO_C = function() {
    return i(function(o, u, l) {
      return T.ARC === o.type ? function(h, c, v) {
        var f, g, d, p;
        h.cX || Ma(h, c, v);
        for (var y = Math.min(h.phi1, h.phi2), m = Math.max(h.phi1, h.phi2) - y, b = Math.ceil(m / 90), x = new Array(b), S = c, E = v, O = 0; O < b; O++) {
          var P = Vu(h.phi1, h.phi2, O / b), _ = Vu(h.phi1, h.phi2, (O + 1) / b), A = _ - P, q = 4 / 3 * Math.tan(A * ke / 4), I = [Math.cos(P * ke) - q * Math.sin(P * ke), Math.sin(P * ke) + q * Math.cos(P * ke)], j = I[0], C = I[1], w = [Math.cos(_ * ke), Math.sin(_ * ke)], U = w[0], L = w[1], V = [U + q * Math.sin(_ * ke), L - q * Math.cos(_ * ke)], M = V[0], N = V[1];
          x[O] = { relative: h.relative, type: T.CURVE_TO };
          var k = function(z, H) {
            var X = ka([z * h.rX, H * h.rY], h.xRot), se = X[0], be = X[1];
            return [h.cX + se, h.cY + be];
          };
          f = k(j, C), x[O].x1 = f[0], x[O].y1 = f[1], g = k(M, N), x[O].x2 = g[0], x[O].y2 = g[1], d = k(U, L), x[O].x = d[0], x[O].y = d[1], h.relative && (x[O].x1 -= S, x[O].y1 -= E, x[O].x2 -= S, x[O].y2 -= E, x[O].x -= S, x[O].y -= E), S = (p = [x[O].x, x[O].y])[0], E = p[1];
        }
        return x;
      }(o, o.relative ? 0 : u, o.relative ? 0 : l) : o;
    });
  }, n.ANNOTATE_ARCS = function() {
    return i(function(o, u, l) {
      return o.relative && (u = 0, l = 0), T.ARC === o.type && Ma(o, u, l), o;
    });
  }, n.CLONE = s, n.CALCULATE_BOUNDS = function() {
    var o = function(v) {
      var f = {};
      for (var g in v) f[g] = v[g];
      return f;
    }, u = e(), l = t(), h = r(), c = i(function(v, f, g) {
      var d = h(l(u(o(v))));
      function p(N) {
        N > c.maxX && (c.maxX = N), N < c.minX && (c.minX = N);
      }
      function y(N) {
        N > c.maxY && (c.maxY = N), N < c.minY && (c.minY = N);
      }
      if (d.type & T.DRAWING_COMMANDS && (p(f), y(g)), d.type & T.HORIZ_LINE_TO && p(d.x), d.type & T.VERT_LINE_TO && y(d.y), d.type & T.LINE_TO && (p(d.x), y(d.y)), d.type & T.CURVE_TO) {
        p(d.x), y(d.y);
        for (var m = 0, b = ku(f, d.x1, d.x2, d.x); m < b.length; m++)
          0 < (M = b[m]) && 1 > M && p(ju(f, d.x1, d.x2, d.x, M));
        for (var x = 0, S = ku(g, d.y1, d.y2, d.y); x < S.length; x++)
          0 < (M = S[x]) && 1 > M && y(ju(g, d.y1, d.y2, d.y, M));
      }
      if (d.type & T.ARC) {
        p(d.x), y(d.y), Ma(d, f, g);
        for (var E = d.xRot / 180 * Math.PI, O = Math.cos(E) * d.rX, P = Math.sin(E) * d.rX, _ = -Math.sin(E) * d.rY, A = Math.cos(E) * d.rY, q = d.phi1 < d.phi2 ? [d.phi1, d.phi2] : -180 > d.phi2 ? [d.phi2 + 360, d.phi1 + 360] : [d.phi2, d.phi1], I = q[0], j = q[1], C = function(N) {
          var k = N[0], z = N[1], H = 180 * Math.atan2(z, k) / Math.PI;
          return H < I ? H + 360 : H;
        }, w = 0, U = Du(_, -O, 0).map(C); w < U.length; w++)
          (M = U[w]) > I && M < j && p(Lu(d.cX, O, _, M));
        for (var L = 0, V = Du(A, -P, 0).map(C); L < V.length; L++) {
          var M;
          (M = V[L]) > I && M < j && y(Lu(d.cY, P, A, M));
        }
      }
      return v;
    });
    return c.minX = 1 / 0, c.maxX = -1 / 0, c.minY = 1 / 0, c.maxY = -1 / 0, c;
  };
})(ie || (ie = {}));
var Re, Vl = function() {
  function n() {
  }
  return n.prototype.round = function(e) {
    return this.transform(ie.ROUND(e));
  }, n.prototype.toAbs = function() {
    return this.transform(ie.TO_ABS());
  }, n.prototype.toRel = function() {
    return this.transform(ie.TO_REL());
  }, n.prototype.normalizeHVZ = function(e, r, t) {
    return this.transform(ie.NORMALIZE_HVZ(e, r, t));
  }, n.prototype.normalizeST = function() {
    return this.transform(ie.NORMALIZE_ST());
  }, n.prototype.qtToC = function() {
    return this.transform(ie.QT_TO_C());
  }, n.prototype.aToC = function() {
    return this.transform(ie.A_TO_C());
  }, n.prototype.sanitize = function(e) {
    return this.transform(ie.SANITIZE(e));
  }, n.prototype.translate = function(e, r) {
    return this.transform(ie.TRANSLATE(e, r));
  }, n.prototype.scale = function(e, r) {
    return this.transform(ie.SCALE(e, r));
  }, n.prototype.rotate = function(e, r, t) {
    return this.transform(ie.ROTATE(e, r, t));
  }, n.prototype.matrix = function(e, r, t, i, a, s) {
    return this.transform(ie.MATRIX(e, r, t, i, a, s));
  }, n.prototype.skewX = function(e) {
    return this.transform(ie.SKEW_X(e));
  }, n.prototype.skewY = function(e) {
    return this.transform(ie.SKEW_Y(e));
  }, n.prototype.xSymmetry = function(e) {
    return this.transform(ie.X_AXIS_SYMMETRY(e));
  }, n.prototype.ySymmetry = function(e) {
    return this.transform(ie.Y_AXIS_SYMMETRY(e));
  }, n.prototype.annotateArcs = function() {
    return this.transform(ie.ANNOTATE_ARCS());
  }, n;
}(), xf = function(n) {
  return n === " " || n === "	" || n === "\r" || n === `
`;
}, Bu = function(n) {
  return 48 <= n.charCodeAt(0) && n.charCodeAt(0) <= 57;
}, Of = function(n) {
  function e() {
    var r = n.call(this) || this;
    return r.curNumber = "", r.curCommandType = -1, r.curCommandRelative = !1, r.canParseCommandOrComma = !0, r.curNumberHasExp = !1, r.curNumberHasExpDigits = !1, r.curNumberHasDecimal = !1, r.curArgs = [], r;
  }
  return Dl(e, n), e.prototype.finish = function(r) {
    if (r === void 0 && (r = []), this.parse(" ", r), this.curArgs.length !== 0 || !this.canParseCommandOrComma) throw new SyntaxError("Unterminated command at the path end.");
    return r;
  }, e.prototype.parse = function(r, t) {
    var i = this;
    t === void 0 && (t = []);
    for (var a = function(c) {
      t.push(c), i.curArgs.length = 0, i.canParseCommandOrComma = !0;
    }, s = 0; s < r.length; s++) {
      var o = r[s], u = !(this.curCommandType !== T.ARC || this.curArgs.length !== 3 && this.curArgs.length !== 4 || this.curNumber.length !== 1 || this.curNumber !== "0" && this.curNumber !== "1"), l = Bu(o) && (this.curNumber === "0" && o === "0" || u);
      if (!Bu(o) || l) if (o !== "e" && o !== "E") if (o !== "-" && o !== "+" || !this.curNumberHasExp || this.curNumberHasExpDigits) if (o !== "." || this.curNumberHasExp || this.curNumberHasDecimal || u) {
        if (this.curNumber && this.curCommandType !== -1) {
          var h = Number(this.curNumber);
          if (isNaN(h)) throw new SyntaxError("Invalid number ending at " + s);
          if (this.curCommandType === T.ARC) {
            if (this.curArgs.length === 0 || this.curArgs.length === 1) {
              if (0 > h) throw new SyntaxError('Expected positive number, got "' + h + '" at index "' + s + '"');
            } else if ((this.curArgs.length === 3 || this.curArgs.length === 4) && this.curNumber !== "0" && this.curNumber !== "1") throw new SyntaxError('Expected a flag, got "' + this.curNumber + '" at index "' + s + '"');
          }
          this.curArgs.push(h), this.curArgs.length === Tf[this.curCommandType] && (T.HORIZ_LINE_TO === this.curCommandType ? a({ type: T.HORIZ_LINE_TO, relative: this.curCommandRelative, x: h }) : T.VERT_LINE_TO === this.curCommandType ? a({ type: T.VERT_LINE_TO, relative: this.curCommandRelative, y: h }) : this.curCommandType === T.MOVE_TO || this.curCommandType === T.LINE_TO || this.curCommandType === T.SMOOTH_QUAD_TO ? (a({ type: this.curCommandType, relative: this.curCommandRelative, x: this.curArgs[0], y: this.curArgs[1] }), T.MOVE_TO === this.curCommandType && (this.curCommandType = T.LINE_TO)) : this.curCommandType === T.CURVE_TO ? a({ type: T.CURVE_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x2: this.curArgs[2], y2: this.curArgs[3], x: this.curArgs[4], y: this.curArgs[5] }) : this.curCommandType === T.SMOOTH_CURVE_TO ? a({ type: T.SMOOTH_CURVE_TO, relative: this.curCommandRelative, x2: this.curArgs[0], y2: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === T.QUAD_TO ? a({ type: T.QUAD_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === T.ARC && a({ type: T.ARC, relative: this.curCommandRelative, rX: this.curArgs[0], rY: this.curArgs[1], xRot: this.curArgs[2], lArcFlag: this.curArgs[3], sweepFlag: this.curArgs[4], x: this.curArgs[5], y: this.curArgs[6] })), this.curNumber = "", this.curNumberHasExpDigits = !1, this.curNumberHasExp = !1, this.curNumberHasDecimal = !1, this.canParseCommandOrComma = !0;
        }
        if (!xf(o)) if (o === "," && this.canParseCommandOrComma) this.canParseCommandOrComma = !1;
        else if (o !== "+" && o !== "-" && o !== ".") if (l) this.curNumber = o, this.curNumberHasDecimal = !1;
        else {
          if (this.curArgs.length !== 0) throw new SyntaxError("Unterminated command at index " + s + ".");
          if (!this.canParseCommandOrComma) throw new SyntaxError('Unexpected character "' + o + '" at index ' + s + ". Command cannot follow comma");
          if (this.canParseCommandOrComma = !1, o !== "z" && o !== "Z") if (o === "h" || o === "H") this.curCommandType = T.HORIZ_LINE_TO, this.curCommandRelative = o === "h";
          else if (o === "v" || o === "V") this.curCommandType = T.VERT_LINE_TO, this.curCommandRelative = o === "v";
          else if (o === "m" || o === "M") this.curCommandType = T.MOVE_TO, this.curCommandRelative = o === "m";
          else if (o === "l" || o === "L") this.curCommandType = T.LINE_TO, this.curCommandRelative = o === "l";
          else if (o === "c" || o === "C") this.curCommandType = T.CURVE_TO, this.curCommandRelative = o === "c";
          else if (o === "s" || o === "S") this.curCommandType = T.SMOOTH_CURVE_TO, this.curCommandRelative = o === "s";
          else if (o === "q" || o === "Q") this.curCommandType = T.QUAD_TO, this.curCommandRelative = o === "q";
          else if (o === "t" || o === "T") this.curCommandType = T.SMOOTH_QUAD_TO, this.curCommandRelative = o === "t";
          else {
            if (o !== "a" && o !== "A") throw new SyntaxError('Unexpected character "' + o + '" at index ' + s + ".");
            this.curCommandType = T.ARC, this.curCommandRelative = o === "a";
          }
          else t.push({ type: T.CLOSE_PATH }), this.canParseCommandOrComma = !0, this.curCommandType = -1;
        }
        else this.curNumber = o, this.curNumberHasDecimal = o === ".";
      } else this.curNumber += o, this.curNumberHasDecimal = !0;
      else this.curNumber += o;
      else this.curNumber += o, this.curNumberHasExp = !0;
      else this.curNumber += o, this.curNumberHasExpDigits = this.curNumberHasExp;
    }
    return t;
  }, e.prototype.transform = function(r) {
    return Object.create(this, { parse: { value: function(t, i) {
      i === void 0 && (i = []);
      for (var a = 0, s = Object.getPrototypeOf(this).parse.call(this, t); a < s.length; a++) {
        var o = s[a], u = r(o);
        Array.isArray(u) ? i.push.apply(i, u) : i.push(u);
      }
      return i;
    } } });
  }, e;
}(Vl), T = function(n) {
  function e(r) {
    var t = n.call(this) || this;
    return t.commands = typeof r == "string" ? e.parse(r) : r, t;
  }
  return Dl(e, n), e.prototype.encode = function() {
    return e.encode(this.commands);
  }, e.prototype.getBounds = function() {
    var r = ie.CALCULATE_BOUNDS();
    return this.transform(r), r;
  }, e.prototype.transform = function(r) {
    for (var t = [], i = 0, a = this.commands; i < a.length; i++) {
      var s = r(a[i]);
      Array.isArray(s) ? t.push.apply(t, s) : t.push(s);
    }
    return this.commands = t, this;
  }, e.encode = function(r) {
    return bf(r);
  }, e.parse = function(r) {
    var t = new Of(), i = [];
    return t.parse(r, i), t.finish(i), i;
  }, e.CLOSE_PATH = 1, e.MOVE_TO = 2, e.HORIZ_LINE_TO = 4, e.VERT_LINE_TO = 8, e.LINE_TO = 16, e.CURVE_TO = 32, e.SMOOTH_CURVE_TO = 64, e.QUAD_TO = 128, e.SMOOTH_QUAD_TO = 256, e.ARC = 512, e.LINE_COMMANDS = e.LINE_TO | e.HORIZ_LINE_TO | e.VERT_LINE_TO, e.DRAWING_COMMANDS = e.HORIZ_LINE_TO | e.VERT_LINE_TO | e.LINE_TO | e.CURVE_TO | e.SMOOTH_CURVE_TO | e.QUAD_TO | e.SMOOTH_QUAD_TO | e.ARC, e;
}(Vl), Tf = ((Re = {})[T.MOVE_TO] = 2, Re[T.LINE_TO] = 2, Re[T.HORIZ_LINE_TO] = 1, Re[T.VERT_LINE_TO] = 1, Re[T.CLOSE_PATH] = 0, Re[T.QUAD_TO] = 4, Re[T.SMOOTH_QUAD_TO] = 2, Re[T.CURVE_TO] = 6, Re[T.SMOOTH_CURVE_TO] = 4, Re[T.ARC] = 7, Re), Fu = {}, Uu;
function Sf() {
  if (Uu) return Fu;
  Uu = 1;
  var n = Vr().PROPER, e = tr(), r = le(), t = qe(), i = Z(), a = an(), s = "toString", o = RegExp.prototype, u = o[s], l = i(function() {
    return u.call({ source: "a", flags: "b" }) !== "/a/b";
  }), h = n && u.name !== s;
  return (l || h) && e(o, s, function() {
    var v = r(this), f = t(v.source), g = t(a(v));
    return "/" + f + "/" + g;
  }, { unsafe: !0 }), Fu;
}
Sf();
function Pr(n) {
  "@babel/helpers - typeof";
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Pr = function(e) {
    return typeof e;
  } : Pr = function(e) {
    return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
  }, Pr(n);
}
function Ef(n, e) {
  if (!(n instanceof e))
    throw new TypeError("Cannot call a class as a function");
}
var Rf = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259], Cf = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];
function wf(n, e, r, t, i) {
  if (typeof n == "string" && (n = document.getElementById(n)), !n || Pr(n) !== "object" || !("getContext" in n))
    throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");
  var a = n.getContext("2d");
  try {
    return a.getImageData(e, r, t, i);
  } catch (s) {
    throw new Error("unable to access image data: " + s);
  }
}
function Pf(n, e, r, t, i, a) {
  if (!(isNaN(a) || a < 1)) {
    a |= 0;
    var s = wf(n, e, r, t, i);
    s = Af(s, e, r, t, i, a), n.getContext("2d").putImageData(s, e, r);
  }
}
function Af(n, e, r, t, i, a) {
  for (var s = n.data, o = 2 * a + 1, u = t - 1, l = i - 1, h = a + 1, c = h * (h + 1) / 2, v = new Gu(), f = v, g, d = 1; d < o; d++)
    f = f.next = new Gu(), d === h && (g = f);
  f.next = v;
  for (var p = null, y = null, m = 0, b = 0, x = Rf[a], S = Cf[a], E = 0; E < i; E++) {
    f = v;
    for (var O = s[b], P = s[b + 1], _ = s[b + 2], A = s[b + 3], q = 0; q < h; q++)
      f.r = O, f.g = P, f.b = _, f.a = A, f = f.next;
    for (var I = 0, j = 0, C = 0, w = 0, U = h * O, L = h * P, V = h * _, M = h * A, N = c * O, k = c * P, z = c * _, H = c * A, X = 1; X < h; X++) {
      var se = b + ((u < X ? u : X) << 2), be = s[se], oe = s[se + 1], Ue = s[se + 2], Ge = s[se + 3], fe = h - X;
      N += (f.r = be) * fe, k += (f.g = oe) * fe, z += (f.b = Ue) * fe, H += (f.a = Ge) * fe, I += be, j += oe, C += Ue, w += Ge, f = f.next;
    }
    p = v, y = g;
    for (var Ne = 0; Ne < t; Ne++) {
      var _e = H * x >>> S;
      if (s[b + 3] = _e, _e !== 0) {
        var me = 255 / _e;
        s[b] = (N * x >>> S) * me, s[b + 1] = (k * x >>> S) * me, s[b + 2] = (z * x >>> S) * me;
      } else
        s[b] = s[b + 1] = s[b + 2] = 0;
      N -= U, k -= L, z -= V, H -= M, U -= p.r, L -= p.g, V -= p.b, M -= p.a;
      var ce = Ne + a + 1;
      ce = m + (ce < u ? ce : u) << 2, I += p.r = s[ce], j += p.g = s[ce + 1], C += p.b = s[ce + 2], w += p.a = s[ce + 3], N += I, k += j, z += C, H += w, p = p.next;
      var xe = y, De = xe.r, Ve = xe.g, Xe = xe.b, ur = xe.a;
      U += De, L += Ve, V += Xe, M += ur, I -= De, j -= Ve, C -= Xe, w -= ur, y = y.next, b += 4;
    }
    m += t;
  }
  for (var $e = 0; $e < t; $e++) {
    b = $e << 2;
    var ve = s[b], ge = s[b + 1], Oe = s[b + 2], R = s[b + 3], B = h * ve, G = h * ge, $ = h * Oe, W = h * R, Te = c * ve, Le = c * ge, Se = c * Oe, Ee = c * R;
    f = v;
    for (var lr = 0; lr < h; lr++)
      f.r = ve, f.g = ge, f.b = Oe, f.a = R, f = f.next;
    for (var hr = t, fr = 0, Wr = 0, Yr = 0, Xr = 0, Sr = 1; Sr <= a; Sr++) {
      b = hr + $e << 2;
      var Er = h - Sr;
      Te += (f.r = ve = s[b]) * Er, Le += (f.g = ge = s[b + 1]) * Er, Se += (f.b = Oe = s[b + 2]) * Er, Ee += (f.a = R = s[b + 3]) * Er, Xr += ve, fr += ge, Wr += Oe, Yr += R, f = f.next, Sr < l && (hr += t);
    }
    b = $e, p = v, y = g;
    for (var Kr = 0; Kr < i; Kr++) {
      var de = b << 2;
      s[de + 3] = R = Ee * x >>> S, R > 0 ? (R = 255 / R, s[de] = (Te * x >>> S) * R, s[de + 1] = (Le * x >>> S) * R, s[de + 2] = (Se * x >>> S) * R) : s[de] = s[de + 1] = s[de + 2] = 0, Te -= B, Le -= G, Se -= $, Ee -= W, B -= p.r, G -= p.g, $ -= p.b, W -= p.a, de = $e + ((de = Kr + h) < l ? de : l) * t << 2, Te += Xr += p.r = s[de], Le += fr += p.g = s[de + 1], Se += Wr += p.b = s[de + 2], Ee += Yr += p.a = s[de + 3], p = p.next, B += ve = y.r, G += ge = y.g, $ += Oe = y.b, W += R = y.a, Xr -= ve, fr -= ge, Wr -= Oe, Yr -= R, y = y.next, b += t;
    }
  }
  return n;
}
var Gu = (
  /**
   * Set properties.
   */
  function n() {
    Ef(this, n), this.r = 0, this.g = 0, this.b = 0, this.a = 0, this.next = null;
  }
);
function If() {
  var {
    DOMParser: n
  } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, e = {
    window: null,
    ignoreAnimation: !0,
    ignoreMouse: !0,
    DOMParser: n,
    createCanvas(r, t) {
      return new OffscreenCanvas(r, t);
    },
    createImage(r) {
      return Be(function* () {
        var t = yield fetch(r), i = yield t.blob(), a = yield createImageBitmap(i);
        return a;
      })();
    }
  };
  return (typeof DOMParser < "u" || typeof n > "u") && Reflect.deleteProperty(e, "DOMParser"), e;
}
function Nf(n) {
  var {
    DOMParser: e,
    canvas: r,
    fetch: t
  } = n;
  return {
    window: null,
    ignoreAnimation: !0,
    ignoreMouse: !0,
    DOMParser: e,
    fetch: t,
    createCanvas: r.createCanvas,
    createImage: r.loadImage
  };
}
var Gc = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  offscreen: If,
  node: Nf
});
function or(n) {
  return n.replace(/(?!\u3000)\s+/gm, " ");
}
function _f(n) {
  return n.replace(/^[\n \t]+/, "");
}
function Mf(n) {
  return n.replace(/[\n \t]+$/, "");
}
function ye(n) {
  var e = (n || "").match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm) || [];
  return e.map(parseFloat);
}
var qf = /^[A-Z-]+$/;
function Df(n) {
  return qf.test(n) ? n.toLowerCase() : n;
}
function Ll(n) {
  var e = /url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(n) || [];
  return e[2] || e[3] || e[4];
}
function Vf(n) {
  if (!n.startsWith("rgb"))
    return n;
  var e = 3, r = n.replace(/\d+(\.\d+)?/g, (t, i) => e-- && i ? String(Math.round(parseFloat(t))) : t);
  return r;
}
var Lf = /(\[[^\]]+\])/g, kf = /(#[^\s+>~.[:]+)/g, jf = /(\.[^\s+>~.[:]+)/g, Bf = /(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi, Ff = /(:[\w-]+\([^)]*\))/gi, Uf = /(:[^\s+>~.[:]+)/g, Gf = /([^\s+>~.[:]+)/g;
function Ke(n, e) {
  var r = e.exec(n);
  return r ? [n.replace(e, " "), r.length] : [n, 0];
}
function $f(n) {
  var e = [0, 0, 0], r = n.replace(/:not\(([^)]*)\)/g, "     $1 ").replace(/{[\s\S]*/gm, " "), t = 0;
  return [r, t] = Ke(r, Lf), e[1] += t, [r, t] = Ke(r, kf), e[0] += t, [r, t] = Ke(r, jf), e[1] += t, [r, t] = Ke(r, Bf), e[2] += t, [r, t] = Ke(r, Ff), e[1] += t, [r, t] = Ke(r, Uf), e[1] += t, r = r.replace(/[*\s+>~]/g, " ").replace(/[#.]/g, " "), [r, t] = Ke(r, Gf), e[2] += t, e.join("");
}
var ar = 1e-8;
function $u(n) {
  return Math.sqrt(Math.pow(n[0], 2) + Math.pow(n[1], 2));
}
function ja(n, e) {
  return (n[0] * e[0] + n[1] * e[1]) / ($u(n) * $u(e));
}
function zu(n, e) {
  return (n[0] * e[1] < n[1] * e[0] ? -1 : 1) * Math.acos(ja(n, e));
}
function Hu(n) {
  return n * n * n;
}
function Wu(n) {
  return 3 * n * n * (1 - n);
}
function Yu(n) {
  return 3 * n * (1 - n) * (1 - n);
}
function Xu(n) {
  return (1 - n) * (1 - n) * (1 - n);
}
function Ku(n) {
  return n * n;
}
function Qu(n) {
  return 2 * n * (1 - n);
}
function Zu(n) {
  return (1 - n) * (1 - n);
}
class D {
  constructor(e, r, t) {
    this.document = e, this.name = r, this.value = t, this.isNormalizedColor = !1;
  }
  static empty(e) {
    return new D(e, "EMPTY", "");
  }
  split() {
    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : " ", {
      document: r,
      name: t
    } = this;
    return or(this.getString()).trim().split(e).map((i) => new D(r, t, i));
  }
  hasValue(e) {
    var {
      value: r
    } = this;
    return r !== null && r !== "" && (e || r !== 0) && typeof r < "u";
  }
  isString(e) {
    var {
      value: r
    } = this, t = typeof r == "string";
    return !t || !e ? t : e.test(r);
  }
  isUrlDefinition() {
    return this.isString(/^url\(/);
  }
  isPixels() {
    if (!this.hasValue())
      return !1;
    var e = this.getString();
    switch (!0) {
      case e.endsWith("px"):
      case /^[0-9]+$/.test(e):
        return !0;
      default:
        return !1;
    }
  }
  setValue(e) {
    return this.value = e, this;
  }
  getValue(e) {
    return typeof e > "u" || this.hasValue() ? this.value : e;
  }
  getNumber(e) {
    if (!this.hasValue())
      return typeof e > "u" ? 0 : parseFloat(e);
    var {
      value: r
    } = this, t = parseFloat(r);
    return this.isString(/%$/) && (t /= 100), t;
  }
  getString(e) {
    return typeof e > "u" || this.hasValue() ? typeof this.value > "u" ? "" : String(this.value) : String(e);
  }
  getColor(e) {
    var r = this.getString(e);
    return this.isNormalizedColor || (this.isNormalizedColor = !0, r = Vf(r), this.value = r), r;
  }
  getDpi() {
    return 96;
  }
  getRem() {
    return this.document.rootEmSize;
  }
  getEm() {
    return this.document.emSize;
  }
  getUnits() {
    return this.getString().replace(/[0-9.-]/g, "");
  }
  getPixels(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
    if (!this.hasValue())
      return 0;
    var [t, i] = typeof e == "boolean" ? [void 0, e] : [e], {
      viewPort: a
    } = this.document.screen;
    switch (!0) {
      case this.isString(/vmin$/):
        return this.getNumber() / 100 * Math.min(a.computeSize("x"), a.computeSize("y"));
      case this.isString(/vmax$/):
        return this.getNumber() / 100 * Math.max(a.computeSize("x"), a.computeSize("y"));
      case this.isString(/vw$/):
        return this.getNumber() / 100 * a.computeSize("x");
      case this.isString(/vh$/):
        return this.getNumber() / 100 * a.computeSize("y");
      case this.isString(/rem$/):
        return this.getNumber() * this.getRem();
      case this.isString(/em$/):
        return this.getNumber() * this.getEm();
      case this.isString(/ex$/):
        return this.getNumber() * this.getEm() / 2;
      case this.isString(/px$/):
        return this.getNumber();
      case this.isString(/pt$/):
        return this.getNumber() * this.getDpi() * (1 / 72);
      case this.isString(/pc$/):
        return this.getNumber() * 15;
      case this.isString(/cm$/):
        return this.getNumber() * this.getDpi() / 2.54;
      case this.isString(/mm$/):
        return this.getNumber() * this.getDpi() / 25.4;
      case this.isString(/in$/):
        return this.getNumber() * this.getDpi();
      case (this.isString(/%$/) && i):
        return this.getNumber() * this.getEm();
      case this.isString(/%$/):
        return this.getNumber() * a.computeSize(t);
      default: {
        var s = this.getNumber();
        return r && s < 1 ? s * a.computeSize(t) : s;
      }
    }
  }
  getMilliseconds() {
    return this.hasValue() ? this.isString(/ms$/) ? this.getNumber() : this.getNumber() * 1e3 : 0;
  }
  getRadians() {
    if (!this.hasValue())
      return 0;
    switch (!0) {
      case this.isString(/deg$/):
        return this.getNumber() * (Math.PI / 180);
      case this.isString(/grad$/):
        return this.getNumber() * (Math.PI / 200);
      case this.isString(/rad$/):
        return this.getNumber();
      default:
        return this.getNumber() * (Math.PI / 180);
    }
  }
  getDefinition() {
    var e = this.getString(), r = /#([^)'"]+)/.exec(e);
    return r && (r = r[1]), r || (r = e), this.document.definitions[r];
  }
  getFillStyleDefinition(e, r) {
    var t = this.getDefinition();
    if (!t)
      return null;
    if (typeof t.createGradient == "function")
      return t.createGradient(this.document.ctx, e, r);
    if (typeof t.createPattern == "function") {
      if (t.getHrefAttribute().hasValue()) {
        var i = t.getAttribute("patternTransform");
        t = t.getHrefAttribute().getDefinition(), i.hasValue() && t.getAttribute("patternTransform", !0).setValue(i.value);
      }
      return t.createPattern(this.document.ctx, e, r);
    }
    return null;
  }
  getTextBaseline() {
    return this.hasValue() ? D.textBaselineMapping[this.getString()] : null;
  }
  addOpacity(e) {
    for (var r = this.getColor(), t = r.length, i = 0, a = 0; a < t && (r[a] === "," && i++, i !== 3); a++)
      ;
    if (e.hasValue() && this.isString() && i !== 3) {
      var s = new La(r);
      s.ok && (s.alpha = e.getNumber(), r = s.toRGBA());
    }
    return new D(this.document, this.name, r);
  }
}
D.textBaselineMapping = {
  baseline: "alphabetic",
  "before-edge": "top",
  "text-before-edge": "top",
  middle: "middle",
  central: "middle",
  "after-edge": "bottom",
  "text-after-edge": "bottom",
  ideographic: "ideographic",
  alphabetic: "alphabetic",
  hanging: "hanging",
  mathematical: "alphabetic"
};
class zf {
  constructor() {
    this.viewPorts = [];
  }
  clear() {
    this.viewPorts = [];
  }
  setCurrent(e, r) {
    this.viewPorts.push({
      width: e,
      height: r
    });
  }
  removeCurrent() {
    this.viewPorts.pop();
  }
  getCurrent() {
    var {
      viewPorts: e
    } = this;
    return e[e.length - 1];
  }
  get width() {
    return this.getCurrent().width;
  }
  get height() {
    return this.getCurrent().height;
  }
  computeSize(e) {
    return typeof e == "number" ? e : e === "x" ? this.width : e === "y" ? this.height : Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);
  }
}
class ee {
  constructor(e, r) {
    this.x = e, this.y = r;
  }
  static parse(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, [t = r, i = r] = ye(e);
    return new ee(t, i);
  }
  static parseScale(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1, [t = r, i = t] = ye(e);
    return new ee(t, i);
  }
  static parsePath(e) {
    for (var r = ye(e), t = r.length, i = [], a = 0; a < t; a += 2)
      i.push(new ee(r[a], r[a + 1]));
    return i;
  }
  angleTo(e) {
    return Math.atan2(e.y - this.y, e.x - this.x);
  }
  applyTransform(e) {
    var {
      x: r,
      y: t
    } = this, i = r * e[0] + t * e[2] + e[4], a = r * e[1] + t * e[3] + e[5];
    this.x = i, this.y = a;
  }
}
class Hf {
  constructor(e) {
    this.screen = e, this.working = !1, this.events = [], this.eventElements = [], this.onClick = this.onClick.bind(this), this.onMouseMove = this.onMouseMove.bind(this);
  }
  isWorking() {
    return this.working;
  }
  start() {
    if (!this.working) {
      var {
        screen: e,
        onClick: r,
        onMouseMove: t
      } = this, i = e.ctx.canvas;
      i.onclick = r, i.onmousemove = t, this.working = !0;
    }
  }
  stop() {
    if (this.working) {
      var e = this.screen.ctx.canvas;
      this.working = !1, e.onclick = null, e.onmousemove = null;
    }
  }
  hasEvents() {
    return this.working && this.events.length > 0;
  }
  runEvents() {
    if (this.working) {
      var {
        screen: e,
        events: r,
        eventElements: t
      } = this, {
        style: i
      } = e.ctx.canvas;
      i && (i.cursor = ""), r.forEach((a, s) => {
        for (var {
          run: o
        } = a, u = t[s]; u; )
          o(u), u = u.parent;
      }), this.events = [], this.eventElements = [];
    }
  }
  checkPath(e, r) {
    if (!(!this.working || !r)) {
      var {
        events: t,
        eventElements: i
      } = this;
      t.forEach((a, s) => {
        var {
          x: o,
          y: u
        } = a;
        !i[s] && r.isPointInPath && r.isPointInPath(o, u) && (i[s] = e);
      });
    }
  }
  checkBoundingBox(e, r) {
    if (!(!this.working || !r)) {
      var {
        events: t,
        eventElements: i
      } = this;
      t.forEach((a, s) => {
        var {
          x: o,
          y: u
        } = a;
        !i[s] && r.isPointInBox(o, u) && (i[s] = e);
      });
    }
  }
  mapXY(e, r) {
    for (var {
      window: t,
      ctx: i
    } = this.screen, a = new ee(e, r), s = i.canvas; s; )
      a.x -= s.offsetLeft, a.y -= s.offsetTop, s = s.offsetParent;
    return t.scrollX && (a.x += t.scrollX), t.scrollY && (a.y += t.scrollY), a;
  }
  onClick(e) {
    var {
      x: r,
      y: t
    } = this.mapXY(e.clientX, e.clientY);
    this.events.push({
      type: "onclick",
      x: r,
      y: t,
      run(i) {
        i.onClick && i.onClick();
      }
    });
  }
  onMouseMove(e) {
    var {
      x: r,
      y: t
    } = this.mapXY(e.clientX, e.clientY);
    this.events.push({
      type: "onmousemove",
      x: r,
      y: t,
      run(i) {
        i.onMouseMove && i.onMouseMove();
      }
    });
  }
}
var kl = typeof window < "u" ? window : null, jl = typeof fetch < "u" ? fetch.bind(void 0) : null;
class Gr {
  constructor(e) {
    var {
      fetch: r = jl,
      window: t = kl
    } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.ctx = e, this.FRAMERATE = 30, this.MAX_VIRTUAL_PIXELS = 3e4, this.CLIENT_WIDTH = 800, this.CLIENT_HEIGHT = 600, this.viewPort = new zf(), this.mouse = new Hf(this), this.animations = [], this.waits = [], this.frameDuration = 0, this.isReadyLock = !1, this.isFirstRender = !0, this.intervalId = null, this.window = t, this.fetch = r;
  }
  wait(e) {
    this.waits.push(e);
  }
  ready() {
    return this.readyPromise ? this.readyPromise : Promise.resolve();
  }
  isReady() {
    if (this.isReadyLock)
      return !0;
    var e = this.waits.every((r) => r());
    return e && (this.waits = [], this.resolveReady && this.resolveReady()), this.isReadyLock = e, e;
  }
  setDefaults(e) {
    e.strokeStyle = "rgba(0,0,0,0)", e.lineCap = "butt", e.lineJoin = "miter", e.miterLimit = 4;
  }
  setViewBox(e) {
    var {
      document: r,
      ctx: t,
      aspectRatio: i,
      width: a,
      desiredWidth: s,
      height: o,
      desiredHeight: u,
      minX: l = 0,
      minY: h = 0,
      refX: c,
      refY: v,
      clip: f = !1,
      clipX: g = 0,
      clipY: d = 0
    } = e, p = or(i).replace(/^defer\s/, ""), [y, m] = p.split(" "), b = y || "xMidYMid", x = m || "meet", S = a / s, E = o / u, O = Math.min(S, E), P = Math.max(S, E), _ = s, A = u;
    x === "meet" && (_ *= O, A *= O), x === "slice" && (_ *= P, A *= P);
    var q = new D(r, "refX", c), I = new D(r, "refY", v), j = q.hasValue() && I.hasValue();
    if (j && t.translate(-O * q.getPixels("x"), -O * I.getPixels("y")), f) {
      var C = O * g, w = O * d;
      t.beginPath(), t.moveTo(C, w), t.lineTo(a, w), t.lineTo(a, o), t.lineTo(C, o), t.closePath(), t.clip();
    }
    if (!j) {
      var U = x === "meet" && O === E, L = x === "slice" && P === E, V = x === "meet" && O === S, M = x === "slice" && P === S;
      b.startsWith("xMid") && (U || L) && t.translate(a / 2 - _ / 2, 0), b.endsWith("YMid") && (V || M) && t.translate(0, o / 2 - A / 2), b.startsWith("xMax") && (U || L) && t.translate(a - _, 0), b.endsWith("YMax") && (V || M) && t.translate(0, o - A);
    }
    switch (!0) {
      case b === "none":
        t.scale(S, E);
        break;
      case x === "meet":
        t.scale(O, O);
        break;
      case x === "slice":
        t.scale(P, P);
        break;
    }
    t.translate(-l, -h);
  }
  start(e) {
    var {
      enableRedraw: r = !1,
      ignoreMouse: t = !1,
      ignoreAnimation: i = !1,
      ignoreDimensions: a = !1,
      ignoreClear: s = !1,
      forceRedraw: o,
      scaleWidth: u,
      scaleHeight: l,
      offsetX: h,
      offsetY: c
    } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, {
      FRAMERATE: v,
      mouse: f
    } = this, g = 1e3 / v;
    if (this.frameDuration = g, this.readyPromise = new Promise((b) => {
      this.resolveReady = b;
    }), this.isReady() && this.render(e, a, s, u, l, h, c), !!r) {
      var d = Date.now(), p = d, y = 0, m = () => {
        d = Date.now(), y = d - p, y >= g && (p = d - y % g, this.shouldUpdate(i, o) && (this.render(e, a, s, u, l, h, c), f.runEvents())), this.intervalId = wa(m);
      };
      t || f.start(), this.intervalId = wa(m);
    }
  }
  stop() {
    this.intervalId && (wa.cancel(this.intervalId), this.intervalId = null), this.mouse.stop();
  }
  shouldUpdate(e, r) {
    if (!e) {
      var {
        frameDuration: t
      } = this, i = this.animations.reduce((a, s) => s.update(t) || a, !1);
      if (i)
        return !0;
    }
    return !!(typeof r == "function" && r() || !this.isReadyLock && this.isReady() || this.mouse.hasEvents());
  }
  render(e, r, t, i, a, s, o) {
    var {
      CLIENT_WIDTH: u,
      CLIENT_HEIGHT: l,
      viewPort: h,
      ctx: c,
      isFirstRender: v
    } = this, f = c.canvas;
    h.clear(), f.width && f.height ? h.setCurrent(f.width, f.height) : h.setCurrent(u, l);
    var g = e.getStyle("width"), d = e.getStyle("height");
    !r && (v || typeof i != "number" && typeof a != "number") && (g.hasValue() && (f.width = g.getPixels("x"), f.style && (f.style.width = "".concat(f.width, "px"))), d.hasValue() && (f.height = d.getPixels("y"), f.style && (f.style.height = "".concat(f.height, "px"))));
    var p = f.clientWidth || f.width, y = f.clientHeight || f.height;
    if (r && g.hasValue() && d.hasValue() && (p = g.getPixels("x"), y = d.getPixels("y")), h.setCurrent(p, y), typeof s == "number" && e.getAttribute("x", !0).setValue(s), typeof o == "number" && e.getAttribute("y", !0).setValue(o), typeof i == "number" || typeof a == "number") {
      var m = ye(e.getAttribute("viewBox").getString()), b = 0, x = 0;
      if (typeof i == "number") {
        var S = e.getStyle("width");
        S.hasValue() ? b = S.getPixels("x") / i : isNaN(m[2]) || (b = m[2] / i);
      }
      if (typeof a == "number") {
        var E = e.getStyle("height");
        E.hasValue() ? x = E.getPixels("y") / a : isNaN(m[3]) || (x = m[3] / a);
      }
      b || (b = x), x || (x = b), e.getAttribute("width", !0).setValue(i), e.getAttribute("height", !0).setValue(a);
      var O = e.getStyle("transform", !0, !0);
      O.setValue("".concat(O.getString(), " scale(").concat(1 / b, ", ").concat(1 / x, ")"));
    }
    t || c.clearRect(0, 0, p, y), e.render(c), v && (this.isFirstRender = !1);
  }
}
Gr.defaultWindow = kl;
Gr.defaultFetch = jl;
var {
  defaultFetch: Wf
} = Gr, Yf = typeof DOMParser < "u" ? DOMParser : null;
class qa {
  constructor() {
    var {
      fetch: e = Wf,
      DOMParser: r = Yf
    } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    this.fetch = e, this.DOMParser = r;
  }
  parse(e) {
    var r = this;
    return Be(function* () {
      return e.startsWith("<") ? r.parseFromString(e) : r.load(e);
    })();
  }
  parseFromString(e) {
    var r = new this.DOMParser();
    try {
      return this.checkDocument(r.parseFromString(e, "image/svg+xml"));
    } catch {
      return this.checkDocument(r.parseFromString(e, "text/xml"));
    }
  }
  checkDocument(e) {
    var r = e.getElementsByTagName("parsererror")[0];
    if (r)
      throw new Error(r.textContent);
    return e;
  }
  load(e) {
    var r = this;
    return Be(function* () {
      var t = yield r.fetch(e), i = yield t.text();
      return r.parseFromString(i);
    })();
  }
}
class Xf {
  constructor(e, r) {
    this.type = "translate", this.point = null, this.point = ee.parse(r);
  }
  apply(e) {
    var {
      x: r,
      y: t
    } = this.point;
    e.translate(r || 0, t || 0);
  }
  unapply(e) {
    var {
      x: r,
      y: t
    } = this.point;
    e.translate(-1 * r || 0, -1 * t || 0);
  }
  applyToPoint(e) {
    var {
      x: r,
      y: t
    } = this.point;
    e.applyTransform([1, 0, 0, 1, r || 0, t || 0]);
  }
}
class Kf {
  constructor(e, r, t) {
    this.type = "rotate", this.angle = null, this.originX = null, this.originY = null, this.cx = 0, this.cy = 0;
    var i = ye(r);
    this.angle = new D(e, "angle", i[0]), this.originX = t[0], this.originY = t[1], this.cx = i[1] || 0, this.cy = i[2] || 0;
  }
  apply(e) {
    var {
      cx: r,
      cy: t,
      originX: i,
      originY: a,
      angle: s
    } = this, o = r + i.getPixels("x"), u = t + a.getPixels("y");
    e.translate(o, u), e.rotate(s.getRadians()), e.translate(-o, -u);
  }
  unapply(e) {
    var {
      cx: r,
      cy: t,
      originX: i,
      originY: a,
      angle: s
    } = this, o = r + i.getPixels("x"), u = t + a.getPixels("y");
    e.translate(o, u), e.rotate(-1 * s.getRadians()), e.translate(-o, -u);
  }
  applyToPoint(e) {
    var {
      cx: r,
      cy: t,
      angle: i
    } = this, a = i.getRadians();
    e.applyTransform([
      1,
      0,
      0,
      1,
      r || 0,
      t || 0
      // this.p.y
    ]), e.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]), e.applyTransform([
      1,
      0,
      0,
      1,
      -r || 0,
      -t || 0
      // -this.p.y
    ]);
  }
}
class Qf {
  constructor(e, r, t) {
    this.type = "scale", this.scale = null, this.originX = null, this.originY = null;
    var i = ee.parseScale(r);
    (i.x === 0 || i.y === 0) && (i.x = ar, i.y = ar), this.scale = i, this.originX = t[0], this.originY = t[1];
  }
  apply(e) {
    var {
      scale: {
        x: r,
        y: t
      },
      originX: i,
      originY: a
    } = this, s = i.getPixels("x"), o = a.getPixels("y");
    e.translate(s, o), e.scale(r, t || r), e.translate(-s, -o);
  }
  unapply(e) {
    var {
      scale: {
        x: r,
        y: t
      },
      originX: i,
      originY: a
    } = this, s = i.getPixels("x"), o = a.getPixels("y");
    e.translate(s, o), e.scale(1 / r, 1 / t || r), e.translate(-s, -o);
  }
  applyToPoint(e) {
    var {
      x: r,
      y: t
    } = this.scale;
    e.applyTransform([r || 0, 0, 0, t || 0, 0, 0]);
  }
}
class Bl {
  constructor(e, r, t) {
    this.type = "matrix", this.matrix = [], this.originX = null, this.originY = null, this.matrix = ye(r), this.originX = t[0], this.originY = t[1];
  }
  apply(e) {
    var {
      originX: r,
      originY: t,
      matrix: i
    } = this, a = r.getPixels("x"), s = t.getPixels("y");
    e.translate(a, s), e.transform(i[0], i[1], i[2], i[3], i[4], i[5]), e.translate(-a, -s);
  }
  unapply(e) {
    var {
      originX: r,
      originY: t,
      matrix: i
    } = this, a = i[0], s = i[2], o = i[4], u = i[1], l = i[3], h = i[5], c = 0, v = 0, f = 1, g = 1 / (a * (l * f - h * v) - s * (u * f - h * c) + o * (u * v - l * c)), d = r.getPixels("x"), p = t.getPixels("y");
    e.translate(d, p), e.transform(g * (l * f - h * v), g * (h * c - u * f), g * (o * v - s * f), g * (a * f - o * c), g * (s * h - o * l), g * (o * u - a * h)), e.translate(-d, -p);
  }
  applyToPoint(e) {
    e.applyTransform(this.matrix);
  }
}
class Fl extends Bl {
  constructor(e, r, t) {
    super(e, r, t), this.type = "skew", this.angle = null, this.angle = new D(e, "angle", r);
  }
}
class Zf extends Fl {
  constructor(e, r, t) {
    super(e, r, t), this.type = "skewX", this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];
  }
}
class Jf extends Fl {
  constructor(e, r, t) {
    super(e, r, t), this.type = "skewY", this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];
  }
}
function ec(n) {
  return or(n).trim().replace(/\)([a-zA-Z])/g, ") $1").replace(/\)(\s?,\s?)/g, ") ").split(/\s(?=[a-z])/);
}
function rc(n) {
  var [e, r] = n.split("(");
  return [e.trim(), r.trim().replace(")", "")];
}
class Je {
  constructor(e, r, t) {
    this.document = e, this.transforms = [];
    var i = ec(r);
    i.forEach((a) => {
      if (a !== "none") {
        var [s, o] = rc(a), u = Je.transformTypes[s];
        typeof u < "u" && this.transforms.push(new u(this.document, o, t));
      }
    });
  }
  static fromElement(e, r) {
    var t = r.getStyle("transform", !1, !0), [i, a = i] = r.getStyle("transform-origin", !1, !0).split(), s = [i, a];
    return t.hasValue() ? new Je(e, t.getString(), s) : null;
  }
  apply(e) {
    for (var {
      transforms: r
    } = this, t = r.length, i = 0; i < t; i++)
      r[i].apply(e);
  }
  unapply(e) {
    for (var {
      transforms: r
    } = this, t = r.length, i = t - 1; i >= 0; i--)
      r[i].unapply(e);
  }
  // TODO: applyToPoint unused ... remove?
  applyToPoint(e) {
    for (var {
      transforms: r
    } = this, t = r.length, i = 0; i < t; i++)
      r[i].applyToPoint(e);
  }
}
Je.transformTypes = {
  translate: Xf,
  rotate: Kf,
  scale: Qf,
  matrix: Bl,
  skewX: Zf,
  skewY: Jf
};
class K {
  constructor(e, r) {
    var t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
    if (this.document = e, this.node = r, this.captureTextNodes = t, this.attributes = /* @__PURE__ */ Object.create(null), this.styles = /* @__PURE__ */ Object.create(null), this.stylesSpecificity = /* @__PURE__ */ Object.create(null), this.animationFrozen = !1, this.animationFrozenValue = "", this.parent = null, this.children = [], !(!r || r.nodeType !== 1)) {
      if (Array.from(r.attributes).forEach((o) => {
        var u = Df(o.nodeName);
        this.attributes[u] = new D(e, u, o.value);
      }), this.addStylesFromStyleDefinition(), this.getAttribute("style").hasValue()) {
        var i = this.getAttribute("style").getString().split(";").map((o) => o.trim());
        i.forEach((o) => {
          if (o) {
            var [u, l] = o.split(":").map((h) => h.trim());
            this.styles[u] = new D(e, u, l);
          }
        });
      }
      var {
        definitions: a
      } = e, s = this.getAttribute("id");
      s.hasValue() && (a[s.getString()] || (a[s.getString()] = this)), Array.from(r.childNodes).forEach((o) => {
        if (o.nodeType === 1)
          this.addChild(o);
        else if (t && (o.nodeType === 3 || o.nodeType === 4)) {
          var u = e.createTextNode(o);
          u.getText().length > 0 && this.addChild(u);
        }
      });
    }
  }
  getAttribute(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, t = this.attributes[e];
    if (!t && r) {
      var i = new D(this.document, e, "");
      return this.attributes[e] = i, i;
    }
    return t || D.empty(this.document);
  }
  getHrefAttribute() {
    for (var e in this.attributes)
      if (e === "href" || e.endsWith(":href"))
        return this.attributes[e];
    return D.empty(this.document);
  }
  getStyle(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, i = this.styles[e];
    if (i)
      return i;
    var a = this.getAttribute(e);
    if (a != null && a.hasValue())
      return this.styles[e] = a, a;
    if (!t) {
      var {
        parent: s
      } = this;
      if (s) {
        var o = s.getStyle(e);
        if (o != null && o.hasValue())
          return o;
      }
    }
    if (r) {
      var u = new D(this.document, e, "");
      return this.styles[e] = u, u;
    }
    return i || D.empty(this.document);
  }
  render(e) {
    if (!(this.getStyle("display").getString() === "none" || this.getStyle("visibility").getString() === "hidden")) {
      if (e.save(), this.getStyle("mask").hasValue()) {
        var r = this.getStyle("mask").getDefinition();
        r && (this.applyEffects(e), r.apply(e, this));
      } else if (this.getStyle("filter").getValue("none") !== "none") {
        var t = this.getStyle("filter").getDefinition();
        t && (this.applyEffects(e), t.apply(e, this));
      } else
        this.setContext(e), this.renderChildren(e), this.clearContext(e);
      e.restore();
    }
  }
  setContext(e) {
  }
  applyEffects(e) {
    var r = Je.fromElement(this.document, this);
    r && r.apply(e);
    var t = this.getStyle("clip-path", !1, !0);
    if (t.hasValue()) {
      var i = t.getDefinition();
      i && i.apply(e);
    }
  }
  clearContext(e) {
  }
  renderChildren(e) {
    this.children.forEach((r) => {
      r.render(e);
    });
  }
  addChild(e) {
    var r = e instanceof K ? e : this.document.createElement(e);
    r.parent = this, K.ignoreChildTypes.includes(r.type) || this.children.push(r);
  }
  matchesSelector(e) {
    var r, {
      node: t
    } = this;
    if (typeof t.matches == "function")
      return t.matches(e);
    var i = (r = t.getAttribute) === null || r === void 0 ? void 0 : r.call(t, "class");
    return !i || i === "" ? !1 : i.split(" ").some((a) => ".".concat(a) === e);
  }
  addStylesFromStyleDefinition() {
    var {
      styles: e,
      stylesSpecificity: r
    } = this.document;
    for (var t in e)
      if (!t.startsWith("@") && this.matchesSelector(t)) {
        var i = e[t], a = r[t];
        if (i)
          for (var s in i) {
            var o = this.stylesSpecificity[s];
            typeof o > "u" && (o = "000"), a >= o && (this.styles[s] = i[s], this.stylesSpecificity[s] = a);
          }
      }
  }
  removeStyles(e, r) {
    var t = r.reduce((i, a) => {
      var s = e.getStyle(a);
      if (!s.hasValue())
        return i;
      var o = s.getString();
      return s.setValue(""), [...i, [a, o]];
    }, []);
    return t;
  }
  restoreStyles(e, r) {
    r.forEach((t) => {
      var [i, a] = t;
      e.getStyle(i, !0).setValue(a);
    });
  }
  isFirstChild() {
    var e;
    return ((e = this.parent) === null || e === void 0 ? void 0 : e.children.indexOf(this)) === 0;
  }
}
K.ignoreChildTypes = ["title"];
class tc extends K {
  constructor(e, r, t) {
    super(e, r, t);
  }
}
function ic(n) {
  var e = n.trim();
  return /^('|")/.test(e) ? e : '"'.concat(e, '"');
}
function ac(n) {
  return typeof process > "u" ? n : n.trim().split(",").map(ic).join(",");
}
function nc(n) {
  if (!n)
    return "";
  var e = n.trim().toLowerCase();
  switch (e) {
    case "normal":
    case "italic":
    case "oblique":
    case "inherit":
    case "initial":
    case "unset":
      return e;
    default:
      return /^oblique\s+(-|)\d+deg$/.test(e) ? e : "";
  }
}
function sc(n) {
  if (!n)
    return "";
  var e = n.trim().toLowerCase();
  switch (e) {
    case "normal":
    case "bold":
    case "lighter":
    case "bolder":
    case "inherit":
    case "initial":
    case "unset":
      return e;
    default:
      return /^[\d.]+$/.test(e) ? e : "";
  }
}
class ue {
  constructor(e, r, t, i, a, s) {
    var o = s ? typeof s == "string" ? ue.parse(s) : s : {};
    this.fontFamily = a || o.fontFamily, this.fontSize = i || o.fontSize, this.fontStyle = e || o.fontStyle, this.fontWeight = t || o.fontWeight, this.fontVariant = r || o.fontVariant;
  }
  static parse() {
    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", r = arguments.length > 1 ? arguments[1] : void 0, t = "", i = "", a = "", s = "", o = "", u = or(e).trim().split(" "), l = {
      fontSize: !1,
      fontStyle: !1,
      fontWeight: !1,
      fontVariant: !1
    };
    return u.forEach((h) => {
      switch (!0) {
        case (!l.fontStyle && ue.styles.includes(h)):
          h !== "inherit" && (t = h), l.fontStyle = !0;
          break;
        case (!l.fontVariant && ue.variants.includes(h)):
          h !== "inherit" && (i = h), l.fontStyle = !0, l.fontVariant = !0;
          break;
        case (!l.fontWeight && ue.weights.includes(h)):
          h !== "inherit" && (a = h), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0;
          break;
        case !l.fontSize:
          h !== "inherit" && ([s] = h.split("/")), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0, l.fontSize = !0;
          break;
        default:
          h !== "inherit" && (o += h);
      }
    }), new ue(t, i, a, s, o, r);
  }
  toString() {
    return [
      nc(this.fontStyle),
      this.fontVariant,
      sc(this.fontWeight),
      this.fontSize,
      // Wrap fontFamily only on nodejs and only for canvas.ctx
      ac(this.fontFamily)
    ].join(" ").trim();
  }
}
ue.styles = "normal|italic|oblique|inherit";
ue.variants = "normal|small-caps|inherit";
ue.weights = "normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";
class Ie {
  constructor() {
    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Number.NaN, r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.NaN, t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Number.NaN, i = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : Number.NaN;
    this.x1 = e, this.y1 = r, this.x2 = t, this.y2 = i, this.addPoint(e, r), this.addPoint(t, i);
  }
  get x() {
    return this.x1;
  }
  get y() {
    return this.y1;
  }
  get width() {
    return this.x2 - this.x1;
  }
  get height() {
    return this.y2 - this.y1;
  }
  addPoint(e, r) {
    typeof e < "u" && ((isNaN(this.x1) || isNaN(this.x2)) && (this.x1 = e, this.x2 = e), e < this.x1 && (this.x1 = e), e > this.x2 && (this.x2 = e)), typeof r < "u" && ((isNaN(this.y1) || isNaN(this.y2)) && (this.y1 = r, this.y2 = r), r < this.y1 && (this.y1 = r), r > this.y2 && (this.y2 = r));
  }
  addX(e) {
    this.addPoint(e, null);
  }
  addY(e) {
    this.addPoint(null, e);
  }
  addBoundingBox(e) {
    if (e) {
      var {
        x1: r,
        y1: t,
        x2: i,
        y2: a
      } = e;
      this.addPoint(r, t), this.addPoint(i, a);
    }
  }
  sumCubic(e, r, t, i, a) {
    return Math.pow(1 - e, 3) * r + 3 * Math.pow(1 - e, 2) * e * t + 3 * (1 - e) * Math.pow(e, 2) * i + Math.pow(e, 3) * a;
  }
  bezierCurveAdd(e, r, t, i, a) {
    var s = 6 * r - 12 * t + 6 * i, o = -3 * r + 9 * t - 9 * i + 3 * a, u = 3 * t - 3 * r;
    if (o === 0) {
      if (s === 0)
        return;
      var l = -u / s;
      0 < l && l < 1 && (e ? this.addX(this.sumCubic(l, r, t, i, a)) : this.addY(this.sumCubic(l, r, t, i, a)));
      return;
    }
    var h = Math.pow(s, 2) - 4 * u * o;
    if (!(h < 0)) {
      var c = (-s + Math.sqrt(h)) / (2 * o);
      0 < c && c < 1 && (e ? this.addX(this.sumCubic(c, r, t, i, a)) : this.addY(this.sumCubic(c, r, t, i, a)));
      var v = (-s - Math.sqrt(h)) / (2 * o);
      0 < v && v < 1 && (e ? this.addX(this.sumCubic(v, r, t, i, a)) : this.addY(this.sumCubic(v, r, t, i, a)));
    }
  }
  // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
  addBezierCurve(e, r, t, i, a, s, o, u) {
    this.addPoint(e, r), this.addPoint(o, u), this.bezierCurveAdd(!0, e, t, a, o), this.bezierCurveAdd(!1, r, i, s, u);
  }
  addQuadraticCurve(e, r, t, i, a, s) {
    var o = e + 0.6666666666666666 * (t - e), u = r + 2 / 3 * (i - r), l = o + 1 / 3 * (a - e), h = u + 1 / 3 * (s - r);
    this.addBezierCurve(e, r, o, l, u, h, a, s);
  }
  isPointInBox(e, r) {
    var {
      x1: t,
      y1: i,
      x2: a,
      y2: s
    } = this;
    return t <= e && e <= a && i <= r && r <= s;
  }
}
class F extends T {
  constructor(e) {
    super(e.replace(/([+\-.])\s+/gm, "$1").replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g, "")), this.control = null, this.start = null, this.current = null, this.command = null, this.commands = this.commands, this.i = -1, this.previousCommand = null, this.points = [], this.angles = [];
  }
  reset() {
    this.i = -1, this.command = null, this.previousCommand = null, this.start = new ee(0, 0), this.control = new ee(0, 0), this.current = new ee(0, 0), this.points = [], this.angles = [];
  }
  isEnd() {
    var {
      i: e,
      commands: r
    } = this;
    return e >= r.length - 1;
  }
  next() {
    var e = this.commands[++this.i];
    return this.previousCommand = this.command, this.command = e, e;
  }
  getPoint() {
    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "x", r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "y", t = new ee(this.command[e], this.command[r]);
    return this.makeAbsolute(t);
  }
  getAsControlPoint(e, r) {
    var t = this.getPoint(e, r);
    return this.control = t, t;
  }
  getAsCurrentPoint(e, r) {
    var t = this.getPoint(e, r);
    return this.current = t, t;
  }
  getReflectedControlPoint() {
    var e = this.previousCommand.type;
    if (e !== T.CURVE_TO && e !== T.SMOOTH_CURVE_TO && e !== T.QUAD_TO && e !== T.SMOOTH_QUAD_TO)
      return this.current;
    var {
      current: {
        x: r,
        y: t
      },
      control: {
        x: i,
        y: a
      }
    } = this, s = new ee(2 * r - i, 2 * t - a);
    return s;
  }
  makeAbsolute(e) {
    if (this.command.relative) {
      var {
        x: r,
        y: t
      } = this.current;
      e.x += r, e.y += t;
    }
    return e;
  }
  addMarker(e, r, t) {
    var {
      points: i,
      angles: a
    } = this;
    t && a.length > 0 && !a[a.length - 1] && (a[a.length - 1] = i[i.length - 1].angleTo(t)), this.addMarkerAngle(e, r ? r.angleTo(e) : null);
  }
  addMarkerAngle(e, r) {
    this.points.push(e), this.angles.push(r);
  }
  getMarkerPoints() {
    return this.points;
  }
  getMarkerAngles() {
    for (var {
      angles: e
    } = this, r = e.length, t = 0; t < r; t++)
      if (!e[t]) {
        for (var i = t + 1; i < r; i++)
          if (e[i]) {
            e[t] = e[i];
            break;
          }
      }
    return e;
  }
}
class ir extends K {
  constructor() {
    super(...arguments), this.modifiedEmSizeStack = !1;
  }
  calculateOpacity() {
    for (var e = 1, r = this; r; ) {
      var t = r.getStyle("opacity", !1, !0);
      t.hasValue(!0) && (e *= t.getNumber()), r = r.parent;
    }
    return e;
  }
  setContext(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
    if (!r) {
      var t = this.getStyle("fill"), i = this.getStyle("fill-opacity"), a = this.getStyle("stroke"), s = this.getStyle("stroke-opacity");
      if (t.isUrlDefinition()) {
        var o = t.getFillStyleDefinition(this, i);
        o && (e.fillStyle = o);
      } else if (t.hasValue()) {
        t.getString() === "currentColor" && t.setValue(this.getStyle("color").getColor());
        var u = t.getColor();
        u !== "inherit" && (e.fillStyle = u === "none" ? "rgba(0,0,0,0)" : u);
      }
      if (i.hasValue()) {
        var l = new D(this.document, "fill", e.fillStyle).addOpacity(i).getColor();
        e.fillStyle = l;
      }
      if (a.isUrlDefinition()) {
        var h = a.getFillStyleDefinition(this, s);
        h && (e.strokeStyle = h);
      } else if (a.hasValue()) {
        a.getString() === "currentColor" && a.setValue(this.getStyle("color").getColor());
        var c = a.getString();
        c !== "inherit" && (e.strokeStyle = c === "none" ? "rgba(0,0,0,0)" : c);
      }
      if (s.hasValue()) {
        var v = new D(this.document, "stroke", e.strokeStyle).addOpacity(s).getString();
        e.strokeStyle = v;
      }
      var f = this.getStyle("stroke-width");
      if (f.hasValue()) {
        var g = f.getPixels();
        e.lineWidth = g || ar;
      }
      var d = this.getStyle("stroke-linecap"), p = this.getStyle("stroke-linejoin"), y = this.getStyle("stroke-miterlimit"), m = this.getStyle("stroke-dasharray"), b = this.getStyle("stroke-dashoffset");
      if (d.hasValue() && (e.lineCap = d.getString()), p.hasValue() && (e.lineJoin = p.getString()), y.hasValue() && (e.miterLimit = y.getNumber()), m.hasValue() && m.getString() !== "none") {
        var x = ye(m.getString());
        typeof e.setLineDash < "u" ? e.setLineDash(x) : typeof e.webkitLineDash < "u" ? e.webkitLineDash = x : typeof e.mozDash < "u" && !(x.length === 1 && x[0] === 0) && (e.mozDash = x);
        var S = b.getPixels();
        typeof e.lineDashOffset < "u" ? e.lineDashOffset = S : typeof e.webkitLineDashOffset < "u" ? e.webkitLineDashOffset = S : typeof e.mozDashOffset < "u" && (e.mozDashOffset = S);
      }
    }
    if (this.modifiedEmSizeStack = !1, typeof e.font < "u") {
      var E = this.getStyle("font"), O = this.getStyle("font-style"), P = this.getStyle("font-variant"), _ = this.getStyle("font-weight"), A = this.getStyle("font-size"), q = this.getStyle("font-family"), I = new ue(O.getString(), P.getString(), _.getString(), A.hasValue() ? "".concat(A.getPixels(!0), "px") : "", q.getString(), ue.parse(E.getString(), e.font));
      O.setValue(I.fontStyle), P.setValue(I.fontVariant), _.setValue(I.fontWeight), A.setValue(I.fontSize), q.setValue(I.fontFamily), e.font = I.toString(), A.isPixels() && (this.document.emSize = A.getPixels(), this.modifiedEmSizeStack = !0);
    }
    r || (this.applyEffects(e), e.globalAlpha = this.calculateOpacity());
  }
  clearContext(e) {
    super.clearContext(e), this.modifiedEmSizeStack && this.document.popEmSize();
  }
}
class Y extends ir {
  constructor(e, r, t) {
    super(e, r, t), this.type = "path", this.pathParser = null, this.pathParser = new F(this.getAttribute("d").getString());
  }
  path(e) {
    var {
      pathParser: r
    } = this, t = new Ie();
    for (r.reset(), e && e.beginPath(); !r.isEnd(); )
      switch (r.next().type) {
        case F.MOVE_TO:
          this.pathM(e, t);
          break;
        case F.LINE_TO:
          this.pathL(e, t);
          break;
        case F.HORIZ_LINE_TO:
          this.pathH(e, t);
          break;
        case F.VERT_LINE_TO:
          this.pathV(e, t);
          break;
        case F.CURVE_TO:
          this.pathC(e, t);
          break;
        case F.SMOOTH_CURVE_TO:
          this.pathS(e, t);
          break;
        case F.QUAD_TO:
          this.pathQ(e, t);
          break;
        case F.SMOOTH_QUAD_TO:
          this.pathT(e, t);
          break;
        case F.ARC:
          this.pathA(e, t);
          break;
        case F.CLOSE_PATH:
          this.pathZ(e, t);
          break;
      }
    return t;
  }
  getBoundingBox(e) {
    return this.path();
  }
  getMarkers() {
    var {
      pathParser: e
    } = this, r = e.getMarkerPoints(), t = e.getMarkerAngles(), i = r.map((a, s) => [a, t[s]]);
    return i;
  }
  renderChildren(e) {
    this.path(e), this.document.screen.mouse.checkPath(this, e);
    var r = this.getStyle("fill-rule");
    e.fillStyle !== "" && (r.getString("inherit") !== "inherit" ? e.fill(r.getString()) : e.fill()), e.strokeStyle !== "" && (this.getAttribute("vector-effect").getString() === "non-scaling-stroke" ? (e.save(), e.setTransform(1, 0, 0, 1, 0, 0), e.stroke(), e.restore()) : e.stroke());
    var t = this.getMarkers();
    if (t) {
      var i = t.length - 1, a = this.getStyle("marker-start"), s = this.getStyle("marker-mid"), o = this.getStyle("marker-end");
      if (a.isUrlDefinition()) {
        var u = a.getDefinition(), [l, h] = t[0];
        u.render(e, l, h);
      }
      if (s.isUrlDefinition())
        for (var c = s.getDefinition(), v = 1; v < i; v++) {
          var [f, g] = t[v];
          c.render(e, f, g);
        }
      if (o.isUrlDefinition()) {
        var d = o.getDefinition(), [p, y] = t[i];
        d.render(e, p, y);
      }
    }
  }
  static pathM(e) {
    var r = e.getAsCurrentPoint();
    return e.start = e.current, {
      point: r
    };
  }
  pathM(e, r) {
    var {
      pathParser: t
    } = this, {
      point: i
    } = Y.pathM(t), {
      x: a,
      y: s
    } = i;
    t.addMarker(i), r.addPoint(a, s), e && e.moveTo(a, s);
  }
  static pathL(e) {
    var {
      current: r
    } = e, t = e.getAsCurrentPoint();
    return {
      current: r,
      point: t
    };
  }
  pathL(e, r) {
    var {
      pathParser: t
    } = this, {
      current: i,
      point: a
    } = Y.pathL(t), {
      x: s,
      y: o
    } = a;
    t.addMarker(a, i), r.addPoint(s, o), e && e.lineTo(s, o);
  }
  static pathH(e) {
    var {
      current: r,
      command: t
    } = e, i = new ee((t.relative ? r.x : 0) + t.x, r.y);
    return e.current = i, {
      current: r,
      point: i
    };
  }
  pathH(e, r) {
    var {
      pathParser: t
    } = this, {
      current: i,
      point: a
    } = Y.pathH(t), {
      x: s,
      y: o
    } = a;
    t.addMarker(a, i), r.addPoint(s, o), e && e.lineTo(s, o);
  }
  static pathV(e) {
    var {
      current: r,
      command: t
    } = e, i = new ee(r.x, (t.relative ? r.y : 0) + t.y);
    return e.current = i, {
      current: r,
      point: i
    };
  }
  pathV(e, r) {
    var {
      pathParser: t
    } = this, {
      current: i,
      point: a
    } = Y.pathV(t), {
      x: s,
      y: o
    } = a;
    t.addMarker(a, i), r.addPoint(s, o), e && e.lineTo(s, o);
  }
  static pathC(e) {
    var {
      current: r
    } = e, t = e.getPoint("x1", "y1"), i = e.getAsControlPoint("x2", "y2"), a = e.getAsCurrentPoint();
    return {
      current: r,
      point: t,
      controlPoint: i,
      currentPoint: a
    };
  }
  pathC(e, r) {
    var {
      pathParser: t
    } = this, {
      current: i,
      point: a,
      controlPoint: s,
      currentPoint: o
    } = Y.pathC(t);
    t.addMarker(o, s, a), r.addBezierCurve(i.x, i.y, a.x, a.y, s.x, s.y, o.x, o.y), e && e.bezierCurveTo(a.x, a.y, s.x, s.y, o.x, o.y);
  }
  static pathS(e) {
    var {
      current: r
    } = e, t = e.getReflectedControlPoint(), i = e.getAsControlPoint("x2", "y2"), a = e.getAsCurrentPoint();
    return {
      current: r,
      point: t,
      controlPoint: i,
      currentPoint: a
    };
  }
  pathS(e, r) {
    var {
      pathParser: t
    } = this, {
      current: i,
      point: a,
      controlPoint: s,
      currentPoint: o
    } = Y.pathS(t);
    t.addMarker(o, s, a), r.addBezierCurve(i.x, i.y, a.x, a.y, s.x, s.y, o.x, o.y), e && e.bezierCurveTo(a.x, a.y, s.x, s.y, o.x, o.y);
  }
  static pathQ(e) {
    var {
      current: r
    } = e, t = e.getAsControlPoint("x1", "y1"), i = e.getAsCurrentPoint();
    return {
      current: r,
      controlPoint: t,
      currentPoint: i
    };
  }
  pathQ(e, r) {
    var {
      pathParser: t
    } = this, {
      current: i,
      controlPoint: a,
      currentPoint: s
    } = Y.pathQ(t);
    t.addMarker(s, a, a), r.addQuadraticCurve(i.x, i.y, a.x, a.y, s.x, s.y), e && e.quadraticCurveTo(a.x, a.y, s.x, s.y);
  }
  static pathT(e) {
    var {
      current: r
    } = e, t = e.getReflectedControlPoint();
    e.control = t;
    var i = e.getAsCurrentPoint();
    return {
      current: r,
      controlPoint: t,
      currentPoint: i
    };
  }
  pathT(e, r) {
    var {
      pathParser: t
    } = this, {
      current: i,
      controlPoint: a,
      currentPoint: s
    } = Y.pathT(t);
    t.addMarker(s, a, a), r.addQuadraticCurve(i.x, i.y, a.x, a.y, s.x, s.y), e && e.quadraticCurveTo(a.x, a.y, s.x, s.y);
  }
  static pathA(e) {
    var {
      current: r,
      command: t
    } = e, {
      rX: i,
      rY: a,
      xRot: s,
      lArcFlag: o,
      sweepFlag: u
    } = t, l = s * (Math.PI / 180), h = e.getAsCurrentPoint(), c = new ee(Math.cos(l) * (r.x - h.x) / 2 + Math.sin(l) * (r.y - h.y) / 2, -Math.sin(l) * (r.x - h.x) / 2 + Math.cos(l) * (r.y - h.y) / 2), v = Math.pow(c.x, 2) / Math.pow(i, 2) + Math.pow(c.y, 2) / Math.pow(a, 2);
    v > 1 && (i *= Math.sqrt(v), a *= Math.sqrt(v));
    var f = (o === u ? -1 : 1) * Math.sqrt((Math.pow(i, 2) * Math.pow(a, 2) - Math.pow(i, 2) * Math.pow(c.y, 2) - Math.pow(a, 2) * Math.pow(c.x, 2)) / (Math.pow(i, 2) * Math.pow(c.y, 2) + Math.pow(a, 2) * Math.pow(c.x, 2)));
    isNaN(f) && (f = 0);
    var g = new ee(f * i * c.y / a, f * -a * c.x / i), d = new ee((r.x + h.x) / 2 + Math.cos(l) * g.x - Math.sin(l) * g.y, (r.y + h.y) / 2 + Math.sin(l) * g.x + Math.cos(l) * g.y), p = zu([1, 0], [(c.x - g.x) / i, (c.y - g.y) / a]), y = [(c.x - g.x) / i, (c.y - g.y) / a], m = [(-c.x - g.x) / i, (-c.y - g.y) / a], b = zu(y, m);
    return ja(y, m) <= -1 && (b = Math.PI), ja(y, m) >= 1 && (b = 0), {
      currentPoint: h,
      rX: i,
      rY: a,
      sweepFlag: u,
      xAxisRotation: l,
      centp: d,
      a1: p,
      ad: b
    };
  }
  pathA(e, r) {
    var {
      pathParser: t
    } = this, {
      currentPoint: i,
      rX: a,
      rY: s,
      sweepFlag: o,
      xAxisRotation: u,
      centp: l,
      a1: h,
      ad: c
    } = Y.pathA(t), v = 1 - o ? 1 : -1, f = h + v * (c / 2), g = new ee(l.x + a * Math.cos(f), l.y + s * Math.sin(f));
    if (t.addMarkerAngle(g, f - v * Math.PI / 2), t.addMarkerAngle(i, f - v * Math.PI), r.addPoint(i.x, i.y), e && !isNaN(h) && !isNaN(c)) {
      var d = a > s ? a : s, p = a > s ? 1 : a / s, y = a > s ? s / a : 1;
      e.translate(l.x, l.y), e.rotate(u), e.scale(p, y), e.arc(0, 0, d, h, h + c, !!(1 - o)), e.scale(1 / p, 1 / y), e.rotate(-u), e.translate(-l.x, -l.y);
    }
  }
  static pathZ(e) {
    e.current = e.start;
  }
  pathZ(e, r) {
    Y.pathZ(this.pathParser), e && r.x1 !== r.x2 && r.y1 !== r.y2 && e.closePath();
  }
}
class Ul extends Y {
  constructor(e, r, t) {
    super(e, r, t), this.type = "glyph", this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber(), this.unicode = this.getAttribute("unicode").getString(), this.arabicForm = this.getAttribute("arabic-form").getString();
  }
}
class We extends ir {
  constructor(e, r, t) {
    super(e, r, new.target === We ? !0 : t), this.type = "text", this.x = 0, this.y = 0, this.measureCache = -1;
  }
  setContext(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
    super.setContext(e, r);
    var t = this.getStyle("dominant-baseline").getTextBaseline() || this.getStyle("alignment-baseline").getTextBaseline();
    t && (e.textBaseline = t);
  }
  initializeCoordinates() {
    this.x = 0, this.y = 0, this.leafTexts = [], this.textChunkStart = 0, this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY;
  }
  getBoundingBox(e) {
    if (this.type !== "text")
      return this.getTElementBoundingBox(e);
    this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(e);
    var r = null;
    return this.children.forEach((t, i) => {
      var a = this.getChildBoundingBox(e, this, this, i);
      r ? r.addBoundingBox(a) : r = a;
    }), r;
  }
  getFontSize() {
    var {
      document: e,
      parent: r
    } = this, t = ue.parse(e.ctx.font).fontSize, i = r.getStyle("font-size").getNumber(t);
    return i;
  }
  getTElementBoundingBox(e) {
    var r = this.getFontSize();
    return new Ie(this.x, this.y - r, this.x + this.measureText(e), this.y);
  }
  getGlyph(e, r, t) {
    var i = r[t], a = null;
    if (e.isArabic) {
      var s = r.length, o = r[t - 1], u = r[t + 1], l = "isolated";
      if ((t === 0 || o === " ") && t < s - 1 && u !== " " && (l = "terminal"), t > 0 && o !== " " && t < s - 1 && u !== " " && (l = "medial"), t > 0 && o !== " " && (t === s - 1 || u === " ") && (l = "initial"), typeof e.glyphs[i] < "u") {
        var h = e.glyphs[i];
        a = h instanceof Ul ? h : h[l];
      }
    } else
      a = e.glyphs[i];
    return a || (a = e.missingGlyph), a;
  }
  getText() {
    return "";
  }
  getTextFromNode(e) {
    var r = e || this.node, t = Array.from(r.parentNode.childNodes), i = t.indexOf(r), a = t.length - 1, s = or(
      // textNode.value
      // || textNode.text
      r.textContent || ""
    );
    return i === 0 && (s = _f(s)), i === a && (s = Mf(s)), s;
  }
  renderChildren(e) {
    if (this.type !== "text") {
      this.renderTElementChildren(e);
      return;
    }
    this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(e), this.children.forEach((t, i) => {
      this.renderChild(e, this, this, i);
    });
    var {
      mouse: r
    } = this.document.screen;
    r.isWorking() && r.checkBoundingBox(this, this.getBoundingBox(e));
  }
  renderTElementChildren(e) {
    var {
      document: r,
      parent: t
    } = this, i = this.getText(), a = t.getStyle("font-family").getDefinition();
    if (a) {
      for (var {
        unitsPerEm: s
      } = a.fontFace, o = ue.parse(r.ctx.font), u = t.getStyle("font-size").getNumber(o.fontSize), l = t.getStyle("font-style").getString(o.fontStyle), h = u / s, c = a.isRTL ? i.split("").reverse().join("") : i, v = ye(t.getAttribute("dx").getString()), f = c.length, g = 0; g < f; g++) {
        var d = this.getGlyph(a, c, g);
        e.translate(this.x, this.y), e.scale(h, -h);
        var p = e.lineWidth;
        e.lineWidth = e.lineWidth * s / u, l === "italic" && e.transform(1, 0, 0.4, 1, 0, 0), d.render(e), l === "italic" && e.transform(1, 0, -0.4, 1, 0, 0), e.lineWidth = p, e.scale(1 / h, -1 / h), e.translate(-this.x, -this.y), this.x += u * (d.horizAdvX || a.horizAdvX) / s, typeof v[g] < "u" && !isNaN(v[g]) && (this.x += v[g]);
      }
      return;
    }
    var {
      x: y,
      y: m
    } = this;
    e.fillStyle && e.fillText(i, y, m), e.strokeStyle && e.strokeText(i, y, m);
  }
  applyAnchoring() {
    if (!(this.textChunkStart >= this.leafTexts.length)) {
      var e = this.leafTexts[this.textChunkStart], r = e.getStyle("text-anchor").getString("start"), t = !1, i = 0;
      r === "start" && !t || r === "end" && t ? i = e.x - this.minX : r === "end" && !t || r === "start" && t ? i = e.x - this.maxX : i = e.x - (this.minX + this.maxX) / 2;
      for (var a = this.textChunkStart; a < this.leafTexts.length; a++)
        this.leafTexts[a].x += i;
      this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY, this.textChunkStart = this.leafTexts.length;
    }
  }
  adjustChildCoordinatesRecursive(e) {
    this.children.forEach((r, t) => {
      this.adjustChildCoordinatesRecursiveCore(e, this, this, t);
    }), this.applyAnchoring();
  }
  adjustChildCoordinatesRecursiveCore(e, r, t, i) {
    var a = t.children[i];
    a.children.length > 0 ? a.children.forEach((s, o) => {
      r.adjustChildCoordinatesRecursiveCore(e, r, a, o);
    }) : this.adjustChildCoordinates(e, r, t, i);
  }
  adjustChildCoordinates(e, r, t, i) {
    var a = t.children[i];
    if (typeof a.measureText != "function")
      return a;
    e.save(), a.setContext(e, !0);
    var s = a.getAttribute("x"), o = a.getAttribute("y"), u = a.getAttribute("dx"), l = a.getAttribute("dy"), h = a.getStyle("font-family").getDefinition(), c = !!h && h.isRTL;
    i === 0 && (s.hasValue() || s.setValue(a.getInheritedAttribute("x")), o.hasValue() || o.setValue(a.getInheritedAttribute("y")), u.hasValue() || u.setValue(a.getInheritedAttribute("dx")), l.hasValue() || l.setValue(a.getInheritedAttribute("dy")));
    var v = a.measureText(e);
    return c && (r.x -= v), s.hasValue() ? (r.applyAnchoring(), a.x = s.getPixels("x"), u.hasValue() && (a.x += u.getPixels("x"))) : (u.hasValue() && (r.x += u.getPixels("x")), a.x = r.x), r.x = a.x, c || (r.x += v), o.hasValue() ? (a.y = o.getPixels("y"), l.hasValue() && (a.y += l.getPixels("y"))) : (l.hasValue() && (r.y += l.getPixels("y")), a.y = r.y), r.y = a.y, r.leafTexts.push(a), r.minX = Math.min(r.minX, a.x, a.x + v), r.maxX = Math.max(r.maxX, a.x, a.x + v), a.clearContext(e), e.restore(), a;
  }
  getChildBoundingBox(e, r, t, i) {
    var a = t.children[i];
    if (typeof a.getBoundingBox != "function")
      return null;
    var s = a.getBoundingBox(e);
    return s ? (a.children.forEach((o, u) => {
      var l = r.getChildBoundingBox(e, r, a, u);
      s.addBoundingBox(l);
    }), s) : null;
  }
  renderChild(e, r, t, i) {
    var a = t.children[i];
    a.render(e), a.children.forEach((s, o) => {
      r.renderChild(e, r, a, o);
    });
  }
  measureText(e) {
    var {
      measureCache: r
    } = this;
    if (~r)
      return r;
    var t = this.getText(), i = this.measureTargetText(e, t);
    return this.measureCache = i, i;
  }
  measureTargetText(e, r) {
    if (!r.length)
      return 0;
    var {
      parent: t
    } = this, i = t.getStyle("font-family").getDefinition();
    if (i) {
      for (var a = this.getFontSize(), s = i.isRTL ? r.split("").reverse().join("") : r, o = ye(t.getAttribute("dx").getString()), u = s.length, l = 0, h = 0; h < u; h++) {
        var c = this.getGlyph(i, s, h);
        l += (c.horizAdvX || i.horizAdvX) * a / i.fontFace.unitsPerEm, typeof o[h] < "u" && !isNaN(o[h]) && (l += o[h]);
      }
      return l;
    }
    if (!e.measureText)
      return r.length * 10;
    e.save(), this.setContext(e, !0);
    var {
      width: v
    } = e.measureText(r);
    return this.clearContext(e), e.restore(), v;
  }
  /**
   * Inherits positional attributes from {@link TextElement} parent(s). Attributes
   * are only inherited from a parent to its first child.
   * @param name - The attribute name.
   * @returns The attribute value or null.
   */
  getInheritedAttribute(e) {
    for (var r = this; r instanceof We && r.isFirstChild(); ) {
      var t = r.parent.getAttribute(e);
      if (t.hasValue(!0))
        return t.getValue("0");
      r = r.parent;
    }
    return null;
  }
}
class $r extends We {
  constructor(e, r, t) {
    super(e, r, new.target === $r ? !0 : t), this.type = "tspan", this.text = this.children.length > 0 ? "" : this.getTextFromNode();
  }
  getText() {
    return this.text;
  }
}
class oc extends $r {
  constructor() {
    super(...arguments), this.type = "textNode";
  }
}
class Tr extends ir {
  constructor() {
    super(...arguments), this.type = "svg", this.root = !1;
  }
  setContext(e) {
    var r, {
      document: t
    } = this, {
      screen: i,
      window: a
    } = t, s = e.canvas;
    if (i.setDefaults(e), s.style && typeof e.font < "u" && a && typeof a.getComputedStyle < "u") {
      e.font = a.getComputedStyle(s).getPropertyValue("font");
      var o = new D(t, "fontSize", ue.parse(e.font).fontSize);
      o.hasValue() && (t.rootEmSize = o.getPixels("y"), t.emSize = t.rootEmSize);
    }
    this.getAttribute("x").hasValue() || this.getAttribute("x", !0).setValue(0), this.getAttribute("y").hasValue() || this.getAttribute("y", !0).setValue(0);
    var {
      width: u,
      height: l
    } = i.viewPort;
    this.getStyle("width").hasValue() || this.getStyle("width", !0).setValue("100%"), this.getStyle("height").hasValue() || this.getStyle("height", !0).setValue("100%"), this.getStyle("color").hasValue() || this.getStyle("color", !0).setValue("black");
    var h = this.getAttribute("refX"), c = this.getAttribute("refY"), v = this.getAttribute("viewBox"), f = v.hasValue() ? ye(v.getString()) : null, g = !this.root && this.getStyle("overflow").getValue("hidden") !== "visible", d = 0, p = 0, y = 0, m = 0;
    f && (d = f[0], p = f[1]), this.root || (u = this.getStyle("width").getPixels("x"), l = this.getStyle("height").getPixels("y"), this.type === "marker" && (y = d, m = p, d = 0, p = 0)), i.viewPort.setCurrent(u, l), this.node && (!this.parent || ((r = this.node.parentNode) === null || r === void 0 ? void 0 : r.nodeName) === "foreignObject") && this.getStyle("transform", !1, !0).hasValue() && !this.getStyle("transform-origin", !1, !0).hasValue() && this.getStyle("transform-origin", !0, !0).setValue("50% 50%"), super.setContext(e), e.translate(this.getAttribute("x").getPixels("x"), this.getAttribute("y").getPixels("y")), f && (u = f[2], l = f[3]), t.setViewBox({
      ctx: e,
      aspectRatio: this.getAttribute("preserveAspectRatio").getString(),
      width: i.viewPort.width,
      desiredWidth: u,
      height: i.viewPort.height,
      desiredHeight: l,
      minX: d,
      minY: p,
      refX: h.getValue(),
      refY: c.getValue(),
      clip: g,
      clipX: y,
      clipY: m
    }), f && (i.viewPort.removeCurrent(), i.viewPort.setCurrent(u, l));
  }
  clearContext(e) {
    super.clearContext(e), this.document.screen.viewPort.removeCurrent();
  }
  /**
   * Resize SVG to fit in given size.
   * @param width
   * @param height
   * @param preserveAspectRatio
   */
  resize(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : e, t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, i = this.getAttribute("width", !0), a = this.getAttribute("height", !0), s = this.getAttribute("viewBox"), o = this.getAttribute("style"), u = i.getNumber(0), l = a.getNumber(0);
    if (t)
      if (typeof t == "string")
        this.getAttribute("preserveAspectRatio", !0).setValue(t);
      else {
        var h = this.getAttribute("preserveAspectRatio");
        h.hasValue() && h.setValue(h.getString().replace(/^\s*(\S.*\S)\s*$/, "$1"));
      }
    if (i.setValue(e), a.setValue(r), s.hasValue() || s.setValue("0 0 ".concat(u || e, " ").concat(l || r)), o.hasValue()) {
      var c = this.getStyle("width"), v = this.getStyle("height");
      c.hasValue() && c.setValue("".concat(e, "px")), v.hasValue() && v.setValue("".concat(r, "px"));
    }
  }
}
class Gl extends Y {
  constructor() {
    super(...arguments), this.type = "rect";
  }
  path(e) {
    var r = this.getAttribute("x").getPixels("x"), t = this.getAttribute("y").getPixels("y"), i = this.getStyle("width", !1, !0).getPixels("x"), a = this.getStyle("height", !1, !0).getPixels("y"), s = this.getAttribute("rx"), o = this.getAttribute("ry"), u = s.getPixels("x"), l = o.getPixels("y");
    if (s.hasValue() && !o.hasValue() && (l = u), o.hasValue() && !s.hasValue() && (u = l), u = Math.min(u, i / 2), l = Math.min(l, a / 2), e) {
      var h = 4 * ((Math.sqrt(2) - 1) / 3);
      e.beginPath(), a > 0 && i > 0 && (e.moveTo(r + u, t), e.lineTo(r + i - u, t), e.bezierCurveTo(r + i - u + h * u, t, r + i, t + l - h * l, r + i, t + l), e.lineTo(r + i, t + a - l), e.bezierCurveTo(r + i, t + a - l + h * l, r + i - u + h * u, t + a, r + i - u, t + a), e.lineTo(r + u, t + a), e.bezierCurveTo(r + u - h * u, t + a, r, t + a - l + h * l, r, t + a - l), e.lineTo(r, t + l), e.bezierCurveTo(r, t + l - h * l, r + u - h * u, t, r + u, t), e.closePath());
    }
    return new Ie(r, t, r + i, t + a);
  }
  getMarkers() {
    return null;
  }
}
class uc extends Y {
  constructor() {
    super(...arguments), this.type = "circle";
  }
  path(e) {
    var r = this.getAttribute("cx").getPixels("x"), t = this.getAttribute("cy").getPixels("y"), i = this.getAttribute("r").getPixels();
    return e && i > 0 && (e.beginPath(), e.arc(r, t, i, 0, Math.PI * 2, !1), e.closePath()), new Ie(r - i, t - i, r + i, t + i);
  }
  getMarkers() {
    return null;
  }
}
class lc extends Y {
  constructor() {
    super(...arguments), this.type = "ellipse";
  }
  path(e) {
    var r = 4 * ((Math.sqrt(2) - 1) / 3), t = this.getAttribute("rx").getPixels("x"), i = this.getAttribute("ry").getPixels("y"), a = this.getAttribute("cx").getPixels("x"), s = this.getAttribute("cy").getPixels("y");
    return e && t > 0 && i > 0 && (e.beginPath(), e.moveTo(a + t, s), e.bezierCurveTo(a + t, s + r * i, a + r * t, s + i, a, s + i), e.bezierCurveTo(a - r * t, s + i, a - t, s + r * i, a - t, s), e.bezierCurveTo(a - t, s - r * i, a - r * t, s - i, a, s - i), e.bezierCurveTo(a + r * t, s - i, a + t, s - r * i, a + t, s), e.closePath()), new Ie(a - t, s - i, a + t, s + i);
  }
  getMarkers() {
    return null;
  }
}
class hc extends Y {
  constructor() {
    super(...arguments), this.type = "line";
  }
  getPoints() {
    return [new ee(this.getAttribute("x1").getPixels("x"), this.getAttribute("y1").getPixels("y")), new ee(this.getAttribute("x2").getPixels("x"), this.getAttribute("y2").getPixels("y"))];
  }
  path(e) {
    var [{
      x: r,
      y: t
    }, {
      x: i,
      y: a
    }] = this.getPoints();
    return e && (e.beginPath(), e.moveTo(r, t), e.lineTo(i, a)), new Ie(r, t, i, a);
  }
  getMarkers() {
    var [e, r] = this.getPoints(), t = e.angleTo(r);
    return [[e, t], [r, t]];
  }
}
class $l extends Y {
  constructor(e, r, t) {
    super(e, r, t), this.type = "polyline", this.points = [], this.points = ee.parsePath(this.getAttribute("points").getString());
  }
  path(e) {
    var {
      points: r
    } = this, [{
      x: t,
      y: i
    }] = r, a = new Ie(t, i);
    return e && (e.beginPath(), e.moveTo(t, i)), r.forEach((s) => {
      var {
        x: o,
        y: u
      } = s;
      a.addPoint(o, u), e && e.lineTo(o, u);
    }), a;
  }
  getMarkers() {
    var {
      points: e
    } = this, r = e.length - 1, t = [];
    return e.forEach((i, a) => {
      a !== r && t.push([i, i.angleTo(e[a + 1])]);
    }), t.length > 0 && t.push([e[e.length - 1], t[t.length - 1][1]]), t;
  }
}
class fc extends $l {
  constructor() {
    super(...arguments), this.type = "polygon";
  }
  path(e) {
    var r = super.path(e), [{
      x: t,
      y: i
    }] = this.points;
    return e && (e.lineTo(t, i), e.closePath()), r;
  }
}
class cc extends K {
  constructor() {
    super(...arguments), this.type = "pattern";
  }
  createPattern(e, r, t) {
    var i = this.getStyle("width").getPixels("x", !0), a = this.getStyle("height").getPixels("y", !0), s = new Tr(this.document, null);
    s.attributes.viewBox = new D(this.document, "viewBox", this.getAttribute("viewBox").getValue()), s.attributes.width = new D(this.document, "width", "".concat(i, "px")), s.attributes.height = new D(this.document, "height", "".concat(a, "px")), s.attributes.transform = new D(this.document, "transform", this.getAttribute("patternTransform").getValue()), s.children = this.children;
    var o = this.document.createCanvas(i, a), u = o.getContext("2d"), l = this.getAttribute("x"), h = this.getAttribute("y");
    l.hasValue() && h.hasValue() && u.translate(l.getPixels("x", !0), h.getPixels("y", !0)), t.hasValue() ? this.styles["fill-opacity"] = t : Reflect.deleteProperty(this.styles, "fill-opacity");
    for (var c = -1; c <= 1; c++)
      for (var v = -1; v <= 1; v++)
        u.save(), s.attributes.x = new D(this.document, "x", c * o.width), s.attributes.y = new D(this.document, "y", v * o.height), s.render(u), u.restore();
    var f = e.createPattern(o, "repeat");
    return f;
  }
}
class vc extends K {
  constructor() {
    super(...arguments), this.type = "marker";
  }
  render(e, r, t) {
    if (r) {
      var {
        x: i,
        y: a
      } = r, s = this.getAttribute("orient").getString("auto"), o = this.getAttribute("markerUnits").getString("strokeWidth");
      e.translate(i, a), s === "auto" && e.rotate(t), o === "strokeWidth" && e.scale(e.lineWidth, e.lineWidth), e.save();
      var u = new Tr(this.document, null);
      u.type = this.type, u.attributes.viewBox = new D(this.document, "viewBox", this.getAttribute("viewBox").getValue()), u.attributes.refX = new D(this.document, "refX", this.getAttribute("refX").getValue()), u.attributes.refY = new D(this.document, "refY", this.getAttribute("refY").getValue()), u.attributes.width = new D(this.document, "width", this.getAttribute("markerWidth").getValue()), u.attributes.height = new D(this.document, "height", this.getAttribute("markerHeight").getValue()), u.attributes.overflow = new D(this.document, "overflow", this.getAttribute("overflow").getValue()), u.attributes.fill = new D(this.document, "fill", this.getAttribute("fill").getColor("black")), u.attributes.stroke = new D(this.document, "stroke", this.getAttribute("stroke").getValue("none")), u.children = this.children, u.render(e), e.restore(), o === "strokeWidth" && e.scale(1 / e.lineWidth, 1 / e.lineWidth), s === "auto" && e.rotate(-t), e.translate(-i, -a);
    }
  }
}
class gc extends K {
  constructor() {
    super(...arguments), this.type = "defs";
  }
  render() {
  }
}
class ln extends ir {
  constructor() {
    super(...arguments), this.type = "g";
  }
  getBoundingBox(e) {
    var r = new Ie();
    return this.children.forEach((t) => {
      r.addBoundingBox(t.getBoundingBox(e));
    }), r;
  }
}
class zl extends K {
  constructor(e, r, t) {
    super(e, r, t), this.attributesToInherit = ["gradientUnits"], this.stops = [];
    var {
      stops: i,
      children: a
    } = this;
    a.forEach((s) => {
      s.type === "stop" && i.push(s);
    });
  }
  getGradientUnits() {
    return this.getAttribute("gradientUnits").getString("objectBoundingBox");
  }
  createGradient(e, r, t) {
    var i = this;
    this.getHrefAttribute().hasValue() && (i = this.getHrefAttribute().getDefinition(), this.inheritStopContainer(i));
    var {
      stops: a
    } = i, s = this.getGradient(e, r);
    if (!s)
      return this.addParentOpacity(t, a[a.length - 1].color);
    if (a.forEach((p) => {
      s.addColorStop(p.offset, this.addParentOpacity(t, p.color));
    }), this.getAttribute("gradientTransform").hasValue()) {
      var {
        document: o
      } = this, {
        MAX_VIRTUAL_PIXELS: u,
        viewPort: l
      } = o.screen, [h] = l.viewPorts, c = new Gl(o, null);
      c.attributes.x = new D(o, "x", -u / 3), c.attributes.y = new D(o, "y", -u / 3), c.attributes.width = new D(o, "width", u), c.attributes.height = new D(o, "height", u);
      var v = new ln(o, null);
      v.attributes.transform = new D(o, "transform", this.getAttribute("gradientTransform").getValue()), v.children = [c];
      var f = new Tr(o, null);
      f.attributes.x = new D(o, "x", 0), f.attributes.y = new D(o, "y", 0), f.attributes.width = new D(o, "width", h.width), f.attributes.height = new D(o, "height", h.height), f.children = [v];
      var g = o.createCanvas(h.width, h.height), d = g.getContext("2d");
      return d.fillStyle = s, f.render(d), d.createPattern(g, "no-repeat");
    }
    return s;
  }
  inheritStopContainer(e) {
    this.attributesToInherit.forEach((r) => {
      !this.getAttribute(r).hasValue() && e.getAttribute(r).hasValue() && this.getAttribute(r, !0).setValue(e.getAttribute(r).getValue());
    });
  }
  addParentOpacity(e, r) {
    if (e.hasValue()) {
      var t = new D(this.document, "color", r);
      return t.addOpacity(e).getColor();
    }
    return r;
  }
}
class dc extends zl {
  constructor(e, r, t) {
    super(e, r, t), this.type = "linearGradient", this.attributesToInherit.push("x1", "y1", "x2", "y2");
  }
  getGradient(e, r) {
    var t = this.getGradientUnits() === "objectBoundingBox", i = t ? r.getBoundingBox(e) : null;
    if (t && !i)
      return null;
    !this.getAttribute("x1").hasValue() && !this.getAttribute("y1").hasValue() && !this.getAttribute("x2").hasValue() && !this.getAttribute("y2").hasValue() && (this.getAttribute("x1", !0).setValue(0), this.getAttribute("y1", !0).setValue(0), this.getAttribute("x2", !0).setValue(1), this.getAttribute("y2", !0).setValue(0));
    var a = t ? i.x + i.width * this.getAttribute("x1").getNumber() : this.getAttribute("x1").getPixels("x"), s = t ? i.y + i.height * this.getAttribute("y1").getNumber() : this.getAttribute("y1").getPixels("y"), o = t ? i.x + i.width * this.getAttribute("x2").getNumber() : this.getAttribute("x2").getPixels("x"), u = t ? i.y + i.height * this.getAttribute("y2").getNumber() : this.getAttribute("y2").getPixels("y");
    return a === o && s === u ? null : e.createLinearGradient(a, s, o, u);
  }
}
class pc extends zl {
  constructor(e, r, t) {
    super(e, r, t), this.type = "radialGradient", this.attributesToInherit.push("cx", "cy", "r", "fx", "fy", "fr");
  }
  getGradient(e, r) {
    var t = this.getGradientUnits() === "objectBoundingBox", i = r.getBoundingBox(e);
    if (t && !i)
      return null;
    this.getAttribute("cx").hasValue() || this.getAttribute("cx", !0).setValue("50%"), this.getAttribute("cy").hasValue() || this.getAttribute("cy", !0).setValue("50%"), this.getAttribute("r").hasValue() || this.getAttribute("r", !0).setValue("50%");
    var a = t ? i.x + i.width * this.getAttribute("cx").getNumber() : this.getAttribute("cx").getPixels("x"), s = t ? i.y + i.height * this.getAttribute("cy").getNumber() : this.getAttribute("cy").getPixels("y"), o = a, u = s;
    this.getAttribute("fx").hasValue() && (o = t ? i.x + i.width * this.getAttribute("fx").getNumber() : this.getAttribute("fx").getPixels("x")), this.getAttribute("fy").hasValue() && (u = t ? i.y + i.height * this.getAttribute("fy").getNumber() : this.getAttribute("fy").getPixels("y"));
    var l = t ? (i.width + i.height) / 2 * this.getAttribute("r").getNumber() : this.getAttribute("r").getPixels(), h = this.getAttribute("fr").getPixels();
    return e.createRadialGradient(o, u, h, a, s, l);
  }
}
class yc extends K {
  constructor(e, r, t) {
    super(e, r, t), this.type = "stop";
    var i = Math.max(0, Math.min(1, this.getAttribute("offset").getNumber())), a = this.getStyle("stop-opacity"), s = this.getStyle("stop-color", !0);
    s.getString() === "" && s.setValue("#000"), a.hasValue() && (s = s.addOpacity(a)), this.offset = i, this.color = s.getColor();
  }
}
class hn extends K {
  constructor(e, r, t) {
    super(e, r, t), this.type = "animate", this.duration = 0, this.initialValue = null, this.initialUnits = "", this.removed = !1, this.frozen = !1, e.screen.animations.push(this), this.begin = this.getAttribute("begin").getMilliseconds(), this.maxDuration = this.begin + this.getAttribute("dur").getMilliseconds(), this.from = this.getAttribute("from"), this.to = this.getAttribute("to"), this.values = new D(e, "values", null);
    var i = this.getAttribute("values");
    i.hasValue() && this.values.setValue(i.getString().split(";"));
  }
  getProperty() {
    var e = this.getAttribute("attributeType").getString(), r = this.getAttribute("attributeName").getString();
    return e === "CSS" ? this.parent.getStyle(r, !0) : this.parent.getAttribute(r, !0);
  }
  calcValue() {
    var {
      initialUnits: e
    } = this, {
      progress: r,
      from: t,
      to: i
    } = this.getProgress(), a = t.getNumber() + (i.getNumber() - t.getNumber()) * r;
    return e === "%" && (a *= 100), "".concat(a).concat(e);
  }
  update(e) {
    var {
      parent: r
    } = this, t = this.getProperty();
    if (this.initialValue || (this.initialValue = t.getString(), this.initialUnits = t.getUnits()), this.duration > this.maxDuration) {
      var i = this.getAttribute("fill").getString("remove");
      if (this.getAttribute("repeatCount").getString() === "indefinite" || this.getAttribute("repeatDur").getString() === "indefinite")
        this.duration = 0;
      else if (i === "freeze" && !this.frozen)
        this.frozen = !0, r.animationFrozen = !0, r.animationFrozenValue = t.getString();
      else if (i === "remove" && !this.removed)
        return this.removed = !0, t.setValue(r.animationFrozen ? r.animationFrozenValue : this.initialValue), !0;
      return !1;
    }
    this.duration += e;
    var a = !1;
    if (this.begin < this.duration) {
      var s = this.calcValue(), o = this.getAttribute("type");
      if (o.hasValue()) {
        var u = o.getString();
        s = "".concat(u, "(").concat(s, ")");
      }
      t.setValue(s), a = !0;
    }
    return a;
  }
  getProgress() {
    var {
      document: e,
      values: r
    } = this, t = {
      progress: (this.duration - this.begin) / (this.maxDuration - this.begin)
    };
    if (r.hasValue()) {
      var i = t.progress * (r.getValue().length - 1), a = Math.floor(i), s = Math.ceil(i);
      t.from = new D(e, "from", parseFloat(r.getValue()[a])), t.to = new D(e, "to", parseFloat(r.getValue()[s])), t.progress = (i - a) / (s - a);
    } else
      t.from = this.from, t.to = this.to;
    return t;
  }
}
class mc extends hn {
  constructor() {
    super(...arguments), this.type = "animateColor";
  }
  calcValue() {
    var {
      progress: e,
      from: r,
      to: t
    } = this.getProgress(), i = new La(r.getColor()), a = new La(t.getColor());
    if (i.ok && a.ok) {
      var s = i.r + (a.r - i.r) * e, o = i.g + (a.g - i.g) * e, u = i.b + (a.b - i.b) * e;
      return "rgb(".concat(Math.floor(s), ", ").concat(Math.floor(o), ", ").concat(Math.floor(u), ")");
    }
    return this.getAttribute("from").getColor();
  }
}
class bc extends hn {
  constructor() {
    super(...arguments), this.type = "animateTransform";
  }
  calcValue() {
    var {
      progress: e,
      from: r,
      to: t
    } = this.getProgress(), i = ye(r.getString()), a = ye(t.getString()), s = i.map((o, u) => {
      var l = a[u];
      return o + (l - o) * e;
    }).join(" ");
    return s;
  }
}
class xc extends K {
  constructor(e, r, t) {
    super(e, r, t), this.type = "font", this.glyphs = /* @__PURE__ */ Object.create(null), this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber();
    var {
      definitions: i
    } = e, {
      children: a
    } = this;
    for (var s of a)
      switch (s.type) {
        case "font-face": {
          this.fontFace = s;
          var o = s.getStyle("font-family");
          o.hasValue() && (i[o.getString()] = this);
          break;
        }
        case "missing-glyph":
          this.missingGlyph = s;
          break;
        case "glyph": {
          var u = s;
          u.arabicForm ? (this.isRTL = !0, this.isArabic = !0, typeof this.glyphs[u.unicode] > "u" && (this.glyphs[u.unicode] = /* @__PURE__ */ Object.create(null)), this.glyphs[u.unicode][u.arabicForm] = u) : this.glyphs[u.unicode] = u;
          break;
        }
      }
  }
  render() {
  }
}
class Oc extends K {
  constructor(e, r, t) {
    super(e, r, t), this.type = "font-face", this.ascent = this.getAttribute("ascent").getNumber(), this.descent = this.getAttribute("descent").getNumber(), this.unitsPerEm = this.getAttribute("units-per-em").getNumber();
  }
}
class Tc extends Y {
  constructor() {
    super(...arguments), this.type = "missing-glyph", this.horizAdvX = 0;
  }
}
class Sc extends We {
  constructor() {
    super(...arguments), this.type = "tref";
  }
  getText() {
    var e = this.getHrefAttribute().getDefinition();
    if (e) {
      var r = e.children[0];
      if (r)
        return r.getText();
    }
    return "";
  }
}
class Ec extends We {
  constructor(e, r, t) {
    super(e, r, t), this.type = "a";
    var {
      childNodes: i
    } = r, a = i[0], s = i.length > 0 && Array.from(i).every((o) => o.nodeType === 3);
    this.hasText = s, this.text = s ? this.getTextFromNode(a) : "";
  }
  getText() {
    return this.text;
  }
  renderChildren(e) {
    if (this.hasText) {
      super.renderChildren(e);
      var {
        document: r,
        x: t,
        y: i
      } = this, {
        mouse: a
      } = r.screen, s = new D(r, "fontSize", ue.parse(r.ctx.font).fontSize);
      a.isWorking() && a.checkBoundingBox(this, new Ie(t, i - s.getPixels("y"), t + this.measureText(e), i));
    } else if (this.children.length > 0) {
      var o = new ln(this.document, null);
      o.children = this.children, o.parent = this, o.render(e);
    }
  }
  onClick() {
    var {
      window: e
    } = this.document;
    e && e.open(this.getHrefAttribute().getString());
  }
  onMouseMove() {
    var e = this.document.ctx;
    e.canvas.style.cursor = "pointer";
  }
}
function Ju(n, e) {
  var r = Object.keys(n);
  if (Object.getOwnPropertySymbols) {
    var t = Object.getOwnPropertySymbols(n);
    e && (t = t.filter(function(i) {
      return Object.getOwnPropertyDescriptor(n, i).enumerable;
    })), r.push.apply(r, t);
  }
  return r;
}
function Rr(n) {
  for (var e = 1; e < arguments.length; e++) {
    var r = arguments[e] != null ? arguments[e] : {};
    e % 2 ? Ju(Object(r), !0).forEach(function(t) {
      un(n, t, r[t]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(r)) : Ju(Object(r)).forEach(function(t) {
      Object.defineProperty(n, t, Object.getOwnPropertyDescriptor(r, t));
    });
  }
  return n;
}
class Rc extends We {
  constructor(e, r, t) {
    super(e, r, t), this.type = "textPath", this.textWidth = 0, this.textHeight = 0, this.pathLength = -1, this.glyphInfo = null, this.letterSpacingCache = [], this.measuresCache = /* @__PURE__ */ new Map([["", 0]]);
    var i = this.getHrefAttribute().getDefinition();
    this.text = this.getTextFromNode(), this.dataArray = this.parsePathData(i);
  }
  getText() {
    return this.text;
  }
  path(e) {
    var {
      dataArray: r
    } = this;
    e && e.beginPath(), r.forEach((t) => {
      var {
        type: i,
        points: a
      } = t;
      switch (i) {
        case F.LINE_TO:
          e && e.lineTo(a[0], a[1]);
          break;
        case F.MOVE_TO:
          e && e.moveTo(a[0], a[1]);
          break;
        case F.CURVE_TO:
          e && e.bezierCurveTo(a[0], a[1], a[2], a[3], a[4], a[5]);
          break;
        case F.QUAD_TO:
          e && e.quadraticCurveTo(a[0], a[1], a[2], a[3]);
          break;
        case F.ARC: {
          var [s, o, u, l, h, c, v, f] = a, g = u > l ? u : l, d = u > l ? 1 : u / l, p = u > l ? l / u : 1;
          e && (e.translate(s, o), e.rotate(v), e.scale(d, p), e.arc(0, 0, g, h, h + c, !!(1 - f)), e.scale(1 / d, 1 / p), e.rotate(-v), e.translate(-s, -o));
          break;
        }
        case F.CLOSE_PATH:
          e && e.closePath();
          break;
      }
    });
  }
  renderChildren(e) {
    this.setTextData(e), e.save();
    var r = this.parent.getStyle("text-decoration").getString(), t = this.getFontSize(), {
      glyphInfo: i
    } = this, a = e.fillStyle;
    r === "underline" && e.beginPath(), i.forEach((s, o) => {
      var {
        p0: u,
        p1: l,
        rotation: h,
        text: c
      } = s;
      e.save(), e.translate(u.x, u.y), e.rotate(h), e.fillStyle && e.fillText(c, 0, 0), e.strokeStyle && e.strokeText(c, 0, 0), e.restore(), r === "underline" && (o === 0 && e.moveTo(u.x, u.y + t / 8), e.lineTo(l.x, l.y + t / 5));
    }), r === "underline" && (e.lineWidth = t / 20, e.strokeStyle = a, e.stroke(), e.closePath()), e.restore();
  }
  getLetterSpacingAt() {
    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
    return this.letterSpacingCache[e] || 0;
  }
  findSegmentToFitChar(e, r, t, i, a, s, o, u, l) {
    var h = s, c = this.measureText(e, u);
    u === " " && r === "justify" && t < i && (c += (i - t) / a), l > -1 && (h += this.getLetterSpacingAt(l));
    var v = this.textHeight / 20, f = this.getEquidistantPointOnPath(h, v, 0), g = this.getEquidistantPointOnPath(h + c, v, 0), d = {
      p0: f,
      p1: g
    }, p = f && g ? Math.atan2(g.y - f.y, g.x - f.x) : 0;
    if (o) {
      var y = Math.cos(Math.PI / 2 + p) * o, m = Math.cos(-p) * o;
      d.p0 = Rr(Rr({}, f), {}, {
        x: f.x + y,
        y: f.y + m
      }), d.p1 = Rr(Rr({}, g), {}, {
        x: g.x + y,
        y: g.y + m
      });
    }
    return h += c, {
      offset: h,
      segment: d,
      rotation: p
    };
  }
  measureText(e, r) {
    var {
      measuresCache: t
    } = this, i = r || this.getText();
    if (t.has(i))
      return t.get(i);
    var a = this.measureTargetText(e, i);
    return t.set(i, a), a;
  }
  // This method supposes what all custom fonts already loaded.
  // If some font will be loaded after this method call, <textPath> will not be rendered correctly.
  // You need to call this method manually to update glyphs cache.
  setTextData(e) {
    if (!this.glyphInfo) {
      var r = this.getText(), t = r.split(""), i = r.split(" ").length - 1, a = this.parent.getAttribute("dx").split().map((x) => x.getPixels("x")), s = this.parent.getAttribute("dy").getPixels("y"), o = this.parent.getStyle("text-anchor").getString("start"), u = this.getStyle("letter-spacing"), l = this.parent.getStyle("letter-spacing"), h = 0;
      !u.hasValue() || u.getValue() === "inherit" ? h = l.getPixels() : u.hasValue() && u.getValue() !== "initial" && u.getValue() !== "unset" && (h = u.getPixels());
      var c = [], v = r.length;
      this.letterSpacingCache = c;
      for (var f = 0; f < v; f++)
        c.push(typeof a[f] < "u" ? a[f] : h);
      var g = c.reduce((x, S, E) => E === 0 ? 0 : x + S || 0, 0), d = this.measureText(e), p = Math.max(d + g, 0);
      this.textWidth = d, this.textHeight = this.getFontSize(), this.glyphInfo = [];
      var y = this.getPathLength(), m = this.getStyle("startOffset").getNumber(0) * y, b = 0;
      (o === "middle" || o === "center") && (b = -p / 2), (o === "end" || o === "right") && (b = -p), b += m, t.forEach((x, S) => {
        var {
          offset: E,
          segment: O,
          rotation: P
        } = this.findSegmentToFitChar(e, o, p, y, i, b, s, x, S);
        b = E, !(!O.p0 || !O.p1) && this.glyphInfo.push({
          // transposeX: midpoint.x,
          // transposeY: midpoint.y,
          text: t[S],
          p0: O.p0,
          p1: O.p1,
          rotation: P
        });
      });
    }
  }
  parsePathData(e) {
    if (this.pathLength = -1, !e)
      return [];
    var r = [], {
      pathParser: t
    } = e;
    for (t.reset(); !t.isEnd(); ) {
      var {
        current: i
      } = t, a = i ? i.x : 0, s = i ? i.y : 0, o = t.next(), u = o.type, l = [];
      switch (o.type) {
        case F.MOVE_TO:
          this.pathM(t, l);
          break;
        case F.LINE_TO:
          u = this.pathL(t, l);
          break;
        case F.HORIZ_LINE_TO:
          u = this.pathH(t, l);
          break;
        case F.VERT_LINE_TO:
          u = this.pathV(t, l);
          break;
        case F.CURVE_TO:
          this.pathC(t, l);
          break;
        case F.SMOOTH_CURVE_TO:
          u = this.pathS(t, l);
          break;
        case F.QUAD_TO:
          this.pathQ(t, l);
          break;
        case F.SMOOTH_QUAD_TO:
          u = this.pathT(t, l);
          break;
        case F.ARC:
          l = this.pathA(t);
          break;
        case F.CLOSE_PATH:
          Y.pathZ(t);
          break;
      }
      o.type !== F.CLOSE_PATH ? r.push({
        type: u,
        points: l,
        start: {
          x: a,
          y: s
        },
        pathLength: this.calcLength(a, s, u, l)
      }) : r.push({
        type: F.CLOSE_PATH,
        points: [],
        pathLength: 0
      });
    }
    return r;
  }
  pathM(e, r) {
    var {
      x: t,
      y: i
    } = Y.pathM(e).point;
    r.push(t, i);
  }
  pathL(e, r) {
    var {
      x: t,
      y: i
    } = Y.pathL(e).point;
    return r.push(t, i), F.LINE_TO;
  }
  pathH(e, r) {
    var {
      x: t,
      y: i
    } = Y.pathH(e).point;
    return r.push(t, i), F.LINE_TO;
  }
  pathV(e, r) {
    var {
      x: t,
      y: i
    } = Y.pathV(e).point;
    return r.push(t, i), F.LINE_TO;
  }
  pathC(e, r) {
    var {
      point: t,
      controlPoint: i,
      currentPoint: a
    } = Y.pathC(e);
    r.push(t.x, t.y, i.x, i.y, a.x, a.y);
  }
  pathS(e, r) {
    var {
      point: t,
      controlPoint: i,
      currentPoint: a
    } = Y.pathS(e);
    return r.push(t.x, t.y, i.x, i.y, a.x, a.y), F.CURVE_TO;
  }
  pathQ(e, r) {
    var {
      controlPoint: t,
      currentPoint: i
    } = Y.pathQ(e);
    r.push(t.x, t.y, i.x, i.y);
  }
  pathT(e, r) {
    var {
      controlPoint: t,
      currentPoint: i
    } = Y.pathT(e);
    return r.push(t.x, t.y, i.x, i.y), F.QUAD_TO;
  }
  pathA(e) {
    var {
      rX: r,
      rY: t,
      sweepFlag: i,
      xAxisRotation: a,
      centp: s,
      a1: o,
      ad: u
    } = Y.pathA(e);
    return i === 0 && u > 0 && (u -= 2 * Math.PI), i === 1 && u < 0 && (u += 2 * Math.PI), [s.x, s.y, r, t, o, u, a, i];
  }
  calcLength(e, r, t, i) {
    var a = 0, s = null, o = null, u = 0;
    switch (t) {
      case F.LINE_TO:
        return this.getLineLength(e, r, i[0], i[1]);
      case F.CURVE_TO:
        for (a = 0, s = this.getPointOnCubicBezier(0, e, r, i[0], i[1], i[2], i[3], i[4], i[5]), u = 0.01; u <= 1; u += 0.01)
          o = this.getPointOnCubicBezier(u, e, r, i[0], i[1], i[2], i[3], i[4], i[5]), a += this.getLineLength(s.x, s.y, o.x, o.y), s = o;
        return a;
      case F.QUAD_TO:
        for (a = 0, s = this.getPointOnQuadraticBezier(0, e, r, i[0], i[1], i[2], i[3]), u = 0.01; u <= 1; u += 0.01)
          o = this.getPointOnQuadraticBezier(u, e, r, i[0], i[1], i[2], i[3]), a += this.getLineLength(s.x, s.y, o.x, o.y), s = o;
        return a;
      case F.ARC: {
        a = 0;
        var l = i[4], h = i[5], c = i[4] + h, v = Math.PI / 180;
        if (Math.abs(l - c) < v && (v = Math.abs(l - c)), s = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], l, 0), h < 0)
          for (u = l - v; u > c; u -= v)
            o = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], u, 0), a += this.getLineLength(s.x, s.y, o.x, o.y), s = o;
        else
          for (u = l + v; u < c; u += v)
            o = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], u, 0), a += this.getLineLength(s.x, s.y, o.x, o.y), s = o;
        return o = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], c, 0), a += this.getLineLength(s.x, s.y, o.x, o.y), a;
      }
    }
    return 0;
  }
  getPointOnLine(e, r, t, i, a) {
    var s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : r, o = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : t, u = (a - t) / (i - r + ar), l = Math.sqrt(e * e / (1 + u * u));
    i < r && (l *= -1);
    var h = u * l, c = null;
    if (i === r)
      c = {
        x: s,
        y: o + h
      };
    else if ((o - t) / (s - r + ar) === u)
      c = {
        x: s + l,
        y: o + h
      };
    else {
      var v = 0, f = 0, g = this.getLineLength(r, t, i, a);
      if (g < ar)
        return null;
      var d = (s - r) * (i - r) + (o - t) * (a - t);
      d /= g * g, v = r + d * (i - r), f = t + d * (a - t);
      var p = this.getLineLength(s, o, v, f), y = Math.sqrt(e * e - p * p);
      l = Math.sqrt(y * y / (1 + u * u)), i < r && (l *= -1), h = u * l, c = {
        x: v + l,
        y: f + h
      };
    }
    return c;
  }
  getPointOnPath(e) {
    var r = this.getPathLength(), t = 0, i = null;
    if (e < -5e-5 || e - 5e-5 > r)
      return null;
    var {
      dataArray: a
    } = this;
    for (var s of a) {
      if (s && (s.pathLength < 5e-5 || t + s.pathLength + 5e-5 < e)) {
        t += s.pathLength;
        continue;
      }
      var o = e - t, u = 0;
      switch (s.type) {
        case F.LINE_TO:
          i = this.getPointOnLine(o, s.start.x, s.start.y, s.points[0], s.points[1], s.start.x, s.start.y);
          break;
        case F.ARC: {
          var l = s.points[4], h = s.points[5], c = s.points[4] + h;
          if (u = l + o / s.pathLength * h, h < 0 && u < c || h >= 0 && u > c)
            break;
          i = this.getPointOnEllipticalArc(s.points[0], s.points[1], s.points[2], s.points[3], u, s.points[6]);
          break;
        }
        case F.CURVE_TO:
          u = o / s.pathLength, u > 1 && (u = 1), i = this.getPointOnCubicBezier(u, s.start.x, s.start.y, s.points[0], s.points[1], s.points[2], s.points[3], s.points[4], s.points[5]);
          break;
        case F.QUAD_TO:
          u = o / s.pathLength, u > 1 && (u = 1), i = this.getPointOnQuadraticBezier(u, s.start.x, s.start.y, s.points[0], s.points[1], s.points[2], s.points[3]);
          break;
      }
      if (i)
        return i;
      break;
    }
    return null;
  }
  getLineLength(e, r, t, i) {
    return Math.sqrt((t - e) * (t - e) + (i - r) * (i - r));
  }
  getPathLength() {
    return this.pathLength === -1 && (this.pathLength = this.dataArray.reduce((e, r) => r.pathLength > 0 ? e + r.pathLength : e, 0)), this.pathLength;
  }
  getPointOnCubicBezier(e, r, t, i, a, s, o, u, l) {
    var h = u * Hu(e) + s * Wu(e) + i * Yu(e) + r * Xu(e), c = l * Hu(e) + o * Wu(e) + a * Yu(e) + t * Xu(e);
    return {
      x: h,
      y: c
    };
  }
  getPointOnQuadraticBezier(e, r, t, i, a, s, o) {
    var u = s * Ku(e) + i * Qu(e) + r * Zu(e), l = o * Ku(e) + a * Qu(e) + t * Zu(e);
    return {
      x: u,
      y: l
    };
  }
  getPointOnEllipticalArc(e, r, t, i, a, s) {
    var o = Math.cos(s), u = Math.sin(s), l = {
      x: t * Math.cos(a),
      y: i * Math.sin(a)
    };
    return {
      x: e + (l.x * o - l.y * u),
      y: r + (l.x * u + l.y * o)
    };
  }
  // TODO need some optimisations. possibly build cache only for curved segments?
  buildEquidistantCache(e, r) {
    var t = this.getPathLength(), i = r || 0.25, a = e || t / 100;
    if (!this.equidistantCache || this.equidistantCache.step !== a || this.equidistantCache.precision !== i) {
      this.equidistantCache = {
        step: a,
        precision: i,
        points: []
      };
      for (var s = 0, o = 0; o <= t; o += i) {
        var u = this.getPointOnPath(o), l = this.getPointOnPath(o + i);
        !u || !l || (s += this.getLineLength(u.x, u.y, l.x, l.y), s >= a && (this.equidistantCache.points.push({
          x: u.x,
          y: u.y,
          distance: o
        }), s -= a));
      }
    }
  }
  getEquidistantPointOnPath(e, r, t) {
    if (this.buildEquidistantCache(r, t), e < 0 || e - this.getPathLength() > 5e-5)
      return null;
    var i = Math.round(e / this.getPathLength() * (this.equidistantCache.points.length - 1));
    return this.equidistantCache.points[i] || null;
  }
}
var Cc = /^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;
class wc extends ir {
  constructor(e, r, t) {
    super(e, r, t), this.type = "image", this.loaded = !1;
    var i = this.getHrefAttribute().getString();
    if (i) {
      var a = i.endsWith(".svg") || /^\s*data:image\/svg\+xml/i.test(i);
      e.images.push(this), a ? this.loadSvg(i) : this.loadImage(i), this.isSvg = a;
    }
  }
  loadImage(e) {
    var r = this;
    return Be(function* () {
      try {
        var t = yield r.document.createImage(e);
        r.image = t;
      } catch (i) {
        console.error('Error while loading image "'.concat(e, '":'), i);
      }
      r.loaded = !0;
    })();
  }
  loadSvg(e) {
    var r = this;
    return Be(function* () {
      var t = Cc.exec(e);
      if (t) {
        var i = t[5];
        t[4] === "base64" ? r.image = atob(i) : r.image = decodeURIComponent(i);
      } else
        try {
          var a = yield r.document.fetch(e), s = yield a.text();
          r.image = s;
        } catch (o) {
          console.error('Error while loading image "'.concat(e, '":'), o);
        }
      r.loaded = !0;
    })();
  }
  renderChildren(e) {
    var {
      document: r,
      image: t,
      loaded: i
    } = this, a = this.getAttribute("x").getPixels("x"), s = this.getAttribute("y").getPixels("y"), o = this.getStyle("width").getPixels("x"), u = this.getStyle("height").getPixels("y");
    if (!(!i || !t || !o || !u)) {
      if (e.save(), e.translate(a, s), this.isSvg) {
        var l = r.canvg.forkString(e, this.image, {
          ignoreMouse: !0,
          ignoreAnimation: !0,
          ignoreDimensions: !0,
          ignoreClear: !0,
          offsetX: 0,
          offsetY: 0,
          scaleWidth: o,
          scaleHeight: u
        });
        l.document.documentElement.parent = this, l.render();
      } else {
        var h = this.image;
        r.setViewBox({
          ctx: e,
          aspectRatio: this.getAttribute("preserveAspectRatio").getString(),
          width: o,
          desiredWidth: h.width,
          height: u,
          desiredHeight: h.height
        }), this.loaded && (typeof h.complete > "u" || h.complete) && e.drawImage(h, 0, 0);
      }
      e.restore();
    }
  }
  getBoundingBox() {
    var e = this.getAttribute("x").getPixels("x"), r = this.getAttribute("y").getPixels("y"), t = this.getStyle("width").getPixels("x"), i = this.getStyle("height").getPixels("y");
    return new Ie(e, r, e + t, r + i);
  }
}
class Pc extends ir {
  constructor() {
    super(...arguments), this.type = "symbol";
  }
  render(e) {
  }
}
class Ac {
  constructor(e) {
    this.document = e, this.loaded = !1, e.fonts.push(this);
  }
  load(e, r) {
    var t = this;
    return Be(function* () {
      try {
        var {
          document: i
        } = t, a = yield i.canvg.parser.load(r), s = a.getElementsByTagName("font");
        Array.from(s).forEach((o) => {
          var u = i.createElement(o);
          i.definitions[e] = u;
        });
      } catch (o) {
        console.error('Error while loading font "'.concat(r, '":'), o);
      }
      t.loaded = !0;
    })();
  }
}
class Hl extends K {
  constructor(e, r, t) {
    super(e, r, t), this.type = "style";
    var i = or(
      Array.from(r.childNodes).map((s) => s.textContent).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, "").replace(/@import.*;/g, "")
      // remove imports
    ), a = i.split("}");
    a.forEach((s) => {
      var o = s.trim();
      if (o) {
        var u = o.split("{"), l = u[0].split(","), h = u[1].split(";");
        l.forEach((c) => {
          var v = c.trim();
          if (v) {
            var f = e.styles[v] || {};
            if (h.forEach((p) => {
              var y = p.indexOf(":"), m = p.substr(0, y).trim(), b = p.substr(y + 1, p.length - y).trim();
              m && b && (f[m] = new D(e, m, b));
            }), e.styles[v] = f, e.stylesSpecificity[v] = $f(v), v === "@font-face") {
              var g = f["font-family"].getString().replace(/"|'/g, ""), d = f.src.getString().split(",");
              d.forEach((p) => {
                if (p.indexOf('format("svg")') > 0) {
                  var y = Ll(p);
                  y && new Ac(e).load(g, y);
                }
              });
            }
          }
        });
      }
    });
  }
}
Hl.parseExternalUrl = Ll;
class Ic extends ir {
  constructor() {
    super(...arguments), this.type = "use";
  }
  setContext(e) {
    super.setContext(e);
    var r = this.getAttribute("x"), t = this.getAttribute("y");
    r.hasValue() && e.translate(r.getPixels("x"), 0), t.hasValue() && e.translate(0, t.getPixels("y"));
  }
  path(e) {
    var {
      element: r
    } = this;
    r && r.path(e);
  }
  renderChildren(e) {
    var {
      document: r,
      element: t
    } = this;
    if (t) {
      var i = t;
      if (t.type === "symbol" && (i = new Tr(r, null), i.attributes.viewBox = new D(r, "viewBox", t.getAttribute("viewBox").getString()), i.attributes.preserveAspectRatio = new D(r, "preserveAspectRatio", t.getAttribute("preserveAspectRatio").getString()), i.attributes.overflow = new D(r, "overflow", t.getAttribute("overflow").getString()), i.children = t.children, t.styles.opacity = new D(r, "opacity", this.calculateOpacity())), i.type === "svg") {
        var a = this.getStyle("width", !1, !0), s = this.getStyle("height", !1, !0);
        a.hasValue() && (i.attributes.width = new D(r, "width", a.getString())), s.hasValue() && (i.attributes.height = new D(r, "height", s.getString()));
      }
      var o = i.parent;
      i.parent = this, i.render(e), i.parent = o;
    }
  }
  getBoundingBox(e) {
    var {
      element: r
    } = this;
    return r ? r.getBoundingBox(e) : null;
  }
  elementTransform() {
    var {
      document: e,
      element: r
    } = this;
    return Je.fromElement(e, r);
  }
  get element() {
    return this.cachedElement || (this.cachedElement = this.getHrefAttribute().getDefinition()), this.cachedElement;
  }
}
function Cr(n, e, r, t, i, a) {
  return n[r * t * 4 + e * 4 + a];
}
function wr(n, e, r, t, i, a, s) {
  n[r * t * 4 + e * 4 + a] = s;
}
function te(n, e, r) {
  var t = n[e];
  return t * r;
}
function je(n, e, r, t) {
  return e + Math.cos(n) * r + Math.sin(n) * t;
}
class Wl extends K {
  constructor(e, r, t) {
    super(e, r, t), this.type = "feColorMatrix";
    var i = ye(this.getAttribute("values").getString());
    switch (this.getAttribute("type").getString("matrix")) {
      // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement
      case "saturate": {
        var a = i[0];
        i = [0.213 + 0.787 * a, 0.715 - 0.715 * a, 0.072 - 0.072 * a, 0, 0, 0.213 - 0.213 * a, 0.715 + 0.285 * a, 0.072 - 0.072 * a, 0, 0, 0.213 - 0.213 * a, 0.715 - 0.715 * a, 0.072 + 0.928 * a, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
        break;
      }
      case "hueRotate": {
        var s = i[0] * Math.PI / 180;
        i = [je(s, 0.213, 0.787, -0.213), je(s, 0.715, -0.715, -0.715), je(s, 0.072, -0.072, 0.928), 0, 0, je(s, 0.213, -0.213, 0.143), je(s, 0.715, 0.285, 0.14), je(s, 0.072, -0.072, -0.283), 0, 0, je(s, 0.213, -0.213, -0.787), je(s, 0.715, -0.715, 0.715), je(s, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
        break;
      }
      case "luminanceToAlpha":
        i = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];
        break;
    }
    this.matrix = i, this.includeOpacity = this.getAttribute("includeOpacity").hasValue();
  }
  apply(e, r, t, i, a) {
    for (var {
      includeOpacity: s,
      matrix: o
    } = this, u = e.getImageData(0, 0, i, a), l = 0; l < a; l++)
      for (var h = 0; h < i; h++) {
        var c = Cr(u.data, h, l, i, a, 0), v = Cr(u.data, h, l, i, a, 1), f = Cr(u.data, h, l, i, a, 2), g = Cr(u.data, h, l, i, a, 3), d = te(o, 0, c) + te(o, 1, v) + te(o, 2, f) + te(o, 3, g) + te(o, 4, 1), p = te(o, 5, c) + te(o, 6, v) + te(o, 7, f) + te(o, 8, g) + te(o, 9, 1), y = te(o, 10, c) + te(o, 11, v) + te(o, 12, f) + te(o, 13, g) + te(o, 14, 1), m = te(o, 15, c) + te(o, 16, v) + te(o, 17, f) + te(o, 18, g) + te(o, 19, 1);
        s && (d = 0, p = 0, y = 0, m *= g / 255), wr(u.data, h, l, i, a, 0, d), wr(u.data, h, l, i, a, 1, p), wr(u.data, h, l, i, a, 2, y), wr(u.data, h, l, i, a, 3, m);
      }
    e.clearRect(0, 0, i, a), e.putImageData(u, 0, 0);
  }
}
class zr extends K {
  constructor() {
    super(...arguments), this.type = "mask";
  }
  apply(e, r) {
    var {
      document: t
    } = this, i = this.getAttribute("x").getPixels("x"), a = this.getAttribute("y").getPixels("y"), s = this.getStyle("width").getPixels("x"), o = this.getStyle("height").getPixels("y");
    if (!s && !o) {
      var u = new Ie();
      this.children.forEach((g) => {
        u.addBoundingBox(g.getBoundingBox(e));
      }), i = Math.floor(u.x1), a = Math.floor(u.y1), s = Math.floor(u.width), o = Math.floor(u.height);
    }
    var l = this.removeStyles(r, zr.ignoreStyles), h = t.createCanvas(i + s, a + o), c = h.getContext("2d");
    t.screen.setDefaults(c), this.renderChildren(c), new Wl(t, {
      nodeType: 1,
      childNodes: [],
      attributes: [{
        nodeName: "type",
        value: "luminanceToAlpha"
      }, {
        nodeName: "includeOpacity",
        value: "true"
      }]
    }).apply(c, 0, 0, i + s, a + o);
    var v = t.createCanvas(i + s, a + o), f = v.getContext("2d");
    t.screen.setDefaults(f), r.render(f), f.globalCompositeOperation = "destination-in", f.fillStyle = c.createPattern(h, "no-repeat"), f.fillRect(0, 0, i + s, a + o), e.fillStyle = f.createPattern(v, "no-repeat"), e.fillRect(0, 0, i + s, a + o), this.restoreStyles(r, l);
  }
  render(e) {
  }
}
zr.ignoreStyles = ["mask", "transform", "clip-path"];
var el = () => {
};
class Nc extends K {
  constructor() {
    super(...arguments), this.type = "clipPath";
  }
  apply(e) {
    var {
      document: r
    } = this, t = Reflect.getPrototypeOf(e), {
      beginPath: i,
      closePath: a
    } = e;
    t && (t.beginPath = el, t.closePath = el), Reflect.apply(i, e, []), this.children.forEach((s) => {
      if (!(typeof s.path > "u")) {
        var o = typeof s.elementTransform < "u" ? s.elementTransform() : null;
        o || (o = Je.fromElement(r, s)), o && o.apply(e), s.path(e), t && (t.closePath = a), o && o.unapply(e);
      }
    }), Reflect.apply(a, e, []), e.clip(), t && (t.beginPath = i, t.closePath = a);
  }
  render(e) {
  }
}
class Hr extends K {
  constructor() {
    super(...arguments), this.type = "filter";
  }
  apply(e, r) {
    var {
      document: t,
      children: i
    } = this, a = r.getBoundingBox(e);
    if (a) {
      var s = 0, o = 0;
      i.forEach((y) => {
        var m = y.extraFilterDistance || 0;
        s = Math.max(s, m), o = Math.max(o, m);
      });
      var u = Math.floor(a.width), l = Math.floor(a.height), h = u + 2 * s, c = l + 2 * o;
      if (!(h < 1 || c < 1)) {
        var v = Math.floor(a.x), f = Math.floor(a.y), g = this.removeStyles(r, Hr.ignoreStyles), d = t.createCanvas(h, c), p = d.getContext("2d");
        t.screen.setDefaults(p), p.translate(-v + s, -f + o), r.render(p), i.forEach((y) => {
          typeof y.apply == "function" && y.apply(p, 0, 0, h, c);
        }), e.drawImage(d, 0, 0, h, c, v - s, f - o, h, c), this.restoreStyles(r, g);
      }
    }
  }
  render(e) {
  }
}
Hr.ignoreStyles = ["filter", "transform", "clip-path"];
class _c extends K {
  constructor(e, r, t) {
    super(e, r, t), this.type = "feDropShadow", this.addStylesFromStyleDefinition();
  }
  apply(e, r, t, i, a) {
  }
}
class Mc extends K {
  constructor() {
    super(...arguments), this.type = "feMorphology";
  }
  apply(e, r, t, i, a) {
  }
}
class qc extends K {
  constructor() {
    super(...arguments), this.type = "feComposite";
  }
  apply(e, r, t, i, a) {
  }
}
class Dc extends K {
  constructor(e, r, t) {
    super(e, r, t), this.type = "feGaussianBlur", this.blurRadius = Math.floor(this.getAttribute("stdDeviation").getNumber()), this.extraFilterDistance = this.blurRadius;
  }
  apply(e, r, t, i, a) {
    var {
      document: s,
      blurRadius: o
    } = this, u = s.window ? s.window.document.body : null, l = e.canvas;
    l.id = s.getUniqueId(), u && (l.style.display = "none", u.appendChild(l)), Pf(l, r, t, i, a, o), u && u.removeChild(l);
  }
}
class Vc extends K {
  constructor() {
    super(...arguments), this.type = "title";
  }
}
class Lc extends K {
  constructor() {
    super(...arguments), this.type = "desc";
  }
}
var kc = {
  svg: Tr,
  rect: Gl,
  circle: uc,
  ellipse: lc,
  line: hc,
  polyline: $l,
  polygon: fc,
  path: Y,
  pattern: cc,
  marker: vc,
  defs: gc,
  linearGradient: dc,
  radialGradient: pc,
  stop: yc,
  animate: hn,
  animateColor: mc,
  animateTransform: bc,
  font: xc,
  "font-face": Oc,
  "missing-glyph": Tc,
  glyph: Ul,
  text: We,
  tspan: $r,
  tref: Sc,
  a: Ec,
  textPath: Rc,
  image: wc,
  g: ln,
  symbol: Pc,
  style: Hl,
  use: Ic,
  mask: zr,
  clipPath: Nc,
  filter: Hr,
  feDropShadow: _c,
  feMorphology: Mc,
  feComposite: qc,
  feColorMatrix: Wl,
  feGaussianBlur: Dc,
  title: Vc,
  desc: Lc
};
function rl(n, e) {
  var r = Object.keys(n);
  if (Object.getOwnPropertySymbols) {
    var t = Object.getOwnPropertySymbols(n);
    e && (t = t.filter(function(i) {
      return Object.getOwnPropertyDescriptor(n, i).enumerable;
    })), r.push.apply(r, t);
  }
  return r;
}
function jc(n) {
  for (var e = 1; e < arguments.length; e++) {
    var r = arguments[e] != null ? arguments[e] : {};
    e % 2 ? rl(Object(r), !0).forEach(function(t) {
      un(n, t, r[t]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(r)) : rl(Object(r)).forEach(function(t) {
      Object.defineProperty(n, t, Object.getOwnPropertyDescriptor(r, t));
    });
  }
  return n;
}
function Bc(n, e) {
  var r = document.createElement("canvas");
  return r.width = n, r.height = e, r;
}
function Fc(n) {
  return Ba.apply(this, arguments);
}
function Ba() {
  return Ba = Be(function* (n) {
    var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, r = document.createElement("img");
    return e && (r.crossOrigin = "Anonymous"), new Promise((t, i) => {
      r.onload = () => {
        t(r);
      }, r.onerror = (a, s, o, u, l) => {
        i(l);
      }, r.src = n;
    });
  }), Ba.apply(this, arguments);
}
class He {
  constructor(e) {
    var {
      rootEmSize: r = 12,
      emSize: t = 12,
      createCanvas: i = He.createCanvas,
      createImage: a = He.createImage,
      anonymousCrossOrigin: s
    } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    this.canvg = e, this.definitions = /* @__PURE__ */ Object.create(null), this.styles = /* @__PURE__ */ Object.create(null), this.stylesSpecificity = /* @__PURE__ */ Object.create(null), this.images = [], this.fonts = [], this.emSizeStack = [], this.uniqueId = 0, this.screen = e.screen, this.rootEmSize = r, this.emSize = t, this.createCanvas = i, this.createImage = this.bindCreateImage(a, s), this.screen.wait(this.isImagesLoaded.bind(this)), this.screen.wait(this.isFontsLoaded.bind(this));
  }
  bindCreateImage(e, r) {
    return typeof r == "boolean" ? (t, i) => e(t, typeof i == "boolean" ? i : r) : e;
  }
  get window() {
    return this.screen.window;
  }
  get fetch() {
    return this.screen.fetch;
  }
  get ctx() {
    return this.screen.ctx;
  }
  get emSize() {
    var {
      emSizeStack: e
    } = this;
    return e[e.length - 1];
  }
  set emSize(e) {
    var {
      emSizeStack: r
    } = this;
    r.push(e);
  }
  popEmSize() {
    var {
      emSizeStack: e
    } = this;
    e.pop();
  }
  getUniqueId() {
    return "canvg".concat(++this.uniqueId);
  }
  isImagesLoaded() {
    return this.images.every((e) => e.loaded);
  }
  isFontsLoaded() {
    return this.fonts.every((e) => e.loaded);
  }
  createDocumentElement(e) {
    var r = this.createElement(e.documentElement);
    return r.root = !0, r.addStylesFromStyleDefinition(), this.documentElement = r, r;
  }
  createElement(e) {
    var r = e.nodeName.replace(/^[^:]+:/, ""), t = He.elementTypes[r];
    return typeof t < "u" ? new t(this, e) : new tc(this, e);
  }
  createTextNode(e) {
    return new oc(this, e);
  }
  setViewBox(e) {
    this.screen.setViewBox(jc({
      document: this
    }, e));
  }
}
He.createCanvas = Bc;
He.createImage = Fc;
He.elementTypes = kc;
function tl(n, e) {
  var r = Object.keys(n);
  if (Object.getOwnPropertySymbols) {
    var t = Object.getOwnPropertySymbols(n);
    e && (t = t.filter(function(i) {
      return Object.getOwnPropertyDescriptor(n, i).enumerable;
    })), r.push.apply(r, t);
  }
  return r;
}
function Qe(n) {
  for (var e = 1; e < arguments.length; e++) {
    var r = arguments[e] != null ? arguments[e] : {};
    e % 2 ? tl(Object(r), !0).forEach(function(t) {
      un(n, t, r[t]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(r)) : tl(Object(r)).forEach(function(t) {
      Object.defineProperty(n, t, Object.getOwnPropertyDescriptor(r, t));
    });
  }
  return n;
}
class gr {
  /**
   * Main constructor.
   * @param ctx - Rendering context.
   * @param svg - SVG Document.
   * @param options - Rendering options.
   */
  constructor(e, r) {
    var t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    this.parser = new qa(t), this.screen = new Gr(e, t), this.options = t;
    var i = new He(this, t), a = i.createDocumentElement(r);
    this.document = i, this.documentElement = a;
  }
  /**
   * Create Canvg instance from SVG source string or URL.
   * @param ctx - Rendering context.
   * @param svg - SVG source string or URL.
   * @param options - Rendering options.
   * @returns Canvg instance.
   */
  static from(e, r) {
    var t = arguments;
    return Be(function* () {
      var i = t.length > 2 && t[2] !== void 0 ? t[2] : {}, a = new qa(i), s = yield a.parse(r);
      return new gr(e, s, i);
    })();
  }
  /**
   * Create Canvg instance from SVG source string.
   * @param ctx - Rendering context.
   * @param svg - SVG source string.
   * @param options - Rendering options.
   * @returns Canvg instance.
   */
  static fromString(e, r) {
    var t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, i = new qa(t), a = i.parseFromString(r);
    return new gr(e, a, t);
  }
  /**
   * Create new Canvg instance with inherited options.
   * @param ctx - Rendering context.
   * @param svg - SVG source string or URL.
   * @param options - Rendering options.
   * @returns Canvg instance.
   */
  fork(e, r) {
    var t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    return gr.from(e, r, Qe(Qe({}, this.options), t));
  }
  /**
   * Create new Canvg instance with inherited options.
   * @param ctx - Rendering context.
   * @param svg - SVG source string.
   * @param options - Rendering options.
   * @returns Canvg instance.
   */
  forkString(e, r) {
    var t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    return gr.fromString(e, r, Qe(Qe({}, this.options), t));
  }
  /**
   * Document is ready promise.
   * @returns Ready promise.
   */
  ready() {
    return this.screen.ready();
  }
  /**
   * Document is ready value.
   * @returns Is ready or not.
   */
  isReady() {
    return this.screen.isReady();
  }
  /**
   * Render only first frame, ignoring animations and mouse.
   * @param options - Rendering options.
   */
  render() {
    var e = arguments, r = this;
    return Be(function* () {
      var t = e.length > 0 && e[0] !== void 0 ? e[0] : {};
      r.start(Qe({
        enableRedraw: !0,
        ignoreAnimation: !0,
        ignoreMouse: !0
      }, t)), yield r.ready(), r.stop();
    })();
  }
  /**
   * Start rendering.
   * @param options - Render options.
   */
  start() {
    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, {
      documentElement: r,
      screen: t,
      options: i
    } = this;
    t.start(r, Qe(Qe({
      enableRedraw: !0
    }, i), e));
  }
  /**
   * Stop rendering.
   */
  stop() {
    this.screen.stop();
  }
  /**
   * Resize SVG to fit in given size.
   * @param width
   * @param height
   * @param preserveAspectRatio
   */
  resize(e) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : e, t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
    this.documentElement.resize(e, r, t);
  }
}
export {
  Ec as AElement,
  mc as AnimateColorElement,
  hn as AnimateElement,
  bc as AnimateTransformElement,
  Ie as BoundingBox,
  Hu as CB1,
  Wu as CB2,
  Yu as CB3,
  Xu as CB4,
  gr as Canvg,
  uc as CircleElement,
  Nc as ClipPathElement,
  gc as DefsElement,
  Lc as DescElement,
  He as Document,
  K as Element,
  lc as EllipseElement,
  Wl as FeColorMatrixElement,
  qc as FeCompositeElement,
  _c as FeDropShadowElement,
  Dc as FeGaussianBlurElement,
  Mc as FeMorphologyElement,
  Hr as FilterElement,
  ue as Font,
  xc as FontElement,
  Oc as FontFaceElement,
  ln as GElement,
  Ul as GlyphElement,
  zl as GradientElement,
  wc as ImageElement,
  hc as LineElement,
  dc as LinearGradientElement,
  vc as MarkerElement,
  zr as MaskElement,
  Bl as Matrix,
  Tc as MissingGlyphElement,
  Hf as Mouse,
  ar as PSEUDO_ZERO,
  qa as Parser,
  Y as PathElement,
  F as PathParser,
  cc as PatternElement,
  ee as Point,
  fc as PolygonElement,
  $l as PolylineElement,
  D as Property,
  Ku as QB1,
  Qu as QB2,
  Zu as QB3,
  pc as RadialGradientElement,
  Gl as RectElement,
  ir as RenderedElement,
  Kf as Rotate,
  Tr as SVGElement,
  Ac as SVGFontLoader,
  Qf as Scale,
  Gr as Screen,
  Fl as Skew,
  Zf as SkewX,
  Jf as SkewY,
  yc as StopElement,
  Hl as StyleElement,
  Pc as SymbolElement,
  Sc as TRefElement,
  $r as TSpanElement,
  We as TextElement,
  Rc as TextPathElement,
  Vc as TitleElement,
  Je as Transform,
  Xf as Translate,
  tc as UnknownElement,
  Ic as UseElement,
  zf as ViewPort,
  or as compressSpaces,
  gr as default,
  $f as getSelectorSpecificity,
  Df as normalizeAttributeName,
  Vf as normalizeColor,
  Ll as parseExternalUrl,
  Gc as presets,
  ye as toNumbers,
  _f as trimLeft,
  Mf as trimRight,
  $u as vectorMagnitude,
  zu as vectorsAngle,
  ja as vectorsRatio
};
//# sourceMappingURL=index.es-DoUy-IV2.js.map