import { _ as Ya } from "./index-d950fc13.js"; import "vue"; import "pinia"; var gr = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Gt = function(a) { return a && a.Math == Math && a; }, z = ( // eslint-disable-next-line es/no-global-this -- safe Gt(typeof globalThis == "object" && globalThis) || Gt(typeof window == "object" && window) || // eslint-disable-next-line no-restricted-globals -- safe Gt(typeof self == "object" && self) || Gt(typeof gr == "object" && gr) || // eslint-disable-next-line no-new-func -- fallback function() { return this; }() || Function("return this")() ), ut = {}, L = function(a) { try { return !!a(); } catch { return !0; } }, Pl = L, ce = !Pl(function() { return Object.defineProperty({}, 1, { get: function() { return 7; } })[1] != 7; }), Rl = L, Sr = !Rl(function() { var a = function() { }.bind(); return typeof a != "function" || a.hasOwnProperty("prototype"); }), Il = Sr, Ht = Function.prototype.call, Y = Il ? Ht.bind(Ht) : function() { return Ht.apply(Ht, arguments); }, Lo = {}, ko = {}.propertyIsEnumerable, Bo = Object.getOwnPropertyDescriptor, Nl = Bo && !ko.call({ 1: 2 }, 1); Lo.f = Nl ? function(e) { var t = Bo(this, e); return !!t && t.enumerable; } : ko; var Or = function(a, e) { return { enumerable: !(a & 1), configurable: !(a & 2), writable: !(a & 4), value: e }; }, Fo = Sr, jo = Function.prototype, Xa = jo.call, Ml = Fo && jo.bind.bind(Xa, Xa), k = Fo ? Ml : function(a) { return function() { return Xa.apply(a, arguments); }; }, Uo = k, _l = Uo({}.toString), Dl = Uo("".slice), je = function(a) { return Dl(_l(a), 8, -1); }, Vl = k, Ll = L, kl = je, ea = Object, Bl = Vl("".split), zo = Ll(function() { return !ea("z").propertyIsEnumerable(0); }) ? function(a) { return kl(a) == "String" ? Bl(a, "") : ea(a); } : ea, Ue = function(a) { return a == null; }, Fl = Ue, jl = TypeError, ge = function(a) { if (Fl(a)) throw jl("Can't call method on " + a); return a; }, Ul = zo, zl = ge, Ct = function(a) { return Ul(zl(a)); }, Wa = typeof document == "object" && document.all, Gl = typeof Wa > "u" && Wa !== void 0, Go = { all: Wa, IS_HTMLDDA: Gl }, Ho = Go, Hl = Ho.all, D = Ho.IS_HTMLDDA ? function(a) { return typeof a == "function" || a === Hl; } : function(a) { return typeof a == "function"; }, bn = D, Yo = Go, Yl = Yo.all, Te = Yo.IS_HTMLDDA ? function(a) { return typeof a == "object" ? a !== null : bn(a) || a === Yl; } : function(a) { return typeof a == "object" ? a !== null : bn(a); }, ta = z, Xl = D, Wl = function(a) { return Xl(a) ? a : void 0; }, ze = function(a, e) { return arguments.length < 2 ? Wl(ta[a]) : ta[a] && ta[a][e]; }, ql = k, Er = ql({}.isPrototypeOf), $r = typeof navigator < "u" && String(navigator.userAgent) || "", Xo = z, ra = $r, xn = Xo.process, Tn = Xo.Deno, Sn = xn && xn.versions || Tn && Tn.version, On = Sn && Sn.v8, ue, dr; On && (ue = On.split("."), dr = ue[0] > 0 && ue[0] < 4 ? 1 : +(ue[0] + ue[1])); !dr && ra && (ue = ra.match(/Edge\/(\d+)/), (!ue || ue[1] >= 74) && (ue = ra.match(/Chrome\/(\d+)/), ue && (dr = +ue[1]))); var $i = dr, En = $i, Ql = L, Wo = !!Object.getOwnPropertySymbols && !Ql(function() { var a = Symbol(); return !String(a) || !(Object(a) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances !Symbol.sham && En && En < 41; }), Kl = Wo, qo = Kl && !Symbol.sham && typeof Symbol.iterator == "symbol", Zl = ze, Jl = D, eh = Er, th = qo, rh = Object, Qo = th ? function(a) { return typeof a == "symbol"; } : function(a) { var e = Zl("Symbol"); return Jl(e) && eh(e.prototype, rh(a)); }, ah = String, wr = function(a) { try { return ah(a); } catch { return "Object"; } }, ih = D, nh = wr, sh = TypeError, Se = function(a) { if (ih(a)) return a; throw sh(nh(a) + " is not a function"); }, oh = Se, uh = Ue, lt = function(a, e) { var t = a[e]; return uh(t) ? void 0 : oh(t); }, aa = Y, ia = D, na = Te, lh = TypeError, hh = function(a, e) { var t, r; if (e === "string" && ia(t = a.toString) && !na(r = aa(t, a)) || ia(t = a.valueOf) && !na(r = aa(t, a)) || e !== "string" && ia(t = a.toString) && !na(r = aa(t, a))) return r; throw lh("Can't convert object to primitive value"); }, Ot = {}, vh = { get exports() { return Ot; }, set exports(a) { Ot = a; } }, $n = z, fh = Object.defineProperty, wi = function(a, e) { try { fh($n, a, { value: e, configurable: !0, writable: !0 }); } catch { $n[a] = e; } return e; }, ch = z, gh = wi, wn = "__core-js_shared__", dh = ch[wn] || gh(wn, {}), Ci = dh, Cn = Ci; (vh.exports = function(a, e) { return Cn[a] || (Cn[a] = e !== void 0 ? e : {}); })("versions", []).push({ version: "3.30.1", mode: "global", copyright: "© 2014-2023 Denis Pushkarev (zloirock.ru)", license: "https://github.com/zloirock/core-js/blob/v3.30.1/LICENSE", source: "https://github.com/zloirock/core-js" }); var ph = ge, yh = Object, Cr = function(a) { return yh(ph(a)); }, mh = k, bh = Cr, xh = mh({}.hasOwnProperty), le = Object.hasOwn || function(e, t) { return xh(bh(e), t); }, Th = k, Sh = 0, Oh = Math.random(), Eh = Th(1 .toString), Ko = function(a) { return "Symbol(" + (a === void 0 ? "" : a) + ")_" + Eh(++Sh + Oh, 36); }, $h = z, wh = Ot, An = le, Ch = Ko, Ah = Wo, Ph = qo, et = $h.Symbol, sa = wh("wks"), Rh = Ph ? et.for || et : et && et.withoutSetter || Ch, G = function(a) { return An(sa, a) || (sa[a] = Ah && An(et, a) ? et[a] : Rh("Symbol." + a)), sa[a]; }, Ih = Y, Pn = Te, Rn = Qo, Nh = lt, Mh = hh, _h = G, Dh = TypeError, Vh = _h("toPrimitive"), Lh = function(a, e) { if (!Pn(a) || Rn(a)) return a; var t = Nh(a, Vh), r; if (t) { if (e === void 0 && (e = "default"), r = Ih(t, a, e), !Pn(r) || Rn(r)) return r; throw Dh("Can't convert object to primitive value"); } return e === void 0 && (e = "number"), Mh(a, e); }, kh = Lh, Bh = Qo, Ai = function(a) { var e = kh(a, "string"); return Bh(e) ? e : e + ""; }, Fh = z, In = Te, qa = Fh.document, jh = In(qa) && In(qa.createElement), Ar = function(a) { return jh ? qa.createElement(a) : {}; }, Uh = ce, zh = L, Gh = Ar, Zo = !Uh && !zh(function() { return Object.defineProperty(Gh("div"), "a", { get: function() { return 7; } }).a != 7; }), Hh = ce, Yh = Y, Xh = Lo, Wh = Or, qh = Ct, Qh = Ai, Kh = le, Zh = Zo, Nn = Object.getOwnPropertyDescriptor; ut.f = Hh ? Nn : function(e, t) { if (e = qh(e), t = Qh(t), Zh) try { return Nn(e, t); } catch { } if (Kh(e, t)) return Wh(!Yh(Xh.f, e, t), e[t]); }; var de = {}, Jh = ce, ev = L, Jo = Jh && ev(function() { return Object.defineProperty(function() { }, "prototype", { value: 42, writable: !1 }).prototype != 42; }), tv = Te, rv = String, av = TypeError, K = function(a) { if (tv(a)) return a; throw av(rv(a) + " is not an object"); }, iv = ce, nv = Zo, sv = Jo, Yt = K, Mn = Ai, ov = TypeError, oa = Object.defineProperty, uv = Object.getOwnPropertyDescriptor, ua = "enumerable", la = "configurable", ha = "writable"; de.f = iv ? sv ? function(e, t, r) { if (Yt(e), t = Mn(t), Yt(r), typeof e == "function" && t === "prototype" && "value" in r && ha in r && !r[ha]) { var i = uv(e, t); i && i[ha] && (e[t] = r.value, r = { configurable: la in r ? r[la] : i[la], enumerable: ua in r ? r[ua] : i[ua], writable: !1 }); } return oa(e, t, r); } : oa : function(e, t, r) { if (Yt(e), t = Mn(t), Yt(r), nv) try { return oa(e, t, r); } catch { } if ("get" in r || "set" in r) throw ov("Accessors not supported"); return "value" in r && (e[t] = r.value), e; }; var lv = ce, hv = de, vv = Or, At = lv ? function(a, e, t) { return hv.f(a, e, vv(1, t)); } : function(a, e, t) { return a[e] = t, a; }, pr = {}, fv = { get exports() { return pr; }, set exports(a) { pr = a; } }, Qa = ce, cv = le, eu = Function.prototype, gv = Qa && Object.getOwnPropertyDescriptor, Pi = cv(eu, "name"), dv = Pi && function() { }.name === "something", pv = Pi && (!Qa || Qa && gv(eu, "name").configurable), Pr = { EXISTS: Pi, PROPER: dv, CONFIGURABLE: pv }, yv = k, mv = D, Ka = Ci, bv = yv(Function.toString); mv(Ka.inspectSource) || (Ka.inspectSource = function(a) { return bv(a); }); var Ri = Ka.inspectSource, xv = z, Tv = D, _n = xv.WeakMap, Sv = Tv(_n) && /native code/.test(String(_n)), Ov = Ot, Ev = Ko, Dn = Ov("keys"), Ii = function(a) { return Dn[a] || (Dn[a] = Ev(a)); }, Ni = {}, $v = Sv, tu = z, wv = Te, Cv = At, va = le, fa = Ci, Av = Ii, Pv = Ni, Vn = "Object already initialized", Za = tu.TypeError, Rv = tu.WeakMap, yr, Et, mr, Iv = function(a) { return mr(a) ? Et(a) : yr(a, {}); }, Nv = function(a) { return function(e) { var t; if (!wv(e) || (t = Et(e)).type !== a) throw Za("Incompatible receiver, " + a + " required"); return t; }; }; if ($v || fa.state) { var fe = fa.state || (fa.state = new Rv()); fe.get = fe.get, fe.has = fe.has, fe.set = fe.set, yr = function(a, e) { if (fe.has(a)) throw Za(Vn); return e.facade = a, fe.set(a, e), e; }, Et = function(a) { return fe.get(a) || {}; }, mr = function(a) { return fe.has(a); }; } else { var We = Av("state"); Pv[We] = !0, yr = function(a, e) { if (va(a, We)) throw Za(Vn); return e.facade = a, Cv(a, We, e), e; }, Et = function(a) { return va(a, We) ? a[We] : {}; }, mr = function(a) { return va(a, We); }; } var Rr = { set: yr, get: Et, has: mr, enforce: Iv, getterFor: Nv }, Mi = k, Mv = L, _v = D, Xt = le, Ja = ce, Dv = Pr.CONFIGURABLE, Vv = Ri, ru = Rr, Lv = ru.enforce, kv = ru.get, Ln = String, ur = Object.defineProperty, Bv = Mi("".slice), Fv = Mi("".replace), jv = Mi([].join), Uv = Ja && !Mv(function() { return ur(function() { }, "length", { value: 8 }).length !== 8; }), zv = String(String).split("String"), Gv = fv.exports = function(a, e, t) { Bv(Ln(e), 0, 7) === "Symbol(" && (e = "[" + Fv(Ln(e), /^Symbol\(([^)]*)\)/, "$1") + "]"), t && t.getter && (e = "get " + e), t && t.setter && (e = "set " + e), (!Xt(a, "name") || Dv && a.name !== e) && (Ja ? ur(a, "name", { value: e, configurable: !0 }) : a.name = e), Uv && t && Xt(t, "arity") && a.length !== t.arity && ur(a, "length", { value: t.arity }); try { t && Xt(t, "constructor") && t.constructor ? Ja && ur(a, "prototype", { writable: !1 }) : a.prototype && (a.prototype = void 0); } catch { } var r = Lv(a); return Xt(r, "source") || (r.source = jv(zv, typeof e == "string" ? e : "")), a; }; Function.prototype.toString = Gv(function() { return _v(this) && kv(this).source || Vv(this); }, "toString"); var Hv = D, Yv = de, Xv = pr, Wv = wi, Ge = function(a, e, t, r) { r || (r = {}); var i = r.enumerable, n = r.name !== void 0 ? r.name : e; if (Hv(t) && Xv(t, n, r), r.global) i ? a[e] = t : Wv(e, t); else { try { r.unsafe ? a[e] && (i = !0) : delete a[e]; } catch { } i ? a[e] = t : Yv.f(a, e, { value: t, enumerable: !1, configurable: !r.nonConfigurable, writable: !r.nonWritable }); } return a; }, au = {}, qv = Math.ceil, Qv = Math.floor, Kv = Math.trunc || function(e) { var t = +e; return (t > 0 ? Qv : qv)(t); }, Zv = Kv, Ir = function(a) { var e = +a; return e !== e || e === 0 ? 0 : Zv(e); }, Jv = Ir, ef = Math.max, tf = Math.min, iu = function(a, e) { var t = Jv(a); return t < 0 ? ef(t + e, 0) : tf(t, e); }, rf = Ir, af = Math.min, ht = function(a) { return a > 0 ? af(rf(a), 9007199254740991) : 0; }, nf = ht, Nr = function(a) { return nf(a.length); }, sf = Ct, of = iu, uf = Nr, kn = function(a) { return function(e, t, r) { var i = sf(e), n = uf(i), o = of(r, n), s; if (a && t != t) { for (; n > o; ) if (s = i[o++], s != s) return !0; } else for (; n > o; o++) if ((a || o in i) && i[o] === t) return a || o || 0; return !a && -1; }; }, nu = { // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes includes: kn(!0), // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof indexOf: kn(!1) }, lf = k, ca = le, hf = Ct, vf = nu.indexOf, ff = Ni, Bn = lf([].push), su = function(a, e) { var t = hf(a), r = 0, i = [], n; for (n in t) !ca(ff, n) && ca(t, n) && Bn(i, n); for (; e.length > r; ) ca(t, n = e[r++]) && (~vf(i, n) || Bn(i, n)); return i; }, _i = [ "constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf" ], cf = su, gf = _i, df = gf.concat("length", "prototype"); au.f = Object.getOwnPropertyNames || function(e) { return cf(e, df); }; var ou = {}; ou.f = Object.getOwnPropertySymbols; var pf = ze, yf = k, mf = au, bf = ou, xf = K, Tf = yf([].concat), Sf = pf("Reflect", "ownKeys") || function(e) { var t = mf.f(xf(e)), r = bf.f; return r ? Tf(t, r(e)) : t; }, Fn = le, Of = Sf, Ef = ut, $f = de, wf = function(a, e, t) { for (var r = Of(e), i = $f.f, n = Ef.f, o = 0; o < r.length; o++) { var s = r[o]; !Fn(a, s) && !(t && Fn(t, s)) && i(a, s, n(e, s)); } }, Cf = L, Af = D, Pf = /#|\.prototype\./, Pt = function(a, e) { var t = If[Rf(a)]; return t == Mf ? !0 : t == Nf ? !1 : Af(e) ? Cf(e) : !!e; }, Rf = Pt.normalize = function(a) { return String(a).replace(Pf, ".").toLowerCase(); }, If = Pt.data = {}, Nf = Pt.NATIVE = "N", Mf = Pt.POLYFILL = "P", uu = Pt, ga = z, _f = ut.f, Df = At, Vf = Ge, Lf = wi, kf = wf, Bf = uu, ee = function(a, e) { var t = a.target, r = a.global, i = a.stat, n, o, s, u, l, h; if (r ? o = ga : i ? o = ga[t] || Lf(t, {}) : o = (ga[t] || {}).prototype, o) for (s in e) { if (l = e[s], a.dontCallGetSet ? (h = _f(o, s), u = h && h.value) : u = o[s], n = Bf(r ? s : t + (i ? "." : "#") + s, a.forced), !n && u !== void 0) { if (typeof l == typeof u) continue; kf(l, u); } (a.sham || u && u.sham) && Df(l, "sham", !0), Vf(o, s, l, a); } }, Ff = je, Rt = typeof process < "u" && Ff(process) == "process", jf = k, Uf = Se, zf = function(a, e, t) { try { return jf(Uf(Object.getOwnPropertyDescriptor(a, e)[t])); } catch { } }, Gf = D, Hf = String, Yf = TypeError, Xf = function(a) { if (typeof a == "object" || Gf(a)) return a; throw Yf("Can't set " + Hf(a) + " as a prototype"); }, Wf = zf, qf = K, Qf = Xf, lu = Object.setPrototypeOf || ("__proto__" in {} ? function() { var a = !1, e = {}, t; try { t = Wf(Object.prototype, "__proto__", "set"), t(e, []), a = e instanceof Array; } catch { } return function(i, n) { return qf(i), Qf(n), a ? t(i, n) : i.__proto__ = n, i; }; }() : void 0), Kf = de.f, Zf = le, Jf = G, jn = Jf("toStringTag"), Di = function(a, e, t) { a && !t && (a = a.prototype), a && !Zf(a, jn) && Kf(a, jn, { configurable: !0, value: e }); }, Un = pr, ec = de, tc = function(a, e, t) { return t.get && Un(t.get, e, { getter: !0 }), t.set && Un(t.set, e, { setter: !0 }), ec.f(a, e, t); }, rc = ze, ac = tc, ic = G, nc = ce, zn = ic("species"), sc = function(a) { var e = rc(a); nc && e && !e[zn] && ac(e, zn, { configurable: !0, get: function() { return this; } }); }, oc = Er, uc = TypeError, lc = function(a, e) { if (oc(e, a)) return a; throw uc("Incorrect invocation"); }, hc = G, vc = hc("toStringTag"), hu = {}; hu[vc] = "z"; var fc = String(hu) === "[object z]", cc = fc, gc = D, lr = je, dc = G, pc = dc("toStringTag"), yc = Object, mc = lr(function() { return arguments; }()) == "Arguments", bc = function(a, e) { try { return a[e]; } catch { } }, Vi = cc ? lr : function(a) { var e, t, r; return a === void 0 ? "Undefined" : a === null ? "Null" : typeof (t = bc(e = yc(a), pc)) == "string" ? t : mc ? lr(e) : (r = lr(e)) == "Object" && gc(e.callee) ? "Arguments" : r; }, xc = k, Tc = L, vu = D, Sc = Vi, Oc = ze, Ec = Ri, fu = function() { }, $c = [], cu = Oc("Reflect", "construct"), Li = /^\s*(?:class|function)\b/, wc = xc(Li.exec), Cc = !Li.exec(fu), ct = function(e) { if (!vu(e)) return !1; try { return cu(fu, $c, e), !0; } catch { return !1; } }, gu = function(e) { if (!vu(e)) return !1; switch (Sc(e)) { case "AsyncFunction": case "GeneratorFunction": case "AsyncGeneratorFunction": return !1; } try { return Cc || !!wc(Li, Ec(e)); } catch { return !0; } }; gu.sham = !0; var Ac = !cu || Tc(function() { var a; return ct(ct.call) || !ct(Object) || !ct(function() { a = !0; }) || a; }) ? gu : ct, Pc = Ac, Rc = wr, Ic = TypeError, Nc = function(a) { if (Pc(a)) return a; throw Ic(Rc(a) + " is not a constructor"); }, Gn = K, Mc = Nc, _c = Ue, Dc = G, Vc = Dc("species"), du = function(a, e) { var t = Gn(a).constructor, r; return t === void 0 || _c(r = Gn(t)[Vc]) ? e : Mc(r); }, Lc = Sr, pu = Function.prototype, Hn = pu.apply, Yn = pu.call, ki = typeof Reflect == "object" && Reflect.apply || (Lc ? Yn.bind(Hn) : function() { return Yn.apply(Hn, arguments); }), kc = je, Bc = k, It = function(a) { if (kc(a) === "Function") return Bc(a); }, Xn = It, Fc = Se, jc = Sr, Uc = Xn(Xn.bind), Bi = function(a, e) { return Fc(a), e === void 0 ? a : jc ? Uc(a, e) : function() { return a.apply(e, arguments); }; }, zc = ze, yu = zc("document", "documentElement"), Gc = k, Hc = Gc([].slice), Yc = TypeError, Xc = function(a, e) { if (a < e) throw Yc("Not enough arguments"); return a; }, Wc = $r, mu = /(?:ipad|iphone|ipod).*applewebkit/i.test(Wc), ae = z, qc = ki, Qc = Bi, Wn = D, Kc = le, bu = L, qn = yu, Zc = Hc, Qn = Ar, Jc = Xc, eg = mu, tg = Rt, ei = ae.setImmediate, ti = ae.clearImmediate, rg = ae.process, da = ae.Dispatch, ag = ae.Function, Kn = ae.MessageChannel, ig = ae.String, pa = 0, Tt = {}, Zn = "onreadystatechange", $t, Ne, ya, ma; bu(function() { $t = ae.location; }); var Fi = function(a) { if (Kc(Tt, a)) { var e = Tt[a]; delete Tt[a], e(); } }, ba = function(a) { return function() { Fi(a); }; }, Jn = function(a) { Fi(a.data); }, es = function(a) { ae.postMessage(ig(a), $t.protocol + "//" + $t.host); }; (!ei || !ti) && (ei = function(e) { Jc(arguments.length, 1); var t = Wn(e) ? e : ag(e), r = Zc(arguments, 1); return Tt[++pa] = function() { qc(t, void 0, r); }, Ne(pa), pa; }, ti = function(e) { delete Tt[e]; }, tg ? Ne = function(a) { rg.nextTick(ba(a)); } : da && da.now ? Ne = function(a) { da.now(ba(a)); } : Kn && !eg ? (ya = new Kn(), ma = ya.port2, ya.port1.onmessage = Jn, Ne = Qc(ma.postMessage, ma)) : ae.addEventListener && Wn(ae.postMessage) && !ae.importScripts && $t && $t.protocol !== "file:" && !bu(es) ? (Ne = es, ae.addEventListener("message", Jn, !1)) : Zn in Qn("script") ? Ne = function(a) { qn.appendChild(Qn("script"))[Zn] = function() { qn.removeChild(this), Fi(a); }; } : Ne = function(a) { setTimeout(ba(a), 0); }); var xu = { set: ei, clear: ti }, Tu = function() { this.head = null, this.tail = null; }; Tu.prototype = { add: function(a) { var e = { item: a, next: null }, t = this.tail; t ? t.next = e : this.head = e, this.tail = e; }, get: function() { var a = this.head; if (a) { var e = this.head = a.next; return e === null && (this.tail = null), a.item; } } }; var Su = Tu, ng = $r, sg = /ipad|iphone|ipod/i.test(ng) && typeof Pebble < "u", og = $r, ug = /web0s(?!.*chrome)/i.test(og), ke = z, ts = Bi, lg = ut.f, xa = xu.set, hg = Su, vg = mu, fg = sg, cg = ug, Ta = Rt, rs = ke.MutationObserver || ke.WebKitMutationObserver, as = ke.document, is = ke.process, Wt = ke.Promise, ns = lg(ke, "queueMicrotask"), ri = ns && ns.value, qe, Sa, Oa, qt, ss; if (!ri) { var Qt = new hg(), Kt = function() { var a, e; for (Ta && (a = is.domain) && a.exit(); e = Qt.get(); ) try { e(); } catch (t) { throw Qt.head && qe(), t; } a && a.enter(); }; !vg && !Ta && !cg && rs && as ? (Sa = !0, Oa = as.createTextNode(""), new rs(Kt).observe(Oa, { characterData: !0 }), qe = function() { Oa.data = Sa = !Sa; }) : !fg && Wt && Wt.resolve ? (qt = Wt.resolve(void 0), qt.constructor = Wt, ss = ts(qt.then, qt), qe = function() { ss(Kt); }) : Ta ? qe = function() { is.nextTick(Kt); } : (xa = ts(xa, ke), qe = function() { xa(Kt); }), ri = function(a) { Qt.head || qe(), Qt.add(a); }; } var gg = ri, dg = function(a, e) { try { arguments.length == 1 ? console.error(a) : console.error(a, e); } catch { } }, ji = function(a) { try { return { error: !1, value: a() }; } catch (e) { return { error: !0, value: e }; } }, pg = z, Mr = pg.Promise, Ou = typeof Deno == "object" && Deno && typeof Deno.version == "object", yg = Ou, mg = Rt, bg = !yg && !mg && typeof window == "object" && typeof document == "object", xg = z, St = Mr, Tg = D, Sg = uu, Og = Ri, Eg = G, $g = bg, wg = Ou, Ea = $i; St && St.prototype; var Cg = Eg("species"), ai = !1, Eu = Tg(xg.PromiseRejectionEvent), Ag = Sg("Promise", function() { var a = Og(St), e = a !== String(St); if (!e && Ea === 66) return !0; if (!Ea || Ea < 51 || !/native code/.test(a)) { var t = new St(function(n) { n(1); }), r = function(n) { n(function() { }, function() { }); }, i = t.constructor = {}; if (i[Cg] = r, ai = t.then(function() { }) instanceof r, !ai) return !0; } return !e && ($g || wg) && !Eu; }), Nt = { CONSTRUCTOR: Ag, REJECTION_EVENT: Eu, SUBCLASSING: ai }, vt = {}, os = Se, Pg = TypeError, Rg = function(a) { var e, t; this.promise = new a(function(r, i) { if (e !== void 0 || t !== void 0) throw Pg("Bad Promise constructor"); e = r, t = i; }), this.resolve = os(e), this.reject = os(t); }; vt.f = function(a) { return new Rg(a); }; var Ig = ee, br = Rt, we = z, st = Y, us = Ge, ls = lu, Ng = Di, Mg = sc, _g = Se, hr = D, Dg = Te, Vg = lc, Lg = du, $u = xu.set, Ui = gg, kg = dg, Bg = ji, Fg = Su, wu = Rr, xr = Mr, zi = Nt, Cu = vt, _r = "Promise", Au = zi.CONSTRUCTOR, jg = zi.REJECTION_EVENT, Ug = zi.SUBCLASSING, $a = wu.getterFor(_r), zg = wu.set, Je = xr && xr.prototype, Ve = xr, Zt = Je, Pu = we.TypeError, ii = we.document, Gi = we.process, ni = Cu.f, Gg = ni, Hg = !!(ii && ii.createEvent && we.dispatchEvent), Ru = "unhandledrejection", Yg = "rejectionhandled", hs = 0, Iu = 1, Xg = 2, Hi = 1, Nu = 2, Jt, vs, Wg, fs, Mu = function(a) { var e; return Dg(a) && hr(e = a.then) ? e : !1; }, _u = function(a, e) { var t = e.value, r = e.state == Iu, i = r ? a.ok : a.fail, n = a.resolve, o = a.reject, s = a.domain, u, l, h; try { i ? (r || (e.rejection === Nu && Qg(e), e.rejection = Hi), i === !0 ? u = t : (s && s.enter(), u = i(t), s && (s.exit(), h = !0)), u === a.promise ? o(Pu("Promise-chain cycle")) : (l = Mu(u)) ? st(l, u, n, o) : n(u)) : o(t); } catch (f) { s && !h && s.exit(), o(f); } }, Du = function(a, e) { a.notified || (a.notified = !0, Ui(function() { for (var t = a.reactions, r; r = t.get(); ) _u(r, a); a.notified = !1, e && !a.rejection && qg(a); })); }, Vu = function(a, e, t) { var r, i; Hg ? (r = ii.createEvent("Event"), r.promise = e, r.reason = t, r.initEvent(a, !1, !0), we.dispatchEvent(r)) : r = { promise: e, reason: t }, !jg && (i = we["on" + a]) ? i(r) : a === Ru && kg("Unhandled promise rejection", t); }, qg = function(a) { st($u, we, function() { var e = a.facade, t = a.value, r = cs(a), i; if (r && (i = Bg(function() { br ? Gi.emit("unhandledRejection", t, e) : Vu(Ru, e, t); }), a.rejection = br || cs(a) ? Nu : Hi, i.error)) throw i.value; }); }, cs = function(a) { return a.rejection !== Hi && !a.parent; }, Qg = function(a) { st($u, we, function() { var e = a.facade; br ? Gi.emit("rejectionHandled", e) : Vu(Yg, e, a.value); }); }, tt = function(a, e, t) { return function(r) { a(e, r, t); }; }, at = function(a, e, t) { a.done || (a.done = !0, t && (a = t), a.value = e, a.state = Xg, Du(a, !0)); }, si = function(a, e, t) { if (!a.done) { a.done = !0, t && (a = t); try { if (a.facade === e) throw Pu("Promise can't be resolved itself"); var r = Mu(e); r ? Ui(function() { var i = { done: !1 }; try { st( r, e, tt(si, i, a), tt(at, i, a) ); } catch (n) { at(i, n, a); } }) : (a.value = e, a.state = Iu, Du(a, !1)); } catch (i) { at({ done: !1 }, i, a); } } }; if (Au && (Ve = function(e) { Vg(this, Zt), _g(e), st(Jt, this); var t = $a(this); try { e(tt(si, t), tt(at, t)); } catch (r) { at(t, r); } }, Zt = Ve.prototype, Jt = function(e) { zg(this, { type: _r, done: !1, notified: !1, parent: !1, reactions: new Fg(), rejection: !1, state: hs, value: void 0 }); }, Jt.prototype = us(Zt, "then", function(e, t) { var r = $a(this), i = ni(Lg(this, Ve)); return r.parent = !0, i.ok = hr(e) ? e : !0, i.fail = hr(t) && t, i.domain = br ? Gi.domain : void 0, r.state == hs ? r.reactions.add(i) : Ui(function() { _u(i, r); }), i.promise; }), vs = function() { var a = new Jt(), e = $a(a); this.promise = a, this.resolve = tt(si, e), this.reject = tt(at, e); }, Cu.f = ni = function(a) { return a === Ve || a === Wg ? new vs(a) : Gg(a); }, hr(xr) && Je !== Object.prototype)) { fs = Je.then, Ug || us(Je, "then", function(e, t) { var r = this; return new Ve(function(i, n) { st(fs, r, i, n); }).then(e, t); }, { unsafe: !0 }); try { delete Je.constructor; } catch { } ls && ls(Je, Zt); } Ig({ global: !0, constructor: !0, wrap: !0, forced: Au }, { Promise: Ve }); Ng(Ve, _r, !1); Mg(_r); var Mt = {}, Kg = G, Zg = Mt, Jg = Kg("iterator"), ed = Array.prototype, td = function(a) { return a !== void 0 && (Zg.Array === a || ed[Jg] === a); }, rd = Vi, gs = lt, ad = Ue, id = Mt, nd = G, sd = nd("iterator"), Lu = function(a) { if (!ad(a)) return gs(a, sd) || gs(a, "@@iterator") || id[rd(a)]; }, od = Y, ud = Se, ld = K, hd = wr, vd = Lu, fd = TypeError, cd = function(a, e) { var t = arguments.length < 2 ? vd(a) : e; if (ud(t)) return ld(od(t, a)); throw fd(hd(a) + " is not iterable"); }, gd = Y, ds = K, dd = lt, pd = function(a, e, t) { var r, i; ds(a); try { if (r = dd(a, "return"), !r) { if (e === "throw") throw t; return t; } r = gd(r, a); } catch (n) { i = !0, r = n; } if (e === "throw") throw t; if (i) throw r; return ds(r), t; }, yd = Bi, md = Y, bd = K, xd = wr, Td = td, Sd = Nr, ps = Er, Od = cd, Ed = Lu, ys = pd, $d = TypeError, vr = function(a, e) { this.stopped = a, this.result = e; }, ms = vr.prototype, ku = function(a, e, t) { var r = t && t.that, i = !!(t && t.AS_ENTRIES), n = !!(t && t.IS_RECORD), o = !!(t && t.IS_ITERATOR), s = !!(t && t.INTERRUPTED), u = yd(e, r), l, h, f, c, v, d, g, p = function(x) { return l && ys(l, "normal", x), new vr(!0, x); }, y = function(x) { return i ? (bd(x), s ? u(x[0], x[1], p) : u(x[0], x[1])) : s ? u(x, p) : u(x); }; if (n) l = a.iterator; else if (o) l = a; else { if (h = Ed(a), !h) throw $d(xd(a) + " is not iterable"); if (Td(h)) { for (f = 0, c = Sd(a); c > f; f++) if (v = y(a[f]), v && ps(ms, v)) return v; return new vr(!1); } l = Od(a, h); } for (d = n ? a.next : l.next; !(g = md(d, l)).done; ) { try { v = y(g.value); } catch (x) { ys(l, "throw", x); } if (typeof v == "object" && v && ps(ms, v)) return v; } return new vr(!1); }, wd = G, Bu = wd("iterator"), Fu = !1; try { var Cd = 0, bs = { next: function() { return { done: !!Cd++ }; }, return: function() { Fu = !0; } }; bs[Bu] = function() { return this; }, Array.from(bs, function() { throw 2; }); } catch { } var Ad = function(a, e) { if (!e && !Fu) return !1; var t = !1; try { var r = {}; r[Bu] = function() { return { next: function() { return { done: t = !0 }; } }; }, a(r); } catch { } return t; }, Pd = Mr, Rd = Ad, Id = Nt.CONSTRUCTOR, ju = Id || !Rd(function(a) { Pd.all(a).then(void 0, function() { }); }), Nd = ee, Md = Y, _d = Se, Dd = vt, Vd = ji, Ld = ku, kd = ju; Nd({ target: "Promise", stat: !0, forced: kd }, { all: function(e) { var t = this, r = Dd.f(t), i = r.resolve, n = r.reject, o = Vd(function() { var s = _d(t.resolve), u = [], l = 0, h = 1; Ld(e, function(f) { var c = l++, v = !1; h++, Md(s, t, f).then(function(d) { v || (v = !0, u[c] = d, --h || i(u)); }, n); }), --h || i(u); }); return o.error && n(o.value), r.promise; } }); var Bd = ee, Fd = Nt.CONSTRUCTOR, oi = Mr, jd = ze, Ud = D, zd = Ge, xs = oi && oi.prototype; Bd({ target: "Promise", proto: !0, forced: Fd, real: !0 }, { catch: function(a) { return this.then(void 0, a); } }); if (Ud(oi)) { var Ts = jd("Promise").prototype.catch; xs.catch !== Ts && zd(xs, "catch", Ts, { unsafe: !0 }); } var Gd = ee, Hd = Y, Yd = Se, Xd = vt, Wd = ji, qd = ku, Qd = ju; Gd({ target: "Promise", stat: !0, forced: Qd }, { race: function(e) { var t = this, r = Xd.f(t), i = r.reject, n = Wd(function() { var o = Yd(t.resolve); qd(e, function(s) { Hd(o, t, s).then(r.resolve, i); }); }); return n.error && i(n.value), r.promise; } }); var Kd = ee, Zd = Y, Jd = vt, ep = Nt.CONSTRUCTOR; Kd({ target: "Promise", stat: !0, forced: ep }, { reject: function(e) { var t = Jd.f(this); return Zd(t.reject, void 0, e), t.promise; } }); var tp = K, rp = Te, ap = vt, ip = function(a, e) { if (tp(a), rp(e) && e.constructor === a) return e; var t = ap.f(a), r = t.resolve; return r(e), t.promise; }, np = ee, sp = ze, op = Nt.CONSTRUCTOR, up = ip; sp("Promise"); np({ target: "Promise", stat: !0, forced: op }, { resolve: function(e) { return up(this, e); } }); function Ss(a, e, t, r, i, n, o) { try { var s = a[n](o), u = s.value; } catch (l) { t(l); return; } s.done ? e(u) : Promise.resolve(u).then(r, i); } function xe(a) { return function() { var e = this, t = arguments; return new Promise(function(r, i) { var n = a.apply(e, t); function o(u) { Ss(n, r, i, o, s, "next", u); } function s(u) { Ss(n, r, i, o, s, "throw", u); } o(void 0); }); }; } var lp = Vi, hp = String, pe = function(a) { if (lp(a) === "Symbol") throw TypeError("Cannot convert a Symbol value to a string"); return hp(a); }, vp = K, Uu = function() { var a = vp(this), e = ""; return a.hasIndices && (e += "d"), a.global && (e += "g"), a.ignoreCase && (e += "i"), a.multiline && (e += "m"), a.dotAll && (e += "s"), a.unicode && (e += "u"), a.unicodeSets && (e += "v"), a.sticky && (e += "y"), e; }, Yi = L, fp = z, Xi = fp.RegExp, Wi = Yi(function() { var a = Xi("a", "y"); return a.lastIndex = 2, a.exec("abcd") != null; }), cp = Wi || Yi(function() { return !Xi("a", "y").sticky; }), gp = Wi || Yi(function() { var a = Xi("^r", "gy"); return a.lastIndex = 2, a.exec("str") != null; }), zu = { BROKEN_CARET: gp, MISSED_STICKY: cp, UNSUPPORTED_Y: Wi }, Gu = {}, dp = su, pp = _i, yp = Object.keys || function(e) { return dp(e, pp); }, mp = ce, bp = Jo, xp = de, Tp = K, Sp = Ct, Op = yp; Gu.f = mp && !bp ? Object.defineProperties : function(e, t) { Tp(e); for (var r = Sp(t), i = Op(t), n = i.length, o = 0, s; n > o; ) xp.f(e, s = i[o++], r[s]); return e; }; var Ep = K, $p = Gu, Os = _i, wp = Ni, Cp = yu, Ap = Ar, Pp = Ii, Es = ">", $s = "<", ui = "prototype", li = "script", Hu = Pp("IE_PROTO"), wa = function() { }, Yu = function(a) { return $s + li + Es + a + $s + "/" + li + Es; }, ws = function(a) { a.write(Yu("")), a.close(); var e = a.parentWindow.Object; return a = null, e; }, Rp = function() { var a = Ap("iframe"), e = "java" + li + ":", t; return a.style.display = "none", Cp.appendChild(a), a.src = String(e), t = a.contentWindow.document, t.open(), t.write(Yu("document.F=Object")), t.close(), t.F; }, er, fr = function() { try { er = new ActiveXObject("htmlfile"); } catch { } fr = typeof document < "u" ? document.domain && er ? ws(er) : Rp() : ws(er); for (var a = Os.length; a--; ) delete fr[ui][Os[a]]; return fr(); }; wp[Hu] = !0; var qi = Object.create || function(e, t) { var r; return e !== null ? (wa[ui] = Ep(e), r = new wa(), wa[ui] = null, r[Hu] = e) : r = fr(), t === void 0 ? r : $p.f(r, t); }, Ip = L, Np = z, Mp = Np.RegExp, _p = Ip(function() { var a = Mp(".", "s"); return !(a.dotAll && a.exec(` `) && a.flags === "s"); }), Dp = L, Vp = z, Lp = Vp.RegExp, kp = Dp(function() { var a = Lp("(?b)", "g"); return a.exec("b").groups.a !== "b" || "b".replace(a, "$c") !== "bc"; }), rt = Y, Dr = k, Bp = pe, Fp = Uu, jp = zu, Up = Ot, zp = qi, Gp = Rr.get, Hp = _p, Yp = kp, Xp = Up("native-string-replace", String.prototype.replace), Tr = RegExp.prototype.exec, hi = Tr, Wp = Dr("".charAt), qp = Dr("".indexOf), Qp = Dr("".replace), Ca = Dr("".slice), vi = function() { var a = /a/, e = /b*/g; return rt(Tr, a, "a"), rt(Tr, e, "a"), a.lastIndex !== 0 || e.lastIndex !== 0; }(), Xu = jp.BROKEN_CARET, fi = /()??/.exec("")[1] !== void 0, Kp = vi || fi || Xu || Hp || Yp; Kp && (hi = function(e) { var t = this, r = Gp(t), i = Bp(e), n = r.raw, o, s, u, l, h, f, c; if (n) return n.lastIndex = t.lastIndex, o = rt(hi, n, i), t.lastIndex = n.lastIndex, o; var v = r.groups, d = Xu && t.sticky, g = rt(Fp, t), p = t.source, y = 0, x = i; if (d && (g = Qp(g, "y", ""), qp(g, "g") === -1 && (g += "g"), x = Ca(i, t.lastIndex), t.lastIndex > 0 && (!t.multiline || t.multiline && Wp(i, t.lastIndex - 1) !== ` `) && (p = "(?: " + p + ")", x = " " + x, y++), s = new RegExp("^(?:" + p + ")", g)), fi && (s = new RegExp("^" + p + "$(?!\\s)", g)), vi && (u = t.lastIndex), l = rt(Tr, d ? s : t, x), d ? l ? (l.input = Ca(l.input, y), l[0] = Ca(l[0], y), l.index = t.lastIndex, t.lastIndex += l[0].length) : t.lastIndex = 0 : vi && l && (t.lastIndex = t.global ? l.index + l[0].length : u), fi && l && l.length > 1 && rt(Xp, l[0], s, function() { for (h = 1; h < arguments.length - 2; h++) arguments[h] === void 0 && (l[h] = void 0); }), l && v) for (l.groups = f = zp(null), h = 0; h < v.length; h++) c = v[h], f[c[0]] = l[c[1]]; return l; }); var Vr = hi, Zp = ee, Cs = Vr; Zp({ target: "RegExp", proto: !0, forced: /./.exec !== Cs }, { exec: Cs }); var As = It, Ps = Ge, Jp = Vr, Rs = L, Wu = G, ey = At, ty = Wu("species"), Aa = RegExp.prototype, Qi = function(a, e, t, r) { var i = Wu(a), n = !Rs(function() { var l = {}; return l[i] = function() { return 7; }, ""[a](l) != 7; }), o = n && !Rs(function() { var l = !1, h = /a/; return a === "split" && (h = {}, h.constructor = {}, h.constructor[ty] = function() { return h; }, h.flags = "", h[i] = /./[i]), h.exec = function() { return l = !0, null; }, h[i](""), !l; }); if (!n || !o || t) { var s = As(/./[i]), u = e(i, ""[a], function(l, h, f, c, v) { var d = As(l), g = h.exec; return g === Jp || g === Aa.exec ? n && !v ? { done: !0, value: s(h, f, c) } : { done: !0, value: d(f, h, c) } : { done: !1 }; }); Ps(String.prototype, a, u[0]), Ps(Aa, i, u[1]); } r && ey(Aa[i], "sham", !0); }, Ki = k, ry = Ir, ay = pe, iy = ge, ny = Ki("".charAt), Is = Ki("".charCodeAt), sy = Ki("".slice), Ns = function(a) { return function(e, t) { var r = ay(iy(e)), i = ry(t), n = r.length, o, s; return i < 0 || i >= n ? a ? "" : void 0 : (o = Is(r, i), o < 55296 || o > 56319 || i + 1 === n || (s = Is(r, i + 1)) < 56320 || s > 57343 ? a ? ny(r, i) : o : a ? sy(r, i, i + 2) : (o - 55296 << 10) + (s - 56320) + 65536); }; }, oy = { // `String.prototype.codePointAt` method // https://tc39.es/ecma262/#sec-string.prototype.codepointat codeAt: Ns(!1), // `String.prototype.at` method // https://github.com/mathiasbynens/String.prototype.at charAt: Ns(!0) }, uy = oy.charAt, Zi = function(a, e, t) { return e + (t ? uy(a, e).length : 1); }, Ms = Y, ly = K, hy = D, vy = je, fy = Vr, cy = TypeError, Ji = function(a, e) { var t = a.exec; if (hy(t)) { var r = Ms(t, a, e); return r !== null && ly(r), r; } if (vy(a) === "RegExp") return Ms(fy, a, e); throw cy("RegExp#exec called on incompatible receiver"); }, gy = Y, dy = Qi, py = K, yy = Ue, my = ht, Pa = pe, by = ge, xy = lt, Ty = Zi, _s = Ji; dy("match", function(a, e, t) { return [ // `String.prototype.match` method // https://tc39.es/ecma262/#sec-string.prototype.match function(i) { var n = by(this), o = yy(i) ? void 0 : xy(i, a); return o ? gy(o, i, n) : new RegExp(i)[a](Pa(n)); }, // `RegExp.prototype[@@match]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@match function(r) { var i = py(this), n = Pa(r), o = t(e, i, n); if (o.done) return o.value; if (!i.global) return _s(i, n); var s = i.unicode; i.lastIndex = 0; for (var u = [], l = 0, h; (h = _s(i, n)) !== null; ) { var f = Pa(h[0]); u[l] = f, f === "" && (i.lastIndex = Ty(n, my(i.lastIndex), s)), l++; } return l === 0 ? null : u; } ]; }); var en = k, Sy = Cr, Oy = Math.floor, Ra = en("".charAt), Ey = en("".replace), Ia = en("".slice), $y = /\$([$&'`]|\d{1,2}|<[^>]*>)/g, wy = /\$([$&'`]|\d{1,2})/g, Cy = function(a, e, t, r, i, n) { var o = t + a.length, s = r.length, u = wy; return i !== void 0 && (i = Sy(i), u = $y), Ey(n, u, function(l, h) { var f; switch (Ra(h, 0)) { case "$": return "$"; case "&": return a; case "`": return Ia(e, 0, t); case "'": return Ia(e, o); case "<": f = i[Ia(h, 1, -1)]; break; default: var c = +h; if (c === 0) return l; if (c > s) { var v = Oy(c / 10); return v === 0 ? l : v <= s ? r[v - 1] === void 0 ? Ra(h, 1) : r[v - 1] + Ra(h, 1) : l; } f = r[c - 1]; } return f === void 0 ? "" : f; }); }, Ay = ki, Ds = Y, Lr = k, Py = Qi, Ry = L, Iy = K, Ny = D, My = Ue, _y = Ir, Dy = ht, Qe = pe, Vy = ge, Ly = Zi, ky = lt, By = Cy, Fy = Ji, jy = G, ci = jy("replace"), Uy = Math.max, zy = Math.min, Gy = Lr([].concat), Na = Lr([].push), Vs = Lr("".indexOf), Ls = Lr("".slice), Hy = function(a) { return a === void 0 ? a : String(a); }, Yy = function() { return "a".replace(/./, "$0") === "$0"; }(), ks = function() { return /./[ci] ? /./[ci]("a", "$0") === "" : !1; }(), Xy = !Ry(function() { var a = /./; return a.exec = function() { var e = []; return e.groups = { a: "7" }, e; }, "".replace(a, "$") !== "7"; }); Py("replace", function(a, e, t) { var r = ks ? "$" : "$0"; return [ // `String.prototype.replace` method // https://tc39.es/ecma262/#sec-string.prototype.replace function(n, o) { var s = Vy(this), u = My(n) ? void 0 : ky(n, ci); return u ? Ds(u, n, s, o) : Ds(e, Qe(s), n, o); }, // `RegExp.prototype[@@replace]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace function(i, n) { var o = Iy(this), s = Qe(i); if (typeof n == "string" && Vs(n, r) === -1 && Vs(n, "$<") === -1) { var u = t(e, o, s, n); if (u.done) return u.value; } var l = Ny(n); l || (n = Qe(n)); var h = o.global; if (h) { var f = o.unicode; o.lastIndex = 0; } for (var c = []; ; ) { var v = Fy(o, s); if (v === null || (Na(c, v), !h)) break; var d = Qe(v[0]); d === "" && (o.lastIndex = Ly(s, Dy(o.lastIndex), f)); } for (var g = "", p = 0, y = 0; y < c.length; y++) { v = c[y]; for (var x = Qe(v[0]), b = Uy(zy(_y(v.index), s.length), 0), T = [], $ = 1; $ < v.length; $++) Na(T, Hy(v[$])); var E = v.groups; if (l) { var S = Gy([x], T, b, s); E !== void 0 && Na(S, E); var C = Qe(Ay(n, void 0, S)); } else C = By(x, s, b, T, E, n); b >= p && (g += Ls(s, p, b) + C, p = b + x.length); } return g + Ls(s, p); } ]; }, !Xy || !Yy || ks); var Wy = Te, qy = je, Qy = G, Ky = Qy("match"), qu = function(a) { var e; return Wy(a) && ((e = a[Ky]) !== void 0 ? !!e : qy(a) == "RegExp"); }, Zy = qu, Jy = TypeError, tn = function(a) { if (Zy(a)) throw Jy("The method doesn't accept regular expressions"); return a; }, em = G, tm = em("match"), rn = function(a) { var e = /./; try { "/./"[a](e); } catch { try { return e[tm] = !1, "/./"[a](e); } catch { } } return !1; }, rm = ee, Qu = It, am = ut.f, im = ht, Bs = pe, nm = tn, sm = ge, om = rn, Fs = Qu("".startsWith), um = Qu("".slice), lm = Math.min, Ku = om("startsWith"), hm = !Ku && !!function() { var a = am(String.prototype, "startsWith"); return a && !a.writable; }(); rm({ target: "String", proto: !0, forced: !hm && !Ku }, { startsWith: function(e) { var t = Bs(sm(this)); nm(e); var r = im(lm(arguments.length > 1 ? arguments[1] : void 0, t.length)), i = Bs(e); return Fs ? Fs(t, i, r) : um(t, r, r + i.length) === i; } }); var vm = G, fm = qi, cm = de.f, gi = vm("unscopables"), di = Array.prototype; di[gi] == null && cm(di, gi, { configurable: !0, value: fm(null) }); var gm = function(a) { di[gi][a] = !0; }, dm = L, pm = !dm(function() { function a() { } return a.prototype.constructor = null, Object.getPrototypeOf(new a()) !== a.prototype; }), ym = le, mm = D, bm = Cr, xm = Ii, Tm = pm, js = xm("IE_PROTO"), pi = Object, Sm = pi.prototype, Zu = Tm ? pi.getPrototypeOf : function(a) { var e = bm(a); if (ym(e, js)) return e[js]; var t = e.constructor; return mm(t) && e instanceof t ? t.prototype : e instanceof pi ? Sm : null; }, Om = L, Em = D, $m = Te, Us = Zu, wm = Ge, Cm = G, yi = Cm("iterator"), Ju = !1, Be, Ma, _a; [].keys && (_a = [].keys(), "next" in _a ? (Ma = Us(Us(_a)), Ma !== Object.prototype && (Be = Ma)) : Ju = !0); var Am = !$m(Be) || Om(function() { var a = {}; return Be[yi].call(a) !== a; }); Am && (Be = {}); Em(Be[yi]) || wm(Be, yi, function() { return this; }); var el = { IteratorPrototype: Be, BUGGY_SAFARI_ITERATORS: Ju }, Pm = el.IteratorPrototype, Rm = qi, Im = Or, Nm = Di, Mm = Mt, _m = function() { return this; }, Dm = function(a, e, t, r) { var i = e + " Iterator"; return a.prototype = Rm(Pm, { next: Im(+!r, t) }), Nm(a, i, !1), Mm[i] = _m, a; }, Vm = ee, Lm = Y, tl = Pr, km = D, Bm = Dm, zs = Zu, Gs = lu, Fm = Di, jm = At, Da = Ge, Um = G, zm = Mt, rl = el, Gm = tl.PROPER, Hm = tl.CONFIGURABLE, Hs = rl.IteratorPrototype, tr = rl.BUGGY_SAFARI_ITERATORS, gt = Um("iterator"), Ys = "keys", dt = "values", Xs = "entries", Ym = function() { return this; }, Xm = function(a, e, t, r, i, n, o) { Bm(t, e, r); var s = function(y) { if (y === i && c) return c; if (!tr && y in h) return h[y]; switch (y) { case Ys: return function() { return new t(this, y); }; case dt: return function() { return new t(this, y); }; case Xs: return function() { return new t(this, y); }; } return function() { return new t(this); }; }, u = e + " Iterator", l = !1, h = a.prototype, f = h[gt] || h["@@iterator"] || i && h[i], c = !tr && f || s(i), v = e == "Array" && h.entries || f, d, g, p; if (v && (d = zs(v.call(new a())), d !== Object.prototype && d.next && (zs(d) !== Hs && (Gs ? Gs(d, Hs) : km(d[gt]) || Da(d, gt, Ym)), Fm(d, u, !0))), Gm && i == dt && f && f.name !== dt && (Hm ? jm(h, "name", dt) : (l = !0, c = function() { return Lm(f, this); })), i) if (g = { values: s(dt), keys: n ? c : s(Ys), entries: s(Xs) }, o) for (p in g) (tr || l || !(p in h)) && Da(h, p, g[p]); else Vm({ target: e, proto: !0, forced: tr || l }, g); return h[gt] !== c && Da(h, gt, c, { name: i }), zm[e] = c, g; }, Wm = function(a, e) { return { value: a, done: e }; }, qm = Ct, an = gm, Ws = Mt, al = Rr, Qm = de.f, Km = Xm, rr = Wm, Zm = ce, il = "Array Iterator", Jm = al.set, e0 = al.getterFor(il), t0 = Km(Array, "Array", function(a, e) { Jm(this, { type: il, target: qm(a), // target index: 0, // next index kind: e // kind }); }, function() { var a = e0(this), e = a.target, t = a.kind, r = a.index++; return !e || r >= e.length ? (a.target = void 0, rr(void 0, !0)) : t == "keys" ? rr(r, !1) : t == "values" ? rr(e[r], !1) : rr([r, e[r]], !1); }, "values"), qs = Ws.Arguments = Ws.Array; an("keys"); an("values"); an("entries"); if (Zm && qs.name !== "values") try { Qm(qs, "name", { value: "values" }); } catch { } var r0 = { 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 }, a0 = Ar, Va = a0("span").classList, Qs = Va && Va.constructor && Va.constructor.prototype, i0 = Qs === Object.prototype ? void 0 : Qs, Ks = z, nl = r0, n0 = i0, bt = t0, La = At, sl = G, ka = sl("iterator"), Zs = sl("toStringTag"), Ba = bt.values, ol = function(a, e) { if (a) { if (a[ka] !== Ba) try { La(a, ka, Ba); } catch { a[ka] = Ba; } if (a[Zs] || La(a, Zs, e), nl[e]) { for (var t in bt) if (a[t] !== bt[t]) try { La(a, t, bt[t]); } catch { a[t] = bt[t]; } } } }; for (var Fa in nl) ol(Ks[Fa] && Ks[Fa].prototype, Fa); ol(n0, "DOMTokenList"); function s0(a, e) { if (Ya(a) !== "object" || a === null) return a; var t = a[Symbol.toPrimitive]; if (t !== void 0) { var r = t.call(a, e || "default"); if (Ya(r) !== "object") return r; throw new TypeError("@@toPrimitive must return a primitive value."); } return (e === "string" ? String : Number)(a); } function o0(a) { var e = s0(a, "string"); return Ya(e) === "symbol" ? e : String(e); } function nn(a, e, t) { return e = o0(e), e in a ? Object.defineProperty(a, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : a[e] = t, a; } var u0 = Se, l0 = Cr, h0 = zo, v0 = Nr, f0 = TypeError, Js = function(a) { return function(e, t, r, i) { u0(t); var n = l0(e), o = h0(n), s = v0(n), u = a ? s - 1 : 0, l = a ? -1 : 1; if (r < 2) for (; ; ) { if (u in o) { i = o[u], u += l; break; } if (u += l, a ? u < 0 : s <= u) throw f0("Reduce of empty array with no initial value"); } for (; a ? u >= 0 : s > u; u += l) u in o && (i = t(i, o[u], u, n)); return i; }; }, c0 = { // `Array.prototype.reduce` method // https://tc39.es/ecma262/#sec-array.prototype.reduce left: Js(!1), // `Array.prototype.reduceRight` method // https://tc39.es/ecma262/#sec-array.prototype.reduceright right: Js(!0) }, g0 = L, ul = function(a, e) { var t = [][a]; return !!t && g0(function() { t.call(null, e || function() { return 1; }, 1); }); }, d0 = ee, p0 = c0.left, y0 = ul, eo = $i, m0 = Rt, b0 = !m0 && eo > 79 && eo < 83, x0 = b0 || !y0("reduce"); d0({ target: "Array", proto: !0, forced: x0 }, { reduce: function(e) { var t = arguments.length; return p0(this, e, t, t > 1 ? arguments[1] : void 0); } }); var T0 = ee, ll = It, S0 = ut.f, O0 = ht, to = pe, E0 = tn, $0 = ge, w0 = rn, ro = ll("".endsWith), C0 = ll("".slice), A0 = Math.min, hl = w0("endsWith"), P0 = !hl && !!function() { var a = S0(String.prototype, "endsWith"); return a && !a.writable; }(); T0({ target: "String", proto: !0, forced: !P0 && !hl }, { endsWith: function(e) { var t = to($0(this)); E0(e); var r = arguments.length > 1 ? arguments[1] : void 0, i = t.length, n = r === void 0 ? i : A0(O0(r), i), o = to(e); return ro ? ro(t, o, n) : C0(t, n - o.length, n) === o; } }); var R0 = Ai, I0 = de, N0 = Or, M0 = function(a, e, t) { var r = R0(e); r in a ? I0.f(a, r, N0(0, t)) : a[r] = t; }, ao = iu, _0 = Nr, D0 = M0, V0 = Array, L0 = Math.max, k0 = function(a, e, t) { for (var r = _0(a), i = ao(e, r), n = ao(t === void 0 ? r : t, r), o = V0(L0(n - i, 0)), s = 0; i < n; i++, s++) D0(o, s, a[i]); return o.length = s, o; }, B0 = ki, pt = Y, sn = k, F0 = Qi, j0 = K, U0 = Ue, z0 = qu, io = ge, G0 = du, H0 = Zi, Y0 = ht, ja = pe, X0 = lt, no = k0, so = Ji, W0 = Vr, q0 = zu, Q0 = L, Ke = q0.UNSUPPORTED_Y, oo = 4294967295, K0 = Math.min, vl = [].push, Z0 = sn(/./.exec), Ze = sn(vl), yt = sn("".slice), J0 = !Q0(function() { var a = /(?:)/, e = a.exec; a.exec = function() { return e.apply(this, arguments); }; var t = "ab".split(a); return t.length !== 2 || t[0] !== "a" || t[1] !== "b"; }); F0("split", function(a, e, t) { var r; return "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 ? r = function(i, n) { var o = ja(io(this)), s = n === void 0 ? oo : n >>> 0; if (s === 0) return []; if (i === void 0) return [o]; if (!z0(i)) return pt(e, o, i, s); for (var u = [], l = (i.ignoreCase ? "i" : "") + (i.multiline ? "m" : "") + (i.unicode ? "u" : "") + (i.sticky ? "y" : ""), h = 0, f = new RegExp(i.source, l + "g"), c, v, d; (c = pt(W0, f, o)) && (v = f.lastIndex, !(v > h && (Ze(u, yt(o, h, c.index)), c.length > 1 && c.index < o.length && B0(vl, u, no(c, 1)), d = c[0].length, h = v, u.length >= s))); ) f.lastIndex === c.index && f.lastIndex++; return h === o.length ? (d || !Z0(f, "")) && Ze(u, "") : Ze(u, yt(o, h)), u.length > s ? no(u, 0, s) : u; } : "0".split(void 0, 0).length ? r = function(i, n) { return i === void 0 && n === 0 ? [] : pt(e, this, i, n); } : r = e, [ // `String.prototype.split` method // https://tc39.es/ecma262/#sec-string.prototype.split function(n, o) { var s = io(this), u = U0(n) ? void 0 : X0(n, a); return u ? pt(u, n, s, o) : pt(r, ja(s), n, o); }, // `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(i, n) { var o = j0(this), s = ja(i), u = t(r, o, s, n, r !== e); if (u.done) return u.value; var l = G0(o, RegExp), h = o.unicode, f = (o.ignoreCase ? "i" : "") + (o.multiline ? "m" : "") + (o.unicode ? "u" : "") + (Ke ? "g" : "y"), c = new l(Ke ? "^(?:" + o.source + ")" : o, f), v = n === void 0 ? oo : n >>> 0; if (v === 0) return []; if (s.length === 0) return so(c, s) === null ? [s] : []; for (var d = 0, g = 0, p = []; g < s.length; ) { c.lastIndex = Ke ? 0 : g; var y = so(c, Ke ? yt(s, g) : s), x; if (y === null || (x = K0(Y0(c.lastIndex + (Ke ? g : 0)), s.length)) === d) g = H0(s, g, h); else { if (Ze(p, yt(s, d, g)), p.length === v) return p; for (var b = 1; b <= y.length - 1; b++) if (Ze(p, y[b]), p.length === v) return p; g = d = x; } } return Ze(p, yt(s, d)), p; } ]; }, !J0, Ke); var Le = {}, eb = { get exports() { return Le; }, set exports(a) { Le = a; } }, mi = {}, ar = { get exports() { return mi; }, set exports(a) { mi = a; } }; (function() { var a, e, t, r, i, n; typeof performance < "u" && performance !== null && performance.now ? ar.exports = function() { return performance.now(); } : typeof process < "u" && process !== null && process.hrtime ? (ar.exports = function() { return (a() - i) / 1e6; }, e = process.hrtime, a = function() { var o; return o = e(), o[0] * 1e9 + o[1]; }, r = a(), n = process.uptime() * 1e9, i = r - n) : Date.now ? (ar.exports = function() { return Date.now() - t; }, t = Date.now()) : (ar.exports = function() { return (/* @__PURE__ */ new Date()).getTime() - t; }, t = (/* @__PURE__ */ new Date()).getTime()); }).call(gr); var tb = mi, be = typeof window > "u" ? gr : window, ir = ["moz", "webkit"], it = "AnimationFrame", ot = be["request" + it], wt = be["cancel" + it] || be["cancelRequest" + it]; for (var mt = 0; !ot && mt < ir.length; mt++) ot = be[ir[mt] + "Request" + it], wt = be[ir[mt] + "Cancel" + it] || be[ir[mt] + "CancelRequest" + it]; if (!ot || !wt) { var Ua = 0, uo = 0, Me = [], rb = 1e3 / 60; ot = function(a) { if (Me.length === 0) { var e = tb(), t = Math.max(0, rb - (e - Ua)); Ua = t + e, setTimeout(function() { var r = Me.slice(0); Me.length = 0; for (var i = 0; i < r.length; i++) if (!r[i].cancelled) try { r[i].callback(Ua); } catch (n) { setTimeout(function() { throw n; }, 0); } }, Math.round(t)); } return Me.push({ handle: ++uo, callback: a, cancelled: !1 }), uo; }, wt = function(a) { for (var e = 0; e < Me.length; e++) Me[e].handle === a && (Me[e].cancelled = !0); }; } eb.exports = function(a) { return ot.call(be, a); }; Le.cancel = function() { wt.apply(be, arguments); }; Le.polyfill = function(a) { a || (a = be), a.requestAnimationFrame = ot, a.cancelAnimationFrame = wt; }; var fl = ` \v\f\r                 \u2028\u2029\uFEFF`, ab = k, ib = ge, nb = pe, bi = fl, lo = ab("".replace), sb = RegExp("^[" + bi + "]+"), ob = RegExp("(^|[^" + bi + "])[" + bi + "]+$"), za = function(a) { return function(e) { var t = nb(ib(e)); return a & 1 && (t = lo(t, sb, "")), a & 2 && (t = lo(t, ob, "$1")), t; }; }, ub = { // `String.prototype.{ trimLeft, trimStart }` methods // https://tc39.es/ecma262/#sec-string.prototype.trimstart start: za(1), // `String.prototype.{ trimRight, trimEnd }` methods // https://tc39.es/ecma262/#sec-string.prototype.trimend end: za(2), // `String.prototype.trim` method // https://tc39.es/ecma262/#sec-string.prototype.trim trim: za(3) }, lb = Pr.PROPER, hb = L, ho = fl, vo = "​…᠎", vb = function(a) { return hb(function() { return !!ho[a]() || vo[a]() !== vo || lb && ho[a].name !== a; }); }, fb = ee, cb = ub.trim, gb = vb; fb({ target: "String", proto: !0, forced: gb("trim") }, { trim: function() { return cb(this); } }); var xi = function(a) { this.ok = !1, this.alpha = 1, a.charAt(0) == "#" && (a = a.substr(1, 6)), a = a.replace(/ /g, ""), a = a.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" }; a = e[a] || a; for (var t = [ { 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) ]; } } ], r = 0; r < t.length; r++) { var i = t[r].re, n = t[r].process, o = i.exec(a); if (o) { var s = n(o); this.r = s[0], this.g = s[1], this.b = s[2], s.length > 3 && (this.alpha = s[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 < t.length; l++) for (var h = t[l].example, f = 0; f < h.length; f++) u[u.length] = h[f]; for (var c in e) u[u.length] = c; var v = document.createElement("ul"); v.setAttribute("id", "rgbcolor-examples"); for (var l = 0; l < u.length; l++) try { var d = document.createElement("li"), g = new RGBColor(u[l]), p = document.createElement("div"); p.style.cssText = "margin: 3px; border: 1px solid black; background:" + g.toHex() + "; color:" + g.toHex(), p.appendChild(document.createTextNode("test")); var y = document.createTextNode( " " + u[l] + " -> " + g.toRGB() + " -> " + g.toHex() ); d.appendChild(p), d.appendChild(y), v.appendChild(d); } catch { } return v; }; }, db = ee, pb = It, yb = nu.indexOf, mb = ul, Ti = pb([].indexOf), cl = !!Ti && 1 / Ti([1], 1, -0) < 0, bb = cl || !mb("indexOf"); db({ target: "Array", proto: !0, forced: bb }, { indexOf: function(e) { var t = arguments.length > 1 ? arguments[1] : void 0; return cl ? Ti(this, e, t) || 0 : yb(this, e, t); } }); var xb = ee, Tb = k, Sb = tn, Ob = ge, fo = pe, Eb = rn, $b = Tb("".indexOf); xb({ target: "String", proto: !0, forced: !Eb("includes") }, { includes: function(e) { return !!~$b( fo(Ob(this)), fo(Sb(e)), arguments.length > 1 ? arguments[1] : void 0 ); } }); var wb = je, Cb = Array.isArray || function(e) { return wb(e) == "Array"; }, Ab = ee, Pb = k, Rb = Cb, Ib = Pb([].reverse), co = [1, 2]; Ab({ target: "Array", proto: !0, forced: String(co) === String(co.reverse()) }, { reverse: function() { return Rb(this) && (this.length = this.length), Ib(this); } }); /*! ***************************************************************************** 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 gl = function(a, e) { return (gl = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, r) { t.__proto__ = r; } || function(t, r) { for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i]); })(a, e); }; function dl(a, e) { if (typeof e != "function" && e !== null) throw new TypeError("Class extends value " + String(e) + " is not a constructor or null"); function t() { this.constructor = a; } gl(a, e), a.prototype = e === null ? Object.create(e) : (t.prototype = e.prototype, new t()); } function Nb(a) { var e = ""; Array.isArray(a) || (a = [a]); for (var t = 0; t < a.length; t++) { var r = a[t]; if (r.type === m.CLOSE_PATH) e += "z"; else if (r.type === m.HORIZ_LINE_TO) e += (r.relative ? "h" : "H") + r.x; else if (r.type === m.VERT_LINE_TO) e += (r.relative ? "v" : "V") + r.y; else if (r.type === m.MOVE_TO) e += (r.relative ? "m" : "M") + r.x + " " + r.y; else if (r.type === m.LINE_TO) e += (r.relative ? "l" : "L") + r.x + " " + r.y; else if (r.type === m.CURVE_TO) e += (r.relative ? "c" : "C") + r.x1 + " " + r.y1 + " " + r.x2 + " " + r.y2 + " " + r.x + " " + r.y; else if (r.type === m.SMOOTH_CURVE_TO) e += (r.relative ? "s" : "S") + r.x2 + " " + r.y2 + " " + r.x + " " + r.y; else if (r.type === m.QUAD_TO) e += (r.relative ? "q" : "Q") + r.x1 + " " + r.y1 + " " + r.x + " " + r.y; else if (r.type === m.SMOOTH_QUAD_TO) e += (r.relative ? "t" : "T") + r.x + " " + r.y; else { if (r.type !== m.ARC) throw new Error('Unexpected command type "' + r.type + '" at index ' + t + "."); e += (r.relative ? "a" : "A") + r.rX + " " + r.rY + " " + r.xRot + " " + +r.lArcFlag + " " + +r.sweepFlag + " " + r.x + " " + r.y; } } return e; } function Si(a, e) { var t = a[0], r = a[1]; return [t * Math.cos(e) - r * Math.sin(e), t * Math.sin(e) + r * Math.cos(e)]; } function oe() { for (var a = [], e = 0; e < arguments.length; e++) a[e] = arguments[e]; for (var t = 0; t < a.length; t++) if (typeof a[t] != "number") throw new Error("assertNumbers arguments[" + t + "] is not a number. " + typeof a[t] + " == typeof " + a[t]); return !0; } var Ee = Math.PI; function Ga(a, e, t) { a.lArcFlag = a.lArcFlag === 0 ? 0 : 1, a.sweepFlag = a.sweepFlag === 0 ? 0 : 1; var r = a.rX, i = a.rY, n = a.x, o = a.y; r = Math.abs(a.rX), i = Math.abs(a.rY); var s = Si([(e - n) / 2, (t - o) / 2], -a.xRot / 180 * Ee), u = s[0], l = s[1], h = Math.pow(u, 2) / Math.pow(r, 2) + Math.pow(l, 2) / Math.pow(i, 2); 1 < h && (r *= Math.sqrt(h), i *= Math.sqrt(h)), a.rX = r, a.rY = i; var f = Math.pow(r, 2) * Math.pow(l, 2) + Math.pow(i, 2) * Math.pow(u, 2), c = (a.lArcFlag !== a.sweepFlag ? 1 : -1) * Math.sqrt(Math.max(0, (Math.pow(r, 2) * Math.pow(i, 2) - f) / f)), v = r * l / i * c, d = -i * u / r * c, g = Si([v, d], a.xRot / 180 * Ee); a.cX = g[0] + (e + n) / 2, a.cY = g[1] + (t + o) / 2, a.phi1 = Math.atan2((l - d) / i, (u - v) / r), a.phi2 = Math.atan2((-l - d) / i, (-u - v) / r), a.sweepFlag === 0 && a.phi2 > a.phi1 && (a.phi2 -= 2 * Ee), a.sweepFlag === 1 && a.phi2 < a.phi1 && (a.phi2 += 2 * Ee), a.phi1 *= 180 / Ee, a.phi2 *= 180 / Ee; } function go(a, e, t) { oe(a, e, t); var r = a * a + e * e - t * t; if (0 > r) return []; if (r === 0) return [[a * t / (a * a + e * e), e * t / (a * a + e * e)]]; var i = Math.sqrt(r); return [[(a * t + e * i) / (a * a + e * e), (e * t - a * i) / (a * a + e * e)], [(a * t - e * i) / (a * a + e * e), (e * t + a * i) / (a * a + e * e)]]; } var j, ye = Math.PI / 180; function po(a, e, t) { return (1 - t) * a + t * e; } function yo(a, e, t, r) { return a + Math.cos(r / 180 * Ee) * e + Math.sin(r / 180 * Ee) * t; } function mo(a, e, t, r) { var i = 1e-6, n = e - a, o = t - e, s = 3 * n + 3 * (r - t) - 6 * o, u = 6 * (o - n), l = 3 * n; return Math.abs(s) < i ? [-l / u] : function(h, f, c) { c === void 0 && (c = 1e-6); var v = h * h / 4 - f; if (v < -c) return []; if (v <= c) return [-h / 2]; var d = Math.sqrt(v); return [-h / 2 - d, -h / 2 + d]; }(u / s, l / s, i); } function bo(a, e, t, r, i) { var n = 1 - i; return a * (n * n * n) + e * (3 * n * n * i) + t * (3 * n * i * i) + r * (i * i * i); } (function(a) { function e() { return i(function(s, u, l) { return s.relative && (s.x1 !== void 0 && (s.x1 += u), s.y1 !== void 0 && (s.y1 += l), s.x2 !== void 0 && (s.x2 += u), s.y2 !== void 0 && (s.y2 += l), s.x !== void 0 && (s.x += u), s.y !== void 0 && (s.y += l), s.relative = !1), s; }); } function t() { var s = NaN, u = NaN, l = NaN, h = NaN; return i(function(f, c, v) { return f.type & m.SMOOTH_CURVE_TO && (f.type = m.CURVE_TO, s = isNaN(s) ? c : s, u = isNaN(u) ? v : u, f.x1 = f.relative ? c - s : 2 * c - s, f.y1 = f.relative ? v - u : 2 * v - u), f.type & m.CURVE_TO ? (s = f.relative ? c + f.x2 : f.x2, u = f.relative ? v + f.y2 : f.y2) : (s = NaN, u = NaN), f.type & m.SMOOTH_QUAD_TO && (f.type = m.QUAD_TO, l = isNaN(l) ? c : l, h = isNaN(h) ? v : h, f.x1 = f.relative ? c - l : 2 * c - l, f.y1 = f.relative ? v - h : 2 * v - h), f.type & m.QUAD_TO ? (l = f.relative ? c + f.x1 : f.x1, h = f.relative ? v + f.y1 : f.y1) : (l = NaN, h = NaN), f; }); } function r() { var s = NaN, u = NaN; return i(function(l, h, f) { if (l.type & m.SMOOTH_QUAD_TO && (l.type = m.QUAD_TO, s = isNaN(s) ? h : s, u = isNaN(u) ? f : u, l.x1 = l.relative ? h - s : 2 * h - s, l.y1 = l.relative ? f - u : 2 * f - u), l.type & m.QUAD_TO) { s = l.relative ? h + l.x1 : l.x1, u = l.relative ? f + l.y1 : l.y1; var c = l.x1, v = l.y1; l.type = m.CURVE_TO, l.x1 = ((l.relative ? 0 : h) + 2 * c) / 3, l.y1 = ((l.relative ? 0 : f) + 2 * v) / 3, l.x2 = (l.x + 2 * c) / 3, l.y2 = (l.y + 2 * v) / 3; } else s = NaN, u = NaN; return l; }); } function i(s) { var u = 0, l = 0, h = NaN, f = NaN; return function(c) { if (isNaN(h) && !(c.type & m.MOVE_TO)) throw new Error("path must start with moveto"); var v = s(c, u, l, h, f); return c.type & m.CLOSE_PATH && (u = h, l = f), c.x !== void 0 && (u = c.relative ? u + c.x : c.x), c.y !== void 0 && (l = c.relative ? l + c.y : c.y), c.type & m.MOVE_TO && (h = u, f = l), v; }; } function n(s, u, l, h, f, c) { return oe(s, u, l, h, f, c), i(function(v, d, g, p) { var y = v.x1, x = v.x2, b = v.relative && !isNaN(p), T = v.x !== void 0 ? v.x : b ? 0 : d, $ = v.y !== void 0 ? v.y : b ? 0 : g; function E(ne) { return ne * ne; } v.type & m.HORIZ_LINE_TO && u !== 0 && (v.type = m.LINE_TO, v.y = v.relative ? 0 : g), v.type & m.VERT_LINE_TO && l !== 0 && (v.type = m.LINE_TO, v.x = v.relative ? 0 : d), v.x !== void 0 && (v.x = v.x * s + $ * l + (b ? 0 : f)), v.y !== void 0 && (v.y = T * u + v.y * h + (b ? 0 : c)), v.x1 !== void 0 && (v.x1 = v.x1 * s + v.y1 * l + (b ? 0 : f)), v.y1 !== void 0 && (v.y1 = y * u + v.y1 * h + (b ? 0 : c)), v.x2 !== void 0 && (v.x2 = v.x2 * s + v.y2 * l + (b ? 0 : f)), v.y2 !== void 0 && (v.y2 = x * u + v.y2 * h + (b ? 0 : c)); var S = s * h - u * l; if (v.xRot !== void 0 && (s !== 1 || u !== 0 || l !== 0 || h !== 1)) if (S === 0) delete v.rX, delete v.rY, delete v.xRot, delete v.lArcFlag, delete v.sweepFlag, v.type = m.LINE_TO; else { var C = v.xRot * Math.PI / 180, N = Math.sin(C), _ = Math.cos(C), B = 1 / E(v.rX), P = 1 / E(v.rY), X = E(_) * B + E(N) * P, W = 2 * N * _ * (B - P), U = E(N) * B + E(_) * P, q = X * h * h - W * u * h + U * u * u, H = W * (s * h + u * l) - 2 * (X * l * h + U * s * u), Q = X * l * l - W * s * l + U * s * s, R = (Math.atan2(H, q - Q) + Math.PI) % Math.PI / 2, M = Math.sin(R), Z = Math.cos(R); v.rX = Math.abs(S) / Math.sqrt(q * E(Z) + H * M * Z + Q * E(M)), v.rY = Math.abs(S) / Math.sqrt(q * E(M) - H * M * Z + Q * E(Z)), v.xRot = 180 * R / Math.PI; } return v.sweepFlag !== void 0 && 0 > S && (v.sweepFlag = +!v.sweepFlag), v; }); } function o() { return function(s) { var u = {}; for (var l in s) u[l] = s[l]; return u; }; } a.ROUND = function(s) { function u(l) { return Math.round(l * s) / s; } return s === void 0 && (s = 1e13), oe(s), 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; }; }, a.TO_ABS = e, a.TO_REL = function() { return i(function(s, u, l) { return s.relative || (s.x1 !== void 0 && (s.x1 -= u), s.y1 !== void 0 && (s.y1 -= l), s.x2 !== void 0 && (s.x2 -= u), s.y2 !== void 0 && (s.y2 -= l), s.x !== void 0 && (s.x -= u), s.y !== void 0 && (s.y -= l), s.relative = !0), s; }); }, a.NORMALIZE_HVZ = function(s, u, l) { return s === void 0 && (s = !0), u === void 0 && (u = !0), l === void 0 && (l = !0), i(function(h, f, c, v, d) { if (isNaN(v) && !(h.type & m.MOVE_TO)) throw new Error("path must start with moveto"); return u && h.type & m.HORIZ_LINE_TO && (h.type = m.LINE_TO, h.y = h.relative ? 0 : c), l && h.type & m.VERT_LINE_TO && (h.type = m.LINE_TO, h.x = h.relative ? 0 : f), s && h.type & m.CLOSE_PATH && (h.type = m.LINE_TO, h.x = h.relative ? v - f : v, h.y = h.relative ? d - c : d), h.type & m.ARC && (h.rX === 0 || h.rY === 0) && (h.type = m.LINE_TO, delete h.rX, delete h.rY, delete h.xRot, delete h.lArcFlag, delete h.sweepFlag), h; }); }, a.NORMALIZE_ST = t, a.QT_TO_C = r, a.INFO = i, a.SANITIZE = function(s) { s === void 0 && (s = 0), oe(s); var u = NaN, l = NaN, h = NaN, f = NaN; return i(function(c, v, d, g, p) { var y = Math.abs, x = !1, b = 0, T = 0; if (c.type & m.SMOOTH_CURVE_TO && (b = isNaN(u) ? 0 : v - u, T = isNaN(l) ? 0 : d - l), c.type & (m.CURVE_TO | m.SMOOTH_CURVE_TO) ? (u = c.relative ? v + c.x2 : c.x2, l = c.relative ? d + c.y2 : c.y2) : (u = NaN, l = NaN), c.type & m.SMOOTH_QUAD_TO ? (h = isNaN(h) ? v : 2 * v - h, f = isNaN(f) ? d : 2 * d - f) : c.type & m.QUAD_TO ? (h = c.relative ? v + c.x1 : c.x1, f = c.relative ? d + c.y1 : c.y2) : (h = NaN, f = NaN), c.type & m.LINE_COMMANDS || c.type & m.ARC && (c.rX === 0 || c.rY === 0 || !c.lArcFlag) || c.type & m.CURVE_TO || c.type & m.SMOOTH_CURVE_TO || c.type & m.QUAD_TO || c.type & m.SMOOTH_QUAD_TO) { var $ = c.x === void 0 ? 0 : c.relative ? c.x : c.x - v, E = c.y === void 0 ? 0 : c.relative ? c.y : c.y - d; b = isNaN(h) ? c.x1 === void 0 ? b : c.relative ? c.x : c.x1 - v : h - v, T = isNaN(f) ? c.y1 === void 0 ? T : c.relative ? c.y : c.y1 - d : f - d; var S = c.x2 === void 0 ? 0 : c.relative ? c.x : c.x2 - v, C = c.y2 === void 0 ? 0 : c.relative ? c.y : c.y2 - d; y($) <= s && y(E) <= s && y(b) <= s && y(T) <= s && y(S) <= s && y(C) <= s && (x = !0); } return c.type & m.CLOSE_PATH && y(v - g) <= s && y(d - p) <= s && (x = !0), x ? [] : c; }); }, a.MATRIX = n, a.ROTATE = function(s, u, l) { u === void 0 && (u = 0), l === void 0 && (l = 0), oe(s, u, l); var h = Math.sin(s), f = Math.cos(s); return n(f, h, -h, f, u - u * f + l * h, l - u * h - l * f); }, a.TRANSLATE = function(s, u) { return u === void 0 && (u = 0), oe(s, u), n(1, 0, 0, 1, s, u); }, a.SCALE = function(s, u) { return u === void 0 && (u = s), oe(s, u), n(s, 0, 0, u, 0, 0); }, a.SKEW_X = function(s) { return oe(s), n(1, 0, Math.atan(s), 1, 0, 0); }, a.SKEW_Y = function(s) { return oe(s), n(1, Math.atan(s), 0, 1, 0, 0); }, a.X_AXIS_SYMMETRY = function(s) { return s === void 0 && (s = 0), oe(s), n(-1, 0, 0, 1, s, 0); }, a.Y_AXIS_SYMMETRY = function(s) { return s === void 0 && (s = 0), oe(s), n(1, 0, 0, -1, 0, s); }, a.A_TO_C = function() { return i(function(s, u, l) { return m.ARC === s.type ? function(h, f, c) { var v, d, g, p; h.cX || Ga(h, f, c); for (var y = Math.min(h.phi1, h.phi2), x = Math.max(h.phi1, h.phi2) - y, b = Math.ceil(x / 90), T = new Array(b), $ = f, E = c, S = 0; S < b; S++) { var C = po(h.phi1, h.phi2, S / b), N = po(h.phi1, h.phi2, (S + 1) / b), _ = N - C, B = 4 / 3 * Math.tan(_ * ye / 4), P = [Math.cos(C * ye) - B * Math.sin(C * ye), Math.sin(C * ye) + B * Math.cos(C * ye)], X = P[0], W = P[1], U = [Math.cos(N * ye), Math.sin(N * ye)], q = U[0], H = U[1], Q = [q + B * Math.sin(N * ye), H - B * Math.cos(N * ye)], R = Q[0], M = Q[1]; T[S] = { relative: h.relative, type: m.CURVE_TO }; var Z = function(ne, ve) { var Oe = Si([ne * h.rX, ve * h.rY], h.xRot), Ye = Oe[0], Dt = Oe[1]; return [h.cX + Ye, h.cY + Dt]; }; v = Z(X, W), T[S].x1 = v[0], T[S].y1 = v[1], d = Z(R, M), T[S].x2 = d[0], T[S].y2 = d[1], g = Z(q, H), T[S].x = g[0], T[S].y = g[1], h.relative && (T[S].x1 -= $, T[S].y1 -= E, T[S].x2 -= $, T[S].y2 -= E, T[S].x -= $, T[S].y -= E), $ = (p = [T[S].x, T[S].y])[0], E = p[1]; } return T; }(s, s.relative ? 0 : u, s.relative ? 0 : l) : s; }); }, a.ANNOTATE_ARCS = function() { return i(function(s, u, l) { return s.relative && (u = 0, l = 0), m.ARC === s.type && Ga(s, u, l), s; }); }, a.CLONE = o, a.CALCULATE_BOUNDS = function() { var s = function(c) { var v = {}; for (var d in c) v[d] = c[d]; return v; }, u = e(), l = r(), h = t(), f = i(function(c, v, d) { var g = h(l(u(s(c)))); function p(M) { M > f.maxX && (f.maxX = M), M < f.minX && (f.minX = M); } function y(M) { M > f.maxY && (f.maxY = M), M < f.minY && (f.minY = M); } if (g.type & m.DRAWING_COMMANDS && (p(v), y(d)), g.type & m.HORIZ_LINE_TO && p(g.x), g.type & m.VERT_LINE_TO && y(g.y), g.type & m.LINE_TO && (p(g.x), y(g.y)), g.type & m.CURVE_TO) { p(g.x), y(g.y); for (var x = 0, b = mo(v, g.x1, g.x2, g.x); x < b.length; x++) 0 < (R = b[x]) && 1 > R && p(bo(v, g.x1, g.x2, g.x, R)); for (var T = 0, $ = mo(d, g.y1, g.y2, g.y); T < $.length; T++) 0 < (R = $[T]) && 1 > R && y(bo(d, g.y1, g.y2, g.y, R)); } if (g.type & m.ARC) { p(g.x), y(g.y), Ga(g, v, d); for (var E = g.xRot / 180 * Math.PI, S = Math.cos(E) * g.rX, C = Math.sin(E) * g.rX, N = -Math.sin(E) * g.rY, _ = Math.cos(E) * g.rY, B = g.phi1 < g.phi2 ? [g.phi1, g.phi2] : -180 > g.phi2 ? [g.phi2 + 360, g.phi1 + 360] : [g.phi2, g.phi1], P = B[0], X = B[1], W = function(M) { var Z = M[0], ne = M[1], ve = 180 * Math.atan2(ne, Z) / Math.PI; return ve < P ? ve + 360 : ve; }, U = 0, q = go(N, -S, 0).map(W); U < q.length; U++) (R = q[U]) > P && R < X && p(yo(g.cX, S, N, R)); for (var H = 0, Q = go(_, -C, 0).map(W); H < Q.length; H++) { var R; (R = Q[H]) > P && R < X && y(yo(g.cY, C, _, R)); } } return c; }); return f.minX = 1 / 0, f.maxX = -1 / 0, f.minY = 1 / 0, f.maxY = -1 / 0, f; }; })(j || (j = {})); var se, pl = function() { function a() { } return a.prototype.round = function(e) { return this.transform(j.ROUND(e)); }, a.prototype.toAbs = function() { return this.transform(j.TO_ABS()); }, a.prototype.toRel = function() { return this.transform(j.TO_REL()); }, a.prototype.normalizeHVZ = function(e, t, r) { return this.transform(j.NORMALIZE_HVZ(e, t, r)); }, a.prototype.normalizeST = function() { return this.transform(j.NORMALIZE_ST()); }, a.prototype.qtToC = function() { return this.transform(j.QT_TO_C()); }, a.prototype.aToC = function() { return this.transform(j.A_TO_C()); }, a.prototype.sanitize = function(e) { return this.transform(j.SANITIZE(e)); }, a.prototype.translate = function(e, t) { return this.transform(j.TRANSLATE(e, t)); }, a.prototype.scale = function(e, t) { return this.transform(j.SCALE(e, t)); }, a.prototype.rotate = function(e, t, r) { return this.transform(j.ROTATE(e, t, r)); }, a.prototype.matrix = function(e, t, r, i, n, o) { return this.transform(j.MATRIX(e, t, r, i, n, o)); }, a.prototype.skewX = function(e) { return this.transform(j.SKEW_X(e)); }, a.prototype.skewY = function(e) { return this.transform(j.SKEW_Y(e)); }, a.prototype.xSymmetry = function(e) { return this.transform(j.X_AXIS_SYMMETRY(e)); }, a.prototype.ySymmetry = function(e) { return this.transform(j.Y_AXIS_SYMMETRY(e)); }, a.prototype.annotateArcs = function() { return this.transform(j.ANNOTATE_ARCS()); }, a; }(), Mb = function(a) { return a === " " || a === " " || a === "\r" || a === ` `; }, xo = function(a) { return "0".charCodeAt(0) <= a.charCodeAt(0) && a.charCodeAt(0) <= "9".charCodeAt(0); }, _b = function(a) { function e() { var t = a.call(this) || this; return t.curNumber = "", t.curCommandType = -1, t.curCommandRelative = !1, t.canParseCommandOrComma = !0, t.curNumberHasExp = !1, t.curNumberHasExpDigits = !1, t.curNumberHasDecimal = !1, t.curArgs = [], t; } return dl(e, a), e.prototype.finish = function(t) { if (t === void 0 && (t = []), this.parse(" ", t), this.curArgs.length !== 0 || !this.canParseCommandOrComma) throw new SyntaxError("Unterminated command at the path end."); return t; }, e.prototype.parse = function(t, r) { var i = this; r === void 0 && (r = []); for (var n = function(f) { r.push(f), i.curArgs.length = 0, i.canParseCommandOrComma = !0; }, o = 0; o < t.length; o++) { var s = t[o], u = !(this.curCommandType !== m.ARC || this.curArgs.length !== 3 && this.curArgs.length !== 4 || this.curNumber.length !== 1 || this.curNumber !== "0" && this.curNumber !== "1"), l = xo(s) && (this.curNumber === "0" && s === "0" || u); if (!xo(s) || l) if (s !== "e" && s !== "E") if (s !== "-" && s !== "+" || !this.curNumberHasExp || this.curNumberHasExpDigits) if (s !== "." || 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 " + o); if (this.curCommandType === m.ARC) { if (this.curArgs.length === 0 || this.curArgs.length === 1) { if (0 > h) throw new SyntaxError('Expected positive number, got "' + h + '" at index "' + o + '"'); } 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 "' + o + '"'); } this.curArgs.push(h), this.curArgs.length === Db[this.curCommandType] && (m.HORIZ_LINE_TO === this.curCommandType ? n({ type: m.HORIZ_LINE_TO, relative: this.curCommandRelative, x: h }) : m.VERT_LINE_TO === this.curCommandType ? n({ type: m.VERT_LINE_TO, relative: this.curCommandRelative, y: h }) : this.curCommandType === m.MOVE_TO || this.curCommandType === m.LINE_TO || this.curCommandType === m.SMOOTH_QUAD_TO ? (n({ type: this.curCommandType, relative: this.curCommandRelative, x: this.curArgs[0], y: this.curArgs[1] }), m.MOVE_TO === this.curCommandType && (this.curCommandType = m.LINE_TO)) : this.curCommandType === m.CURVE_TO ? n({ type: m.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 === m.SMOOTH_CURVE_TO ? n({ type: m.SMOOTH_CURVE_TO, relative: this.curCommandRelative, x2: this.curArgs[0], y2: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === m.QUAD_TO ? n({ type: m.QUAD_TO, relative: this.curCommandRelative, x1: this.curArgs[0], y1: this.curArgs[1], x: this.curArgs[2], y: this.curArgs[3] }) : this.curCommandType === m.ARC && n({ type: m.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 (!Mb(s)) if (s === "," && this.canParseCommandOrComma) this.canParseCommandOrComma = !1; else if (s !== "+" && s !== "-" && s !== ".") if (l) this.curNumber = s, this.curNumberHasDecimal = !1; else { if (this.curArgs.length !== 0) throw new SyntaxError("Unterminated command at index " + o + "."); if (!this.canParseCommandOrComma) throw new SyntaxError('Unexpected character "' + s + '" at index ' + o + ". Command cannot follow comma"); if (this.canParseCommandOrComma = !1, s !== "z" && s !== "Z") if (s === "h" || s === "H") this.curCommandType = m.HORIZ_LINE_TO, this.curCommandRelative = s === "h"; else if (s === "v" || s === "V") this.curCommandType = m.VERT_LINE_TO, this.curCommandRelative = s === "v"; else if (s === "m" || s === "M") this.curCommandType = m.MOVE_TO, this.curCommandRelative = s === "m"; else if (s === "l" || s === "L") this.curCommandType = m.LINE_TO, this.curCommandRelative = s === "l"; else if (s === "c" || s === "C") this.curCommandType = m.CURVE_TO, this.curCommandRelative = s === "c"; else if (s === "s" || s === "S") this.curCommandType = m.SMOOTH_CURVE_TO, this.curCommandRelative = s === "s"; else if (s === "q" || s === "Q") this.curCommandType = m.QUAD_TO, this.curCommandRelative = s === "q"; else if (s === "t" || s === "T") this.curCommandType = m.SMOOTH_QUAD_TO, this.curCommandRelative = s === "t"; else { if (s !== "a" && s !== "A") throw new SyntaxError('Unexpected character "' + s + '" at index ' + o + "."); this.curCommandType = m.ARC, this.curCommandRelative = s === "a"; } else r.push({ type: m.CLOSE_PATH }), this.canParseCommandOrComma = !0, this.curCommandType = -1; } else this.curNumber = s, this.curNumberHasDecimal = s === "."; } else this.curNumber += s, this.curNumberHasDecimal = !0; else this.curNumber += s; else this.curNumber += s, this.curNumberHasExp = !0; else this.curNumber += s, this.curNumberHasExpDigits = this.curNumberHasExp; } return r; }, e.prototype.transform = function(t) { return Object.create(this, { parse: { value: function(r, i) { i === void 0 && (i = []); for (var n = 0, o = Object.getPrototypeOf(this).parse.call(this, r); n < o.length; n++) { var s = o[n], u = t(s); Array.isArray(u) ? i.push.apply(i, u) : i.push(u); } return i; } } }); }, e; }(pl), m = function(a) { function e(t) { var r = a.call(this) || this; return r.commands = typeof t == "string" ? e.parse(t) : t, r; } return dl(e, a), e.prototype.encode = function() { return e.encode(this.commands); }, e.prototype.getBounds = function() { var t = j.CALCULATE_BOUNDS(); return this.transform(t), t; }, e.prototype.transform = function(t) { for (var r = [], i = 0, n = this.commands; i < n.length; i++) { var o = t(n[i]); Array.isArray(o) ? r.push.apply(r, o) : r.push(o); } return this.commands = r, this; }, e.encode = function(t) { return Nb(t); }, e.parse = function(t) { var r = new _b(), i = []; return r.parse(t, i), r.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; }(pl), Db = ((se = {})[m.MOVE_TO] = 2, se[m.LINE_TO] = 2, se[m.HORIZ_LINE_TO] = 1, se[m.VERT_LINE_TO] = 1, se[m.CLOSE_PATH] = 0, se[m.QUAD_TO] = 4, se[m.SMOOTH_QUAD_TO] = 2, se[m.CURVE_TO] = 6, se[m.SMOOTH_CURVE_TO] = 4, se[m.ARC] = 7, se), Vb = Y, Lb = le, kb = Er, Bb = Uu, To = RegExp.prototype, Fb = function(a) { var e = a.flags; return e === void 0 && !("flags" in To) && !Lb(a, "flags") && kb(To, a) ? Vb(Bb, a) : e; }, jb = Pr.PROPER, Ub = Ge, zb = K, So = pe, Gb = L, Hb = Fb, on = "toString", Yb = RegExp.prototype, yl = Yb[on], Xb = Gb(function() { return yl.call({ source: "a", flags: "b" }) != "/a/b"; }), Wb = jb && yl.name != on; (Xb || Wb) && Ub(RegExp.prototype, on, function() { var e = zb(this), t = So(e.source), r = So(Hb(e)); return "/" + t + "/" + r; }, { unsafe: !0 }); function cr(a) { return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? cr = function(e) { return typeof e; } : cr = function(e) { return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; }, cr(a); } function qb(a, e) { if (!(a instanceof e)) throw new TypeError("Cannot call a class as a function"); } var Qb = [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], Kb = [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 Zb(a, e, t, r, i) { if (typeof a == "string" && (a = document.getElementById(a)), !a || cr(a) !== "object" || !("getContext" in a)) throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!"); var n = a.getContext("2d"); try { return n.getImageData(e, t, r, i); } catch (o) { throw new Error("unable to access image data: " + o); } } function Jb(a, e, t, r, i, n) { if (!(isNaN(n) || n < 1)) { n |= 0; var o = Zb(a, e, t, r, i); o = e1(o, e, t, r, i, n), a.getContext("2d").putImageData(o, e, t); } } function e1(a, e, t, r, i, n) { for (var o = a.data, s = 2 * n + 1, u = r - 1, l = i - 1, h = n + 1, f = h * (h + 1) / 2, c = new Oo(), v = c, d, g = 1; g < s; g++) v = v.next = new Oo(), g === h && (d = v); v.next = c; for (var p = null, y = null, x = 0, b = 0, T = Qb[n], $ = Kb[n], E = 0; E < i; E++) { v = c; for (var S = o[b], C = o[b + 1], N = o[b + 2], _ = o[b + 3], B = 0; B < h; B++) v.r = S, v.g = C, v.b = N, v.a = _, v = v.next; for (var P = 0, X = 0, W = 0, U = 0, q = h * S, H = h * C, Q = h * N, R = h * _, M = f * S, Z = f * C, ne = f * N, ve = f * _, Oe = 1; Oe < h; Oe++) { var Ye = b + ((u < Oe ? u : Oe) << 2), Dt = o[Ye], hn = o[Ye + 1], vn = o[Ye + 2], fn = o[Ye + 3], Vt = h - Oe; M += (v.r = Dt) * Vt, Z += (v.g = hn) * Vt, ne += (v.b = vn) * Vt, ve += (v.a = fn) * Vt, P += Dt, X += hn, W += vn, U += fn, v = v.next; } p = c, y = d; for (var Ur = 0; Ur < r; Ur++) { var zr = ve * T >> $; if (o[b + 3] = zr, zr !== 0) { var Gr = 255 / zr; o[b] = (M * T >> $) * Gr, o[b + 1] = (Z * T >> $) * Gr, o[b + 2] = (ne * T >> $) * Gr; } else o[b] = o[b + 1] = o[b + 2] = 0; M -= q, Z -= H, ne -= Q, ve -= R, q -= p.r, H -= p.g, Q -= p.b, R -= p.a; var Ae = Ur + n + 1; Ae = x + (Ae < u ? Ae : u) << 2, P += p.r = o[Ae], X += p.g = o[Ae + 1], W += p.b = o[Ae + 2], U += p.a = o[Ae + 3], M += P, Z += X, ne += W, ve += U, p = p.next; var Lt = y, cn = Lt.r, gn = Lt.g, dn = Lt.b, pn = Lt.a; q += cn, H += gn, Q += dn, R += pn, P -= cn, X -= gn, W -= dn, U -= pn, y = y.next, b += 4; } x += r; } for (var Xe = 0; Xe < r; Xe++) { b = Xe << 2; var Pe = o[b], Re = o[b + 1], Ie = o[b + 2], te = o[b + 3], Hr = h * Pe, Yr = h * Re, Xr = h * Ie, Wr = h * te, kt = f * Pe, Bt = f * Re, Ft = f * Ie, jt = f * te; v = c; for (var yn = 0; yn < h; yn++) v.r = Pe, v.g = Re, v.b = Ie, v.a = te, v = v.next; for (var mn = r, qr = 0, Qr = 0, Kr = 0, Zr = 0, Ut = 1; Ut <= n; Ut++) { b = mn + Xe << 2; var zt = h - Ut; kt += (v.r = Pe = o[b]) * zt, Bt += (v.g = Re = o[b + 1]) * zt, Ft += (v.b = Ie = o[b + 2]) * zt, jt += (v.a = te = o[b + 3]) * zt, Zr += Pe, qr += Re, Qr += Ie, Kr += te, v = v.next, Ut < l && (mn += r); } b = Xe, p = c, y = d; for (var Jr = 0; Jr < i; Jr++) { var re = b << 2; o[re + 3] = te = jt * T >> $, te > 0 ? (te = 255 / te, o[re] = (kt * T >> $) * te, o[re + 1] = (Bt * T >> $) * te, o[re + 2] = (Ft * T >> $) * te) : o[re] = o[re + 1] = o[re + 2] = 0, kt -= Hr, Bt -= Yr, Ft -= Xr, jt -= Wr, Hr -= p.r, Yr -= p.g, Xr -= p.b, Wr -= p.a, re = Xe + ((re = Jr + h) < l ? re : l) * r << 2, kt += Zr += p.r = o[re], Bt += qr += p.g = o[re + 1], Ft += Qr += p.b = o[re + 2], jt += Kr += p.a = o[re + 3], p = p.next, Hr += Pe = y.r, Yr += Re = y.g, Xr += Ie = y.b, Wr += te = y.a, Zr -= Pe, qr -= Re, Qr -= Ie, Kr -= te, y = y.next, b += r; } } return a; } var Oo = ( /** * Set properties. */ function a() { qb(this, a), this.r = 0, this.g = 0, this.b = 0, this.a = 0, this.next = null; } ); function t1() { var { DOMParser: a } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, e = { window: null, ignoreAnimation: !0, ignoreMouse: !0, DOMParser: a, createCanvas(t, r) { return new OffscreenCanvas(t, r); }, createImage(t) { return xe(function* () { var r = yield fetch(t), i = yield r.blob(), n = yield createImageBitmap(i); return n; })(); } }; return (typeof DOMParser < "u" || typeof a > "u") && Reflect.deleteProperty(e, "DOMParser"), e; } function r1(a) { var { DOMParser: e, canvas: t, fetch: r } = a; return { window: null, ignoreAnimation: !0, ignoreMouse: !0, DOMParser: e, fetch: r, createCanvas: t.createCanvas, createImage: t.loadImage }; } var p2 = /* @__PURE__ */ Object.freeze({ __proto__: null, offscreen: t1, node: r1 }); function ft(a) { return a.replace(/(?!\u3000)\s+/gm, " "); } function a1(a) { return a.replace(/^[\n \t]+/, ""); } function i1(a) { return a.replace(/[\n \t]+$/, ""); } function ie(a) { var e = (a || "").match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm) || []; return e.map(parseFloat); } var n1 = /^[A-Z-]+$/; function s1(a) { return n1.test(a) ? a.toLowerCase() : a; } function ml(a) { var e = /url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(a) || []; return e[2] || e[3] || e[4]; } function o1(a) { if (!a.startsWith("rgb")) return a; var e = 3, t = a.replace(/\d+(\.\d+)?/g, (r, i) => e-- && i ? String(Math.round(parseFloat(r))) : r); return t; } var u1 = /(\[[^\]]+\])/g, l1 = /(#[^\s+>~.[:]+)/g, h1 = /(\.[^\s+>~.[:]+)/g, v1 = /(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi, f1 = /(:[\w-]+\([^)]*\))/gi, c1 = /(:[^\s+>~.[:]+)/g, g1 = /([^\s+>~.[:]+)/g; function _e(a, e) { var t = e.exec(a); return t ? [a.replace(e, " "), t.length] : [a, 0]; } function d1(a) { var e = [0, 0, 0], t = a.replace(/:not\(([^)]*)\)/g, " $1 ").replace(/{[\s\S]*/gm, " "), r = 0; return [t, r] = _e(t, u1), e[1] += r, [t, r] = _e(t, l1), e[0] += r, [t, r] = _e(t, h1), e[1] += r, [t, r] = _e(t, v1), e[2] += r, [t, r] = _e(t, f1), e[1] += r, [t, r] = _e(t, c1), e[1] += r, t = t.replace(/[*\s+>~]/g, " ").replace(/[#.]/g, " "), [t, r] = _e(t, g1), e[2] += r, e.join(""); } var nt = 1e-8; function Eo(a) { return Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2)); } function Oi(a, e) { return (a[0] * e[0] + a[1] * e[1]) / (Eo(a) * Eo(e)); } function $o(a, e) { return (a[0] * e[1] < a[1] * e[0] ? -1 : 1) * Math.acos(Oi(a, e)); } function wo(a) { return a * a * a; } function Co(a) { return 3 * a * a * (1 - a); } function Ao(a) { return 3 * a * (1 - a) * (1 - a); } function Po(a) { return (1 - a) * (1 - a) * (1 - a); } function Ro(a) { return a * a; } function Io(a) { return 2 * a * (1 - a); } function No(a) { return (1 - a) * (1 - a); } class O { constructor(e, t, r) { this.document = e, this.name = t, this.value = r, this.isNormalizedColor = !1; } static empty(e) { return new O(e, "EMPTY", ""); } split() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : " ", { document: t, name: r } = this; return ft(this.getString()).trim().split(e).map((i) => new O(t, r, i)); } hasValue(e) { var { value: t } = this; return t !== null && t !== "" && (e || t !== 0) && typeof t < "u"; } isString(e) { var { value: t } = this, r = typeof t == "string"; return !r || !e ? r : e.test(t); } 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: t } = this, r = parseFloat(t); return this.isString(/%$/) && (r /= 100), r; } getString(e) { return typeof e > "u" || this.hasValue() ? typeof this.value > "u" ? "" : String(this.value) : String(e); } getColor(e) { var t = this.getString(e); return this.isNormalizedColor || (this.isNormalizedColor = !0, t = o1(t), this.value = t), t; } getDpi() { return 96; } getRem() { return this.document.rootEmSize; } getEm() { return this.document.emSize; } getUnits() { return this.getString().replace(/[0-9.-]/g, ""); } getPixels(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1; if (!this.hasValue()) return 0; var [r, i] = typeof e == "boolean" ? [void 0, e] : [e], { viewPort: n } = this.document.screen; switch (!0) { case this.isString(/vmin$/): return this.getNumber() / 100 * Math.min(n.computeSize("x"), n.computeSize("y")); case this.isString(/vmax$/): return this.getNumber() / 100 * Math.max(n.computeSize("x"), n.computeSize("y")); case this.isString(/vw$/): return this.getNumber() / 100 * n.computeSize("x"); case this.isString(/vh$/): return this.getNumber() / 100 * n.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() * n.computeSize(r); default: { var o = this.getNumber(); return t && o < 1 ? o * n.computeSize(r) : o; } } } 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(), t = /#([^)'"]+)/.exec(e); return t && (t = t[1]), t || (t = e), this.document.definitions[t]; } getFillStyleDefinition(e, t) { var r = this.getDefinition(); if (!r) return null; if (typeof r.createGradient == "function") return r.createGradient(this.document.ctx, e, t); if (typeof r.createPattern == "function") { if (r.getHrefAttribute().hasValue()) { var i = r.getAttribute("patternTransform"); r = r.getHrefAttribute().getDefinition(), i.hasValue() && r.getAttribute("patternTransform", !0).setValue(i.value); } return r.createPattern(this.document.ctx, e, t); } return null; } getTextBaseline() { return this.hasValue() ? O.textBaselineMapping[this.getString()] : null; } addOpacity(e) { for (var t = this.getColor(), r = t.length, i = 0, n = 0; n < r && (t[n] === "," && i++, i !== 3); n++) ; if (e.hasValue() && this.isString() && i !== 3) { var o = new xi(t); o.ok && (o.alpha = e.getNumber(), t = o.toRGBA()); } return new O(this.document, this.name, t); } } O.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 p1 { constructor() { this.viewPorts = []; } clear() { this.viewPorts = []; } setCurrent(e, t) { this.viewPorts.push({ width: e, height: t }); } 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 V { constructor(e, t) { this.x = e, this.y = t; } static parse(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, [r = t, i = t] = ie(e); return new V(r, i); } static parseScale(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1, [r = t, i = r] = ie(e); return new V(r, i); } static parsePath(e) { for (var t = ie(e), r = t.length, i = [], n = 0; n < r; n += 2) i.push(new V(t[n], t[n + 1])); return i; } angleTo(e) { return Math.atan2(e.y - this.y, e.x - this.x); } applyTransform(e) { var { x: t, y: r } = this, i = t * e[0] + r * e[2] + e[4], n = t * e[1] + r * e[3] + e[5]; this.x = i, this.y = n; } } class y1 { 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: t, onMouseMove: r } = this, i = e.ctx.canvas; i.onclick = t, i.onmousemove = r, 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: t, eventElements: r } = this, { style: i } = e.ctx.canvas; i && (i.cursor = ""), t.forEach((n, o) => { for (var { run: s } = n, u = r[o]; u; ) s(u), u = u.parent; }), this.events = [], this.eventElements = []; } } checkPath(e, t) { if (!(!this.working || !t)) { var { events: r, eventElements: i } = this; r.forEach((n, o) => { var { x: s, y: u } = n; !i[o] && t.isPointInPath && t.isPointInPath(s, u) && (i[o] = e); }); } } checkBoundingBox(e, t) { if (!(!this.working || !t)) { var { events: r, eventElements: i } = this; r.forEach((n, o) => { var { x: s, y: u } = n; !i[o] && t.isPointInBox(s, u) && (i[o] = e); }); } } mapXY(e, t) { for (var { window: r, ctx: i } = this.screen, n = new V(e, t), o = i.canvas; o; ) n.x -= o.offsetLeft, n.y -= o.offsetTop, o = o.offsetParent; return r.scrollX && (n.x += r.scrollX), r.scrollY && (n.y += r.scrollY), n; } onClick(e) { var { x: t, y: r } = this.mapXY(e.clientX, e.clientY); this.events.push({ type: "onclick", x: t, y: r, run(i) { i.onClick && i.onClick(); } }); } onMouseMove(e) { var { x: t, y: r } = this.mapXY(e.clientX, e.clientY); this.events.push({ type: "onmousemove", x: t, y: r, run(i) { i.onMouseMove && i.onMouseMove(); } }); } } var bl = typeof window < "u" ? window : null, xl = typeof fetch < "u" ? fetch.bind(void 0) : null; class kr { constructor(e) { var { fetch: t = xl, window: r = bl } = 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 p1(), this.mouse = new y1(this), this.animations = [], this.waits = [], this.frameDuration = 0, this.isReadyLock = !1, this.isFirstRender = !0, this.intervalId = null, this.window = r, this.fetch = t; } 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((t) => t()); 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: t, ctx: r, aspectRatio: i, width: n, desiredWidth: o, height: s, desiredHeight: u, minX: l = 0, minY: h = 0, refX: f, refY: c, clip: v = !1, clipX: d = 0, clipY: g = 0 } = e, p = ft(i).replace(/^defer\s/, ""), [y, x] = p.split(" "), b = y || "xMidYMid", T = x || "meet", $ = n / o, E = s / u, S = Math.min($, E), C = Math.max($, E), N = o, _ = u; T === "meet" && (N *= S, _ *= S), T === "slice" && (N *= C, _ *= C); var B = new O(t, "refX", f), P = new O(t, "refY", c), X = B.hasValue() && P.hasValue(); if (X && r.translate(-S * B.getPixels("x"), -S * P.getPixels("y")), v) { var W = S * d, U = S * g; r.beginPath(), r.moveTo(W, U), r.lineTo(n, U), r.lineTo(n, s), r.lineTo(W, s), r.closePath(), r.clip(); } if (!X) { var q = T === "meet" && S === E, H = T === "slice" && C === E, Q = T === "meet" && S === $, R = T === "slice" && C === $; b.startsWith("xMid") && (q || H) && r.translate(n / 2 - N / 2, 0), b.endsWith("YMid") && (Q || R) && r.translate(0, s / 2 - _ / 2), b.startsWith("xMax") && (q || H) && r.translate(n - N, 0), b.endsWith("YMax") && (Q || R) && r.translate(0, s - _); } switch (!0) { case b === "none": r.scale($, E); break; case T === "meet": r.scale(S, S); break; case T === "slice": r.scale(C, C); break; } r.translate(-l, -h); } start(e) { var { enableRedraw: t = !1, ignoreMouse: r = !1, ignoreAnimation: i = !1, ignoreDimensions: n = !1, ignoreClear: o = !1, forceRedraw: s, scaleWidth: u, scaleHeight: l, offsetX: h, offsetY: f } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, { FRAMERATE: c, mouse: v } = this, d = 1e3 / c; if (this.frameDuration = d, this.readyPromise = new Promise((b) => { this.resolveReady = b; }), this.isReady() && this.render(e, n, o, u, l, h, f), !!t) { var g = Date.now(), p = g, y = 0, x = () => { g = Date.now(), y = g - p, y >= d && (p = g - y % d, this.shouldUpdate(i, s) && (this.render(e, n, o, u, l, h, f), v.runEvents())), this.intervalId = Le(x); }; r || v.start(), this.intervalId = Le(x); } } stop() { this.intervalId && (Le.cancel(this.intervalId), this.intervalId = null), this.mouse.stop(); } shouldUpdate(e, t) { if (!e) { var { frameDuration: r } = this, i = this.animations.reduce((n, o) => o.update(r) || n, !1); if (i) return !0; } return !!(typeof t == "function" && t() || !this.isReadyLock && this.isReady() || this.mouse.hasEvents()); } render(e, t, r, i, n, o, s) { var { CLIENT_WIDTH: u, CLIENT_HEIGHT: l, viewPort: h, ctx: f, isFirstRender: c } = this, v = f.canvas; h.clear(), v.width && v.height ? h.setCurrent(v.width, v.height) : h.setCurrent(u, l); var d = e.getStyle("width"), g = e.getStyle("height"); !t && (c || typeof i != "number" && typeof n != "number") && (d.hasValue() && (v.width = d.getPixels("x"), v.style && (v.style.width = "".concat(v.width, "px"))), g.hasValue() && (v.height = g.getPixels("y"), v.style && (v.style.height = "".concat(v.height, "px")))); var p = v.clientWidth || v.width, y = v.clientHeight || v.height; if (t && d.hasValue() && g.hasValue() && (p = d.getPixels("x"), y = g.getPixels("y")), h.setCurrent(p, y), typeof o == "number" && e.getAttribute("x", !0).setValue(o), typeof s == "number" && e.getAttribute("y", !0).setValue(s), typeof i == "number" || typeof n == "number") { var x = ie(e.getAttribute("viewBox").getString()), b = 0, T = 0; if (typeof i == "number") { var $ = e.getStyle("width"); $.hasValue() ? b = $.getPixels("x") / i : isNaN(x[2]) || (b = x[2] / i); } if (typeof n == "number") { var E = e.getStyle("height"); E.hasValue() ? T = E.getPixels("y") / n : isNaN(x[3]) || (T = x[3] / n); } b || (b = T), T || (T = b), e.getAttribute("width", !0).setValue(i), e.getAttribute("height", !0).setValue(n); var S = e.getStyle("transform", !0, !0); S.setValue("".concat(S.getString(), " scale(").concat(1 / b, ", ").concat(1 / T, ")")); } r || f.clearRect(0, 0, p, y), e.render(f), c && (this.isFirstRender = !1); } } kr.defaultWindow = bl; kr.defaultFetch = xl; var { defaultFetch: m1 } = kr, b1 = typeof DOMParser < "u" ? DOMParser : null; class Ha { constructor() { var { fetch: e = m1, DOMParser: t = b1 } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; this.fetch = e, this.DOMParser = t; } parse(e) { var t = this; return xe(function* () { return e.startsWith("<") ? t.parseFromString(e) : t.load(e); })(); } parseFromString(e) { var t = new this.DOMParser(); try { return this.checkDocument(t.parseFromString(e, "image/svg+xml")); } catch { return this.checkDocument(t.parseFromString(e, "text/xml")); } } checkDocument(e) { var t = e.getElementsByTagName("parsererror")[0]; if (t) throw new Error(t.textContent); return e; } load(e) { var t = this; return xe(function* () { var r = yield t.fetch(e), i = yield r.text(); return t.parseFromString(i); })(); } } class x1 { constructor(e, t) { this.type = "translate", this.point = null, this.point = V.parse(t); } apply(e) { var { x: t, y: r } = this.point; e.translate(t || 0, r || 0); } unapply(e) { var { x: t, y: r } = this.point; e.translate(-1 * t || 0, -1 * r || 0); } applyToPoint(e) { var { x: t, y: r } = this.point; e.applyTransform([1, 0, 0, 1, t || 0, r || 0]); } } class T1 { constructor(e, t, r) { this.type = "rotate", this.angle = null, this.originX = null, this.originY = null, this.cx = 0, this.cy = 0; var i = ie(t); this.angle = new O(e, "angle", i[0]), this.originX = r[0], this.originY = r[1], this.cx = i[1] || 0, this.cy = i[2] || 0; } apply(e) { var { cx: t, cy: r, originX: i, originY: n, angle: o } = this, s = t + i.getPixels("x"), u = r + n.getPixels("y"); e.translate(s, u), e.rotate(o.getRadians()), e.translate(-s, -u); } unapply(e) { var { cx: t, cy: r, originX: i, originY: n, angle: o } = this, s = t + i.getPixels("x"), u = r + n.getPixels("y"); e.translate(s, u), e.rotate(-1 * o.getRadians()), e.translate(-s, -u); } applyToPoint(e) { var { cx: t, cy: r, angle: i } = this, n = i.getRadians(); e.applyTransform([ 1, 0, 0, 1, t || 0, r || 0 // this.p.y ]), e.applyTransform([Math.cos(n), Math.sin(n), -Math.sin(n), Math.cos(n), 0, 0]), e.applyTransform([ 1, 0, 0, 1, -t || 0, -r || 0 // -this.p.y ]); } } class S1 { constructor(e, t, r) { this.type = "scale", this.scale = null, this.originX = null, this.originY = null; var i = V.parseScale(t); (i.x === 0 || i.y === 0) && (i.x = nt, i.y = nt), this.scale = i, this.originX = r[0], this.originY = r[1]; } apply(e) { var { scale: { x: t, y: r }, originX: i, originY: n } = this, o = i.getPixels("x"), s = n.getPixels("y"); e.translate(o, s), e.scale(t, r || t), e.translate(-o, -s); } unapply(e) { var { scale: { x: t, y: r }, originX: i, originY: n } = this, o = i.getPixels("x"), s = n.getPixels("y"); e.translate(o, s), e.scale(1 / t, 1 / r || t), e.translate(-o, -s); } applyToPoint(e) { var { x: t, y: r } = this.scale; e.applyTransform([t || 0, 0, 0, r || 0, 0, 0]); } } class Tl { constructor(e, t, r) { this.type = "matrix", this.matrix = [], this.originX = null, this.originY = null, this.matrix = ie(t), this.originX = r[0], this.originY = r[1]; } apply(e) { var { originX: t, originY: r, matrix: i } = this, n = t.getPixels("x"), o = r.getPixels("y"); e.translate(n, o), e.transform(i[0], i[1], i[2], i[3], i[4], i[5]), e.translate(-n, -o); } unapply(e) { var { originX: t, originY: r, matrix: i } = this, n = i[0], o = i[2], s = i[4], u = i[1], l = i[3], h = i[5], f = 0, c = 0, v = 1, d = 1 / (n * (l * v - h * c) - o * (u * v - h * f) + s * (u * c - l * f)), g = t.getPixels("x"), p = r.getPixels("y"); e.translate(g, p), e.transform(d * (l * v - h * c), d * (h * f - u * v), d * (s * c - o * v), d * (n * v - s * f), d * (o * h - s * l), d * (s * u - n * h)), e.translate(-g, -p); } applyToPoint(e) { e.applyTransform(this.matrix); } } class Sl extends Tl { constructor(e, t, r) { super(e, t, r), this.type = "skew", this.angle = null, this.angle = new O(e, "angle", t); } } class O1 extends Sl { constructor(e, t, r) { super(e, t, r), this.type = "skewX", this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0]; } } class E1 extends Sl { constructor(e, t, r) { super(e, t, r), this.type = "skewY", this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0]; } } function $1(a) { return ft(a).trim().replace(/\)([a-zA-Z])/g, ") $1").replace(/\)(\s?,\s?)/g, ") ").split(/\s(?=[a-z])/); } function w1(a) { var [e, t] = a.split("("); return [e.trim(), t.trim().replace(")", "")]; } class Fe { constructor(e, t, r) { this.document = e, this.transforms = []; var i = $1(t); i.forEach((n) => { if (n !== "none") { var [o, s] = w1(n), u = Fe.transformTypes[o]; typeof u < "u" && this.transforms.push(new u(this.document, s, r)); } }); } static fromElement(e, t) { var r = t.getStyle("transform", !1, !0), [i, n = i] = t.getStyle("transform-origin", !1, !0).split(), o = [i, n]; return r.hasValue() ? new Fe(e, r.getString(), o) : null; } apply(e) { for (var { transforms: t } = this, r = t.length, i = 0; i < r; i++) t[i].apply(e); } unapply(e) { for (var { transforms: t } = this, r = t.length, i = r - 1; i >= 0; i--) t[i].unapply(e); } // TODO: applyToPoint unused ... remove? applyToPoint(e) { for (var { transforms: t } = this, r = t.length, i = 0; i < r; i++) t[i].applyToPoint(e); } } Fe.transformTypes = { translate: x1, rotate: T1, scale: S1, matrix: Tl, skewX: O1, skewY: E1 }; class I { constructor(e, t) { var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1; if (this.document = e, this.node = t, this.captureTextNodes = r, this.attributes = {}, this.styles = {}, this.stylesSpecificity = {}, this.animationFrozen = !1, this.animationFrozenValue = "", this.parent = null, this.children = [], !(!t || t.nodeType !== 1)) { if (Array.from(t.attributes).forEach((s) => { var u = s1(s.nodeName); this.attributes[u] = new O(e, u, s.value); }), this.addStylesFromStyleDefinition(), this.getAttribute("style").hasValue()) { var i = this.getAttribute("style").getString().split(";").map((s) => s.trim()); i.forEach((s) => { if (s) { var [u, l] = s.split(":").map((h) => h.trim()); this.styles[u] = new O(e, u, l); } }); } var { definitions: n } = e, o = this.getAttribute("id"); o.hasValue() && (n[o.getString()] || (n[o.getString()] = this)), Array.from(t.childNodes).forEach((s) => { if (s.nodeType === 1) this.addChild(s); else if (r && (s.nodeType === 3 || s.nodeType === 4)) { var u = e.createTextNode(s); u.getText().length > 0 && this.addChild(u); } }); } } getAttribute(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, r = this.attributes[e]; if (!r && t) { var i = new O(this.document, e, ""); return this.attributes[e] = i, i; } return r || O.empty(this.document); } getHrefAttribute() { for (var e in this.attributes) if (e === "href" || e.endsWith(":href")) return this.attributes[e]; return O.empty(this.document); } getStyle(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, i = this.styles[e]; if (i) return i; var n = this.getAttribute(e); if (n != null && n.hasValue()) return this.styles[e] = n, n; if (!r) { var { parent: o } = this; if (o) { var s = o.getStyle(e); if (s != null && s.hasValue()) return s; } } if (t) { var u = new O(this.document, e, ""); return this.styles[e] = u, u; } return i || O.empty(this.document); } render(e) { if (!(this.getStyle("display").getString() === "none" || this.getStyle("visibility").getString() === "hidden")) { if (e.save(), this.getStyle("mask").hasValue()) { var t = this.getStyle("mask").getDefinition(); t && (this.applyEffects(e), t.apply(e, this)); } else if (this.getStyle("filter").getValue("none") !== "none") { var r = this.getStyle("filter").getDefinition(); r && (this.applyEffects(e), r.apply(e, this)); } else this.setContext(e), this.renderChildren(e), this.clearContext(e); e.restore(); } } setContext(e) { } applyEffects(e) { var t = Fe.fromElement(this.document, this); t && t.apply(e); var r = this.getStyle("clip-path", !1, !0); if (r.hasValue()) { var i = r.getDefinition(); i && i.apply(e); } } clearContext(e) { } renderChildren(e) { this.children.forEach((t) => { t.render(e); }); } addChild(e) { var t = e instanceof I ? e : this.document.createElement(e); t.parent = this, I.ignoreChildTypes.includes(t.type) || this.children.push(t); } matchesSelector(e) { var t, { node: r } = this; if (typeof r.matches == "function") return r.matches(e); var i = (t = r.getAttribute) === null || t === void 0 ? void 0 : t.call(r, "class"); return !i || i === "" ? !1 : i.split(" ").some((n) => ".".concat(n) === e); } addStylesFromStyleDefinition() { var { styles: e, stylesSpecificity: t } = this.document; for (var r in e) if (!r.startsWith("@") && this.matchesSelector(r)) { var i = e[r], n = t[r]; if (i) for (var o in i) { var s = this.stylesSpecificity[o]; typeof s > "u" && (s = "000"), n >= s && (this.styles[o] = i[o], this.stylesSpecificity[o] = n); } } } removeStyles(e, t) { var r = t.reduce((i, n) => { var o = e.getStyle(n); if (!o.hasValue()) return i; var s = o.getString(); return o.setValue(""), [...i, [n, s]]; }, []); return r; } restoreStyles(e, t) { t.forEach((r) => { var [i, n] = r; e.getStyle(i, !0).setValue(n); }); } isFirstChild() { var e; return ((e = this.parent) === null || e === void 0 ? void 0 : e.children.indexOf(this)) === 0; } } I.ignoreChildTypes = ["title"]; class C1 extends I { constructor(e, t, r) { super(e, t, r); } } function A1(a) { var e = a.trim(); return /^('|")/.test(e) ? e : '"'.concat(e, '"'); } function P1(a) { return typeof process > "u" ? a : a.trim().split(",").map(A1).join(","); } function R1(a) { if (!a) return ""; var e = a.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 I1(a) { if (!a) return ""; var e = a.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 J { constructor(e, t, r, i, n, o) { var s = o ? typeof o == "string" ? J.parse(o) : o : {}; this.fontFamily = n || s.fontFamily, this.fontSize = i || s.fontSize, this.fontStyle = e || s.fontStyle, this.fontWeight = r || s.fontWeight, this.fontVariant = t || s.fontVariant; } static parse() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", t = arguments.length > 1 ? arguments[1] : void 0, r = "", i = "", n = "", o = "", s = "", u = ft(e).trim().split(" "), l = { fontSize: !1, fontStyle: !1, fontWeight: !1, fontVariant: !1 }; return u.forEach((h) => { switch (!0) { case (!l.fontStyle && J.styles.includes(h)): h !== "inherit" && (r = h), l.fontStyle = !0; break; case (!l.fontVariant && J.variants.includes(h)): h !== "inherit" && (i = h), l.fontStyle = !0, l.fontVariant = !0; break; case (!l.fontWeight && J.weights.includes(h)): h !== "inherit" && (n = h), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0; break; case !l.fontSize: h !== "inherit" && ([o] = h.split("/")), l.fontStyle = !0, l.fontVariant = !0, l.fontWeight = !0, l.fontSize = !0; break; default: h !== "inherit" && (s += h); } }), new J(r, i, n, o, s, t); } toString() { return [ R1(this.fontStyle), this.fontVariant, I1(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx P1(this.fontFamily) ].join(" ").trim(); } } J.styles = "normal|italic|oblique|inherit"; J.variants = "normal|small-caps|inherit"; J.weights = "normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit"; class he { constructor() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Number.NaN, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.NaN, r = 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 = t, this.x2 = r, this.y2 = i, this.addPoint(e, t), this.addPoint(r, 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, t) { 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 t < "u" && ((isNaN(this.y1) || isNaN(this.y2)) && (this.y1 = t, this.y2 = t), t < this.y1 && (this.y1 = t), t > this.y2 && (this.y2 = t)); } addX(e) { this.addPoint(e, null); } addY(e) { this.addPoint(null, e); } addBoundingBox(e) { if (e) { var { x1: t, y1: r, x2: i, y2: n } = e; this.addPoint(t, r), this.addPoint(i, n); } } sumCubic(e, t, r, i, n) { return Math.pow(1 - e, 3) * t + 3 * Math.pow(1 - e, 2) * e * r + 3 * (1 - e) * Math.pow(e, 2) * i + Math.pow(e, 3) * n; } bezierCurveAdd(e, t, r, i, n) { var o = 6 * t - 12 * r + 6 * i, s = -3 * t + 9 * r - 9 * i + 3 * n, u = 3 * r - 3 * t; if (s === 0) { if (o === 0) return; var l = -u / o; 0 < l && l < 1 && (e ? this.addX(this.sumCubic(l, t, r, i, n)) : this.addY(this.sumCubic(l, t, r, i, n))); return; } var h = Math.pow(o, 2) - 4 * u * s; if (!(h < 0)) { var f = (-o + Math.sqrt(h)) / (2 * s); 0 < f && f < 1 && (e ? this.addX(this.sumCubic(f, t, r, i, n)) : this.addY(this.sumCubic(f, t, r, i, n))); var c = (-o - Math.sqrt(h)) / (2 * s); 0 < c && c < 1 && (e ? this.addX(this.sumCubic(c, t, r, i, n)) : this.addY(this.sumCubic(c, t, r, i, n))); } } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html addBezierCurve(e, t, r, i, n, o, s, u) { this.addPoint(e, t), this.addPoint(s, u), this.bezierCurveAdd(!0, e, r, n, s), this.bezierCurveAdd(!1, t, i, o, u); } addQuadraticCurve(e, t, r, i, n, o) { var s = e + 0.6666666666666666 * (r - e), u = t + 2 / 3 * (i - t), l = s + 1 / 3 * (n - e), h = u + 1 / 3 * (o - t); this.addBezierCurve(e, t, s, l, u, h, n, o); } isPointInBox(e, t) { var { x1: r, y1: i, x2: n, y2: o } = this; return r <= e && e <= n && i <= t && t <= o; } } class w extends m { 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 V(0, 0), this.control = new V(0, 0), this.current = new V(0, 0), this.points = [], this.angles = []; } isEnd() { var { i: e, commands: t } = this; return e >= t.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", t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "y", r = new V(this.command[e], this.command[t]); return this.makeAbsolute(r); } getAsControlPoint(e, t) { var r = this.getPoint(e, t); return this.control = r, r; } getAsCurrentPoint(e, t) { var r = this.getPoint(e, t); return this.current = r, r; } getReflectedControlPoint() { var e = this.previousCommand.type; if (e !== m.CURVE_TO && e !== m.SMOOTH_CURVE_TO && e !== m.QUAD_TO && e !== m.SMOOTH_QUAD_TO) return this.current; var { current: { x: t, y: r }, control: { x: i, y: n } } = this, o = new V(2 * t - i, 2 * r - n); return o; } makeAbsolute(e) { if (this.command.relative) { var { x: t, y: r } = this.current; e.x += t, e.y += r; } return e; } addMarker(e, t, r) { var { points: i, angles: n } = this; r && n.length > 0 && !n[n.length - 1] && (n[n.length - 1] = i[i.length - 1].angleTo(r)), this.addMarkerAngle(e, t ? t.angleTo(e) : null); } addMarkerAngle(e, t) { this.points.push(e), this.angles.push(t); } getMarkerPoints() { return this.points; } getMarkerAngles() { for (var { angles: e } = this, t = e.length, r = 0; r < t; r++) if (!e[r]) { for (var i = r + 1; i < t; i++) if (e[i]) { e[r] = e[i]; break; } } return e; } } class He extends I { constructor() { super(...arguments), this.modifiedEmSizeStack = !1; } calculateOpacity() { for (var e = 1, t = this; t; ) { var r = t.getStyle("opacity", !1, !0); r.hasValue(!0) && (e *= r.getNumber()), t = t.parent; } return e; } setContext(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1; if (!t) { var r = this.getStyle("fill"), i = this.getStyle("fill-opacity"), n = this.getStyle("stroke"), o = this.getStyle("stroke-opacity"); if (r.isUrlDefinition()) { var s = r.getFillStyleDefinition(this, i); s && (e.fillStyle = s); } else if (r.hasValue()) { r.getString() === "currentColor" && r.setValue(this.getStyle("color").getColor()); var u = r.getColor(); u !== "inherit" && (e.fillStyle = u === "none" ? "rgba(0,0,0,0)" : u); } if (i.hasValue()) { var l = new O(this.document, "fill", e.fillStyle).addOpacity(i).getColor(); e.fillStyle = l; } if (n.isUrlDefinition()) { var h = n.getFillStyleDefinition(this, o); h && (e.strokeStyle = h); } else if (n.hasValue()) { n.getString() === "currentColor" && n.setValue(this.getStyle("color").getColor()); var f = n.getString(); f !== "inherit" && (e.strokeStyle = f === "none" ? "rgba(0,0,0,0)" : f); } if (o.hasValue()) { var c = new O(this.document, "stroke", e.strokeStyle).addOpacity(o).getString(); e.strokeStyle = c; } var v = this.getStyle("stroke-width"); if (v.hasValue()) { var d = v.getPixels(); e.lineWidth = d || nt; } var g = this.getStyle("stroke-linecap"), p = this.getStyle("stroke-linejoin"), y = this.getStyle("stroke-miterlimit"), x = this.getStyle("stroke-dasharray"), b = this.getStyle("stroke-dashoffset"); if (g.hasValue() && (e.lineCap = g.getString()), p.hasValue() && (e.lineJoin = p.getString()), y.hasValue() && (e.miterLimit = y.getNumber()), x.hasValue() && x.getString() !== "none") { var T = ie(x.getString()); typeof e.setLineDash < "u" ? e.setLineDash(T) : typeof e.webkitLineDash < "u" ? e.webkitLineDash = T : typeof e.mozDash < "u" && !(T.length === 1 && T[0] === 0) && (e.mozDash = T); var $ = b.getPixels(); typeof e.lineDashOffset < "u" ? e.lineDashOffset = $ : typeof e.webkitLineDashOffset < "u" ? e.webkitLineDashOffset = $ : typeof e.mozDashOffset < "u" && (e.mozDashOffset = $); } } if (this.modifiedEmSizeStack = !1, typeof e.font < "u") { var E = this.getStyle("font"), S = this.getStyle("font-style"), C = this.getStyle("font-variant"), N = this.getStyle("font-weight"), _ = this.getStyle("font-size"), B = this.getStyle("font-family"), P = new J(S.getString(), C.getString(), N.getString(), _.hasValue() ? "".concat(_.getPixels(!0), "px") : "", B.getString(), J.parse(E.getString(), e.font)); S.setValue(P.fontStyle), C.setValue(P.fontVariant), N.setValue(P.fontWeight), _.setValue(P.fontSize), B.setValue(P.fontFamily), e.font = P.toString(), _.isPixels() && (this.document.emSize = _.getPixels(), this.modifiedEmSizeStack = !0); } t || (this.applyEffects(e), e.globalAlpha = this.calculateOpacity()); } clearContext(e) { super.clearContext(e), this.modifiedEmSizeStack && this.document.popEmSize(); } } class A extends He { constructor(e, t, r) { super(e, t, r), this.type = "path", this.pathParser = null, this.pathParser = new w(this.getAttribute("d").getString()); } path(e) { var { pathParser: t } = this, r = new he(); for (t.reset(), e && e.beginPath(); !t.isEnd(); ) switch (t.next().type) { case w.MOVE_TO: this.pathM(e, r); break; case w.LINE_TO: this.pathL(e, r); break; case w.HORIZ_LINE_TO: this.pathH(e, r); break; case w.VERT_LINE_TO: this.pathV(e, r); break; case w.CURVE_TO: this.pathC(e, r); break; case w.SMOOTH_CURVE_TO: this.pathS(e, r); break; case w.QUAD_TO: this.pathQ(e, r); break; case w.SMOOTH_QUAD_TO: this.pathT(e, r); break; case w.ARC: this.pathA(e, r); break; case w.CLOSE_PATH: this.pathZ(e, r); break; } return r; } getBoundingBox(e) { return this.path(); } getMarkers() { var { pathParser: e } = this, t = e.getMarkerPoints(), r = e.getMarkerAngles(), i = t.map((n, o) => [n, r[o]]); return i; } renderChildren(e) { this.path(e), this.document.screen.mouse.checkPath(this, e); var t = this.getStyle("fill-rule"); e.fillStyle !== "" && (t.getString("inherit") !== "inherit" ? e.fill(t.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 r = this.getMarkers(); if (r) { var i = r.length - 1, n = this.getStyle("marker-start"), o = this.getStyle("marker-mid"), s = this.getStyle("marker-end"); if (n.isUrlDefinition()) { var u = n.getDefinition(), [l, h] = r[0]; u.render(e, l, h); } if (o.isUrlDefinition()) for (var f = o.getDefinition(), c = 1; c < i; c++) { var [v, d] = r[c]; f.render(e, v, d); } if (s.isUrlDefinition()) { var g = s.getDefinition(), [p, y] = r[i]; g.render(e, p, y); } } } static pathM(e) { var t = e.getAsCurrentPoint(); return e.start = e.current, { point: t }; } pathM(e, t) { var { pathParser: r } = this, { point: i } = A.pathM(r), { x: n, y: o } = i; r.addMarker(i), t.addPoint(n, o), e && e.moveTo(n, o); } static pathL(e) { var { current: t } = e, r = e.getAsCurrentPoint(); return { current: t, point: r }; } pathL(e, t) { var { pathParser: r } = this, { current: i, point: n } = A.pathL(r), { x: o, y: s } = n; r.addMarker(n, i), t.addPoint(o, s), e && e.lineTo(o, s); } static pathH(e) { var { current: t, command: r } = e, i = new V((r.relative ? t.x : 0) + r.x, t.y); return e.current = i, { current: t, point: i }; } pathH(e, t) { var { pathParser: r } = this, { current: i, point: n } = A.pathH(r), { x: o, y: s } = n; r.addMarker(n, i), t.addPoint(o, s), e && e.lineTo(o, s); } static pathV(e) { var { current: t, command: r } = e, i = new V(t.x, (r.relative ? t.y : 0) + r.y); return e.current = i, { current: t, point: i }; } pathV(e, t) { var { pathParser: r } = this, { current: i, point: n } = A.pathV(r), { x: o, y: s } = n; r.addMarker(n, i), t.addPoint(o, s), e && e.lineTo(o, s); } static pathC(e) { var { current: t } = e, r = e.getPoint("x1", "y1"), i = e.getAsControlPoint("x2", "y2"), n = e.getAsCurrentPoint(); return { current: t, point: r, controlPoint: i, currentPoint: n }; } pathC(e, t) { var { pathParser: r } = this, { current: i, point: n, controlPoint: o, currentPoint: s } = A.pathC(r); r.addMarker(s, o, n), t.addBezierCurve(i.x, i.y, n.x, n.y, o.x, o.y, s.x, s.y), e && e.bezierCurveTo(n.x, n.y, o.x, o.y, s.x, s.y); } static pathS(e) { var { current: t } = e, r = e.getReflectedControlPoint(), i = e.getAsControlPoint("x2", "y2"), n = e.getAsCurrentPoint(); return { current: t, point: r, controlPoint: i, currentPoint: n }; } pathS(e, t) { var { pathParser: r } = this, { current: i, point: n, controlPoint: o, currentPoint: s } = A.pathS(r); r.addMarker(s, o, n), t.addBezierCurve(i.x, i.y, n.x, n.y, o.x, o.y, s.x, s.y), e && e.bezierCurveTo(n.x, n.y, o.x, o.y, s.x, s.y); } static pathQ(e) { var { current: t } = e, r = e.getAsControlPoint("x1", "y1"), i = e.getAsCurrentPoint(); return { current: t, controlPoint: r, currentPoint: i }; } pathQ(e, t) { var { pathParser: r } = this, { current: i, controlPoint: n, currentPoint: o } = A.pathQ(r); r.addMarker(o, n, n), t.addQuadraticCurve(i.x, i.y, n.x, n.y, o.x, o.y), e && e.quadraticCurveTo(n.x, n.y, o.x, o.y); } static pathT(e) { var { current: t } = e, r = e.getReflectedControlPoint(); e.control = r; var i = e.getAsCurrentPoint(); return { current: t, controlPoint: r, currentPoint: i }; } pathT(e, t) { var { pathParser: r } = this, { current: i, controlPoint: n, currentPoint: o } = A.pathT(r); r.addMarker(o, n, n), t.addQuadraticCurve(i.x, i.y, n.x, n.y, o.x, o.y), e && e.quadraticCurveTo(n.x, n.y, o.x, o.y); } static pathA(e) { var { current: t, command: r } = e, { rX: i, rY: n, xRot: o, lArcFlag: s, sweepFlag: u } = r, l = o * (Math.PI / 180), h = e.getAsCurrentPoint(), f = new V(Math.cos(l) * (t.x - h.x) / 2 + Math.sin(l) * (t.y - h.y) / 2, -Math.sin(l) * (t.x - h.x) / 2 + Math.cos(l) * (t.y - h.y) / 2), c = Math.pow(f.x, 2) / Math.pow(i, 2) + Math.pow(f.y, 2) / Math.pow(n, 2); c > 1 && (i *= Math.sqrt(c), n *= Math.sqrt(c)); var v = (s === u ? -1 : 1) * Math.sqrt((Math.pow(i, 2) * Math.pow(n, 2) - Math.pow(i, 2) * Math.pow(f.y, 2) - Math.pow(n, 2) * Math.pow(f.x, 2)) / (Math.pow(i, 2) * Math.pow(f.y, 2) + Math.pow(n, 2) * Math.pow(f.x, 2))); isNaN(v) && (v = 0); var d = new V(v * i * f.y / n, v * -n * f.x / i), g = new V((t.x + h.x) / 2 + Math.cos(l) * d.x - Math.sin(l) * d.y, (t.y + h.y) / 2 + Math.sin(l) * d.x + Math.cos(l) * d.y), p = $o([1, 0], [(f.x - d.x) / i, (f.y - d.y) / n]), y = [(f.x - d.x) / i, (f.y - d.y) / n], x = [(-f.x - d.x) / i, (-f.y - d.y) / n], b = $o(y, x); return Oi(y, x) <= -1 && (b = Math.PI), Oi(y, x) >= 1 && (b = 0), { currentPoint: h, rX: i, rY: n, sweepFlag: u, xAxisRotation: l, centp: g, a1: p, ad: b }; } pathA(e, t) { var { pathParser: r } = this, { currentPoint: i, rX: n, rY: o, sweepFlag: s, xAxisRotation: u, centp: l, a1: h, ad: f } = A.pathA(r), c = 1 - s ? 1 : -1, v = h + c * (f / 2), d = new V(l.x + n * Math.cos(v), l.y + o * Math.sin(v)); if (r.addMarkerAngle(d, v - c * Math.PI / 2), r.addMarkerAngle(i, v - c * Math.PI), t.addPoint(i.x, i.y), e && !isNaN(h) && !isNaN(f)) { var g = n > o ? n : o, p = n > o ? 1 : n / o, y = n > o ? o / n : 1; e.translate(l.x, l.y), e.rotate(u), e.scale(p, y), e.arc(0, 0, g, h, h + f, !!(1 - s)), e.scale(1 / p, 1 / y), e.rotate(-u), e.translate(-l.x, -l.y); } } static pathZ(e) { e.current = e.start; } pathZ(e, t) { A.pathZ(this.pathParser), e && t.x1 !== t.x2 && t.y1 !== t.y2 && e.closePath(); } } class Ol extends A { constructor(e, t, r) { super(e, t, r), 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 Ce extends He { constructor(e, t, r) { super(e, t, new.target === Ce ? !0 : r), this.type = "text", this.x = 0, this.y = 0, this.measureCache = -1; } setContext(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1; super.setContext(e, t); var r = this.getStyle("dominant-baseline").getTextBaseline() || this.getStyle("alignment-baseline").getTextBaseline(); r && (e.textBaseline = r); } 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 t = null; return this.children.forEach((r, i) => { var n = this.getChildBoundingBox(e, this, this, i); t ? t.addBoundingBox(n) : t = n; }), t; } getFontSize() { var { document: e, parent: t } = this, r = J.parse(e.ctx.font).fontSize, i = t.getStyle("font-size").getNumber(r); return i; } getTElementBoundingBox(e) { var t = this.getFontSize(); return new he(this.x, this.y - t, this.x + this.measureText(e), this.y); } getGlyph(e, t, r) { var i = t[r], n = null; if (e.isArabic) { var o = t.length, s = t[r - 1], u = t[r + 1], l = "isolated"; if ((r === 0 || s === " ") && r < o - 1 && u !== " " && (l = "terminal"), r > 0 && s !== " " && r < o - 1 && u !== " " && (l = "medial"), r > 0 && s !== " " && (r === o - 1 || u === " ") && (l = "initial"), typeof e.glyphs[i] < "u") { var h = e.glyphs[i]; n = h instanceof Ol ? h : h[l]; } } else n = e.glyphs[i]; return n || (n = e.missingGlyph), n; } getText() { return ""; } getTextFromNode(e) { var t = e || this.node, r = Array.from(t.parentNode.childNodes), i = r.indexOf(t), n = r.length - 1, o = ft( // textNode.value // || textNode.text t.textContent || "" ); return i === 0 && (o = a1(o)), i === n && (o = i1(o)), o; } renderChildren(e) { if (this.type !== "text") { this.renderTElementChildren(e); return; } this.initializeCoordinates(), this.adjustChildCoordinatesRecursive(e), this.children.forEach((r, i) => { this.renderChild(e, this, this, i); }); var { mouse: t } = this.document.screen; t.isWorking() && t.checkBoundingBox(this, this.getBoundingBox(e)); } renderTElementChildren(e) { var { document: t, parent: r } = this, i = this.getText(), n = r.getStyle("font-family").getDefinition(); if (n) { for (var { unitsPerEm: o } = n.fontFace, s = J.parse(t.ctx.font), u = r.getStyle("font-size").getNumber(s.fontSize), l = r.getStyle("font-style").getString(s.fontStyle), h = u / o, f = n.isRTL ? i.split("").reverse().join("") : i, c = ie(r.getAttribute("dx").getString()), v = f.length, d = 0; d < v; d++) { var g = this.getGlyph(n, f, d); e.translate(this.x, this.y), e.scale(h, -h); var p = e.lineWidth; e.lineWidth = e.lineWidth * o / u, l === "italic" && e.transform(1, 0, 0.4, 1, 0, 0), g.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 * (g.horizAdvX || n.horizAdvX) / o, typeof c[d] < "u" && !isNaN(c[d]) && (this.x += c[d]); } return; } var { x: y, y: x } = this; e.fillStyle && e.fillText(i, y, x), e.strokeStyle && e.strokeText(i, y, x); } applyAnchoring() { if (!(this.textChunkStart >= this.leafTexts.length)) { var e = this.leafTexts[this.textChunkStart], t = e.getStyle("text-anchor").getString("start"), r = !1, i = 0; t === "start" && !r || t === "end" && r ? i = e.x - this.minX : t === "end" && !r || t === "start" && r ? i = e.x - this.maxX : i = e.x - (this.minX + this.maxX) / 2; for (var n = this.textChunkStart; n < this.leafTexts.length; n++) this.leafTexts[n].x += i; this.minX = Number.POSITIVE_INFINITY, this.maxX = Number.NEGATIVE_INFINITY, this.textChunkStart = this.leafTexts.length; } } adjustChildCoordinatesRecursive(e) { this.children.forEach((t, r) => { this.adjustChildCoordinatesRecursiveCore(e, this, this, r); }), this.applyAnchoring(); } adjustChildCoordinatesRecursiveCore(e, t, r, i) { var n = r.children[i]; n.children.length > 0 ? n.children.forEach((o, s) => { t.adjustChildCoordinatesRecursiveCore(e, t, n, s); }) : this.adjustChildCoordinates(e, t, r, i); } adjustChildCoordinates(e, t, r, i) { var n = r.children[i]; if (typeof n.measureText != "function") return n; e.save(), n.setContext(e, !0); var o = n.getAttribute("x"), s = n.getAttribute("y"), u = n.getAttribute("dx"), l = n.getAttribute("dy"), h = n.getStyle("font-family").getDefinition(), f = !!h && h.isRTL; i === 0 && (o.hasValue() || o.setValue(n.getInheritedAttribute("x")), s.hasValue() || s.setValue(n.getInheritedAttribute("y")), u.hasValue() || u.setValue(n.getInheritedAttribute("dx")), l.hasValue() || l.setValue(n.getInheritedAttribute("dy"))); var c = n.measureText(e); return f && (t.x -= c), o.hasValue() ? (t.applyAnchoring(), n.x = o.getPixels("x"), u.hasValue() && (n.x += u.getPixels("x"))) : (u.hasValue() && (t.x += u.getPixels("x")), n.x = t.x), t.x = n.x, f || (t.x += c), s.hasValue() ? (n.y = s.getPixels("y"), l.hasValue() && (n.y += l.getPixels("y"))) : (l.hasValue() && (t.y += l.getPixels("y")), n.y = t.y), t.y = n.y, t.leafTexts.push(n), t.minX = Math.min(t.minX, n.x, n.x + c), t.maxX = Math.max(t.maxX, n.x, n.x + c), n.clearContext(e), e.restore(), n; } getChildBoundingBox(e, t, r, i) { var n = r.children[i]; if (typeof n.getBoundingBox != "function") return null; var o = n.getBoundingBox(e); return o ? (n.children.forEach((s, u) => { var l = t.getChildBoundingBox(e, t, n, u); o.addBoundingBox(l); }), o) : null; } renderChild(e, t, r, i) { var n = r.children[i]; n.render(e), n.children.forEach((o, s) => { t.renderChild(e, t, n, s); }); } measureText(e) { var { measureCache: t } = this; if (~t) return t; var r = this.getText(), i = this.measureTargetText(e, r); return this.measureCache = i, i; } measureTargetText(e, t) { if (!t.length) return 0; var { parent: r } = this, i = r.getStyle("font-family").getDefinition(); if (i) { for (var n = this.getFontSize(), o = i.isRTL ? t.split("").reverse().join("") : t, s = ie(r.getAttribute("dx").getString()), u = o.length, l = 0, h = 0; h < u; h++) { var f = this.getGlyph(i, o, h); l += (f.horizAdvX || i.horizAdvX) * n / i.fontFace.unitsPerEm, typeof s[h] < "u" && !isNaN(s[h]) && (l += s[h]); } return l; } if (!e.measureText) return t.length * 10; e.save(), this.setContext(e, !0); var { width: c } = e.measureText(t); return this.clearContext(e), e.restore(), c; } /** * 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 t = this; t instanceof Ce && t.isFirstChild(); ) { var r = t.parent.getAttribute(e); if (r.hasValue(!0)) return r.getValue("0"); t = t.parent; } return null; } } class Br extends Ce { constructor(e, t, r) { super(e, t, new.target === Br ? !0 : r), this.type = "tspan", this.text = this.children.length > 0 ? "" : this.getTextFromNode(); } getText() { return this.text; } } class N1 extends Br { constructor() { super(...arguments), this.type = "textNode"; } } class _t extends He { constructor() { super(...arguments), this.type = "svg", this.root = !1; } setContext(e) { var t, { document: r } = this, { screen: i, window: n } = r, o = e.canvas; if (i.setDefaults(e), o.style && typeof e.font < "u" && n && typeof n.getComputedStyle < "u") { e.font = n.getComputedStyle(o).getPropertyValue("font"); var s = new O(r, "fontSize", J.parse(e.font).fontSize); s.hasValue() && (r.rootEmSize = s.getPixels("y"), r.emSize = r.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"), f = this.getAttribute("refY"), c = this.getAttribute("viewBox"), v = c.hasValue() ? ie(c.getString()) : null, d = !this.root && this.getStyle("overflow").getValue("hidden") !== "visible", g = 0, p = 0, y = 0, x = 0; v && (g = v[0], p = v[1]), this.root || (u = this.getStyle("width").getPixels("x"), l = this.getStyle("height").getPixels("y"), this.type === "marker" && (y = g, x = p, g = 0, p = 0)), i.viewPort.setCurrent(u, l), this.node && (!this.parent || ((t = this.node.parentNode) === null || t === void 0 ? void 0 : t.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")), v && (u = v[2], l = v[3]), r.setViewBox({ ctx: e, aspectRatio: this.getAttribute("preserveAspectRatio").getString(), width: i.viewPort.width, desiredWidth: u, height: i.viewPort.height, desiredHeight: l, minX: g, minY: p, refX: h.getValue(), refY: f.getValue(), clip: d, clipX: y, clipY: x }), v && (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 t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : e, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, i = this.getAttribute("width", !0), n = this.getAttribute("height", !0), o = this.getAttribute("viewBox"), s = this.getAttribute("style"), u = i.getNumber(0), l = n.getNumber(0); if (r) if (typeof r == "string") this.getAttribute("preserveAspectRatio", !0).setValue(r); else { var h = this.getAttribute("preserveAspectRatio"); h.hasValue() && h.setValue(h.getString().replace(/^\s*(\S.*\S)\s*$/, "$1")); } if (i.setValue(e), n.setValue(t), o.hasValue() || o.setValue("0 0 ".concat(u || e, " ").concat(l || t)), s.hasValue()) { var f = this.getStyle("width"), c = this.getStyle("height"); f.hasValue() && f.setValue("".concat(e, "px")), c.hasValue() && c.setValue("".concat(t, "px")); } } } class El extends A { constructor() { super(...arguments), this.type = "rect"; } path(e) { var t = this.getAttribute("x").getPixels("x"), r = this.getAttribute("y").getPixels("y"), i = this.getStyle("width", !1, !0).getPixels("x"), n = this.getStyle("height", !1, !0).getPixels("y"), o = this.getAttribute("rx"), s = this.getAttribute("ry"), u = o.getPixels("x"), l = s.getPixels("y"); if (o.hasValue() && !s.hasValue() && (l = u), s.hasValue() && !o.hasValue() && (u = l), u = Math.min(u, i / 2), l = Math.min(l, n / 2), e) { var h = 4 * ((Math.sqrt(2) - 1) / 3); e.beginPath(), n > 0 && i > 0 && (e.moveTo(t + u, r), e.lineTo(t + i - u, r), e.bezierCurveTo(t + i - u + h * u, r, t + i, r + l - h * l, t + i, r + l), e.lineTo(t + i, r + n - l), e.bezierCurveTo(t + i, r + n - l + h * l, t + i - u + h * u, r + n, t + i - u, r + n), e.lineTo(t + u, r + n), e.bezierCurveTo(t + u - h * u, r + n, t, r + n - l + h * l, t, r + n - l), e.lineTo(t, r + l), e.bezierCurveTo(t, r + l - h * l, t + u - h * u, r, t + u, r), e.closePath()); } return new he(t, r, t + i, r + n); } getMarkers() { return null; } } class M1 extends A { constructor() { super(...arguments), this.type = "circle"; } path(e) { var t = this.getAttribute("cx").getPixels("x"), r = this.getAttribute("cy").getPixels("y"), i = this.getAttribute("r").getPixels(); return e && i > 0 && (e.beginPath(), e.arc(t, r, i, 0, Math.PI * 2, !1), e.closePath()), new he(t - i, r - i, t + i, r + i); } getMarkers() { return null; } } class _1 extends A { constructor() { super(...arguments), this.type = "ellipse"; } path(e) { var t = 4 * ((Math.sqrt(2) - 1) / 3), r = this.getAttribute("rx").getPixels("x"), i = this.getAttribute("ry").getPixels("y"), n = this.getAttribute("cx").getPixels("x"), o = this.getAttribute("cy").getPixels("y"); return e && r > 0 && i > 0 && (e.beginPath(), e.moveTo(n + r, o), e.bezierCurveTo(n + r, o + t * i, n + t * r, o + i, n, o + i), e.bezierCurveTo(n - t * r, o + i, n - r, o + t * i, n - r, o), e.bezierCurveTo(n - r, o - t * i, n - t * r, o - i, n, o - i), e.bezierCurveTo(n + t * r, o - i, n + r, o - t * i, n + r, o), e.closePath()), new he(n - r, o - i, n + r, o + i); } getMarkers() { return null; } } class D1 extends A { constructor() { super(...arguments), this.type = "line"; } getPoints() { return [new V(this.getAttribute("x1").getPixels("x"), this.getAttribute("y1").getPixels("y")), new V(this.getAttribute("x2").getPixels("x"), this.getAttribute("y2").getPixels("y"))]; } path(e) { var [{ x: t, y: r }, { x: i, y: n }] = this.getPoints(); return e && (e.beginPath(), e.moveTo(t, r), e.lineTo(i, n)), new he(t, r, i, n); } getMarkers() { var [e, t] = this.getPoints(), r = e.angleTo(t); return [[e, r], [t, r]]; } } class $l extends A { constructor(e, t, r) { super(e, t, r), this.type = "polyline", this.points = [], this.points = V.parsePath(this.getAttribute("points").getString()); } path(e) { var { points: t } = this, [{ x: r, y: i }] = t, n = new he(r, i); return e && (e.beginPath(), e.moveTo(r, i)), t.forEach((o) => { var { x: s, y: u } = o; n.addPoint(s, u), e && e.lineTo(s, u); }), n; } getMarkers() { var { points: e } = this, t = e.length - 1, r = []; return e.forEach((i, n) => { n !== t && r.push([i, i.angleTo(e[n + 1])]); }), r.length > 0 && r.push([e[e.length - 1], r[r.length - 1][1]]), r; } } class V1 extends $l { constructor() { super(...arguments), this.type = "polygon"; } path(e) { var t = super.path(e), [{ x: r, y: i }] = this.points; return e && (e.lineTo(r, i), e.closePath()), t; } } class L1 extends I { constructor() { super(...arguments), this.type = "pattern"; } createPattern(e, t, r) { var i = this.getStyle("width").getPixels("x", !0), n = this.getStyle("height").getPixels("y", !0), o = new _t(this.document, null); o.attributes.viewBox = new O(this.document, "viewBox", this.getAttribute("viewBox").getValue()), o.attributes.width = new O(this.document, "width", "".concat(i, "px")), o.attributes.height = new O(this.document, "height", "".concat(n, "px")), o.attributes.transform = new O(this.document, "transform", this.getAttribute("patternTransform").getValue()), o.children = this.children; var s = this.document.createCanvas(i, n), u = s.getContext("2d"), l = this.getAttribute("x"), h = this.getAttribute("y"); l.hasValue() && h.hasValue() && u.translate(l.getPixels("x", !0), h.getPixels("y", !0)), r.hasValue() ? this.styles["fill-opacity"] = r : Reflect.deleteProperty(this.styles, "fill-opacity"); for (var f = -1; f <= 1; f++) for (var c = -1; c <= 1; c++) u.save(), o.attributes.x = new O(this.document, "x", f * s.width), o.attributes.y = new O(this.document, "y", c * s.height), o.render(u), u.restore(); var v = e.createPattern(s, "repeat"); return v; } } class k1 extends I { constructor() { super(...arguments), this.type = "marker"; } render(e, t, r) { if (t) { var { x: i, y: n } = t, o = this.getAttribute("orient").getString("auto"), s = this.getAttribute("markerUnits").getString("strokeWidth"); e.translate(i, n), o === "auto" && e.rotate(r), s === "strokeWidth" && e.scale(e.lineWidth, e.lineWidth), e.save(); var u = new _t(this.document, null); u.type = this.type, u.attributes.viewBox = new O(this.document, "viewBox", this.getAttribute("viewBox").getValue()), u.attributes.refX = new O(this.document, "refX", this.getAttribute("refX").getValue()), u.attributes.refY = new O(this.document, "refY", this.getAttribute("refY").getValue()), u.attributes.width = new O(this.document, "width", this.getAttribute("markerWidth").getValue()), u.attributes.height = new O(this.document, "height", this.getAttribute("markerHeight").getValue()), u.attributes.overflow = new O(this.document, "overflow", this.getAttribute("overflow").getValue()), u.attributes.fill = new O(this.document, "fill", this.getAttribute("fill").getColor("black")), u.attributes.stroke = new O(this.document, "stroke", this.getAttribute("stroke").getValue("none")), u.children = this.children, u.render(e), e.restore(), s === "strokeWidth" && e.scale(1 / e.lineWidth, 1 / e.lineWidth), o === "auto" && e.rotate(-r), e.translate(-i, -n); } } } class B1 extends I { constructor() { super(...arguments), this.type = "defs"; } render() { } } class un extends He { constructor() { super(...arguments), this.type = "g"; } getBoundingBox(e) { var t = new he(); return this.children.forEach((r) => { t.addBoundingBox(r.getBoundingBox(e)); }), t; } } class wl extends I { constructor(e, t, r) { super(e, t, r), this.attributesToInherit = ["gradientUnits"], this.stops = []; var { stops: i, children: n } = this; n.forEach((o) => { o.type === "stop" && i.push(o); }); } getGradientUnits() { return this.getAttribute("gradientUnits").getString("objectBoundingBox"); } createGradient(e, t, r) { var i = this; this.getHrefAttribute().hasValue() && (i = this.getHrefAttribute().getDefinition(), this.inheritStopContainer(i)); var { stops: n } = i, o = this.getGradient(e, t); if (!o) return this.addParentOpacity(r, n[n.length - 1].color); if (n.forEach((p) => { o.addColorStop(p.offset, this.addParentOpacity(r, p.color)); }), this.getAttribute("gradientTransform").hasValue()) { var { document: s } = this, { MAX_VIRTUAL_PIXELS: u, viewPort: l } = s.screen, [h] = l.viewPorts, f = new El(s, null); f.attributes.x = new O(s, "x", -u / 3), f.attributes.y = new O(s, "y", -u / 3), f.attributes.width = new O(s, "width", u), f.attributes.height = new O(s, "height", u); var c = new un(s, null); c.attributes.transform = new O(s, "transform", this.getAttribute("gradientTransform").getValue()), c.children = [f]; var v = new _t(s, null); v.attributes.x = new O(s, "x", 0), v.attributes.y = new O(s, "y", 0), v.attributes.width = new O(s, "width", h.width), v.attributes.height = new O(s, "height", h.height), v.children = [c]; var d = s.createCanvas(h.width, h.height), g = d.getContext("2d"); return g.fillStyle = o, v.render(g), g.createPattern(d, "no-repeat"); } return o; } inheritStopContainer(e) { this.attributesToInherit.forEach((t) => { !this.getAttribute(t).hasValue() && e.getAttribute(t).hasValue() && this.getAttribute(t, !0).setValue(e.getAttribute(t).getValue()); }); } addParentOpacity(e, t) { if (e.hasValue()) { var r = new O(this.document, "color", t); return r.addOpacity(e).getColor(); } return t; } } class F1 extends wl { constructor(e, t, r) { super(e, t, r), this.type = "linearGradient", this.attributesToInherit.push("x1", "y1", "x2", "y2"); } getGradient(e, t) { var r = this.getGradientUnits() === "objectBoundingBox", i = r ? t.getBoundingBox(e) : null; if (r && !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 n = r ? i.x + i.width * this.getAttribute("x1").getNumber() : this.getAttribute("x1").getPixels("x"), o = r ? i.y + i.height * this.getAttribute("y1").getNumber() : this.getAttribute("y1").getPixels("y"), s = r ? i.x + i.width * this.getAttribute("x2").getNumber() : this.getAttribute("x2").getPixels("x"), u = r ? i.y + i.height * this.getAttribute("y2").getNumber() : this.getAttribute("y2").getPixels("y"); return n === s && o === u ? null : e.createLinearGradient(n, o, s, u); } } class j1 extends wl { constructor(e, t, r) { super(e, t, r), this.type = "radialGradient", this.attributesToInherit.push("cx", "cy", "r", "fx", "fy", "fr"); } getGradient(e, t) { var r = this.getGradientUnits() === "objectBoundingBox", i = t.getBoundingBox(e); if (r && !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 n = r ? i.x + i.width * this.getAttribute("cx").getNumber() : this.getAttribute("cx").getPixels("x"), o = r ? i.y + i.height * this.getAttribute("cy").getNumber() : this.getAttribute("cy").getPixels("y"), s = n, u = o; this.getAttribute("fx").hasValue() && (s = r ? i.x + i.width * this.getAttribute("fx").getNumber() : this.getAttribute("fx").getPixels("x")), this.getAttribute("fy").hasValue() && (u = r ? i.y + i.height * this.getAttribute("fy").getNumber() : this.getAttribute("fy").getPixels("y")); var l = r ? (i.width + i.height) / 2 * this.getAttribute("r").getNumber() : this.getAttribute("r").getPixels(), h = this.getAttribute("fr").getPixels(); return e.createRadialGradient(s, u, h, n, o, l); } } class U1 extends I { constructor(e, t, r) { super(e, t, r), this.type = "stop"; var i = Math.max(0, Math.min(1, this.getAttribute("offset").getNumber())), n = this.getStyle("stop-opacity"), o = this.getStyle("stop-color", !0); o.getString() === "" && o.setValue("#000"), n.hasValue() && (o = o.addOpacity(n)), this.offset = i, this.color = o.getColor(); } } class ln extends I { constructor(e, t, r) { super(e, t, r), 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 O(e, "values", null); var i = this.getAttribute("values"); i.hasValue() && this.values.setValue(i.getString().split(";")); } getProperty() { var e = this.getAttribute("attributeType").getString(), t = this.getAttribute("attributeName").getString(); return e === "CSS" ? this.parent.getStyle(t, !0) : this.parent.getAttribute(t, !0); } calcValue() { var { initialUnits: e } = this, { progress: t, from: r, to: i } = this.getProgress(), n = r.getNumber() + (i.getNumber() - r.getNumber()) * t; return e === "%" && (n *= 100), "".concat(n).concat(e); } update(e) { var { parent: t } = this, r = this.getProperty(); if (this.initialValue || (this.initialValue = r.getString(), this.initialUnits = r.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, t.animationFrozen = !0, t.animationFrozenValue = r.getString(); else if (i === "remove" && !this.removed) return this.removed = !0, r.setValue(t.animationFrozen ? t.animationFrozenValue : this.initialValue), !0; return !1; } this.duration += e; var n = !1; if (this.begin < this.duration) { var o = this.calcValue(), s = this.getAttribute("type"); if (s.hasValue()) { var u = s.getString(); o = "".concat(u, "(").concat(o, ")"); } r.setValue(o), n = !0; } return n; } getProgress() { var { document: e, values: t } = this, r = { progress: (this.duration - this.begin) / (this.maxDuration - this.begin) }; if (t.hasValue()) { var i = r.progress * (t.getValue().length - 1), n = Math.floor(i), o = Math.ceil(i); r.from = new O(e, "from", parseFloat(t.getValue()[n])), r.to = new O(e, "to", parseFloat(t.getValue()[o])), r.progress = (i - n) / (o - n); } else r.from = this.from, r.to = this.to; return r; } } class z1 extends ln { constructor() { super(...arguments), this.type = "animateColor"; } calcValue() { var { progress: e, from: t, to: r } = this.getProgress(), i = new xi(t.getColor()), n = new xi(r.getColor()); if (i.ok && n.ok) { var o = i.r + (n.r - i.r) * e, s = i.g + (n.g - i.g) * e, u = i.b + (n.b - i.b) * e; return "rgb(".concat(Math.floor(o), ", ").concat(Math.floor(s), ", ").concat(Math.floor(u), ")"); } return this.getAttribute("from").getColor(); } } class G1 extends ln { constructor() { super(...arguments), this.type = "animateTransform"; } calcValue() { var { progress: e, from: t, to: r } = this.getProgress(), i = ie(t.getString()), n = ie(r.getString()), o = i.map((s, u) => { var l = n[u]; return s + (l - s) * e; }).join(" "); return o; } } class H1 extends I { constructor(e, t, r) { super(e, t, r), this.type = "font", this.glyphs = {}, this.horizAdvX = this.getAttribute("horiz-adv-x").getNumber(); var { definitions: i } = e, { children: n } = this; for (var o of n) switch (o.type) { case "font-face": { this.fontFace = o; var s = o.getStyle("font-family"); s.hasValue() && (i[s.getString()] = this); break; } case "missing-glyph": this.missingGlyph = o; break; case "glyph": { var u = o; u.arabicForm ? (this.isRTL = !0, this.isArabic = !0, typeof this.glyphs[u.unicode] > "u" && (this.glyphs[u.unicode] = {}), this.glyphs[u.unicode][u.arabicForm] = u) : this.glyphs[u.unicode] = u; break; } } } render() { } } class Y1 extends I { constructor(e, t, r) { super(e, t, r), 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 X1 extends A { constructor() { super(...arguments), this.type = "missing-glyph", this.horizAdvX = 0; } } class W1 extends Ce { constructor() { super(...arguments), this.type = "tref"; } getText() { var e = this.getHrefAttribute().getDefinition(); if (e) { var t = e.children[0]; if (t) return t.getText(); } return ""; } } class q1 extends Ce { constructor(e, t, r) { super(e, t, r), this.type = "a"; var { childNodes: i } = t, n = i[0], o = i.length > 0 && Array.from(i).every((s) => s.nodeType === 3); this.hasText = o, this.text = o ? this.getTextFromNode(n) : ""; } getText() { return this.text; } renderChildren(e) { if (this.hasText) { super.renderChildren(e); var { document: t, x: r, y: i } = this, { mouse: n } = t.screen, o = new O(t, "fontSize", J.parse(t.ctx.font).fontSize); n.isWorking() && n.checkBoundingBox(this, new he(r, i - o.getPixels("y"), r + this.measureText(e), i)); } else if (this.children.length > 0) { var s = new un(this.document, null); s.children = this.children, s.parent = this, s.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 Mo(a, e) { var t = Object.keys(a); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(a); e && (r = r.filter(function(i) { return Object.getOwnPropertyDescriptor(a, i).enumerable; })), t.push.apply(t, r); } return t; } function nr(a) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e] != null ? arguments[e] : {}; e % 2 ? Mo(Object(t), !0).forEach(function(r) { nn(a, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(t)) : Mo(Object(t)).forEach(function(r) { Object.defineProperty(a, r, Object.getOwnPropertyDescriptor(t, r)); }); } return a; } class Q1 extends Ce { constructor(e, t, r) { super(e, t, r), 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: t } = this; e && e.beginPath(), t.forEach((r) => { var { type: i, points: n } = r; switch (i) { case w.LINE_TO: e && e.lineTo(n[0], n[1]); break; case w.MOVE_TO: e && e.moveTo(n[0], n[1]); break; case w.CURVE_TO: e && e.bezierCurveTo(n[0], n[1], n[2], n[3], n[4], n[5]); break; case w.QUAD_TO: e && e.quadraticCurveTo(n[0], n[1], n[2], n[3]); break; case w.ARC: { var [o, s, u, l, h, f, c, v] = n, d = u > l ? u : l, g = u > l ? 1 : u / l, p = u > l ? l / u : 1; e && (e.translate(o, s), e.rotate(c), e.scale(g, p), e.arc(0, 0, d, h, h + f, !!(1 - v)), e.scale(1 / g, 1 / p), e.rotate(-c), e.translate(-o, -s)); break; } case w.CLOSE_PATH: e && e.closePath(); break; } }); } renderChildren(e) { this.setTextData(e), e.save(); var t = this.parent.getStyle("text-decoration").getString(), r = this.getFontSize(), { glyphInfo: i } = this, n = e.fillStyle; t === "underline" && e.beginPath(), i.forEach((o, s) => { var { p0: u, p1: l, rotation: h, text: f } = o; e.save(), e.translate(u.x, u.y), e.rotate(h), e.fillStyle && e.fillText(f, 0, 0), e.strokeStyle && e.strokeText(f, 0, 0), e.restore(), t === "underline" && (s === 0 && e.moveTo(u.x, u.y + r / 8), e.lineTo(l.x, l.y + r / 5)); }), t === "underline" && (e.lineWidth = r / 20, e.strokeStyle = n, 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, t, r, i, n, o, s, u, l) { var h = o, f = this.measureText(e, u); u === " " && t === "justify" && r < i && (f += (i - r) / n), l > -1 && (h += this.getLetterSpacingAt(l)); var c = this.textHeight / 20, v = this.getEquidistantPointOnPath(h, c, 0), d = this.getEquidistantPointOnPath(h + f, c, 0), g = { p0: v, p1: d }, p = v && d ? Math.atan2(d.y - v.y, d.x - v.x) : 0; if (s) { var y = Math.cos(Math.PI / 2 + p) * s, x = Math.cos(-p) * s; g.p0 = nr(nr({}, v), {}, { x: v.x + y, y: v.y + x }), g.p1 = nr(nr({}, d), {}, { x: d.x + y, y: d.y + x }); } return h += f, { offset: h, segment: g, rotation: p }; } measureText(e, t) { var { measuresCache: r } = this, i = t || this.getText(); if (r.has(i)) return r.get(i); var n = this.measureTargetText(e, i); return r.set(i, n), n; } // This method supposes what all custom fonts already loaded. // If some font will be loaded after this method call, will not be rendered correctly. // You need to call this method manually to update glyphs cache. setTextData(e) { if (!this.glyphInfo) { var t = this.getText(), r = t.split(""), i = t.split(" ").length - 1, n = this.parent.getAttribute("dx").split().map((T) => T.getPixels("x")), o = this.parent.getAttribute("dy").getPixels("y"), s = 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 f = [], c = t.length; this.letterSpacingCache = f; for (var v = 0; v < c; v++) f.push(typeof n[v] < "u" ? n[v] : h); var d = f.reduce((T, $, E) => E === 0 ? 0 : T + $ || 0, 0), g = this.measureText(e), p = Math.max(g + d, 0); this.textWidth = g, this.textHeight = this.getFontSize(), this.glyphInfo = []; var y = this.getPathLength(), x = this.getStyle("startOffset").getNumber(0) * y, b = 0; (s === "middle" || s === "center") && (b = -p / 2), (s === "end" || s === "right") && (b = -p), b += x, r.forEach((T, $) => { var { offset: E, segment: S, rotation: C } = this.findSegmentToFitChar(e, s, p, y, i, b, o, T, $); b = E, !(!S.p0 || !S.p1) && this.glyphInfo.push({ // transposeX: midpoint.x, // transposeY: midpoint.y, text: r[$], p0: S.p0, p1: S.p1, rotation: C }); }); } } parsePathData(e) { if (this.pathLength = -1, !e) return []; var t = [], { pathParser: r } = e; for (r.reset(); !r.isEnd(); ) { var { current: i } = r, n = i ? i.x : 0, o = i ? i.y : 0, s = r.next(), u = s.type, l = []; switch (s.type) { case w.MOVE_TO: this.pathM(r, l); break; case w.LINE_TO: u = this.pathL(r, l); break; case w.HORIZ_LINE_TO: u = this.pathH(r, l); break; case w.VERT_LINE_TO: u = this.pathV(r, l); break; case w.CURVE_TO: this.pathC(r, l); break; case w.SMOOTH_CURVE_TO: u = this.pathS(r, l); break; case w.QUAD_TO: this.pathQ(r, l); break; case w.SMOOTH_QUAD_TO: u = this.pathT(r, l); break; case w.ARC: l = this.pathA(r); break; case w.CLOSE_PATH: A.pathZ(r); break; } s.type !== w.CLOSE_PATH ? t.push({ type: u, points: l, start: { x: n, y: o }, pathLength: this.calcLength(n, o, u, l) }) : t.push({ type: w.CLOSE_PATH, points: [], pathLength: 0 }); } return t; } pathM(e, t) { var { x: r, y: i } = A.pathM(e).point; t.push(r, i); } pathL(e, t) { var { x: r, y: i } = A.pathL(e).point; return t.push(r, i), w.LINE_TO; } pathH(e, t) { var { x: r, y: i } = A.pathH(e).point; return t.push(r, i), w.LINE_TO; } pathV(e, t) { var { x: r, y: i } = A.pathV(e).point; return t.push(r, i), w.LINE_TO; } pathC(e, t) { var { point: r, controlPoint: i, currentPoint: n } = A.pathC(e); t.push(r.x, r.y, i.x, i.y, n.x, n.y); } pathS(e, t) { var { point: r, controlPoint: i, currentPoint: n } = A.pathS(e); return t.push(r.x, r.y, i.x, i.y, n.x, n.y), w.CURVE_TO; } pathQ(e, t) { var { controlPoint: r, currentPoint: i } = A.pathQ(e); t.push(r.x, r.y, i.x, i.y); } pathT(e, t) { var { controlPoint: r, currentPoint: i } = A.pathT(e); return t.push(r.x, r.y, i.x, i.y), w.QUAD_TO; } pathA(e) { var { rX: t, rY: r, sweepFlag: i, xAxisRotation: n, centp: o, a1: s, ad: u } = A.pathA(e); return i === 0 && u > 0 && (u -= 2 * Math.PI), i === 1 && u < 0 && (u += 2 * Math.PI), [o.x, o.y, t, r, s, u, n, i]; } calcLength(e, t, r, i) { var n = 0, o = null, s = null, u = 0; switch (r) { case w.LINE_TO: return this.getLineLength(e, t, i[0], i[1]); case w.CURVE_TO: for (n = 0, o = this.getPointOnCubicBezier(0, e, t, i[0], i[1], i[2], i[3], i[4], i[5]), u = 0.01; u <= 1; u += 0.01) s = this.getPointOnCubicBezier(u, e, t, i[0], i[1], i[2], i[3], i[4], i[5]), n += this.getLineLength(o.x, o.y, s.x, s.y), o = s; return n; case w.QUAD_TO: for (n = 0, o = this.getPointOnQuadraticBezier(0, e, t, i[0], i[1], i[2], i[3]), u = 0.01; u <= 1; u += 0.01) s = this.getPointOnQuadraticBezier(u, e, t, i[0], i[1], i[2], i[3]), n += this.getLineLength(o.x, o.y, s.x, s.y), o = s; return n; case w.ARC: { n = 0; var l = i[4], h = i[5], f = i[4] + h, c = Math.PI / 180; if (Math.abs(l - f) < c && (c = Math.abs(l - f)), o = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], l, 0), h < 0) for (u = l - c; u > f; u -= c) s = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], u, 0), n += this.getLineLength(o.x, o.y, s.x, s.y), o = s; else for (u = l + c; u < f; u += c) s = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], u, 0), n += this.getLineLength(o.x, o.y, s.x, s.y), o = s; return s = this.getPointOnEllipticalArc(i[0], i[1], i[2], i[3], f, 0), n += this.getLineLength(o.x, o.y, s.x, s.y), n; } } return 0; } getPointOnLine(e, t, r, i, n) { var o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : t, s = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : r, u = (n - r) / (i - t + nt), l = Math.sqrt(e * e / (1 + u * u)); i < t && (l *= -1); var h = u * l, f = null; if (i === t) f = { x: o, y: s + h }; else if ((s - r) / (o - t + nt) === u) f = { x: o + l, y: s + h }; else { var c = 0, v = 0, d = this.getLineLength(t, r, i, n); if (d < nt) return null; var g = (o - t) * (i - t) + (s - r) * (n - r); g /= d * d, c = t + g * (i - t), v = r + g * (n - r); var p = this.getLineLength(o, s, c, v), y = Math.sqrt(e * e - p * p); l = Math.sqrt(y * y / (1 + u * u)), i < t && (l *= -1), h = u * l, f = { x: c + l, y: v + h }; } return f; } getPointOnPath(e) { var t = this.getPathLength(), r = 0, i = null; if (e < -5e-5 || e - 5e-5 > t) return null; var { dataArray: n } = this; for (var o of n) { if (o && (o.pathLength < 5e-5 || r + o.pathLength + 5e-5 < e)) { r += o.pathLength; continue; } var s = e - r, u = 0; switch (o.type) { case w.LINE_TO: i = this.getPointOnLine(s, o.start.x, o.start.y, o.points[0], o.points[1], o.start.x, o.start.y); break; case w.ARC: { var l = o.points[4], h = o.points[5], f = o.points[4] + h; if (u = l + s / o.pathLength * h, h < 0 && u < f || h >= 0 && u > f) break; i = this.getPointOnEllipticalArc(o.points[0], o.points[1], o.points[2], o.points[3], u, o.points[6]); break; } case w.CURVE_TO: u = s / o.pathLength, u > 1 && (u = 1), i = this.getPointOnCubicBezier(u, o.start.x, o.start.y, o.points[0], o.points[1], o.points[2], o.points[3], o.points[4], o.points[5]); break; case w.QUAD_TO: u = s / o.pathLength, u > 1 && (u = 1), i = this.getPointOnQuadraticBezier(u, o.start.x, o.start.y, o.points[0], o.points[1], o.points[2], o.points[3]); break; } if (i) return i; break; } return null; } getLineLength(e, t, r, i) { return Math.sqrt((r - e) * (r - e) + (i - t) * (i - t)); } getPathLength() { return this.pathLength === -1 && (this.pathLength = this.dataArray.reduce((e, t) => t.pathLength > 0 ? e + t.pathLength : e, 0)), this.pathLength; } getPointOnCubicBezier(e, t, r, i, n, o, s, u, l) { var h = u * wo(e) + o * Co(e) + i * Ao(e) + t * Po(e), f = l * wo(e) + s * Co(e) + n * Ao(e) + r * Po(e); return { x: h, y: f }; } getPointOnQuadraticBezier(e, t, r, i, n, o, s) { var u = o * Ro(e) + i * Io(e) + t * No(e), l = s * Ro(e) + n * Io(e) + r * No(e); return { x: u, y: l }; } getPointOnEllipticalArc(e, t, r, i, n, o) { var s = Math.cos(o), u = Math.sin(o), l = { x: r * Math.cos(n), y: i * Math.sin(n) }; return { x: e + (l.x * s - l.y * u), y: t + (l.x * u + l.y * s) }; } // TODO need some optimisations. possibly build cache only for curved segments? buildEquidistantCache(e, t) { var r = this.getPathLength(), i = t || 0.25, n = e || r / 100; if (!this.equidistantCache || this.equidistantCache.step !== n || this.equidistantCache.precision !== i) { this.equidistantCache = { step: n, precision: i, points: [] }; for (var o = 0, s = 0; s <= r; s += i) { var u = this.getPointOnPath(s), l = this.getPointOnPath(s + i); !u || !l || (o += this.getLineLength(u.x, u.y, l.x, l.y), o >= n && (this.equidistantCache.points.push({ x: u.x, y: u.y, distance: s }), o -= n)); } } } getEquidistantPointOnPath(e, t, r) { if (this.buildEquidistantCache(t, r), 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 K1 = /^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i; class Z1 extends He { constructor(e, t, r) { super(e, t, r), this.type = "image", this.loaded = !1; var i = this.getHrefAttribute().getString(); if (i) { var n = i.endsWith(".svg") || /^\s*data:image\/svg\+xml/i.test(i); e.images.push(this), n ? this.loadSvg(i) : this.loadImage(i), this.isSvg = n; } } loadImage(e) { var t = this; return xe(function* () { try { var r = yield t.document.createImage(e); t.image = r; } catch (i) { console.error('Error while loading image "'.concat(e, '":'), i); } t.loaded = !0; })(); } loadSvg(e) { var t = this; return xe(function* () { var r = K1.exec(e); if (r) { var i = r[5]; r[4] === "base64" ? t.image = atob(i) : t.image = decodeURIComponent(i); } else try { var n = yield t.document.fetch(e), o = yield n.text(); t.image = o; } catch (s) { console.error('Error while loading image "'.concat(e, '":'), s); } t.loaded = !0; })(); } renderChildren(e) { var { document: t, image: r, loaded: i } = this, n = this.getAttribute("x").getPixels("x"), o = this.getAttribute("y").getPixels("y"), s = this.getStyle("width").getPixels("x"), u = this.getStyle("height").getPixels("y"); if (!(!i || !r || !s || !u)) { if (e.save(), e.translate(n, o), this.isSvg) { var l = t.canvg.forkString(e, this.image, { ignoreMouse: !0, ignoreAnimation: !0, ignoreDimensions: !0, ignoreClear: !0, offsetX: 0, offsetY: 0, scaleWidth: s, scaleHeight: u }); l.document.documentElement.parent = this, l.render(); } else { var h = this.image; t.setViewBox({ ctx: e, aspectRatio: this.getAttribute("preserveAspectRatio").getString(), width: s, 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"), t = this.getAttribute("y").getPixels("y"), r = this.getStyle("width").getPixels("x"), i = this.getStyle("height").getPixels("y"); return new he(e, t, e + r, t + i); } } class J1 extends He { constructor() { super(...arguments), this.type = "symbol"; } render(e) { } } class e2 { constructor(e) { this.document = e, this.loaded = !1, e.fonts.push(this); } load(e, t) { var r = this; return xe(function* () { try { var { document: i } = r, n = yield i.canvg.parser.load(t), o = n.getElementsByTagName("font"); Array.from(o).forEach((s) => { var u = i.createElement(s); i.definitions[e] = u; }); } catch (s) { console.error('Error while loading font "'.concat(t, '":'), s); } r.loaded = !0; })(); } } class Cl extends I { constructor(e, t, r) { super(e, t, r), this.type = "style"; var i = ft( Array.from(t.childNodes).map((o) => o.textContent).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, "").replace(/@import.*;/g, "") // remove imports ), n = i.split("}"); n.forEach((o) => { var s = o.trim(); if (s) { var u = s.split("{"), l = u[0].split(","), h = u[1].split(";"); l.forEach((f) => { var c = f.trim(); if (c) { var v = e.styles[c] || {}; if (h.forEach((p) => { var y = p.indexOf(":"), x = p.substr(0, y).trim(), b = p.substr(y + 1, p.length - y).trim(); x && b && (v[x] = new O(e, x, b)); }), e.styles[c] = v, e.stylesSpecificity[c] = d1(c), c === "@font-face") { var d = v["font-family"].getString().replace(/"|'/g, ""), g = v.src.getString().split(","); g.forEach((p) => { if (p.indexOf('format("svg")') > 0) { var y = ml(p); y && new e2(e).load(d, y); } }); } } }); } }); } } Cl.parseExternalUrl = ml; class t2 extends He { constructor() { super(...arguments), this.type = "use"; } setContext(e) { super.setContext(e); var t = this.getAttribute("x"), r = this.getAttribute("y"); t.hasValue() && e.translate(t.getPixels("x"), 0), r.hasValue() && e.translate(0, r.getPixels("y")); } path(e) { var { element: t } = this; t && t.path(e); } renderChildren(e) { var { document: t, element: r } = this; if (r) { var i = r; if (r.type === "symbol" && (i = new _t(t, null), i.attributes.viewBox = new O(t, "viewBox", r.getAttribute("viewBox").getString()), i.attributes.preserveAspectRatio = new O(t, "preserveAspectRatio", r.getAttribute("preserveAspectRatio").getString()), i.attributes.overflow = new O(t, "overflow", r.getAttribute("overflow").getString()), i.children = r.children, r.styles.opacity = new O(t, "opacity", this.calculateOpacity())), i.type === "svg") { var n = this.getStyle("width", !1, !0), o = this.getStyle("height", !1, !0); n.hasValue() && (i.attributes.width = new O(t, "width", n.getString())), o.hasValue() && (i.attributes.height = new O(t, "height", o.getString())); } var s = i.parent; i.parent = this, i.render(e), i.parent = s; } } getBoundingBox(e) { var { element: t } = this; return t ? t.getBoundingBox(e) : null; } elementTransform() { var { document: e, element: t } = this; return Fe.fromElement(e, t); } get element() { return this.cachedElement || (this.cachedElement = this.getHrefAttribute().getDefinition()), this.cachedElement; } } function sr(a, e, t, r, i, n) { return a[t * r * 4 + e * 4 + n]; } function or(a, e, t, r, i, n, o) { a[t * r * 4 + e * 4 + n] = o; } function F(a, e, t) { var r = a[e]; return r * t; } function me(a, e, t, r) { return e + Math.cos(a) * t + Math.sin(a) * r; } class Al extends I { constructor(e, t, r) { super(e, t, r), this.type = "feColorMatrix"; var i = ie(this.getAttribute("values").getString()); switch (this.getAttribute("type").getString("matrix")) { case "saturate": { var n = i[0]; i = [0.213 + 0.787 * n, 0.715 - 0.715 * n, 0.072 - 0.072 * n, 0, 0, 0.213 - 0.213 * n, 0.715 + 0.285 * n, 0.072 - 0.072 * n, 0, 0, 0.213 - 0.213 * n, 0.715 - 0.715 * n, 0.072 + 0.928 * n, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; break; } case "hueRotate": { var o = i[0] * Math.PI / 180; i = [me(o, 0.213, 0.787, -0.213), me(o, 0.715, -0.715, -0.715), me(o, 0.072, -0.072, 0.928), 0, 0, me(o, 0.213, -0.213, 0.143), me(o, 0.715, 0.285, 0.14), me(o, 0.072, -0.072, -0.283), 0, 0, me(o, 0.213, -0.213, -0.787), me(o, 0.715, -0.715, 0.715), me(o, 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, t, r, i, n) { for (var { includeOpacity: o, matrix: s } = this, u = e.getImageData(0, 0, i, n), l = 0; l < n; l++) for (var h = 0; h < i; h++) { var f = sr(u.data, h, l, i, n, 0), c = sr(u.data, h, l, i, n, 1), v = sr(u.data, h, l, i, n, 2), d = sr(u.data, h, l, i, n, 3), g = F(s, 0, f) + F(s, 1, c) + F(s, 2, v) + F(s, 3, d) + F(s, 4, 1), p = F(s, 5, f) + F(s, 6, c) + F(s, 7, v) + F(s, 8, d) + F(s, 9, 1), y = F(s, 10, f) + F(s, 11, c) + F(s, 12, v) + F(s, 13, d) + F(s, 14, 1), x = F(s, 15, f) + F(s, 16, c) + F(s, 17, v) + F(s, 18, d) + F(s, 19, 1); o && (g = 0, p = 0, y = 0, x *= d / 255), or(u.data, h, l, i, n, 0, g), or(u.data, h, l, i, n, 1, p), or(u.data, h, l, i, n, 2, y), or(u.data, h, l, i, n, 3, x); } e.clearRect(0, 0, i, n), e.putImageData(u, 0, 0); } } class Fr extends I { constructor() { super(...arguments), this.type = "mask"; } apply(e, t) { var { document: r } = this, i = this.getAttribute("x").getPixels("x"), n = this.getAttribute("y").getPixels("y"), o = this.getStyle("width").getPixels("x"), s = this.getStyle("height").getPixels("y"); if (!o && !s) { var u = new he(); this.children.forEach((d) => { u.addBoundingBox(d.getBoundingBox(e)); }), i = Math.floor(u.x1), n = Math.floor(u.y1), o = Math.floor(u.width), s = Math.floor(u.height); } var l = this.removeStyles(t, Fr.ignoreStyles), h = r.createCanvas(i + o, n + s), f = h.getContext("2d"); r.screen.setDefaults(f), this.renderChildren(f), new Al(r, { nodeType: 1, childNodes: [], attributes: [{ nodeName: "type", value: "luminanceToAlpha" }, { nodeName: "includeOpacity", value: "true" }] }).apply(f, 0, 0, i + o, n + s); var c = r.createCanvas(i + o, n + s), v = c.getContext("2d"); r.screen.setDefaults(v), t.render(v), v.globalCompositeOperation = "destination-in", v.fillStyle = f.createPattern(h, "no-repeat"), v.fillRect(0, 0, i + o, n + s), e.fillStyle = v.createPattern(c, "no-repeat"), e.fillRect(0, 0, i + o, n + s), this.restoreStyles(t, l); } render(e) { } } Fr.ignoreStyles = ["mask", "transform", "clip-path"]; var _o = () => { }; class r2 extends I { constructor() { super(...arguments), this.type = "clipPath"; } apply(e) { var { document: t } = this, r = Reflect.getPrototypeOf(e), { beginPath: i, closePath: n } = e; r && (r.beginPath = _o, r.closePath = _o), Reflect.apply(i, e, []), this.children.forEach((o) => { if (!(typeof o.path > "u")) { var s = typeof o.elementTransform < "u" ? o.elementTransform() : null; s || (s = Fe.fromElement(t, o)), s && s.apply(e), o.path(e), r && (r.closePath = n), s && s.unapply(e); } }), Reflect.apply(n, e, []), e.clip(), r && (r.beginPath = i, r.closePath = n); } render(e) { } } class jr extends I { constructor() { super(...arguments), this.type = "filter"; } apply(e, t) { var { document: r, children: i } = this, n = t.getBoundingBox(e); if (n) { var o = 0, s = 0; i.forEach((y) => { var x = y.extraFilterDistance || 0; o = Math.max(o, x), s = Math.max(s, x); }); var u = Math.floor(n.width), l = Math.floor(n.height), h = u + 2 * o, f = l + 2 * s; if (!(h < 1 || f < 1)) { var c = Math.floor(n.x), v = Math.floor(n.y), d = this.removeStyles(t, jr.ignoreStyles), g = r.createCanvas(h, f), p = g.getContext("2d"); r.screen.setDefaults(p), p.translate(-c + o, -v + s), t.render(p), i.forEach((y) => { typeof y.apply == "function" && y.apply(p, 0, 0, h, f); }), e.drawImage(g, 0, 0, h, f, c - o, v - s, h, f), this.restoreStyles(t, d); } } } render(e) { } } jr.ignoreStyles = ["filter", "transform", "clip-path"]; class a2 extends I { constructor(e, t, r) { super(e, t, r), this.type = "feDropShadow", this.addStylesFromStyleDefinition(); } apply(e, t, r, i, n) { } } class i2 extends I { constructor() { super(...arguments), this.type = "feMorphology"; } apply(e, t, r, i, n) { } } class n2 extends I { constructor() { super(...arguments), this.type = "feComposite"; } apply(e, t, r, i, n) { } } class s2 extends I { constructor(e, t, r) { super(e, t, r), this.type = "feGaussianBlur", this.blurRadius = Math.floor(this.getAttribute("stdDeviation").getNumber()), this.extraFilterDistance = this.blurRadius; } apply(e, t, r, i, n) { var { document: o, blurRadius: s } = this, u = o.window ? o.window.document.body : null, l = e.canvas; l.id = o.getUniqueId(), u && (l.style.display = "none", u.appendChild(l)), Jb(l, t, r, i, n, s), u && u.removeChild(l); } } class o2 extends I { constructor() { super(...arguments), this.type = "title"; } } class u2 extends I { constructor() { super(...arguments), this.type = "desc"; } } var l2 = { svg: _t, rect: El, circle: M1, ellipse: _1, line: D1, polyline: $l, polygon: V1, path: A, pattern: L1, marker: k1, defs: B1, linearGradient: F1, radialGradient: j1, stop: U1, animate: ln, animateColor: z1, animateTransform: G1, font: H1, "font-face": Y1, "missing-glyph": X1, glyph: Ol, text: Ce, tspan: Br, tref: W1, a: q1, textPath: Q1, image: Z1, g: un, symbol: J1, style: Cl, use: t2, mask: Fr, clipPath: r2, filter: jr, feDropShadow: a2, feMorphology: i2, feComposite: n2, feColorMatrix: Al, feGaussianBlur: s2, title: o2, desc: u2 }; function Do(a, e) { var t = Object.keys(a); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(a); e && (r = r.filter(function(i) { return Object.getOwnPropertyDescriptor(a, i).enumerable; })), t.push.apply(t, r); } return t; } function h2(a) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e] != null ? arguments[e] : {}; e % 2 ? Do(Object(t), !0).forEach(function(r) { nn(a, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(t)) : Do(Object(t)).forEach(function(r) { Object.defineProperty(a, r, Object.getOwnPropertyDescriptor(t, r)); }); } return a; } function v2(a, e) { var t = document.createElement("canvas"); return t.width = a, t.height = e, t; } function f2(a) { return Ei.apply(this, arguments); } function Ei() { return Ei = xe(function* (a) { var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, t = document.createElement("img"); return e && (t.crossOrigin = "Anonymous"), new Promise((r, i) => { t.onload = () => { r(t); }, t.onerror = (n, o, s, u, l) => { i(l); }, t.src = a; }); }), Ei.apply(this, arguments); } class $e { constructor(e) { var { rootEmSize: t = 12, emSize: r = 12, createCanvas: i = $e.createCanvas, createImage: n = $e.createImage, anonymousCrossOrigin: o } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; this.canvg = e, this.definitions = {}, this.styles = {}, this.stylesSpecificity = {}, this.images = [], this.fonts = [], this.emSizeStack = [], this.uniqueId = 0, this.screen = e.screen, this.rootEmSize = t, this.emSize = r, this.createCanvas = i, this.createImage = this.bindCreateImage(n, o), this.screen.wait(this.isImagesLoaded.bind(this)), this.screen.wait(this.isFontsLoaded.bind(this)); } bindCreateImage(e, t) { return typeof t == "boolean" ? (r, i) => e(r, typeof i == "boolean" ? i : t) : 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: t } = this; t.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 t = this.createElement(e.documentElement); return t.root = !0, t.addStylesFromStyleDefinition(), this.documentElement = t, t; } createElement(e) { var t = e.nodeName.replace(/^[^:]+:/, ""), r = $e.elementTypes[t]; return typeof r < "u" ? new r(this, e) : new C1(this, e); } createTextNode(e) { return new N1(this, e); } setViewBox(e) { this.screen.setViewBox(h2({ document: this }, e)); } } $e.createCanvas = v2; $e.createImage = f2; $e.elementTypes = l2; function Vo(a, e) { var t = Object.keys(a); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(a); e && (r = r.filter(function(i) { return Object.getOwnPropertyDescriptor(a, i).enumerable; })), t.push.apply(t, r); } return t; } function De(a) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e] != null ? arguments[e] : {}; e % 2 ? Vo(Object(t), !0).forEach(function(r) { nn(a, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(t)) : Vo(Object(t)).forEach(function(r) { Object.defineProperty(a, r, Object.getOwnPropertyDescriptor(t, r)); }); } return a; } class xt { /** * Main constructor. * @param ctx - Rendering context. * @param svg - SVG Document. * @param options - Rendering options. */ constructor(e, t) { var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; this.parser = new Ha(r), this.screen = new kr(e, r), this.options = r; var i = new $e(this, r), n = i.createDocumentElement(t); this.document = i, this.documentElement = n; } /** * 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, t) { var r = arguments; return xe(function* () { var i = r.length > 2 && r[2] !== void 0 ? r[2] : {}, n = new Ha(i), o = yield n.parse(t); return new xt(e, o, 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, t) { var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, i = new Ha(r), n = i.parseFromString(t); return new xt(e, n, r); } /** * 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, t) { var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; return xt.from(e, t, De(De({}, this.options), r)); } /** * 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, t) { var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; return xt.fromString(e, t, De(De({}, this.options), r)); } /** * 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, t = this; return xe(function* () { var r = e.length > 0 && e[0] !== void 0 ? e[0] : {}; t.start(De({ enableRedraw: !0, ignoreAnimation: !0, ignoreMouse: !0 }, r)), yield t.ready(), t.stop(); })(); } /** * Start rendering. * @param options - Render options. */ start() { var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, { documentElement: t, screen: r, options: i } = this; r.start(t, De(De({ 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 t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : e, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1; this.documentElement.resize(e, t, r); } } export { q1 as AElement, z1 as AnimateColorElement, ln as AnimateElement, G1 as AnimateTransformElement, he as BoundingBox, wo as CB1, Co as CB2, Ao as CB3, Po as CB4, xt as Canvg, M1 as CircleElement, r2 as ClipPathElement, B1 as DefsElement, u2 as DescElement, $e as Document, I as Element, _1 as EllipseElement, Al as FeColorMatrixElement, n2 as FeCompositeElement, a2 as FeDropShadowElement, s2 as FeGaussianBlurElement, i2 as FeMorphologyElement, jr as FilterElement, J as Font, H1 as FontElement, Y1 as FontFaceElement, un as GElement, Ol as GlyphElement, wl as GradientElement, Z1 as ImageElement, D1 as LineElement, F1 as LinearGradientElement, k1 as MarkerElement, Fr as MaskElement, Tl as Matrix, X1 as MissingGlyphElement, y1 as Mouse, nt as PSEUDO_ZERO, Ha as Parser, A as PathElement, w as PathParser, L1 as PatternElement, V as Point, V1 as PolygonElement, $l as PolylineElement, O as Property, Ro as QB1, Io as QB2, No as QB3, j1 as RadialGradientElement, El as RectElement, He as RenderedElement, T1 as Rotate, _t as SVGElement, e2 as SVGFontLoader, S1 as Scale, kr as Screen, Sl as Skew, O1 as SkewX, E1 as SkewY, U1 as StopElement, Cl as StyleElement, J1 as SymbolElement, W1 as TRefElement, Br as TSpanElement, Ce as TextElement, Q1 as TextPathElement, o2 as TitleElement, Fe as Transform, x1 as Translate, C1 as UnknownElement, t2 as UseElement, p1 as ViewPort, ft as compressSpaces, xt as default, d1 as getSelectorSpecificity, s1 as normalizeAttributeName, o1 as normalizeColor, ml as parseExternalUrl, p2 as presets, ie as toNumbers, a1 as trimLeft, i1 as trimRight, Eo as vectorMagnitude, $o as vectorsAngle, Oi as vectorsRatio };