var Kc = Object.defineProperty
var qc = (e, t, n) => (t in e ? Kc(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : (e[t] = n))
var Qo = (e, t, n) => qc(e, typeof t != 'symbol' ? t + '' : t, n)
import {
i as _c,
a as cn,
g as $i,
r as Pt,
d as Xo,
b as $c,
c as Dr,
e as eu,
f as un,
h as es,
j as tu,
k as Zr,
l as Ut,
S as kn,
L as ao,
M as Wi,
m as Sr,
t as zn,
n as nu,
o as Nr,
p as ro,
q as jr,
s as en,
u as Gr,
v as iu,
w as q,
x as ts,
y as su,
z as kr,
A as ze,
B as C,
C as ou,
D as Bs,
E as Br,
F as au,
G as Ne,
H as ru,
I as tt,
J as ye,
K as ee,
N as Q,
O as he,
P as M,
Q as Vt,
R as T,
T as Z,
U as $,
V as dn,
W as h,
X as dt,
Y,
Z as di,
_ as Ys,
$ as Nt,
a0 as Yr,
a1 as lu,
a2 as de,
a3 as Be,
a4 as ht,
a5 as cu,
a6 as uu,
a7 as Nn,
a8 as Oe,
a9 as Ee,
aa as du,
ab as pi,
ac as ns,
ad as X,
ae as je,
af as B,
ag as _,
ah as x,
ai as Fe,
aj as P,
ak as Ze,
al as Fi,
am as ce,
an as Ue,
ao as vt,
ap as xe,
aq as We,
ar as bn,
as as at,
at as it,
au as lt,
av as pu,
aw as Ur,
ax as Au,
ay as Tr,
az as gu,
aA as Yt,
aB as fu,
aC as Jr,
aD as Tt,
aE as Ye,
aF as bu,
aG as is,
aH as hu,
aI as vu,
aJ as Le,
aK as mu,
aL as Wn,
aM as Us,
aN as Ts,
aO as Li,
aP as xi,
aQ as Fn,
aR as lo,
aS as yu,
aT as ms,
aU as wu,
aV as Ru,
aW as Iu,
aX as Eu,
aY as Mu,
aZ as Du,
a_ as $t,
a$ as Zu,
b0 as Jt,
b1 as _n,
b2 as Su,
b3 as Nu,
b4 as ju,
b5 as Gu,
b6 as ku,
b7 as Et,
b8 as Cr,
b9 as Po,
ba as Bu,
bb as Yu,
bc as co,
} from './index-DmgdtqYn.js'
var Uu = /\s/
function Tu(e) {
for (var t = e.length; t-- && Uu.test(e.charAt(t)); );
return t
}
var Ju = /^\s+/
function Cu(e) {
return e && e.slice(0, Tu(e) + 1).replace(Ju, '')
}
var Ho = NaN,
Ou = /^[-+]0x[0-9a-f]+$/i,
zu = /^0b[01]+$/i,
Wu = /^0o[0-7]+$/i,
Fu = parseInt
function Ko(e) {
if (typeof e == 'number') return e
if (_c(e)) return Ho
if (cn(e)) {
var t = typeof e.valueOf == 'function' ? e.valueOf() : e
e = cn(t) ? t + '' : t
}
if (typeof e != 'string') return e === 0 ? e : +e
e = Cu(e)
var n = zu.test(e)
return n || Wu.test(e) ? Fu(e.slice(2), n ? 2 : 8) : Ou.test(e) ? Ho : +e
}
function Or(e) {
return e
}
var Js = $i(Pt, 'WeakMap'),
qo = Object.create,
Lu = (function () {
function e() {}
return function (t) {
if (!cn(t)) return {}
if (qo) return qo(t)
e.prototype = t
var n = new e()
return (e.prototype = void 0), n
}
})()
function xu(e, t, n) {
switch (n.length) {
case 0:
return e.call(t)
case 1:
return e.call(t, n[0])
case 2:
return e.call(t, n[0], n[1])
case 3:
return e.call(t, n[0], n[1], n[2])
}
return e.apply(t, n)
}
function Vu(e, t) {
var n = -1,
i = e.length
for (t || (t = Array(i)); ++n < i; ) t[n] = e[n]
return t
}
var Qu = 800,
Xu = 16,
Pu = Date.now
function Hu(e) {
var t = 0,
n = 0
return function () {
var i = Pu(),
s = Xu - (i - n)
if (((n = i), s > 0)) {
if (++t >= Qu) return arguments[0]
} else t = 0
return e.apply(void 0, arguments)
}
}
function Ku(e) {
return function () {
return e
}
}
var qu = Xo
? function (e, t) {
return Xo(e, 'toString', { configurable: !0, enumerable: !1, value: Ku(t), writable: !0 })
}
: Or,
_u = Hu(qu)
function $u(e, t) {
for (var n = -1, i = e == null ? 0 : e.length; ++n < i && t(e[n], n, e) !== !1; );
return e
}
function ed(e, t, n, i) {
e.length
for (var s = n + 1; s--; ) if (t(e[s], s, e)) return s
return -1
}
function ss(e, t, n, i) {
var s = !n
n || (n = {})
for (var a = -1, o = t.length; ++a < o; ) {
var r = t[a],
l = void 0
l === void 0 && (l = e[r]), s ? $c(n, r, l) : Dr(n, r, l)
}
return n
}
var _o = Math.max
function td(e, t, n) {
return (
(t = _o(t === void 0 ? e.length - 1 : t, 0)),
function () {
for (var i = arguments, s = -1, a = _o(i.length - t, 0), o = Array(a); ++s < a; ) o[s] = i[t + s]
s = -1
for (var r = Array(t + 1); ++s < t; ) r[s] = i[s]
return (r[t] = n(o)), xu(e, this, r)
}
)
}
var nd = 9007199254740991
function uo(e) {
return typeof e == 'number' && e > -1 && e % 1 == 0 && e <= nd
}
function zr(e) {
return e != null && uo(e.length) && !eu(e)
}
var id = Object.prototype
function po(e) {
var t = e && e.constructor,
n = (typeof t == 'function' && t.prototype) || id
return e === n
}
function sd(e, t) {
for (var n = -1, i = Array(e); ++n < e; ) i[n] = t(n)
return i
}
var od = '[object Arguments]'
function $o(e) {
return un(e) && es(e) == od
}
var Wr = Object.prototype,
ad = Wr.hasOwnProperty,
rd = Wr.propertyIsEnumerable,
Ao = $o(
(function () {
return arguments
})()
)
? $o
: function (e) {
return un(e) && ad.call(e, 'callee') && !rd.call(e, 'callee')
}
function ld() {
return !1
}
var Fr = typeof exports == 'object' && exports && !exports.nodeType && exports,
ea = Fr && typeof module == 'object' && module && !module.nodeType && module,
cd = ea && ea.exports === Fr,
ta = cd ? Pt.Buffer : void 0,
ud = ta ? ta.isBuffer : void 0,
Vi = ud || ld,
dd = '[object Arguments]',
pd = '[object Array]',
Ad = '[object Boolean]',
gd = '[object Date]',
fd = '[object Error]',
bd = '[object Function]',
hd = '[object Map]',
vd = '[object Number]',
md = '[object Object]',
yd = '[object RegExp]',
wd = '[object Set]',
Rd = '[object String]',
Id = '[object WeakMap]',
Ed = '[object ArrayBuffer]',
Md = '[object DataView]',
Dd = '[object Float32Array]',
Zd = '[object Float64Array]',
Sd = '[object Int8Array]',
Nd = '[object Int16Array]',
jd = '[object Int32Array]',
Gd = '[object Uint8Array]',
kd = '[object Uint8ClampedArray]',
Bd = '[object Uint16Array]',
Yd = '[object Uint32Array]',
me = {}
me[Dd] = me[Zd] = me[Sd] = me[Nd] = me[jd] = me[Gd] = me[kd] = me[Bd] = me[Yd] = !0
me[dd] =
me[pd] =
me[Ed] =
me[Ad] =
me[Md] =
me[gd] =
me[fd] =
me[bd] =
me[hd] =
me[vd] =
me[md] =
me[yd] =
me[wd] =
me[Rd] =
me[Id] =
!1
function Ud(e) {
return un(e) && uo(e.length) && !!me[es(e)]
}
function go(e) {
return function (t) {
return e(t)
}
}
var Lr = typeof exports == 'object' && exports && !exports.nodeType && exports,
ii = Lr && typeof module == 'object' && module && !module.nodeType && module,
Td = ii && ii.exports === Lr,
ys = Td && tu.process,
Bn = (function () {
try {
var e = ii && ii.require && ii.require('util').types
return e || (ys && ys.binding && ys.binding('util'))
} catch {}
})(),
na = Bn && Bn.isTypedArray,
xr = na ? go(na) : Ud,
Jd = Object.prototype,
Cd = Jd.hasOwnProperty
function Vr(e, t) {
var n = Ut(e),
i = !n && Ao(e),
s = !n && !i && Vi(e),
a = !n && !i && !s && xr(e),
o = n || i || s || a,
r = o ? sd(e.length, String) : [],
l = r.length
for (var d in e)
(t || Cd.call(e, d)) &&
!(
o &&
(d == 'length' ||
(s && (d == 'offset' || d == 'parent')) ||
(a && (d == 'buffer' || d == 'byteLength' || d == 'byteOffset')) ||
Zr(d, l))
) &&
r.push(d)
return r
}
function Qr(e, t) {
return function (n) {
return e(t(n))
}
}
var Od = Qr(Object.keys, Object),
zd = Object.prototype,
Wd = zd.hasOwnProperty
function Fd(e) {
if (!po(e)) return Od(e)
var t = []
for (var n in Object(e)) Wd.call(e, n) && n != 'constructor' && t.push(n)
return t
}
function fo(e) {
return zr(e) ? Vr(e) : Fd(e)
}
function Ld(e) {
var t = []
if (e != null) for (var n in Object(e)) t.push(n)
return t
}
var xd = Object.prototype,
Vd = xd.hasOwnProperty
function Qd(e) {
if (!cn(e)) return Ld(e)
var t = po(e),
n = []
for (var i in e) (i == 'constructor' && (t || !Vd.call(e, i))) || n.push(i)
return n
}
function Xd(e) {
return zr(e) ? Vr(e, !0) : Qd(e)
}
function bo(e, t) {
for (var n = -1, i = t.length, s = e.length; ++n < i; ) e[s + n] = t[n]
return e
}
var ia = kn ? kn.isConcatSpreadable : void 0
function Pd(e) {
return Ut(e) || Ao(e) || !!(ia && e && e[ia])
}
function Hd(e, t, n, i, s) {
var a = -1,
o = e.length
for (n || (n = Pd), s || (s = []); ++a < o; ) {
var r = e[a]
n(r) ? bo(s, r) : (s[s.length] = r)
}
return s
}
function Kd(e) {
var t = e == null ? 0 : e.length
return t ? Hd(e) : []
}
function qd(e) {
return _u(td(e, void 0, Kd), e + '')
}
var Xr = Qr(Object.getPrototypeOf, Object)
function ft() {
if (!arguments.length) return []
var e = arguments[0]
return Ut(e) ? e : [e]
}
function _d() {
;(this.__data__ = new ao()), (this.size = 0)
}
function $d(e) {
var t = this.__data__,
n = t.delete(e)
return (this.size = t.size), n
}
function ep(e) {
return this.__data__.get(e)
}
function tp(e) {
return this.__data__.has(e)
}
var np = 200
function ip(e, t) {
var n = this.__data__
if (n instanceof ao) {
var i = n.__data__
if (!Wi || i.length < np - 1) return i.push([e, t]), (this.size = ++n.size), this
n = this.__data__ = new Sr(i)
}
return n.set(e, t), (this.size = n.size), this
}
function Mt(e) {
var t = (this.__data__ = new ao(e))
this.size = t.size
}
Mt.prototype.clear = _d
Mt.prototype.delete = $d
Mt.prototype.get = ep
Mt.prototype.has = tp
Mt.prototype.set = ip
function sp(e, t) {
return e && ss(t, fo(t), e)
}
function op(e, t) {
return e && ss(t, Xd(t), e)
}
var Pr = typeof exports == 'object' && exports && !exports.nodeType && exports,
sa = Pr && typeof module == 'object' && module && !module.nodeType && module,
ap = sa && sa.exports === Pr,
oa = ap ? Pt.Buffer : void 0,
aa = oa ? oa.allocUnsafe : void 0
function rp(e, t) {
var n = e.length,
i = aa ? aa(n) : new e.constructor(n)
return e.copy(i), i
}
function lp(e, t) {
for (var n = -1, i = e == null ? 0 : e.length, s = 0, a = []; ++n < i; ) {
var o = e[n]
t(o, n, e) && (a[s++] = o)
}
return a
}
function Hr() {
return []
}
var cp = Object.prototype,
up = cp.propertyIsEnumerable,
ra = Object.getOwnPropertySymbols,
ho = ra
? function (e) {
return e == null
? []
: ((e = Object(e)),
lp(ra(e), function (t) {
return up.call(e, t)
}))
}
: Hr
function dp(e, t) {
return ss(e, ho(e), t)
}
var pp = Object.getOwnPropertySymbols,
Ap = pp
? function (e) {
for (var t = []; e; ) bo(t, ho(e)), (e = Xr(e))
return t
}
: Hr
function gp(e, t) {
return ss(e, Ap(e), t)
}
function fp(e, t, n) {
var i = t(e)
return Ut(e) ? i : bo(i, n(e))
}
function Cs(e) {
return fp(e, fo, ho)
}
var Os = $i(Pt, 'DataView'),
zs = $i(Pt, 'Promise'),
Ws = $i(Pt, 'Set'),
la = '[object Map]',
bp = '[object Object]',
ca = '[object Promise]',
ua = '[object Set]',
da = '[object WeakMap]',
pa = '[object DataView]',
hp = zn(Os),
vp = zn(Wi),
mp = zn(zs),
yp = zn(Ws),
wp = zn(Js),
gt = es
;((Os && gt(new Os(new ArrayBuffer(1))) != pa) ||
(Wi && gt(new Wi()) != la) ||
(zs && gt(zs.resolve()) != ca) ||
(Ws && gt(new Ws()) != ua) ||
(Js && gt(new Js()) != da)) &&
(gt = function (e) {
var t = es(e),
n = t == bp ? e.constructor : void 0,
i = n ? zn(n) : ''
if (i)
switch (i) {
case hp:
return pa
case vp:
return la
case mp:
return ca
case yp:
return ua
case wp:
return da
}
return t
})
var Rp = Object.prototype,
Ip = Rp.hasOwnProperty
function Ep(e) {
var t = e.length,
n = new e.constructor(t)
return t && typeof e[0] == 'string' && Ip.call(e, 'index') && ((n.index = e.index), (n.input = e.input)), n
}
var Qi = Pt.Uint8Array
function Mp(e) {
var t = new e.constructor(e.byteLength)
return new Qi(t).set(new Qi(e)), t
}
function Dp(e, t) {
var n = e.buffer
return new e.constructor(n, e.byteOffset, e.byteLength)
}
var Zp = /\w*$/
function Sp(e) {
var t = new e.constructor(e.source, Zp.exec(e))
return (t.lastIndex = e.lastIndex), t
}
var Aa = kn ? kn.prototype : void 0,
ga = Aa ? Aa.valueOf : void 0
function Np(e) {
return ga ? Object(ga.call(e)) : {}
}
function jp(e, t) {
var n = e.buffer
return new e.constructor(n, e.byteOffset, e.length)
}
var Gp = '[object Boolean]',
kp = '[object Date]',
Bp = '[object Map]',
Yp = '[object Number]',
Up = '[object RegExp]',
Tp = '[object Set]',
Jp = '[object String]',
Cp = '[object Symbol]',
Op = '[object ArrayBuffer]',
zp = '[object DataView]',
Wp = '[object Float32Array]',
Fp = '[object Float64Array]',
Lp = '[object Int8Array]',
xp = '[object Int16Array]',
Vp = '[object Int32Array]',
Qp = '[object Uint8Array]',
Xp = '[object Uint8ClampedArray]',
Pp = '[object Uint16Array]',
Hp = '[object Uint32Array]'
function Kp(e, t, n) {
var i = e.constructor
switch (t) {
case Op:
return Mp(e)
case Gp:
case kp:
return new i(+e)
case zp:
return Dp(e)
case Wp:
case Fp:
case Lp:
case xp:
case Vp:
case Qp:
case Xp:
case Pp:
case Hp:
return jp(e)
case Bp:
return new i()
case Yp:
case Jp:
return new i(e)
case Up:
return Sp(e)
case Tp:
return new i()
case Cp:
return Np(e)
}
}
function qp(e) {
return typeof e.constructor == 'function' && !po(e) ? Lu(Xr(e)) : {}
}
var _p = '[object Map]'
function $p(e) {
return un(e) && gt(e) == _p
}
var fa = Bn && Bn.isMap,
eA = fa ? go(fa) : $p,
tA = '[object Set]'
function nA(e) {
return un(e) && gt(e) == tA
}
var ba = Bn && Bn.isSet,
iA = ba ? go(ba) : nA,
sA = 2,
Kr = '[object Arguments]',
oA = '[object Array]',
aA = '[object Boolean]',
rA = '[object Date]',
lA = '[object Error]',
qr = '[object Function]',
cA = '[object GeneratorFunction]',
uA = '[object Map]',
dA = '[object Number]',
_r = '[object Object]',
pA = '[object RegExp]',
AA = '[object Set]',
gA = '[object String]',
fA = '[object Symbol]',
bA = '[object WeakMap]',
hA = '[object ArrayBuffer]',
vA = '[object DataView]',
mA = '[object Float32Array]',
yA = '[object Float64Array]',
wA = '[object Int8Array]',
RA = '[object Int16Array]',
IA = '[object Int32Array]',
EA = '[object Uint8Array]',
MA = '[object Uint8ClampedArray]',
DA = '[object Uint16Array]',
ZA = '[object Uint32Array]',
be = {}
be[Kr] =
be[oA] =
be[hA] =
be[vA] =
be[aA] =
be[rA] =
be[mA] =
be[yA] =
be[wA] =
be[RA] =
be[IA] =
be[uA] =
be[dA] =
be[_r] =
be[pA] =
be[AA] =
be[gA] =
be[fA] =
be[EA] =
be[MA] =
be[DA] =
be[ZA] =
!0
be[lA] = be[qr] = be[bA] = !1
function Yi(e, t, n, i, s, a) {
var o,
r = t & sA
if (o !== void 0) return o
if (!cn(e)) return e
var l = Ut(e)
if (l) return (o = Ep(e)), Vu(e, o)
var d = gt(e),
c = d == qr || d == cA
if (Vi(e)) return rp(e)
if (d == _r || d == Kr || (c && !s)) return (o = c ? {} : qp(e)), r ? gp(e, op(o, e)) : dp(e, sp(o, e))
if (!be[d]) return s ? e : {}
;(o = Kp(e, d)), a || (a = new Mt())
var A = a.get(e)
if (A) return A
a.set(e, o),
iA(e)
? e.forEach(function (u) {
o.add(Yi(u, t, n, u, e, a))
})
: eA(e) &&
e.forEach(function (u, p) {
o.set(p, Yi(u, t, n, p, e, a))
})
var g = Cs,
b = l ? void 0 : g(e)
return (
$u(b || e, function (u, p) {
b && ((p = u), (u = e[p])), Dr(o, p, Yi(u, t, n, p, e, a))
}),
o
)
}
var SA = 4
function ha(e) {
return Yi(e, SA)
}
var NA = '__lodash_hash_undefined__'
function jA(e) {
return this.__data__.set(e, NA), this
}
function GA(e) {
return this.__data__.has(e)
}
function Xi(e) {
var t = -1,
n = e == null ? 0 : e.length
for (this.__data__ = new Sr(); ++t < n; ) this.add(e[t])
}
Xi.prototype.add = Xi.prototype.push = jA
Xi.prototype.has = GA
function kA(e, t) {
for (var n = -1, i = e == null ? 0 : e.length; ++n < i; ) if (t(e[n], n, e)) return !0
return !1
}
function BA(e, t) {
return e.has(t)
}
var YA = 1,
UA = 2
function $r(e, t, n, i, s, a) {
var o = n & YA,
r = e.length,
l = t.length
if (r != l && !(o && l > r)) return !1
var d = a.get(e),
c = a.get(t)
if (d && c) return d == t && c == e
var A = -1,
g = !0,
b = n & UA ? new Xi() : void 0
for (a.set(e, t), a.set(t, e); ++A < r; ) {
var u = e[A],
p = t[A]
if (i) var v = o ? i(p, u, A, t, e, a) : i(u, p, A, e, t, a)
if (v !== void 0) {
if (v) continue
g = !1
break
}
if (b) {
if (
!kA(t, function (f, w) {
if (!BA(b, w) && (u === f || s(u, f, n, i, a))) return b.push(w)
})
) {
g = !1
break
}
} else if (!(u === p || s(u, p, n, i, a))) {
g = !1
break
}
}
return a.delete(e), a.delete(t), g
}
function TA(e) {
var t = -1,
n = Array(e.size)
return (
e.forEach(function (i, s) {
n[++t] = [s, i]
}),
n
)
}
function JA(e) {
var t = -1,
n = Array(e.size)
return (
e.forEach(function (i) {
n[++t] = i
}),
n
)
}
var CA = 1,
OA = 2,
zA = '[object Boolean]',
WA = '[object Date]',
FA = '[object Error]',
LA = '[object Map]',
xA = '[object Number]',
VA = '[object RegExp]',
QA = '[object Set]',
XA = '[object String]',
PA = '[object Symbol]',
HA = '[object ArrayBuffer]',
KA = '[object DataView]',
va = kn ? kn.prototype : void 0,
ws = va ? va.valueOf : void 0
function qA(e, t, n, i, s, a, o) {
switch (n) {
case KA:
if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1
;(e = e.buffer), (t = t.buffer)
case HA:
return !(e.byteLength != t.byteLength || !a(new Qi(e), new Qi(t)))
case zA:
case WA:
case xA:
return nu(+e, +t)
case FA:
return e.name == t.name && e.message == t.message
case VA:
case XA:
return e == t + ''
case LA:
var r = TA
case QA:
var l = i & CA
if ((r || (r = JA), e.size != t.size && !l)) return !1
var d = o.get(e)
if (d) return d == t
;(i |= OA), o.set(e, t)
var c = $r(r(e), r(t), i, s, a, o)
return o.delete(e), c
case PA:
if (ws) return ws.call(e) == ws.call(t)
}
return !1
}
var _A = 1,
$A = Object.prototype,
eg = $A.hasOwnProperty
function tg(e, t, n, i, s, a) {
var o = n & _A,
r = Cs(e),
l = r.length,
d = Cs(t),
c = d.length
if (l != c && !o) return !1
for (var A = l; A--; ) {
var g = r[A]
if (!(o ? g in t : eg.call(t, g))) return !1
}
var b = a.get(e),
u = a.get(t)
if (b && u) return b == t && u == e
var p = !0
a.set(e, t), a.set(t, e)
for (var v = o; ++A < l; ) {
g = r[A]
var f = e[g],
w = t[g]
if (i) var R = o ? i(w, f, g, t, e, a) : i(f, w, g, e, t, a)
if (!(R === void 0 ? f === w || s(f, w, n, i, a) : R)) {
p = !1
break
}
v || (v = g == 'constructor')
}
if (p && !v) {
var I = e.constructor,
y = t.constructor
I != y &&
'constructor' in e &&
'constructor' in t &&
!(typeof I == 'function' && I instanceof I && typeof y == 'function' && y instanceof y) &&
(p = !1)
}
return a.delete(e), a.delete(t), p
}
var ng = 1,
ma = '[object Arguments]',
ya = '[object Array]',
Ii = '[object Object]',
ig = Object.prototype,
wa = ig.hasOwnProperty
function sg(e, t, n, i, s, a) {
var o = Ut(e),
r = Ut(t),
l = o ? ya : gt(e),
d = r ? ya : gt(t)
;(l = l == ma ? Ii : l), (d = d == ma ? Ii : d)
var c = l == Ii,
A = d == Ii,
g = l == d
if (g && Vi(e)) {
if (!Vi(t)) return !1
;(o = !0), (c = !1)
}
if (g && !c) return a || (a = new Mt()), o || xr(e) ? $r(e, t, n, i, s, a) : qA(e, t, l, n, i, s, a)
if (!(n & ng)) {
var b = c && wa.call(e, '__wrapped__'),
u = A && wa.call(t, '__wrapped__')
if (b || u) {
var p = b ? e.value() : e,
v = u ? t.value() : t
return a || (a = new Mt()), s(p, v, n, i, a)
}
}
return g ? (a || (a = new Mt()), tg(e, t, n, i, s, a)) : !1
}
function os(e, t, n, i, s) {
return e === t ? !0 : e == null || t == null || (!un(e) && !un(t)) ? e !== e && t !== t : sg(e, t, n, i, os, s)
}
var og = 1,
ag = 2
function rg(e, t, n, i) {
var s = n.length,
a = s
if (e == null) return !a
for (e = Object(e); s--; ) {
var o = n[s]
if (o[2] ? o[1] !== e[o[0]] : !(o[0] in e)) return !1
}
for (; ++s < a; ) {
o = n[s]
var r = o[0],
l = e[r],
d = o[1]
if (o[2]) {
if (l === void 0 && !(r in e)) return !1
} else {
var c = new Mt(),
A
if (!(A === void 0 ? os(d, l, og | ag, i, c) : A)) return !1
}
}
return !0
}
function el(e) {
return e === e && !cn(e)
}
function lg(e) {
for (var t = fo(e), n = t.length; n--; ) {
var i = t[n],
s = e[i]
t[n] = [i, s, el(s)]
}
return t
}
function tl(e, t) {
return function (n) {
return n == null ? !1 : n[e] === t && (t !== void 0 || e in Object(n))
}
}
function cg(e) {
var t = lg(e)
return t.length == 1 && t[0][2]
? tl(t[0][0], t[0][1])
: function (n) {
return n === e || rg(n, e, t)
}
}
function ug(e, t) {
return e != null && t in Object(e)
}
function dg(e, t, n) {
t = Nr(t, e)
for (var i = -1, s = t.length, a = !1; ++i < s; ) {
var o = ro(t[i])
if (!(a = e != null && n(e, o))) break
e = e[o]
}
return a || ++i != s ? a : ((s = e == null ? 0 : e.length), !!s && uo(s) && Zr(o, s) && (Ut(e) || Ao(e)))
}
function nl(e, t) {
return e != null && dg(e, t, ug)
}
var pg = 1,
Ag = 2
function gg(e, t) {
return jr(e) && el(t)
? tl(ro(e), t)
: function (n) {
var i = en(n, e)
return i === void 0 && i === t ? nl(n, e) : os(t, i, pg | Ag)
}
}
function fg(e) {
return function (t) {
return t == null ? void 0 : t[e]
}
}
function bg(e) {
return function (t) {
return Gr(t, e)
}
}
function hg(e) {
return jr(e) ? fg(ro(e)) : bg(e)
}
function vg(e) {
return typeof e == 'function' ? e : e == null ? Or : typeof e == 'object' ? (Ut(e) ? gg(e[0], e[1]) : cg(e)) : hg(e)
}
var Rs = function () {
return Pt.Date.now()
},
mg = 'Expected a function',
yg = Math.max,
wg = Math.min
function Rg(e, t, n) {
var i,
s,
a,
o,
r,
l,
d = 0,
c = !1,
A = !1,
g = !0
if (typeof e != 'function') throw new TypeError(mg)
;(t = Ko(t) || 0),
cn(n) &&
((c = !!n.leading),
(A = 'maxWait' in n),
(a = A ? yg(Ko(n.maxWait) || 0, t) : a),
(g = 'trailing' in n ? !!n.trailing : g))
function b(E) {
var m = i,
j = s
return (i = s = void 0), (d = E), (o = e.apply(j, m)), o
}
function u(E) {
return (d = E), (r = setTimeout(f, t)), c ? b(E) : o
}
function p(E) {
var m = E - l,
j = E - d,
U = t - m
return A ? wg(U, a - j) : U
}
function v(E) {
var m = E - l,
j = E - d
return l === void 0 || m >= t || m < 0 || (A && j >= a)
}
function f() {
var E = Rs()
if (v(E)) return w(E)
r = setTimeout(f, p(E))
}
function w(E) {
return (r = void 0), g && i ? b(E) : ((i = s = void 0), o)
}
function R() {
r !== void 0 && clearTimeout(r), (d = 0), (i = l = s = r = void 0)
}
function I() {
return r === void 0 ? o : w(Rs())
}
function y() {
var E = Rs(),
m = v(E)
if (((i = arguments), (s = this), (l = E), m)) {
if (r === void 0) return u(l)
if (A) return clearTimeout(r), (r = setTimeout(f, t)), b(l)
}
return r === void 0 && (r = setTimeout(f, t)), o
}
return (y.cancel = R), (y.flush = I), y
}
function Ig(e, t, n) {
var i = e == null ? 0 : e.length
if (!i) return -1
var s = i - 1
return ed(e, vg(t), s)
}
function jn(e, t) {
return os(e, t)
}
function Eg(e) {
return e === void 0
}
function Mg(e, t, n) {
for (var i = -1, s = t.length, a = {}; ++i < s; ) {
var o = t[i],
r = Gr(e, o)
n(r, o) && iu(a, Nr(o, e), r)
}
return a
}
function Dg(e, t) {
return Mg(e, t, function (n, i) {
return nl(e, i)
})
}
var il = qd(function (e, t) {
return e == null ? {} : Dg(e, t)
})
function Bt(e) {
var t
const n = Br(e)
return (t = n == null ? void 0 : n.$el) != null ? t : n
}
const as = ze ? window : void 0
function Dt(...e) {
let t, n, i, s
if ((su(e[0]) || Array.isArray(e[0]) ? (([n, i, s] = e), (t = as)) : ([t, n, i, s] = e), !t)) return kr
Array.isArray(n) || (n = [n]), Array.isArray(i) || (i = [i])
const a = [],
o = () => {
a.forEach((c) => c()), (a.length = 0)
},
r = (c, A, g, b) => (c.addEventListener(A, g, b), () => c.removeEventListener(A, g, b)),
l = q(
() => [Bt(t), Br(s)],
([c, A]) => {
o(), c && a.push(...n.flatMap((g) => i.map((b) => r(c, g, b, A))))
},
{ immediate: !0, flush: 'post' }
),
d = () => {
l(), o()
}
return ts(d), d
}
let Ra = !1
function Zg(e, t, n = {}) {
const { window: i = as, ignore: s = [], capture: a = !0, detectIframe: o = !1 } = n
if (!i) return
Bs && !Ra && ((Ra = !0), Array.from(i.document.body.children).forEach((g) => g.addEventListener('click', kr)))
let r = !0
const l = (g) =>
s.some((b) => {
if (typeof b == 'string')
return Array.from(i.document.querySelectorAll(b)).some((u) => u === g.target || g.composedPath().includes(u))
{
const u = Bt(b)
return u && (g.target === u || g.composedPath().includes(u))
}
}),
c = [
Dt(
i,
'click',
(g) => {
const b = Bt(e)
if (!(!b || b === g.target || g.composedPath().includes(b))) {
if ((g.detail === 0 && (r = !l(g)), !r)) {
r = !0
return
}
t(g)
}
},
{ passive: !0, capture: a }
),
Dt(
i,
'pointerdown',
(g) => {
const b = Bt(e)
b && (r = !g.composedPath().includes(b) && !l(g))
},
{ passive: !0 }
),
o &&
Dt(i, 'blur', (g) => {
var b
const u = Bt(e)
;((b = i.document.activeElement) == null ? void 0 : b.tagName) === 'IFRAME' &&
!(u != null && u.contains(i.document.activeElement)) &&
t(g)
}),
].filter(Boolean)
return () => c.forEach((g) => g())
}
function sl(e, t = !1) {
const n = C(),
i = () => (n.value = !!e())
return i(), ou(i, t), n
}
const Ia =
typeof globalThis < 'u'
? globalThis
: typeof window < 'u'
? window
: typeof global < 'u'
? global
: typeof self < 'u'
? self
: {},
Ea = '__vueuse_ssr_handlers__'
Ia[Ea] = Ia[Ea] || {}
var Ma = Object.getOwnPropertySymbols,
Sg = Object.prototype.hasOwnProperty,
Ng = Object.prototype.propertyIsEnumerable,
jg = (e, t) => {
var n = {}
for (var i in e) Sg.call(e, i) && t.indexOf(i) < 0 && (n[i] = e[i])
if (e != null && Ma) for (var i of Ma(e)) t.indexOf(i) < 0 && Ng.call(e, i) && (n[i] = e[i])
return n
}
function bt(e, t, n = {}) {
const i = n,
{ window: s = as } = i,
a = jg(i, ['window'])
let o
const r = sl(() => s && 'ResizeObserver' in s),
l = () => {
o && (o.disconnect(), (o = void 0))
},
d = q(
() => Bt(e),
(A) => {
l(), r.value && s && A && ((o = new ResizeObserver(t)), o.observe(A, a))
},
{ immediate: !0, flush: 'post' }
),
c = () => {
l(), d()
}
return ts(c), { isSupported: r, stop: c }
}
var Da = Object.getOwnPropertySymbols,
Gg = Object.prototype.hasOwnProperty,
kg = Object.prototype.propertyIsEnumerable,
Bg = (e, t) => {
var n = {}
for (var i in e) Gg.call(e, i) && t.indexOf(i) < 0 && (n[i] = e[i])
if (e != null && Da) for (var i of Da(e)) t.indexOf(i) < 0 && kg.call(e, i) && (n[i] = e[i])
return n
}
function Yg(e, t, n = {}) {
const i = n,
{ window: s = as } = i,
a = Bg(i, ['window'])
let o
const r = sl(() => s && 'MutationObserver' in s),
l = () => {
o && (o.disconnect(), (o = void 0))
},
d = q(
() => Bt(e),
(A) => {
l(), r.value && s && A && ((o = new MutationObserver(t)), o.observe(A, a))
},
{ immediate: !0 }
),
c = () => {
l(), d()
}
return ts(c), { isSupported: r, stop: c }
}
var Za
;(function (e) {
;(e.UP = 'UP'), (e.RIGHT = 'RIGHT'), (e.DOWN = 'DOWN'), (e.LEFT = 'LEFT'), (e.NONE = 'NONE')
})(Za || (Za = {}))
var Ug = Object.defineProperty,
Sa = Object.getOwnPropertySymbols,
Tg = Object.prototype.hasOwnProperty,
Jg = Object.prototype.propertyIsEnumerable,
Na = (e, t, n) => (t in e ? Ug(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : (e[t] = n)),
Cg = (e, t) => {
for (var n in t || (t = {})) Tg.call(t, n) && Na(e, n, t[n])
if (Sa) for (var n of Sa(t)) Jg.call(t, n) && Na(e, n, t[n])
return e
}
const Og = {
easeInSine: [0.12, 0, 0.39, 0],
easeOutSine: [0.61, 1, 0.88, 1],
easeInOutSine: [0.37, 0, 0.63, 1],
easeInQuad: [0.11, 0, 0.5, 0],
easeOutQuad: [0.5, 1, 0.89, 1],
easeInOutQuad: [0.45, 0, 0.55, 1],
easeInCubic: [0.32, 0, 0.67, 0],
easeOutCubic: [0.33, 1, 0.68, 1],
easeInOutCubic: [0.65, 0, 0.35, 1],
easeInQuart: [0.5, 0, 0.75, 0],
easeOutQuart: [0.25, 1, 0.5, 1],
easeInOutQuart: [0.76, 0, 0.24, 1],
easeInQuint: [0.64, 0, 0.78, 0],
easeOutQuint: [0.22, 1, 0.36, 1],
easeInOutQuint: [0.83, 0, 0.17, 1],
easeInExpo: [0.7, 0, 0.84, 0],
easeOutExpo: [0.16, 1, 0.3, 1],
easeInOutExpo: [0.87, 0, 0.13, 1],
easeInCirc: [0.55, 0, 1, 0.45],
easeOutCirc: [0, 0.55, 0.45, 1],
easeInOutCirc: [0.85, 0, 0.15, 1],
easeInBack: [0.36, 0, 0.66, -0.56],
easeOutBack: [0.34, 1.56, 0.64, 1],
easeInOutBack: [0.68, -0.6, 0.32, 1.6],
}
Cg({ linear: au }, Og)
class zg extends Error {
constructor(t) {
super(t), (this.name = 'ElementPlusError')
}
}
function ol(e, t) {
throw new zg(`[${e}] ${t}`)
}
const $e = 'update:modelValue',
al = 'change'
var ge = (e, t) => {
const n = e.__vccOpts || e
for (const [i, s] of t) n[i] = s
return n
}
function pn(e, t = 'px') {
if (!e) return ''
if (Ne(e) || ru(e)) return `${e}${t}`
if (tt(e)) return e
}
function Wg(e, t) {
if (!ze) return
if (!t) {
e.scrollTop = 0
return
}
const n = []
let i = t.offsetParent
for (; i !== null && e !== i && e.contains(i); ) n.push(i), (i = i.offsetParent)
const s = t.offsetTop + n.reduce((l, d) => l + d.offsetTop, 0),
a = s + t.offsetHeight,
o = e.scrollTop,
r = o + e.clientHeight
s < o ? (e.scrollTop = s) : a > r && (e.scrollTop = a - e.clientHeight)
}
const Fg = ye({ size: { type: ee([Number, String]) }, color: { type: String } }),
Lg = Q({ name: 'ElIcon', inheritAttrs: !1 }),
xg = Q({
...Lg,
props: Fg,
setup(e) {
const t = e,
n = he('icon'),
i = M(() => {
const { size: s, color: a } = t
return !s && !a ? {} : { fontSize: Vt(s) ? void 0 : pn(s), '--color': a }
})
return (s, a) => (Z(), T('i', dn({ class: h(n).b(), style: h(i) }, s.$attrs), [$(s.$slots, 'default')], 16))
},
})
var Vg = ge(xg, [['__file', 'icon.vue']])
const ot = dt(Vg)
/*! Element Plus Icons Vue v2.3.1 */ var Qg = Q({
name: 'ArrowDown',
__name: 'arrow-down',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z',
}),
])
)
},
}),
Xg = Qg,
Pg = Q({
name: 'CircleCheck',
__name: 'circle-check',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896',
}),
Y('path', {
fill: 'currentColor',
d: 'M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z',
}),
])
)
},
}),
Hg = Pg,
Kg = Q({
name: 'CircleCloseFilled',
__name: 'circle-close-filled',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z',
}),
])
)
},
}),
qg = Kg,
_g = Q({
name: 'CircleClose',
__name: 'circle-close',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'm466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z',
}),
Y('path', {
fill: 'currentColor',
d: 'M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896',
}),
])
)
},
}),
vo = _g,
$g = Q({
name: 'Close',
__name: 'close',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z',
}),
])
)
},
}),
Fs = $g,
ef = Q({
name: 'Hide',
__name: 'hide',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z',
}),
Y('path', {
fill: 'currentColor',
d: 'M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z',
}),
])
)
},
}),
tf = ef,
nf = Q({
name: 'InfoFilled',
__name: 'info-filled',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z',
}),
])
)
},
}),
sf = nf,
of = Q({
name: 'Loading',
__name: 'loading',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z',
}),
])
)
},
}),
rl = of,
af = Q({
name: 'SuccessFilled',
__name: 'success-filled',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z',
}),
])
)
},
}),
rf = af,
lf = Q({
name: 'View',
__name: 'view',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160',
}),
])
)
},
}),
cf = lf,
uf = Q({
name: 'WarningFilled',
__name: 'warning-filled',
setup(e) {
return (t, n) => (
Z(),
T('svg', { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 1024 1024' }, [
Y('path', {
fill: 'currentColor',
d: 'M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4',
}),
])
)
},
}),
df = uf
const An = ee([String, Object, Function]),
pf = { Close: Fs },
ja = { success: rf, warning: df, error: qg, info: sf },
ll = { validating: rl, success: Hg, error: vo },
Af = () => ze && /firefox/i.test(window.navigator.userAgent)
let Xe
const gf = {
height: '0',
visibility: 'hidden',
overflow: Af() ? '' : 'hidden',
position: 'absolute',
'z-index': '-1000',
top: '0',
right: '0',
},
ff = [
'letter-spacing',
'line-height',
'padding-top',
'padding-bottom',
'font-family',
'font-weight',
'font-size',
'text-rendering',
'text-transform',
'width',
'text-indent',
'padding-left',
'padding-right',
'border-width',
'box-sizing',
]
function bf(e) {
const t = window.getComputedStyle(e),
n = t.getPropertyValue('box-sizing'),
i = Number.parseFloat(t.getPropertyValue('padding-bottom')) + Number.parseFloat(t.getPropertyValue('padding-top')),
s =
Number.parseFloat(t.getPropertyValue('border-bottom-width')) +
Number.parseFloat(t.getPropertyValue('border-top-width'))
return { contextStyle: ff.map((o) => [o, t.getPropertyValue(o)]), paddingSize: i, borderSize: s, boxSizing: n }
}
function Ga(e, t = 1, n) {
var i
Xe || ((Xe = document.createElement('textarea')), document.body.appendChild(Xe))
const { paddingSize: s, borderSize: a, boxSizing: o, contextStyle: r } = bf(e)
r.forEach(([A, g]) => (Xe == null ? void 0 : Xe.style.setProperty(A, g))),
Object.entries(gf).forEach(([A, g]) => (Xe == null ? void 0 : Xe.style.setProperty(A, g, 'important'))),
(Xe.value = e.value || e.placeholder || '')
let l = Xe.scrollHeight
const d = {}
o === 'border-box' ? (l = l + a) : o === 'content-box' && (l = l - s), (Xe.value = '')
const c = Xe.scrollHeight - s
if (Ne(t)) {
let A = c * t
o === 'border-box' && (A = A + s + a), (l = Math.max(A, l)), (d.minHeight = `${A}px`)
}
if (Ne(n)) {
let A = c * n
o === 'border-box' && (A = A + s + a), (l = Math.min(A, l))
}
return (d.height = `${l}px`), (i = Xe.parentNode) == null || i.removeChild(Xe), (Xe = void 0), d
}
const cl = (e) => e,
hf = ye({
ariaLabel: String,
ariaOrientation: { type: String, values: ['horizontal', 'vertical', 'undefined'] },
ariaControls: String,
}),
hn = (e) => il(hf, e),
vf = ye({
id: { type: String, default: void 0 },
size: di,
disabled: Boolean,
modelValue: { type: ee([String, Number, Object]), default: '' },
maxlength: { type: [String, Number] },
minlength: { type: [String, Number] },
type: { type: String, default: 'text' },
resize: { type: String, values: ['none', 'both', 'horizontal', 'vertical'] },
autosize: { type: ee([Boolean, Object]), default: !1 },
autocomplete: { type: String, default: 'off' },
formatter: { type: Function },
parser: { type: Function },
placeholder: { type: String },
form: { type: String },
readonly: Boolean,
clearable: Boolean,
showPassword: Boolean,
showWordLimit: Boolean,
suffixIcon: { type: An },
prefixIcon: { type: An },
containerRole: { type: String, default: void 0 },
tabindex: { type: [String, Number], default: 0 },
validateEvent: { type: Boolean, default: !0 },
inputStyle: { type: ee([Object, Array, String]), default: () => cl({}) },
autofocus: Boolean,
rows: { type: Number, default: 2 },
...hn(['ariaLabel']),
}),
mf = {
[$e]: (e) => tt(e),
input: (e) => tt(e),
change: (e) => tt(e),
focus: (e) => e instanceof FocusEvent,
blur: (e) => e instanceof FocusEvent,
clear: () => !0,
mouseleave: (e) => e instanceof MouseEvent,
mouseenter: (e) => e instanceof MouseEvent,
keydown: (e) => e instanceof Event,
compositionstart: (e) => e instanceof CompositionEvent,
compositionupdate: (e) => e instanceof CompositionEvent,
compositionend: (e) => e instanceof CompositionEvent,
},
yf = ['class', 'style'],
wf = /^on[A-Z]/,
Rf = (e = {}) => {
const { excludeListeners: t = !1, excludeKeys: n } = e,
i = M(() => ((n == null ? void 0 : n.value) || []).concat(yf)),
s = Nt()
return s
? M(() => {
var a
return Ys(
Object.entries((a = s.proxy) == null ? void 0 : a.$attrs).filter(
([o]) => !i.value.includes(o) && !(t && wf.test(o))
)
)
})
: M(() => ({}))
},
Ln = Symbol('formContextKey'),
gn = Symbol('formItemContextKey'),
ka = { prefix: Math.floor(Math.random() * 1e4), current: 0 },
If = Symbol('elIdInjection'),
ul = () => (Nt() ? de(If, ka) : ka),
Ai = (e) => {
const t = ul(),
n = Yr()
return lu(() => h(e) || `${n.value}-id-${t.prefix}-${t.current++}`)
},
xn = () => {
const e = de(Ln, void 0),
t = de(gn, void 0)
return { form: e, formItem: t }
},
rs = (e, { formItemContext: t, disableIdGeneration: n, disableIdManagement: i }) => {
n || (n = C(!1)), i || (i = C(!1))
const s = C()
let a
const o = M(() => {
var r
return !!(!(e.label || e.ariaLabel) && t && t.inputIds && ((r = t.inputIds) == null ? void 0 : r.length) <= 1)
})
return (
Be(() => {
a = q(
[ht(e, 'id'), n],
([r, l]) => {
const d = r ?? (l ? void 0 : Ai().value)
d !== s.value &&
(t != null &&
t.removeInputId &&
(s.value && t.removeInputId(s.value), !(i != null && i.value) && !l && d && t.addInputId(d)),
(s.value = d))
},
{ immediate: !0 }
)
}),
cu(() => {
a && a(), t != null && t.removeInputId && s.value && t.removeInputId(s.value)
}),
{ isLabeledByFormItem: o, inputId: s }
)
},
dl = (e) => {
const t = Nt()
return M(() => {
var n, i
return (i = (n = t == null ? void 0 : t.proxy) == null ? void 0 : n.$props) == null ? void 0 : i[e]
})
},
Xt = (e, t = {}) => {
const n = C(void 0),
i = t.prop ? n : dl('size'),
s = t.global ? n : uu(),
a = t.form ? { size: void 0 } : de(Ln, void 0),
o = t.formItem ? { size: void 0 } : de(gn, void 0)
return M(() => i.value || h(e) || (o == null ? void 0 : o.size) || (a == null ? void 0 : a.size) || s.value || '')
},
ls = (e) => {
const t = dl('disabled'),
n = de(Ln, void 0)
return M(() => t.value || h(e) || (n == null ? void 0 : n.disabled) || !1)
}
function pl(e, { beforeFocus: t, afterFocus: n, beforeBlur: i, afterBlur: s } = {}) {
const a = Nt(),
{ emit: o } = a,
r = Nn(),
l = C(!1),
d = (g) => {
;(Oe(t) && t(g)) || l.value || ((l.value = !0), o('focus', g), n == null || n())
},
c = (g) => {
var b
;(Oe(i) && i(g)) ||
(g.relatedTarget && (b = r.value) != null && b.contains(g.relatedTarget)) ||
((l.value = !1), o('blur', g), s == null || s())
},
A = () => {
var g, b
;((g = r.value) != null && g.contains(document.activeElement) && r.value !== document.activeElement) ||
(b = e.value) == null ||
b.focus()
}
return (
q(r, (g) => {
g && g.setAttribute('tabindex', '-1')
}),
Dt(r, 'focus', d, !0),
Dt(r, 'blur', c, !0),
Dt(r, 'click', A, !0),
{ isFocused: l, wrapperRef: r, handleFocus: d, handleBlur: c }
)
}
const Ef = (e) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e)
function Al({ afterComposition: e, emit: t }) {
const n = C(!1),
i = (r) => {
t == null || t('compositionstart', r), (n.value = !0)
},
s = (r) => {
var l
t == null || t('compositionupdate', r)
const d = (l = r.target) == null ? void 0 : l.value,
c = d[d.length - 1] || ''
n.value = !Ef(c)
},
a = (r) => {
t == null || t('compositionend', r), n.value && ((n.value = !1), Ee(() => e(r)))
}
return {
isComposing: n,
handleComposition: (r) => {
r.type === 'compositionend' ? a(r) : s(r)
},
handleCompositionStart: i,
handleCompositionUpdate: s,
handleCompositionEnd: a,
}
}
function Mf(e) {
let t
function n() {
if (e.value == null) return
const { selectionStart: s, selectionEnd: a, value: o } = e.value
if (s == null || a == null) return
const r = o.slice(0, Math.max(0, s)),
l = o.slice(Math.max(0, a))
t = { selectionStart: s, selectionEnd: a, value: o, beforeTxt: r, afterTxt: l }
}
function i() {
if (e.value == null || t == null) return
const { value: s } = e.value,
{ beforeTxt: a, afterTxt: o, selectionStart: r } = t
if (a == null || o == null || r == null) return
let l = s.length
if (s.endsWith(o)) l = s.length - o.length
else if (s.startsWith(a)) l = a.length
else {
const d = a[r - 1],
c = s.indexOf(d, r - 1)
c !== -1 && (l = c + 1)
}
e.value.setSelectionRange(l, l)
}
return [n, i]
}
const Df = Q({ name: 'ElInput', inheritAttrs: !1 }),
Zf = Q({
...Df,
props: vf,
emits: mf,
setup(e, { expose: t, emit: n }) {
const i = e,
s = du(),
a = Rf(),
o = pi(),
r = M(() => [
i.type === 'textarea' ? p.b() : u.b(),
u.m(g.value),
u.is('disabled', b.value),
u.is('exceed', ie.value),
{
[u.b('group')]: o.prepend || o.append,
[u.m('prefix')]: o.prefix || i.prefixIcon,
[u.m('suffix')]: o.suffix || i.suffixIcon || i.clearable || i.showPassword,
[u.bm('suffix', 'password-clear')]: V.value && ne.value,
[u.b('hidden')]: i.type === 'hidden',
},
s.class,
]),
l = M(() => [u.e('wrapper'), u.is('focus', j.value)]),
{ form: d, formItem: c } = xn(),
{ inputId: A } = rs(i, { formItemContext: c }),
g = Xt(),
b = ls(),
u = he('input'),
p = he('textarea'),
v = Nn(),
f = Nn(),
w = C(!1),
R = C(!1),
I = C(),
y = Nn(i.inputStyle),
E = M(() => v.value || f.value),
{
wrapperRef: m,
isFocused: j,
handleFocus: U,
handleBlur: K,
} = pl(E, {
beforeFocus() {
return b.value
},
afterBlur() {
var J
i.validateEvent &&
((J = c == null ? void 0 : c.validate) == null || J.call(c, 'blur').catch((ue) => void 0))
},
}),
H = M(() => {
var J
return (J = d == null ? void 0 : d.statusIcon) != null ? J : !1
}),
N = M(() => (c == null ? void 0 : c.validateState) || ''),
k = M(() => N.value && ll[N.value]),
F = M(() => (R.value ? cf : tf)),
L = M(() => [s.style]),
O = M(() => [i.inputStyle, y.value, { resize: i.resize }]),
G = M(() => (ns(i.modelValue) ? '' : String(i.modelValue))),
V = M(() => i.clearable && !b.value && !i.readonly && !!G.value && (j.value || w.value)),
ne = M(() => i.showPassword && !b.value && !!G.value && (!!G.value || j.value)),
re = M(
() =>
i.showWordLimit &&
!!i.maxlength &&
(i.type === 'text' || i.type === 'textarea') &&
!b.value &&
!i.readonly &&
!i.showPassword
),
Ie = M(() => G.value.length),
ie = M(() => !!re.value && Ie.value > Number(i.maxlength)),
we = M(() => !!o.suffix || !!i.suffixIcon || V.value || i.showPassword || re.value || (!!N.value && H.value)),
[ve, fe] = Mf(v)
bt(f, (J) => {
if ((W(), !re.value || i.resize !== 'both')) return
const ue = J[0],
{ width: st } = ue.contentRect
I.value = { right: `calc(100% - ${st + 15 + 6}px)` }
})
const Re = () => {
const { type: J, autosize: ue } = i
if (!(!ze || J !== 'textarea' || !f.value))
if (ue) {
const st = vt(ue) ? ue.minRows : void 0,
zt = vt(ue) ? ue.maxRows : void 0,
Wt = Ga(f.value, st, zt)
;(y.value = { overflowY: 'hidden', ...Wt }),
Ee(() => {
f.value.offsetHeight, (y.value = Wt)
})
} else y.value = { minHeight: Ga(f.value).minHeight }
},
W = ((J) => {
let ue = !1
return () => {
var st
if (ue || !i.autosize) return
;((st = f.value) == null ? void 0 : st.offsetParent) === null || (J(), (ue = !0))
}
})(Re),
se = () => {
const J = E.value,
ue = i.formatter ? i.formatter(G.value) : G.value
!J || J.value === ue || (J.value = ue)
},
le = async (J) => {
ve()
let { value: ue } = J.target
if ((i.formatter && (ue = i.parser ? i.parser(ue) : ue), !ke.value)) {
if (ue === G.value) {
se()
return
}
n($e, ue), n('input', ue), await Ee(), se(), fe()
}
},
Ae = (J) => {
n('change', J.target.value)
},
{
isComposing: ke,
handleCompositionStart: Ve,
handleCompositionUpdate: vn,
handleCompositionEnd: mn,
} = Al({ emit: n, afterComposition: le }),
yn = () => {
ve(), (R.value = !R.value), setTimeout(fe)
},
wn = () => {
var J
return (J = E.value) == null ? void 0 : J.focus()
},
Ot = () => {
var J
return (J = E.value) == null ? void 0 : J.blur()
},
Rn = (J) => {
;(w.value = !1), n('mouseleave', J)
},
Qe = (J) => {
;(w.value = !0), n('mouseenter', J)
},
Rt = (J) => {
n('keydown', J)
},
In = () => {
var J
;(J = E.value) == null || J.select()
},
_t = () => {
n($e, ''), n('change', ''), n('clear'), n('input', '')
}
return (
q(
() => i.modelValue,
() => {
var J
Ee(() => Re()),
i.validateEvent &&
((J = c == null ? void 0 : c.validate) == null || J.call(c, 'change').catch((ue) => void 0))
}
),
q(G, () => se()),
q(
() => i.type,
async () => {
await Ee(), se(), Re()
}
),
Be(() => {
!i.formatter && i.parser, se(), Ee(Re)
}),
t({
input: v,
textarea: f,
ref: E,
textareaStyle: O,
autosize: ht(i, 'autosize'),
isComposing: ke,
focus: wn,
blur: Ot,
select: In,
clear: _t,
resizeTextarea: Re,
}),
(J, ue) => (
Z(),
T(
'div',
{
class: B([
h(r),
{ [h(u).bm('group', 'append')]: J.$slots.append, [h(u).bm('group', 'prepend')]: J.$slots.prepend },
]),
style: Ue(h(L)),
onMouseenter: Qe,
onMouseleave: Rn,
},
[
X(' input '),
J.type !== 'textarea'
? (Z(),
T(
je,
{ key: 0 },
[
X(' prepend slot '),
J.$slots.prepend
? (Z(),
T('div', { key: 0, class: B(h(u).be('group', 'prepend')) }, [$(J.$slots, 'prepend')], 2))
: X('v-if', !0),
Y(
'div',
{ ref_key: 'wrapperRef', ref: m, class: B(h(l)) },
[
X(' prefix slot '),
J.$slots.prefix || J.prefixIcon
? (Z(),
T(
'span',
{ key: 0, class: B(h(u).e('prefix')) },
[
Y(
'span',
{ class: B(h(u).e('prefix-inner')) },
[
$(J.$slots, 'prefix'),
J.prefixIcon
? (Z(),
_(
h(ot),
{ key: 0, class: B(h(u).e('icon')) },
{ default: x(() => [(Z(), _(Fe(J.prefixIcon)))]), _: 1 },
8,
['class']
))
: X('v-if', !0),
],
2
),
],
2
))
: X('v-if', !0),
Y(
'input',
dn({ id: h(A), ref_key: 'input', ref: v, class: h(u).e('inner') }, h(a), {
minlength: J.minlength,
maxlength: J.maxlength,
type: J.showPassword ? (R.value ? 'text' : 'password') : J.type,
disabled: h(b),
readonly: J.readonly,
autocomplete: J.autocomplete,
tabindex: J.tabindex,
'aria-label': J.ariaLabel,
placeholder: J.placeholder,
style: J.inputStyle,
form: J.form,
autofocus: J.autofocus,
role: J.containerRole,
onCompositionstart: h(Ve),
onCompositionupdate: h(vn),
onCompositionend: h(mn),
onInput: le,
onChange: Ae,
onKeydown: Rt,
}),
null,
16,
[
'id',
'minlength',
'maxlength',
'type',
'disabled',
'readonly',
'autocomplete',
'tabindex',
'aria-label',
'placeholder',
'form',
'autofocus',
'role',
'onCompositionstart',
'onCompositionupdate',
'onCompositionend',
]
),
X(' suffix slot '),
h(we)
? (Z(),
T(
'span',
{ key: 1, class: B(h(u).e('suffix')) },
[
Y(
'span',
{ class: B(h(u).e('suffix-inner')) },
[
!h(V) || !h(ne) || !h(re)
? (Z(),
T(
je,
{ key: 0 },
[
$(J.$slots, 'suffix'),
J.suffixIcon
? (Z(),
_(
h(ot),
{ key: 0, class: B(h(u).e('icon')) },
{ default: x(() => [(Z(), _(Fe(J.suffixIcon)))]), _: 1 },
8,
['class']
))
: X('v-if', !0),
],
64
))
: X('v-if', !0),
h(V)
? (Z(),
_(
h(ot),
{
key: 1,
class: B([h(u).e('icon'), h(u).e('clear')]),
onMousedown: Ze(h(Fi), ['prevent']),
onClick: _t,
},
{ default: x(() => [P(h(vo))]), _: 1 },
8,
['class', 'onMousedown']
))
: X('v-if', !0),
h(ne)
? (Z(),
_(
h(ot),
{ key: 2, class: B([h(u).e('icon'), h(u).e('password')]), onClick: yn },
{ default: x(() => [(Z(), _(Fe(h(F))))]), _: 1 },
8,
['class']
))
: X('v-if', !0),
h(re)
? (Z(),
T(
'span',
{ key: 3, class: B(h(u).e('count')) },
[
Y(
'span',
{ class: B(h(u).e('count-inner')) },
ce(h(Ie)) + ' / ' + ce(J.maxlength),
3
),
],
2
))
: X('v-if', !0),
h(N) && h(k) && h(H)
? (Z(),
_(
h(ot),
{
key: 4,
class: B([
h(u).e('icon'),
h(u).e('validateIcon'),
h(u).is('loading', h(N) === 'validating'),
]),
},
{ default: x(() => [(Z(), _(Fe(h(k))))]), _: 1 },
8,
['class']
))
: X('v-if', !0),
],
2
),
],
2
))
: X('v-if', !0),
],
2
),
X(' append slot '),
J.$slots.append
? (Z(), T('div', { key: 1, class: B(h(u).be('group', 'append')) }, [$(J.$slots, 'append')], 2))
: X('v-if', !0),
],
64
))
: (Z(),
T(
je,
{ key: 1 },
[
X(' textarea '),
Y(
'textarea',
dn(
{ id: h(A), ref_key: 'textarea', ref: f, class: [h(p).e('inner'), h(u).is('focus', h(j))] },
h(a),
{
minlength: J.minlength,
maxlength: J.maxlength,
tabindex: J.tabindex,
disabled: h(b),
readonly: J.readonly,
autocomplete: J.autocomplete,
style: h(O),
'aria-label': J.ariaLabel,
placeholder: J.placeholder,
form: J.form,
autofocus: J.autofocus,
rows: J.rows,
role: J.containerRole,
onCompositionstart: h(Ve),
onCompositionupdate: h(vn),
onCompositionend: h(mn),
onInput: le,
onFocus: h(U),
onBlur: h(K),
onChange: Ae,
onKeydown: Rt,
}
),
null,
16,
[
'id',
'minlength',
'maxlength',
'tabindex',
'disabled',
'readonly',
'autocomplete',
'aria-label',
'placeholder',
'form',
'autofocus',
'rows',
'role',
'onCompositionstart',
'onCompositionupdate',
'onCompositionend',
'onFocus',
'onBlur',
]
),
h(re)
? (Z(),
T(
'span',
{ key: 0, style: Ue(I.value), class: B(h(u).e('count')) },
ce(h(Ie)) + ' / ' + ce(J.maxlength),
7
))
: X('v-if', !0),
],
64
)),
],
38
)
)
)
},
})
var Sf = ge(Zf, [['__file', 'input.vue']])
const gl = dt(Sf),
Mn = 4,
Nf = {
vertical: {
offset: 'offsetHeight',
scroll: 'scrollTop',
scrollSize: 'scrollHeight',
size: 'height',
key: 'vertical',
axis: 'Y',
client: 'clientY',
direction: 'top',
},
horizontal: {
offset: 'offsetWidth',
scroll: 'scrollLeft',
scrollSize: 'scrollWidth',
size: 'width',
key: 'horizontal',
axis: 'X',
client: 'clientX',
direction: 'left',
},
},
jf = ({ move: e, size: t, bar: n }) => ({ [n.size]: t, transform: `translate${n.axis}(${e}%)` }),
mo = Symbol('scrollbarContextKey'),
Gf = ye({ vertical: Boolean, size: String, move: Number, ratio: { type: Number, required: !0 }, always: Boolean }),
kf = 'Thumb',
Bf = Q({
__name: 'thumb',
props: Gf,
setup(e) {
const t = e,
n = de(mo),
i = he('scrollbar')
n || ol(kf, 'can not inject scrollbar context')
const s = C(),
a = C(),
o = C({}),
r = C(!1)
let l = !1,
d = !1,
c = ze ? document.onselectstart : null
const A = M(() => Nf[t.vertical ? 'vertical' : 'horizontal']),
g = M(() => jf({ size: t.size, move: t.move, bar: A.value })),
b = M(
() => s.value[A.value.offset] ** 2 / n.wrapElement[A.value.scrollSize] / t.ratio / a.value[A.value.offset]
),
u = (E) => {
var m
if ((E.stopPropagation(), E.ctrlKey || [1, 2].includes(E.button))) return
;(m = window.getSelection()) == null || m.removeAllRanges(), v(E)
const j = E.currentTarget
j &&
(o.value[A.value.axis] =
j[A.value.offset] - (E[A.value.client] - j.getBoundingClientRect()[A.value.direction]))
},
p = (E) => {
if (!a.value || !s.value || !n.wrapElement) return
const m = Math.abs(E.target.getBoundingClientRect()[A.value.direction] - E[A.value.client]),
j = a.value[A.value.offset] / 2,
U = ((m - j) * 100 * b.value) / s.value[A.value.offset]
n.wrapElement[A.value.scroll] = (U * n.wrapElement[A.value.scrollSize]) / 100
},
v = (E) => {
E.stopImmediatePropagation(),
(l = !0),
document.addEventListener('mousemove', f),
document.addEventListener('mouseup', w),
(c = document.onselectstart),
(document.onselectstart = () => !1)
},
f = (E) => {
if (!s.value || !a.value || l === !1) return
const m = o.value[A.value.axis]
if (!m) return
const j = (s.value.getBoundingClientRect()[A.value.direction] - E[A.value.client]) * -1,
U = a.value[A.value.offset] - m,
K = ((j - U) * 100 * b.value) / s.value[A.value.offset]
n.wrapElement[A.value.scroll] = (K * n.wrapElement[A.value.scrollSize]) / 100
},
w = () => {
;(l = !1),
(o.value[A.value.axis] = 0),
document.removeEventListener('mousemove', f),
document.removeEventListener('mouseup', w),
y(),
d && (r.value = !1)
},
R = () => {
;(d = !1), (r.value = !!t.size)
},
I = () => {
;(d = !0), (r.value = l)
}
xe(() => {
y(), document.removeEventListener('mouseup', w)
})
const y = () => {
document.onselectstart !== c && (document.onselectstart = c)
}
return (
Dt(ht(n, 'scrollbarElement'), 'mousemove', R),
Dt(ht(n, 'scrollbarElement'), 'mouseleave', I),
(E, m) => (
Z(),
_(
at,
{ name: h(i).b('fade'), persisted: '' },
{
default: x(() => [
We(
Y(
'div',
{ ref_key: 'instance', ref: s, class: B([h(i).e('bar'), h(i).is(h(A).key)]), onMousedown: p },
[
Y(
'div',
{ ref_key: 'thumb', ref: a, class: B(h(i).e('thumb')), style: Ue(h(g)), onMousedown: u },
null,
38
),
],
34
),
[[bn, E.always || r.value]]
),
]),
_: 1,
},
8,
['name']
)
)
)
},
})
var Ba = ge(Bf, [['__file', 'thumb.vue']])
const Yf = ye({ always: { type: Boolean, default: !0 }, minSize: { type: Number, required: !0 } }),
Uf = Q({
__name: 'bar',
props: Yf,
setup(e, { expose: t }) {
const n = e,
i = de(mo),
s = C(0),
a = C(0),
o = C(''),
r = C(''),
l = C(1),
d = C(1)
return (
t({
handleScroll: (g) => {
if (g) {
const b = g.offsetHeight - Mn,
u = g.offsetWidth - Mn
;(a.value = ((g.scrollTop * 100) / b) * l.value), (s.value = ((g.scrollLeft * 100) / u) * d.value)
}
},
update: () => {
const g = i == null ? void 0 : i.wrapElement
if (!g) return
const b = g.offsetHeight - Mn,
u = g.offsetWidth - Mn,
p = b ** 2 / g.scrollHeight,
v = u ** 2 / g.scrollWidth,
f = Math.max(p, n.minSize),
w = Math.max(v, n.minSize)
;(l.value = p / (b - p) / (f / (b - f))),
(d.value = v / (u - v) / (w / (u - w))),
(r.value = f + Mn < b ? `${f}px` : ''),
(o.value = w + Mn < u ? `${w}px` : '')
},
}),
(g, b) => (
Z(),
T(
je,
null,
[
P(Ba, { move: s.value, ratio: d.value, size: o.value, always: g.always }, null, 8, [
'move',
'ratio',
'size',
'always',
]),
P(Ba, { move: a.value, ratio: l.value, size: r.value, vertical: '', always: g.always }, null, 8, [
'move',
'ratio',
'size',
'always',
]),
],
64
)
)
)
},
})
var Tf = ge(Uf, [['__file', 'bar.vue']])
const Jf = ye({
height: { type: [String, Number], default: '' },
maxHeight: { type: [String, Number], default: '' },
native: { type: Boolean, default: !1 },
wrapStyle: { type: ee([String, Object, Array]), default: '' },
wrapClass: { type: [String, Array], default: '' },
viewClass: { type: [String, Array], default: '' },
viewStyle: { type: [String, Array, Object], default: '' },
noresize: Boolean,
tag: { type: String, default: 'div' },
always: Boolean,
minSize: { type: Number, default: 20 },
tabindex: { type: [String, Number], default: void 0 },
id: String,
role: String,
...hn(['ariaLabel', 'ariaOrientation']),
}),
Cf = { scroll: ({ scrollTop: e, scrollLeft: t }) => [e, t].every(Ne) },
Of = 'ElScrollbar',
zf = Q({ name: Of }),
Wf = Q({
...zf,
props: Jf,
emits: Cf,
setup(e, { expose: t, emit: n }) {
const i = e,
s = he('scrollbar')
let a,
o,
r = 0,
l = 0
const d = C(),
c = C(),
A = C(),
g = C(),
b = M(() => {
const y = {}
return i.height && (y.height = pn(i.height)), i.maxHeight && (y.maxHeight = pn(i.maxHeight)), [i.wrapStyle, y]
}),
u = M(() => [i.wrapClass, s.e('wrap'), { [s.em('wrap', 'hidden-default')]: !i.native }]),
p = M(() => [s.e('view'), i.viewClass]),
v = () => {
var y
c.value &&
((y = g.value) == null || y.handleScroll(c.value),
(r = c.value.scrollTop),
(l = c.value.scrollLeft),
n('scroll', { scrollTop: c.value.scrollTop, scrollLeft: c.value.scrollLeft }))
}
function f(y, E) {
vt(y) ? c.value.scrollTo(y) : Ne(y) && Ne(E) && c.value.scrollTo(y, E)
}
const w = (y) => {
Ne(y) && (c.value.scrollTop = y)
},
R = (y) => {
Ne(y) && (c.value.scrollLeft = y)
},
I = () => {
var y
;(y = g.value) == null || y.update()
}
return (
q(
() => i.noresize,
(y) => {
y ? (a == null || a(), o == null || o()) : (({ stop: a } = bt(A, I)), (o = Dt('resize', I)))
},
{ immediate: !0 }
),
q(
() => [i.maxHeight, i.height],
() => {
i.native ||
Ee(() => {
var y
I(), c.value && ((y = g.value) == null || y.handleScroll(c.value))
})
}
),
it(mo, lt({ scrollbarElement: d, wrapElement: c })),
pu(() => {
c.value && ((c.value.scrollTop = r), (c.value.scrollLeft = l))
}),
Be(() => {
i.native ||
Ee(() => {
I()
})
}),
Ur(() => I()),
t({ wrapRef: c, update: I, scrollTo: f, setScrollTop: w, setScrollLeft: R, handleScroll: v }),
(y, E) => (
Z(),
T(
'div',
{ ref_key: 'scrollbarRef', ref: d, class: B(h(s).b()) },
[
Y(
'div',
{ ref_key: 'wrapRef', ref: c, class: B(h(u)), style: Ue(h(b)), tabindex: y.tabindex, onScroll: v },
[
(Z(),
_(
Fe(y.tag),
{
id: y.id,
ref_key: 'resizeRef',
ref: A,
class: B(h(p)),
style: Ue(y.viewStyle),
role: y.role,
'aria-label': y.ariaLabel,
'aria-orientation': y.ariaOrientation,
},
{ default: x(() => [$(y.$slots, 'default')]), _: 3 },
8,
['id', 'class', 'style', 'role', 'aria-label', 'aria-orientation']
)),
],
46,
['tabindex']
),
y.native
? X('v-if', !0)
: (Z(),
_(Tf, { key: 0, ref_key: 'barRef', ref: g, always: y.always, 'min-size': y.minSize }, null, 8, [
'always',
'min-size',
])),
],
2
)
)
)
},
})
var Ff = ge(Wf, [['__file', 'scrollbar.vue']])
const Lf = dt(Ff),
yo = Symbol('popper'),
fl = Symbol('popperContent'),
xf = ['dialog', 'grid', 'group', 'listbox', 'menu', 'navigation', 'tooltip', 'tree'],
bl = ye({ role: { type: String, values: xf, default: 'tooltip' } }),
Vf = Q({ name: 'ElPopper', inheritAttrs: !1 }),
Qf = Q({
...Vf,
props: bl,
setup(e, { expose: t }) {
const n = e,
i = C(),
s = C(),
a = C(),
o = C(),
r = M(() => n.role),
l = { triggerRef: i, popperInstanceRef: s, contentRef: a, referenceRef: o, role: r }
return t(l), it(yo, l), (d, c) => $(d.$slots, 'default')
},
})
var Xf = ge(Qf, [['__file', 'popper.vue']])
const hl = ye({ arrowOffset: { type: Number, default: 5 } }),
Pf = Q({ name: 'ElPopperArrow', inheritAttrs: !1 }),
Hf = Q({
...Pf,
props: hl,
setup(e, { expose: t }) {
const n = e,
i = he('popper'),
{ arrowOffset: s, arrowRef: a, arrowStyle: o } = de(fl, void 0)
return (
q(
() => n.arrowOffset,
(r) => {
s.value = r
}
),
xe(() => {
a.value = void 0
}),
t({ arrowRef: a }),
(r, l) => (
Z(),
T(
'span',
{ ref_key: 'arrowRef', ref: a, class: B(h(i).e('arrow')), style: Ue(h(o)), 'data-popper-arrow': '' },
null,
6
)
)
)
},
})
var Kf = ge(Hf, [['__file', 'arrow.vue']])
const vl = ye({
virtualRef: { type: ee(Object) },
virtualTriggering: Boolean,
onMouseenter: { type: ee(Function) },
onMouseleave: { type: ee(Function) },
onClick: { type: ee(Function) },
onKeydown: { type: ee(Function) },
onFocus: { type: ee(Function) },
onBlur: { type: ee(Function) },
onContextmenu: { type: ee(Function) },
id: String,
open: Boolean,
}),
ml = Symbol('elForwardRef'),
qf = (e) => {
it(ml, {
setForwardRef: (n) => {
e.value = n
},
})
},
_f = (e) => ({
mounted(t) {
e(t)
},
updated(t) {
e(t)
},
unmounted() {
e(null)
},
}),
Ls = (e) => {
if (e.tabIndex > 0 || (e.tabIndex === 0 && e.getAttribute('tabIndex') !== null)) return !0
if (e.tabIndex < 0 || e.hasAttribute('disabled') || e.getAttribute('aria-disabled') === 'true') return !1
switch (e.nodeName) {
case 'A':
return !!e.href && e.rel !== 'ignore'
case 'INPUT':
return !(e.type === 'hidden' || e.type === 'file')
case 'BUTTON':
case 'SELECT':
case 'TEXTAREA':
return !0
default:
return !1
}
},
$f = 'ElOnlyChild',
eb = Q({
name: $f,
setup(e, { slots: t, attrs: n }) {
var i
const s = de(ml),
a = _f((i = s == null ? void 0 : s.setForwardRef) != null ? i : Fi)
return () => {
var o
const r = (o = t.default) == null ? void 0 : o.call(t, n)
if (!r || r.length > 1) return null
const l = yl(r)
return l ? We(Au(l, n), [[a]]) : null
}
},
})
function yl(e) {
if (!e) return null
const t = e
for (const n of t) {
if (vt(n))
switch (n.type) {
case gu:
continue
case Tr:
case 'svg':
return Ya(n)
case je:
return yl(n.children)
default:
return n
}
return Ya(n)
}
return null
}
function Ya(e) {
const t = he('only-child')
return P('span', { class: t.e('content') }, [e])
}
const tb = Q({ name: 'ElPopperTrigger', inheritAttrs: !1 }),
nb = Q({
...tb,
props: vl,
setup(e, { expose: t }) {
const n = e,
{ role: i, triggerRef: s } = de(yo, void 0)
qf(s)
const a = M(() => (r.value ? n.id : void 0)),
o = M(() => {
if (i && i.value === 'tooltip') return n.open && n.id ? n.id : void 0
}),
r = M(() => {
if (i && i.value !== 'tooltip') return i.value
}),
l = M(() => (r.value ? `${n.open}` : void 0))
let d
const c = ['onMouseenter', 'onMouseleave', 'onClick', 'onKeydown', 'onFocus', 'onBlur', 'onContextmenu']
return (
Be(() => {
q(
() => n.virtualRef,
(A) => {
A && (s.value = Bt(A))
},
{ immediate: !0 }
),
q(
s,
(A, g) => {
d == null || d(),
(d = void 0),
Yt(A) &&
(c.forEach((b) => {
var u
const p = n[b]
p &&
(A.addEventListener(b.slice(2).toLowerCase(), p),
(u = g == null ? void 0 : g.removeEventListener) == null ||
u.call(g, b.slice(2).toLowerCase(), p))
}),
Ls(A) &&
(d = q(
[a, o, r, l],
(b) => {
;['aria-controls', 'aria-describedby', 'aria-haspopup', 'aria-expanded'].forEach((u, p) => {
ns(b[p]) ? A.removeAttribute(u) : A.setAttribute(u, b[p])
})
},
{ immediate: !0 }
))),
Yt(g) &&
Ls(g) &&
['aria-controls', 'aria-describedby', 'aria-haspopup', 'aria-expanded'].forEach((b) =>
g.removeAttribute(b)
)
},
{ immediate: !0 }
)
}),
xe(() => {
if ((d == null || d(), (d = void 0), s.value && Yt(s.value))) {
const A = s.value
c.forEach((g) => {
const b = n[g]
b && A.removeEventListener(g.slice(2).toLowerCase(), b)
}),
(s.value = void 0)
}
}),
t({ triggerRef: s }),
(A, g) =>
A.virtualTriggering
? X('v-if', !0)
: (Z(),
_(
h(eb),
dn({ key: 0 }, A.$attrs, {
'aria-controls': h(a),
'aria-describedby': h(o),
'aria-expanded': h(l),
'aria-haspopup': h(r),
}),
{ default: x(() => [$(A.$slots, 'default')]), _: 3 },
16,
['aria-controls', 'aria-describedby', 'aria-expanded', 'aria-haspopup']
))
)
},
})
var ib = ge(nb, [['__file', 'trigger.vue']])
const Is = 'focus-trap.focus-after-trapped',
Es = 'focus-trap.focus-after-released',
sb = 'focus-trap.focusout-prevented',
Ua = { cancelable: !0, bubbles: !1 },
ob = { cancelable: !0, bubbles: !1 },
Ta = 'focusAfterTrapped',
Ja = 'focusAfterReleased',
ab = Symbol('elFocusTrap'),
wo = C(),
cs = C(0),
Ro = C(0)
let Ei = 0
const wl = (e) => {
const t = [],
n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
acceptNode: (i) => {
const s = i.tagName === 'INPUT' && i.type === 'hidden'
return i.disabled || i.hidden || s
? NodeFilter.FILTER_SKIP
: i.tabIndex >= 0 || i === document.activeElement
? NodeFilter.FILTER_ACCEPT
: NodeFilter.FILTER_SKIP
},
})
for (; n.nextNode(); ) t.push(n.currentNode)
return t
},
Ca = (e, t) => {
for (const n of e) if (!rb(n, t)) return n
},
rb = (e, t) => {
if (getComputedStyle(e).visibility === 'hidden') return !0
for (; e; ) {
if (t && e === t) return !1
if (getComputedStyle(e).display === 'none') return !0
e = e.parentElement
}
return !1
},
lb = (e) => {
const t = wl(e),
n = Ca(t, e),
i = Ca(t.reverse(), e)
return [n, i]
},
cb = (e) => e instanceof HTMLInputElement && 'select' in e,
Gt = (e, t) => {
if (e && e.focus) {
const n = document.activeElement
let i = !1
Yt(e) && !Ls(e) && !e.getAttribute('tabindex') && (e.setAttribute('tabindex', '-1'), (i = !0)),
e.focus({ preventScroll: !0 }),
(Ro.value = window.performance.now()),
e !== n && cb(e) && t && e.select(),
Yt(e) && i && e.removeAttribute('tabindex')
}
}
function Oa(e, t) {
const n = [...e],
i = e.indexOf(t)
return i !== -1 && n.splice(i, 1), n
}
const ub = () => {
let e = []
return {
push: (i) => {
const s = e[0]
s && i !== s && s.pause(), (e = Oa(e, i)), e.unshift(i)
},
remove: (i) => {
var s, a
;(e = Oa(e, i)), (a = (s = e[0]) == null ? void 0 : s.resume) == null || a.call(s)
},
}
},
db = (e, t = !1) => {
const n = document.activeElement
for (const i of e) if ((Gt(i, t), document.activeElement !== n)) return
},
za = ub(),
pb = () => cs.value > Ro.value,
Mi = () => {
;(wo.value = 'pointer'), (cs.value = window.performance.now())
},
Wa = () => {
;(wo.value = 'keyboard'), (cs.value = window.performance.now())
},
Ab = () => (
Be(() => {
Ei === 0 &&
(document.addEventListener('mousedown', Mi),
document.addEventListener('touchstart', Mi),
document.addEventListener('keydown', Wa)),
Ei++
}),
xe(() => {
Ei--,
Ei <= 0 &&
(document.removeEventListener('mousedown', Mi),
document.removeEventListener('touchstart', Mi),
document.removeEventListener('keydown', Wa))
}),
{ focusReason: wo, lastUserFocusTimestamp: cs, lastAutomatedFocusTimestamp: Ro }
),
Di = (e) => new CustomEvent(sb, { ...ob, detail: e }),
on = { tab: 'Tab', enter: 'Enter', space: 'Space', esc: 'Escape', delete: 'Delete', numpadEnter: 'NumpadEnter' }
let Sn = []
const Fa = (e) => {
e.code === on.esc && Sn.forEach((t) => t(e))
},
gb = (e) => {
Be(() => {
Sn.length === 0 && document.addEventListener('keydown', Fa), ze && Sn.push(e)
}),
xe(() => {
;(Sn = Sn.filter((t) => t !== e)), Sn.length === 0 && ze && document.removeEventListener('keydown', Fa)
})
},
fb = Q({
name: 'ElFocusTrap',
inheritAttrs: !1,
props: {
loop: Boolean,
trapped: Boolean,
focusTrapEl: Object,
focusStartEl: { type: [Object, String], default: 'first' },
},
emits: [Ta, Ja, 'focusin', 'focusout', 'focusout-prevented', 'release-requested'],
setup(e, { emit: t }) {
const n = C()
let i, s
const { focusReason: a } = Ab()
gb((u) => {
e.trapped && !o.paused && t('release-requested', u)
})
const o = {
paused: !1,
pause() {
this.paused = !0
},
resume() {
this.paused = !1
},
},
r = (u) => {
if ((!e.loop && !e.trapped) || o.paused) return
const { code: p, altKey: v, ctrlKey: f, metaKey: w, currentTarget: R, shiftKey: I } = u,
{ loop: y } = e,
E = p === on.tab && !v && !f && !w,
m = document.activeElement
if (E && m) {
const j = R,
[U, K] = lb(j)
if (U && K) {
if (!I && m === K) {
const N = Di({ focusReason: a.value })
t('focusout-prevented', N), N.defaultPrevented || (u.preventDefault(), y && Gt(U, !0))
} else if (I && [U, j].includes(m)) {
const N = Di({ focusReason: a.value })
t('focusout-prevented', N), N.defaultPrevented || (u.preventDefault(), y && Gt(K, !0))
}
} else if (m === j) {
const N = Di({ focusReason: a.value })
t('focusout-prevented', N), N.defaultPrevented || u.preventDefault()
}
}
}
it(ab, { focusTrapRef: n, onKeydown: r }),
q(
() => e.focusTrapEl,
(u) => {
u && (n.value = u)
},
{ immediate: !0 }
),
q([n], ([u], [p]) => {
u && (u.addEventListener('keydown', r), u.addEventListener('focusin', c), u.addEventListener('focusout', A)),
p &&
(p.removeEventListener('keydown', r),
p.removeEventListener('focusin', c),
p.removeEventListener('focusout', A))
})
const l = (u) => {
t(Ta, u)
},
d = (u) => t(Ja, u),
c = (u) => {
const p = h(n)
if (!p) return
const v = u.target,
f = u.relatedTarget,
w = v && p.contains(v)
e.trapped || (f && p.contains(f)) || (i = f),
w && t('focusin', u),
!o.paused && e.trapped && (w ? (s = v) : Gt(s, !0))
},
A = (u) => {
const p = h(n)
if (!(o.paused || !p))
if (e.trapped) {
const v = u.relatedTarget
!ns(v) &&
!p.contains(v) &&
setTimeout(() => {
if (!o.paused && e.trapped) {
const f = Di({ focusReason: a.value })
t('focusout-prevented', f), f.defaultPrevented || Gt(s, !0)
}
}, 0)
} else {
const v = u.target
;(v && p.contains(v)) || t('focusout', u)
}
}
async function g() {
await Ee()
const u = h(n)
if (u) {
za.push(o)
const p = u.contains(document.activeElement) ? i : document.activeElement
if (((i = p), !u.contains(p))) {
const f = new Event(Is, Ua)
u.addEventListener(Is, l),
u.dispatchEvent(f),
f.defaultPrevented ||
Ee(() => {
let w = e.focusStartEl
tt(w) || (Gt(w), document.activeElement !== w && (w = 'first')),
w === 'first' && db(wl(u), !0),
(document.activeElement === p || w === 'container') && Gt(u)
})
}
}
}
function b() {
const u = h(n)
if (u) {
u.removeEventListener(Is, l)
const p = new CustomEvent(Es, { ...Ua, detail: { focusReason: a.value } })
u.addEventListener(Es, d),
u.dispatchEvent(p),
!p.defaultPrevented &&
(a.value == 'keyboard' || !pb() || u.contains(document.activeElement)) &&
Gt(i ?? document.body),
u.removeEventListener(Es, d),
za.remove(o)
}
}
return (
Be(() => {
e.trapped && g(),
q(
() => e.trapped,
(u) => {
u ? g() : b()
}
)
}),
xe(() => {
e.trapped && b(),
n.value &&
(n.value.removeEventListener('keydown', r),
n.value.removeEventListener('focusin', c),
n.value.removeEventListener('focusout', A),
(n.value = void 0))
}),
{ onKeydown: r }
)
},
})
function bb(e, t, n, i, s, a) {
return $(e.$slots, 'default', { handleKeydown: e.onKeydown })
}
var hb = ge(fb, [
['render', bb],
['__file', 'focus-trap.vue'],
]),
Pe = 'top',
ct = 'bottom',
ut = 'right',
He = 'left',
Io = 'auto',
gi = [Pe, ct, ut, He],
Yn = 'start',
ri = 'end',
vb = 'clippingParents',
Rl = 'viewport',
$n = 'popper',
mb = 'reference',
La = gi.reduce(function (e, t) {
return e.concat([t + '-' + Yn, t + '-' + ri])
}, []),
us = [].concat(gi, [Io]).reduce(function (e, t) {
return e.concat([t, t + '-' + Yn, t + '-' + ri])
}, []),
yb = 'beforeRead',
wb = 'read',
Rb = 'afterRead',
Ib = 'beforeMain',
Eb = 'main',
Mb = 'afterMain',
Db = 'beforeWrite',
Zb = 'write',
Sb = 'afterWrite',
Nb = [yb, wb, Rb, Ib, Eb, Mb, Db, Zb, Sb]
function St(e) {
return e ? (e.nodeName || '').toLowerCase() : null
}
function yt(e) {
if (e == null) return window
if (e.toString() !== '[object Window]') {
var t = e.ownerDocument
return (t && t.defaultView) || window
}
return e
}
function Un(e) {
var t = yt(e).Element
return e instanceof t || e instanceof Element
}
function rt(e) {
var t = yt(e).HTMLElement
return e instanceof t || e instanceof HTMLElement
}
function Eo(e) {
if (typeof ShadowRoot > 'u') return !1
var t = yt(e).ShadowRoot
return e instanceof t || e instanceof ShadowRoot
}
function jb(e) {
var t = e.state
Object.keys(t.elements).forEach(function (n) {
var i = t.styles[n] || {},
s = t.attributes[n] || {},
a = t.elements[n]
!rt(a) ||
!St(a) ||
(Object.assign(a.style, i),
Object.keys(s).forEach(function (o) {
var r = s[o]
r === !1 ? a.removeAttribute(o) : a.setAttribute(o, r === !0 ? '' : r)
}))
})
}
function Gb(e) {
var t = e.state,
n = {
popper: { position: t.options.strategy, left: '0', top: '0', margin: '0' },
arrow: { position: 'absolute' },
reference: {},
}
return (
Object.assign(t.elements.popper.style, n.popper),
(t.styles = n),
t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow),
function () {
Object.keys(t.elements).forEach(function (i) {
var s = t.elements[i],
a = t.attributes[i] || {},
o = Object.keys(t.styles.hasOwnProperty(i) ? t.styles[i] : n[i]),
r = o.reduce(function (l, d) {
return (l[d] = ''), l
}, {})
!rt(s) ||
!St(s) ||
(Object.assign(s.style, r),
Object.keys(a).forEach(function (l) {
s.removeAttribute(l)
}))
})
}
)
}
var Il = { name: 'applyStyles', enabled: !0, phase: 'write', fn: jb, effect: Gb, requires: ['computeStyles'] }
function Zt(e) {
return e.split('-')[0]
}
var an = Math.max,
Pi = Math.min,
Tn = Math.round
function Jn(e, t) {
t === void 0 && (t = !1)
var n = e.getBoundingClientRect(),
i = 1,
s = 1
if (rt(e) && t) {
var a = e.offsetHeight,
o = e.offsetWidth
o > 0 && (i = Tn(n.width) / o || 1), a > 0 && (s = Tn(n.height) / a || 1)
}
return {
width: n.width / i,
height: n.height / s,
top: n.top / s,
right: n.right / i,
bottom: n.bottom / s,
left: n.left / i,
x: n.left / i,
y: n.top / s,
}
}
function Mo(e) {
var t = Jn(e),
n = e.offsetWidth,
i = e.offsetHeight
return (
Math.abs(t.width - n) <= 1 && (n = t.width),
Math.abs(t.height - i) <= 1 && (i = t.height),
{ x: e.offsetLeft, y: e.offsetTop, width: n, height: i }
)
}
function El(e, t) {
var n = t.getRootNode && t.getRootNode()
if (e.contains(t)) return !0
if (n && Eo(n)) {
var i = t
do {
if (i && e.isSameNode(i)) return !0
i = i.parentNode || i.host
} while (i)
}
return !1
}
function Ct(e) {
return yt(e).getComputedStyle(e)
}
function kb(e) {
return ['table', 'td', 'th'].indexOf(St(e)) >= 0
}
function Ht(e) {
return ((Un(e) ? e.ownerDocument : e.document) || window.document).documentElement
}
function ds(e) {
return St(e) === 'html' ? e : e.assignedSlot || e.parentNode || (Eo(e) ? e.host : null) || Ht(e)
}
function xa(e) {
return !rt(e) || Ct(e).position === 'fixed' ? null : e.offsetParent
}
function Bb(e) {
var t = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1,
n = navigator.userAgent.indexOf('Trident') !== -1
if (n && rt(e)) {
var i = Ct(e)
if (i.position === 'fixed') return null
}
var s = ds(e)
for (Eo(s) && (s = s.host); rt(s) && ['html', 'body'].indexOf(St(s)) < 0; ) {
var a = Ct(s)
if (
a.transform !== 'none' ||
a.perspective !== 'none' ||
a.contain === 'paint' ||
['transform', 'perspective'].indexOf(a.willChange) !== -1 ||
(t && a.willChange === 'filter') ||
(t && a.filter && a.filter !== 'none')
)
return s
s = s.parentNode
}
return null
}
function fi(e) {
for (var t = yt(e), n = xa(e); n && kb(n) && Ct(n).position === 'static'; ) n = xa(n)
return n && (St(n) === 'html' || (St(n) === 'body' && Ct(n).position === 'static')) ? t : n || Bb(e) || t
}
function Do(e) {
return ['top', 'bottom'].indexOf(e) >= 0 ? 'x' : 'y'
}
function si(e, t, n) {
return an(e, Pi(t, n))
}
function Yb(e, t, n) {
var i = si(e, t, n)
return i > n ? n : i
}
function Ml() {
return { top: 0, right: 0, bottom: 0, left: 0 }
}
function Dl(e) {
return Object.assign({}, Ml(), e)
}
function Zl(e, t) {
return t.reduce(function (n, i) {
return (n[i] = e), n
}, {})
}
var Ub = function (e, t) {
return (
(e = typeof e == 'function' ? e(Object.assign({}, t.rects, { placement: t.placement })) : e),
Dl(typeof e != 'number' ? e : Zl(e, gi))
)
}
function Tb(e) {
var t,
n = e.state,
i = e.name,
s = e.options,
a = n.elements.arrow,
o = n.modifiersData.popperOffsets,
r = Zt(n.placement),
l = Do(r),
d = [He, ut].indexOf(r) >= 0,
c = d ? 'height' : 'width'
if (!(!a || !o)) {
var A = Ub(s.padding, n),
g = Mo(a),
b = l === 'y' ? Pe : He,
u = l === 'y' ? ct : ut,
p = n.rects.reference[c] + n.rects.reference[l] - o[l] - n.rects.popper[c],
v = o[l] - n.rects.reference[l],
f = fi(a),
w = f ? (l === 'y' ? f.clientHeight || 0 : f.clientWidth || 0) : 0,
R = p / 2 - v / 2,
I = A[b],
y = w - g[c] - A[u],
E = w / 2 - g[c] / 2 + R,
m = si(I, E, y),
j = l
n.modifiersData[i] = ((t = {}), (t[j] = m), (t.centerOffset = m - E), t)
}
}
function Jb(e) {
var t = e.state,
n = e.options,
i = n.element,
s = i === void 0 ? '[data-popper-arrow]' : i
s != null &&
((typeof s == 'string' && ((s = t.elements.popper.querySelector(s)), !s)) ||
!El(t.elements.popper, s) ||
(t.elements.arrow = s))
}
var Cb = {
name: 'arrow',
enabled: !0,
phase: 'main',
fn: Tb,
effect: Jb,
requires: ['popperOffsets'],
requiresIfExists: ['preventOverflow'],
}
function Cn(e) {
return e.split('-')[1]
}
var Ob = { top: 'auto', right: 'auto', bottom: 'auto', left: 'auto' }
function zb(e) {
var t = e.x,
n = e.y,
i = window,
s = i.devicePixelRatio || 1
return { x: Tn(t * s) / s || 0, y: Tn(n * s) / s || 0 }
}
function Va(e) {
var t,
n = e.popper,
i = e.popperRect,
s = e.placement,
a = e.variation,
o = e.offsets,
r = e.position,
l = e.gpuAcceleration,
d = e.adaptive,
c = e.roundOffsets,
A = e.isFixed,
g = o.x,
b = g === void 0 ? 0 : g,
u = o.y,
p = u === void 0 ? 0 : u,
v = typeof c == 'function' ? c({ x: b, y: p }) : { x: b, y: p }
;(b = v.x), (p = v.y)
var f = o.hasOwnProperty('x'),
w = o.hasOwnProperty('y'),
R = He,
I = Pe,
y = window
if (d) {
var E = fi(n),
m = 'clientHeight',
j = 'clientWidth'
if (
(E === yt(n) &&
((E = Ht(n)), Ct(E).position !== 'static' && r === 'absolute' && ((m = 'scrollHeight'), (j = 'scrollWidth'))),
(E = E),
s === Pe || ((s === He || s === ut) && a === ri))
) {
I = ct
var U = A && E === y && y.visualViewport ? y.visualViewport.height : E[m]
;(p -= U - i.height), (p *= l ? 1 : -1)
}
if (s === He || ((s === Pe || s === ct) && a === ri)) {
R = ut
var K = A && E === y && y.visualViewport ? y.visualViewport.width : E[j]
;(b -= K - i.width), (b *= l ? 1 : -1)
}
}
var H = Object.assign({ position: r }, d && Ob),
N = c === !0 ? zb({ x: b, y: p }) : { x: b, y: p }
if (((b = N.x), (p = N.y), l)) {
var k
return Object.assign(
{},
H,
((k = {}),
(k[I] = w ? '0' : ''),
(k[R] = f ? '0' : ''),
(k.transform =
(y.devicePixelRatio || 1) <= 1
? 'translate(' + b + 'px, ' + p + 'px)'
: 'translate3d(' + b + 'px, ' + p + 'px, 0)'),
k)
)
}
return Object.assign({}, H, ((t = {}), (t[I] = w ? p + 'px' : ''), (t[R] = f ? b + 'px' : ''), (t.transform = ''), t))
}
function Wb(e) {
var t = e.state,
n = e.options,
i = n.gpuAcceleration,
s = i === void 0 ? !0 : i,
a = n.adaptive,
o = a === void 0 ? !0 : a,
r = n.roundOffsets,
l = r === void 0 ? !0 : r,
d = {
placement: Zt(t.placement),
variation: Cn(t.placement),
popper: t.elements.popper,
popperRect: t.rects.popper,
gpuAcceleration: s,
isFixed: t.options.strategy === 'fixed',
}
t.modifiersData.popperOffsets != null &&
(t.styles.popper = Object.assign(
{},
t.styles.popper,
Va(
Object.assign({}, d, {
offsets: t.modifiersData.popperOffsets,
position: t.options.strategy,
adaptive: o,
roundOffsets: l,
})
)
)),
t.modifiersData.arrow != null &&
(t.styles.arrow = Object.assign(
{},
t.styles.arrow,
Va(
Object.assign({}, d, { offsets: t.modifiersData.arrow, position: 'absolute', adaptive: !1, roundOffsets: l })
)
)),
(t.attributes.popper = Object.assign({}, t.attributes.popper, { 'data-popper-placement': t.placement }))
}
var Sl = { name: 'computeStyles', enabled: !0, phase: 'beforeWrite', fn: Wb, data: {} },
Zi = { passive: !0 }
function Fb(e) {
var t = e.state,
n = e.instance,
i = e.options,
s = i.scroll,
a = s === void 0 ? !0 : s,
o = i.resize,
r = o === void 0 ? !0 : o,
l = yt(t.elements.popper),
d = [].concat(t.scrollParents.reference, t.scrollParents.popper)
return (
a &&
d.forEach(function (c) {
c.addEventListener('scroll', n.update, Zi)
}),
r && l.addEventListener('resize', n.update, Zi),
function () {
a &&
d.forEach(function (c) {
c.removeEventListener('scroll', n.update, Zi)
}),
r && l.removeEventListener('resize', n.update, Zi)
}
)
}
var Nl = { name: 'eventListeners', enabled: !0, phase: 'write', fn: function () {}, effect: Fb, data: {} },
Lb = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }
function Ui(e) {
return e.replace(/left|right|bottom|top/g, function (t) {
return Lb[t]
})
}
var xb = { start: 'end', end: 'start' }
function Qa(e) {
return e.replace(/start|end/g, function (t) {
return xb[t]
})
}
function Zo(e) {
var t = yt(e),
n = t.pageXOffset,
i = t.pageYOffset
return { scrollLeft: n, scrollTop: i }
}
function So(e) {
return Jn(Ht(e)).left + Zo(e).scrollLeft
}
function Vb(e) {
var t = yt(e),
n = Ht(e),
i = t.visualViewport,
s = n.clientWidth,
a = n.clientHeight,
o = 0,
r = 0
return (
i &&
((s = i.width),
(a = i.height),
/^((?!chrome|android).)*safari/i.test(navigator.userAgent) || ((o = i.offsetLeft), (r = i.offsetTop))),
{ width: s, height: a, x: o + So(e), y: r }
)
}
function Qb(e) {
var t,
n = Ht(e),
i = Zo(e),
s = (t = e.ownerDocument) == null ? void 0 : t.body,
a = an(n.scrollWidth, n.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0),
o = an(n.scrollHeight, n.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0),
r = -i.scrollLeft + So(e),
l = -i.scrollTop
return (
Ct(s || n).direction === 'rtl' && (r += an(n.clientWidth, s ? s.clientWidth : 0) - a),
{ width: a, height: o, x: r, y: l }
)
}
function No(e) {
var t = Ct(e),
n = t.overflow,
i = t.overflowX,
s = t.overflowY
return /auto|scroll|overlay|hidden/.test(n + s + i)
}
function jl(e) {
return ['html', 'body', '#document'].indexOf(St(e)) >= 0 ? e.ownerDocument.body : rt(e) && No(e) ? e : jl(ds(e))
}
function oi(e, t) {
var n
t === void 0 && (t = [])
var i = jl(e),
s = i === ((n = e.ownerDocument) == null ? void 0 : n.body),
a = yt(i),
o = s ? [a].concat(a.visualViewport || [], No(i) ? i : []) : i,
r = t.concat(o)
return s ? r : r.concat(oi(ds(o)))
}
function xs(e) {
return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height })
}
function Xb(e) {
var t = Jn(e)
return (
(t.top = t.top + e.clientTop),
(t.left = t.left + e.clientLeft),
(t.bottom = t.top + e.clientHeight),
(t.right = t.left + e.clientWidth),
(t.width = e.clientWidth),
(t.height = e.clientHeight),
(t.x = t.left),
(t.y = t.top),
t
)
}
function Xa(e, t) {
return t === Rl ? xs(Vb(e)) : Un(t) ? Xb(t) : xs(Qb(Ht(e)))
}
function Pb(e) {
var t = oi(ds(e)),
n = ['absolute', 'fixed'].indexOf(Ct(e).position) >= 0,
i = n && rt(e) ? fi(e) : e
return Un(i)
? t.filter(function (s) {
return Un(s) && El(s, i) && St(s) !== 'body'
})
: []
}
function Hb(e, t, n) {
var i = t === 'clippingParents' ? Pb(e) : [].concat(t),
s = [].concat(i, [n]),
a = s[0],
o = s.reduce(
function (r, l) {
var d = Xa(e, l)
return (
(r.top = an(d.top, r.top)),
(r.right = Pi(d.right, r.right)),
(r.bottom = Pi(d.bottom, r.bottom)),
(r.left = an(d.left, r.left)),
r
)
},
Xa(e, a)
)
return (o.width = o.right - o.left), (o.height = o.bottom - o.top), (o.x = o.left), (o.y = o.top), o
}
function Gl(e) {
var t = e.reference,
n = e.element,
i = e.placement,
s = i ? Zt(i) : null,
a = i ? Cn(i) : null,
o = t.x + t.width / 2 - n.width / 2,
r = t.y + t.height / 2 - n.height / 2,
l
switch (s) {
case Pe:
l = { x: o, y: t.y - n.height }
break
case ct:
l = { x: o, y: t.y + t.height }
break
case ut:
l = { x: t.x + t.width, y: r }
break
case He:
l = { x: t.x - n.width, y: r }
break
default:
l = { x: t.x, y: t.y }
}
var d = s ? Do(s) : null
if (d != null) {
var c = d === 'y' ? 'height' : 'width'
switch (a) {
case Yn:
l[d] = l[d] - (t[c] / 2 - n[c] / 2)
break
case ri:
l[d] = l[d] + (t[c] / 2 - n[c] / 2)
break
}
}
return l
}
function li(e, t) {
t === void 0 && (t = {})
var n = t,
i = n.placement,
s = i === void 0 ? e.placement : i,
a = n.boundary,
o = a === void 0 ? vb : a,
r = n.rootBoundary,
l = r === void 0 ? Rl : r,
d = n.elementContext,
c = d === void 0 ? $n : d,
A = n.altBoundary,
g = A === void 0 ? !1 : A,
b = n.padding,
u = b === void 0 ? 0 : b,
p = Dl(typeof u != 'number' ? u : Zl(u, gi)),
v = c === $n ? mb : $n,
f = e.rects.popper,
w = e.elements[g ? v : c],
R = Hb(Un(w) ? w : w.contextElement || Ht(e.elements.popper), o, l),
I = Jn(e.elements.reference),
y = Gl({ reference: I, element: f, placement: s }),
E = xs(Object.assign({}, f, y)),
m = c === $n ? E : I,
j = {
top: R.top - m.top + p.top,
bottom: m.bottom - R.bottom + p.bottom,
left: R.left - m.left + p.left,
right: m.right - R.right + p.right,
},
U = e.modifiersData.offset
if (c === $n && U) {
var K = U[s]
Object.keys(j).forEach(function (H) {
var N = [ut, ct].indexOf(H) >= 0 ? 1 : -1,
k = [Pe, ct].indexOf(H) >= 0 ? 'y' : 'x'
j[H] += K[k] * N
})
}
return j
}
function Kb(e, t) {
t === void 0 && (t = {})
var n = t,
i = n.placement,
s = n.boundary,
a = n.rootBoundary,
o = n.padding,
r = n.flipVariations,
l = n.allowedAutoPlacements,
d = l === void 0 ? us : l,
c = Cn(i),
A = c
? r
? La
: La.filter(function (u) {
return Cn(u) === c
})
: gi,
g = A.filter(function (u) {
return d.indexOf(u) >= 0
})
g.length === 0 && (g = A)
var b = g.reduce(function (u, p) {
return (u[p] = li(e, { placement: p, boundary: s, rootBoundary: a, padding: o })[Zt(p)]), u
}, {})
return Object.keys(b).sort(function (u, p) {
return b[u] - b[p]
})
}
function qb(e) {
if (Zt(e) === Io) return []
var t = Ui(e)
return [Qa(e), t, Qa(t)]
}
function _b(e) {
var t = e.state,
n = e.options,
i = e.name
if (!t.modifiersData[i]._skip) {
for (
var s = n.mainAxis,
a = s === void 0 ? !0 : s,
o = n.altAxis,
r = o === void 0 ? !0 : o,
l = n.fallbackPlacements,
d = n.padding,
c = n.boundary,
A = n.rootBoundary,
g = n.altBoundary,
b = n.flipVariations,
u = b === void 0 ? !0 : b,
p = n.allowedAutoPlacements,
v = t.options.placement,
f = Zt(v),
w = f === v,
R = l || (w || !u ? [Ui(v)] : qb(v)),
I = [v].concat(R).reduce(function (ve, fe) {
return ve.concat(
Zt(fe) === Io
? Kb(t, {
placement: fe,
boundary: c,
rootBoundary: A,
padding: d,
flipVariations: u,
allowedAutoPlacements: p,
})
: fe
)
}, []),
y = t.rects.reference,
E = t.rects.popper,
m = new Map(),
j = !0,
U = I[0],
K = 0;
K < I.length;
K++
) {
var H = I[K],
N = Zt(H),
k = Cn(H) === Yn,
F = [Pe, ct].indexOf(N) >= 0,
L = F ? 'width' : 'height',
O = li(t, { placement: H, boundary: c, rootBoundary: A, altBoundary: g, padding: d }),
G = F ? (k ? ut : He) : k ? ct : Pe
y[L] > E[L] && (G = Ui(G))
var V = Ui(G),
ne = []
if (
(a && ne.push(O[N] <= 0),
r && ne.push(O[G] <= 0, O[V] <= 0),
ne.every(function (ve) {
return ve
}))
) {
;(U = H), (j = !1)
break
}
m.set(H, ne)
}
if (j)
for (
var re = u ? 3 : 1,
Ie = function (ve) {
var fe = I.find(function (Re) {
var pe = m.get(Re)
if (pe)
return pe.slice(0, ve).every(function (W) {
return W
})
})
if (fe) return (U = fe), 'break'
},
ie = re;
ie > 0;
ie--
) {
var we = Ie(ie)
if (we === 'break') break
}
t.placement !== U && ((t.modifiersData[i]._skip = !0), (t.placement = U), (t.reset = !0))
}
}
var $b = { name: 'flip', enabled: !0, phase: 'main', fn: _b, requiresIfExists: ['offset'], data: { _skip: !1 } }
function Pa(e, t, n) {
return (
n === void 0 && (n = { x: 0, y: 0 }),
{
top: e.top - t.height - n.y,
right: e.right - t.width + n.x,
bottom: e.bottom - t.height + n.y,
left: e.left - t.width - n.x,
}
)
}
function Ha(e) {
return [Pe, ut, ct, He].some(function (t) {
return e[t] >= 0
})
}
function e0(e) {
var t = e.state,
n = e.name,
i = t.rects.reference,
s = t.rects.popper,
a = t.modifiersData.preventOverflow,
o = li(t, { elementContext: 'reference' }),
r = li(t, { altBoundary: !0 }),
l = Pa(o, i),
d = Pa(r, s, a),
c = Ha(l),
A = Ha(d)
;(t.modifiersData[n] = {
referenceClippingOffsets: l,
popperEscapeOffsets: d,
isReferenceHidden: c,
hasPopperEscaped: A,
}),
(t.attributes.popper = Object.assign({}, t.attributes.popper, {
'data-popper-reference-hidden': c,
'data-popper-escaped': A,
}))
}
var t0 = { name: 'hide', enabled: !0, phase: 'main', requiresIfExists: ['preventOverflow'], fn: e0 }
function n0(e, t, n) {
var i = Zt(e),
s = [He, Pe].indexOf(i) >= 0 ? -1 : 1,
a = typeof n == 'function' ? n(Object.assign({}, t, { placement: e })) : n,
o = a[0],
r = a[1]
return (o = o || 0), (r = (r || 0) * s), [He, ut].indexOf(i) >= 0 ? { x: r, y: o } : { x: o, y: r }
}
function i0(e) {
var t = e.state,
n = e.options,
i = e.name,
s = n.offset,
a = s === void 0 ? [0, 0] : s,
o = us.reduce(function (c, A) {
return (c[A] = n0(A, t.rects, a)), c
}, {}),
r = o[t.placement],
l = r.x,
d = r.y
t.modifiersData.popperOffsets != null &&
((t.modifiersData.popperOffsets.x += l), (t.modifiersData.popperOffsets.y += d)),
(t.modifiersData[i] = o)
}
var s0 = { name: 'offset', enabled: !0, phase: 'main', requires: ['popperOffsets'], fn: i0 }
function o0(e) {
var t = e.state,
n = e.name
t.modifiersData[n] = Gl({ reference: t.rects.reference, element: t.rects.popper, placement: t.placement })
}
var kl = { name: 'popperOffsets', enabled: !0, phase: 'read', fn: o0, data: {} }
function a0(e) {
return e === 'x' ? 'y' : 'x'
}
function r0(e) {
var t = e.state,
n = e.options,
i = e.name,
s = n.mainAxis,
a = s === void 0 ? !0 : s,
o = n.altAxis,
r = o === void 0 ? !1 : o,
l = n.boundary,
d = n.rootBoundary,
c = n.altBoundary,
A = n.padding,
g = n.tether,
b = g === void 0 ? !0 : g,
u = n.tetherOffset,
p = u === void 0 ? 0 : u,
v = li(t, { boundary: l, rootBoundary: d, padding: A, altBoundary: c }),
f = Zt(t.placement),
w = Cn(t.placement),
R = !w,
I = Do(f),
y = a0(I),
E = t.modifiersData.popperOffsets,
m = t.rects.reference,
j = t.rects.popper,
U = typeof p == 'function' ? p(Object.assign({}, t.rects, { placement: t.placement })) : p,
K = typeof U == 'number' ? { mainAxis: U, altAxis: U } : Object.assign({ mainAxis: 0, altAxis: 0 }, U),
H = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null,
N = { x: 0, y: 0 }
if (E) {
if (a) {
var k,
F = I === 'y' ? Pe : He,
L = I === 'y' ? ct : ut,
O = I === 'y' ? 'height' : 'width',
G = E[I],
V = G + v[F],
ne = G - v[L],
re = b ? -j[O] / 2 : 0,
Ie = w === Yn ? m[O] : j[O],
ie = w === Yn ? -j[O] : -m[O],
we = t.elements.arrow,
ve = b && we ? Mo(we) : { width: 0, height: 0 },
fe = t.modifiersData['arrow#persistent'] ? t.modifiersData['arrow#persistent'].padding : Ml(),
Re = fe[F],
pe = fe[L],
W = si(0, m[O], ve[O]),
se = R ? m[O] / 2 - re - W - Re - K.mainAxis : Ie - W - Re - K.mainAxis,
le = R ? -m[O] / 2 + re + W + pe + K.mainAxis : ie + W + pe + K.mainAxis,
Ae = t.elements.arrow && fi(t.elements.arrow),
ke = Ae ? (I === 'y' ? Ae.clientTop || 0 : Ae.clientLeft || 0) : 0,
Ve = (k = H == null ? void 0 : H[I]) != null ? k : 0,
vn = G + se - Ve - ke,
mn = G + le - Ve,
yn = si(b ? Pi(V, vn) : V, G, b ? an(ne, mn) : ne)
;(E[I] = yn), (N[I] = yn - G)
}
if (r) {
var wn,
Ot = I === 'x' ? Pe : He,
Rn = I === 'x' ? ct : ut,
Qe = E[y],
Rt = y === 'y' ? 'height' : 'width',
In = Qe + v[Ot],
_t = Qe - v[Rn],
J = [Pe, He].indexOf(f) !== -1,
ue = (wn = H == null ? void 0 : H[y]) != null ? wn : 0,
st = J ? In : Qe - m[Rt] - j[Rt] - ue + K.altAxis,
zt = J ? Qe + m[Rt] + j[Rt] - ue - K.altAxis : _t,
Wt = b && J ? Yb(st, Qe, zt) : si(b ? st : In, Qe, b ? zt : _t)
;(E[y] = Wt), (N[y] = Wt - Qe)
}
t.modifiersData[i] = N
}
}
var l0 = { name: 'preventOverflow', enabled: !0, phase: 'main', fn: r0, requiresIfExists: ['offset'] }
function c0(e) {
return { scrollLeft: e.scrollLeft, scrollTop: e.scrollTop }
}
function u0(e) {
return e === yt(e) || !rt(e) ? Zo(e) : c0(e)
}
function d0(e) {
var t = e.getBoundingClientRect(),
n = Tn(t.width) / e.offsetWidth || 1,
i = Tn(t.height) / e.offsetHeight || 1
return n !== 1 || i !== 1
}
function p0(e, t, n) {
n === void 0 && (n = !1)
var i = rt(t),
s = rt(t) && d0(t),
a = Ht(t),
o = Jn(e, s),
r = { scrollLeft: 0, scrollTop: 0 },
l = { x: 0, y: 0 }
return (
(i || (!i && !n)) &&
((St(t) !== 'body' || No(a)) && (r = u0(t)),
rt(t) ? ((l = Jn(t, !0)), (l.x += t.clientLeft), (l.y += t.clientTop)) : a && (l.x = So(a))),
{ x: o.left + r.scrollLeft - l.x, y: o.top + r.scrollTop - l.y, width: o.width, height: o.height }
)
}
function A0(e) {
var t = new Map(),
n = new Set(),
i = []
e.forEach(function (a) {
t.set(a.name, a)
})
function s(a) {
n.add(a.name)
var o = [].concat(a.requires || [], a.requiresIfExists || [])
o.forEach(function (r) {
if (!n.has(r)) {
var l = t.get(r)
l && s(l)
}
}),
i.push(a)
}
return (
e.forEach(function (a) {
n.has(a.name) || s(a)
}),
i
)
}
function g0(e) {
var t = A0(e)
return Nb.reduce(function (n, i) {
return n.concat(
t.filter(function (s) {
return s.phase === i
})
)
}, [])
}
function f0(e) {
var t
return function () {
return (
t ||
(t = new Promise(function (n) {
Promise.resolve().then(function () {
;(t = void 0), n(e())
})
})),
t
)
}
}
function b0(e) {
var t = e.reduce(function (n, i) {
var s = n[i.name]
return (
(n[i.name] = s
? Object.assign({}, s, i, {
options: Object.assign({}, s.options, i.options),
data: Object.assign({}, s.data, i.data),
})
: i),
n
)
}, {})
return Object.keys(t).map(function (n) {
return t[n]
})
}
var Ka = { placement: 'bottom', modifiers: [], strategy: 'absolute' }
function qa() {
for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]
return !t.some(function (i) {
return !(i && typeof i.getBoundingClientRect == 'function')
})
}
function jo(e) {
e === void 0 && (e = {})
var t = e,
n = t.defaultModifiers,
i = n === void 0 ? [] : n,
s = t.defaultOptions,
a = s === void 0 ? Ka : s
return function (o, r, l) {
l === void 0 && (l = a)
var d = {
placement: 'bottom',
orderedModifiers: [],
options: Object.assign({}, Ka, a),
modifiersData: {},
elements: { reference: o, popper: r },
attributes: {},
styles: {},
},
c = [],
A = !1,
g = {
state: d,
setOptions: function (p) {
var v = typeof p == 'function' ? p(d.options) : p
u(),
(d.options = Object.assign({}, a, d.options, v)),
(d.scrollParents = {
reference: Un(o) ? oi(o) : o.contextElement ? oi(o.contextElement) : [],
popper: oi(r),
})
var f = g0(b0([].concat(i, d.options.modifiers)))
return (
(d.orderedModifiers = f.filter(function (w) {
return w.enabled
})),
b(),
g.update()
)
},
forceUpdate: function () {
if (!A) {
var p = d.elements,
v = p.reference,
f = p.popper
if (qa(v, f)) {
;(d.rects = { reference: p0(v, fi(f), d.options.strategy === 'fixed'), popper: Mo(f) }),
(d.reset = !1),
(d.placement = d.options.placement),
d.orderedModifiers.forEach(function (j) {
return (d.modifiersData[j.name] = Object.assign({}, j.data))
})
for (var w = 0; w < d.orderedModifiers.length; w++) {
if (d.reset === !0) {
;(d.reset = !1), (w = -1)
continue
}
var R = d.orderedModifiers[w],
I = R.fn,
y = R.options,
E = y === void 0 ? {} : y,
m = R.name
typeof I == 'function' && (d = I({ state: d, options: E, name: m, instance: g }) || d)
}
}
}
},
update: f0(function () {
return new Promise(function (p) {
g.forceUpdate(), p(d)
})
}),
destroy: function () {
u(), (A = !0)
},
}
if (!qa(o, r)) return g
g.setOptions(l).then(function (p) {
!A && l.onFirstUpdate && l.onFirstUpdate(p)
})
function b() {
d.orderedModifiers.forEach(function (p) {
var v = p.name,
f = p.options,
w = f === void 0 ? {} : f,
R = p.effect
if (typeof R == 'function') {
var I = R({ state: d, name: v, instance: g, options: w }),
y = function () {}
c.push(I || y)
}
})
}
function u() {
c.forEach(function (p) {
return p()
}),
(c = [])
}
return g
}
}
jo()
var h0 = [Nl, kl, Sl, Il]
jo({ defaultModifiers: h0 })
var v0 = [Nl, kl, Sl, Il, s0, $b, l0, Cb, t0],
m0 = jo({ defaultModifiers: v0 })
const y0 = ['fixed', 'absolute'],
w0 = ye({
boundariesPadding: { type: Number, default: 0 },
fallbackPlacements: { type: ee(Array), default: void 0 },
gpuAcceleration: { type: Boolean, default: !0 },
offset: { type: Number, default: 12 },
placement: { type: String, values: us, default: 'bottom' },
popperOptions: { type: ee(Object), default: () => ({}) },
strategy: { type: String, values: y0, default: 'absolute' },
}),
Bl = ye({
...w0,
id: String,
style: { type: ee([String, Array, Object]) },
className: { type: ee([String, Array, Object]) },
effect: { type: ee(String), default: 'dark' },
visible: Boolean,
enterable: { type: Boolean, default: !0 },
pure: Boolean,
focusOnShow: { type: Boolean, default: !1 },
trapping: { type: Boolean, default: !1 },
popperClass: { type: ee([String, Array, Object]) },
popperStyle: { type: ee([String, Array, Object]) },
referenceEl: { type: ee(Object) },
triggerTargetEl: { type: ee(Object) },
stopPopperMouseEvent: { type: Boolean, default: !0 },
virtualTriggering: Boolean,
zIndex: Number,
...hn(['ariaLabel']),
}),
R0 = {
mouseenter: (e) => e instanceof MouseEvent,
mouseleave: (e) => e instanceof MouseEvent,
focus: () => !0,
blur: () => !0,
close: () => !0,
},
I0 = (e, t) => {
const n = C(!1),
i = C()
return {
focusStartRef: i,
trapped: n,
onFocusAfterReleased: (d) => {
var c
;((c = d.detail) == null ? void 0 : c.focusReason) !== 'pointer' && ((i.value = 'first'), t('blur'))
},
onFocusAfterTrapped: () => {
t('focus')
},
onFocusInTrap: (d) => {
e.visible && !n.value && (d.target && (i.value = d.target), (n.value = !0))
},
onFocusoutPrevented: (d) => {
e.trapping || (d.detail.focusReason === 'pointer' && d.preventDefault(), (n.value = !1))
},
onReleaseRequested: () => {
;(n.value = !1), t('close')
},
}
},
E0 = (e, t = []) => {
const { placement: n, strategy: i, popperOptions: s } = e,
a = { placement: n, strategy: i, ...s, modifiers: [...D0(e), ...t] }
return Z0(a, s == null ? void 0 : s.modifiers), a
},
M0 = (e) => {
if (ze) return Bt(e)
}
function D0(e) {
const { offset: t, gpuAcceleration: n, fallbackPlacements: i } = e
return [
{ name: 'offset', options: { offset: [0, t ?? 12] } },
{ name: 'preventOverflow', options: { padding: { top: 2, bottom: 2, left: 5, right: 5 } } },
{ name: 'flip', options: { padding: 5, fallbackPlacements: i } },
{ name: 'computeStyles', options: { gpuAcceleration: n } },
]
}
function Z0(e, t) {
t && (e.modifiers = [...e.modifiers, ...(t ?? [])])
}
const S0 = (e, t, n = {}) => {
const i = {
name: 'updateState',
enabled: !0,
phase: 'write',
fn: ({ state: l }) => {
const d = N0(l)
Object.assign(o.value, d)
},
requires: ['computeStyles'],
},
s = M(() => {
const { onFirstUpdate: l, placement: d, strategy: c, modifiers: A } = h(n)
return {
onFirstUpdate: l,
placement: d || 'bottom',
strategy: c || 'absolute',
modifiers: [...(A || []), i, { name: 'applyStyles', enabled: !1 }],
}
}),
a = Nn(),
o = C({
styles: { popper: { position: h(s).strategy, left: '0', top: '0' }, arrow: { position: 'absolute' } },
attributes: {},
}),
r = () => {
a.value && (a.value.destroy(), (a.value = void 0))
}
return (
q(
s,
(l) => {
const d = h(a)
d && d.setOptions(l)
},
{ deep: !0 }
),
q([e, t], ([l, d]) => {
r(), !(!l || !d) && (a.value = m0(l, d, h(s)))
}),
xe(() => {
r()
}),
{
state: M(() => {
var l
return { ...(((l = h(a)) == null ? void 0 : l.state) || {}) }
}),
styles: M(() => h(o).styles),
attributes: M(() => h(o).attributes),
update: () => {
var l
return (l = h(a)) == null ? void 0 : l.update()
},
forceUpdate: () => {
var l
return (l = h(a)) == null ? void 0 : l.forceUpdate()
},
instanceRef: M(() => h(a)),
}
)
}
function N0(e) {
const t = Object.keys(e.elements),
n = Ys(t.map((s) => [s, e.styles[s] || {}])),
i = Ys(t.map((s) => [s, e.attributes[s]]))
return { styles: n, attributes: i }
}
const j0 = 0,
G0 = (e) => {
const { popperInstanceRef: t, contentRef: n, triggerRef: i, role: s } = de(yo, void 0),
a = C(),
o = C(),
r = M(() => ({ name: 'eventListeners', enabled: !!e.visible })),
l = M(() => {
var f
const w = h(a),
R = (f = h(o)) != null ? f : j0
return { name: 'arrow', enabled: !Eg(w), options: { element: w, padding: R } }
}),
d = M(() => ({
onFirstUpdate: () => {
u()
},
...E0(e, [h(l), h(r)]),
})),
c = M(() => M0(e.referenceEl) || h(i)),
{ attributes: A, state: g, styles: b, update: u, forceUpdate: p, instanceRef: v } = S0(c, n, d)
return (
q(v, (f) => (t.value = f)),
Be(() => {
q(
() => {
var f
return (f = h(c)) == null ? void 0 : f.getBoundingClientRect()
},
() => {
u()
}
)
}),
{
attributes: A,
arrowRef: a,
contentRef: n,
instanceRef: v,
state: g,
styles: b,
role: s,
forceUpdate: p,
update: u,
}
)
},
k0 = (e, { attributes: t, styles: n, role: i }) => {
const { nextZIndex: s } = fu(),
a = he('popper'),
o = M(() => h(t).popper),
r = C(Ne(e.zIndex) ? e.zIndex : s()),
l = M(() => [a.b(), a.is('pure', e.pure), a.is(e.effect), e.popperClass]),
d = M(() => [{ zIndex: h(r) }, h(n).popper, e.popperStyle || {}]),
c = M(() => (i.value === 'dialog' ? 'false' : void 0)),
A = M(() => h(n).arrow || {})
return {
ariaModal: c,
arrowStyle: A,
contentAttrs: o,
contentClass: l,
contentStyle: d,
contentZIndex: r,
updateZIndex: () => {
r.value = Ne(e.zIndex) ? e.zIndex : s()
},
}
},
B0 = Q({ name: 'ElPopperContent' }),
Y0 = Q({
...B0,
props: Bl,
emits: R0,
setup(e, { expose: t, emit: n }) {
const i = e,
{
focusStartRef: s,
trapped: a,
onFocusAfterReleased: o,
onFocusAfterTrapped: r,
onFocusInTrap: l,
onFocusoutPrevented: d,
onReleaseRequested: c,
} = I0(i, n),
{ attributes: A, arrowRef: g, contentRef: b, styles: u, instanceRef: p, role: v, update: f } = G0(i),
{
ariaModal: w,
arrowStyle: R,
contentAttrs: I,
contentClass: y,
contentStyle: E,
updateZIndex: m,
} = k0(i, { styles: u, attributes: A, role: v }),
j = de(gn, void 0),
U = C()
it(fl, { arrowStyle: R, arrowRef: g, arrowOffset: U }), j && it(gn, { ...j, addInputId: Fi, removeInputId: Fi })
let K
const H = (k = !0) => {
f(), k && m()
},
N = () => {
H(!1), i.visible && i.focusOnShow ? (a.value = !0) : i.visible === !1 && (a.value = !1)
}
return (
Be(() => {
q(
() => i.triggerTargetEl,
(k, F) => {
K == null || K(), (K = void 0)
const L = h(k || b.value),
O = h(F || b.value)
Yt(L) &&
(K = q(
[v, () => i.ariaLabel, w, () => i.id],
(G) => {
;['role', 'aria-label', 'aria-modal', 'id'].forEach((V, ne) => {
ns(G[ne]) ? L.removeAttribute(V) : L.setAttribute(V, G[ne])
})
},
{ immediate: !0 }
)),
O !== L &&
Yt(O) &&
['role', 'aria-label', 'aria-modal', 'id'].forEach((G) => {
O.removeAttribute(G)
})
},
{ immediate: !0 }
),
q(() => i.visible, N, { immediate: !0 })
}),
xe(() => {
K == null || K(), (K = void 0)
}),
t({ popperContentRef: b, popperInstanceRef: p, updatePopper: H, contentStyle: E }),
(k, F) => (
Z(),
T(
'div',
dn({ ref_key: 'contentRef', ref: b }, h(I), {
style: h(E),
class: h(y),
tabindex: '-1',
onMouseenter: (L) => k.$emit('mouseenter', L),
onMouseleave: (L) => k.$emit('mouseleave', L),
}),
[
P(
h(hb),
{
trapped: h(a),
'trap-on-focus-in': !0,
'focus-trap-el': h(b),
'focus-start-el': h(s),
onFocusAfterTrapped: h(r),
onFocusAfterReleased: h(o),
onFocusin: h(l),
onFocusoutPrevented: h(d),
onReleaseRequested: h(c),
},
{ default: x(() => [$(k.$slots, 'default')]), _: 3 },
8,
[
'trapped',
'focus-trap-el',
'focus-start-el',
'onFocusAfterTrapped',
'onFocusAfterReleased',
'onFocusin',
'onFocusoutPrevented',
'onReleaseRequested',
]
),
],
16,
['onMouseenter', 'onMouseleave']
)
)
)
},
})
var U0 = ge(Y0, [['__file', 'content.vue']])
const T0 = dt(Xf),
Go = Symbol('elTooltip')
function _a() {
let e
const t = (i, s) => {
n(), (e = window.setTimeout(i, s))
},
n = () => window.clearTimeout(e)
return ts(() => n()), { registerTimeout: t, cancelTimeout: n }
}
const J0 = ye({
showAfter: { type: Number, default: 0 },
hideAfter: { type: Number, default: 200 },
autoClose: { type: Number, default: 0 },
}),
C0 = ({ showAfter: e, hideAfter: t, autoClose: n, open: i, close: s }) => {
const { registerTimeout: a } = _a(),
{ registerTimeout: o, cancelTimeout: r } = _a()
return {
onOpen: (c) => {
a(() => {
i(c)
const A = h(n)
Ne(A) &&
A > 0 &&
o(() => {
s(c)
}, A)
}, h(e))
},
onClose: (c) => {
r(),
a(() => {
s(c)
}, h(t))
},
}
},
ko = ye({
...J0,
...Bl,
appendTo: { type: ee([String, Object]) },
content: { type: String, default: '' },
rawContent: Boolean,
persistent: Boolean,
visible: { type: ee(Boolean), default: null },
transition: String,
teleported: { type: Boolean, default: !0 },
disabled: Boolean,
...hn(['ariaLabel']),
}),
Yl = ye({
...vl,
disabled: Boolean,
trigger: { type: ee([String, Array]), default: 'hover' },
triggerKeys: { type: ee(Array), default: () => [on.enter, on.numpadEnter, on.space] },
}),
O0 = Jr({ type: ee(Boolean), default: null }),
z0 = Jr({ type: ee(Function) }),
W0 = (e) => {
const t = `update:${e}`,
n = `onUpdate:${e}`,
i = [t],
s = { [e]: O0, [n]: z0 }
return {
useModelToggle: ({
indicator: o,
toggleReason: r,
shouldHideWhenRouteChanges: l,
shouldProceed: d,
onShow: c,
onHide: A,
}) => {
const g = Nt(),
{ emit: b } = g,
u = g.props,
p = M(() => Oe(u[n])),
v = M(() => u[e] === null),
f = (m) => {
o.value !== !0 && ((o.value = !0), r && (r.value = m), Oe(c) && c(m))
},
w = (m) => {
o.value !== !1 && ((o.value = !1), r && (r.value = m), Oe(A) && A(m))
},
R = (m) => {
if (u.disabled === !0 || (Oe(d) && !d())) return
const j = p.value && ze
j && b(t, !0), (v.value || !j) && f(m)
},
I = (m) => {
if (u.disabled === !0 || !ze) return
const j = p.value && ze
j && b(t, !1), (v.value || !j) && w(m)
},
y = (m) => {
Tt(m) && (u.disabled && m ? p.value && b(t, !1) : o.value !== m && (m ? f() : w()))
},
E = () => {
o.value ? I() : R()
}
return (
q(() => u[e], y),
l &&
g.appContext.config.globalProperties.$route !== void 0 &&
q(
() => ({ ...g.proxy.$route }),
() => {
l.value && o.value && I()
}
),
Be(() => {
y(u[e])
}),
{ hide: I, show: R, toggle: E, hasUpdateHandler: p }
)
},
useModelToggleProps: s,
useModelToggleEmits: i,
}
},
{ useModelToggleProps: F0, useModelToggleEmits: L0, useModelToggle: x0 } = W0('visible'),
V0 = ye({ ...bl, ...F0, ...ko, ...Yl, ...hl, showArrow: { type: Boolean, default: !0 } }),
Q0 = [...L0, 'before-show', 'before-hide', 'show', 'hide', 'open', 'close'],
X0 = (e, t) => (Ye(e) ? e.includes(t) : e === t),
Dn = (e, t, n) => (i) => {
X0(h(e), t) && n(i)
},
kt =
(e, t, { checkForDefaultPrevented: n = !0 } = {}) =>
(s) => {
const a = e == null ? void 0 : e(s)
if (n === !1 || !a) return t == null ? void 0 : t(s)
},
P0 = Q({ name: 'ElTooltipTrigger' }),
H0 = Q({
...P0,
props: Yl,
setup(e, { expose: t }) {
const n = e,
i = he('tooltip'),
{ controlled: s, id: a, open: o, onOpen: r, onClose: l, onToggle: d } = de(Go, void 0),
c = C(null),
A = () => {
if (h(s) || n.disabled) return !0
},
g = ht(n, 'trigger'),
b = kt(A, Dn(g, 'hover', r)),
u = kt(A, Dn(g, 'hover', l)),
p = kt(
A,
Dn(g, 'click', (I) => {
I.button === 0 && d(I)
})
),
v = kt(A, Dn(g, 'focus', r)),
f = kt(A, Dn(g, 'focus', l)),
w = kt(
A,
Dn(g, 'contextmenu', (I) => {
I.preventDefault(), d(I)
})
),
R = kt(A, (I) => {
const { code: y } = I
n.triggerKeys.includes(y) && (I.preventDefault(), d(I))
})
return (
t({ triggerRef: c }),
(I, y) => (
Z(),
_(
h(ib),
{
id: h(a),
'virtual-ref': I.virtualRef,
open: h(o),
'virtual-triggering': I.virtualTriggering,
class: B(h(i).e('trigger')),
onBlur: h(f),
onClick: h(p),
onContextmenu: h(w),
onFocus: h(v),
onMouseenter: h(b),
onMouseleave: h(u),
onKeydown: h(R),
},
{ default: x(() => [$(I.$slots, 'default')]), _: 3 },
8,
[
'id',
'virtual-ref',
'open',
'virtual-triggering',
'class',
'onBlur',
'onClick',
'onContextmenu',
'onFocus',
'onMouseenter',
'onMouseleave',
'onKeydown',
]
)
)
)
},
})
var K0 = ge(H0, [['__file', 'trigger.vue']])
const q0 = ye({ to: { type: ee([String, Object]), required: !0 }, disabled: Boolean }),
_0 = Q({
__name: 'teleport',
props: q0,
setup(e) {
return (t, n) =>
t.disabled
? $(t.$slots, 'default', { key: 0 })
: (Z(), _(bu, { key: 1, to: t.to }, [$(t.$slots, 'default')], 8, ['to']))
},
})
var $0 = ge(_0, [['__file', 'teleport.vue']])
const eh = dt($0),
Ul = () => {
const e = Yr(),
t = ul(),
n = M(() => `${e.value}-popper-container-${t.prefix}`),
i = M(() => `#${n.value}`)
return { id: n, selector: i }
},
th = (e) => {
const t = document.createElement('div')
return (t.id = e), document.body.appendChild(t), t
},
nh = () => {
const { id: e, selector: t } = Ul()
return (
is(() => {
ze && (document.body.querySelector(t.value) || th(e.value))
}),
{ id: e, selector: t }
)
},
ih = Q({ name: 'ElTooltipContent', inheritAttrs: !1 }),
sh = Q({
...ih,
props: ko,
setup(e, { expose: t }) {
const n = e,
{ selector: i } = Ul(),
s = he('tooltip'),
a = C()
let o
const {
controlled: r,
id: l,
open: d,
trigger: c,
onClose: A,
onOpen: g,
onShow: b,
onHide: u,
onBeforeShow: p,
onBeforeHide: v,
} = de(Go, void 0),
f = M(() => n.transition || `${s.namespace.value}-fade-in-linear`),
w = M(() => n.persistent)
xe(() => {
o == null || o()
})
const R = M(() => (h(w) ? !0 : h(d))),
I = M(() => (n.disabled ? !1 : h(d))),
y = M(() => n.appendTo || i.value),
E = M(() => {
var G
return (G = n.style) != null ? G : {}
}),
m = C(!0),
j = () => {
u(), O() && Gt(document.body), (m.value = !0)
},
U = () => {
if (h(r)) return !0
},
K = kt(U, () => {
n.enterable && h(c) === 'hover' && g()
}),
H = kt(U, () => {
h(c) === 'hover' && A()
}),
N = () => {
var G, V
;(V = (G = a.value) == null ? void 0 : G.updatePopper) == null || V.call(G), p == null || p()
},
k = () => {
v == null || v()
},
F = () => {
b(),
(o = Zg(
M(() => {
var G
return (G = a.value) == null ? void 0 : G.popperContentRef
}),
() => {
if (h(r)) return
h(c) !== 'hover' && A()
}
))
},
L = () => {
n.virtualTriggering || A()
},
O = (G) => {
var V
const ne = (V = a.value) == null ? void 0 : V.popperContentRef,
re = (G == null ? void 0 : G.relatedTarget) || document.activeElement
return ne == null ? void 0 : ne.contains(re)
}
return (
q(
() => h(d),
(G) => {
G ? (m.value = !1) : o == null || o()
},
{ flush: 'post' }
),
q(
() => n.content,
() => {
var G, V
;(V = (G = a.value) == null ? void 0 : G.updatePopper) == null || V.call(G)
}
),
t({ contentRef: a, isFocusInsideContent: O }),
(G, V) => (
Z(),
_(
h(eh),
{ disabled: !G.teleported, to: h(y) },
{
default: x(() => [
P(
at,
{ name: h(f), onAfterLeave: j, onBeforeEnter: N, onAfterEnter: F, onBeforeLeave: k },
{
default: x(() => [
h(R)
? We(
(Z(),
_(
h(U0),
dn({ key: 0, id: h(l), ref_key: 'contentRef', ref: a }, G.$attrs, {
'aria-label': G.ariaLabel,
'aria-hidden': m.value,
'boundaries-padding': G.boundariesPadding,
'fallback-placements': G.fallbackPlacements,
'gpu-acceleration': G.gpuAcceleration,
offset: G.offset,
placement: G.placement,
'popper-options': G.popperOptions,
strategy: G.strategy,
effect: G.effect,
enterable: G.enterable,
pure: G.pure,
'popper-class': G.popperClass,
'popper-style': [G.popperStyle, h(E)],
'reference-el': G.referenceEl,
'trigger-target-el': G.triggerTargetEl,
visible: h(I),
'z-index': G.zIndex,
onMouseenter: h(K),
onMouseleave: h(H),
onBlur: L,
onClose: h(A),
}),
{ default: x(() => [$(G.$slots, 'default')]), _: 3 },
16,
[
'id',
'aria-label',
'aria-hidden',
'boundaries-padding',
'fallback-placements',
'gpu-acceleration',
'offset',
'placement',
'popper-options',
'strategy',
'effect',
'enterable',
'pure',
'popper-class',
'popper-style',
'reference-el',
'trigger-target-el',
'visible',
'z-index',
'onMouseenter',
'onMouseleave',
'onClose',
]
)),
[[bn, h(I)]]
)
: X('v-if', !0),
]),
_: 3,
},
8,
['name']
),
]),
_: 3,
},
8,
['disabled', 'to']
)
)
)
},
})
var oh = ge(sh, [['__file', 'content.vue']])
const ah = Q({ name: 'ElTooltip' }),
rh = Q({
...ah,
props: V0,
emits: Q0,
setup(e, { expose: t, emit: n }) {
const i = e
nh()
const s = Ai(),
a = C(),
o = C(),
r = () => {
var f
const w = h(a)
w && ((f = w.popperInstanceRef) == null || f.update())
},
l = C(!1),
d = C(),
{ show: c, hide: A, hasUpdateHandler: g } = x0({ indicator: l, toggleReason: d }),
{ onOpen: b, onClose: u } = C0({
showAfter: ht(i, 'showAfter'),
hideAfter: ht(i, 'hideAfter'),
autoClose: ht(i, 'autoClose'),
open: c,
close: A,
}),
p = M(() => Tt(i.visible) && !g.value)
it(Go, {
controlled: p,
id: s,
open: hu(l),
trigger: ht(i, 'trigger'),
onOpen: (f) => {
b(f)
},
onClose: (f) => {
u(f)
},
onToggle: (f) => {
h(l) ? u(f) : b(f)
},
onShow: () => {
n('show', d.value)
},
onHide: () => {
n('hide', d.value)
},
onBeforeShow: () => {
n('before-show', d.value)
},
onBeforeHide: () => {
n('before-hide', d.value)
},
updatePopper: r,
}),
q(
() => i.disabled,
(f) => {
f && l.value && (l.value = !1)
}
)
const v = (f) => {
var w
return (w = o.value) == null ? void 0 : w.isFocusInsideContent(f)
}
return (
vu(() => l.value && A()),
t({ popperRef: a, contentRef: o, isFocusInsideContent: v, updatePopper: r, onOpen: b, onClose: u, hide: A }),
(f, w) => (
Z(),
_(
h(T0),
{ ref_key: 'popperRef', ref: a, role: f.role },
{
default: x(() => [
P(
K0,
{
disabled: f.disabled,
trigger: f.trigger,
'trigger-keys': f.triggerKeys,
'virtual-ref': f.virtualRef,
'virtual-triggering': f.virtualTriggering,
},
{ default: x(() => [f.$slots.default ? $(f.$slots, 'default', { key: 0 }) : X('v-if', !0)]), _: 3 },
8,
['disabled', 'trigger', 'trigger-keys', 'virtual-ref', 'virtual-triggering']
),
P(
oh,
{
ref_key: 'contentRef',
ref: o,
'aria-label': f.ariaLabel,
'boundaries-padding': f.boundariesPadding,
content: f.content,
disabled: f.disabled,
effect: f.effect,
enterable: f.enterable,
'fallback-placements': f.fallbackPlacements,
'hide-after': f.hideAfter,
'gpu-acceleration': f.gpuAcceleration,
offset: f.offset,
persistent: f.persistent,
'popper-class': f.popperClass,
'popper-style': f.popperStyle,
placement: f.placement,
'popper-options': f.popperOptions,
pure: f.pure,
'raw-content': f.rawContent,
'reference-el': f.referenceEl,
'trigger-target-el': f.triggerTargetEl,
'show-after': f.showAfter,
strategy: f.strategy,
teleported: f.teleported,
transition: f.transition,
'virtual-triggering': f.virtualTriggering,
'z-index': f.zIndex,
'append-to': f.appendTo,
},
{
default: x(() => [
$(f.$slots, 'content', {}, () => [
f.rawContent
? (Z(), T('span', { key: 0, innerHTML: f.content }, null, 8, ['innerHTML']))
: (Z(), T('span', { key: 1 }, ce(f.content), 1)),
]),
f.showArrow
? (Z(), _(h(Kf), { key: 0, 'arrow-offset': f.arrowOffset }, null, 8, ['arrow-offset']))
: X('v-if', !0),
]),
_: 3,
},
8,
[
'aria-label',
'boundaries-padding',
'content',
'disabled',
'effect',
'enterable',
'fallback-placements',
'hide-after',
'gpu-acceleration',
'offset',
'persistent',
'popper-class',
'popper-style',
'placement',
'popper-options',
'pure',
'raw-content',
'reference-el',
'trigger-target-el',
'show-after',
'strategy',
'teleported',
'transition',
'virtual-triggering',
'z-index',
'append-to',
]
),
]),
_: 3,
},
8,
['role']
)
)
)
},
})
var lh = ge(rh, [['__file', 'tooltip.vue']])
const ch = dt(lh),
uh = ye({
value: { type: [String, Number], default: '' },
max: { type: Number, default: 99 },
isDot: Boolean,
hidden: Boolean,
type: { type: String, values: ['primary', 'success', 'warning', 'info', 'danger'], default: 'danger' },
showZero: { type: Boolean, default: !0 },
color: String,
badgeStyle: { type: ee([String, Object, Array]) },
offset: { type: ee(Array), default: [0, 0] },
badgeClass: { type: String },
}),
dh = Q({ name: 'ElBadge' }),
ph = Q({
...dh,
props: uh,
setup(e, { expose: t }) {
const n = e,
i = he('badge'),
s = M(() =>
n.isDot ? '' : Ne(n.value) && Ne(n.max) ? (n.max < n.value ? `${n.max}+` : `${n.value}`) : `${n.value}`
),
a = M(() => {
var o, r, l, d, c
return [
{
backgroundColor: n.color,
marginRight: pn(-((r = (o = n.offset) == null ? void 0 : o[0]) != null ? r : 0)),
marginTop: pn((d = (l = n.offset) == null ? void 0 : l[1]) != null ? d : 0),
},
(c = n.badgeStyle) != null ? c : {},
]
})
return (
t({ content: s }),
(o, r) => (
Z(),
T(
'div',
{ class: B(h(i).b()) },
[
$(o.$slots, 'default'),
P(
at,
{ name: `${h(i).namespace.value}-zoom-in-center`, persisted: '' },
{
default: x(() => [
We(
Y(
'sup',
{
class: B([
h(i).e('content'),
h(i).em('content', o.type),
h(i).is('fixed', !!o.$slots.default),
h(i).is('dot', o.isDot),
h(i).is('hide-zero', !o.showZero && n.value === 0),
o.badgeClass,
]),
style: Ue(h(a)),
},
[$(o.$slots, 'content', { value: h(s) }, () => [Le(ce(h(s)), 1)])],
6
),
[[bn, !o.hidden && (h(s) || o.isDot || o.$slots.content)]]
),
]),
_: 3,
},
8,
['name']
),
],
2
)
)
)
},
})
var Ah = ge(ph, [['__file', 'badge.vue']])
const gh = dt(Ah),
Tl = Symbol('buttonGroupContextKey'),
Ti = ({ from: e, replacement: t, scope: n, version: i, ref: s, type: a = 'API' }, o) => {
q(
() => h(o),
(r) => {},
{ immediate: !0 }
)
},
fh = (e, t) => {
Ti(
{
from: 'type.text',
replacement: 'link',
version: '3.0.0',
scope: 'props',
ref: 'https://element-plus.org/en-US/component/button.html#button-attributes',
},
M(() => e.type === 'text')
)
const n = de(Tl, void 0),
i = mu('button'),
{ form: s } = xn(),
a = Xt(M(() => (n == null ? void 0 : n.size))),
o = ls(),
r = C(),
l = pi(),
d = M(() => e.type || (n == null ? void 0 : n.type) || ''),
c = M(() => {
var u, p, v
return (v = (p = e.autoInsertSpace) != null ? p : (u = i.value) == null ? void 0 : u.autoInsertSpace) != null
? v
: !1
}),
A = M(() =>
e.tag === 'button'
? {
ariaDisabled: o.value || e.loading,
disabled: o.value || e.loading,
autofocus: e.autofocus,
type: e.nativeType,
}
: {}
),
g = M(() => {
var u
const p = (u = l.default) == null ? void 0 : u.call(l)
if (c.value && (p == null ? void 0 : p.length) === 1) {
const v = p[0]
if ((v == null ? void 0 : v.type) === Tr) {
const f = v.children
return new RegExp('^\\p{Unified_Ideograph}{2}$', 'u').test(f.trim())
}
}
return !1
})
return {
_disabled: o,
_size: a,
_type: d,
_ref: r,
_props: A,
shouldAddSpace: g,
handleClick: (u) => {
if (o.value || e.loading) {
u.stopPropagation()
return
}
e.nativeType === 'reset' && (s == null || s.resetFields()), t('click', u)
},
}
},
bh = ['default', 'primary', 'success', 'warning', 'info', 'danger', 'text', ''],
hh = ['button', 'submit', 'reset'],
Vs = ye({
size: di,
disabled: Boolean,
type: { type: String, values: bh, default: '' },
icon: { type: An },
nativeType: { type: String, values: hh, default: 'button' },
loading: Boolean,
loadingIcon: { type: An, default: () => rl },
plain: Boolean,
text: Boolean,
link: Boolean,
bg: Boolean,
autofocus: Boolean,
round: Boolean,
circle: Boolean,
color: String,
dark: Boolean,
autoInsertSpace: { type: Boolean, default: void 0 },
tag: { type: ee([String, Object]), default: 'button' },
}),
vh = { click: (e) => e instanceof MouseEvent }
function Te(e, t) {
mh(e) && (e = '100%')
var n = yh(e)
return (
(e = t === 360 ? e : Math.min(t, Math.max(0, parseFloat(e)))),
n && (e = parseInt(String(e * t), 10) / 100),
Math.abs(e - t) < 1e-6
? 1
: (t === 360
? (e = (e < 0 ? (e % t) + t : e % t) / parseFloat(String(t)))
: (e = (e % t) / parseFloat(String(t))),
e)
)
}
function Si(e) {
return Math.min(1, Math.max(0, e))
}
function mh(e) {
return typeof e == 'string' && e.indexOf('.') !== -1 && parseFloat(e) === 1
}
function yh(e) {
return typeof e == 'string' && e.indexOf('%') !== -1
}
function Jl(e) {
return (e = parseFloat(e)), (isNaN(e) || e < 0 || e > 1) && (e = 1), e
}
function Ni(e) {
return e <= 1 ? ''.concat(Number(e) * 100, '%') : e
}
function tn(e) {
return e.length === 1 ? '0' + e : String(e)
}
function wh(e, t, n) {
return { r: Te(e, 255) * 255, g: Te(t, 255) * 255, b: Te(n, 255) * 255 }
}
function $a(e, t, n) {
;(e = Te(e, 255)), (t = Te(t, 255)), (n = Te(n, 255))
var i = Math.max(e, t, n),
s = Math.min(e, t, n),
a = 0,
o = 0,
r = (i + s) / 2
if (i === s) (o = 0), (a = 0)
else {
var l = i - s
switch (((o = r > 0.5 ? l / (2 - i - s) : l / (i + s)), i)) {
case e:
a = (t - n) / l + (t < n ? 6 : 0)
break
case t:
a = (n - e) / l + 2
break
case n:
a = (e - t) / l + 4
break
}
a /= 6
}
return { h: a, s: o, l: r }
}
function Ms(e, t, n) {
return (
n < 0 && (n += 1),
n > 1 && (n -= 1),
n < 1 / 6 ? e + (t - e) * (6 * n) : n < 1 / 2 ? t : n < 2 / 3 ? e + (t - e) * (2 / 3 - n) * 6 : e
)
}
function Rh(e, t, n) {
var i, s, a
if (((e = Te(e, 360)), (t = Te(t, 100)), (n = Te(n, 100)), t === 0)) (s = n), (a = n), (i = n)
else {
var o = n < 0.5 ? n * (1 + t) : n + t - n * t,
r = 2 * n - o
;(i = Ms(r, o, e + 1 / 3)), (s = Ms(r, o, e)), (a = Ms(r, o, e - 1 / 3))
}
return { r: i * 255, g: s * 255, b: a * 255 }
}
function er(e, t, n) {
;(e = Te(e, 255)), (t = Te(t, 255)), (n = Te(n, 255))
var i = Math.max(e, t, n),
s = Math.min(e, t, n),
a = 0,
o = i,
r = i - s,
l = i === 0 ? 0 : r / i
if (i === s) a = 0
else {
switch (i) {
case e:
a = (t - n) / r + (t < n ? 6 : 0)
break
case t:
a = (n - e) / r + 2
break
case n:
a = (e - t) / r + 4
break
}
a /= 6
}
return { h: a, s: l, v: o }
}
function Ih(e, t, n) {
;(e = Te(e, 360) * 6), (t = Te(t, 100)), (n = Te(n, 100))
var i = Math.floor(e),
s = e - i,
a = n * (1 - t),
o = n * (1 - s * t),
r = n * (1 - (1 - s) * t),
l = i % 6,
d = [n, o, a, a, r, n][l],
c = [r, n, n, o, a, a][l],
A = [a, a, r, n, n, o][l]
return { r: d * 255, g: c * 255, b: A * 255 }
}
function tr(e, t, n, i) {
var s = [tn(Math.round(e).toString(16)), tn(Math.round(t).toString(16)), tn(Math.round(n).toString(16))]
return i && s[0].startsWith(s[0].charAt(1)) && s[1].startsWith(s[1].charAt(1)) && s[2].startsWith(s[2].charAt(1))
? s[0].charAt(0) + s[1].charAt(0) + s[2].charAt(0)
: s.join('')
}
function Eh(e, t, n, i, s) {
var a = [tn(Math.round(e).toString(16)), tn(Math.round(t).toString(16)), tn(Math.round(n).toString(16)), tn(Mh(i))]
return s &&
a[0].startsWith(a[0].charAt(1)) &&
a[1].startsWith(a[1].charAt(1)) &&
a[2].startsWith(a[2].charAt(1)) &&
a[3].startsWith(a[3].charAt(1))
? a[0].charAt(0) + a[1].charAt(0) + a[2].charAt(0) + a[3].charAt(0)
: a.join('')
}
function Mh(e) {
return Math.round(parseFloat(e) * 255).toString(16)
}
function nr(e) {
return _e(e) / 255
}
function _e(e) {
return parseInt(e, 16)
}
function Dh(e) {
return { r: e >> 16, g: (e & 65280) >> 8, b: e & 255 }
}
var Qs = {
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',
darkgrey: '#a9a9a9',
darkkhaki: '#bdb76b',
darkmagenta: '#8b008b',
darkolivegreen: '#556b2f',
darkorange: '#ff8c00',
darkorchid: '#9932cc',
darkred: '#8b0000',
darksalmon: '#e9967a',
darkseagreen: '#8fbc8f',
darkslateblue: '#483d8b',
darkslategray: '#2f4f4f',
darkslategrey: '#2f4f4f',
darkturquoise: '#00ced1',
darkviolet: '#9400d3',
deeppink: '#ff1493',
deepskyblue: '#00bfff',
dimgray: '#696969',
dimgrey: '#696969',
dodgerblue: '#1e90ff',
firebrick: '#b22222',
floralwhite: '#fffaf0',
forestgreen: '#228b22',
fuchsia: '#ff00ff',
gainsboro: '#dcdcdc',
ghostwhite: '#f8f8ff',
goldenrod: '#daa520',
gold: '#ffd700',
gray: '#808080',
green: '#008000',
greenyellow: '#adff2f',
grey: '#808080',
honeydew: '#f0fff0',
hotpink: '#ff69b4',
indianred: '#cd5c5c',
indigo: '#4b0082',
ivory: '#fffff0',
khaki: '#f0e68c',
lavenderblush: '#fff0f5',
lavender: '#e6e6fa',
lawngreen: '#7cfc00',
lemonchiffon: '#fffacd',
lightblue: '#add8e6',
lightcoral: '#f08080',
lightcyan: '#e0ffff',
lightgoldenrodyellow: '#fafad2',
lightgray: '#d3d3d3',
lightgreen: '#90ee90',
lightgrey: '#d3d3d3',
lightpink: '#ffb6c1',
lightsalmon: '#ffa07a',
lightseagreen: '#20b2aa',
lightskyblue: '#87cefa',
lightslategray: '#778899',
lightslategrey: '#778899',
lightsteelblue: '#b0c4de',
lightyellow: '#ffffe0',
lime: '#00ff00',
limegreen: '#32cd32',
linen: '#faf0e6',
magenta: '#ff00ff',
maroon: '#800000',
mediumaquamarine: '#66cdaa',
mediumblue: '#0000cd',
mediumorchid: '#ba55d3',
mediumpurple: '#9370db',
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: '#db7093',
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',
slategrey: '#708090',
snow: '#fffafa',
springgreen: '#00ff7f',
steelblue: '#4682b4',
tan: '#d2b48c',
teal: '#008080',
thistle: '#d8bfd8',
tomato: '#ff6347',
turquoise: '#40e0d0',
violet: '#ee82ee',
wheat: '#f5deb3',
white: '#ffffff',
whitesmoke: '#f5f5f5',
yellow: '#ffff00',
yellowgreen: '#9acd32',
}
function Zh(e) {
var t = { r: 0, g: 0, b: 0 },
n = 1,
i = null,
s = null,
a = null,
o = !1,
r = !1
return (
typeof e == 'string' && (e = jh(e)),
typeof e == 'object' &&
(jt(e.r) && jt(e.g) && jt(e.b)
? ((t = wh(e.r, e.g, e.b)), (o = !0), (r = String(e.r).substr(-1) === '%' ? 'prgb' : 'rgb'))
: jt(e.h) && jt(e.s) && jt(e.v)
? ((i = Ni(e.s)), (s = Ni(e.v)), (t = Ih(e.h, i, s)), (o = !0), (r = 'hsv'))
: jt(e.h) && jt(e.s) && jt(e.l) && ((i = Ni(e.s)), (a = Ni(e.l)), (t = Rh(e.h, i, a)), (o = !0), (r = 'hsl')),
Object.prototype.hasOwnProperty.call(e, 'a') && (n = e.a)),
(n = Jl(n)),
{
ok: o,
format: e.format || r,
r: Math.min(255, Math.max(t.r, 0)),
g: Math.min(255, Math.max(t.g, 0)),
b: Math.min(255, Math.max(t.b, 0)),
a: n,
}
)
}
var Sh = '[-\\+]?\\d+%?',
Nh = '[-\\+]?\\d*\\.\\d+%?',
Qt = '(?:'.concat(Nh, ')|(?:').concat(Sh, ')'),
Ds = '[\\s|\\(]+('.concat(Qt, ')[,|\\s]+(').concat(Qt, ')[,|\\s]+(').concat(Qt, ')\\s*\\)?'),
Zs = '[\\s|\\(]+('.concat(Qt, ')[,|\\s]+(').concat(Qt, ')[,|\\s]+(').concat(Qt, ')[,|\\s]+(').concat(Qt, ')\\s*\\)?'),
At = {
CSS_UNIT: new RegExp(Qt),
rgb: new RegExp('rgb' + Ds),
rgba: new RegExp('rgba' + Zs),
hsl: new RegExp('hsl' + Ds),
hsla: new RegExp('hsla' + Zs),
hsv: new RegExp('hsv' + Ds),
hsva: new RegExp('hsva' + Zs),
hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
}
function jh(e) {
if (((e = e.trim().toLowerCase()), e.length === 0)) return !1
var t = !1
if (Qs[e]) (e = Qs[e]), (t = !0)
else if (e === 'transparent') return { r: 0, g: 0, b: 0, a: 0, format: 'name' }
var n = At.rgb.exec(e)
return n
? { r: n[1], g: n[2], b: n[3] }
: ((n = At.rgba.exec(e)),
n
? { r: n[1], g: n[2], b: n[3], a: n[4] }
: ((n = At.hsl.exec(e)),
n
? { h: n[1], s: n[2], l: n[3] }
: ((n = At.hsla.exec(e)),
n
? { h: n[1], s: n[2], l: n[3], a: n[4] }
: ((n = At.hsv.exec(e)),
n
? { h: n[1], s: n[2], v: n[3] }
: ((n = At.hsva.exec(e)),
n
? { h: n[1], s: n[2], v: n[3], a: n[4] }
: ((n = At.hex8.exec(e)),
n
? { r: _e(n[1]), g: _e(n[2]), b: _e(n[3]), a: nr(n[4]), format: t ? 'name' : 'hex8' }
: ((n = At.hex6.exec(e)),
n
? { r: _e(n[1]), g: _e(n[2]), b: _e(n[3]), format: t ? 'name' : 'hex' }
: ((n = At.hex4.exec(e)),
n
? {
r: _e(n[1] + n[1]),
g: _e(n[2] + n[2]),
b: _e(n[3] + n[3]),
a: nr(n[4] + n[4]),
format: t ? 'name' : 'hex8',
}
: ((n = At.hex3.exec(e)),
n
? {
r: _e(n[1] + n[1]),
g: _e(n[2] + n[2]),
b: _e(n[3] + n[3]),
format: t ? 'name' : 'hex',
}
: !1)))))))))
}
function jt(e) {
return !!At.CSS_UNIT.exec(String(e))
}
var Gh = (function () {
function e(t, n) {
t === void 0 && (t = ''), n === void 0 && (n = {})
var i
if (t instanceof e) return t
typeof t == 'number' && (t = Dh(t)), (this.originalInput = t)
var s = Zh(t)
;(this.originalInput = t),
(this.r = s.r),
(this.g = s.g),
(this.b = s.b),
(this.a = s.a),
(this.roundA = Math.round(100 * this.a) / 100),
(this.format = (i = n.format) !== null && i !== void 0 ? i : s.format),
(this.gradientType = n.gradientType),
this.r < 1 && (this.r = Math.round(this.r)),
this.g < 1 && (this.g = Math.round(this.g)),
this.b < 1 && (this.b = Math.round(this.b)),
(this.isValid = s.ok)
}
return (
(e.prototype.isDark = function () {
return this.getBrightness() < 128
}),
(e.prototype.isLight = function () {
return !this.isDark()
}),
(e.prototype.getBrightness = function () {
var t = this.toRgb()
return (t.r * 299 + t.g * 587 + t.b * 114) / 1e3
}),
(e.prototype.getLuminance = function () {
var t = this.toRgb(),
n,
i,
s,
a = t.r / 255,
o = t.g / 255,
r = t.b / 255
return (
a <= 0.03928 ? (n = a / 12.92) : (n = Math.pow((a + 0.055) / 1.055, 2.4)),
o <= 0.03928 ? (i = o / 12.92) : (i = Math.pow((o + 0.055) / 1.055, 2.4)),
r <= 0.03928 ? (s = r / 12.92) : (s = Math.pow((r + 0.055) / 1.055, 2.4)),
0.2126 * n + 0.7152 * i + 0.0722 * s
)
}),
(e.prototype.getAlpha = function () {
return this.a
}),
(e.prototype.setAlpha = function (t) {
return (this.a = Jl(t)), (this.roundA = Math.round(100 * this.a) / 100), this
}),
(e.prototype.isMonochrome = function () {
var t = this.toHsl().s
return t === 0
}),
(e.prototype.toHsv = function () {
var t = er(this.r, this.g, this.b)
return { h: t.h * 360, s: t.s, v: t.v, a: this.a }
}),
(e.prototype.toHsvString = function () {
var t = er(this.r, this.g, this.b),
n = Math.round(t.h * 360),
i = Math.round(t.s * 100),
s = Math.round(t.v * 100)
return this.a === 1
? 'hsv('.concat(n, ', ').concat(i, '%, ').concat(s, '%)')
: 'hsva('.concat(n, ', ').concat(i, '%, ').concat(s, '%, ').concat(this.roundA, ')')
}),
(e.prototype.toHsl = function () {
var t = $a(this.r, this.g, this.b)
return { h: t.h * 360, s: t.s, l: t.l, a: this.a }
}),
(e.prototype.toHslString = function () {
var t = $a(this.r, this.g, this.b),
n = Math.round(t.h * 360),
i = Math.round(t.s * 100),
s = Math.round(t.l * 100)
return this.a === 1
? 'hsl('.concat(n, ', ').concat(i, '%, ').concat(s, '%)')
: 'hsla('.concat(n, ', ').concat(i, '%, ').concat(s, '%, ').concat(this.roundA, ')')
}),
(e.prototype.toHex = function (t) {
return t === void 0 && (t = !1), tr(this.r, this.g, this.b, t)
}),
(e.prototype.toHexString = function (t) {
return t === void 0 && (t = !1), '#' + this.toHex(t)
}),
(e.prototype.toHex8 = function (t) {
return t === void 0 && (t = !1), Eh(this.r, this.g, this.b, this.a, t)
}),
(e.prototype.toHex8String = function (t) {
return t === void 0 && (t = !1), '#' + this.toHex8(t)
}),
(e.prototype.toHexShortString = function (t) {
return t === void 0 && (t = !1), this.a === 1 ? this.toHexString(t) : this.toHex8String(t)
}),
(e.prototype.toRgb = function () {
return { r: Math.round(this.r), g: Math.round(this.g), b: Math.round(this.b), a: this.a }
}),
(e.prototype.toRgbString = function () {
var t = Math.round(this.r),
n = Math.round(this.g),
i = Math.round(this.b)
return this.a === 1
? 'rgb('.concat(t, ', ').concat(n, ', ').concat(i, ')')
: 'rgba('.concat(t, ', ').concat(n, ', ').concat(i, ', ').concat(this.roundA, ')')
}),
(e.prototype.toPercentageRgb = function () {
var t = function (n) {
return ''.concat(Math.round(Te(n, 255) * 100), '%')
}
return { r: t(this.r), g: t(this.g), b: t(this.b), a: this.a }
}),
(e.prototype.toPercentageRgbString = function () {
var t = function (n) {
return Math.round(Te(n, 255) * 100)
}
return this.a === 1
? 'rgb('.concat(t(this.r), '%, ').concat(t(this.g), '%, ').concat(t(this.b), '%)')
: 'rgba('.concat(t(this.r), '%, ').concat(t(this.g), '%, ').concat(t(this.b), '%, ').concat(this.roundA, ')')
}),
(e.prototype.toName = function () {
if (this.a === 0) return 'transparent'
if (this.a < 1) return !1
for (var t = '#' + tr(this.r, this.g, this.b, !1), n = 0, i = Object.entries(Qs); n < i.length; n++) {
var s = i[n],
a = s[0],
o = s[1]
if (t === o) return a
}
return !1
}),
(e.prototype.toString = function (t) {
var n = !!t
t = t ?? this.format
var i = !1,
s = this.a < 1 && this.a >= 0,
a = !n && s && (t.startsWith('hex') || t === 'name')
return a
? t === 'name' && this.a === 0
? this.toName()
: this.toRgbString()
: (t === 'rgb' && (i = this.toRgbString()),
t === 'prgb' && (i = this.toPercentageRgbString()),
(t === 'hex' || t === 'hex6') && (i = this.toHexString()),
t === 'hex3' && (i = this.toHexString(!0)),
t === 'hex4' && (i = this.toHex8String(!0)),
t === 'hex8' && (i = this.toHex8String()),
t === 'name' && (i = this.toName()),
t === 'hsl' && (i = this.toHslString()),
t === 'hsv' && (i = this.toHsvString()),
i || this.toHexString())
}),
(e.prototype.toNumber = function () {
return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b)
}),
(e.prototype.clone = function () {
return new e(this.toString())
}),
(e.prototype.lighten = function (t) {
t === void 0 && (t = 10)
var n = this.toHsl()
return (n.l += t / 100), (n.l = Si(n.l)), new e(n)
}),
(e.prototype.brighten = function (t) {
t === void 0 && (t = 10)
var n = this.toRgb()
return (
(n.r = Math.max(0, Math.min(255, n.r - Math.round(255 * -(t / 100))))),
(n.g = Math.max(0, Math.min(255, n.g - Math.round(255 * -(t / 100))))),
(n.b = Math.max(0, Math.min(255, n.b - Math.round(255 * -(t / 100))))),
new e(n)
)
}),
(e.prototype.darken = function (t) {
t === void 0 && (t = 10)
var n = this.toHsl()
return (n.l -= t / 100), (n.l = Si(n.l)), new e(n)
}),
(e.prototype.tint = function (t) {
return t === void 0 && (t = 10), this.mix('white', t)
}),
(e.prototype.shade = function (t) {
return t === void 0 && (t = 10), this.mix('black', t)
}),
(e.prototype.desaturate = function (t) {
t === void 0 && (t = 10)
var n = this.toHsl()
return (n.s -= t / 100), (n.s = Si(n.s)), new e(n)
}),
(e.prototype.saturate = function (t) {
t === void 0 && (t = 10)
var n = this.toHsl()
return (n.s += t / 100), (n.s = Si(n.s)), new e(n)
}),
(e.prototype.greyscale = function () {
return this.desaturate(100)
}),
(e.prototype.spin = function (t) {
var n = this.toHsl(),
i = (n.h + t) % 360
return (n.h = i < 0 ? 360 + i : i), new e(n)
}),
(e.prototype.mix = function (t, n) {
n === void 0 && (n = 50)
var i = this.toRgb(),
s = new e(t).toRgb(),
a = n / 100,
o = { r: (s.r - i.r) * a + i.r, g: (s.g - i.g) * a + i.g, b: (s.b - i.b) * a + i.b, a: (s.a - i.a) * a + i.a }
return new e(o)
}),
(e.prototype.analogous = function (t, n) {
t === void 0 && (t = 6), n === void 0 && (n = 30)
var i = this.toHsl(),
s = 360 / n,
a = [this]
for (i.h = (i.h - ((s * t) >> 1) + 720) % 360; --t; ) (i.h = (i.h + s) % 360), a.push(new e(i))
return a
}),
(e.prototype.complement = function () {
var t = this.toHsl()
return (t.h = (t.h + 180) % 360), new e(t)
}),
(e.prototype.monochromatic = function (t) {
t === void 0 && (t = 6)
for (var n = this.toHsv(), i = n.h, s = n.s, a = n.v, o = [], r = 1 / t; t--; )
o.push(new e({ h: i, s, v: a })), (a = (a + r) % 1)
return o
}),
(e.prototype.splitcomplement = function () {
var t = this.toHsl(),
n = t.h
return [this, new e({ h: (n + 72) % 360, s: t.s, l: t.l }), new e({ h: (n + 216) % 360, s: t.s, l: t.l })]
}),
(e.prototype.onBackground = function (t) {
var n = this.toRgb(),
i = new e(t).toRgb(),
s = n.a + i.a * (1 - n.a)
return new e({
r: (n.r * n.a + i.r * i.a * (1 - n.a)) / s,
g: (n.g * n.a + i.g * i.a * (1 - n.a)) / s,
b: (n.b * n.a + i.b * i.a * (1 - n.a)) / s,
a: s,
})
}),
(e.prototype.triad = function () {
return this.polyad(3)
}),
(e.prototype.tetrad = function () {
return this.polyad(4)
}),
(e.prototype.polyad = function (t) {
for (var n = this.toHsl(), i = n.h, s = [this], a = 360 / t, o = 1; o < t; o++)
s.push(new e({ h: (i + o * a) % 360, s: n.s, l: n.l }))
return s
}),
(e.prototype.equals = function (t) {
return this.toRgbString() === new e(t).toRgbString()
}),
e
)
})()
function Lt(e, t = 20) {
return e.mix('#141414', t).toString()
}
function kh(e) {
const t = ls(),
n = he('button')
return M(() => {
let i = {},
s = e.color
if (s) {
const a = s.match(/var\((.*?)\)/)
a && (s = window.getComputedStyle(window.document.documentElement).getPropertyValue(a[1]))
const o = new Gh(s),
r = e.dark ? o.tint(20).toString() : Lt(o, 20)
if (e.plain)
(i = n.cssVarBlock({
'bg-color': e.dark ? Lt(o, 90) : o.tint(90).toString(),
'text-color': s,
'border-color': e.dark ? Lt(o, 50) : o.tint(50).toString(),
'hover-text-color': `var(${n.cssVarName('color-white')})`,
'hover-bg-color': s,
'hover-border-color': s,
'active-bg-color': r,
'active-text-color': `var(${n.cssVarName('color-white')})`,
'active-border-color': r,
})),
t.value &&
((i[n.cssVarBlockName('disabled-bg-color')] = e.dark ? Lt(o, 90) : o.tint(90).toString()),
(i[n.cssVarBlockName('disabled-text-color')] = e.dark ? Lt(o, 50) : o.tint(50).toString()),
(i[n.cssVarBlockName('disabled-border-color')] = e.dark ? Lt(o, 80) : o.tint(80).toString()))
else {
const l = e.dark ? Lt(o, 30) : o.tint(30).toString(),
d = o.isDark() ? `var(${n.cssVarName('color-white')})` : `var(${n.cssVarName('color-black')})`
if (
((i = n.cssVarBlock({
'bg-color': s,
'text-color': d,
'border-color': s,
'hover-bg-color': l,
'hover-text-color': d,
'hover-border-color': l,
'active-bg-color': r,
'active-border-color': r,
})),
t.value)
) {
const c = e.dark ? Lt(o, 50) : o.tint(50).toString()
;(i[n.cssVarBlockName('disabled-bg-color')] = c),
(i[n.cssVarBlockName('disabled-text-color')] = e.dark
? 'rgba(255, 255, 255, 0.5)'
: `var(${n.cssVarName('color-white')})`),
(i[n.cssVarBlockName('disabled-border-color')] = c)
}
}
}
return i
})
}
const Bh = Q({ name: 'ElButton' }),
Yh = Q({
...Bh,
props: Vs,
emits: vh,
setup(e, { expose: t, emit: n }) {
const i = e,
s = kh(i),
a = he('button'),
{ _ref: o, _size: r, _type: l, _disabled: d, _props: c, shouldAddSpace: A, handleClick: g } = fh(i, n),
b = M(() => [
a.b(),
a.m(l.value),
a.m(r.value),
a.is('disabled', d.value),
a.is('loading', i.loading),
a.is('plain', i.plain),
a.is('round', i.round),
a.is('circle', i.circle),
a.is('text', i.text),
a.is('link', i.link),
a.is('has-bg', i.bg),
])
return (
t({ ref: o, size: r, type: l, disabled: d, shouldAddSpace: A }),
(u, p) => (
Z(),
_(
Fe(u.tag),
dn({ ref_key: '_ref', ref: o }, h(c), { class: h(b), style: h(s), onClick: h(g) }),
{
default: x(() => [
u.loading
? (Z(),
T(
je,
{ key: 0 },
[
u.$slots.loading
? $(u.$slots, 'loading', { key: 0 })
: (Z(),
_(
h(ot),
{ key: 1, class: B(h(a).is('loading')) },
{ default: x(() => [(Z(), _(Fe(u.loadingIcon)))]), _: 1 },
8,
['class']
)),
],
64
))
: u.icon || u.$slots.icon
? (Z(),
_(
h(ot),
{ key: 1 },
{
default: x(() => [
u.icon ? (Z(), _(Fe(u.icon), { key: 0 })) : $(u.$slots, 'icon', { key: 1 }),
]),
_: 3,
}
))
: X('v-if', !0),
u.$slots.default
? (Z(),
T('span', { key: 2, class: B({ [h(a).em('text', 'expand')]: h(A) }) }, [$(u.$slots, 'default')], 2))
: X('v-if', !0),
]),
_: 3,
},
16,
['class', 'style', 'onClick']
)
)
)
},
})
var Uh = ge(Yh, [['__file', 'button.vue']])
const Th = { size: Vs.size, type: Vs.type },
Jh = Q({ name: 'ElButtonGroup' }),
Ch = Q({
...Jh,
props: Th,
setup(e) {
const t = e
it(Tl, lt({ size: ht(t, 'size'), type: ht(t, 'type') }))
const n = he('button')
return (i, s) => (Z(), T('div', { class: B(h(n).b('group')) }, [$(i.$slots, 'default')], 2))
},
})
var Cl = ge(Ch, [['__file', 'button-group.vue']])
const Ol = dt(Uh, { ButtonGroup: Cl })
Wn(Cl)
const zl = {
modelValue: { type: [Number, String, Boolean], default: void 0 },
label: { type: [String, Boolean, Number, Object], default: void 0 },
value: { type: [String, Boolean, Number, Object], default: void 0 },
indeterminate: Boolean,
disabled: Boolean,
checked: Boolean,
name: { type: String, default: void 0 },
trueValue: { type: [String, Number], default: void 0 },
falseValue: { type: [String, Number], default: void 0 },
trueLabel: { type: [String, Number], default: void 0 },
falseLabel: { type: [String, Number], default: void 0 },
id: { type: String, default: void 0 },
border: Boolean,
size: di,
tabindex: [String, Number],
validateEvent: { type: Boolean, default: !0 },
...hn(['ariaControls']),
},
Wl = { [$e]: (e) => tt(e) || Ne(e) || Tt(e), change: (e) => tt(e) || Ne(e) || Tt(e) },
Vn = Symbol('checkboxGroupContextKey'),
Oh = ({ model: e, isChecked: t }) => {
const n = de(Vn, void 0),
i = M(() => {
var a, o
const r = (a = n == null ? void 0 : n.max) == null ? void 0 : a.value,
l = (o = n == null ? void 0 : n.min) == null ? void 0 : o.value
return (!Vt(r) && e.value.length >= r && !t.value) || (!Vt(l) && e.value.length <= l && t.value)
})
return { isDisabled: ls(M(() => (n == null ? void 0 : n.disabled.value) || i.value)), isLimitDisabled: i }
},
zh = (e, { model: t, isLimitExceeded: n, hasOwnLabel: i, isDisabled: s, isLabeledByFormItem: a }) => {
const o = de(Vn, void 0),
{ formItem: r } = xn(),
{ emit: l } = Nt()
function d(u) {
var p, v, f, w
return [!0, e.trueValue, e.trueLabel].includes(u)
? (v = (p = e.trueValue) != null ? p : e.trueLabel) != null
? v
: !0
: (w = (f = e.falseValue) != null ? f : e.falseLabel) != null
? w
: !1
}
function c(u, p) {
l('change', d(u), p)
}
function A(u) {
if (n.value) return
const p = u.target
l('change', d(p.checked), u)
}
async function g(u) {
n.value ||
(!i.value &&
!s.value &&
a.value &&
(u.composedPath().some((f) => f.tagName === 'LABEL') ||
((t.value = d([!1, e.falseValue, e.falseLabel].includes(t.value))), await Ee(), c(t.value, u))))
}
const b = M(() => (o == null ? void 0 : o.validateEvent) || e.validateEvent)
return (
q(
() => e.modelValue,
() => {
b.value && (r == null || r.validate('change').catch((u) => void 0))
}
),
{ handleChange: A, onClickRoot: g }
)
},
Wh = (e) => {
const t = C(!1),
{ emit: n } = Nt(),
i = de(Vn, void 0),
s = M(() => Vt(i) === !1),
a = C(!1),
o = M({
get() {
var r, l
return s.value
? (r = i == null ? void 0 : i.modelValue) == null
? void 0
: r.value
: (l = e.modelValue) != null
? l
: t.value
},
set(r) {
var l, d
s.value && Ye(r)
? ((a.value =
((l = i == null ? void 0 : i.max) == null ? void 0 : l.value) !== void 0 &&
r.length > (i == null ? void 0 : i.max.value) &&
r.length > o.value.length),
a.value === !1 && ((d = i == null ? void 0 : i.changeEvent) == null || d.call(i, r)))
: (n($e, r), (t.value = r))
},
})
return { model: o, isGroup: s, isLimitExceeded: a }
},
Fh = (e, t, { model: n }) => {
const i = de(Vn, void 0),
s = C(!1),
a = M(() => (Us(e.value) ? e.label : e.value)),
o = M(() => {
const c = n.value
return Tt(c)
? c
: Ye(c)
? vt(a.value)
? c.map(Ts).some((A) => jn(A, a.value))
: c.map(Ts).includes(a.value)
: c != null
? c === e.trueValue || c === e.trueLabel
: !!c
}),
r = Xt(
M(() => {
var c
return (c = i == null ? void 0 : i.size) == null ? void 0 : c.value
}),
{ prop: !0 }
),
l = Xt(
M(() => {
var c
return (c = i == null ? void 0 : i.size) == null ? void 0 : c.value
})
),
d = M(() => !!t.default || !Us(a.value))
return { checkboxButtonSize: r, isChecked: o, isFocused: s, checkboxSize: l, hasOwnLabel: d, actualValue: a }
},
Fl = (e, t) => {
const { formItem: n } = xn(),
{ model: i, isGroup: s, isLimitExceeded: a } = Wh(e),
{
isFocused: o,
isChecked: r,
checkboxButtonSize: l,
checkboxSize: d,
hasOwnLabel: c,
actualValue: A,
} = Fh(e, t, { model: i }),
{ isDisabled: g } = Oh({ model: i, isChecked: r }),
{ inputId: b, isLabeledByFormItem: u } = rs(e, {
formItemContext: n,
disableIdGeneration: c,
disableIdManagement: s,
}),
{ handleChange: p, onClickRoot: v } = zh(e, {
model: i,
isLimitExceeded: a,
hasOwnLabel: c,
isDisabled: g,
isLabeledByFormItem: u,
})
return (
(() => {
function w() {
var R, I
Ye(i.value) && !i.value.includes(A.value)
? i.value.push(A.value)
: (i.value = (I = (R = e.trueValue) != null ? R : e.trueLabel) != null ? I : !0)
}
e.checked && w()
})(),
Ti(
{
from: 'label act as value',
replacement: 'value',
version: '3.0.0',
scope: 'el-checkbox',
ref: 'https://element-plus.org/en-US/component/checkbox.html',
},
M(() => s.value && Us(e.value))
),
Ti(
{
from: 'true-label',
replacement: 'true-value',
version: '3.0.0',
scope: 'el-checkbox',
ref: 'https://element-plus.org/en-US/component/checkbox.html',
},
M(() => !!e.trueLabel)
),
Ti(
{
from: 'false-label',
replacement: 'false-value',
version: '3.0.0',
scope: 'el-checkbox',
ref: 'https://element-plus.org/en-US/component/checkbox.html',
},
M(() => !!e.falseLabel)
),
{
inputId: b,
isLabeledByFormItem: u,
isChecked: r,
isDisabled: g,
isFocused: o,
checkboxButtonSize: l,
checkboxSize: d,
hasOwnLabel: c,
model: i,
actualValue: A,
handleChange: p,
onClickRoot: v,
}
)
},
Lh = Q({ name: 'ElCheckbox' }),
xh = Q({
...Lh,
props: zl,
emits: Wl,
setup(e) {
const t = e,
n = pi(),
{
inputId: i,
isLabeledByFormItem: s,
isChecked: a,
isDisabled: o,
isFocused: r,
checkboxSize: l,
hasOwnLabel: d,
model: c,
actualValue: A,
handleChange: g,
onClickRoot: b,
} = Fl(t, n),
u = he('checkbox'),
p = M(() => [
u.b(),
u.m(l.value),
u.is('disabled', o.value),
u.is('bordered', t.border),
u.is('checked', a.value),
]),
v = M(() => [
u.e('input'),
u.is('disabled', o.value),
u.is('checked', a.value),
u.is('indeterminate', t.indeterminate),
u.is('focus', r.value),
])
return (f, w) => (
Z(),
_(
Fe(!h(d) && h(s) ? 'span' : 'label'),
{ class: B(h(p)), 'aria-controls': f.indeterminate ? f.ariaControls : null, onClick: h(b) },
{
default: x(() => {
var R, I, y, E
return [
Y(
'span',
{ class: B(h(v)) },
[
f.trueValue || f.falseValue || f.trueLabel || f.falseLabel
? We(
(Z(),
T(
'input',
{
key: 0,
id: h(i),
'onUpdate:modelValue': (m) => (Li(c) ? (c.value = m) : null),
class: B(h(u).e('original')),
type: 'checkbox',
indeterminate: f.indeterminate,
name: f.name,
tabindex: f.tabindex,
disabled: h(o),
'true-value': (I = (R = f.trueValue) != null ? R : f.trueLabel) != null ? I : !0,
'false-value': (E = (y = f.falseValue) != null ? y : f.falseLabel) != null ? E : !1,
onChange: h(g),
onFocus: (m) => (r.value = !0),
onBlur: (m) => (r.value = !1),
onClick: Ze(() => {}, ['stop']),
},
null,
42,
[
'id',
'onUpdate:modelValue',
'indeterminate',
'name',
'tabindex',
'disabled',
'true-value',
'false-value',
'onChange',
'onFocus',
'onBlur',
'onClick',
]
)),
[[xi, h(c)]]
)
: We(
(Z(),
T(
'input',
{
key: 1,
id: h(i),
'onUpdate:modelValue': (m) => (Li(c) ? (c.value = m) : null),
class: B(h(u).e('original')),
type: 'checkbox',
indeterminate: f.indeterminate,
disabled: h(o),
value: h(A),
name: f.name,
tabindex: f.tabindex,
onChange: h(g),
onFocus: (m) => (r.value = !0),
onBlur: (m) => (r.value = !1),
onClick: Ze(() => {}, ['stop']),
},
null,
42,
[
'id',
'onUpdate:modelValue',
'indeterminate',
'disabled',
'value',
'name',
'tabindex',
'onChange',
'onFocus',
'onBlur',
'onClick',
]
)),
[[xi, h(c)]]
),
Y('span', { class: B(h(u).e('inner')) }, null, 2),
],
2
),
h(d)
? (Z(),
T(
'span',
{ key: 0, class: B(h(u).e('label')) },
[
$(f.$slots, 'default'),
f.$slots.default ? X('v-if', !0) : (Z(), T(je, { key: 0 }, [Le(ce(f.label), 1)], 64)),
],
2
))
: X('v-if', !0),
]
}),
_: 3,
},
8,
['class', 'aria-controls', 'onClick']
)
)
},
})
var Vh = ge(xh, [['__file', 'checkbox.vue']])
const Qh = Q({ name: 'ElCheckboxButton' }),
Xh = Q({
...Qh,
props: zl,
emits: Wl,
setup(e) {
const t = e,
n = pi(),
{
isFocused: i,
isChecked: s,
isDisabled: a,
checkboxButtonSize: o,
model: r,
actualValue: l,
handleChange: d,
} = Fl(t, n),
c = de(Vn, void 0),
A = he('checkbox'),
g = M(() => {
var u, p, v, f
const w = (p = (u = c == null ? void 0 : c.fill) == null ? void 0 : u.value) != null ? p : ''
return {
backgroundColor: w,
borderColor: w,
color: (f = (v = c == null ? void 0 : c.textColor) == null ? void 0 : v.value) != null ? f : '',
boxShadow: w ? `-1px 0 0 0 ${w}` : void 0,
}
}),
b = M(() => [
A.b('button'),
A.bm('button', o.value),
A.is('disabled', a.value),
A.is('checked', s.value),
A.is('focus', i.value),
])
return (u, p) => {
var v, f, w, R
return (
Z(),
T(
'label',
{ class: B(h(b)) },
[
u.trueValue || u.falseValue || u.trueLabel || u.falseLabel
? We(
(Z(),
T(
'input',
{
key: 0,
'onUpdate:modelValue': (I) => (Li(r) ? (r.value = I) : null),
class: B(h(A).be('button', 'original')),
type: 'checkbox',
name: u.name,
tabindex: u.tabindex,
disabled: h(a),
'true-value': (f = (v = u.trueValue) != null ? v : u.trueLabel) != null ? f : !0,
'false-value': (R = (w = u.falseValue) != null ? w : u.falseLabel) != null ? R : !1,
onChange: h(d),
onFocus: (I) => (i.value = !0),
onBlur: (I) => (i.value = !1),
onClick: Ze(() => {}, ['stop']),
},
null,
42,
[
'onUpdate:modelValue',
'name',
'tabindex',
'disabled',
'true-value',
'false-value',
'onChange',
'onFocus',
'onBlur',
'onClick',
]
)),
[[xi, h(r)]]
)
: We(
(Z(),
T(
'input',
{
key: 1,
'onUpdate:modelValue': (I) => (Li(r) ? (r.value = I) : null),
class: B(h(A).be('button', 'original')),
type: 'checkbox',
name: u.name,
tabindex: u.tabindex,
disabled: h(a),
value: h(l),
onChange: h(d),
onFocus: (I) => (i.value = !0),
onBlur: (I) => (i.value = !1),
onClick: Ze(() => {}, ['stop']),
},
null,
42,
[
'onUpdate:modelValue',
'name',
'tabindex',
'disabled',
'value',
'onChange',
'onFocus',
'onBlur',
'onClick',
]
)),
[[xi, h(r)]]
),
u.$slots.default || u.label
? (Z(),
T(
'span',
{ key: 2, class: B(h(A).be('button', 'inner')), style: Ue(h(s) ? h(g) : void 0) },
[$(u.$slots, 'default', {}, () => [Le(ce(u.label), 1)])],
6
))
: X('v-if', !0),
],
2
)
)
}
},
})
var Ll = ge(Xh, [['__file', 'checkbox-button.vue']])
const Ph = ye({
modelValue: { type: ee(Array), default: () => [] },
disabled: Boolean,
min: Number,
max: Number,
size: di,
fill: String,
textColor: String,
tag: { type: String, default: 'div' },
validateEvent: { type: Boolean, default: !0 },
...hn(['ariaLabel']),
}),
Hh = { [$e]: (e) => Ye(e), change: (e) => Ye(e) },
Kh = Q({ name: 'ElCheckboxGroup' }),
qh = Q({
...Kh,
props: Ph,
emits: Hh,
setup(e, { emit: t }) {
const n = e,
i = he('checkbox'),
{ formItem: s } = xn(),
{ inputId: a, isLabeledByFormItem: o } = rs(n, { formItemContext: s }),
r = async (d) => {
t($e, d), await Ee(), t('change', d)
},
l = M({
get() {
return n.modelValue
},
set(d) {
r(d)
},
})
return (
it(Vn, {
...il(Fn(n), ['size', 'min', 'max', 'disabled', 'validateEvent', 'fill', 'textColor']),
modelValue: l,
changeEvent: r,
}),
q(
() => n.modelValue,
() => {
n.validateEvent && (s == null || s.validate('change').catch((d) => void 0))
}
),
(d, c) => {
var A
return (
Z(),
_(
Fe(d.tag),
{
id: h(a),
class: B(h(i).b('group')),
role: 'group',
'aria-label': h(o) ? void 0 : d.ariaLabel || 'checkbox-group',
'aria-labelledby': h(o) ? ((A = h(s)) == null ? void 0 : A.labelId) : void 0,
},
{ default: x(() => [$(d.$slots, 'default')]), _: 3 },
8,
['id', 'class', 'aria-label', 'aria-labelledby']
)
)
}
)
},
})
var xl = ge(qh, [['__file', 'checkbox-group.vue']])
const Vl = dt(Vh, { CheckboxButton: Ll, CheckboxGroup: xl })
Wn(Ll)
Wn(xl)
const _h = (e = '') => e.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d'),
Xs = ye({
type: { type: String, values: ['primary', 'success', 'info', 'warning', 'danger'], default: 'primary' },
closable: Boolean,
disableTransitions: Boolean,
hit: Boolean,
color: String,
size: { type: String, values: lo },
effect: { type: String, values: ['dark', 'light', 'plain'], default: 'light' },
round: Boolean,
}),
$h = { close: (e) => e instanceof MouseEvent, click: (e) => e instanceof MouseEvent },
ev = Q({ name: 'ElTag' }),
tv = Q({
...ev,
props: Xs,
emits: $h,
setup(e, { emit: t }) {
const n = e,
i = Xt(),
s = he('tag'),
a = M(() => {
const { type: d, hit: c, effect: A, closable: g, round: b } = n
return [
s.b(),
s.is('closable', g),
s.m(d || 'primary'),
s.m(i.value),
s.m(A),
s.is('hit', c),
s.is('round', b),
]
}),
o = (d) => {
t('close', d)
},
r = (d) => {
t('click', d)
},
l = (d) => {
var c, A, g
;(g =
(A = (c = d == null ? void 0 : d.component) == null ? void 0 : c.subTree) == null ? void 0 : A.component) !=
null &&
g.bum &&
(d.component.subTree.component.bum = null)
}
return (d, c) =>
d.disableTransitions
? (Z(),
T(
'span',
{ key: 0, class: B(h(a)), style: Ue({ backgroundColor: d.color }), onClick: r },
[
Y('span', { class: B(h(s).e('content')) }, [$(d.$slots, 'default')], 2),
d.closable
? (Z(),
_(
h(ot),
{ key: 0, class: B(h(s).e('close')), onClick: Ze(o, ['stop']) },
{ default: x(() => [P(h(Fs))]), _: 1 },
8,
['class', 'onClick']
))
: X('v-if', !0),
],
6
))
: (Z(),
_(
at,
{ key: 1, name: `${h(s).namespace.value}-zoom-in-center`, appear: '', onVnodeMounted: l },
{
default: x(() => [
Y(
'span',
{ class: B(h(a)), style: Ue({ backgroundColor: d.color }), onClick: r },
[
Y('span', { class: B(h(s).e('content')) }, [$(d.$slots, 'default')], 2),
d.closable
? (Z(),
_(
h(ot),
{ key: 0, class: B(h(s).e('close')), onClick: Ze(o, ['stop']) },
{ default: x(() => [P(h(Fs))]), _: 1 },
8,
['class', 'onClick']
))
: X('v-if', !0),
],
6
),
]),
_: 3,
},
8,
['name']
))
},
})
var nv = ge(tv, [['__file', 'tag.vue']])
const iv = dt(nv),
xt = new Map()
if (ze) {
let e
document.addEventListener('mousedown', (t) => (e = t)),
document.addEventListener('mouseup', (t) => {
if (e) {
for (const n of xt.values()) for (const { documentHandler: i } of n) i(t, e)
e = void 0
}
})
}
function ir(e, t) {
let n = []
return (
Ye(t.arg) ? (n = t.arg) : Yt(t.arg) && n.push(t.arg),
function (i, s) {
const a = t.instance.popperRef,
o = i.target,
r = s == null ? void 0 : s.target,
l = !t || !t.instance,
d = !o || !r,
c = e.contains(o) || e.contains(r),
A = e === o,
g = (n.length && n.some((u) => (u == null ? void 0 : u.contains(o)))) || (n.length && n.includes(r)),
b = a && (a.contains(o) || a.contains(r))
l || d || c || A || g || b || t.value(i, s)
}
)
}
const sv = {
beforeMount(e, t) {
xt.has(e) || xt.set(e, []), xt.get(e).push({ documentHandler: ir(e, t), bindingFn: t.value })
},
updated(e, t) {
xt.has(e) || xt.set(e, [])
const n = xt.get(e),
i = n.findIndex((a) => a.bindingFn === t.oldValue),
s = { documentHandler: ir(e, t), bindingFn: t.value }
i >= 0 ? n.splice(i, 1, s) : n.push(s)
},
unmounted(e) {
xt.delete(e)
},
},
ov = ye({ size: { type: String, values: lo }, disabled: Boolean }),
av = ye({
...ov,
model: Object,
rules: { type: ee(Object) },
labelPosition: { type: String, values: ['left', 'right', 'top'], default: 'right' },
requireAsteriskPosition: { type: String, values: ['left', 'right'], default: 'left' },
labelWidth: { type: [String, Number], default: '' },
labelSuffix: { type: String, default: '' },
inline: Boolean,
inlineMessage: Boolean,
statusIcon: Boolean,
showMessage: { type: Boolean, default: !0 },
validateOnRuleChange: { type: Boolean, default: !0 },
hideRequiredAsterisk: Boolean,
scrollToError: Boolean,
scrollIntoViewOptions: { type: [Object, Boolean] },
}),
rv = { validate: (e, t, n) => (Ye(e) || tt(e)) && Tt(t) && tt(n) }
function lv() {
const e = C([]),
t = M(() => {
if (!e.value.length) return '0'
const a = Math.max(...e.value)
return a ? `${a}px` : ''
})
function n(a) {
const o = e.value.indexOf(a)
return o === -1 && t.value, o
}
function i(a, o) {
if (a && o) {
const r = n(o)
e.value.splice(r, 1, a)
} else a && e.value.push(a)
}
function s(a) {
const o = n(a)
o > -1 && e.value.splice(o, 1)
}
return { autoLabelWidth: t, registerLabelWidth: i, deregisterLabelWidth: s }
}
const ji = (e, t) => {
const n = ft(t)
return n.length > 0 ? e.filter((i) => i.prop && n.includes(i.prop)) : e
},
cv = 'ElForm',
uv = Q({ name: cv }),
dv = Q({
...uv,
props: av,
emits: rv,
setup(e, { expose: t, emit: n }) {
const i = e,
s = [],
a = Xt(),
o = he('form'),
r = M(() => {
const { labelPosition: R, inline: I } = i
return [o.b(), o.m(a.value || 'default'), { [o.m(`label-${R}`)]: R, [o.m('inline')]: I }]
}),
l = (R) => s.find((I) => I.prop === R),
d = (R) => {
s.push(R)
},
c = (R) => {
R.prop && s.splice(s.indexOf(R), 1)
},
A = (R = []) => {
i.model && ji(s, R).forEach((I) => I.resetField())
},
g = (R = []) => {
ji(s, R).forEach((I) => I.clearValidate())
},
b = M(() => !!i.model),
u = (R) => {
if (s.length === 0) return []
const I = ji(s, R)
return I.length ? I : []
},
p = async (R) => f(void 0, R),
v = async (R = []) => {
if (!b.value) return !1
const I = u(R)
if (I.length === 0) return !0
let y = {}
for (const E of I)
try {
await E.validate(''), E.validateState === 'error' && E.resetField()
} catch (m) {
y = { ...y, ...m }
}
return Object.keys(y).length === 0 ? !0 : Promise.reject(y)
},
f = async (R = [], I) => {
const y = !Oe(I)
try {
const E = await v(R)
return E === !0 && (await (I == null ? void 0 : I(E))), E
} catch (E) {
if (E instanceof Error) throw E
const m = E
return (
i.scrollToError && w(Object.keys(m)[0]), await (I == null ? void 0 : I(!1, m)), y && Promise.reject(m)
)
}
},
w = (R) => {
var I
const y = ji(s, R)[0]
y && ((I = y.$el) == null || I.scrollIntoView(i.scrollIntoViewOptions))
}
return (
q(
() => i.rules,
() => {
i.validateOnRuleChange && p().catch((R) => void 0)
},
{ deep: !0, flush: 'post' }
),
it(
Ln,
lt({
...Fn(i),
emit: n,
resetFields: A,
clearValidate: g,
validateField: f,
getField: l,
addField: d,
removeField: c,
...lv(),
})
),
t({ validate: p, validateField: f, resetFields: A, clearValidate: g, scrollToField: w, fields: s }),
(R, I) => (Z(), T('form', { class: B(h(r)) }, [$(R.$slots, 'default')], 2))
)
},
})
var pv = ge(dv, [['__file', 'form.vue']])
function nn() {
return (
(nn = Object.assign
? Object.assign.bind()
: function (e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t]
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
}),
nn.apply(this, arguments)
)
}
function Av(e, t) {
;(e.prototype = Object.create(t.prototype)), (e.prototype.constructor = e), ci(e, t)
}
function Ps(e) {
return (
(Ps = Object.setPrototypeOf
? Object.getPrototypeOf.bind()
: function (n) {
return n.__proto__ || Object.getPrototypeOf(n)
}),
Ps(e)
)
}
function ci(e, t) {
return (
(ci = Object.setPrototypeOf
? Object.setPrototypeOf.bind()
: function (i, s) {
return (i.__proto__ = s), i
}),
ci(e, t)
)
}
function gv() {
if (typeof Reflect > 'u' || !Reflect.construct || Reflect.construct.sham) return !1
if (typeof Proxy == 'function') return !0
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0
} catch {
return !1
}
}
function Ji(e, t, n) {
return (
gv()
? (Ji = Reflect.construct.bind())
: (Ji = function (s, a, o) {
var r = [null]
r.push.apply(r, a)
var l = Function.bind.apply(s, r),
d = new l()
return o && ci(d, o.prototype), d
}),
Ji.apply(null, arguments)
)
}
function fv(e) {
return Function.toString.call(e).indexOf('[native code]') !== -1
}
function Hs(e) {
var t = typeof Map == 'function' ? new Map() : void 0
return (
(Hs = function (i) {
if (i === null || !fv(i)) return i
if (typeof i != 'function') throw new TypeError('Super expression must either be null or a function')
if (typeof t < 'u') {
if (t.has(i)) return t.get(i)
t.set(i, s)
}
function s() {
return Ji(i, arguments, Ps(this).constructor)
}
return (
(s.prototype = Object.create(i.prototype, {
constructor: { value: s, enumerable: !1, writable: !0, configurable: !0 },
})),
ci(s, i)
)
}),
Hs(e)
)
}
var bv = /%[sdj%]/g,
hv = function () {}
function Ks(e) {
if (!e || !e.length) return null
var t = {}
return (
e.forEach(function (n) {
var i = n.field
;(t[i] = t[i] || []), t[i].push(n)
}),
t
)
}
function et(e) {
for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i]
var s = 0,
a = n.length
if (typeof e == 'function') return e.apply(null, n)
if (typeof e == 'string') {
var o = e.replace(bv, function (r) {
if (r === '%%') return '%'
if (s >= a) return r
switch (r) {
case '%s':
return String(n[s++])
case '%d':
return Number(n[s++])
case '%j':
try {
return JSON.stringify(n[s++])
} catch {
return '[Circular]'
}
break
default:
return r
}
})
return o
}
return e
}
function vv(e) {
return e === 'string' || e === 'url' || e === 'hex' || e === 'email' || e === 'date' || e === 'pattern'
}
function Ge(e, t) {
return !!(e == null || (t === 'array' && Array.isArray(e) && !e.length) || (vv(t) && typeof e == 'string' && !e))
}
function mv(e, t, n) {
var i = [],
s = 0,
a = e.length
function o(r) {
i.push.apply(i, r || []), s++, s === a && n(i)
}
e.forEach(function (r) {
t(r, o)
})
}
function sr(e, t, n) {
var i = 0,
s = e.length
function a(o) {
if (o && o.length) {
n(o)
return
}
var r = i
;(i = i + 1), r < s ? t(e[r], a) : n([])
}
a([])
}
function yv(e) {
var t = []
return (
Object.keys(e).forEach(function (n) {
t.push.apply(t, e[n] || [])
}),
t
)
}
var or = (function (e) {
Av(t, e)
function t(n, i) {
var s
return (s = e.call(this, 'Async Validation Error') || this), (s.errors = n), (s.fields = i), s
}
return t
})(Hs(Error))
function wv(e, t, n, i, s) {
if (t.first) {
var a = new Promise(function (g, b) {
var u = function (f) {
return i(f), f.length ? b(new or(f, Ks(f))) : g(s)
},
p = yv(e)
sr(p, n, u)
})
return (
a.catch(function (g) {
return g
}),
a
)
}
var o = t.firstFields === !0 ? Object.keys(e) : t.firstFields || [],
r = Object.keys(e),
l = r.length,
d = 0,
c = [],
A = new Promise(function (g, b) {
var u = function (v) {
if ((c.push.apply(c, v), d++, d === l)) return i(c), c.length ? b(new or(c, Ks(c))) : g(s)
}
r.length || (i(c), g(s)),
r.forEach(function (p) {
var v = e[p]
o.indexOf(p) !== -1 ? sr(v, n, u) : mv(v, n, u)
})
})
return (
A.catch(function (g) {
return g
}),
A
)
}
function Rv(e) {
return !!(e && e.message !== void 0)
}
function Iv(e, t) {
for (var n = e, i = 0; i < t.length; i++) {
if (n == null) return n
n = n[t[i]]
}
return n
}
function ar(e, t) {
return function (n) {
var i
return (
e.fullFields ? (i = Iv(t, e.fullFields)) : (i = t[n.field || e.fullField]),
Rv(n)
? ((n.field = n.field || e.fullField), (n.fieldValue = i), n)
: { message: typeof n == 'function' ? n() : n, fieldValue: i, field: n.field || e.fullField }
)
}
}
function rr(e, t) {
if (t) {
for (var n in t)
if (t.hasOwnProperty(n)) {
var i = t[n]
typeof i == 'object' && typeof e[n] == 'object' ? (e[n] = nn({}, e[n], i)) : (e[n] = i)
}
}
return e
}
var Ql = function (t, n, i, s, a, o) {
t.required && (!i.hasOwnProperty(t.field) || Ge(n, o || t.type)) && s.push(et(a.messages.required, t.fullField))
},
Ev = function (t, n, i, s, a) {
;(/^\s+$/.test(n) || n === '') && s.push(et(a.messages.whitespace, t.fullField))
},
Gi,
Mv = function () {
if (Gi) return Gi
var e = '[a-fA-F\\d:]',
t = function (I) {
return I && I.includeBoundaries ? '(?:(?<=\\s|^)(?=' + e + ')|(?<=' + e + ')(?=\\s|$))' : ''
},
n = '(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}',
i = '[a-fA-F\\d]{1,4}',
s = (
`
(?:
(?:` +
i +
':){7}(?:' +
i +
`|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
(?:` +
i +
':){6}(?:' +
n +
'|:' +
i +
`|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
(?:` +
i +
':){5}(?::' +
n +
'|(?::' +
i +
`){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
(?:` +
i +
':){4}(?:(?::' +
i +
'){0,1}:' +
n +
'|(?::' +
i +
`){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
(?:` +
i +
':){3}(?:(?::' +
i +
'){0,2}:' +
n +
'|(?::' +
i +
`){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
(?:` +
i +
':){2}(?:(?::' +
i +
'){0,3}:' +
n +
'|(?::' +
i +
`){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
(?:` +
i +
':){1}(?:(?::' +
i +
'){0,4}:' +
n +
'|(?::' +
i +
`){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
(?::(?:(?::` +
i +
'){0,5}:' +
n +
'|(?::' +
i +
`){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
`
)
.replace(/\s*\/\/.*$/gm, '')
.replace(/\n/g, '')
.trim(),
a = new RegExp('(?:^' + n + '$)|(?:^' + s + '$)'),
o = new RegExp('^' + n + '$'),
r = new RegExp('^' + s + '$'),
l = function (I) {
return I && I.exact ? a : new RegExp('(?:' + t(I) + n + t(I) + ')|(?:' + t(I) + s + t(I) + ')', 'g')
}
;(l.v4 = function (R) {
return R && R.exact ? o : new RegExp('' + t(R) + n + t(R), 'g')
}),
(l.v6 = function (R) {
return R && R.exact ? r : new RegExp('' + t(R) + s + t(R), 'g')
})
var d = '(?:(?:[a-z]+:)?//)',
c = '(?:\\S+(?::\\S*)?@)?',
A = l.v4().source,
g = l.v6().source,
b = '(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)',
u = '(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*',
p = '(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))',
v = '(?::\\d{2,5})?',
f = '(?:[/?#][^\\s"]*)?',
w = '(?:' + d + '|www\\.)' + c + '(?:localhost|' + A + '|' + g + '|' + b + u + p + ')' + v + f
return (Gi = new RegExp('(?:^' + w + '$)', 'i')), Gi
},
lr = {
email:
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,
hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,
},
ni = {
integer: function (t) {
return ni.number(t) && parseInt(t, 10) === t
},
float: function (t) {
return ni.number(t) && !ni.integer(t)
},
array: function (t) {
return Array.isArray(t)
},
regexp: function (t) {
if (t instanceof RegExp) return !0
try {
return !!new RegExp(t)
} catch {
return !1
}
},
date: function (t) {
return (
typeof t.getTime == 'function' &&
typeof t.getMonth == 'function' &&
typeof t.getYear == 'function' &&
!isNaN(t.getTime())
)
},
number: function (t) {
return isNaN(t) ? !1 : typeof t == 'number'
},
object: function (t) {
return typeof t == 'object' && !ni.array(t)
},
method: function (t) {
return typeof t == 'function'
},
email: function (t) {
return typeof t == 'string' && t.length <= 320 && !!t.match(lr.email)
},
url: function (t) {
return typeof t == 'string' && t.length <= 2048 && !!t.match(Mv())
},
hex: function (t) {
return typeof t == 'string' && !!t.match(lr.hex)
},
},
Dv = function (t, n, i, s, a) {
if (t.required && n === void 0) {
Ql(t, n, i, s, a)
return
}
var o = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'],
r = t.type
o.indexOf(r) > -1
? ni[r](n) || s.push(et(a.messages.types[r], t.fullField, t.type))
: r && typeof n !== t.type && s.push(et(a.messages.types[r], t.fullField, t.type))
},
Zv = function (t, n, i, s, a) {
var o = typeof t.len == 'number',
r = typeof t.min == 'number',
l = typeof t.max == 'number',
d = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
c = n,
A = null,
g = typeof n == 'number',
b = typeof n == 'string',
u = Array.isArray(n)
if ((g ? (A = 'number') : b ? (A = 'string') : u && (A = 'array'), !A)) return !1
u && (c = n.length),
b && (c = n.replace(d, '_').length),
o
? c !== t.len && s.push(et(a.messages[A].len, t.fullField, t.len))
: r && !l && c < t.min
? s.push(et(a.messages[A].min, t.fullField, t.min))
: l && !r && c > t.max
? s.push(et(a.messages[A].max, t.fullField, t.max))
: r && l && (c < t.min || c > t.max) && s.push(et(a.messages[A].range, t.fullField, t.min, t.max))
},
Zn = 'enum',
Sv = function (t, n, i, s, a) {
;(t[Zn] = Array.isArray(t[Zn]) ? t[Zn] : []),
t[Zn].indexOf(n) === -1 && s.push(et(a.messages[Zn], t.fullField, t[Zn].join(', ')))
},
Nv = function (t, n, i, s, a) {
if (t.pattern) {
if (t.pattern instanceof RegExp)
(t.pattern.lastIndex = 0),
t.pattern.test(n) || s.push(et(a.messages.pattern.mismatch, t.fullField, n, t.pattern))
else if (typeof t.pattern == 'string') {
var o = new RegExp(t.pattern)
o.test(n) || s.push(et(a.messages.pattern.mismatch, t.fullField, n, t.pattern))
}
}
},
ae = { required: Ql, whitespace: Ev, type: Dv, range: Zv, enum: Sv, pattern: Nv },
jv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n, 'string') && !t.required) return i()
ae.required(t, n, s, o, a, 'string'),
Ge(n, 'string') ||
(ae.type(t, n, s, o, a),
ae.range(t, n, s, o, a),
ae.pattern(t, n, s, o, a),
t.whitespace === !0 && ae.whitespace(t, n, s, o, a))
}
i(o)
},
Gv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n) && !t.required) return i()
ae.required(t, n, s, o, a), n !== void 0 && ae.type(t, n, s, o, a)
}
i(o)
},
kv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if ((n === '' && (n = void 0), Ge(n) && !t.required)) return i()
ae.required(t, n, s, o, a), n !== void 0 && (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a))
}
i(o)
},
Bv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n) && !t.required) return i()
ae.required(t, n, s, o, a), n !== void 0 && ae.type(t, n, s, o, a)
}
i(o)
},
Yv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n) && !t.required) return i()
ae.required(t, n, s, o, a), Ge(n) || ae.type(t, n, s, o, a)
}
i(o)
},
Uv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n) && !t.required) return i()
ae.required(t, n, s, o, a), n !== void 0 && (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a))
}
i(o)
},
Tv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n) && !t.required) return i()
ae.required(t, n, s, o, a), n !== void 0 && (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a))
}
i(o)
},
Jv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (n == null && !t.required) return i()
ae.required(t, n, s, o, a, 'array'), n != null && (ae.type(t, n, s, o, a), ae.range(t, n, s, o, a))
}
i(o)
},
Cv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n) && !t.required) return i()
ae.required(t, n, s, o, a), n !== void 0 && ae.type(t, n, s, o, a)
}
i(o)
},
Ov = 'enum',
zv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n) && !t.required) return i()
ae.required(t, n, s, o, a), n !== void 0 && ae[Ov](t, n, s, o, a)
}
i(o)
},
Wv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n, 'string') && !t.required) return i()
ae.required(t, n, s, o, a), Ge(n, 'string') || ae.pattern(t, n, s, o, a)
}
i(o)
},
Fv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n, 'date') && !t.required) return i()
if ((ae.required(t, n, s, o, a), !Ge(n, 'date'))) {
var l
n instanceof Date ? (l = n) : (l = new Date(n)), ae.type(t, l, s, o, a), l && ae.range(t, l.getTime(), s, o, a)
}
}
i(o)
},
Lv = function (t, n, i, s, a) {
var o = [],
r = Array.isArray(n) ? 'array' : typeof n
ae.required(t, n, s, o, a, r), i(o)
},
Ss = function (t, n, i, s, a) {
var o = t.type,
r = [],
l = t.required || (!t.required && s.hasOwnProperty(t.field))
if (l) {
if (Ge(n, o) && !t.required) return i()
ae.required(t, n, s, r, a, o), Ge(n, o) || ae.type(t, n, s, r, a)
}
i(r)
},
xv = function (t, n, i, s, a) {
var o = [],
r = t.required || (!t.required && s.hasOwnProperty(t.field))
if (r) {
if (Ge(n) && !t.required) return i()
ae.required(t, n, s, o, a)
}
i(o)
},
ai = {
string: jv,
method: Gv,
number: kv,
boolean: Bv,
regexp: Yv,
integer: Uv,
float: Tv,
array: Jv,
object: Cv,
enum: zv,
pattern: Wv,
date: Fv,
url: Ss,
hex: Ss,
email: Ss,
required: Lv,
any: xv,
}
function qs() {
return {
default: 'Validation error on field %s',
required: '%s is required',
enum: '%s must be one of %s',
whitespace: '%s cannot be empty',
date: {
format: '%s date %s is invalid for format %s',
parse: '%s date could not be parsed, %s is invalid ',
invalid: '%s date %s is invalid',
},
types: {
string: '%s is not a %s',
method: '%s is not a %s (function)',
array: '%s is not an %s',
object: '%s is not an %s',
number: '%s is not a %s',
date: '%s is not a %s',
boolean: '%s is not a %s',
integer: '%s is not an %s',
float: '%s is not a %s',
regexp: '%s is not a valid %s',
email: '%s is not a valid %s',
url: '%s is not a valid %s',
hex: '%s is not a valid %s',
},
string: {
len: '%s must be exactly %s characters',
min: '%s must be at least %s characters',
max: '%s cannot be longer than %s characters',
range: '%s must be between %s and %s characters',
},
number: {
len: '%s must equal %s',
min: '%s cannot be less than %s',
max: '%s cannot be greater than %s',
range: '%s must be between %s and %s',
},
array: {
len: '%s must be exactly %s in length',
min: '%s cannot be less than %s in length',
max: '%s cannot be greater than %s in length',
range: '%s must be between %s and %s in length',
},
pattern: { mismatch: '%s value %s does not match pattern %s' },
clone: function () {
var t = JSON.parse(JSON.stringify(this))
return (t.clone = this.clone), t
},
}
}
var _s = qs(),
bi = (function () {
function e(n) {
;(this.rules = null), (this._messages = _s), this.define(n)
}
var t = e.prototype
return (
(t.define = function (i) {
var s = this
if (!i) throw new Error('Cannot configure a schema with no rules')
if (typeof i != 'object' || Array.isArray(i)) throw new Error('Rules must be an object')
;(this.rules = {}),
Object.keys(i).forEach(function (a) {
var o = i[a]
s.rules[a] = Array.isArray(o) ? o : [o]
})
}),
(t.messages = function (i) {
return i && (this._messages = rr(qs(), i)), this._messages
}),
(t.validate = function (i, s, a) {
var o = this
s === void 0 && (s = {}), a === void 0 && (a = function () {})
var r = i,
l = s,
d = a
if ((typeof l == 'function' && ((d = l), (l = {})), !this.rules || Object.keys(this.rules).length === 0))
return d && d(null, r), Promise.resolve(r)
function c(p) {
var v = [],
f = {}
function w(I) {
if (Array.isArray(I)) {
var y
v = (y = v).concat.apply(y, I)
} else v.push(I)
}
for (var R = 0; R < p.length; R++) w(p[R])
v.length ? ((f = Ks(v)), d(v, f)) : d(null, r)
}
if (l.messages) {
var A = this.messages()
A === _s && (A = qs()), rr(A, l.messages), (l.messages = A)
} else l.messages = this.messages()
var g = {},
b = l.keys || Object.keys(this.rules)
b.forEach(function (p) {
var v = o.rules[p],
f = r[p]
v.forEach(function (w) {
var R = w
typeof R.transform == 'function' && (r === i && (r = nn({}, r)), (f = r[p] = R.transform(f))),
typeof R == 'function' ? (R = { validator: R }) : (R = nn({}, R)),
(R.validator = o.getValidationMethod(R)),
R.validator &&
((R.field = p),
(R.fullField = R.fullField || p),
(R.type = o.getType(R)),
(g[p] = g[p] || []),
g[p].push({ rule: R, value: f, source: r, field: p }))
})
})
var u = {}
return wv(
g,
l,
function (p, v) {
var f = p.rule,
w =
(f.type === 'object' || f.type === 'array') &&
(typeof f.fields == 'object' || typeof f.defaultField == 'object')
;(w = w && (f.required || (!f.required && p.value))), (f.field = p.field)
function R(E, m) {
return nn({}, m, {
fullField: f.fullField + '.' + E,
fullFields: f.fullFields ? [].concat(f.fullFields, [E]) : [E],
})
}
function I(E) {
E === void 0 && (E = [])
var m = Array.isArray(E) ? E : [E]
!l.suppressWarning && m.length && e.warning('async-validator:', m),
m.length && f.message !== void 0 && (m = [].concat(f.message))
var j = m.map(ar(f, r))
if (l.first && j.length) return (u[f.field] = 1), v(j)
if (!w) v(j)
else {
if (f.required && !p.value)
return (
f.message !== void 0
? (j = [].concat(f.message).map(ar(f, r)))
: l.error && (j = [l.error(f, et(l.messages.required, f.field))]),
v(j)
)
var U = {}
f.defaultField &&
Object.keys(p.value).map(function (N) {
U[N] = f.defaultField
}),
(U = nn({}, U, p.rule.fields))
var K = {}
Object.keys(U).forEach(function (N) {
var k = U[N],
F = Array.isArray(k) ? k : [k]
K[N] = F.map(R.bind(null, N))
})
var H = new e(K)
H.messages(l.messages),
p.rule.options && ((p.rule.options.messages = l.messages), (p.rule.options.error = l.error)),
H.validate(p.value, p.rule.options || l, function (N) {
var k = []
j && j.length && k.push.apply(k, j), N && N.length && k.push.apply(k, N), v(k.length ? k : null)
})
}
}
var y
if (f.asyncValidator) y = f.asyncValidator(f, p.value, I, p.source, l)
else if (f.validator) {
try {
y = f.validator(f, p.value, I, p.source, l)
} catch (E) {
console.error == null,
l.suppressValidatorError ||
setTimeout(function () {
throw E
}, 0),
I(E.message)
}
y === !0
? I()
: y === !1
? I(
typeof f.message == 'function'
? f.message(f.fullField || f.field)
: f.message || (f.fullField || f.field) + ' fails'
)
: y instanceof Array
? I(y)
: y instanceof Error && I(y.message)
}
y &&
y.then &&
y.then(
function () {
return I()
},
function (E) {
return I(E)
}
)
},
function (p) {
c(p)
},
r
)
}),
(t.getType = function (i) {
if (
(i.type === void 0 && i.pattern instanceof RegExp && (i.type = 'pattern'),
typeof i.validator != 'function' && i.type && !ai.hasOwnProperty(i.type))
)
throw new Error(et('Unknown rule type %s', i.type))
return i.type || 'string'
}),
(t.getValidationMethod = function (i) {
if (typeof i.validator == 'function') return i.validator
var s = Object.keys(i),
a = s.indexOf('message')
return (
a !== -1 && s.splice(a, 1),
s.length === 1 && s[0] === 'required' ? ai.required : ai[this.getType(i)] || void 0
)
}),
e
)
})()
bi.register = function (t, n) {
if (typeof n != 'function') throw new Error('Cannot register a validator by type, validator is not a function')
ai[t] = n
}
bi.warning = hv
bi.messages = _s
bi.validators = ai
const Vv = ['', 'error', 'validating', 'success'],
Qv = ye({
label: String,
labelWidth: { type: [String, Number], default: '' },
labelPosition: { type: String, values: ['left', 'right', 'top', ''], default: '' },
prop: { type: ee([String, Array]) },
required: { type: Boolean, default: void 0 },
rules: { type: ee([Object, Array]) },
error: String,
validateStatus: { type: String, values: Vv },
for: String,
inlineMessage: { type: [String, Boolean], default: '' },
showMessage: { type: Boolean, default: !0 },
size: { type: String, values: lo },
}),
cr = 'ElLabelWrap'
var Xv = Q({
name: cr,
props: { isAutoWidth: Boolean, updateAll: Boolean },
setup(e, { slots: t }) {
const n = de(Ln, void 0),
i = de(gn)
i || ol(cr, 'usage: ')
const s = he('form'),
a = C(),
o = C(0),
r = () => {
var c
if ((c = a.value) != null && c.firstElementChild) {
const A = window.getComputedStyle(a.value.firstElementChild).width
return Math.ceil(Number.parseFloat(A))
} else return 0
},
l = (c = 'update') => {
Ee(() => {
t.default &&
e.isAutoWidth &&
(c === 'update' ? (o.value = r()) : c === 'remove' && (n == null || n.deregisterLabelWidth(o.value)))
})
},
d = () => l('update')
return (
Be(() => {
d()
}),
xe(() => {
l('remove')
}),
Ur(() => d()),
q(o, (c, A) => {
e.updateAll && (n == null || n.registerLabelWidth(c, A))
}),
bt(
M(() => {
var c, A
return (A = (c = a.value) == null ? void 0 : c.firstElementChild) != null ? A : null
}),
d
),
() => {
var c, A
if (!t) return null
const { isAutoWidth: g } = e
if (g) {
const b = n == null ? void 0 : n.autoLabelWidth,
u = i == null ? void 0 : i.hasLabel,
p = {}
if (u && b && b !== 'auto') {
const v = Math.max(0, Number.parseInt(b, 10) - o.value),
w = (i.labelPosition || n.labelPosition) === 'left' ? 'marginRight' : 'marginLeft'
v && (p[w] = `${v}px`)
}
return P('div', { ref: a, class: [s.be('item', 'label-wrap')], style: p }, [
(c = t.default) == null ? void 0 : c.call(t),
])
} else return P(je, { ref: a }, [(A = t.default) == null ? void 0 : A.call(t)])
}
)
},
})
const Pv = Q({ name: 'ElFormItem' }),
Hv = Q({
...Pv,
props: Qv,
setup(e, { expose: t }) {
const n = e,
i = pi(),
s = de(Ln, void 0),
a = de(gn, void 0),
o = Xt(void 0, { formItem: !1 }),
r = he('form-item'),
l = Ai().value,
d = C([]),
c = C(''),
A = yu(c, 100),
g = C(''),
b = C()
let u,
p = !1
const v = M(() => n.labelPosition || (s == null ? void 0 : s.labelPosition)),
f = M(() => {
if (v.value === 'top') return {}
const W = pn(n.labelWidth || (s == null ? void 0 : s.labelWidth) || '')
return W ? { width: W } : {}
}),
w = M(() => {
if (v.value === 'top' || (s != null && s.inline)) return {}
if (!n.label && !n.labelWidth && K) return {}
const W = pn(n.labelWidth || (s == null ? void 0 : s.labelWidth) || '')
return !n.label && !i.label ? { marginLeft: W } : {}
}),
R = M(() => [
r.b(),
r.m(o.value),
r.is('error', c.value === 'error'),
r.is('validating', c.value === 'validating'),
r.is('success', c.value === 'success'),
r.is('required', L.value || n.required),
r.is('no-asterisk', s == null ? void 0 : s.hideRequiredAsterisk),
(s == null ? void 0 : s.requireAsteriskPosition) === 'right' ? 'asterisk-right' : 'asterisk-left',
{ [r.m('feedback')]: s == null ? void 0 : s.statusIcon, [r.m(`label-${v.value}`)]: v.value },
]),
I = M(() => (Tt(n.inlineMessage) ? n.inlineMessage : (s == null ? void 0 : s.inlineMessage) || !1)),
y = M(() => [r.e('error'), { [r.em('error', 'inline')]: I.value }]),
E = M(() => (n.prop ? (tt(n.prop) ? n.prop : n.prop.join('.')) : '')),
m = M(() => !!(n.label || i.label)),
j = M(() => n.for || (d.value.length === 1 ? d.value[0] : void 0)),
U = M(() => !j.value && m.value),
K = !!a,
H = M(() => {
const W = s == null ? void 0 : s.model
if (!(!W || !n.prop)) return ms(W, n.prop).value
}),
N = M(() => {
const { required: W } = n,
se = []
n.rules && se.push(...ft(n.rules))
const le = s == null ? void 0 : s.rules
if (le && n.prop) {
const Ae = ms(le, n.prop).value
Ae && se.push(...ft(Ae))
}
if (W !== void 0) {
const Ae = se.map((ke, Ve) => [ke, Ve]).filter(([ke]) => Object.keys(ke).includes('required'))
if (Ae.length > 0) for (const [ke, Ve] of Ae) ke.required !== W && (se[Ve] = { ...ke, required: W })
else se.push({ required: W })
}
return se
}),
k = M(() => N.value.length > 0),
F = (W) =>
N.value
.filter((le) => (!le.trigger || !W ? !0 : Ye(le.trigger) ? le.trigger.includes(W) : le.trigger === W))
.map(({ trigger: le, ...Ae }) => Ae),
L = M(() => N.value.some((W) => W.required)),
O = M(() => {
var W
return A.value === 'error' && n.showMessage && ((W = s == null ? void 0 : s.showMessage) != null ? W : !0)
}),
G = M(() => `${n.label || ''}${(s == null ? void 0 : s.labelSuffix) || ''}`),
V = (W) => {
c.value = W
},
ne = (W) => {
var se, le
const { errors: Ae, fields: ke } = W
V('error'),
(g.value = Ae
? (le = (se = Ae == null ? void 0 : Ae[0]) == null ? void 0 : se.message) != null
? le
: `${n.prop} is required`
: ''),
s == null || s.emit('validate', n.prop, !1, g.value)
},
re = () => {
V('success'), s == null || s.emit('validate', n.prop, !0, '')
},
Ie = async (W) => {
const se = E.value
return new bi({ [se]: W })
.validate({ [se]: H.value }, { firstFields: !0 })
.then(() => (re(), !0))
.catch((Ae) => (ne(Ae), Promise.reject(Ae)))
},
ie = async (W, se) => {
if (p || !n.prop) return !1
const le = Oe(se)
if (!k.value) return se == null || se(!1), !1
const Ae = F(W)
return Ae.length === 0
? (se == null || se(!0), !0)
: (V('validating'),
Ie(Ae)
.then(() => (se == null || se(!0), !0))
.catch((ke) => {
const { fields: Ve } = ke
return se == null || se(!1, Ve), le ? !1 : Promise.reject(Ve)
}))
},
we = () => {
V(''), (g.value = ''), (p = !1)
},
ve = async () => {
const W = s == null ? void 0 : s.model
if (!W || !n.prop) return
const se = ms(W, n.prop)
;(p = !0), (se.value = ha(u)), await Ee(), we(), (p = !1)
},
fe = (W) => {
d.value.includes(W) || d.value.push(W)
},
Re = (W) => {
d.value = d.value.filter((se) => se !== W)
}
q(
() => n.error,
(W) => {
;(g.value = W || ''), V(W ? 'error' : '')
},
{ immediate: !0 }
),
q(
() => n.validateStatus,
(W) => V(W || '')
)
const pe = lt({
...Fn(n),
$el: b,
size: o,
validateState: c,
labelId: l,
inputIds: d,
isGroup: U,
hasLabel: m,
fieldValue: H,
addInputId: fe,
removeInputId: Re,
resetField: ve,
clearValidate: we,
validate: ie,
})
return (
it(gn, pe),
Be(() => {
n.prop && (s == null || s.addField(pe), (u = ha(H.value)))
}),
xe(() => {
s == null || s.removeField(pe)
}),
t({ size: o, validateMessage: g, validateState: c, validate: ie, clearValidate: we, resetField: ve }),
(W, se) => {
var le
return (
Z(),
T(
'div',
{
ref_key: 'formItemRef',
ref: b,
class: B(h(R)),
role: h(U) ? 'group' : void 0,
'aria-labelledby': h(U) ? h(l) : void 0,
},
[
P(
h(Xv),
{
'is-auto-width': h(f).width === 'auto',
'update-all': ((le = h(s)) == null ? void 0 : le.labelWidth) === 'auto',
},
{
default: x(() => [
h(m)
? (Z(),
_(
Fe(h(j) ? 'label' : 'div'),
{ key: 0, id: h(l), for: h(j), class: B(h(r).e('label')), style: Ue(h(f)) },
{
default: x(() => [$(W.$slots, 'label', { label: h(G) }, () => [Le(ce(h(G)), 1)])]),
_: 3,
},
8,
['id', 'for', 'class', 'style']
))
: X('v-if', !0),
]),
_: 3,
},
8,
['is-auto-width', 'update-all']
),
Y(
'div',
{ class: B(h(r).e('content')), style: Ue(h(w)) },
[
$(W.$slots, 'default'),
P(
wu,
{ name: `${h(r).namespace.value}-zoom-in-top` },
{
default: x(() => [
h(O)
? $(W.$slots, 'error', { key: 0, error: g.value }, () => [
Y('div', { class: B(h(y)) }, ce(g.value), 3),
])
: X('v-if', !0),
]),
_: 3,
},
8,
['name']
),
],
6
),
],
10,
['role', 'aria-labelledby']
)
)
}
)
},
})
var Xl = ge(Hv, [['__file', 'form-item.vue']])
const Pl = dt(pv, { FormItem: Xl }),
Hl = Wn(Xl)
function Kv() {
const e = Nn(),
t = C(0),
n = 11,
i = M(() => ({ minWidth: `${Math.max(t.value, n)}px` }))
return (
bt(e, () => {
var a, o
t.value = (o = (a = e.value) == null ? void 0 : a.getBoundingClientRect().width) != null ? o : 0
}),
{ calculatorRef: e, calculatorWidth: t, inputStyle: i }
)
}
const Kl = Symbol('ElSelectGroup'),
ps = Symbol('ElSelect')
function qv(e, t) {
const n = de(ps),
i = de(Kl, { disabled: !1 }),
s = M(() => c(ft(n.props.modelValue), e.value)),
a = M(() => {
var b
if (n.props.multiple) {
const u = ft((b = n.props.modelValue) != null ? b : [])
return !s.value && u.length >= n.props.multipleLimit && n.props.multipleLimit > 0
} else return !1
}),
o = M(() => e.label || (vt(e.value) ? '' : e.value)),
r = M(() => e.value || e.label || ''),
l = M(() => e.disabled || t.groupDisabled || a.value),
d = Nt(),
c = (b = [], u) => {
if (vt(e.value)) {
const p = n.props.valueKey
return b && b.some((v) => Ts(en(v, p)) === en(u, p))
} else return b && b.includes(u)
},
A = () => {
!e.disabled && !i.disabled && (n.states.hoveringIndex = n.optionsArray.indexOf(d.proxy))
},
g = (b) => {
const u = new RegExp(_h(b), 'i')
t.visible = u.test(o.value) || e.created
}
return (
q(
() => o.value,
() => {
!e.created && !n.props.remote && n.setSelected()
}
),
q(
() => e.value,
(b, u) => {
const { remote: p, valueKey: v } = n.props
if (
((p ? b !== u : !jn(b, u)) && (n.onOptionDestroy(u, d.proxy), n.onOptionCreate(d.proxy)), !e.created && !p)
) {
if (v && vt(b) && vt(u) && b[v] === u[v]) return
n.setSelected()
}
}
),
q(
() => i.disabled,
() => {
t.groupDisabled = i.disabled
},
{ immediate: !0 }
),
{ select: n, currentLabel: o, currentValue: r, itemSelected: s, isDisabled: l, hoverItem: A, updateOption: g }
)
}
const _v = Q({
name: 'ElOption',
componentName: 'ElOption',
props: {
value: { required: !0, type: [String, Number, Boolean, Object] },
label: [String, Number],
created: Boolean,
disabled: Boolean,
},
setup(e) {
const t = he('select'),
n = Ai(),
i = M(() => [t.be('dropdown', 'item'), t.is('disabled', h(r)), t.is('selected', h(o)), t.is('hovering', h(g))]),
s = lt({ index: -1, groupDisabled: !1, visible: !0, hover: !1 }),
{ currentLabel: a, itemSelected: o, isDisabled: r, select: l, hoverItem: d, updateOption: c } = qv(e, s),
{ visible: A, hover: g } = Fn(s),
b = Nt().proxy
l.onOptionCreate(b),
xe(() => {
const p = b.value,
{ selected: v } = l.states,
f = v.some((w) => w.value === b.value)
Ee(() => {
l.states.cachedOptions.get(p) === b && !f && l.states.cachedOptions.delete(p)
}),
l.onOptionDestroy(p, b)
})
function u() {
r.value || l.handleOptionSelect(b)
}
return {
ns: t,
id: n,
containerKls: i,
currentLabel: a,
itemSelected: o,
isDisabled: r,
select: l,
hoverItem: d,
updateOption: c,
visible: A,
hover: g,
selectOptionClick: u,
states: s,
}
},
})
function $v(e, t, n, i, s, a) {
return We(
(Z(),
T(
'li',
{
id: e.id,
class: B(e.containerKls),
role: 'option',
'aria-disabled': e.isDisabled || void 0,
'aria-selected': e.itemSelected,
onMousemove: e.hoverItem,
onClick: Ze(e.selectOptionClick, ['stop']),
},
[$(e.$slots, 'default', {}, () => [Y('span', null, ce(e.currentLabel), 1)])],
42,
['id', 'aria-disabled', 'aria-selected', 'onMousemove', 'onClick']
)),
[[bn, e.visible]]
)
}
var Bo = ge(_v, [
['render', $v],
['__file', 'option.vue'],
])
const em = Q({
name: 'ElSelectDropdown',
componentName: 'ElSelectDropdown',
setup() {
const e = de(ps),
t = he('select'),
n = M(() => e.props.popperClass),
i = M(() => e.props.multiple),
s = M(() => e.props.fitInputWidth),
a = C('')
function o() {
var r
a.value = `${(r = e.selectRef) == null ? void 0 : r.offsetWidth}px`
}
return (
Be(() => {
o(), bt(e.selectRef, o)
}),
{ ns: t, minWidth: a, popperClass: n, isMultiple: i, isFitInputWidth: s }
)
},
})
function tm(e, t, n, i, s, a) {
return (
Z(),
T(
'div',
{
class: B([e.ns.b('dropdown'), e.ns.is('multiple', e.isMultiple), e.popperClass]),
style: Ue({ [e.isFitInputWidth ? 'width' : 'minWidth']: e.minWidth }),
},
[
e.$slots.header
? (Z(), T('div', { key: 0, class: B(e.ns.be('dropdown', 'header')) }, [$(e.$slots, 'header')], 2))
: X('v-if', !0),
$(e.$slots, 'default'),
e.$slots.footer
? (Z(), T('div', { key: 1, class: B(e.ns.be('dropdown', 'footer')) }, [$(e.$slots, 'footer')], 2))
: X('v-if', !0),
],
6
)
)
}
var nm = ge(em, [
['render', tm],
['__file', 'select-dropdown.vue'],
])
const im = (e, t) => {
const { t: n } = Ru(),
i = Ai(),
s = he('select'),
a = he('input'),
o = lt({
inputValue: '',
options: new Map(),
cachedOptions: new Map(),
optionValues: [],
selected: [],
selectionWidth: 0,
collapseItemWidth: 0,
selectedLabel: '',
hoveringIndex: -1,
previousQuery: null,
inputHovering: !1,
menuVisibleOnFocus: !1,
isBeforeHide: !1,
}),
r = C(null),
l = C(null),
d = C(null),
c = C(null),
A = C(null),
g = C(null),
b = C(null),
u = C(null),
p = C(null),
v = C(null),
f = C(null),
{
isComposing: w,
handleCompositionStart: R,
handleCompositionUpdate: I,
handleCompositionEnd: y,
} = Al({ afterComposition: (D) => Wt(D) }),
{
wrapperRef: E,
isFocused: m,
handleBlur: j,
} = pl(A, {
beforeFocus() {
return O.value
},
afterFocus() {
e.automaticDropdown && !U.value && ((U.value = !0), (o.menuVisibleOnFocus = !0))
},
beforeBlur(D) {
var z, oe
return (
((z = d.value) == null ? void 0 : z.isFocusInsideContent(D)) ||
((oe = c.value) == null ? void 0 : oe.isFocusInsideContent(D))
)
},
afterBlur() {
;(U.value = !1), (o.menuVisibleOnFocus = !1)
},
}),
U = C(!1),
K = C(),
{ form: H, formItem: N } = xn(),
{ inputId: k } = rs(e, { formItemContext: N }),
{ valueOnClear: F, isEmptyValue: L } = Iu(e),
O = M(() => e.disabled || (H == null ? void 0 : H.disabled)),
G = M(() => (Ye(e.modelValue) ? e.modelValue.length > 0 : !L(e.modelValue))),
V = M(() => {
var D
return (D = H == null ? void 0 : H.statusIcon) != null ? D : !1
}),
ne = M(() => e.clearable && !O.value && o.inputHovering && G.value),
re = M(() => (e.remote && e.filterable && !e.remoteShowSuffix ? '' : e.suffixIcon)),
Ie = M(() => s.is('reverse', re.value && U.value)),
ie = M(() => (N == null ? void 0 : N.validateState) || ''),
we = M(() => ll[ie.value]),
ve = M(() => (e.remote ? 300 : 0)),
fe = M(() => e.remote && !o.inputValue && o.options.size === 0),
Re = M(() =>
e.loading
? e.loadingText || n('el.select.loading')
: e.filterable && o.inputValue && o.options.size > 0 && pe.value === 0
? e.noMatchText || n('el.select.noMatch')
: o.options.size === 0
? e.noDataText || n('el.select.noData')
: null
),
pe = M(() => W.value.filter((D) => D.visible).length),
W = M(() => {
const D = Array.from(o.options.values()),
z = []
return (
o.optionValues.forEach((oe) => {
const Se = D.findIndex((qe) => qe.value === oe)
Se > -1 && z.push(D[Se])
}),
z.length >= D.length ? z : D
)
}),
se = M(() => Array.from(o.cachedOptions.values())),
le = M(() => {
const D = W.value.filter((z) => !z.created).some((z) => z.currentLabel === o.inputValue)
return e.filterable && e.allowCreate && o.inputValue !== '' && !D
}),
Ae = () => {
;(e.filterable && Oe(e.filterMethod)) ||
(e.filterable && e.remote && Oe(e.remoteMethod)) ||
W.value.forEach((D) => {
var z
;(z = D.updateOption) == null || z.call(D, o.inputValue)
})
},
ke = Xt(),
Ve = M(() => (['small'].includes(ke.value) ? 'small' : 'default')),
vn = M({
get() {
return U.value && !fe.value
},
set(D) {
U.value = D
},
}),
mn = M(() => {
if (e.multiple && !Vt(e.modelValue)) return ft(e.modelValue).length === 0 && !o.inputValue
const D = Ye(e.modelValue) ? e.modelValue[0] : e.modelValue
return e.filterable || Vt(D) ? !o.inputValue : !0
}),
yn = M(() => {
var D
const z = (D = e.placeholder) != null ? D : n('el.select.placeholder')
return e.multiple || !G.value ? z : o.selectedLabel
}),
wn = M(() => (Bs ? null : 'mouseenter'))
q(
() => e.modelValue,
(D, z) => {
e.multiple && e.filterable && !e.reserveKeyword && ((o.inputValue = ''), Ot('')),
Qe(),
!jn(D, z) && e.validateEvent && (N == null || N.validate('change').catch((oe) => void 0))
},
{ flush: 'post', deep: !0 }
),
q(
() => U.value,
(D) => {
D ? Ot(o.inputValue) : ((o.inputValue = ''), (o.previousQuery = null), (o.isBeforeHide = !0)),
t('visible-change', D)
}
),
q(
() => o.options.entries(),
() => {
ze && (Qe(), e.defaultFirstOption && (e.filterable || e.remote) && pe.value && Rn())
},
{ flush: 'post' }
),
q(
() => o.hoveringIndex,
(D) => {
Ne(D) && D > -1 ? (K.value = W.value[D] || {}) : (K.value = {}),
W.value.forEach((z) => {
z.hover = K.value === z
})
}
),
Eu(() => {
o.isBeforeHide || Ae()
})
const Ot = (D) => {
o.previousQuery === D ||
w.value ||
((o.previousQuery = D),
e.filterable && Oe(e.filterMethod)
? e.filterMethod(D)
: e.filterable && e.remote && Oe(e.remoteMethod) && e.remoteMethod(D),
e.defaultFirstOption && (e.filterable || e.remote) && pe.value ? Ee(Rn) : Ee(In))
},
Rn = () => {
const D = W.value.filter((qe) => qe.visible && !qe.disabled && !qe.states.groupDisabled),
z = D.find((qe) => qe.created),
oe = D[0],
Se = W.value.map((qe) => qe.value)
o.hoveringIndex = Lo(Se, z || oe)
},
Qe = () => {
if (e.multiple) o.selectedLabel = ''
else {
const z = Ye(e.modelValue) ? e.modelValue[0] : e.modelValue,
oe = Rt(z)
;(o.selectedLabel = oe.currentLabel), (o.selected = [oe])
return
}
const D = []
Vt(e.modelValue) ||
ft(e.modelValue).forEach((z) => {
D.push(Rt(z))
}),
(o.selected = D)
},
Rt = (D) => {
let z
const oe = Mu(D)
for (let En = o.cachedOptions.size - 1; En >= 0; En--) {
const Ft = se.value[En]
if (oe ? en(Ft.value, e.valueKey) === en(D, e.valueKey) : Ft.value === D) {
z = {
value: D,
currentLabel: Ft.currentLabel,
get isDisabled() {
return Ft.isDisabled
},
}
break
}
}
if (z) return z
const Se = oe ? D.label : (D ?? '')
return { value: D, currentLabel: Se }
},
In = () => {
o.hoveringIndex = W.value.findIndex((D) => o.selected.some((z) => wi(z) === wi(D)))
},
_t = () => {
o.selectionWidth = l.value.getBoundingClientRect().width
},
J = () => {
o.collapseItemWidth = v.value.getBoundingClientRect().width
},
ue = () => {
var D, z
;(z = (D = d.value) == null ? void 0 : D.updatePopper) == null || z.call(D)
},
st = () => {
var D, z
;(z = (D = c.value) == null ? void 0 : D.updatePopper) == null || z.call(D)
},
zt = () => {
o.inputValue.length > 0 && !U.value && (U.value = !0), Ot(o.inputValue)
},
Wt = (D) => {
if (((o.inputValue = D.target.value), e.remote)) zo()
else return zt()
},
zo = Rg(() => {
zt()
}, ve.value),
Kn = (D) => {
jn(e.modelValue, D) || t(al, D)
},
jc = (D) =>
Ig(D, (z) => {
const oe = o.cachedOptions.get(z)
return oe && !oe.disabled && !oe.states.groupDisabled
}),
Gc = (D) => {
if (e.multiple && D.code !== on.delete && D.target.value.length <= 0) {
const z = ft(e.modelValue).slice(),
oe = jc(z)
if (oe < 0) return
const Se = z[oe]
z.splice(oe, 1), t($e, z), Kn(z), t('remove-tag', Se)
}
},
kc = (D, z) => {
const oe = o.selected.indexOf(z)
if (oe > -1 && !O.value) {
const Se = ft(e.modelValue).slice()
Se.splice(oe, 1), t($e, Se), Kn(Se), t('remove-tag', z.value)
}
D.stopPropagation(), yi()
},
Wo = (D) => {
D.stopPropagation()
const z = e.multiple ? [] : F.value
if (e.multiple) for (const oe of o.selected) oe.isDisabled && z.push(oe.value)
t($e, z), Kn(z), (o.hoveringIndex = -1), (U.value = !1), t('clear'), yi()
},
Fo = (D) => {
var z
if (e.multiple) {
const oe = ft((z = e.modelValue) != null ? z : []).slice(),
Se = Lo(oe, D)
Se > -1 ? oe.splice(Se, 1) : (e.multipleLimit <= 0 || oe.length < e.multipleLimit) && oe.push(D.value),
t($e, oe),
Kn(oe),
D.created && Ot(''),
e.filterable && !e.reserveKeyword && (o.inputValue = '')
} else t($e, D.value), Kn(D.value), (U.value = !1)
yi(),
!U.value &&
Ee(() => {
mi(D)
})
},
Lo = (D = [], z) =>
Vt(z) ? -1 : vt(z.value) ? D.findIndex((oe) => jn(en(oe, e.valueKey), wi(z))) : D.indexOf(z.value),
mi = (D) => {
var z, oe, Se, qe, En
const Ft = Ye(D) ? D[0] : D
let Ri = null
if (Ft != null && Ft.value) {
const qn = W.value.filter((Hc) => Hc.value === Ft.value)
qn.length > 0 && (Ri = qn[0].$el)
}
if (d.value && Ri) {
const qn =
(qe =
(Se = (oe = (z = d.value) == null ? void 0 : z.popperRef) == null ? void 0 : oe.contentRef) == null
? void 0
: Se.querySelector) == null
? void 0
: qe.call(Se, `.${s.be('dropdown', 'wrap')}`)
qn && Wg(qn, Ri)
}
;(En = f.value) == null || En.handleScroll()
},
Bc = (D) => {
o.options.set(D.value, D), o.cachedOptions.set(D.value, D)
},
Yc = (D, z) => {
o.options.get(D) === z && o.options.delete(D)
},
Uc = M(() => {
var D, z
return (z = (D = d.value) == null ? void 0 : D.popperRef) == null ? void 0 : z.contentRef
}),
Tc = () => {
;(o.isBeforeHide = !1),
Ee(() => {
var D
;(D = f.value) == null || D.update(), mi(o.selected)
})
},
yi = () => {
var D
;(D = A.value) == null || D.focus()
},
Jc = () => {
var D
if (U.value) {
;(U.value = !1),
Ee(() => {
var z
return (z = A.value) == null ? void 0 : z.blur()
})
return
}
;(D = A.value) == null || D.blur()
},
Cc = (D) => {
Wo(D)
},
Oc = (D) => {
if (((U.value = !1), m.value)) {
const z = new FocusEvent('focus', D)
Ee(() => j(z))
}
},
zc = () => {
o.inputValue.length > 0 ? (o.inputValue = '') : (U.value = !1)
},
xo = () => {
O.value ||
(Bs && (o.inputHovering = !0), o.menuVisibleOnFocus ? (o.menuVisibleOnFocus = !1) : (U.value = !U.value))
},
Wc = () => {
if (!U.value) xo()
else {
const D = W.value[o.hoveringIndex]
D && !D.isDisabled && Fo(D)
}
},
wi = (D) => (vt(D.value) ? en(D.value, e.valueKey) : D.value),
Fc = M(() => W.value.filter((D) => D.visible).every((D) => D.isDisabled)),
Lc = M(() => (e.multiple ? (e.collapseTags ? o.selected.slice(0, e.maxCollapseTags) : o.selected) : [])),
xc = M(() => (e.multiple ? (e.collapseTags ? o.selected.slice(e.maxCollapseTags) : []) : [])),
Vo = (D) => {
if (!U.value) {
U.value = !0
return
}
if (!(o.options.size === 0 || pe.value === 0 || w.value) && !Fc.value) {
D === 'next'
? (o.hoveringIndex++, o.hoveringIndex === o.options.size && (o.hoveringIndex = 0))
: D === 'prev' && (o.hoveringIndex--, o.hoveringIndex < 0 && (o.hoveringIndex = o.options.size - 1))
const z = W.value[o.hoveringIndex]
;(z.isDisabled || !z.visible) && Vo(D), Ee(() => mi(K.value))
}
},
Vc = () => {
if (!l.value) return 0
const D = window.getComputedStyle(l.value)
return Number.parseFloat(D.gap || '6px')
},
Qc = M(() => {
const D = Vc()
return {
maxWidth: `${v.value && e.maxCollapseTags === 1 ? o.selectionWidth - o.collapseItemWidth - D : o.selectionWidth}px`,
}
}),
Xc = M(() => ({ maxWidth: `${o.selectionWidth}px` })),
Pc = (D) => {
t('popup-scroll', D)
}
return (
bt(l, _t),
bt(u, ue),
bt(E, ue),
bt(p, st),
bt(v, J),
Be(() => {
Qe()
}),
{
inputId: k,
contentId: i,
nsSelect: s,
nsInput: a,
states: o,
isFocused: m,
expanded: U,
optionsArray: W,
hoverOption: K,
selectSize: ke,
filteredOptionsCount: pe,
updateTooltip: ue,
updateTagTooltip: st,
debouncedOnInputChange: zo,
onInput: Wt,
deletePrevTag: Gc,
deleteTag: kc,
deleteSelected: Wo,
handleOptionSelect: Fo,
scrollToOption: mi,
hasModelValue: G,
shouldShowPlaceholder: mn,
currentPlaceholder: yn,
mouseEnterEventName: wn,
needStatusIcon: V,
showClose: ne,
iconComponent: re,
iconReverse: Ie,
validateState: ie,
validateIcon: we,
showNewOption: le,
updateOptions: Ae,
collapseTagSize: Ve,
setSelected: Qe,
selectDisabled: O,
emptyText: Re,
handleCompositionStart: R,
handleCompositionUpdate: I,
handleCompositionEnd: y,
onOptionCreate: Bc,
onOptionDestroy: Yc,
handleMenuEnter: Tc,
focus: yi,
blur: Jc,
handleClearClick: Cc,
handleClickOutside: Oc,
handleEsc: zc,
toggleMenu: xo,
selectOption: Wc,
getValueKey: wi,
navigateOptions: Vo,
dropdownMenuVisible: vn,
showTagList: Lc,
collapseTagList: xc,
popupScroll: Pc,
tagStyle: Qc,
collapseTagStyle: Xc,
popperRef: Uc,
inputRef: A,
tooltipRef: d,
tagTooltipRef: c,
prefixRef: g,
suffixRef: b,
selectRef: r,
wrapperRef: E,
selectionRef: l,
scrollbarRef: f,
menuRef: u,
tagMenuRef: p,
collapseItemRef: v,
}
)
}
var sm = Q({
name: 'ElOptions',
setup(e, { slots: t }) {
const n = de(ps)
let i = []
return () => {
var s, a
const o = (s = t.default) == null ? void 0 : s.call(t),
r = []
function l(d) {
Ye(d) &&
d.forEach((c) => {
var A, g, b, u
const p = (A = (c == null ? void 0 : c.type) || {}) == null ? void 0 : A.name
p === 'ElOptionGroup'
? l(
!tt(c.children) && !Ye(c.children) && Oe((g = c.children) == null ? void 0 : g.default)
? (b = c.children) == null
? void 0
: b.default()
: c.children
)
: p === 'ElOption'
? r.push((u = c.props) == null ? void 0 : u.value)
: Ye(c.children) && l(c.children)
})
}
return (
o.length && l((a = o[0]) == null ? void 0 : a.children),
jn(r, i) || ((i = r), n && (n.states.optionValues = r)),
o
)
}
},
})
const om = ye({
name: String,
id: String,
modelValue: { type: [Array, String, Number, Boolean, Object], default: void 0 },
autocomplete: { type: String, default: 'off' },
automaticDropdown: Boolean,
size: di,
effect: { type: ee(String), default: 'light' },
disabled: Boolean,
clearable: Boolean,
filterable: Boolean,
allowCreate: Boolean,
loading: Boolean,
popperClass: { type: String, default: '' },
popperOptions: { type: ee(Object), default: () => ({}) },
remote: Boolean,
loadingText: String,
noMatchText: String,
noDataText: String,
remoteMethod: Function,
filterMethod: Function,
multiple: Boolean,
multipleLimit: { type: Number, default: 0 },
placeholder: { type: String },
defaultFirstOption: Boolean,
reserveKeyword: { type: Boolean, default: !0 },
valueKey: { type: String, default: 'value' },
collapseTags: Boolean,
collapseTagsTooltip: Boolean,
maxCollapseTags: { type: Number, default: 1 },
teleported: ko.teleported,
persistent: { type: Boolean, default: !0 },
clearIcon: { type: An, default: vo },
fitInputWidth: Boolean,
suffixIcon: { type: An, default: Xg },
tagType: { ...Xs.type, default: 'info' },
tagEffect: { ...Xs.effect, default: 'light' },
validateEvent: { type: Boolean, default: !0 },
remoteShowSuffix: Boolean,
showArrow: { type: Boolean, default: !0 },
offset: { type: Number, default: 12 },
placement: { type: ee(String), values: us, default: 'bottom-start' },
fallbackPlacements: { type: ee(Array), default: ['bottom-start', 'top-start', 'right', 'left'] },
tabindex: { type: [String, Number], default: 0 },
appendTo: String,
...Du,
...hn(['ariaLabel']),
}),
ur = 'ElSelect',
am = Q({
name: ur,
componentName: ur,
components: {
ElSelectMenu: nm,
ElOption: Bo,
ElOptions: sm,
ElTag: iv,
ElScrollbar: Lf,
ElTooltip: ch,
ElIcon: ot,
},
directives: { ClickOutside: sv },
props: om,
emits: [$e, al, 'remove-tag', 'clear', 'visible-change', 'focus', 'blur', 'popup-scroll'],
setup(e, { emit: t }) {
const n = M(() => {
const { modelValue: l, multiple: d } = e,
c = d ? [] : void 0
return Ye(l) ? (d ? l : c) : d ? c : l
}),
i = lt({ ...Fn(e), modelValue: n }),
s = im(i, t),
{ calculatorRef: a, inputStyle: o } = Kv()
it(
ps,
lt({
props: i,
states: s.states,
optionsArray: s.optionsArray,
handleOptionSelect: s.handleOptionSelect,
onOptionCreate: s.onOptionCreate,
onOptionDestroy: s.onOptionDestroy,
selectRef: s.selectRef,
setSelected: s.setSelected,
})
)
const r = M(() => (e.multiple ? s.states.selected.map((l) => l.currentLabel) : s.states.selectedLabel))
return { ...s, modelValue: n, selectedLabel: r, calculatorRef: a, inputStyle: o }
},
})
function rm(e, t, n, i, s, a) {
const o = $t('el-tag'),
r = $t('el-tooltip'),
l = $t('el-icon'),
d = $t('el-option'),
c = $t('el-options'),
A = $t('el-scrollbar'),
g = $t('el-select-menu'),
b = Zu('click-outside')
return We(
(Z(),
T(
'div',
{
ref: 'selectRef',
class: B([e.nsSelect.b(), e.nsSelect.m(e.selectSize)]),
[Nu(e.mouseEnterEventName)]: (u) => (e.states.inputHovering = !0),
onMouseleave: (u) => (e.states.inputHovering = !1),
},
[
P(
r,
{
ref: 'tooltipRef',
visible: e.dropdownMenuVisible,
placement: e.placement,
teleported: e.teleported,
'popper-class': [e.nsSelect.e('popper'), e.popperClass],
'popper-options': e.popperOptions,
'fallback-placements': e.fallbackPlacements,
effect: e.effect,
pure: '',
trigger: 'click',
transition: `${e.nsSelect.namespace.value}-zoom-in-top`,
'stop-popper-mouse-event': !1,
'gpu-acceleration': !1,
persistent: e.persistent,
'append-to': e.appendTo,
'show-arrow': e.showArrow,
offset: e.offset,
onBeforeShow: e.handleMenuEnter,
onHide: (u) => (e.states.isBeforeHide = !1),
},
{
default: x(() => {
var u
return [
Y(
'div',
{
ref: 'wrapperRef',
class: B([
e.nsSelect.e('wrapper'),
e.nsSelect.is('focused', e.isFocused),
e.nsSelect.is('hovering', e.states.inputHovering),
e.nsSelect.is('filterable', e.filterable),
e.nsSelect.is('disabled', e.selectDisabled),
]),
onClick: Ze(e.toggleMenu, ['prevent']),
},
[
e.$slots.prefix
? (Z(),
T(
'div',
{ key: 0, ref: 'prefixRef', class: B(e.nsSelect.e('prefix')) },
[$(e.$slots, 'prefix')],
2
))
: X('v-if', !0),
Y(
'div',
{
ref: 'selectionRef',
class: B([
e.nsSelect.e('selection'),
e.nsSelect.is('near', e.multiple && !e.$slots.prefix && !!e.states.selected.length),
]),
},
[
e.multiple
? $(e.$slots, 'tag', { key: 0 }, () => [
(Z(!0),
T(
je,
null,
Jt(
e.showTagList,
(p) => (
Z(),
T(
'div',
{ key: e.getValueKey(p), class: B(e.nsSelect.e('selected-item')) },
[
P(
o,
{
closable: !e.selectDisabled && !p.isDisabled,
size: e.collapseTagSize,
type: e.tagType,
effect: e.tagEffect,
'disable-transitions': '',
style: Ue(e.tagStyle),
onClose: (v) => e.deleteTag(v, p),
},
{
default: x(() => [
Y(
'span',
{ class: B(e.nsSelect.e('tags-text')) },
[
$(
e.$slots,
'label',
{ label: p.currentLabel, value: p.value },
() => [Le(ce(p.currentLabel), 1)]
),
],
2
),
]),
_: 2,
},
1032,
['closable', 'size', 'type', 'effect', 'style', 'onClose']
),
],
2
)
)
),
128
)),
e.collapseTags && e.states.selected.length > e.maxCollapseTags
? (Z(),
_(
r,
{
key: 0,
ref: 'tagTooltipRef',
disabled: e.dropdownMenuVisible || !e.collapseTagsTooltip,
'fallback-placements': ['bottom', 'top', 'right', 'left'],
effect: e.effect,
placement: 'bottom',
teleported: e.teleported,
},
{
default: x(() => [
Y(
'div',
{ ref: 'collapseItemRef', class: B(e.nsSelect.e('selected-item')) },
[
P(
o,
{
closable: !1,
size: e.collapseTagSize,
type: e.tagType,
effect: e.tagEffect,
'disable-transitions': '',
style: Ue(e.collapseTagStyle),
},
{
default: x(() => [
Y(
'span',
{ class: B(e.nsSelect.e('tags-text')) },
' + ' + ce(e.states.selected.length - e.maxCollapseTags),
3
),
]),
_: 1,
},
8,
['size', 'type', 'effect', 'style']
),
],
2
),
]),
content: x(() => [
Y(
'div',
{ ref: 'tagMenuRef', class: B(e.nsSelect.e('selection')) },
[
(Z(!0),
T(
je,
null,
Jt(
e.collapseTagList,
(p) => (
Z(),
T(
'div',
{ key: e.getValueKey(p), class: B(e.nsSelect.e('selected-item')) },
[
P(
o,
{
class: 'in-tooltip',
closable: !e.selectDisabled && !p.isDisabled,
size: e.collapseTagSize,
type: e.tagType,
effect: e.tagEffect,
'disable-transitions': '',
onClose: (v) => e.deleteTag(v, p),
},
{
default: x(() => [
Y(
'span',
{ class: B(e.nsSelect.e('tags-text')) },
[
$(
e.$slots,
'label',
{ label: p.currentLabel, value: p.value },
() => [Le(ce(p.currentLabel), 1)]
),
],
2
),
]),
_: 2,
},
1032,
['closable', 'size', 'type', 'effect', 'onClose']
),
],
2
)
)
),
128
)),
],
2
),
]),
_: 3,
},
8,
['disabled', 'effect', 'teleported']
))
: X('v-if', !0),
])
: X('v-if', !0),
Y(
'div',
{
class: B([
e.nsSelect.e('selected-item'),
e.nsSelect.e('input-wrapper'),
e.nsSelect.is('hidden', !e.filterable),
]),
},
[
We(
Y(
'input',
{
id: e.inputId,
ref: 'inputRef',
'onUpdate:modelValue': (p) => (e.states.inputValue = p),
type: 'text',
name: e.name,
class: B([e.nsSelect.e('input'), e.nsSelect.is(e.selectSize)]),
disabled: e.selectDisabled,
autocomplete: e.autocomplete,
style: Ue(e.inputStyle),
tabindex: e.tabindex,
role: 'combobox',
readonly: !e.filterable,
spellcheck: 'false',
'aria-activedescendant': ((u = e.hoverOption) == null ? void 0 : u.id) || '',
'aria-controls': e.contentId,
'aria-expanded': e.dropdownMenuVisible,
'aria-label': e.ariaLabel,
'aria-autocomplete': 'none',
'aria-haspopup': 'listbox',
onKeydown: [
_n(
Ze((p) => e.navigateOptions('next'), ['stop', 'prevent']),
['down']
),
_n(
Ze((p) => e.navigateOptions('prev'), ['stop', 'prevent']),
['up']
),
_n(Ze(e.handleEsc, ['stop', 'prevent']), ['esc']),
_n(Ze(e.selectOption, ['stop', 'prevent']), ['enter']),
_n(Ze(e.deletePrevTag, ['stop']), ['delete']),
],
onCompositionstart: e.handleCompositionStart,
onCompositionupdate: e.handleCompositionUpdate,
onCompositionend: e.handleCompositionEnd,
onInput: e.onInput,
onClick: Ze(e.toggleMenu, ['stop']),
},
null,
46,
[
'id',
'onUpdate:modelValue',
'name',
'disabled',
'autocomplete',
'tabindex',
'readonly',
'aria-activedescendant',
'aria-controls',
'aria-expanded',
'aria-label',
'onKeydown',
'onCompositionstart',
'onCompositionupdate',
'onCompositionend',
'onInput',
'onClick',
]
),
[[Su, e.states.inputValue]]
),
e.filterable
? (Z(),
T(
'span',
{
key: 0,
ref: 'calculatorRef',
'aria-hidden': 'true',
class: B(e.nsSelect.e('input-calculator')),
textContent: ce(e.states.inputValue),
},
null,
10,
['textContent']
))
: X('v-if', !0),
],
2
),
e.shouldShowPlaceholder
? (Z(),
T(
'div',
{
key: 1,
class: B([
e.nsSelect.e('selected-item'),
e.nsSelect.e('placeholder'),
e.nsSelect.is(
'transparent',
!e.hasModelValue || (e.expanded && !e.states.inputValue)
),
]),
},
[
e.hasModelValue
? $(
e.$slots,
'label',
{ key: 0, label: e.currentPlaceholder, value: e.modelValue },
() => [Y('span', null, ce(e.currentPlaceholder), 1)]
)
: (Z(), T('span', { key: 1 }, ce(e.currentPlaceholder), 1)),
],
2
))
: X('v-if', !0),
],
2
),
Y(
'div',
{ ref: 'suffixRef', class: B(e.nsSelect.e('suffix')) },
[
e.iconComponent && !e.showClose
? (Z(),
_(
l,
{ key: 0, class: B([e.nsSelect.e('caret'), e.nsSelect.e('icon'), e.iconReverse]) },
{ default: x(() => [(Z(), _(Fe(e.iconComponent)))]), _: 1 },
8,
['class']
))
: X('v-if', !0),
e.showClose && e.clearIcon
? (Z(),
_(
l,
{
key: 1,
class: B([e.nsSelect.e('caret'), e.nsSelect.e('icon'), e.nsSelect.e('clear')]),
onClick: e.handleClearClick,
},
{ default: x(() => [(Z(), _(Fe(e.clearIcon)))]), _: 1 },
8,
['class', 'onClick']
))
: X('v-if', !0),
e.validateState && e.validateIcon && e.needStatusIcon
? (Z(),
_(
l,
{
key: 2,
class: B([
e.nsInput.e('icon'),
e.nsInput.e('validateIcon'),
e.nsInput.is('loading', e.validateState === 'validating'),
]),
},
{ default: x(() => [(Z(), _(Fe(e.validateIcon)))]), _: 1 },
8,
['class']
))
: X('v-if', !0),
],
2
),
],
10,
['onClick']
),
]
}),
content: x(() => [
P(
g,
{ ref: 'menuRef' },
{
default: x(() => [
e.$slots.header
? (Z(),
T(
'div',
{ key: 0, class: B(e.nsSelect.be('dropdown', 'header')), onClick: Ze(() => {}, ['stop']) },
[$(e.$slots, 'header')],
10,
['onClick']
))
: X('v-if', !0),
We(
P(
A,
{
id: e.contentId,
ref: 'scrollbarRef',
tag: 'ul',
'wrap-class': e.nsSelect.be('dropdown', 'wrap'),
'view-class': e.nsSelect.be('dropdown', 'list'),
class: B([e.nsSelect.is('empty', e.filteredOptionsCount === 0)]),
role: 'listbox',
'aria-label': e.ariaLabel,
'aria-orientation': 'vertical',
onScroll: e.popupScroll,
},
{
default: x(() => [
e.showNewOption
? (Z(), _(d, { key: 0, value: e.states.inputValue, created: !0 }, null, 8, ['value']))
: X('v-if', !0),
P(c, null, { default: x(() => [$(e.$slots, 'default')]), _: 3 }),
]),
_: 3,
},
8,
['id', 'wrap-class', 'view-class', 'class', 'aria-label', 'onScroll']
),
[[bn, e.states.options.size > 0 && !e.loading]]
),
e.$slots.loading && e.loading
? (Z(),
T(
'div',
{ key: 1, class: B(e.nsSelect.be('dropdown', 'loading')) },
[$(e.$slots, 'loading')],
2
))
: e.loading || e.filteredOptionsCount === 0
? (Z(),
T(
'div',
{ key: 2, class: B(e.nsSelect.be('dropdown', 'empty')) },
[$(e.$slots, 'empty', {}, () => [Y('span', null, ce(e.emptyText), 1)])],
2
))
: X('v-if', !0),
e.$slots.footer
? (Z(),
T(
'div',
{ key: 3, class: B(e.nsSelect.be('dropdown', 'footer')), onClick: Ze(() => {}, ['stop']) },
[$(e.$slots, 'footer')],
10,
['onClick']
))
: X('v-if', !0),
]),
_: 3,
},
512
),
]),
_: 3,
},
8,
[
'visible',
'placement',
'teleported',
'popper-class',
'popper-options',
'fallback-placements',
'effect',
'transition',
'persistent',
'append-to',
'show-arrow',
'offset',
'onBeforeShow',
'onHide',
]
),
],
16,
['onMouseleave']
)),
[[b, e.handleClickOutside, e.popperRef]]
)
}
var lm = ge(am, [
['render', rm],
['__file', 'select.vue'],
])
const cm = Q({
name: 'ElOptionGroup',
componentName: 'ElOptionGroup',
props: { label: String, disabled: Boolean },
setup(e) {
const t = he('select'),
n = C(null),
i = Nt(),
s = C([])
it(Kl, lt({ ...Fn(e) }))
const a = M(() => s.value.some((d) => d.visible === !0)),
o = (d) => {
var c, A
return ((c = d.type) == null ? void 0 : c.name) === 'ElOption' && !!((A = d.component) != null && A.proxy)
},
r = (d) => {
const c = ft(d),
A = []
return (
c.forEach((g) => {
var b, u
o(g)
? A.push(g.component.proxy)
: (b = g.children) != null && b.length
? A.push(...r(g.children))
: (u = g.component) != null && u.subTree && A.push(...r(g.component.subTree))
}),
A
)
},
l = () => {
s.value = r(i.subTree)
}
return (
Be(() => {
l()
}),
Yg(n, l, { attributes: !0, subtree: !0, childList: !0 }),
{ groupRef: n, visible: a, ns: t }
)
},
})
function um(e, t, n, i, s, a) {
return We(
(Z(),
T(
'ul',
{ ref: 'groupRef', class: B(e.ns.be('group', 'wrap')) },
[
Y('li', { class: B(e.ns.be('group', 'title')) }, ce(e.label), 3),
Y('li', null, [Y('ul', { class: B(e.ns.b('group')) }, [$(e.$slots, 'default')], 2)]),
],
2
)),
[[bn, e.visible]]
)
}
var ql = ge(cm, [
['render', um],
['__file', 'option-group.vue'],
])
const _l = dt(lm, { Option: Bo, OptionGroup: ql }),
$l = Wn(Bo)
Wn(ql)
const ec = ['success', 'info', 'warning', 'error'],
Je = cl({
customClass: '',
center: !1,
dangerouslyUseHTMLString: !1,
duration: 3e3,
icon: void 0,
id: '',
message: '',
onClose: void 0,
showClose: !1,
type: 'info',
plain: !1,
offset: 16,
zIndex: 0,
grouping: !1,
repeatNum: 1,
appendTo: ze ? document.body : void 0,
}),
dm = ye({
customClass: { type: String, default: Je.customClass },
center: { type: Boolean, default: Je.center },
dangerouslyUseHTMLString: { type: Boolean, default: Je.dangerouslyUseHTMLString },
duration: { type: Number, default: Je.duration },
icon: { type: An, default: Je.icon },
id: { type: String, default: Je.id },
message: { type: ee([String, Object, Function]), default: Je.message },
onClose: { type: ee(Function), default: Je.onClose },
showClose: { type: Boolean, default: Je.showClose },
type: { type: String, values: ec, default: Je.type },
plain: { type: Boolean, default: Je.plain },
offset: { type: Number, default: Je.offset },
zIndex: { type: Number, default: Je.zIndex },
grouping: { type: Boolean, default: Je.grouping },
repeatNum: { type: Number, default: Je.repeatNum },
}),
pm = { destroy: () => !0 },
mt = ju([]),
Am = (e) => {
const t = mt.findIndex((s) => s.id === e),
n = mt[t]
let i
return t > 0 && (i = mt[t - 1]), { current: n, prev: i }
},
gm = (e) => {
const { prev: t } = Am(e)
return t ? t.vm.exposed.bottom.value : 0
},
fm = (e, t) => (mt.findIndex((i) => i.id === e) > 0 ? 16 : t),
bm = Q({ name: 'ElMessage' }),
hm = Q({
...bm,
props: dm,
emits: pm,
setup(e, { expose: t }) {
const n = e,
{ Close: i } = pf,
{ ns: s, zIndex: a } = Gu('message'),
{ currentZIndex: o, nextZIndex: r } = a,
l = C(),
d = C(!1),
c = C(0)
let A
const g = M(() => (n.type ? (n.type === 'error' ? 'danger' : n.type) : 'info')),
b = M(() => {
const m = n.type
return { [s.bm('icon', m)]: m && ja[m] }
}),
u = M(() => n.icon || ja[n.type] || ''),
p = M(() => gm(n.id)),
v = M(() => fm(n.id, n.offset) + p.value),
f = M(() => c.value + v.value),
w = M(() => ({ top: `${v.value}px`, zIndex: o.value }))
function R() {
n.duration !== 0 &&
({ stop: A } = ku(() => {
y()
}, n.duration))
}
function I() {
A == null || A()
}
function y() {
d.value = !1
}
function E({ code: m }) {
m === on.esc && y()
}
return (
Be(() => {
R(), r(), (d.value = !0)
}),
q(
() => n.repeatNum,
() => {
I(), R()
}
),
Dt(document, 'keydown', E),
bt(l, () => {
c.value = l.value.getBoundingClientRect().height
}),
t({ visible: d, bottom: f, close: y }),
(m, j) => (
Z(),
_(
at,
{ name: h(s).b('fade'), onBeforeLeave: m.onClose, onAfterLeave: (U) => m.$emit('destroy'), persisted: '' },
{
default: x(() => [
We(
Y(
'div',
{
id: m.id,
ref_key: 'messageRef',
ref: l,
class: B([
h(s).b(),
{ [h(s).m(m.type)]: m.type },
h(s).is('center', m.center),
h(s).is('closable', m.showClose),
h(s).is('plain', m.plain),
m.customClass,
]),
style: Ue(h(w)),
role: 'alert',
onMouseenter: I,
onMouseleave: R,
},
[
m.repeatNum > 1
? (Z(),
_(h(gh), { key: 0, value: m.repeatNum, type: h(g), class: B(h(s).e('badge')) }, null, 8, [
'value',
'type',
'class',
]))
: X('v-if', !0),
h(u)
? (Z(),
_(
h(ot),
{ key: 1, class: B([h(s).e('icon'), h(b)]) },
{ default: x(() => [(Z(), _(Fe(h(u))))]), _: 1 },
8,
['class']
))
: X('v-if', !0),
$(m.$slots, 'default', {}, () => [
m.dangerouslyUseHTMLString
? (Z(),
T(
je,
{ key: 1 },
[
X(
" Caution here, message could've been compromised, never use user's input as message "
),
Y('p', { class: B(h(s).e('content')), innerHTML: m.message }, null, 10, ['innerHTML']),
],
2112
))
: (Z(), T('p', { key: 0, class: B(h(s).e('content')) }, ce(m.message), 3)),
]),
m.showClose
? (Z(),
_(
h(ot),
{ key: 2, class: B(h(s).e('closeBtn')), onClick: Ze(y, ['stop']) },
{ default: x(() => [P(h(i))]), _: 1 },
8,
['class', 'onClick']
))
: X('v-if', !0),
],
46,
['id']
),
[[bn, d.value]]
),
]),
_: 3,
},
8,
['name', 'onBeforeLeave', 'onAfterLeave']
)
)
)
},
})
var vm = ge(hm, [['__file', 'message.vue']])
let mm = 1
const tc = (e) => {
const t = !e || tt(e) || Cr(e) || Oe(e) ? { message: e } : e,
n = { ...Je, ...t }
if (!n.appendTo) n.appendTo = document.body
else if (tt(n.appendTo)) {
let i = document.querySelector(n.appendTo)
Yt(i) || (i = document.body), (n.appendTo = i)
}
return (
Tt(Et.grouping) && !n.grouping && (n.grouping = Et.grouping),
Ne(Et.duration) && n.duration === 3e3 && (n.duration = Et.duration),
Ne(Et.offset) && n.offset === 16 && (n.offset = Et.offset),
Tt(Et.showClose) && !n.showClose && (n.showClose = Et.showClose),
n
)
},
ym = (e) => {
const t = mt.indexOf(e)
if (t === -1) return
mt.splice(t, 1)
const { handler: n } = e
n.close()
},
wm = ({ appendTo: e, ...t }, n) => {
const i = `message_${mm++}`,
s = t.onClose,
a = document.createElement('div'),
o = {
...t,
id: i,
onClose: () => {
s == null || s(), ym(c)
},
onDestroy: () => {
Po(null, a)
},
},
r = P(vm, o, Oe(o.message) || Cr(o.message) ? { default: Oe(o.message) ? o.message : () => o.message } : null)
;(r.appContext = n || On._context), Po(r, a), e.appendChild(a.firstElementChild)
const l = r.component,
c = {
id: i,
vnode: r,
vm: l,
handler: {
close: () => {
l.exposed.visible.value = !1
},
},
props: r.component.props,
}
return c
},
On = (e = {}, t) => {
if (!ze) return { close: () => {} }
const n = tc(e)
if (n.grouping && mt.length) {
const s = mt.find(({ vnode: a }) => {
var o
return ((o = a.props) == null ? void 0 : o.message) === n.message
})
if (s) return (s.props.repeatNum += 1), (s.props.type = n.type), s.handler
}
if (Ne(Et.max) && mt.length >= Et.max) return { close: () => {} }
const i = wm(n, t)
return mt.push(i), i.handler
}
ec.forEach((e) => {
On[e] = (t = {}, n) => {
const i = tc(t)
return On({ ...i, type: e }, n)
}
})
function Rm(e) {
for (const t of mt) (!e || e === t.props.type) && t.handler.close()
}
On.closeAll = Rm
On._context = null
const Im = Bu(On, '$message')
function Em(e) {
Yu.emit('callUE', e)
}
function Mm({ RealTime: e = !1, UpdateTime: t = '2025-02-21 8:00:00', WeatherType: n }) {
Em({ ModuleName: 'Weather', ActionName: 'Update', Params: { RealTime: e, UpdateTime: t, WeatherType: n } })
}
const nc = co('panel', {
state: () => ({ sjwg: {}, fcky: {}, sgzy: {}, kypm: {}, weather: 'Clear Skies' }),
getters: {},
actions: {
setSjwg(e) {
this.sjwg = e
},
setFcky(e) {
this.fcky = e
},
setSgzy(e) {
this.sgzy = e
},
setKypm(e) {
this.kypm = e
},
setWeather(e) {
;(this.weather = e), Mm({ WeatherType: e })
},
},
}),
Dm = '/low_altitude_interface/assets/alert-dl-h-BvrYMMjx.png',
Zm = '/low_altitude_interface/assets/alert-dl-BZTlgzoZ.png',
Sm = '/low_altitude_interface/assets/alert-ky-h-CFjAOj8V.png',
Nm = '/low_altitude_interface/assets/alert-ky-CqDOU9i3.png',
jm = '/low_altitude_interface/assets/alert-ph-h-DXrewdxZ.png',
Gm = '/low_altitude_interface/assets/alert-ph-C42Ik3er.png',
km = '/low_altitude_interface/assets/alert-pz-h-8KR8KYCm.png',
Bm = '/low_altitude_interface/assets/alert-pz-B4piqmd5.png',
Ym = '/low_altitude_interface/assets/alert-tq-h-BGS-OrD_.png',
Um = '/low_altitude_interface/assets/alert-tq-cyO9batw.png',
Tm =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRDQxMzgxNkYyNzgxMUVGOTZDQ0RCMkZCMUNDQTM4RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRDQxMzgxN0YyNzgxMUVGOTZDQ0RCMkZCMUNDQTM4RSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZENDEzODE0RjI3ODExRUY5NkNDREIyRkIxQ0NBMzhFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZENDEzODE1RjI3ODExRUY5NkNDREIyRkIxQ0NBMzhFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+beTDTgAABSJJREFUeNqsWFtsVEUY/mb27LalN0u5WAERrPVSL1UUg4m38oDxrcFoUArR6Eu1YggRExLeDGKl2lc1pqax8RIhwQdjIqLhwRhCQANNTKzWErQpBell293u7oz/nD2zzM7OObsSTzK7c87cvvP9///NP4e17JBwXMz6R8h92CVD7mXYAC9icR7U7RIGSlr1qFICynOA4MY/t+5ZBazoxYTxL6x7GcwjwxgxF48FRdeZ0accEL1YLqjnjDqMdicjNoBY0O4ZgJjFnnTUTUY0gGzQJ2esLWxGmPW2GkDcKDGDFW6AkZZpo0DYpmPmC9iMmCASVKqDumeZijuAhIFYjHBiuBgxgfggtj2Cx25ZhX3xGNbhGq5sDmO/T+Dg0HF8YzkuK8dIESt3rkU/Z2jANV4ex023r8Z7DUvQMTOPjBWFCHNWZjtqwsuDGDyGp6dmsCglYtKYiF11Phb8CvWMMeSWNyCxoxOH6WlVSxOWEJD5CE0qYcQ0UcyL5RvPjWPaYIoblGrP55Z/ZCf+wZwenxMlYulkhDkih5tAVjWj4cIlpFX/5Y2oI2YYvbUtTj5Dk9OYVc/XLEO9Hh/jbnNESXyRrOuJLs3k7dv3PN6uq0Fr1ITzaYztHcTLl2eR4dw3h2JElPWnkOdFQITMv3UijoR+FnZVxVFFDo5kGpm3vkAX9V84P4WFSoE4aYsHi668DgmaLLXrfewyhA3VpDCNtX6o+7qSyiA9nfQXVfohaMyceuyS9EoZ8QVHA1FREEyu/cJ3TlpYpK74vhMzZFs0U8SQOdNlUoiiyPGiNi9thovTvq3lh70YqK9Bm+5A9I+9MIBX1YQ7O7HhwVvxxNJ63EuzsytJnBw5jyMDR3HMUmTuSCdkFBDEg1aZ9xFUJ5CIGyOqRD6c92/D1o51eM4cS9G18VEq66/HEJn0kLV5lgCKBhIwckMzqkmqF7YfQg+Fcq2ehEJ6vvtx3PVAax4E6c2Xn3yPrwl4trsTm+9Yg+71K9G9pws/vnMEx639ymkapyMVokZcTWpo8aS56T15P55V/UbGcfiNj/GpFjUK4c/f7MbsfTej56Hb8Bo9O+HYOAv7DY/IsHxnVYWc1dxRVVG6klnRiBhJebvqs38Yw1byg31D+Eq10V7TtnoZakJAlJhGWlu58IJWzpxpnmIsp/vkcj4IOx9lut3jzhy4EE3cAaBQ14yMTvjmKAH612UsLKRxTvXpfxFbrfE4sBNbVFtqEWfHJv28JDQB9xx5ps4ZctpHNt+DpvGLSKs9Rhp2Hf0byR/OYrBrE/o2tGL7uy9hbvBbnFBKTOG86eF29Krxp37DkCsZKhIVOtdwKzWsCkrNyX6cov2i1jWQFss8dQBb/pxE+rO96GltKQ5f86IU4Myej9BDgKboVilvOiiLgb8JbjEijBQv89Ov2E0Rc4HsC7vEOWRTnd8v9cxBDHz3M16fT+E0tQnVTvVfTo+iL72IkaV16PjgFRzV0m+bUDPCrKw9buSsihlvYxvqySxcKNMEKQA5sDzzB5KZbCEf8cvaFaimbZ+R7vgS334jEkO7MUxmbry7Fx0BC5qJrAangdhpognIC5FmaYRq1CFMaIYdALKBBXyJl44M3FwsF7KAtLL4sDRQWGCyhokK4e453s4+n7gEyHV+dQGRBhjziCFcBywX1TaQsDOvjNraHXMLx1lY2jpiJsR2nVXwCaKSLwUi7JDlhXzDYP/xewgq/I4iw76ZeGUGSPw/Fys3378CDAB0DhbF4i5xlQAAAABJRU5ErkJggg==',
Jm =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3RTg4QThBQkZFMUYxMUVGODVBMURCQUFDNDI1OTMxMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3RTg4QThBQ0ZFMUYxMUVGODVBMURCQUFDNDI1OTMxMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdFODhBOEE5RkUxRjExRUY4NUExREJBQUM0MjU5MzEwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdFODhBOEFBRkUxRjExRUY4NUExREJBQUM0MjU5MzEwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+heW3eAAABSBJREFUeNrsWE2IHEUU/qqnu2c2G9Flyc+aVWGJCRhUIognhWgkEcEfcvIgsjmoCIp6EcRVEERRcxLB4IKoCQSEeFAxeBTJIRcvwaiIEEyWmJgNUbPZme6u8lV31fi2tmqmZ8bDHmx4dFV3VdfX3/utEkoprOUrwhq/1jzA2Dauf2KgecK597tUoN3zWviYARwClGAaEB6wioGRHmBqIAZrArOg3HbkjHWBSQbYtoXzEwMBdEFZEBZQg/UbzjjOnpbCgHLFBe5lNQ6AE8yJOKBGQIRHzRZAERDpjPOqPg4wB8ZQZMY1zN3XjgIMWoA5u+esDwZOMgyqDoOCsWbBJExiJpGHQckAZgZUxn4oM+NyZpN9GYTjoRxgaqRpQe6/H4/etBEvRALrA7El//0S5t//Ch8aQB0jPltVdW0QHvYSA4xLfPMU5vICi2f+wDxjsVyYMqicmsC905N4mvqHmDkIx/akmStd9YZskEsJ8PmH8HAzwXYpkVzN0O7kUONNTMf0NiOAFy5jQYjut8pFaGy+8VpcpDEzL+3DK4t/44eExq9rotWIkBcSp9/9HIeZw4i6NrhKxVsm8SwtdIs7SCp0rhnD1rt34NVQHNNjNk9grxb+nACepdsRQ0IeykqxJ7q7NIt3jmLfDRuw6coy0tndOEAs3HrwGGb/WkIuIsRi5cftfEFqVgSwIMbki4/gU2L+3Pw3mB1L0V5YxPkAqL5OsspQz19GRnKJmmMkV7VqT57GRebBcDyRh6zSk2mOItY6p37Dn9RfMs4SSo19qxl3cNc+khiJBjjeQkqqX7/nDmy3JrFzBlN3bcO07d93O7Zu24JJrUY9hyQKxNyhy61V7h/TDG3spG75+C48+Ng9eGPHjdigv/XkXrz81AN4WwNKY8T0/s39u6HrpMgAFIHCIlg8RD0AKV+e1OC06EVaCVq6fd041ukHzRhNEh2SBIFp6HcENDXzlJmHPmuougwq38caFRNVrKMoY0JNUbIisEzhpm1eKjOutLWSwagnCapuNeP7o24VQoyopJol9aK6TV5ajktMv6RXVG3TL+eQRyunmhk6k4QmV6CMqqzahOj2u+wyc+iCl3LVTw9dDwaLV60mA0JQDta2BhMHG0yNsXWMKKo8Wj8vhtgBxTW8eMWdOQksm0JUnkmqFswRKgajf+c5DGJYGww5SWk7MdlgXM0qWimxRu1WavpNJJSztRdLYjfS79K0XEPPQ6G824CRGVzhJEncDRc5qa+j20ttXNHlVFqFFf22oz1bv6Owo+dn1BbGSXhFrfrZYTwAuLIiTk0m0SAOfo2ju27DyeOnysSPD47hdYqNms9Om6q/I99i7sezWNB97cWqqidzD0D8FwDLUp0W6liA3/+KCySLNjt89h1+Nu3S2t77Eifsj+ksQjZYOCV/0U/VcR/74+D02OynMzhM+fbOEwdwiCqS4xSQIxJhSqvyTvbXXZAcSG6awE7txb9cwCes/K+lZmEPj5yTBcE2S7aituV+64s5PDOzGc8NcnRCVfdHe17DW9RcJmmbDJMZsWwq92ShF0DBtpV8w2T3JqFtp3CDO9vRZQZcxpjMnexS6+iDF652AXcv0XA286LHyUIR2HbKUeOgZEafezY6/Y4+lHOawIHKOp5cJ9X5Erv0MCd6/KQPaK1gXSeT+LKKCKhW9CrV+lQyI+ViOPtW4WwVETh+q10Ij6JiH5Oix5lOrzJ+4IPMQcqtoU5JR73E/6f8I17/CDAA8BVFtpqXAbsAAAAASUVORK5CYII=',
Cm =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAHCAYAAAAxrNxjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNDA2NzUwQ0YyNzgxMUVGOTBGNEQ2MzcyMjVEQUZBMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNDA2NzUwREYyNzgxMUVGOTBGNEQ2MzcyMjVEQUZBMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM0MDY3NTBBRjI3ODExRUY5MEY0RDYzNzIyNURBRkEzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM0MDY3NTBCRjI3ODExRUY5MEY0RDYzNzIyNURBRkEzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jSwKAQAAAGFJREFUeNpi+P//vxcQzwJiBhx4BhBHgBhX/kNALxZFzVC5lyCOGRD/gwoUIilK/I8AzjBBMyRBFyC2RuJ7gNQgW+P2HxMEweTR3ZSApKgYWY4RrBoVzANiHiAOQxYECDAA1iHPjsP3lu0AAAAASUVORK5CYII=',
Om =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCNEM1RTNGOEYyNzgxMUVGOTVCRTkwRDlEQ0FBQTRCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCNEM1RTNGOUYyNzgxMUVGOTVCRTkwRDlEQ0FBQTRCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI0QzVFM0Y2RjI3ODExRUY5NUJFOTBEOURDQUFBNEJCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI0QzVFM0Y3RjI3ODExRUY5NUJFOTBEOURDQUFBNEJCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+btGhQgAAAO5JREFUeNpi+P//PwMenA/E/4DYEV0On6bq/xBwCUp7EaNxMlRxOJQ/G8p3xadxBVRRAJp4O1TcBZvGA1BJCzRxDiA+CcRvgdgEXeMFqCYNNE0GUPG7QMyN7FSQaU+hkuJomoKh4ruxheptqBN40CRroJq6sAUgA46AWAYVT8AVXSwMECABpYWBeB8Q6wGxAxAfBGIzIJYB4l9Q/AeIP4J0/4Ga/g1KvwdiKSTTN/7HBI8YgYQ60ARRqK0/gHgLAxGAEexRiBOZoFgWiAWR+N+B+CdILRL+wQL1w34gZgPiv1AD/yMZjs4GabwOEGAAA3fkRNhlaaMAAAAASUVORK5CYII=',
zm = '/low_altitude_interface/assets/btn-main-BhN8Qa_S.png',
Wm =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRUY0Njc2REYyNzgxMUVGQjlGMUZDQUI4NTUyNDZEOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRUY0Njc2RUYyNzgxMUVGQjlGMUZDQUI4NTUyNDZEOSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVFRjQ2NzZCRjI3ODExRUZCOUYxRkNBQjg1NTI0NkQ5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVFRjQ2NzZDRjI3ODExRUZCOUYxRkNBQjg1NTI0NkQ5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VxzamQAABRdJREFUeNq0WGtoHUUU/mbv3t37aJ634SbRpg+laooU9Yc/BP0h/hCJYgQrQk0K/dXiI5BSUtQfYmNDkSoKSaFKRQIWiw8iIijqD+sLRatQq7RpU2PSJk3amNd97npmnSmTydy9t7EunLt7z+zMfHO+M+ecWbvpCR8VXAz/7So7iV3BxKwCMH6FC/FL9bFDOsm7JZ5ZCBi/DBjfAIKpOtsAQoqlPUdKWMYvA8ZXxNP+X+lvG0BYikSEWModIUBMZvcUKWr/lwFhhtVHRLsqlmaRMGuoVigKKSh3iOeAIp0a1RJRIY5yV+nxDROaAMqJ8wan9UzUyAmkJfjkLpe4g3h3O45Qo7v/PWxdzAWD49ktOGwxOC+8g0c1IIhFwXY9grd5O/VpW8hiUQPiqdYNo0ZawaWJ3YSDW/iL9Bzj793YhNqki5u5bvM6rD9+FudVejJ5+NSnlT8TiKiyepUqZqJGBSJ9ItrSgLqaBBpsQcp1KaSTMTid9+Ll6Vl8SiMXHrsbBxMx7B4+jwk5cH0V4rLPbRuw5qdhnNN8ZYm/MYqsTKGEI48JSfR1Ysix/121fk3O4Nved3GAr5Ao6k5V4c6wiJYrYHj3YTzADcQNS5IVkjc5qwrKjkYQk6vSL88PTJzgK2QMVqn3FO91tXCgBk5ftwj3ibiYIEmyqrke6Wqi5ukH8Sbv9fwgumqTiD3Zhj1jU/iZQKA5hTsGv8DeU+O4IHESNU7XQxjgf/o/xpZfzgbUzJHMC4ssKhbx7DL5gY1NI0MyI1dMlGS5vP4R+na140Wue20Ie2iiMTVyXvwbi7IPtU2VS6BWKQBqp3QtEkQTuNBKuf/gj78wLXU00UVTPpLtlVxWJSXAhctYlIPSTskYJloGYkMjqmX77TcgdbVlANPjyvUpJGqSSEkzU/youTSHbN0quIqufmae+GfB1vTXNiD5VBt6iNLPKaBlux/GIaLy8a9PBj5izPLSWWUQc4WzBo462I2jFFU3rqQSGr+EH3f2o4/Htre60FsVx6b2XmwW23dBc9ZimLPyMJ2olGODo+WkVeknQ+OEVnm6RRxl63KpWtOAxrok0hTc+nmHZw6hh/wkS07rvrIdL6k6xqMm0bOxGVW0o3rOTeIb0mXXpXHfwU/QOfQ9TortW5FFlhQtf05igWRaWub3UcyIbZzRdDLTehOXMZ/J4bl9HXiVt+87io7PjmN0JTWrnso92/CmpltSff1wClOynUCMaZXZsjrGLlNjeuvTiBENtXL1rS2ooWCVXV0NV+o2taB6ajYwucc4IKKnsRZJ2X5XK+qPnQh2jF+iojP6SEz4SeLLXnwQd3ETrsFFVA3f04M2xT8yphCvVlmyXii4UTh2BNfkoizuKmWAp1Zn0iJqiWjLqkxYJn7rWjQ01WP1/m14n7+4ox/bRqeQoWSYGNiBN7hu5wA6KAHOBgMzyqQsCGqxA9txRCTK+z/8Lkh6qiVyQgp6GeBrNWYQB34dwSTJ3N6tGLYsuMd+wxmuH5kAy+ZxJkK6r04EuiXOenocXqGI09THIRAjyuQFpYi+4i/SIsxQr8pS0REWckSbnldM5xWd5ryQnLjLYlpStawwUmtKpmxLOVikBBBfO6foYAqaFHUfCQOin0tUIDAA8UucdTzNSYva+EuA6Ccz3Wcs7Qgadgg3AfI00emEXWKwonLuYErdEgbEr+AA7peIsEZq9JM603xmxd9ArvazBMp9Qvg/PtT8I8AASnUf5diQqE4AAAAASUVORK5CYII=',
Fm =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAArCAYAAABhLkbTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2REU0QUYzMUYyNzkxMUVGQTVGQUVFMEE0NjYyOUE1QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2REU0QUYzMkYyNzkxMUVGQTVGQUVFMEE0NjYyOUE1QyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZERTRBRjJGRjI3OTExRUZBNUZBRUUwQTQ2NjI5QTVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZERTRBRjMwRjI3OTExRUZBNUZBRUUwQTQ2NjI5QTVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+mRmuzQAAAtVJREFUeNrsnDtvE0EUhXdm9uG111YcxwSE0wCCioICGkKDKOj5EbT8CXo6/gYSHQUddZCQIISAiJBsOcQPMH57d7hD7sASucuStcQ58tE6493mfjlzx/aOxZUHz50lEmxJVilLHodOL01OyDF5wUfzt3aXnGxB+PVaudrYrGz7nryqpKgL4fioZXYSblhRwVqj1e4+3Nv78JmGZgbQSSgGhkcOr187fycqevekEAHK9291cHDwmg63yO9MYtwTCTFJiAjI/UrJ30a5zlQlDsRMpnqIGShd2qrdJCC3UaMzV0g2IREyNW2FNFXVNqrhXTTzXOTzbPV7NWVSEjUuVG94riyjPrlIpaHYXlIphd5l1CZ/WShmhVWmZe8aSrJaUCIhsfxdJSimpwRaL30zCeUARdg3jVpj1bVKUISDz7VWCgq0wlCQEiQFAhRAgQAFUCBAARQIUCBAARQIUAAFAhRAgQDlf5Y4/n5RAsrKECEYQrrmmCSJ5aABJVcmSjnSDZLECebzhblHYsxQNKDkhMSRXiCUH3W7fXOv3Zx8hKTkCIRmLV+qQkVIv9xsteo0+JbBxICSExDhFdeEG64fdfr1Xq8f0QvPyBPneEcXbr47GxZScQ8p0KMsVFgdjmYbu7vvtzglL8gjhuL8BYUuKEqvgC10WfcPoVxKSEFIr0S9pNQ+7Jzb3/94MY7jLp3wmNzlRh+noZgNkDOCuC6DqIZCZiutHTWeTMNer1Ntt79WB4NBkYZ3yU/Ie+Q+T1+JhZJwkxnt7Lx5ScdH5C2UMns2nIYv5FdkU+tP5Db5BzPQaShT8jdyk/yUvEk2DUihlqeW/acfciIOuc5Nft7n+if2ApfnsRGvkyWfVCEXsDrLJB2aG/gkBcZ6yOOxTcnJpPSZaM853q/ya1Mk6ppJUmxapjyFjfn5gl/T6QtcHpjbZk/+7vzZtwJll5b0r0sky2BY/RRgAPdhujr4TJA6AAAAAElFTkSuQmCC',
Lm =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1QkVDRkI2QkZFMUYxMUVGOUQ4MkQ5NzRERjJFQUNFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1QkVDRkI2Q0ZFMUYxMUVGOUQ4MkQ5NzRERjJFQUNFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjVCRUNGQjY5RkUxRjExRUY5RDgyRDk3NERGMkVBQ0VDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjVCRUNGQjZBRkUxRjExRUY5RDgyRDk3NERGMkVBQ0VDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++Qt7aAAAAQhJREFUeNpi/P//PwMtAeOoBQNuARMOcW4kthgQvwHiAmr64BMQLwLifiC+A8SfgdgUiBWBuA6kD039YyAOI8UHTUCcDTX8ARALAvFNIOYEYiEoHxnz4/QCyAc4cCYQb8MjTxQmNpKtgPgbEF+gViRnQ70OAplAfBRqCQgIYAkiTlKD6A8QvwXiuv8Q0AUVj/mPHTwhNYhEgfg5EDMDcQ0Qt0LFlYDYGUsqAiXjdaRmNFD6Nwbi7RTlNCJTwzIgjqNmKjoDzWRLgfgsEBsBsTsQPwHiaCxB9AKIJ5Hig+3QyHsNpfWh4pE4Ivk2Lh/g895iIP4GxKpY5BjRMMUZbbTCGbUANwAIMAD0z8lbj1vA2AAAAABJRU5ErkJggg==',
xm =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAAAjCAYAAAA+NeykAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NzI5RTBDRDAwODAxMUYwQjdCRTk3OTNBOEFBNTA4OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NzI5RTBDRTAwODAxMUYwQjdCRTk3OTNBOEFBNTA4OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc3MjlFMENCMDA4MDExRjBCN0JFOTc5M0E4QUE1MDg4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc3MjlFMENDMDA4MDExRjBCN0JFOTc5M0E4QUE1MDg4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TvdLDwAAB/JJREFUeNrUmt1uG0UU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',
Vm =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAAAjCAYAAAA+NeykAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1N0QyQjlFOTAwODAxMUYwOURDNkVBMDdCMjExMjZDNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1N0QyQjlFQTAwODAxMUYwOURDNkVBMDdCMjExMjZDNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU3RDJCOUU3MDA4MDExRjA5REM2RUEwN0IyMTEyNkM2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3RDJCOUU4MDA4MDExRjA5REM2RUEwN0IyMTEyNkM2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aI/hEQAACPNJREFUeNrUmttuJEkR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',
Qm = '/low_altitude_interface/assets/tool-dtqh-h-ChMQvbbm.png',
Xm = '/low_altitude_interface/assets/tool-dtqh-k0d8YJPn.png',
Pm = '/low_altitude_interface/assets/tool-fcky-h-g2pPx-nX.png',
Hm = '/low_altitude_interface/assets/tool-fcky-DoR3VSKp.png',
Km = '/low_altitude_interface/assets/tool-hxhs-h-D0SoT_bl.png',
qm = '/low_altitude_interface/assets/tool-hxhs-BTLFAKSM.png',
_m = '/low_altitude_interface/assets/tool-kyhs-h-COekEC6l.png',
$m = '/low_altitude_interface/assets/tool-kyhs-DTj2leqD.png',
ey = '/low_altitude_interface/assets/tool-kysg-h-DuVHg_gi.png',
ty = '/low_altitude_interface/assets/tool-kysg-C223R-4D.png',
ny = '/low_altitude_interface/assets/tool-kytc-h-Dq9LwJ2G.png',
iy = '/low_altitude_interface/assets/tool-kytc-CdEh1eO-.png',
sy = '/low_altitude_interface/assets/tool-qjchs-h-CEfchBME.png',
oy = '/low_altitude_interface/assets/tool-qjchs-D0-7IAV_.png',
ay = '/low_altitude_interface/assets/tool-qjll-h-NqfESu16.png',
ry = '/low_altitude_interface/assets/tool-qjll-D9b7AnW2.png',
ly = '/low_altitude_interface/assets/tool-sgzy-h-t_jjxgVM.png',
cy = '/low_altitude_interface/assets/tool-sgzy-BjwAxV2S.png',
uy = '/low_altitude_interface/assets/tool-tsjs-h-CO9Cq-mF.png',
dy = '/low_altitude_interface/assets/tool-tsjs-hA57rgjS.png',
py =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRTI3OUFBQ0YyQTExMUVGQjQ4Nzg0QkFBQjNBNTM1OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRTI3OUFBREYyQTExMUVGQjQ4Nzg0QkFBQjNBNTM1OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNFMjc5QUFBRjJBMTExRUZCNDg3ODRCQUFCM0E1MzU5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNFMjc5QUFCRjJBMTExRUZCNDg3ODRCQUFCM0E1MzU5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+JMEDJQAAAqNJREFUeNrUVl1IVFEQ3isLifsjPZS2xi61KVRGIEEZ/UBEyW5GIVJQkPjgU1AEvgS+FPSQRBBBEFEKsS+FVFtKYAlWJD0URZaRi7jl5l+pe3WDrt7Td2TWZu/Pbkg+dOFj5nwzZ845c84MVxFCOJbyy3Ms8efMZkzNjLZC5Be4Vh6xsYcgbgIFBpOKOSVSUexSNDOdaIE4QcN3QJ3L7XvD7DUQd+02B1/FdoHpZDwKccBi3im3138FdmmLZjm8Cj+vaQF1KrYM4imwPcvkl0BljtSrnsKgN+MOpib6iiC6gPU5Jlcu6pKF/kvubM0/ejyKaQFd16yCq4BnEQu4rU5gDDYCbKSUXQPKLQJdBboBeXergAkgCcyaTyC0jFcq07WieNdPyOfAprHh7pOQ54DlFKAK9ifSGTYn9FnS86DrC7lKv6KRROckRCHx8sK/A1uA10CwyLe3j/yaINow7oV+GfppoAPjEMa3ZL0Acxg7jSlKB99cvDo0Ovy1XaZoG6XoLca3ZTDYzksnjHsgttKcCMUIGy954QSJ+D2pHPP5D0Wgf4JeBl2B3gj9oqF/rQX6GSc3lwLSeVYx15vR7ITQDsrgQ4N3HkAvA5qJ3wc4CAPwwZ60KsZ9A5eEPMw4cx2UBGqjXwYisv9UE9VGz3cH2+kN4uoZ94y4UNZCi8daLrHmJvzBuh5wsiPmM/9WynUF4x4StztXJZ9h/EfijjJuMlDaMDT4+XrYEOMROMWuC/y5A11LAQ5CJ3F7GPeYuOOMG8eiPyDDjJuHVaHNsYXvE7fTmB5w+xn3grjqv2h2Gm8TXbEPzQHeOoIbGjvAlVIlp792mltjiOuxWiBBht515WdF//sLYWp28ntFPrWMmz8p/GQfchl41VRo/+1fxW8BBgBiW3D/dN2sHwAAAABJRU5ErkJggg==',
Ay =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2QTVEQUJGQkYyQTExMUVGOUVGN0YyNzFFQzZDMjRCNSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2QTVEQUJGQ0YyQTExMUVGOUVGN0YyNzFFQzZDMjRCNSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZBNURBQkY5RjJBMTExRUY5RUY3RjI3MUVDNkMyNEI1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZBNURBQkZBRjJBMTExRUY5RUY3RjI3MUVDNkMyNEI1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+m34f8gAAAp5JREFUeNrUVl1IFFEUnpEFRdOISEtBqSUpsoIQaiMLJFJ2MwyTgiKXHnqKiMDHXhJ6SKKXIAipFWJfWkTTFMEf0MJ9CKOHyECLVhxzyzJHN2jGvX03ztZxZneGIh+68PGd8517z505Z+7dVYUQylqOLGWNh8cpGJ9PtINyCjfmns4Q94PuA7mWkI41JY4baPHlEOg82TtAweLCvBcs3gCKZFie71iimLbUbZqiCVAIe4Bx6Jcpfhx+hMWt0FO5VN7kqZieDRoCDjpUbgzwuZRe95bmF6wq0cTbr0WgYWCny2LfXzX5uynkk239Rx+PatvAMJPpkuu8YX8w1tnfwBDWZHPALirZXaAiTaI7wAgge7cF+AIsAqb9DYwkX7gsy3W4ctM38FNg98jzj5fA14ENlKAW8UE5GTEPbJPsLNhJ21c0MDa3AFpPumz4PFAJjAPeo76iCZp3DdQB/xXs27CvAH3w/fAfyPMCrMD3WJucSr7XX7U53jv6QZboAJXoJfyHMhliLXIS/ChoP60JU46Atcm/3qBzSJPG2frq4jDsN7DLYauwm2HftNxf24BJpsmHS8hKpz4OrC1YdZINQ5yQyR/1zzyGXQ60kn4MUAjvMEeAa5k2C20RfJJp9nPQWFPSHe6ZlvdPHUkd1PxD7EnbSLvAtFHS/I4HLdQZuwVqIlcE60uj0OSNmMPmt1Ot9zGth7Qjbif5KtNfk3aGaQsXT5XN3Iu8D1hyPIGmZroFfvfAFAlAIQyQVs20ftLOMe0TNv0MDjDtJ9JdFSts4y7SqqzlgVbDtGek1bledtiVXxPDraGpMn51NAe9fdC200lOjV5a2+D6g4NJGqADUSQT9No6YZDmNDJNoutG22Q2OM+ia2l/cP7LfxU/BBgAAp3E9kXmPqgAAAAASUVORK5CYII=',
gy =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5ODcyRUU3RUYyQTExMUVGODQyMjg3N0I4OTEyNjZBRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5ODcyRUU3RkYyQTExMUVGODQyMjg3N0I4OTEyNjZBRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk4NzJFRTdDRjJBMTExRUY4NDIyODc3Qjg5MTI2NkFGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk4NzJFRTdERjJBMTExRUY4NDIyODc3Qjg5MTI2NkFGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Sa6bOQAAAvFJREFUeNq0ll9I01EUx7dMa5tambPNNRc6IUlCiKSMwqK/lA9BQWAPCWFpUEYRQk2ChvggRtQyfMiH6KWHiqxgGpb9j9hDZaGuDffHOadZaW7l5n59T92t37bftGRd+HDO795z77n3nnPPJuY4TvQ/21z+h887kgKxEawDK4EayIEMJIMA8IJR4AQ94A14KpFmWoQciEMn8E64T0HUAOUsN9sBdFKZ4lWMg4lxpwF6dYJuZassbWlHhINvY7Yg6QlycC81XbMrIgbBoN8HIU2Qg0BMkDnOPy+BiTMV6yDo10HUJ2DxMaAXzKLRYdN2ygJQMouFXeAOOJchX+WKcfDJ83LD4qw1j6kDOuX+FlAEVCCTxYf/Dr4AM6A5LzDXE8/zLwfD7id0jLeUqnLF+mf/snXMpXcjxjxXXAceV+dX6Omsrxs8Aq+BldZgu56flb2Jdk32+yDqQAFvrRFwFjYGoSxK4vUVMqLbAbqWoQFjK9NDr7cPaADl/iWMly5RbdsbcYJBRxv/BELtu1JdJoHdcehNwE0Los8UMsAYxe4+29wVjFVR/5zfJwhsBj4gisNpZtfEvlfzF6eGbwf6S4AXHHbZby0LO8BL7gMqoANWIIrirrP/RgHTr2Xn7HYKHRP94xhvZnZ7+A+NAmlQ55bTFegd1utpkGtZEOnoA+AQW6dzuqzCWs8hTgAtL8iTlKY1dktrOeR50JKTV9EO2R6aiDE5UzOmdcBNpjLVyz/BD4gU9uNCJaPeZm4ZhBxij6oMNINaUMUCHe8ER5hq/BPkYCAZiKJQgiJQCuo0+ZV2SBPQ9vdebhRaHP0nMV4M3sHeGE5Ta8+FCuhXZ3i0EuDnleM2cBHYKL6Arvcgrzbtz11+7GG42Fk+NFKROwqo6C0QcOBjQV8EbrPHFd0+s/FQ2yGO/lfx8X3DQohi9qMfKnbkMA90aVfUVsOGXn4l2AkUVD3AAxYn2uDNmHL9t83crU/KLzwzNYMNXXkD6P0pwAArdo8TOH0gvAAAAABJRU5ErkJggg==',
fy =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4N0I1MkE3RUYyQTExMUVGQTQwRkQ0ODlFRDkyQTU0QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4N0I1MkE3RkYyQTExMUVGQTQwRkQ0ODlFRDkyQTU0QSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg3QjUyQTdDRjJBMTExRUZBNDBGRDQ4OUVEOTJBNTRBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjg3QjUyQTdERjJBMTExRUZBNDBGRDQ4OUVEOTJBNTRBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vRiR6QAAAu1JREFUeNq0lm1Ik1EUx7dMa9qbtpXTzCj7YIQIkpVSWdgbKRQYBPohKSwN0ihCqEnQED+IEbWMQUlUEBElKeFULCsriX3IIkpTUtd8TXuhrdozn/5nnM3H7ZmWrAs/znnu27nnnnvOphRFUfE/20zpx/CoPQRiM0gFCSAGaEAYCAYCsIERYAHvwCvwVB2u6pQzoHR70D9sOwlRBLTTPGwD0EWqQ1t9DFj6fxigFwToVrYtiQxrmHBFTqeYH8BrL2Rvxg04nGN2iNAAGRB8guwQxFkB9MApZ0AHURqAzb8BvewrMr8d2UGvAKRMY2MruA/OJq2KsPoYeNH2eeO6hIWPqQM6vf2tIBFEAzXHR5oHX0AHoDXPsXbQn2WXgSfmIXKjjZ7qhiRNy78cHWspb5RYZ/VroKl18Cv0edz3BjwCL0EXGOJTz96ydhGdmubvgygB8dJCAM5gjkEuyEGSvtWMd9tP12JqGahi3Z297SAWZICLGE/bnrp47wQPapr7pB7ItZ+Zm7QqzDsGvYIqC22IPrN7AsYodg/4cJcx5kreGa7McIjpwA4UfjjF8yr4e410c2r47kV/CrCBw/carcs8BhzCWDuIBjrQBRRe1N6us8Szfn1PepRFzk30f8d4Jc/LksaAAmnIzoihK9DfrO2dC7meg0iufwKHeJ+myV4V9noGcRzEeQz8FlzZVlRV3ZMNeQ4Yc3cvrYesdy/EmIbViMkMYK85rNqkHvyCCOEfFyoZpcY73X2QA5xUmaASFIN8DrQ/D46wahoPsiAGA4UXWpAI0kBJXlZsD6QZxF269bFcbnP0n8B4MniN+SbPMz1/oysX+tUpklZFB5SU4xpwAXSDKEDXe1BSm3IKc5Y/9BS78mudVOSOAip682UM2Dno4aCak8u7jfK4u+1Uev+rKLvyYQFEMv/ou4sdGVwBmosPxBVgDmV+HtgFIgEVu0aOEx3wrk+5/tumN3YEnc5b6ZxiDl15GXj/R4ABAFF4ijehs+LkAAAAAElFTkSuQmCC',
by =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAYCAYAAAACqyaBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQUE4NDM1RkYyNzYxMUVGQjAwMThDQUEwRTZDMDI2MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQUE4NDM2MEYyNzYxMUVGQjAwMThDQUEwRTZDMDI2MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZBQTg0MzVERjI3NjExRUZCMDAxOENBQTBFNkMwMjYzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZBQTg0MzVFRjI3NjExRUZCMDAxOENBQTBFNkMwMjYzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7rq8cgAAA5lJREFUeNqUVs1rU0EQ33l5JtpWU2MrYlW8FPQm9GRv/gGe/A+8iPQuilBzU1I8KCLoRfGkJ714EK9G0BxbFAVBqG3tJ0lMm7Rp3/rbfbv7dvflpbphMrsz82b2Y+a3S0+f10LGWB5E+HEmWvwfN5Lj5F837ugTrmVMeuPGazyy204YBLSLTgDlsDJlhjPnczcUGc6MW3KmwMxkba/xJBoY74a5nLTYAdVBY6ADwpzDBamPebIfROSsnSy9tEefEyV7ZOvUN4ugjpCLlWuPYgK/QOdBg97m92u0j63WR5zzb+AtrcDKAxkcCsG7kH0BTYBGICPHC5ETROjVt3GH2V3bjHch+wzesHVhGAbeATGRAzXQRcjGM1IrdahpmbFtg72Lj9WZlApuu4z7EXhV+Zo0Gm6llOJmZtRzy0VivVH5lJq63PY+rapy4YqsiKR8/iUJlsFeot/kGQkSLq+00it3N7l28sThDs5qCmdWsM5f5omXE8Rj4U90nywsNlv9JhqaYDzjCCFf/P1n9vRYcQaKO4hZ4qqu42C6r81pDn+V+YVGO1UH3liUWg68YICD9zBEf2GpuXR8dLBcyIf3EOiM1gRBXNtq/Kleb1darR3IaUBKAwvt3BwFwuVoT2V4EepAKl3cMm1tbWtzaCh/u3jk4F04v6C3XWBFFPH3K6utSrcb5THO94Bbe3djhAsEHGEW8NOggJ0SCKfQTTI7D4Ss3e4yBCiPHBuYRpBLQry3F71eWd18iMkMYjHk1aSCEIN+EuG8OpdZPQ86BxpiCWKkklnI19a3HpSOHtrGuLu+sfUMEylayeKcrooudvi7g3AWvDKFRF/BJ8BHvfxnCvFMstUbnVfCMXyUlA+vkk3bVsDVSIOMi044f1IIx8bdvPd3lPFMeEkaEI59MECTFVzfZOAReFXJJol6r8m/wbIQDnZ18pJO3mr/iXCpJO5RxlosEQ7UNHYqsB6HuYAyL0iFYjXIOpBNYVzQ5WXdhA5XTSKcTC6xysh6XyCeHqdWrrbdz4NZsBlMoAynw0npkId00nYOVEG3bZYVkOszJ8vbT7i+7QfoBug+6GzGCXwElVV279tkqTnYnH4+2W0Juuvgj6GbUN+pRwR7i/5N8N2eNx2ln1X6Dcf828o+Q+88RQZfBT0CXVYrfgGbW7CJ+t16qZXLMzfpnwSTCwrsiTgT3Ib8Grob6ItqmGbJ59Yrk7zS5Dagsb8CDABI/cmg52Q33gAAAABJRU5ErkJggg==',
hy =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAZCAYAAAC/zUevAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQzBBQjY0MUYyNzcxMUVGODdDN0Q0RDFCNDE2QjNENCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQzBBQjY0MkYyNzcxMUVGODdDN0Q0RDFCNDE2QjNENCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBDMEFCNjNGRjI3NzExRUY4N0M3RDREMUI0MTZCM0Q0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBDMEFCNjQwRjI3NzExRUY4N0M3RDREMUI0MTZCM0Q0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A8lNIgAAA/xJREFUeNqkVktrVTEQTu6j7b32qVX6wAq+qKAoFutGsaj1B7jQpYIbXakL0RaKglRcqIg77aprf4I7N278D4K46+3t+33uGb8kc3Imp+dW0RyGzEySySQz853or99+qP9oBdAb0BZo4l+NlOKYAoXWWimjMh2RlZPeNMPzvDZ0M5Bv8poqKXoMXZy3Jrve74fPO5EsdB7IRnYiaZIGuqGfRX8RtML2b4HKoIdxHO8Ye+hz7YYOkSo1GsZLeULDp73TpQagG8TYDNij4BeTcV5zDeIH8I8wc0uOZQ+2Zzj+0E6C3rqbUHUXNG814c+B3oGegNb/KieiRmxXp6fO8LwF+PPQP2PdPDoNmXwaOV7xTQ+BXkL3woQrzDl/o+ImGiSTzSVkTCKWtl0C3TUng35NzuHY2rRxzmonK7Uf9NRUD3SLdpBUYDdZ72/CHZgHBY82DroO3YIzQzoNajbTQxtoLZDuY9tP5MKXWeN4JGbsr0eL1YwBNzDvNPqaEgkrklResa9oa4UCW7dBn60d4gTSaSaVoijOyxVTaldAfXZh8xZutVuWzdzolzx71gktjofjtKK7AF0r+DkZd+1q1Z8BQ7qrs+0e+O3Fpc3ZTGRCb901jYD9DpoPnDDhEE5UQMOgBpbV3WaUhlvEs1gstPR0VyYKRT1m1N1dbaq+sPEem8XCURXyNp+OGVQFLSTOMU7YdKpgxqCpAOjXZazlyYxQrZQ7sOk0nD8LxaoZL5UKV3sPVKO52to0DhYRrxIVaevH3B7kXiga4Jf5JqyTrRjqQL+aKZTwTGg9PZV+OPEaDhzBKRZlqaEbPdi770ltfn1qazvaVnEAZipjsQraAW2YmyhBXbQnSs/sqj6Zzvq+Q+0nyuXiK0jtWFdLgI1xIQGrYdzI1PLK1uTS8ub6nqnqKrBciokieBztSqkMmg8d7rKIaWKOvmYDrMVUxi78s4w40NHeMgl6/vPX0oqKm9hmuTTY3+kQTNStIpX5s6rLCNsd8GuMmiRPnw0ah8ci5kBfh0PMJr9zo7OI2aw5xLH1PY7o1NOdSDWvgGC8BfQA8kcIdVKUCzUeMcOatrEtsANnMG+OVICWaaSzCJg8QMKWImbuX7Q5Yo7lIObeabZ3a46YXKLyCWaQctQgJiNbiBNuHvm/p01QThL+g3LP1eLuiOeOQMxHTHHQCiafAhNhci0/3nk54WQDls5BSpwVL5LEFh2XiOmdYHRLEHMV8po7G/9YU1MJ4iWPGJ15qGCcNAV1q7wd8bDpJfNroCxiKtXJr6Cck+/SaU5AJSAtlFSG88Xm7VSh2YHEiAlnoFgRlbn7tZIDMn5L8q93kgib865NkVjZoBiu/FuAAQCifEm49tLj9QAAAABJRU5ErkJggg==',
vy = '/low_altitude_interface/assets/bg-footer-deco-left-B-baEonq.png',
my = '/low_altitude_interface/assets/bg-footer-deco-right-DYuUvCDA.png',
yy = '/low_altitude_interface/assets/bg-footer-deco-mRGOjjVn.png',
wy = '/low_altitude_interface/assets/bg-footer-B5yEudHl.png',
Ry = '/low_altitude_interface/assets/bg-footer_large-Cfs0YNZ5.png',
Iy = '/low_altitude_interface/assets/bg-header-D4zkbBcb.png',
Ey = '/low_altitude_interface/assets/bg-header_large-a9_B8Rfz.png',
My = '/low_altitude_interface/assets/bg-home-BUOUZhFJ.jpg',
Dy = '/low_altitude_interface/assets/bg-login-form-BFD6qJ36.png',
Zy = '/low_altitude_interface/assets/bg-login-8YzRAXMa.jpg',
Sy = '/low_altitude_interface/assets/bg-masking-C_XrNjNJ.png',
Ny = '/low_altitude_interface/assets/bg-text-line-BeXdSvvQ.png',
jy =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAAAlCAIAAAAlTet5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjYzQjU5RUMwRTAxMUVGQTI2RjhEOTQ4ODVBODExNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjYzQjU5RkMwRTAxMUVGQTI2RjhEOTQ4ODVBODExNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2NjNCNTlDQzBFMDExRUZBMjZGOEQ5NDg4NUE4MTE3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2NjNCNTlEQzBFMDExRUZBMjZGOEQ5NDg4NUE4MTE3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+l4NLmwAAA7JJREFUeNrsmk2S1DAMhSU7ncwhYMOCJReguBon4iSchTUMnbbFe5KdpKkpqOpZgZNKuZTEnZp88yT/SPru601MeGyt2X55NPzQ1u3QR0WqG9V4B5fFW38V+9feufoPYRTDc7QST6so2uJ39svekze9G+waffqvrL/h+HLr99vn9M+4/5D2p770jfcfvLXaDD9NFe2EX377/OXw0mp1FZ7AWnhpVUY9VJPwzJImSRdNF172482HTxP/mRu68lPKVerVyip26wTtj/+d/5meS8zZ6aT5YmmWPGte2vOEux2f3Z6lPLOtILg2gg3fmAKE7hxfsKsXSataMUSk6SmeT4w4TXdg911uP63Cpv/Si+G5VmRc7wW7BJ8luwznZdxlVFelBqE+j9AVPkvdgV35QRs0PQLa8PgQ/gwhD4HPFsvODtjo0fBlmfRmPlZ4yKPurk4Q0rsy9jH81WFjn5AdRteiVrvuktYsFXqcu/oi0gEiqNGL0T7H4GsN37CxLymjP+LdUXfEpXmVDHw3c4ndGsEaulspQ8a+0kePEactcF5z6UnoDrOWGuzcLzOcdzUCCoLbjK92e+Cpn0/6YgYfNoYRDqfap3Tm6qtteN1INZ910Q4c+4iCwy6sBA5wW+MAsrOi8+rVfHg1P/uD1qkbww4dvgy7Z1KClQU+xr59RSq7HT1i0Tho7HMJYtBoC4cNQrNtgjjXcZe0rz2AT1Y7OTx4ZKjvduJ7dGyh+k58r3PeM/adzns676m+AWNfOfG9xnnPkePhgwvieqrvNc57qu9h51UArFuuOx3WykwycZufuwa6p5OH2zNQ3+kLOBuFbnPHxbgX6AnNSMpl2XLD3CwMpuPmOjqKzcgOyrEmx3d4kDyxNHk2swCfbxaOvNvcyCirDCa9g5g8z0v59UQ6k2+X2BT03BI3Wt0eN9fh7C5epLHVabhNaF7jshch1EhoNrlRiWembQc3SyR8cyOIiDd5t0tjlz0Z3BOaniTOg+d5Q3dkBzh5QdsIUoauPvfZmQUcqRwS6YmJpfDlYQ+vMuiiW1gflBYhq1kbPvGhAw+s7Il0iK5GUu6scUke+6LGZZFpYX1Qnn0MCedlt4WFQ6G72hPpZ4XVocLKNTg7u6dWo5Zk2kFPTywcUi/g2BLpY9f3yX19n/xW3ycHfKFBFg7VmQUcZ3Xp36pLG7637z/+2yurO/uFCmRfhSrXWknNW6y3cFrmwgsLV5uiZcUZDb+5G5j74lH2mSBmIvFzf+0vAQYA9Nag3aL92YEAAAAASUVORK5CYII=',
Gy =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNzdEMTQ3RUMwREUxMUVGQjYwMjk0RUYyM0NEREU0NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNzdEMTQ3RkMwREUxMUVGQjYwMjk0RUYyM0NEREU0NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE3N0QxNDdDQzBERTExRUZCNjAyOTRFRjIzQ0RERTQ1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE3N0QxNDdEQzBERTExRUZCNjAyOTRFRjIzQ0RERTQ1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+kYAhVgAAAeNJREFUeNrslssrhFEYxmckhYWNUVgoRW5RlBIlhZKFOxuUsrPwH4iF7KSULGZFyTAKJQlFIaaE3GLBQjZCTYSVz+/UOzV9jbk0cxppTv16Ot/lPE/fubyf1TAMSzRbnCXKLeoB4kN9odFpWJE2aIdseIMDmF5rtz6GOp41lDWAeSrihGoftz+hjxAOLQEwV9O1C1VyaRn2QYXqgQz4hnpCbOuYgm4xVyadmCx5hRtD1qECJqFAxyLsEp3zNleNvhvpl24+gYp1BMgR3fB1kxBXyIN083QESBB99/PMq2hS7CD6lwG+RFP8PJMm6tYR4Fy06ZeDqgxJl+6ljgAzoi2YDZjMM5FZ6R6yJW911YIFpEO6LtgDG7RCstSDSgKcRDSAVMAiaIBRP0e4+vR22IEzghhhBcC4XApNm9f8BtvUqbgIDoK4QgqAsfqkQ1BiunUvn/0I7uBZipOqiLlQCjWQZXrvAobNNcRnAMybpNR62inMq2sMcBPkWlHT1Qi9psrYzBgrgQJsIrVS6wd54Ticg0amcVwtTthivLpA29Amag/XXKqkSxam99ixWvC3f8s9PxxTLKCJCPl4fmZeggkwAquQKESqfcgpGtRBpFZrYQTNlck1O+IprGIU2wU62o8AAwAw0abQB4JjSQAAAABJRU5ErkJggg==',
ky =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5MEZBMkQ0RUYyNzcxMUVGQTc3NUQwQUI0NUY2QTcxQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5MEZBMkQ0RkYyNzcxMUVGQTc3NUQwQUI0NUY2QTcxQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjkwRkEyRDRDRjI3NzExRUZBNzc1RDBBQjQ1RjZBNzFCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjkwRkEyRDRERjI3NzExRUZBNzc1RDBBQjQ1RjZBNzFCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vCdAlQAABR1JREFUeNrMWE9oHFUYf9+bN7OZ2WQ3arO1TZAmIdZEhdhCQlCMUkRthGBKL72ICPXgwerBP4iXqBfx4qWtIoJQtVU8aD14EkRCJUg8pRWRqljdHBKxaXY3O/Pe93yzedO+jjO7s5seOvDtm3n77Xu/932/788OSCnJzXSx8OO195e2swbEnjs+4VtH920B6nBzaKIjOwXIOgADKffm5rJTUO1aiGoA0QhHHyvtK3jWmwGXn7371cpHag41AOwEFGvDMlSLZY4WlQeFwIeV0oh6Pq2BiNiIWUHRNsGEB7CV5JR0KfGEkKMBR6IEdt9q36Lnc1qPGdZsxru2LQTaIqG+E8qhqeJsr2c9C1KOB0Hj4P0z+wsL61Vx/MzCvx+qZz/GJ3kjLEQMzjQA9bjUe2q6+E2xC05IRAVGkEgEF7vyDnnj6Yd6f50ccYe1lSyTc62sxDJYxrSQ7TBwOZeDdcRfaoFctij0eQ48wFGWK5vyO3U/ajMYsykpKf0/lHDNJchioawusyJAa1cE+XhhfVrd50MOPTHuzdsABCXpObtUCaOspqSiZENbKNCgaBa30Yz8iVxmaw41CD0x5MzaVE7WfQw4x+4DY7mX1LybQGwri7uyusyMMDY1ZB/6bVUsr6xjffGi/72a+1FvGIb2ZgiEAgkmB+1Hz10MThkcoloHmqUAliErU1MowXv2lujhgV5YFmp5FfEiAmQpbWYR5trQD0SGrvsk9ntoxSWWIbpMUFb5Mn7d7ZAVRZsdqlFo5CQ1UvUsFY+4ygBBwMn5qk9+UnOW+s6KgcJmoFiLMLeMZGjfXcK5vE2e+3kVjq3Xwdd8yRku8zWpqxP9+N59t5PppTJ9Va/Bjawt00DRJqFuErkhygR3qYy8a6eHBw0eRCUiKhOkz8M9Su8OVVLGjEAwCU7TSE5bWKgBpODgbSO9wSsExawfILFBPLmnhx9W5LVipyYD3fzAjhx/PdRTkXfn3t7gnZIrhjSoOKD/lRPWwjpswK0/6Fp4OjR4cE23YBNxZDgfHPl703m+wq3V8EfD3bWTaizwa4rhgWaKFpnxPJj/vdp13LBmIsFZk0TYCPNNTrgU8qwv6Tkb5P0McEbdf8klvWQD3qsiLeQND1et+GRRSPhLEPgnT/kLSOBCTVgfdFExxSWsaYBcry+SEiVLcddVC60GufNqnA8z80668fKWb3BiFd0wK39rmrzsuyfCr/to9UVfNPYarUqnvMZzb4dEjw6pszckdZgtXVbEyjOXaf4LRwa7K5yeUhFeUxFeoFTmQKLjyfrjV6j3eQ9W53ywF+tgX6pxOC8J+0HpMQmiSIDZBazMrdP8pwl56bqIYym98lVLcS72e2TDkwB+ANbaFlBYdUTtESqxJIjsUXRFwVFRpT7rgv+n0itvuQSqIMWISzbGhcRBpXcmIUmSVi67ruWsOIVjupC6Rn0CI7IaUnW6TyZsFPKlHuWm7VT7aKMoIgKjQGISoFjPHQk3qr2ZGDFrpjY3wAQwMgbM1IcEETp71w1g2Ekti6wTnZAac1ZKawoJXWG0hq+FGxk9sTdKshAaC0ULowbGYtERXzROVNPKgQYVmGUmDZCM5QTUgMyFrVijJRP6GkixtDB4xBPcLVtZKP7M2+lpEn6PsSIs0rjEUl4UoDFirPYAyX7FgyT+r7YpoHiPgjEXknb+8CW4VKa4SWaNMhMkaQMIafJ6RqaMLV3Wag7aBJL5O3ajF9zuBTfbK73/BBgAFzlTEArW/Y8AAAAASUVORK5CYII=',
By =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzM2RDJFMEYyNzcxMUVGOEIyRUY5RTAzRDZBOEM0NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzM2RDJFMUYyNzcxMUVGOEIyRUY5RTAzRDZBOEM0NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzMzZEMkRFRjI3NzExRUY4QjJFRjlFMDNENkE4QzQ3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYzMzZEMkRGRjI3NzExRUY4QjJFRjlFMDNENkE4QzQ3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lD3xMQAABZZJREFUeNrMWHtsFEUYv9nHLXe93vVdWtqmFVspYIM00igktBpA0LRSaf+wFW1RpCFRgVhKfCTykAglVf4oRUlDTVOLMVIsiX9IDOK7RKXGtgnUKH2H9HGUe/Tu9maduc7iMO7eC/9gk6/TnZv95jff4/d9u0BRFMO9dAn4T0z+C3ejAzD3UZ/QOXB6HlCUm4Mga5RoAQpRgAE6/9ObK9GCitRCHAGgjqDjWM3K1ETbQad77tPSupY2NAcJABgNKCECy3BEeHq0WkybOB6UxJikXHTfSYD4mRGGC4qLEAw+gIhEQrIAiZkDIB8vgFABBUsy4sm8RNYJlDWDxd2/G+K0D5JlgHKRCsaIpfXw1rLMhXEvG0VhBUQ6FKgYZBmOj9ywN9fu+7gVrfES8SGRibWUYFbCWRYOINU9ATCLUuMs7UdrzosiX4BBYDAqIAghthS+d3dd6C1p6fx2ED3joUApwUBhQFwId9ESAGWLNZlEgc+Z8/iujk/Onp20O7/Diz1eeXx43N7p9vp60XIhzmpOIYfgGbdF7bI7gJC4MGMepcR8pmnb/tQkW5HXJzvW1x6vQHNufFgkDjK6kMwRK/k1si9sC7ExxFMxFAjod155qiw1yVqE3OQTeM5y6lB1PZo3aQQ2r8FZEVuIziwjsY7l5IGqqo7unr5veq55iJVMZENILOE0irzj0K6y4tePfN6O7m8RK3lCBXew0gGYoL4tSfGW5Q3bN1RUblzZ53L7DA6Xx+/3QwRIgZJRNJhNRmFhonURxwHsug7meaBRWsImRsAwc8BtF3++ej4vO2WC57kklPJibAyQ/BByaAsFEaSMFvsmpmb7h8ZmfhMEnpdlP8+AgsFACSFSnaf4R/zoYHV5bnbKzj2HP3vtl74hL3GXRLnMS4La9UVz3cnCZZlrt+5t20d0yBRrK3qguCCpTgdyQOJt5iWSUUh7sWL1JqoUqCVCzSBD6WMF2YinslA5WUolAh3gnF6Qc2GQoVhclJfY1byjIS3ZVoYXLL0/bfMHb1ZWmCSRZ05teGPHE4/Xbnn0LYC0LJDEPESijdWlq+4joAQNXgJ6WcaWiUB6f3igquShZZmd86yMdsWsrBgCrIzHhsazr37/65+TKF4M3S11JwSOswaYGzM4nBd8jd2w79/+dkczyTaVvSGdcXpZBqjYEaZnXfK03dXdOzDyY3ZG4uqs9IQn+wdHz41M2EcWZyY/6PH6cNzIGODIxEzP5LRj9KZjbrp4Ve4ulIEDPb9fP7U8N+0R+6x7ilhcJvo105+10B3WIUEbYGWUVTEX23efQ2XDdsvhHl9Xc3ynToOmtL773O70FNsabJ2m018/+9UPA4OEi5wk6N0UL6lx+B+m1gpo4ZOm2m34ZCVFeek/XfmrvevClcbLfwx1J9jM0uKsZAuKpS1Y6dH68s3r1+Rn4Of/Hp3q//JSX+Oly9fej7OabPj59/Y8XU61I5xeHAk6vfJt7klJsBa2HXnePHPT5b0+Nj2FSdDp9EzWv7RhXVJcTIokibH4hKhRs1VuLCxb+3De8PDEzDj0Qz8qwK4HclJzj+19ZkVyfGwOWndGgyQ1SwdgYkei3UWVCLU+ASYgFabFVTeSiWvcxGUOMrqZghvQEax0qJuo/OKjCiQMExAggNReiCZGGC5T0xtADTAKA4xeDzTET9ibbtJgNLVMtY56Qo6a4zXAawEyUDrUdlZmeiIlHAtBSpGqGBJgdNOu1Y6ygUpb2Uf12H7qTUQTkMK8dUICiFbMM42WovFqA3Qs7afiSNZwtxLKQuy9HElPo/E8ZIqwbisr6HwogNSoKgLhtqFBkoR9qw0KiO1RIONCQyQvfBouVXTcpISbZTRIQwRADEE+zyg6Y0iXhZoDEQIJ+zfh/1Z4txe41z7p/SPAALMUlTpa7HdRAAAAAElFTkSuQmCC',
Yy =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNEFBRTA1OEMwRTAxMUVGQTQ5OEM3NUQ1RDUxREEzNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNEFBRTA1OUMwRTAxMUVGQTQ5OEM3NUQ1RDUxREEzNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA0QUFFMDU2QzBFMDExRUZBNDk4Qzc1RDVENTFEQTM2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA0QUFFMDU3QzBFMDExRUZBNDk4Qzc1RDVENTFEQTM2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+q08ipAAABsZJREFUeNrkV2mIlWUU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',
Uy =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NDAxNDY5OEYyNzcxMUVGQjg1RUREMjM0NzY3NDVBQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NDAxNDY5OUYyNzcxMUVGQjg1RUREMjM0NzY3NDVBQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU0MDE0Njk2RjI3NzExRUZCODVFREQyMzQ3Njc0NUFBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU0MDE0Njk3RjI3NzExRUZCODVFREQyMzQ3Njc0NUFBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5HDgnAAABYpJREFUeNrMWFuMFFUQvY+entfuLOzOzgoqyCoJcQVxFYyRD8NDEbKR+IkJMUb8MCF+gCbin4l//hAjKjE+IsYPH8QfEAQ1ED9IxBc+eEhA3Ud0F5YZd6a3+z7K6km3Xu72zM6YYOik0re7btU9t6puVXVTACDX0sXINXY58eC5PV8n8elVWjfRLS88MfgvoAZAqEE2QEgY0wabAeMOEQ+SgDkNwMTEIqLGnVjKoYm8OVcn3GdYy2mgLAbCI2JbHygNFbJ8G6VkkQb44fKU2vXG4fGjFqi6/JbVxcFiwdnJGR3UmvxWC9SeV/b/+S7ylEEkCRRrAohHgN1H7utZn0/TvUrru6XSJa1hdSHHPn74nrkrkZ826f47Cku6O/gRnLNGSD0XZW5PO/Tlx9YWt4S6kFKRXpZg9SsAUePdP2DCRToz7HlUTgKhyzVffR+OQ+rp5M8gP2vSgqL7bMz3fHXSF3o8HGdSdCfyM5FOJ1pjRmwmWSgGlIqEM1qpfiEU8abl8J6DE4+PXfR3hc+g9VLkdyDlI+rAdytD3vjl4O3XcG61Jk+Fz1KqUgKgGRZqFEOmhbJTnjrlOjRc/NaNgx1PfnS8svehFZ3zOKUh6C4jJvjFivgcY6frw+OVd9Yty29mFO4NBBClYTgCpK1YorMlxti3Tmyln4andwe4SyTalaWPPrg8v/3EOe/Tqi9VXxdfEIHqmpNj13mBcr694B1cuzS3tbeTPYUyLJQ9O+a/FMVZyrIObfeU4QL+Gc/XOxb28E1oqZIQkOrv5Rs7XbJp1eL0kC/hl3DnyFvEKOlYVORFLbVfqcKZQMIfI5Pqkx9HxDeGqxLd1SgPJeaj02PiHNLueIcOI6n1SzPrEEAeNQ+EAlJCeH7ViQvB/smqvhS5RCB5jSzSDiCwyAx4Fw+OU67K83mX3mYKobWGEYwXAa/jtDIzNCodSYDAyKJJRIz4cvFIM8fary/ri7vRYxy0th5op3SYoOKTIKN7DAoTNklx0DcFwQz5+dkUmeMJMmFkY2WRDawtQHUwpRxcX8rrzRg7C3xFR+t5UkAuFAgUGUUBcDkphUAXFugGDWQym4KblSajFz32wdgU/craGLQTQ6ZJdV9O9Zdy+tV6xKoweOnEaJUfxRPkjNfYdzVJK6FQmkN2Xl6tnPTpie6MHkgz6EeA/cWMXsUJ2zY8xT+bzWUtNWgFLp8O0AwhlT04cPay81aXI+/UUrkIphy7ES1X8wVMFxx51/mys+9SjbwXy2Wp2NFWg9bsyAupltUjFOi536fd93tSwRqXyHXY/WIEuYeijdWtmQK5nGnoLrkwMVJL77shI29xKKxA3o1WQaWt5qEZFR9P0yi+mI8r9vbx2nYM5oEAs4sENmIc67qra4L86lLd7RA91OfIxUqSHk3q+ak8W1Js5DJq9ULOlOCv+wFGcaALUsiBcBxSRTpHkD8dJb6QpsvKPRTzZaCWoLt6w3FVsDetotpW6biihPxFs8eyCnZzLYcogW6gdEIw9wufuSetAGWC8FqFZF50lb+BAvThu4pizkHPyR34ry5LBIcKD+P9S6vBInZ+Ci2AYE8j/Ry5U0RWpE2AxJl81tJBrMwdZ16VkPTM5o4l8HWTsgGtlg5l7NKPex5jblw848W4FbixriAimQCwpdKhjcV8Y56wdi+NRcw6Z54kbbjNj8aq1dJhgzEVyyh+qGGd2ILacpkpF8/1I1BBAqiWAMlImBhm58YidnwQo/21AcVWsl3XFBBYO6JWYAorbyW1E2a3ac+NdZhuhlaCWhuNlWkJexGwvkST8hht0M7YLUhTl9lflOZxT/qUtj+H2/mUbrkfMkHpJr0wzJJYG/1sIO10jEl/Kf6X3zGzZWpylcA0vei19kvvbwEGAC7xDSkG3qw/AAAAAElFTkSuQmCC',
Ty =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQjFDNDg5NkYyNzgxMUVGOTQ3NEEwRkFGMUJENTNBOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQjFDNDg5N0YyNzgxMUVGOTQ3NEEwRkFGMUJENTNBOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBCMUM0ODk0RjI3ODExRUY5NDc0QTBGQUYxQkQ1M0E4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBCMUM0ODk1RjI3ODExRUY5NDc0QTBGQUYxQkQ1M0E4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Du3D/QAABgZJREFUeNrMWHtsFEUYv33dq9e76+uuXGmhrVRKefQhIEIURGxTBRsbwdRaEWljGqsktQQQDTFoghgpoISURgqUFISo9A+gNIBp0YhAAEEoDzVAOSitba+96/Ueu+vsZQan093tocGwyZeZu5n55jff95vv+3YpURQ1j9JDax6xh0WdiPTFcuPUQ9pX1i2ey3X/AFIAQmFCAhRl+pTCYUSsFeGYKAeMVQCDhIZCYa2GUC6qrMfnCjLtMGuxCsoQEAYKvX9z2XxbrLmCpqhkPshfbO/o3fha5dctBKjQ+tpPirOTE2JXMSyTzQv8zV7XQE1hRc1uMMZjopEDRasAYiBg7c71i/MS7NZ6lqGnA0A2jmOeHTs65kD1B69MA+M6XFa9nTc+Ldl+FMyZS1GaKLBmSmyU6auGDW+VSLqAcFAvLWP1IYAo7L/7YKRNxibEfBw6jiC6vL7Ar2jBhMccy0FjwGVWTupKND7oD1zgeaFT6ttjzKtAo4c6WbjHMG7KWQgB4uBiPcswKaENfIH2uSUblrb90bFR+q3TspNAY5IuKRSTXstJVtPcdHbvyH1z09J+j68ttBFN2WQADbOQEodwCxk8Xl+byaibZDRoJ2xbW1y+ZOXOeuDGUVqWlUBbME4wgFvHgbssxVXbd322/OUiS6RhpjTg8wfbISCB4BI1UmBEvmWRlb5vPrcFAc4Y51i8Y90bldv2nmju9wzyWRMSkyAoS0pibDywIru78ZemLz9aVDp9SvJ7gEehPY79fGUz5BlHWGcIIAqlDhAYKcwqesgJyQ2RQMzFL03Pyp89sSDSoLN19bpvAle4czKSCnhB9PW4PNeBFsFs0idzDG26euPecb+f99ljzSluz2BHy6lrh2v3/XgS6OkD0i/FQCADEguA+IEEpZsmBUY1QEYMkAVyxYBOCNzHHax55wuWYyI0QAe6t4Ig8OVr9qz47ZqzG7okAMQLxA3EBQG5lQDRI4R3kYiuiPDaAa+fu9Pp+pNc1N3raQdgvJhrKCIyi0qpQ47UIhZF5USD8UsLwsCwA4H/KGhlDUZaUo8iMFrFMvhtCMIWgaIYhuZG2SxjycUgCDqSHNFWTDd5q3gZYKq5jAQUAlOYm5VQmJddZIkwJN3p7HX29Hn9IA4ZBTCzo6vPCcgt2mIibSxNcSvKcvOBS3tSk+JS3V6fs6nl0v76xpOniYOJ4bhMjj9C6aJZKUsKn9oqwpG/XO6uXQdOtgACs6A9f/GqU7o9mtHxUYZ3X5897fCJS2cWzJmcEW2NSIm2GlNKF86clRBvrVhX03Ts37hs2LMwL6cK9c9dvnWopKqu7tUXcnL0Ok4LwLiQG9vv9gx4vP7Bgucyn1j26b7vWk9fa0Dr5jz5+Pv/pWIcUoKYInSTpT97+wZ+L1/TsK9q6bwZz0xLm5eZnphJlBPC1MljMjPTR89Yu2zB86s3NDY777lOSWv1WjaRSKiUXAGoVg/dT7Ig7DsBXxwg9sTt31RW6bBbMiQEdztdtyEvkGLxlrPnRkaaIfrpqePmf7OxdBwIljHSQCDIu/ByRqkapRUA4bUQ23r6eq00oOVYs8NuzUATvz1y9igMbl4og1v3tB5B4yBSjzfouTipf/bSre1EUpVNHayKq+4Xah9WN7aCnLQlZ+KY+UadNrrP4+1q/qnth70Hz1wgCEqfb2sfWF/b/HnRi1PzrRaj3e8P9l24crtpdXXjoXBcFk7qMMukDhaz7pD4BC2A4k8Qpo7BEVJHSIdakU8W5gIWlyiiBMVLUhpzCTkuqKQNMdzUwWOn9KGaB5uLkifajCGIi3T5sSTKqwVHpUgtYJv5sHkB4vRBbBM8z+E3ScDc5oN9PtzUQYLBFQchfyjMOsiCAuEyfB2a68M4E1CykhqgIFyswczOYJuQ/MBJTQJCViJdpwpIJE5EEcQMEHFLrpzA3+nIuUgH7mYxHFKj0wYJS5CbiMSbqFwcoxTKGbIEUXUZ+UaJX3e5V2nydfhBXqXDrodwUIJSVFUrRUf42KB5kI8Ncl8p/pfPMWqAwrHAQ3moR+2T3t8CDABuxbtL8vhiIAAAAABJRU5ErkJggg==',
Jy =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGOTU1MkVFREMwREYxMUVGQkE5QkYyQkUxQzQzQkYzMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGOTU1MkVFRUMwREYxMUVGQkE5QkYyQkUxQzQzQkYzMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY5NTUyRUVCQzBERjExRUZCQTlCRjJCRTFDNDNCRjMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkY5NTUyRUVDQzBERjExRUZCQTlCRjJCRTFDNDNCRjMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/7vDTgAAAYVJREFUeNpi/P//P8NAAiaGAQajDmAhVYP3mv8KQKociH2BWBqIvwHxCSCeDsRrt4YwkpSoGElJhEDL/YHUMiDmwqFkLRBHAx3xk+pRALTcFEitglp+AYhDgVgFiM2AeDIQ/wPiYCCeRpMQADrgGJCyBOK9IC66L4HyoVAHgoAZUP401UIAaLgS1HKQa9OwBTFQbDWQ2gTlxlA7CnSg9DWgRffwqNsKpbWp7QAhKP2GgLpXUFpktCAiOxcAExwvkKqCZi9mqLAEEKsD8UdoFsQFRKDx/xWIz0DF/gLxKSBuA6afz8SUhB1AnIXDAn4gtifCY9xo6pyAmA+Is4lxgCWUngfEl6kQyrpAnIRkLkEHwNLFZmCQbaDUdmCUBkAdwESVygjJYHlokE4FOvThQOQCkOWl2OKVXg5gQ6NHW0R0d8BfNJo+TTIksACIxaE0/R0AzHqXSan3yXGAOTCvUyOazUl1wCUg1gfiCiqnt0vEOqAESutR2fISipvlo+XAsHQAQIABADaTZKN0zPqsAAAAAElFTkSuQmCC',
Cy = '/low_altitude_interface/assets/logo-U542v5cr.png',
Oy = '/low_altitude_interface/assets/module-aid-Bw8qh3iw.png',
zy = '/low_altitude_interface/assets/module-area-B1n7Qz4I.png',
Wy = '/low_altitude_interface/assets/module-flight-BCitDKmg.png',
Fy = '/low_altitude_interface/assets/module-info-CtAUYRHk.png',
Ly = '/low_altitude_interface/assets/module-monitor-CC6MnDQl.png',
xy = '/low_altitude_interface/assets/module-scene-DWutJJwJ.png',
Vy = '/low_altitude_interface/assets/user-bg-CR5-MoDt.png',
Qy = '/low_altitude_interface/assets/bg-uav-CWYU6i_C.webm',
Xy = '/low_altitude_interface/assets/alert-bg-dl-CafDf2Kq.png',
Py = '/low_altitude_interface/assets/alert-bg-ky-DiCvAlB-.png',
Hy = '/low_altitude_interface/assets/alert-bg-ph-M5eBTqpG.png',
Ky = '/low_altitude_interface/assets/alert-bg-pz-afXq_Fxv.png',
qy = '/low_altitude_interface/assets/alert-bg-tq-CDH2j944.png',
_y = '/low_altitude_interface/assets/basemap-dark-h-CTlAwCE7.png',
$y = '/low_altitude_interface/assets/basemap-dark-Dw8xSkea.png',
ew = '/low_altitude_interface/assets/basemap-light-h-fUxeO3T4.png',
tw = '/low_altitude_interface/assets/basemap-light-TAOSJTze.png',
nw = '/low_altitude_interface/assets/basemap-rs-h-B2l6S6B-.png',
iw = '/low_altitude_interface/assets/basemap-rs-BjNVzNuN.png',
sw = '/low_altitude_interface/assets/bg-chart-title-Dbvi_gbJ.png',
ow = '/low_altitude_interface/assets/bg-des-BVoElkIM.png',
aw = '/low_altitude_interface/assets/bg-dialog-l-p830com7.png',
rw = '/low_altitude_interface/assets/bg-dialog-s-Ekpi1P4n.png',
lw = '/low_altitude_interface/assets/bg-dialog-wide-CuwsgkqW.png',
cw = '/low_altitude_interface/assets/bg-dialog-B9h4t3Rk.png',
uw = '/low_altitude_interface/assets/bg-fxjhzs-rLgfJ7mr.png',
dw = '/low_altitude_interface/assets/bg-gjzs-DxhxYXDI.png',
pw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGkAAAAcCAYAAABibZFIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMEFFRTkzQkYyNzMxMUVGOUQ4MTk3NDMwNDRDQzk4RiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMEFFRTkzQ0YyNzMxMUVGOUQ4MTk3NDMwNDRDQzk4RiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwQUVFOTM5RjI3MzExRUY5RDgxOTc0MzA0NENDOThGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwQUVFOTNBRjI3MzExRUY5RDgxOTc0MzA0NENDOThGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+iEaBZgAAAo9JREFUeNrsms9rE0EUx+dNo0Isil5ExTaSFIRaBQ8iCCIKm5NH/wLx6sGreBBvPfkv+B94rSJ6KyIIhR6EWhEjKlJYmm6yu9nNjt+pbEjS2RFB+kTeg/kR8nYZ3ifvO292Q3eW3ytrNOrU6PP5+fwuhsdoJ5TYflsf7cm924sPqArS0ny+WBi12tmaeRrF9EMps/s9jVEs5zQOl9TY/cxef8d1BL/xNdDEd+OjmbyH09dMraHqfsax3unRONZa5W9+EwvX3OyJ5eg6Q3WV1e5jVq95SN7qp7S+A0Akv+r9N6Pq6L8ik4ba49aOEvog0WKyQrfQr9ipExKkbhaJeDmM9CeJFlcmkYX0vBIS7Pogo2/DQmUSLRarAdIZjC99kNrxQG1KrNikbg79O+xH2z5IQbevNyRabJCapdQ5IWE/ahSFOtXt27JbjKmyW/BCslKXZLS56yrGUTDMoh3A7K0PUtBLSaSOyeiX1L2y5yMnJEjdDIYbYURSNPwDpXdVJl3JhipOM+pJtHgSCZCa5SG2ClIQD+QpA2NVZx9kf4HUffZCimKBxJZGhhampW4C0lIjP2aMuhj2dEfCxbYfNb2QYDfTnDo4I+USLRY7CEhW7l77IAX9VKSOcT9qoH+D/ajng9Te7gkkxvNRyyV1I0gXGvm5YaGORAltSbhYz0crlZCs1CVSenMCOmoFD23NC0newrJL3QvsR87npRpSdwjjtTDSHyVcbOejSqkrM+nqIKcwy1Ui4WIxDbk7azPJBymIU3kLy5dF+jSGDUjddx+kdjfWsh+xnY/8UldCmksztSPRYqnqjiOTLmH2zOdm/xy53Do5fIjx8H8iIH/Z708DXzF3W4j2CFK36nP6KcAAwkXP/o83u1cAAAAASUVORK5CYII=',
Aw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAAcCAYAAACNr/p2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCOERFRjMxMUYyNzMxMUVGQkZGN0Q2MEUyRkJCMjFGRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCOERFRjMxMkYyNzMxMUVGQkZGN0Q2MEUyRkJCMjFGRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI4REVGMzBGRjI3MzExRUZCRkY3RDYwRTJGQkIyMUZGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI4REVGMzEwRjI3MzExRUZCRkY3RDYwRTJGQkIyMUZGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+cXLbLAAAAotJREFUeNrsWs1qFEEQrupkx6BBJAY9SCT+IngInjwoepDoA4gP4At48KQHbx68Kh59AvUFkiAE8eJNFsWDxp+AIBLdZTczuzM9M+03ie5OJt2rSJj2UB90VzFbMwz1bX9V3bt8//HrW0R0B2M3CerGGsbtG9dOP3IFMAiKqJE+JDbd4oIxww/NYCoMDy6aUsBvf8t95XvM8DnV2GFcMfHWOGs8b7vfHsvumEEsb38P6/PY8q7V3JTe35mLajzR5ARNz0xn15Wi8yCpaSNIYXzGwyfly1w/1vu8Fsb8Cu5VV0xB0CLlfFzS5QfdHr+HuTyaICME+UI7VKuQwbkHT95MuQhaBkEHoImBpKt+5IayOOVVuJfsBAU6hH1JuZqVdPlBFLtlTv2ykDklMucJnehvCJJGwWc39z3LaS/q0CkXQUWrl6MW7ZN0+UE/sa+iTYICXeydllCHZBV5QtgfRdAmFiBzxyRVftAK1QeYC5C5XS6CliBxRyrXBDVBp1C5lFtwz9kJCvRXzO8gc4ckXX7QS2ilKnPV1bLAcqrgDd1IFXXoyiiCimMfqUOe0I74izF0EnXooIugFyBoCmNC0lU/QE7e1/wR7rydoEDHmJ+DoKOSLj+IYl4py5ytY1vkXInM+ZK5cGM/NA+ZYydBWEEnJFXeVlA7zWgM7pyVINPQb2E6IGm/pMsPUIcG3ZxrU1rInLTbnrBe+pXVSZD8yuoPrVB9MkRnUYf2uAh6BoIOw45JuuoHalCSaP4G96KVINShHzBNyNyMpMsPegltyNyog1GROY/ohOqPBD3FCjrD0s15QZxS8UfS2XHnsUNDN1k3bnI2fg87pn8niSv2v4HZ4bid3xJh3P0pwAAachoXQBH3cgAAAABJRU5ErkJggg==',
gw = '/low_altitude_interface/assets/bg-plan-h-BWrXvpO2.png',
fw = '/low_altitude_interface/assets/bg-plan-BYgZdbxv.png',
bw = '/low_altitude_interface/assets/bg-plate-BQPsxBPA.png',
hw = '/low_altitude_interface/assets/bg-rank-1-DNlHjgIH.png',
vw = '/low_altitude_interface/assets/bg-rank-2-BJdSA4h3.png',
mw = '/low_altitude_interface/assets/bg-rank-3-DEuyfWgu.png',
yw = '/low_altitude_interface/assets/bg-table-row-DDA4tILq.png',
ww =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAAAtCAYAAADC1tsoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQkE4MzI1M0YyNzMxMUVGOUVBMkQ0OUIxMTk5RERGNSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQkE4MzI1NEYyNzMxMUVGOUVBMkQ0OUIxMTk5RERGNSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNCQTgzMjUxRjI3MzExRUY5RUEyRDQ5QjExOTlEREY1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNCQTgzMjUyRjI3MzExRUY5RUEyRDQ5QjExOTlEREY1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+LW4YkgAABZpJREFUeNrsXUuL1EAQzuqsL8QXuCDIiqiwILP4M7z5S7z4Nxa9ehM8evCgHtx/4WEQBfGBelHRgwiyzk7Kykx60ulnddIzmc5UsGaSdHeSyXypqq/6c3bj0cvvmWfZRBugbUj7QNoGx1hfPzAcV23zHb9JG6Xd2wfE6/xfNQLEJlS9QToazDbK13q7aIH54eVjSf1AOpPoB+r4ens1Vj+maXztnIZ95jHVvuo8huvEfXt3b83vycDzZRxFO4b2Fy3PeMkkCGUSzuaAIQBQ+1LCAAhkILrGVv3NwNH3mQFY9fUA0PJwyMuA4BXzdQYiKAgzAhBkF6p7OBmgdQDKAFK2PV5MHW/tYwMB6KDUz2f2ZrqnVc5XA67iMcU1AmhhhwLGfwxADwClGyvFXYP3Uo4JShsFgODzhmGgNAKQNKYEW8OQXY8gNDAeL0P0WgEQlAYdgO7wawIgKH1dbWDN/3zh1eyRzGFbB5PPm5nApHlWh7edH1d5AChgLMjDCbTJ+uV/qncjArBp/ucAWkwCQh9DJyBNQ3ZomN4MYJ39Cb8UAFLzv4UREPM4MpmwjHGeJ1bIbpgznuwDcYmb/+kkoxUBka4pKNezhO3WYKqFURoBcTJ07/XRwXgK7bD/AIQaGCkERAOuJ/8zh6n4BMSUk4XkjDFDNpmhE8F4Bu1bWgAExcvVC9AxCQiACci+AjTFUxAL0JHYrI2AOB8GEkHyPSBhYDyH9mldCtDtCUhaBWgTMEJYNp0g+WeDfGAsyMtptIO1LkAvk4AQQLnoAjTpASGkFVSvmREJzNlVKXYvlIBYSysNC9CkWl5gAbohm7UCsEHIdqUV1Lpn1qLofaHLYncoAamH3y4ISKQCdAgBcYoWqAVoWsgmTytmlPCuPvR+MG6h/Vw1ArLY/M8fdlddAdO2AO0bYydpjofRQ+goYLyE9iElAsIKmObTfKH5H+VhNKVETT3jNtrz5AnImilgQgiIL2cMeRjD8mjz7IsNjOfRjsRi0qyAoYyJXDMMqGs2JSDO8Esog1EJzGW037EAyAqYbGkKmGAC4rkXITNHuic0TBBYopoLjFfQfrECJj0FzEIISFD+ZyeEtpTLB8ZraK9YAZOeAiY6AaHMMBEqEtoxAqYDd9BesAImPQVMWwJCjUL2emwAAAlsupgGvIH2hRUwCSpgnKGWTtyc+Z+jqmHkCuCvE9vAeLXIF7HfmBUwCSpgWhagfQQEVBy4plU9aZppfnqgEJAiRH9lBUy6CphlEpCQOrEaKU3LAOrh9yauvGcFTJoKmJA82lkbDCUgLQBYB2P9wEN8e8wKmDQVMKEF6DgERJ/aCwGg7hmrA+/i5ltWwCSqgOmQgJj0iY3AWB6n+G8GF3H7Mytg0lTABOV/1mlVYvi1FK5bgnH+oYf4+m52TlbApKmAiVCAjpT/NQJjns8/xi6+vGYFTLoKmCgFaEVPsGgA6mF6dtYhvo5YAZO2AqZJ/qcTkG5+t2GQVzelAOMTVsCkq4Ax539+oUqXABTLnXv7GxKBgSG+j1gBk64CpmsCEitn3MYb92c6FcgKmLQVMB0SkDZeUS7tYIiGEStgUlfAxCtAL3t59uA2TD0jTGdeYMQKmH4oYABWH3zKMv3t9hmBgaLGCPusgOmPAibFpcwZp+RljxUw/VHAJAlGvOGbaNdx/Q0rYPqjgEllKckLlJ4x38EP+RHXD1gB0x8FTKphupiTHrEChglIl+RFzMCUxW5WwPRJAZMmGHPYwi/qBytguADdERCnNUaRMz7Etad4X+6zAkYrQIthRTU2LxuL+kNetID462Ez2V1eInZSXmLRR6xPpuNmH2AitrOqrbBDyeTt4ncyx+U+sS5MbMt9D6V9Y6V9rJxjrJzP9C6uNbdsg/RZxLu6L5P2g/QU1v762n8BBgADwkWhn2vPhAAAAABJRU5ErkJggg==',
Rw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAAAtCAYAAADC1tsoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEMzQzRkMzN0YyNzMxMUVGQjI1OEI5QUI1N0U4NUZFRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEMzQzRkMzOEYyNzMxMUVGQjI1OEI5QUI1N0U4NUZFRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQzNDNGQzM1RjI3MzExRUZCMjU4QjlBQjU3RTg1RkVFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQzNDNGQzM2RjI3MzExRUZCMjU4QjlBQjU3RTg1RkVFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EpEU6QAABARJREFUeNrsnc9r1EAUxyeb7CrFinhQULyoiL/x0L/AkwdB8ODZ/0DQP8G7B/Eo/gviQezBP8C7IiIqQlusgkKVtrTdzfM7mUnyki67W22S/fF9dGbeTN7MZGY/neZlm0zw7NUPQ9klgc5IEkmue0XSXKLbOpKauWJdx0e+KBBfSXRbkvcl/hxEpI9NEgWi+1DtoyzYVZa3H4irFIgUytJzlqRv0X1LbuOa0/a5TToPrkyS8/Bjgt5FsuPbz+wfP1jI5isid31FRgRQAyZDADQjAGiGAGgGAGgGAGg0PP3Ksv6KAA6xzwAcZm9/cQ5A6aBoqzxewtiPwL0DaAjgSPa2dAfxHNItbU8YCWAdAJbtYygddZmQ1ZtpGAlgbQBq+/Q6NUTaFT3fswYjAWwEwOIcur/YHRzsyqxdMxLAsQAwH4NID8lB6BvS56IxIoAEsGIA9Zx0ER1B+ktk92cXEUACWDGAWYribZTOF8c/BTASwIkBUNfZRjKHXIi0N9EODAGcSADL4+8hOgR1zUzarR0COBUA6vndRnoYmbWJWBkJ4NQBqOtvIjoKdcmMK4wEcKoB1J/fOg6dGTsHhgDODICqDVwrGjkxFrd2COBMAqjzW9AiZOeR/VM7jARw5gEs2Zl1HDheG4wEkACWANRtWE/6JLRPlcFIAAngAAA1Bz+hXdj3a0YCSABHBFDdyJFVmNzcFxgJIAH8BwA1CxbG0/ZrQei9PcNIAAngfwKYtWfsIwjOeTmF8HUkGAkgAdxHAMuyinB2IIwEkABWCKCWZYTzCK8LMBJAAlgTgFrsinin4MAUnkUggASwWgC1fEa4rAuCpy+/E0ACWBeAWlr+pve1F49u/C6tjASQAFYOoJYY4QvCRYQ3CYyx6pUAEsCKASzLR4RLGYwEkADWDKCWDwhXlQNDAAlgrQBqeYdwu+RNE0AC2Ii8RbiSedNPni8H7lwJIAFsRL4hLMCjXokkTl8Omb8TigASwAZWx5XMmyaABLBhGBcdjASQADYL43XnwMRCAAlg0zDey256+8kOUi+GABLAGuU9wrlb9xejKI6FKyABbEzgRW8CxCULJGCMCSABHAsnxt30dj+tdE4IIAFsBMY4Fq6ABHAcYLybOzDF3ZMIIAFsaGUs7mQkBJAA1iwbCMcSB8bPlf1iMBT7XIyD0vi93wK/YqZ72bX814ct8ceML7PHvH2Y6Ma0fJuht295Pekn2RNEkDp7+zxOmrZhG/oXBFm7tjsvayttpG17DDZt/88eHZfaZ3rE1u3kdrCx24Ql/Sb1Or7PyL/ON1J1bT40bm8/OxZ37vkYQze+5HnfbKzG7RuYzIdx/8HsdTcHfsJTPTClvQlnWeBJpzA+/CvAANFKI/Dj3Gb7AAAAAElFTkSuQmCC',
Iw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAYAAACMo1E1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENDI2NEJGQkYyNjkxMUVGQTcyRUE4NzUxOEM0NjJDMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENDI2NEJGQ0YyNjkxMUVGQTcyRUE4NzUxOEM0NjJDMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ0MjY0QkY5RjI2OTExRUZBNzJFQTg3NTE4QzQ2MkMzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ0MjY0QkZBRjI2OTExRUZBNzJFQTg3NTE4QzQ2MkMzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MvnURQAACYhJREFUeNrMWM9vJEcV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',
Ew = '/low_altitude_interface/assets/bg-title-DIx-zQBE.png',
Mw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAxCAYAAABznEEcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RjkxQkRGMUYyNjkxMUVGOUEwRUFDQjZGQ0M3RTUzNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RjkxQkRGMkYyNjkxMUVGOUEwRUFDQjZGQ0M3RTUzNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhGOTFCREVGRjI2OTExRUY5QTBFQUNCNkZDQzdFNTM3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhGOTFCREYwRjI2OTExRUY5QTBFQUNCNkZDQzdFNTM3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+E9dLMwAAB69JREFUeNqsWltvG0UU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',
Dw = '/low_altitude_interface/assets/icon-cube-1-xizbgil2.png',
Zw = '/low_altitude_interface/assets/icon-cube-2-yg8Q6nz5.png',
Sw = '/low_altitude_interface/assets/icon-cube-3-pcM6u2wP.png',
Nw = '/low_altitude_interface/assets/icon-cube-4-BS6eLMgd.png',
jw = '/low_altitude_interface/assets/icon-cube-5-DNapFerj.png',
Gw = '/low_altitude_interface/assets/icon-cube-6-CKysJ3Ds.png',
kw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAvCAYAAABKQCL3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMzFGRjU0MkYyNjkxMUVGQThBNUYyQ0Y1MTk0MTUyRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMzFGRjU0M0YyNjkxMUVGQThBNUYyQ0Y1MTk0MTUyRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEzMUZGNTQwRjI2OTExRUZBOEE1RjJDRjUxOTQxNTJGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEzMUZGNTQxRjI2OTExRUZBOEE1RjJDRjUxOTQxNTJGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NBK3ZgAACDlJREFUeNrMWt1vFccV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',
Bw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1RDE0QzY1QkYyQTAxMUVGOURFMUFCMjM0MDk5MzBBOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1RDE0QzY1Q0YyQTAxMUVGOURFMUFCMjM0MDk5MzBBOSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjVEMTRDNjU5RjJBMDExRUY5REUxQUIyMzQwOTkzMEE5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjVEMTRDNjVBRjJBMDExRUY5REUxQUIyMzQwOTkzMEE5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Rx+HgQAAAMVJREFUeNpi+P//PwMBzA/E64D4JLI4AxEapf4jwH6YOBMDftABxIZA7AzlOwDxeiBmxWdTDpJNIL47Ep+LBYdN8UA8GYn/FohloS54D8TfsNkU9B83wBk4jng0dQExKzaNFng01aC7DMZQAuLfODRNwxZ4IEIViN/g0DQHV6iDiDs4NK3DlzAYgcQXYPByo0XHdiD2gooLAfE/NPmnIN2/0Gw6DjXVEk9g3QYlgEtALAk16T40WYGAIBB/BmJsyfIdQIABAEPv8EzRXYnWAAAAAElFTkSuQmCC',
Yw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QTQ5QzlCMkMwRjkxMUVGOTBBOUE2RjQxODVBRjFFRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QTQ5QzlCM0MwRjkxMUVGOTBBOUE2RjQxODVBRjFFRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdBNDlDOUIwQzBGOTExRUY5MEE5QTZGNDE4NUFGMUVFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdBNDlDOUIxQzBGOTExRUY5MEE5QTZGNDE4NUFGMUVFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4TnsbAAABDxJREFUeNrcmVtsDGEUx78Z06JIUF11TUjKgzaVRlXbp23CQ0sibhG8ShqXkJCUSLwg1Qiiuk/0BXWLBw+8IC4PlBKJlgf3hLYujVVVe2lnO/6nPdOM1dr5ZndncZLfS2em33/PnDnfOedTekVCbBrIA3PAZDCW/94NPoEXoAW0RT+oGYbUQkocgovBBrAYeMBbFuQHIb5nFJjIP2gW+AyugzOg0Q3BGlgHdoFx4CZ4CN6BWCsrYCYoBGXgOzgIzkK0ngzBXlAH+sAF8CTOMMoHa9gJmyH6VqIE02s9BNaCE+arTKBRaG1kJ+yE8FA8grPBVRBk7/4QybExYAvIABUQ/cGJ4Nn8gdwDF4U7RiFSSh8yRL+WETwV3OGP6opw1yr4o/RCdJsdwSM5TilvXhKpsVWc14shOmy9oA5x8xEQSKFYwWuThqPRF9QhUtdqcFyk3kjDSl1RvMOFBOXDZnA5CanLqS0CKyg8zM1Fs1ykHUy3K1Z79Giv8HjmxSlIEeGwX8/JqRzm+n2wjLWdsgqmbbMKnLO9lMezICE+DIdDMe6glFqF0DgNLxuqZbcZJ7XdBgJdohcBFQ+trY/13NztMVZ6wtqKrR5eD25LeaanB+WO4dyzHz826V7vfpt332KN90zBS8AxyVeJMqjPkVajvb0xUl5eLfEIVYTbTA9PB1lcItq3EEIvEpFX6/c/lRQrWFsW4ni6yjvKGxv17O+CnaCq2WplZb7sS+EGIY88nAPaHXzdzjwsxCR1+fJ9Ij39QF9t7QOJ56iuyNG4vfFLLxsMKkLT6MMzhKIoso+rXu8e/ODqPp/P7ib1lfpFjVNG0IFg0S94IIc7MrW0dDcePhzx+e7YWZGaW83xgsFghAXHt9UVFOzgUtZ2U9nFzaFsDI+B6IDR0nLSuVpFMTo77YbjaNChces9X3qxUCgNu9W3SH39DZcKoQmUjymtveQOQz6Gg8ERLlZupPGVxp3FbI5lQ0qwrrslVmGNzeThVooN6Tge8LBbgmf2x69htJrV2jWeyMjvdO5YIWscbJEauD2SExwOuyXYyxoHBTfyrCv/L/Qwaeo2OyHVUlzU8CDDfi3hjodJUw11G9Fd81mQBopsF/CRyPgkiy1iTQ3Wnc40ylGbwHlOdYEYIfEJgjuSKJbmbDQkXGsdxw41+fFx3NSkuMWnprgZYjf9d6MqumEpd6kVKRBbwWsvixY7nIdNo62QCpu74h8Yt5o2RQwMtAM86wok8QPbKmwMtNUY/4geLOFhRh3PupKRuup4rlfyJ7F2PGy1Mv7HOodIog5lKM/SocxNW2Wbg2MvmsDQsRcdHtIiTeC9sHfsNQMs5B9P2y0dezUk69grenHzYJGmRpk8N6BxwRfONGaKzOTiexZfo6rLPFg03DwJtRp5jkavc8XAyVMG/51Onejo9jl4xm/i11cmKfinAAMA9QmudzoC8G4AAAAASUVORK5CYII=',
Uw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODJGNEY3MUYyNzkxMUVGQURCRURCMjg0MzU1OTEzMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODJGNEY3MkYyNzkxMUVGQURCRURCMjg0MzU1OTEzMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4MkY0RjZGRjI3OTExRUZBREJFREIyODQzNTU5MTMxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4MkY0RjcwRjI3OTExRUZBREJFREIyODQzNTU5MTMxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+khPTRAAAAbVJREFUeNrslcsrRFEYwGc8xjupaYoQGaSR10YeiTJ2ZKMszQILG1ngH5AVsZaFLCw1YaWJRk2xUdSERJTyKilZyLh+p446TefOrTtNWcytX9853znf85wz4zQMw5HKz5kOkJIAOxGHCzEPQ+CGKGwOdjq2kg6A8xLECXg1y2sEmVAVGTaqXlecb8MCXMj5OAmM2K4AYw/iSU43yHZM6jNlm+rgCH2P3QoqlXHwb4DDmAwgvvJkWnSvjBfJvFpWMIwYkPoH1SDLpBUFiCZwyT05kE2mQdaOGbdDPVwyv0Y2KOa7lmeA0RJiRhO7D+7gxqTCL/CQyLtVi0ZN9OKu3yJDJutzqnNtBWTfgYgkOIdpnKyyL770M/TN8Zt1FXRbHPQKzv1Iv6IzhHP0Xii0qqAFkQ8xmYAY50IeCGPxFmpwOMneKREQGqEUDsDHWlQbAIMyxCGIPj/CK7xJRG8/oQj24QUqoBiHp9iGGVdBgHnI7Jr2Q63E7PuGNnkdfRDGuajwCvbgI9E7CFj0X5TbBcvQqiSlnt25fEPaAG5Zuu4HSpzJLPRKp8+aPcLfT/of7X8F+BVgAAeim7Tts/SdAAAAAElFTkSuQmCC',
Tw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAuCAYAAACBHPFSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3RDg4N0E4N0YyNjkxMUVGOTkzM0I3MjgxMjQ3MThEQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3RDg4N0E4OEYyNjkxMUVGOTkzM0I3MjgxMjQ3MThEQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdEODg3QTg1RjI2OTExRUY5OTMzQjcyODEyNDcxOERCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdEODg3QTg2RjI2OTExRUY5OTMzQjcyODEyNDcxOERCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AoNh7AAABuRJREFUeNq0WstvG0UY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',
Jw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RTA2OUM3NkMwRjkxMUVGQTRFQkIwNjQxRTMzNzNBRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RTA2OUM3N0MwRjkxMUVGQTRFQkIwNjQxRTMzNzNBRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhFMDY5Qzc0QzBGOTExRUZBNEVCQjA2NDFFMzM3M0FEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhFMDY5Qzc1QzBGOTExRUZBNEVCQjA2NDFFMzM3M0FEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NtURzwAABw9JREFUeNrUmQ1MFEcU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',
Cw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTM2NjAzRUYyNjgxMUVGOUU1RUMxNTc2RUQ2QkQ4OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTM2NjAzRkYyNjgxMUVGOUU1RUMxNTc2RUQ2QkQ4OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5MzY2MDNDRjI2ODExRUY5RTVFQzE1NzZFRDZCRDg5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5MzY2MDNERjI2ODExRUY5RTVFQzE1NzZFRDZCRDg5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZW5kdwAABgVJREFUeNrsWntMU1cY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',
Ow =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODY0NzUwNkYyNjgxMUVGQjk0RjlDRDNEMDdGQTQ5QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODY0NzUwN0YyNjgxMUVGQjk0RjlDRDNEMDdGQTQ5QSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4NjQ3NTA0RjI2ODExRUZCOTRGOUNEM0QwN0ZBNDlBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4NjQ3NTA1RjI2ODExRUZCOTRGOUNEM0QwN0ZBNDlBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+3Dgx6AAAB6hJREFUeNrsWnlwFFUe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',
zw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQzIxNzYzREYyNjcxMUVGQkE5RjhCODZCMjVGRjE2MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQzIxNzYzRUYyNjcxMUVGQkE5RjhCODZCMjVGRjE2MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRDMjE3NjNCRjI2NzExRUZCQTlGOEI4NkIyNUZGMTYzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRDMjE3NjNDRjI2NzExRUZCQTlGOEI4NkIyNUZGMTYzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Y8BRiQAABhxJREFUeNrsWntMU2cU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',
Ww =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzU5NDhGRUYyNjcxMUVGQUMxQTlBOTE4RTM3QUIyRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQzU5NDhGRkYyNjcxMUVGQUMxQTlBOTE4RTM3QUIyRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDNTk0OEZDRjI2NzExRUZBQzFBOUE5MThFMzdBQjJFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDNTk0OEZERjI2NzExRUZBQzFBOUE5MThFMzdBQjJFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+P/n8FwAACTBJREFUeNrsWgtUk9cd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',
Fw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNzU4OTc5REYyNjgxMUVGQTBGQUU0QTIwNDIwOTlENSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNzU4OTc5RUYyNjgxMUVGQTBGQUU0QTIwNDIwOTlENSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA3NTg5NzlCRjI2ODExRUZBMEZBRTRBMjA0MjA5OUQ1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3NTg5NzlDRjI2ODExRUZBMEZBRTRBMjA0MjA5OUQ1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+fa+UBAAACMJJREFUeNrsWmlQW9cV1lu0byAWsYjV2AwYCN6CwaltbCgJ48TN5pahrSdxJp24/ZGx23jc/vB0/dU6ncbthEzG00wmTZs0HiZtYselKaVgY4KBgACzI0AsEmgBISGkJ/UcWc9+UMksEq7j4cLlce+775zznXu2+ySi8KWrJ3gPSaPxT2L6znK8DnbWvf9VA5C+fX8FXvWDLZ+SvIeoEWhmTofN+lUHIhTLlA/VzmyC2QRzv0LzPRdQ5AMF2M14PGHdGY/X68W+UQKvl/76wAAn7BsGZp306fVs6+NF2UdsjsXp+tb+xlDNMhD9okfSd0fIJJpPG7TVYd+Z5DhVTFpitJoVFMbHU+NVvhJIIhIIMpJiEtQquXK9OxETKZNv0UTHS8VCIY5T4lSHNeqISlY5qQlRapQh5Arg2UP5LwCzcnbsXHQPCwV0CpiB3cUwM0I+nczeG54wXbxyresyCsCg0QexewIaRRIE7krJo5nFoIyTd+i73GM0ScopilQALx3wSmXvmazz//ygpvXNYBXAimY2qJ+uB8YkSRK0ze4cM5htuj3ZyedcLvdE9+Dk+7EqWbpYKIhxM4yjf8TQyjWdAzszCuRSUewdEPA7Z3caam/2NbqZ20D7Ro0dCqnoEp+mZAuLrhmDyTaQmRL7lIBP5XUNTbwTpZQmKWViH6DRKfO1kHymtWesDzt3LjtNfdNic9xq1A63w7A90HPx0Qpl3tb4Hwa6Nzw+8wrs4jT+r4Mr9CXVelSEJJGiZIIbWp0WhtqwFZpoMmguaDZFeak5+ZmJL4PmZwmCR3GWeW8r3j/w8hh4Tg7aTQhEc9HFTAIN6zIaXDNEnh5gLe3VGf5c09R3Dc0SW7A8syozY20cRewenhoozEuJR8WHEnrFQjoOLnGrWds9ZOi8K0OY8gxqxjzrcAyMGatoCnds43v/qPFNvdFqXW24p1dtj/7dqa7tqjlzfH8FRhuct8w5mmbnnTq/mflMIEmtfAaWr0TbOzJp+ZCjVK9cItREKsSF/sRpv3K9tzasSZNHBPIjMHbq9o2O/qm//6d1uJt7/4l923S7sxJeBUD8IFSZtp6JNz6uu9XAnSzI0WwpK9zqA+MleRSEZiaYDOsCQywxNZIA//MaLfO1mljFU773BzFyDZo2n75rCpcbept6ddM/iI6QKAOJAuY62zsyM819xuX2eICmhvYraco07wNKrsZZ1mpmPjAUQfII0vPWpeZ3X356pysmUpo773Ca/3cdSQyMmUzYgzprABltDqfF6XL1m62OW3/4a/M7uAZ4EmELzVztsb4DoZW515r1Ntwd7hhCO7W8ili+Zs2heYnXQkPhPV6el4HksyEnRv+OeNd4DKDXzxAMjiaJcIIIdYdp3gY10KnX7d85VkiuiYTLNNeUNIlV/Hh9JuczCi87RiDHSjN3fuNgRg6OsceqJOKjBzJystOjohAYO8/21fAKrQIglnaUAcK/h9tRcKz4+XzQNuGrmr25GdFR5fvSzh7ek1yJY7f/TPB0cca505W7X/dX175n2PvL6WJfzj8sZoZ6ZM1GEyuTlu5NyYmLkiaoFCLMDULLnFP/0ed9n3UNmXyh+tvlWd/i0wSvqWviI5aG0exYGJmc/dsWjfLJ50u25XxY06tNjVconj20tTQmUpwGu+u22JzjBpNd36MzD/+reXQEIqfHH9nIsPkMAikpSE4tL0o9AiD2QLSR4LzD6Z6YMM633tKZtIN6qxVBx0VJxKnx8oN4PyFaqj5+JHsX5FsS7nkAIIWJsbQg6ZsIpm/EYumBZyWiWHFCjHRXYqx07/Z0Fa94t4Z3rHRr+81uwz/ertY2Il2gQYSUZ1AjqJ2Ksm05z5VknLt76ltof+9yz8Xam3r9HZsFZsj0FycLK7LSIp9ZSUFvV3eeudygG+TO7d+ZmPid8swTKqUol5273j5Z9et3W2qg4CTcQdLBqvIMAtGoZZJjpRlnSX8k7h+1fnL69fo/cgGza/GalRbxddS+ec7ZdeEv7Rew6mWPyUIBRb9akf8r2Fnp84czKgHMz1EJKCg+X9ei10P/2flTj70I5vgE0vvajvjvfVIf+UX3kNka8hEgf1u0WsAnBSggdhYInEuo5bb82nd3FIsElAzX6adsbc1dBmNjx+RUw5cTkze0U4a6lvFxOGLP4H11lDjv8aLkFPa1EtJCmvj/qfP1F1l+2LdvUanDcp4Z0s+auITf+snBk35/YVCbKAxehSBMQa76SVCyF/uoYW7UZwIwjx21f/uoPHcdMtE8eICzbG/SY2yAQRpIE8e/P7P/RS5P8MsVP3ZZ+dgMWd7t9nirfnzgpYwkZRk7b7Et9l29PvpB1aXOtiXvvPLiYhYWGQbLka5BMxSOjIdaVlTiHEQvoX3B7Z53uJbUeSeOZuWV70s+FiEXZrJzI5O2uhd++vkbrE8G85kVweC2o7ZQs9Xny34H4yXbbbO7RgbGZhuvfTnZqh0wGTsHzWv64ApBHdqdkFT0SNyOdI2iQC7hpywDbnnuR1dfmbO73CiD0++X6wIDDkvefl/GeNIS5NLfnt73mkopzA6Si1zAVDc7v2hYcDKzoPU5p8uzAMqw+xUjEfJJkUTEl4tFlAIEj1FIBamg8YCHOMhLbeeqmi909JusXDlCBsMl9MvvP1pSkBN7VCKi43gb0AC8oUlr/PjshRufBZMhZDDLiZ2qzN2Vnxmdn5YoLxTQpDIUAItuz9zIhO1GW89062/e6/iC9Q2xiKa4fhJWMIGIxkdLhMVg91mpEZqkOFmyVEwrITwr4FkJxHM5BAOB7+DPeBeh3rK5XB673em22h3u2XGjfQz8TPfvlnH96NS8Yy18Qz6cLWcG1a93Ytru/NOV/n7Mp4HWyiR8yh8smHvmCYhW/BDOSCGfZ/zMCW5BihUH1zQCgUDBMe2sVG/9Xw9nKJy/7CF497mtCCaYjT6IbfOj800w98tn2K85bX5F6wFqxMP0TcD/CjAAvKyyBaMfCXcAAAAASUVORK5CYII=',
Lw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNjUzQjcxMkYyNjgxMUVGOTYyMjkzODI5OTNDM0ZDMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNjUzQjcxM0YyNjgxMUVGOTYyMjkzODI5OTNDM0ZDMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI2NTNCNzEwRjI2ODExRUY5NjIyOTM4Mjk5M0MzRkMzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI2NTNCNzExRjI2ODExRUY5NjIyOTM4Mjk5M0MzRkMzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FTuAVwAABixJREFUeNrsWm1sU1UY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',
xw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5ODUzMDcwMEYyNzkxMUVGODdERTk4MDIxNzVBMkNDQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5ODUzMDcwMUYyNzkxMUVGODdERTk4MDIxNzVBMkNDQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk4NTMwNkZFRjI3OTExRUY4N0RFOTgwMjE3NUEyQ0NCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk4NTMwNkZGRjI3OTExRUY4N0RFOTgwMjE3NUEyQ0NCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+lDaacAAAB4tJREFUeNq0WFtsVNcV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',
Vw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNUQyMTQ2RkYyNzkxMUVGODQwM0MyMTA0MENFNDBFOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNUQyMTQ3MEYyNzkxMUVGODQwM0MyMTA0MENFNDBFOSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE1RDIxNDZERjI3OTExRUY4NDAzQzIxMDQwQ0U0MEU5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE1RDIxNDZFRjI3OTExRUY4NDAzQzIxMDQwQ0U0MEU5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hMPtcQAAB2dJREFUeNq0WFtsFFUY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',
Qw = '/low_altitude_interface/assets/icon-uav-SqkKgs5o.png',
Xw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQjY3QzlFOUYyQTAxMUVGODNDNTlEN0U0QTUwQUM2OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQjY3QzlFQUYyQTAxMUVGODNDNTlEN0U0QTUwQUM2OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZCNjdDOUU3RjJBMDExRUY4M0M1OUQ3RTRBNTBBQzY5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZCNjdDOUU4RjJBMDExRUY4M0M1OUQ3RTRBNTBBQzY5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+upPRfAAAAXJJREFUeNrMlL8vBFEQx29lE3tZQXFCEAmFUFLpLqJTSCQiEQqhUmhEScMfoNBo/A9Xi4S7CxoRBXqJAhE/7sRFwfOd5Lsxed7ebnGFST7Z926+M7M38/Z5xphMI60p02BLSrgMLoAhV2ClboT8ZQdZcGZ+7RScqP0laHfFxiU8Z+Am8C3fOn03aRMuMWAjppiwSs2a7fMcU74HOeAn9PcFZEFQbygi6ASlFAM9BM2gxZWwHxyAD+5rVvAW2LbnyWcVHIOhaMp9oMaelMAeWFB9mVPTXVS/z1J7pPwD4ihzM+Jo/pT5a9MO3TB91xkuig5RXiV5BE/gm/sJh74gjqiHgdWfLvZFbAzccaqjaiA9VkwQ9bDAqpNWxR0wz3WVGlnPgF1LO05/Wc5hG7/RXvBAXkFeVa/weOhjVgQS2wG6wTMYjCq0cmIVVvoEoXqDN/Cl9iE1Yu9gH+TivhTnHcKnlyT0U15ztyBMI/T+/Y39I8AA56FGFjWH/fMAAAAASUVORK5CYII=',
Pw = '/low_altitude_interface/assets/slider-bg-CtKEfNTR.png',
Hw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAA5CAYAAADgHtGAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowREM3RjIzNEYyNkExMUVGODVFMkMzODA4OTY2RDA5NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowREM3RjIzNUYyNkExMUVGODVFMkMzODA4OTY2RDA5NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBEQzdGMjMyRjI2QTExRUY4NUUyQzM4MDg5NjZEMDk1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBEQzdGMjMzRjI2QTExRUY4NUUyQzM4MDg5NjZEMDk1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+zngZkAAAAgBJREFUeNq0lb9LHEEUx3f2xh9XnKIeqWKR4kDwzxDSJlWagPGKNLFNm15QENKnsFUL/TcUDEZCIAkaJSRCNJrTO3O7s7t+3rlXeO7FfZB98OXNznzn+968+bEmSRJPbGnTGe/GTAoxGUxeP7EdkhFySvRLpdK0MeYl7SlwBjajKFqHEzIhNosbYYdorX2Of8vACn4XjDOxjj+M4/gZaPkij2INtwxxFqVVcAS2wRz9g77vv5EshIyAeQFRSCeDA7Y2WbXzEyN2hr4xFBfg1LtksUfgAxh6MOI9rpS9p9WKJ7mXIR/jA6KPdcn7Eg64xpX3vtHyArDNd5uoA/hvRLkQciIp4EfBRaPldnY+/Tg7+Hm5xvcp+Vbx74gQWpEl14+EkdINS9gQc859R/Wc4b/0bYmonxYcfrRHhC+0fzMYYFLnE9pfwWWHLMpScMmXznMm/GJi0Gw2/9BugDZjcUdUdrAXr5Y/74GHvf3datwyBlxWfyaZhUVJ94TdR8ZCJnh5yVF6PPMp585ZrVzYAp0mjSA3WS6oZgdDjXL+nFFuazYl1FRDVbp2xgb2Lx15J/+/dKoFpjc6/w7mPqLwgtwLVNdZk7PTXivVTblj9h83pZjtDoo5/OSc+XzZPjmr0nDFPAWq91l7Nlxh/xSnKZ1KOVJtStbz1e9HX8rqvxZgAIVWgHNFK5i/AAAAAElFTkSuQmCC',
Kw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAABrCAYAAAChWHh8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODE5RTkwNUYyNkExMUVGQjE0QUEzNjM4MkU0QUQ3MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODE5RTkwNkYyNkExMUVGQjE0QUEzNjM4MkU0QUQ3MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4MTlFOTAzRjI2QTExRUZCMTRBQTM2MzgyRTRBRDczIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4MTlFOTA0RjI2QTExRUZCMTRBQTM2MzgyRTRBRDczIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vHKgCgAAAmlJREFUeNrMV79LHEEU3h9TbKKHh6gIolgJaQKp8jekChb5B1LaiCiWgoVdIJ3Y2FxjF5CUaULQ3ggWMU0wUbngXcKBp+ftzPi9c0+OZFfmYzOQhce8mfnm8d6b783MhtbaoP+92U3DTJX2fmLlperpoYAzUBTH8UgYhvPQn0B+Y+691voIusECE2WLBfgcwEPorwDSkBn0PyilNjAWw2CkxCqA45h4B8AaLH3GZAJJMVbD3BYWnKRpuiWWMRa+RvsRwEPosxNVNT+UqGdY/AiyjrllwfXdeIrBfbSPJ6vxi7FKsDg1GqyiPwwDX9BWJJ4+uJ5Fb250cKZNYDrd4CxzRYI/hbHrHliiRjMKaTVa6d7ewXnj+MflNvq/gB1Du2OM6SjBQvkURVEMSaB/73a7N5CTJEkuAB6BsZrgIkm4pEoWYOAbFrSga4CbYhn6Efz+KS72fTZY0MFEHe050qTb7XYTegNylW2KFX//koW3x18h03+OqyDns4OEGfhywQhK541HjOVcsAQ0SNEHwXCDtuzsszs4c8M6pa7IclGe3cFCLNays8+WyQbFDXNXeh64YRhu6LwYi8DW2Q2x7Bxg0Q4WBpi3MYWpY/JMZcPk1WH5GpRzmS1Y64Wi3KZQ3PDmBkdR5+0WN1giWdcTSTPc8JRninW0G0xZ5eZZlSY/dSJRfKYoSuX5Pymr7DXmh3VcWVH3IFXdzq8C6oaFZY/bXbqs/s2dQl2aFOuYG5Y+Rctxo7xl9qlGnUiUG9zD1c97w+9/ircXI/fYZsCBt4veUG9+b9mwfsqKdoPKxubSnHMNlv9JvxVgAJE1zFXMgHLcAAAAAElFTkSuQmCC',
qw =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAA5CAYAAADgHtGAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRUY4QTExRUYyNkExMUVGODI2QUVFRUQ4MjVDMDk2MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxRUY4QTExRkYyNkExMUVGODI2QUVFRUQ4MjVDMDk2MiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRjhBMTFDRjI2QTExRUY4MjZBRUVFRDgyNUMwOTYyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFFRjhBMTFERjI2QTExRUY4MjZBRUVFRDgyNUMwOTYyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2p6cCQAAAgRJREFUeNq0lb9LHEEUx2d35wQlCiae2AQC8R/IfyBYhwRSB4JglZQp/QcEC1NbpEklWlikU8s0B0mKhHgELPwVUQ/FO7nbm93ZfN4xJ0KOZIbLDrx7s2++73vf92Z2NiqKQslY2coiXN9kFM7U22e65yMBA4yjKKokSfKC2HNsEttjbS3P8+/MrSQk954sxYwxgJsEnwL4iK9h0xC8Y+3YWvvtU90qLewElvAVWF4BHmMu8ToEuyS8x9dY24udxgWylwFOPpjQ8w+n9JuRip4FcEFsnYSXgtNk3WeSAz7FP54aV4tJrGYopX3UUAfEvmJzUmBM5jX+jOwRfHrRVPVmW7Wu2+oLz5nrzE/50TAaNK9hj/jbw/3Dxna32x2tVqufWReiBMINaaNoLkj4gG/AnhpjzrMsu+H5BIIUvwPJj54MB25iNcCnAFssdpifw/iL+b7UJH2O3e5YFjokNNI0vYS9w/MV1hLdYKxy/exvZ29LX69aKcoQ6xd3O2L155CkfEB8MJjhD6Y4PzCs1lsGrCIj82X2lwHQ3jkT/yzQhrbODN0NPazmIrTALERzELMJ0WzK2UHvgyRg2LP/r/lvfdal9Xm4g+Rk+G9KSJ/DjijsJmS781KYi9DWBd11/vdGyF1XlPN2O+Y85Ih6fybCvlblgF2BtpRT138PvTUPBP8WYAAi4l367JvB4QAAAABJRU5ErkJggg==',
_w =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAABzCAYAAABO3fiKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyODZDMUYyM0YyNkExMUVGQjQ0QTlBRjU2QzAzNjc0MSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyODZDMUYyNEYyNkExMUVGQjQ0QTlBRjU2QzAzNjc0MSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI4NkMxRjIxRjI2QTExRUZCNDRBOUFGNTZDMDM2NzQxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI4NkMxRjIyRjI2QTExRUZCNDRBOUFGNTZDMDM2NzQxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jKOpdgAAAcxJREFUeNrsl79KQzEUxk/SCtVi/YODizi6SBF0Eze3Igg+g/gIOvgCPoJOTk6uTioOCjqom5OLFnXR1oKtba9t4ncgt1yqFIPE5qqB371pOPfLyZebc6ko71K0Cfq8ab4kI0HS/F4AM6AJDsGx6Wtpgvk+Ds7AKkiAfrAJeO4BFhRIg1V7wCk4Ajugz4jUwDp4Bsuh8rxR48AxOTydE5mJOfRHwQZY5H6YcxacgF45mJ2SI7NrpFXQqORXqFl9xPg5x4TKJRAApYNikZq1OjXKBVJBncdAAZRD5QMwyQ/o17trmd+6Uor2YdiTceoWXErj4Y3JNwMepKAKuOe+Ud4G1VCZBy7AEEghsAYzS2Z6dqTCotHgN8CLSQhBdUz5YoKVmV0lI1uqzJ13q8EPGIFWk53ehfbWKVg7C/7QkumltvE90VpsOoVLTncxZ2VrnQc+K2dpWCkrpwv0xI3/NChSleK23cppGh6cbo82RbeHdw4WX18gOVFWPllHNm50MQ1tEyx+4AxauaEc+Kxt3g3hS0VyV2TcHSvLWqdtchY+fIDcFvNf/9G0Kl/kpHzFcVPi+NdDO3WDYqOsbdwQ9j6THzuo/4Ly94LfBRgAe0QWmW8vFSgAAAAASUVORK5CYII=',
$w =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAA5CAYAAADgHtGAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRjE1M0VCQ0YyNkExMUVGOTJDQTlCNTFGN0JFQzZENyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRjE1M0VCREYyNkExMUVGOTJDQTlCNTFGN0JFQzZENyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJGMTUzRUJBRjI2QTExRUY5MkNBOUI1MUY3QkVDNkQ3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJGMTUzRUJCRjI2QTExRUY5MkNBOUI1MUY3QkVDNkQ3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7Y9N4gAAAhJJREFUeNq0VUsvBEEQnkeLjFfsRoTETdxcHHHxA4SLEOLgysnBT5AQBImIq8TFRfADxMlZ4uAVEoR4s8uyO9vdM74auwlrWqbDdlKpnnp8/VVN14zp+75Ba2ZTmFCW8blo7+f23lg3C/ZWLpA0wxqE7EDuICeQedu2a+G3A4TpDU4oNhwT0J04acrzvAPTNKssyxqArR22DinlNaMMZLdC9cPQA4eDfRyaI2kBvgwSJ2EbouOxN/vgXIGwCoc1N9ax8foY64WvBgnLdCJOYfmC4pBzSEms3GgrLTFaKh2jC8+lAEhBJwNaueA9SBnEvX8xti4ejPRt0ljHM1EgWvs4IUHBSPZXiToc75msODw9u0rcPqa2YbvH8dXwL0G8oEAUdolC1uCIAeFRCOFyzq8dx0kSBdhuCNTKNRzx8gLGI0JDMHdd94n2BATUDOK8gHM+AcZ3yDMkm06nX6HfYOcUGFRGr7tQRuaOd4dnjxoK7flufFtwSBTrF9pDg7FEmFEVLL/cut+DQYFrIfv5ix4hmOsUGEqDKVonwgpk/1Egj4xMI6XT56wWjcitU3XjX2hkdV63COOs1TrVG3R1OIvInGm6I/eZWhcCrETmOsi8OGNFBf758qs4Cx3O1Oci0NCaQdVHRlmgFrLWpESmQdOte5EiI8s/f59VNKRO62TRfkBaffYiX1EqcHG06QeNDwEGAKvTZjUj0zIvAAAAAElFTkSuQmCC',
eR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTI4QzVFRjA0QTExMUYwQjBCREFFMUE2RkE3RDRFOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTI4QzVGMDA0QTExMUYwQjBCREFFMUE2RkE3RDRFOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRFMjhDNUVEMDRBMTExRjBCMEJEQUUxQTZGQTdENEU4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRFMjhDNUVFMDRBMTExRjBCMEJEQUUxQTZGQTdENEU4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AsWZSwAAAdVJREFUeNrklUsoRGEUgO9IWUhZkQUhrBQpGyRJmtSERLIyysqKhZomFkohCwsWFhoxpbzKmM2Ux8IzxFpmLIg8FhINRa7vrzN1m0xzb5mFTH2dx/z/Of895/z3Jum6riWSJC3Bv7+fIDnegvV9rRnRB1UG9xFMOCq0hXj7baoRMQKnIfahGO5gBS4gFxohD4JQSaIHSwkInooIQaYKRgDfD2tqEJvwrpLFShKrRLsSPJ2Nz1KmcciHK3Dj9+JPQf+AE8gx1WQ2VSNKoUWCj6KvwgvMwCPM45/i/0/pTTZ2049Hjb4Yvj19C8Ki14MOzqg1beJ3iH0D52YvmqptpObTqrGc1MMJq2AZ7NiL+E9hTtZ5ocjsPbBJgzWZmE3Rh1TZYEzsgOqR6EGrFy1yGtXQWtHd0oNusRvg3nAQ0xdtWzZrEixAWeooywb6gWFES8Ah69rh0myCQdghSCtBl5BO7GsJPIm4hTXo5H8/vjIZ3w4rF+1MRrWAICHxeRBh7B7DOtWDJzW6+DOs9MAuk/QlgfzqxKLPwnBkysFvKJX5d1HUE5Uj3qAXumCEE7t+7XVNsGPEKxTKDXf92utaniALMQD9BD+08j0wVaL//clMeIJvAQYAy8QgaR4LlwMAAAAASUVORK5CYII=',
tR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzQ0QTdGMDA0QTAxMUYwODNEMEJGMUY5OEQzOTRCNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQzQ0QTdGMTA0QTAxMUYwODNEMEJGMUY5OEQzOTRCNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDNDRBN0VFMDRBMDExRjA4M0QwQkYxRjk4RDM5NEI3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDNDRBN0VGMDRBMDExRjA4M0QwQkYxRjk4RDM5NEI3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+6f1AcgAAAZhJREFUeNpi+v//PwMtMRMDjcHQt4AFl8TmYwzhQGoCEHMD8R8gFgbi5UD8GojzgfgTEP8D4vtAXO1rxbCFaB8ADQeJzwViCSDmBeLfQAP+A2mQpYFA9j+oxSA5PZAWoB4pUoLIBGoADByB0iBLF0HZl9D0hJMSRJZo/GcgAujyFCSxB1DXw4AxKT5wRePfhAbdBSDeBRU7i6bGligLgAYwAilrNOF7UFofiB2h7FtoauSAelWI8YEWEAugiV2H0qCI/ogUROhAnxgL3ND4X4Bhfx/KZkSK/LtY9FoRYwF6WD6ABh0zlM8BjfDXSL6BAXtiLDBB4z+BGvgX6kLk+LmMplYb6BAOnBYAJUHJThZN02OoHDuQeg5KskA2K1rkMyD5Th+fD1yw+Og2lFaEFgv3oTkcBB4RSuLoFphj0QDLsaxoLsVlgTU+CyyxaIAlR3YkMRj7Phb1OvgsEMWi4QmU5kUS44HSV7Col8FnQSnUVc+g+AAw9XxFkv8MxYzQlPUCSJ1EUv8UiCchG8gIqjdHq8wBtQAgwAAAaKPhlF14LwAAAABJRU5ErkJggg==',
nR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRUM3MzY3RTA0QTExMUYwQkY3MkMwRjhCMjc1MUQ3MSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRUM3MzY3RjA0QTExMUYwQkY3MkMwRjhCMjc1MUQ3MSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNFQzczNjdDMDRBMTExRjBCRjcyQzBGOEIyNzUxRDcxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNFQzczNjdEMDRBMTExRjBCRjcyQzBGOEIyNzUxRDcxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+H98iVwAAAWFJREFUeNpi/P//PwMtAeOoBTSxYPMxBh0gxeNrxXCCkFomMh1WC8QriVFIrgXeQCwH9Ak/RRYADZgKxEVoYilAihvKrafUB1lAnI4mVobELgRayE2WBUCNYVCmGpAtCxUzA1KqaEoTyfVBKRIb5osKLOqKSE6mQJdqAqlrSEL3gdgViK8CMTsWc2yBSfYIKT7IR+MrArEfEO8gwrf4fQB0PTOQ+gLEHOgeA+K1QLwASQzky5dA7AjEIkBfvCXGB9VYDAcBXyD+CcSXkMRWAHE3lD2V2CAqwxNnekC8FMq+BcQSQFwM9Uk40PdceC0AKghCykTYQBIQn4OyzwOxOhA7A/FpqFgqIR+UEch44kAsDcQ5QCwMxCZQcVC8fYYGL3YLoJnInIhyaB4QL4OyYWWRPTQRiALN8UdWzILETgDib0D8l4AFvNDSlA2IP0DFRKCp6TUQZwLxxtEqc/BYABBgAHBXZySmLq53AAAAAElFTkSuQmCC',
iR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMUFEMjQ0MjA0QTAxMUYwQkIzOTg1Mzk4NEE1MDhENCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMUFEMjQ0MzA0QTAxMUYwQkIzOTg1Mzk4NEE1MDhENCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMxQUQyNDQwMDRBMDExRjBCQjM5ODUzOTg0QTUwOEQ0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMxQUQyNDQxMDRBMDExRjBCQjM5ODUzOTg0QTUwOEQ0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+shX4ZwAAAcVJREFUeNrslc8rw2Ecx/dlRf4BOThQiIObYmWhlBi1XYgWDpwopfzYHXHYRVEctMKBNUUSOWBZmZOQkHB1oSgO8vV69FHC9mzTlPLUq/fz2fM8n8/z4/P9zDBN05LMlmJJcvv7Aay6CSshSwHSChWQDwacwhb46m1v/YjNiPbIOB9GBjV7GCGIJ+4AOA8gTjEXYA5OwJSTNIFbxpcI4oo5AM5HkT4xHSxejbCJSmQN0sDLvF5tABblIWdiVrNoU/NGJUhYTDvzg7os6hFdfHeOExdsfHBqh23VZ84+ot7qGmpiOcEFkguZLL7BTqf/KMNdMAEPkKGuhzm1cWURDl8kFZvhHtR7ZENA0lWlpUpd9S51MA5+eJIThXVXZIjOq3hQBMUsbENvxbkb24GOQTeo69oTtB/aAGRJ8FRYx9mVjKnUdGLPym77OfE5XRu0w+UXb+qKfsryrukBE3yfx6zfpF26ZNIdBNnlsSZNS5EhMb2xFLtnaIBJOMSBI4rzKrl/1WbYzEE8pWIHKRfTL49+JKWiEBqhRcbVSe2JFLsppENT7KZx3plQNZUgNsn/MsiRn1VWhaRchxIu1/9/mb8S4FWAAQDBdeHDEVv+sgAAAABJRU5ErkJggg==',
sR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMkZBQ0M3MDA0QTExMUYwQTRFQkJBQkJENDM3QTY4OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMkZBQ0M3MTA0QTExMUYwQTRFQkJBQkJENDM3QTY4OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyRkFDQzZFMDRBMTExRjBBNEVCQkFCQkQ0MzdBNjg4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyRkFDQzZGMDRBMTExRjBBNEVCQkFCQkQ0MzdBNjg4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+l6bRzgAAAe9JREFUeNrs1U8o5GEcx/EZDVlj/RlMWMPaYonWwUUoUv6kpEQcsAeKgwOOcnCS4bAu3OSi1G5JlIOryMVBaKPdkj8lf1uSsIz3U5+DNIxEDky9ep5nPL/n+3y/z/MzVo/HY3nJj5/lhT9vKMDknKUS82h59gAsWkfThWPUM257tgAsVkxjQxPO0Yp/fB/75AA8/A1xGjpgFqtRoFJkIuJJAVi4gWYA5fSTab9gDyO4wDiW4HpMANudxRNo+jEF8wYWYhX7aEcwGhGNGTOPZ0wmZSZoWbZlwVcG6VrETLzEV1QjBoOm9uhTP5TF7bQm4zy4Gaf6ChCK/9rxCZLwEyuohBPdKFDQDwr6C+Eo8RUgRgFC1DdB8nXQY1jXjk0JPyFHpfTHoTb4YACnHjjS5EWdiRVVOtgOnd0fZGFH61zjo68ADgUIw1/EoxcpmMAGhhTApTOzawOPyiBCZbHr7psb1IlZ5CIR31XGUdX9TBkfeHs3bHfGkbrr60o3Q9+Zg1xGFIZV+wpt0KEM7V7W85rBnuoboLR/cL/dKkOWbtAkanXbotQeegtgvf2Lxj3epAnSm3qFaXxGs6aY65qmvpl7it96DwJNKdlM0UMl2tJNMg+soefW346VmVNlcemf367G2+rfn8H7T+arBLgRYADsIoVIgIjHNAAAAABJRU5ErkJggg==',
oR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENURFMjI4NzA0QTAxMUYwQkQxNkY5QzYwMDczMTc3NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENURFMjI4ODA0QTAxMUYwQkQxNkY5QzYwMDczMTc3NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ1REUyMjg1MDRBMDExRjBCRDE2RjlDNjAwNzMxNzc1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ1REUyMjg2MDRBMDExRjBCRDE2RjlDNjAwNzMxNzc1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+6VpyoQAAAjFJREFUeNrs1V9IU1EcwPHNTRQTg/mgD0YxGFNCE2TSJBoaSCYiiCOTAqXpS/6J9CGhJfiyFKqBESENy4eEfNEJPUQYUYyC+abUgxQhSgXlnwftH6zvD34PI7a4Vwh82ODD+e3s3N+555zfvbMmEgnL//xYMxPsaYL5mMVK8xolaMEYNptqLM38tkT8BkO4hwh6UCtjGfPknxOQwE6zgmKcwm0cRCXe4gua8QiTmtwjfSSP/n2zWSlWNYvDOIQwvnKhm3YVMeJq2nU8RLkmd6RKnm6CRgTQj10ubGBVO8QzuEAsSx6j/wHtIAaIN9KdgT1Nfyva8EITXsM4fuOKTEa/l/aHriDtJ9UKOnAax1CHEUxgC37M6Xa9xxm5ESY7Z7aKwrpFOXqHr3AceVjAUd3KnyhEEEfYqo9GVmBh4GUNZY/ParIiTe5ElZZunLHXdWy70S2SFTg03CFBn979nK5IzmYKLnxjbK2OXTNzyIv4QPIwCe4TX0Q2bqEXBejCJ90eST5taAUknNb9dBJLabYRW7VM/Ro/hw0VKJXngf5fhg5Zy7Ib+QhxYS59z+ThI3YRyyvERuzRsVeJR82UqXxO4il8JHkn1aPJPxNvw0vs1rFus8/BJZzXAy2Tg8QJEm7SRpmonla244BMhE5+8xuegAR3aW7qQbv4XkP7XStnOOnJljetT8v1Mf1BU/8HXBCS94xWThwvsQy5gRu6VXfkmUmqtADfI5m/zP01wR8BBgB+MMizqVuf/wAAAABJRU5ErkJggg==',
aR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyRkM0QTRFM0YyNzkxMUVGQjcwREIzOUI0MDM4RjBGQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRkM0QTRFNEYyNzkxMUVGQjcwREIzOUI0MDM4RjBGQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJGQzRBNEUxRjI3OTExRUZCNzBEQjM5QjQwMzhGMEZCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJGQzRBNEUyRjI3OTExRUZCNzBEQjM5QjQwMzhGMEZCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+F56cIgAAAWlJREFUeNpi/P//PwMtARMDjcHQt4AFm+DmYwxCQGoOEGsA8TYgrvS1YvhNNQuAYDUQO0HZmkB8H2gpyCJzIP4LxIxADEodj4EWnyDHAic0vi4Q8wNxKxbfngJSHkCL3pNiwX4gdkTiXwbinUD8EE2dDhBXQNUbkGJBOBDPB2IlIN4LxLOgcXAHiw++A6lGIG0JVHOcKAuACl8DKR8i43EzyAJogjhOi2Q6GUrvJCWIYN4HRW4BNCUxQ1MOCPyD8s2g/Eagr5+RZAHQcFAk7yPg+vtA3A40fDYuBYzYCjug4aCg+wpN72ZAAy5RNSdDvc4BxDmUGI4vkr9AaUkCcVQNxA341DDiqg+AGm8BKVUgTgLiU9CIRQfXoPRMIM4H+vYnKanIFYiPAfE8IkIiHYgVgdidaAuArnkI9IUckBkPxMpoyZQByq6Esp8C8SSSgoioLHyMYSOQkgD5FuigT1S3YLROpgoACDAARqVi+Y6Zd/EAAAAASUVORK5CYII=',
rR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQUE2Nzk3MTA0OUYxMUYwODRCN0U5ODJBMUM5RTU4NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQUE2Nzk3MjA0OUYxMUYwODRCN0U5ODJBMUM5RTU4NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZBQTY3OTZGMDQ5RjExRjA4NEI3RTk4MkExQzlFNTg2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZBQTY3OTcwMDQ5RjExRjA4NEI3RTk4MkExQzlFNTg2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qmBugwAAAe9JREFUeNrslVsopGEYx2fWMUY2wuaKksONUm4cQikl3KyIrEMuXLpUXCApJRk37oSQbVNbiHW6IJmr3axSpBR7IcdyY8hp/J56tqZpZr6Pmi21X/36z7zzf57ne97TWF0ulyWQzwdLgJ/3XyDYyDDvsBQg7ZAD4WCFO/gF/RW5lqU3d0DyUWQDPkEvlEMpdEEE/MAz4i+H1dcuInAfSYUs3nLHhydMu7nAE2+6AwInkTSI9JVcn3S4hFhipkwVwJiNfIFkkt/6mb5q5Dc061rWMVZmZpEH4ZDkRwTI7yFSSKejBB7hI0xDD7/Na0EHMgQLRgWk7W8ENKCyQDfwHWTaqtx89fATX5P6FqHVzBpEQx88QTdkkqTDI/lfX6V0AVFg1y1sWEC6csrOgCTVAy++UDiBBLhiqpze8nkrIG9RRsAKOocOo6sennvG7TDG5zX0K13maVeGBbahRT/PEliDXkMnFEGxLCbj3erZU5X5PzM8aAQWIus6BTFwClu8Zb6bxyYFGWvT7xG6GaoZmzE8yQRMILUyt9INQXMGV4qs0zG+7NdcFedIHAQR+OzDk4hs6l1lw+cyXUATjCONsKwHaxekWIacXNkMIAesiOQPr7rs3Ip81us6Rc+GPEHwBwZIPPmm2/T/X+Y/K/AiwAD8A6W3pVuneQAAAABJRU5ErkJggg==',
lR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFODg5MzZGRDA0OUYxMUYwQUQ1REIwODkzMDY4MTBCMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFODg5MzZGRTA0OUYxMUYwQUQ1REIwODkzMDY4MTBCMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU4ODkzNkZCMDQ5RjExRjBBRDVEQjA4OTMwNjgxMEIyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU4ODkzNkZDMDQ5RjExRjBBRDVEQjA4OTMwNjgxMEIyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EFX7LwAAAbRJREFUeNrslU8oREEcx9/blIs4apNN688eSORA3OQgWclByomDXNyUxcFFWeWobC6kPSmSdaVcRKn17yJbav3P0UGhXZ9Xv1fTa/ftaNukTH36vZn5zfc3b+Y3M2Y6nTYKWTxGgcvfD1CUyyF2ZDRgBqEbApCCW+gIthvveQVAPIyZytBVoSPuGgDxXUxQqi+wApewBBfiU415dAvmySK+oIhb352QhBYogyg+xdgEDP3oDxjox4Skas12Dk6gWXE7hE8YgQ0ZV4d542+ecv3BmNgHCZBwiH8h8gopWKfeivg29hpmdfagV+wy9IBP6bOCriFojeuHUagCr/S36QSoFRuX1LTLHTP2yXJsYQakfR524BQq8zlo6mS6lO8SQTtNb6Aemux0lOJl5s/YDyhV2uPKHt3rBNiTABOSlkllH8odvpZgDM6lvq+zRKv2aYVJqJFZOssZ+OWk22sfcTqZmd4DOWgh5aBFJUMC0mal5DEMw4y0hUmCaa0AWa6KiLInjTCuLFkM8b5MOqbbi+Zy2allEfFQtk4z15OpXNedymZbG38Am4hfuY03/9/kXw/wLcAAhrl8BEMfNVoAAAAASUVORK5CYII=',
cR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MDQyQzU4RDA0QTAxMUYwQjgwRURBQ0VFMUM2REEzRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MDQyQzU4RTA0QTAxMUYwQjgwRURBQ0VFMUM2REEzRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjUwNDJDNThCMDRBMDExRjBCODBFREFDRUUxQzZEQTNFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjUwNDJDNThDMDRBMDExRjBCODBFREFDRUUxQzZEQTNFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+mgcXdgAAAW9JREFUeNpi/P//PwMtARMDjcHQt4CFVA2bjzHwA6nJQJzha8XwjSoWAA3NB1J/gAZOBdJLgdgbiPmAOICQXkZCqQhouCGQOgfErkAsDcQLkKRrgJa2kh0HQMPVgNRRIM4EGrQHSE9DU1IBVKNFSSQ7AzEnEM+B8q+hyV8G4puUWPAGSrMBXZoIpE3Q5C2BuICsOAAaCArvJ0DsBsT3gPgOHnPcgUG4i2gfAA1XAlJXgLgYqHE3kD5LwKdrgHrUSQkiAWjwPIbyNxCwYC0QPyTFgttArAjEckCXgSLZloAFNkDMS4oFr4B4NTB4eoH0DSBWImCBChCfBzqGjaAFQEWg9P4XaHgkkL0C5AsiSxFpaFARLCoWAbEflL0MiPuA+CcoxQExM7R4qAHiRpB7oGIMUHl+kosKqK+mgyIc6Ks2IBuU+UC+tAfyD1GruM4A4iIoWxFKK1OzuI4B4k9Q9gtoBnxKjEbG0Tp5wC0ACDAAzV9fQgXi5YcAAAAASUVORK5CYII=',
uR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QjVGRTJBRkZBMzYxMUVGQTQ4OUQ5NTUzQjlDMzYxMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QjVGRTJCMEZBMzYxMUVGQTQ4OUQ5NTUzQjlDMzYxMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNUZFMkFERkEzNjExRUZBNDg5RDk1NTNCOUMzNjEyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdCNUZFMkFFRkEzNjExRUZBNDg5RDk1NTNCOUMzNjEyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1TcbjAAAAkRJREFUeNrslTtoFkEUhXeTX4yKID4RFXw1ghpQRAg2Fj4a7UQiFoJgq6VgY5VORAsbLcQgQgqbP5DEziJiEQULQTFCwEfU+A5GxWTX78D5YTLsw+bvHDjcPbN37p29c+5smud50s7RkbR5tD1BIyTNB0mn7JGeZC7kdSP2b3GNtOgMcFyF+Y3jd3NtJINn5vryDvis+VLMIviHONa8BDiexyj4FiUAL8EzFt4q2jn+vZgdYDNYAp6Dz/j3FZaIMQG0qwVgGkyCrw52AtNrvwGC9GO/2Ue7XAHemyd1JXriRV1euNgIxwz4CT6BX659d6WKCJz68Q3odtCPThSPhWDK73aC11GMQpm2eL/tQXa1DbsMXAE3wHVwVXN+t9++d4tiNgrKI4cB0x/+dJ3HuRKVSgwntcZrk8oEOhfr+E4g0TzQut7ngVRVzttlfVOUII+aaFZBgcrUBX/H80qsziaL1mZ1JdJOMwJIpkeBGmiUuRfMDfN8DagnmvDj2D/gsMs0qMZkPq+UKQ6nMH1umpvgntU0DobAK3DGB63GVKLTVtJFklyu6uS1mLfgKY7bg3lpfTnY445VAjXeavym7DOG2Q02MTdRVqIZf/Y6FhzCccTzF8Bj+Jj5fd4PBcEPYDb6DKbrSrQX89BUrd+0oibd1eE45hKtMd9H0tGqEnVKjtgN0LNGo+a2nvN5XJJkWzHKEszTvOd2YbaC9e5oXQVffJ2M4/so+p+krWu88Atiyf7LD8dNl8Y/oNLb9P9PPxx/BRgAd9LrGXv+r2oAAAAASUVORK5CYII=',
dR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCODhGNzI0RDA0QTExMUYwQjE3ODg4Nzc4M0MyMUMzMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCODhGNzI0RTA0QTExMUYwQjE3ODg4Nzc4M0MyMUMzMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI4OEY3MjRCMDRBMTExRjBCMTc4ODg3NzgzQzIxQzMwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI4OEY3MjRDMDRBMTExRjBCMTc4ODg3NzgzQzIxQzMwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GVKT4wAAATpJREFUeNpi/P//PwMtARMDjcHQt4CFVA2bjzGoAqlJQGwNxA+AON/XimE/NX1gAMQeQMwLxLpAHEjtIPqMxn9JUhABg+A8kDoNxFOAXr9EizjQhwZDKtCyI0B6HhBvAlr2llqp6BkS2wZqwV2gZWK0TKb8QMwJZf+nVT74C6XfUCsfvAPiA0D8B4h/A+PgCTCY/IBsXyD+juQjZnJ9sA+Ij0GT5Xeg4cuA9FpoIviOpO4FuT5gA+I8IJZDE78CxEZAfB2Ie4H4LdByQ5BPgb68TIoFIN89R7MAFFzs0GC5DcTGoOQMNQfkKy5qFnYgi1SQHPmH2qUpIxD/ROJ/JzYOhJHSviAW9XxI8r+Q5ESIteAuEMsA8VMg/gHEokiZ6y80Xt4D8RNQ8gXiD1D511i9OVonD7gFAAEGAN03TNqMKOapAAAAAElFTkSuQmCC',
pR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxODIyNEQ3ODA0QTAxMUYwOTlDRjgxQUE2MTEzQjA3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxODIyNEQ3OTA0QTAxMUYwOTlDRjgxQUE2MTEzQjA3OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4MjI0RDc2MDRBMDExRjA5OUNGODFBQTYxMTNCMDc5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4MjI0RDc3MDRBMDExRjA5OUNGODFBQTYxMTNCMDc5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+N7SMlAAAAYFJREFUeNrslU0oRFEUx98gSSkf2VsikYXyURaEKErW06ysZ6GkJCvJjh0bxW4iypRsLHw0WSlpbHysFJqFUKaE53frTN00973urbdQXv06c8599/zvOe/eOzHf970onxIv4ufvC5QFDaYzXjtmBZogB0uj3d6GjUDM9JFJXo95LFJlL2SgFd4QvHFt0ZRhfB7q4ByuWciyq8CQId4v807FTyIy4CJQHjD2AlnNH3MRuDLEc/Q9j23RYl8uAquG+IzYHi12aS3AKg8xO7/CWeLr9DylxdRO27Leptp2VUJ9kCd5JX6S34Wd8w01xF+dTjLJGjDV4pbiq7bsQ0qbP2h90EjUjJmGRJE5u1LBg5zyYbiAOSpJh1ZA8gXZggnDosbhCCZJOCJibbDH3NnACnhhExO3uGrOEOli3kHhYOLHgiqIW16WnSRXCbfFfwpr0YmlwK36+KAqmIDGsOta9XQROqAWqqBCxj7gHZ7hDo5hjZZ8Yu8F+3Pw/5cZucCPAAMA+XhrhLwXB4MAAAAASUVORK5CYII=',
AR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOUQyRjdFOTA0OUYxMUYwOEJDOUNGNTIzNDlGQUI0QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOUQyRjdFQTA0OUYxMUYwOEJDOUNGNTIzNDlGQUI0QiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ5RDJGN0U3MDQ5RjExRjA4QkM5Q0Y1MjM0OUZBQjRCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ5RDJGN0U4MDQ5RjExRjA4QkM5Q0Y1MjM0OUZBQjRCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k4hEqQAAAg9JREFUeNrslU9IVGEQwN+zlfXUrhQE4ZI3PaQguhAdAttAow3p1EKrF/Eg6cHo0lnolIZEELUguAm1kEFpLUJ/1fUfXkq9BbVgLWRF4goW+foNzMI7+HbfChsEPvgxb+bNfDPf7HzfmpZlGaV8yowSP/9/Ak8hh6cp4wCiH0Lgg9+wA58hdv6k8ShfvJnvR2bxc4j78BHGIQnrUA/y7SwskiTsuIgk2I0nM1YULLjq5KN+ryDj9N3jUHkNIg4RqnuoNmlPFxzSqsfU/Qcc4XscW7urFuG8hPiS2zq6BN6GZfgJVfAJAvAOeuAbtBEzkTcBix1FzOMYUL1Fe38RW0JtBzWRgc1UWwzRgN5YaExvgtem39DKEiwyDK/RJdGA7Ag9qn4JnbKCY3oaDhO4isyC/B5h9GvIEzknErZiS/ParZO2Ar/cHLRn0iLo1MBtSDsUY+qZkOeP25P8Ab5S4SwM6dy/5T2IfAlr0Ku+V+C5vtdCuZsWPYbLbN/LolK9tOYNejN6yDYMcoJ92K6r6QJsFkxAwHuCZeTuQQf6A52sSeQLZAaCOgjHbaGyq4jbc9AkhwlOkWBKbccQfeCHOex3bP7Tups613cRQbLYIEQJHM1zXyV18irxyxZ72ckk3YIUyJWxAFtQDWfgkg6B7HSj6NtUk/j1UEnbKmwj+R1GWPjunq/r/b/Mf5LgrwADAAcQ+3h5YZPyAAAAAElFTkSuQmCC',
gR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBMjcxRTQxRTA0QTAxMUYwQjYwMUIyRDcxODI5RUVFQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBMjcxRTQxRjA0QTAxMUYwQjYwMUIyRDcxODI5RUVFQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkEyNzFFNDFDMDRBMDExRjBCNjAxQjJENzE4MjlFRUVBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkEyNzFFNDFEMDRBMDExRjBCNjAxQjJENzE4MjlFRUVBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0KWlwAAAAaFJREFUeNrs1U8oREEcwPH3UEgWpeSEEilpS7Hk/8lhXRwlKSmllZTaEkcHly1FTi4ODkhykD9FyRIXlJWi5KI4SJzWan2nfur1WtubV6uUqU/zmjf7m5nfvJk14/G4kcqSZqS4/P0BMpx02gwbI1QDqJGmaywi1NVofCb7rZlskwlcT7WPbISFWnWDUMFbGCSsnSKCe6lOcA8fFuBBLmal7RJHMhHnK+AH6VSvuFMzxAZabd0O4ccW6tQqWUnM6QoCyEEvtiV4NwFMRT2jWc0e/bKXQZ0UBWWGFVDL7yPw+vdLee5BtbzfwZjOAEXYRacEXLJ3oG1ZHv2y+QW65yCKQgdfcT5ibs9BsdpoNj2TugPHeJc9ucCtTCLqZoA8XGEFe2jCOV7QjhtMSRo9bq6KMgyhSoKr4pXgqlTKYRtGuZsBImzkB/W0pW0Ok9bPmT4qZaduUhQh94PUWZa2WrzZDuUM1ZnuAAeS61Vbuy9B33FJ05pOigI/nMx5TCRoH5V3jlegvu02PFnvLTzgEc+wXmKlKNG+rv//Mn9lgC8BBgD7sGVcKi5W/gAAAABJRU5ErkJggg==',
fR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3OTkyNDg4NzA0QTExMUYwOEQ2QzgyQ0MwNTI4NDdDOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3OTkyNDg4ODA0QTExMUYwOEQ2QzgyQ0MwNTI4NDdDOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc5OTI0ODg1MDRBMTExRjA4RDZDODJDQzA1Mjg0N0M4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc5OTI0ODg2MDRBMTExRjA4RDZDODJDQzA1Mjg0N0M4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+6RV6OQAAAcRJREFUeNrslU8oRGEQwB8RJUUtByeEEmIvaDn4c5FQykYkUQ6kyEVycJEr8ie5+FMIBySHvThJDnJxcWIVuQmlrGL9pka9nl2PbddBtn7NzPfNm5k3831vo/1+vxFJoo0I//5ggr0jYx/OfxIE/204s02AUxWiFjbU7oOyIEEzoVfNLcjHHrd7g3l4qncZozhXo09DlgashE3oVt8kmMUewX8N/RSG7RJkw6rqK3DDw8sESUM/ADcsSDLWJeAujJmK+9aQX1QmgE/1OItPkspH05rvOwluoU31HpA+u6n2Er0VjqVibBlqHno7LKl/R6AEMRa7H6TPAwSZ1CAPsoG9jli3vOkE64P4VaDLAZmyJoiS62w5HUcIBw/mWNYPEbGQCHXsX5j2dhBFrKXbzgAnF6LQErwcIcc1GXKhxfKYtCojUIs+vUGQMy/nvEmDnMAbhaSG5VNB8HgN7iWoFzkHKaw7w/UtalT5SlC5SCVqd4YrQZfKexmuDtkIMAfjxzOgYhnqHTxDM1zpJVvUedTQNs9XCWJsChgy6TNavST7qGoUPCG1iOplrwGuoRSc+uHLh2K91QX4OUJu0f9f5q8keBdgACaT0d0bEwOJAAAAAElFTkSuQmCC',
bR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQTYyMUZBMzA0QTAxMUYwQTBCQUYyQUNCMDJDN0Q3RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQTYyMUZBNDA0QTAxMUYwQTBCQUYyQUNCMDJDN0Q3RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBNjIxRkExMDRBMDExRjBBMEJBRjJBQ0IwMkM3RDdEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBNjIxRkEyMDRBMDExRjBBMEJBRjJBQ0IwMkM3RDdEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8aVySAAAASRJREFUeNpi+v//PwMtMRMDjcHQt4CFVA2bjzF0AKlyKPeGrxWDJlUtAIKvQLwLiH8A8W2q+wAIvgBd7U6TOAAGTzWQ6gHSu4FYkhg9jKC0SoTBskBqFhB7IAl/BuI0IF4F9NE/Sn2wCWr4HSCuA+J9QMwLxMuBWJkacQALDluga18A6Wagr/5CHchGjTh4D6XtoUGmDQpeqNhPaljwBUqvABp+DEifR7LgNcmRDDRkJZDiB2JY5NlAwxwbOAx1AMixr4FBGEtMHISRkHpt0fixxATRGzwGfsYj95TSwq4FiEF5Ip0WORkUH/XAMP4IxLOQUhZZFojgUCsBTQSgtC+ARY0osRntBhALoYmBMhYsyYGS6E0sap6TVRaN7CqT5hYABBgAr0OP0Hwa9vgAAAAASUVORK5CYII=',
hR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkI2QzBEMDA0OUYxMUYwQjZBOTg0NkE2N0M2QTI2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkI2QzBEMTA0OUYxMUYwQjZBOTg0NkE2N0M2QTI2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE2QjZDMENFMDQ5RjExRjBCNkE5ODQ2QTY3QzZBMjY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE2QjZDMENGMDQ5RjExRjBCNkE5ODQ2QTY3QzZBMjY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+DfcCfwAAAVJJREFUeNpi/P//PwMtAeOoBVSzYPMxhlIg1QHETEB8C4iTfa0YjhDSx0Sk4QuBVBcQbwHiSUDMDsSHgeJuBDWDfIAPbzr63xqI/wNxHJr4WZA4If3E+KAYiP8Ag2MRmngy1HcGlAbRdyBmxiLOA6V/UWpBJygxAF1ahSa+HIi/AH12jeJUBDS8AUjVA3ETEPcB8TEg1gJiA6AFF6mVTP8Cqa1AHA3En4A4HGj4KmolUxuo2jKgoZ+hwnJkZzSggRXQVCILxCCXcwHxB6DhglB5ULhrAvE3aAJ4CcQrgPLl6Gax4LC4HRoMS6Au/whlw0AkEEcBsSgQ/wNiUIYrA+JyojIaNGPVEMpESOqDcWU6FjzBVwoMClki4gnkAw9ckrgsSANiXyA2IbLQBMVJLykW7IbGASMoFAklFCi+RYoFoEiOILHovwTE+qNV5uCzACDAAAyA+O0wNkyeAAAAAElFTkSuQmCC',
vR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNThFQzM5MzA0QTAxMUYwOUM4OEVDRTg0NDNGMTVFRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNThFQzM5NDA0QTAxMUYwOUM4OEVDRTg0NDNGMTVFRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI1OEVDMzkxMDRBMDExRjA5Qzg4RUNFODQ0M0YxNUVEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI1OEVDMzkyMDRBMDExRjA5Qzg4RUNFODQ0M0YxNUVEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pP6Z1wAAActJREFUeNrslU0oRFEUgGc0SZSyEgslyQJlwcKoiRhZmITISspGfrYkKZGSiPwmKwvT2FDYTLEQMYqNRFnIhq2FUtOk8R2dqZum9ybGQtz6Or1z3vm55517nzMajTp+cjn/RoK9U4cb0QXb0Ax+n9txlJQEBC9CnEGWoX4BN0muv5WA4OWIQ8iMY36FWpKErBKk2BQwbARfg0FY0ud0mPzSDqi8GNELy7Au7YBUqo2oXZxuoB16YAPbRUI7wLkQcaoJ5qENTsCn9hrEJbTCOPTDMfoS2wS8VIc4N9riFTUMwa3qHqEPVqBFdWkQwr/Bbge9xrRIeypgCh5owUcC5B1CmINStcvKgAHLb0AFHkRsvn0E20/gjFRqS2U14BM07a5P75sVuHGWXudJxTg+G0Fll2WyM6g3fOR7BK1a5IewMaJPsAA5BC3Q4PmIbB3Rexgz/DctvwFV7iCqIKKqK+iAGa1YliRYhE6drtjy4B9I9BxU6qRIldPQKJNCgLBxDiR4N4zqOTj4ylWxpYfJYbQkFyZUd0Bgr9UQuGyGZFVnXd4biWOfTcZtKhfesR6m2HqDaqo/Sdb/oF77Lf+DJggQfPf/l/k7ErwLMAD7ZaivKPmX5QAAAABJRU5ErkJggg==',
mR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjY5ODg3NzA0QTAxMUYwODZCMjhGNzk0OUU0MjE4QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjY5ODg3ODA0QTAxMUYwODZCMjhGNzk0OUU0MjE4QiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjEyNjk4ODc1MDRBMDExRjA4NkIyOEY3OTQ5RTQyMThCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEyNjk4ODc2MDRBMDExRjA4NkIyOEY3OTQ5RTQyMThCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xq8E1gAAAbpJREFUeNrslU0rRVEUhu/lyvfIQEgGGBAjRRkYSCmfExnL4JZiLkyI/+APGFCKJIWRgSIMTCT5FiFfxXUJx7NqqdWJc06kDJx62vus+5797r3W3vuGHccJ/eYT/jf4scHMcmiYphSuoArWIR0umqtD3X4GkQCT2Id+816u7UCQFSQE0GxouwANMAGOiQdfAenopakzoRGo1v44KZlD80y/HRrp39EOGf0qmr4va8AH7oJIOqLQA2cwBzVQJHIYhDX7AQZhrxQduN5lYCnyKORApw4+Bl3Q5tKf+hX5xfUe1YElVfOQBZKWQzXucOlf/QyS4A0ezAqbFSnyJhRDi/4eM4OmQaKfQT4cQ5mJbUGupiRTzSsgD7KNbhEq/QxkxjEKdW8KH6eJE9s1sWsxcOluZNN4nmRE53pKZ42mCZJh0sTkPGTomfh4amWCmGZ5GezoLvnuc4RBgdc2LdStmgKp2p7Ak64sXYu5p/pUo1vRGnrWQHL4yCyezKqkHyEWM7GPQxU3sdvPavDZZVeCeErFjq4q9sVNO60aoT7IbbokBtBqYpfu60DuHE1Li4nJCrb//zL/nsG7AAMAXYSTZ/6msQ8AAAAASUVORK5CYII=',
yR =
"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20fill='white'%20d='M195.2%20195.2a64%2064%200%200%201%2090.496%200L512%20421.504%20738.304%20195.2a64%2064%200%200%201%2090.496%2090.496L602.496%20512%20828.8%20738.304a64%2064%200%200%201-90.496%2090.496L512%20602.496%20285.696%20828.8a64%2064%200%200%201-90.496-90.496L421.504%20512%20195.2%20285.696a64%2064%200%200%201%200-90.496z'%3e%3c/path%3e%3c/svg%3e",
wR = '/low_altitude_interface/assets/alert-haze-D4NH_G_e.png',
RR = '/low_altitude_interface/assets/alert-rain-xrlzTbsn.png',
IR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAABVCAYAAAA49ahaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QTZBQzY4NEZFNUQxMUVGQkFBMERCNEU1RDYwQkNDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QTZBQzY4NUZFNUQxMUVGQkFBMERCNEU1RDYwQkNDNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRBNkFDNjgyRkU1RDExRUZCQUEwREI0RTVENjBCQ0M0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRBNkFDNjgzRkU1RDExRUZCQUEwREI0RTVENjBCQ0M0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+e6XqAgAADEBJREFUeNrsnX+MXFUV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',
ER =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzI3ODBGRDAzQkUxMUYwQUEwNjg3MTk4RDY3RDQxMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFQzI3ODBGRTAzQkUxMUYwQUEwNjg3MTk4RDY3RDQxMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDMjc4MEZCMDNCRTExRjBBQTA2ODcxOThENjdENDEzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDMjc4MEZDMDNCRTExRjBBQTA2ODcxOThENjdENDEzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+E8QPagAAB7pJREFUeNrsWFuIXVcZ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',
MR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NjdBRjEzQTAzQkYxMUYwQTRBMDgxNzg5M0U4MkZFRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NjdBRjEzQjAzQkYxMUYwQTRBMDgxNzg5M0U4MkZFRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc2N0FGMTM4MDNCRjExRjBBNEEwODE3ODkzRTgyRkVGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc2N0FGMTM5MDNCRjExRjBBNEEwODE3ODkzRTgyRkVGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+36ueCAAABv5JREFUeNrsWEuIJVcZ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',
DR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNkUyREI5RDAzQkYxMUYwQUM4ODg5NUNGMDFBMTFEQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNkUyREI5RTAzQkYxMUYwQUM4ODg5NUNGMDFBMTFEQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA2RTJEQjlCMDNCRjExRjBBQzg4ODk1Q0YwMUExMURCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA2RTJEQjlDMDNCRjExRjBBQzg4ODk1Q0YwMUExMURCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+2rQZqwAACPNJREFUeNrsWFuMXWUV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',
ZR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGM0Q1MTREQTAzQkUxMUYwODI2OTk4RTVBNTQzMjRFRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGM0Q1MTREQjAzQkUxMUYwODI2OTk4RTVBNTQzMjRFRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRDUxNEQ4MDNCRTExRjA4MjY5OThFNUE1NDMyNEVGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkYzRDUxNEQ5MDNCRTExRjA4MjY5OThFNUE1NDMyNEVGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yOqAiQAAB2dJREFUeNrsWEuMHFcV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',
SR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNzBENzVGRTAzQkYxMUYwOUM5NDgyNEY2OUM0MzQ3NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxNzBENzVGRjAzQkYxMUYwOUM5NDgyNEY2OUM0MzQ3NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3MEQ3NUZDMDNCRjExRjA5Qzk0ODI0RjY5QzQzNDc2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3MEQ3NUZEMDNCRjExRjA5Qzk0ODI0RjY5QzQzNDc2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1yx2WAAAB5hJREFUeNrsWG2IXFcZft9z7tfM7MfsZjebzbZbI1VTxDa1tKQK4lcx9EcEFf0RRQIRRRAqVDSgtiAIoiD+8Y+NSJFAsNKoFEOLpVCbtom2BBq1KE0qadJNsjM7MztzZ+695319zp1Zm8BiJvqnSGYze3fuxznPed7ned4zYVWlt9PL0NvsdQPQtV7BZicf/kv/qs8DIapZon3LERXK1C1kaUfNfh7n7sPld0OFCY6ruO/PuejvIkNHLDOdajk6ci6jzBF9aimkj24NqJ0TuZFuZyIeD1C7uFroAwxYAFSG92LCD1ar9nsBU9KX4fnRBPMAsbNieB8wfyOy9FWndGIdY3lAuf4PDO2csFd9zjChX8tcxD+fCmm/B+FXWohqLiS5PyozDoQnbRLQXdsq/OJkQPdvS8zvCwCq4oKMAYo3s/0/e3LVZz8QBn44sfTQeu4ZU8W58o2/JStIBqIMcOW9xhBPhBzWURK29E6cPxNiRSgl+aX9p5JtCujy4K1zHhoeuxUP/z0F/euZFiiBlEPhF1avBWYAsLKkGYb0DBpgmY0p2V4zx6OAP1iUa9RrAtq0ZBsYDZdj0FTEBwcFUSPVoptjPtTGi9bw8AbngTMe43J9I+aILgoZ/PmBqVAeqUbmqUrAR4CbnF5nyc6nWk7Uw6AJaJ4OzeuDQpdXUxm0+oISicQBcxyiNgDhAWASz4zmrhS/QncluMnYVCMt4ipcsHUi+Gsl5AO4fNzJdTA0FfhSsSfHzEb8XYy87FdViUwYBqz9jKWZFhkmlji0/r4hKMxU6IgxJfGfO5kOMNjgUjen1PFtczX73ExMH7FMz4zNUAMasoaXKpaeEqHb1jKlVq4Oq1evjSRgkztxlzoFZGWKCEzhPvXagMzE6wXOozI92Ngsz6mbZtnsRKJbKnbbQo1TiH5hscqdsRjykwLMcQh2+XJfkXiaQzt+orKWgVGuhRxMJkGy2is6/ZwcSseuZEllqBNVb3ffC4Ba1nMkQ0YmJ7mcqZm7eZIeBNqHxgIUW34Arlm+1FNZSTVvwVkeDI+E7v/1wFgt4tAG1vZQFsNq3FDQMmKqdBskxhlsCKaQV6RrhWYFGJ/I+HMYbjxACLwDbZTtQqp9gILN1SFbEHrMJaChFrkYqISGh2yIFhta8qnsyhIyUtNxlosLgrAUB9qLKphr5rQwdlJDK+9oDEqbZ+u55D4+Au9p/PAIEJfAiXOUDzHgoCEPiEeO84tCVJJNM4fK2dxaY0BY4NsIG/XpLmMDwsh9BGAVYDLYvfCaQvQwskfLbOINksqUgzMYQVCG9MhtWro0B9I+tBfAIc6D5/I0g2xf3jfHByT0MlbwMTA1QMBBxACEgQrIaFgyLq3p24FFx+g7/Xe2A4ufDABEB3lRkLEqbIKh44amqMHzzVx/NfZ+CPP8CLnnjzGo9yy5PqjGm9PyCLoBIoVvMHARKNqbDF2Ia6bn1GKLwg6NDLcbsOvqlgcxugqw3IxZ2yuZ+/HYgCYiOjZf5Udh/a0AVQUI3zKCXqERLGyd0wIp7p5Y17mfrcmOVzOdilHmFIi6uA6LJwPhCvpa6KudCtkXezLTEZrfXjG06uST7UJaY5fMU7N9kr/YyGwLrHwtgk2x4hUAMcI87/lZQfPuIxB9a3nDyY4lkQS3TeLhtlUNfXqgQDfBhf2Xcgqe7mqwC3RNV+XetVxeEOXxe9nG6/Wu0J9W3T3nu/KVVk77/O2hkzPTos8R0npQs3vXiWaTnjtcz7XZM1xrEH0cItsClfXmRI4lMeen2O6/mHn3yvkZK0sRD8X0013JeAy90HClYP8Gjk933InVQm+phMF+Yw0MrN+ZVXqs67caUP1NVbPFWlrtg9ZzTEtdw3uSMKwiDB+vO/nCivrmLL/YNWm/frHPv2xnTFdk2XiADp3NaGgKOMlvtix/ph5QC1puOqtPr+DCKx294x9N2fGJOTq6hFHOohwdpb3Yx6LVieQsf+igm59o6v1nLrkP3Tev316I6PQo6cttzdiA6iFvSMn3i/p8bO6eDGkagj655qhxtq+1jqPnA2MqL3f0kTcS+tIMthfLEd87E5uZgUjadXpsBWGAuDhcCez0yZbuWYx0l1yx3xobUDCicxT1ze0xHby1xl9+viE/8PbH9vjDi7GpLMIx8HuccLkT88998701Mhf6dPqlHl1Ahr1vLjLT87CrOnfW33etL8qbAorMW8ccqzx6oTi5e8Y+xn5YDBgbvqsawnBoB2haj1chiAZE+8SKu/t0R57cOWEe9bENye2dxi+D8IHOfhvocE993YDeHAwf84DgjoOnOvT911L36j11vr1mOMNmf/dESA1oqmONPtvB9rZZ6J5U+Dd/bCr+lva7qnw0Mrwb96YI9hSLeVKv6DnXBch38I3nsFU9cHud8d1K34Mws7WYzNaKuQO7yrl2Js/2lC6noC2yfOedsxZ5hUHVxf7ZpYpZmAio0srdCWjunDX/5fey6XB49PvehYR/WAvNtzD5Yewk0C2Ipwz9ZDmmT78yoFJTdYgH/fPQfEzvh+ZWsVP4te9dFdYHbon5s68VdKg95vd2vvHfMTcA/b8B+pcAAwC9cavCm+o7BgAAAABJRU5ErkJggg==',
NR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTQyM0U5ODAzQkUxMUYwQTk5QUZBOEM4RjQ1OEQzQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTQyM0U5OTAzQkUxMUYwQTk5QUZBOEM4RjQ1OEQzQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFNDIzRTk2MDNCRTExRjBBOTlBRkE4QzhGNDU4RDNCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFNDIzRTk3MDNCRTExRjBBOTlBRkE4QzhGNDU4RDNCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+OZfBwwAABtlJREFUeNrsWM2vXVMU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',
jR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RTFDN0FGQTAzQkYxMUYwQkU2QjhBMEQ3QzEzQkM0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RTFDN0FGQjAzQkYxMUYwQkU2QjhBMEQ3QzEzQkM0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZFMUM3QUY4MDNCRjExRjBCRTZCOEEwRDdDMTNCQzQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZFMUM3QUY5MDNCRjExRjBCRTZCOEEwRDdDMTNCQzQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+tXvG2AAAB1RJREFUeNrsWFuIXVcZ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',
GR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NjJBN0M1QjAzQkYxMUYwQkEwREJBRjQzQkU3MkIwOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NjJBN0M1QzAzQkYxMUYwQkEwREJBRjQzQkU3MkIwOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY2MkE3QzU5MDNCRjExRjBCQTBEQkFGNDNCRTcyQjA4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY2MkE3QzVBMDNCRjExRjBCQTBEQkFGNDNCRTcyQjA4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+PP4rBwAABq1JREFUeNrsWEuMFFUU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',
kR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOTY0NzQ5MjAzQkUxMUYwOUEzOEJFRjUyMUQwQjMzRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOTY0NzQ5MzAzQkUxMUYwOUEzOEJFRjUyMUQwQjMzRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ5NjQ3NDkwMDNCRTExRjA5QTM4QkVGNTIxRDBCMzNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ5NjQ3NDkxMDNCRTExRjA5QTM4QkVGNTIxRDBCMzNGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+di2m1wAABlpJREFUeNrsWF+IVFUc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',
BR =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowRTJFNURFQTAzQkYxMUYwQkM0RDlFQUI2RTRBNkQ1MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowRTJFNURFQjAzQkYxMUYwQkM0RDlFQUI2RTRBNkQ1MiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBFMkU1REU4MDNCRjExRjBCQzREOUVBQjZFNEE2RDUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBFMkU1REU5MDNCRjExRjBCQzREOUVBQjZFNEE2RDUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+W6VGZwAABxVJREFUeNrsWFtsXNUV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',
YR = '/low_altitude_interface/assets/MoveCar-CrFAlbrg.json',
UR =
'data:application/json;base64,Ww0KICB7DQogICAgInRpdGxlIjogIuWFqOW4gueZveaooSIsDQogICAgIkRfQ09ERSI6ICJEODUwMzAxMDMyMDI0MDkiLA0KICAgICJpZCI6ICJEODUwMzAxMDMyMDI0MDkwMSIsDQogICAgInZpc2libGUiOiBmYWxzZSwNCiAgICAib3BhY2l0eSI6IDEsDQogICAgInR5cGUiOiAic2NlbmUiDQogIH0sDQogIHsNCiAgICAidGl0bGUiOiAi5b2x5YOP5bqV5Zu+IiwNCiAgICAiRF9DT0RFIjogIjUwMTE1MDM2IiwNCiAgICAiaWQiOiAiNTAxMTUwMzYiLA0KICAgICJ1cmwiOiAiIiwNCiAgICAidmlzaWJsZSI6IGZhbHNlLA0KICAgICJvcGFjaXR5IjogMSwNCiAgICAidHlwZSI6ICJ0aWxlIg0KICB9DQpdDQo=',
TR = '/low_altitude_interface/assets/shifei-DT3q3x2E.json'
function Yo(e) {
return new URL(
Object.assign({
'/src/assets/images/buttons/alert-dl-h.png': Dm,
'/src/assets/images/buttons/alert-dl.png': Zm,
'/src/assets/images/buttons/alert-ky-h.png': Sm,
'/src/assets/images/buttons/alert-ky.png': Nm,
'/src/assets/images/buttons/alert-ph-h.png': jm,
'/src/assets/images/buttons/alert-ph.png': Gm,
'/src/assets/images/buttons/alert-pz-h.png': km,
'/src/assets/images/buttons/alert-pz.png': Bm,
'/src/assets/images/buttons/alert-tq-h.png': Ym,
'/src/assets/images/buttons/alert-tq.png': Um,
'/src/assets/images/buttons/btn-check.png': Tm,
'/src/assets/images/buttons/btn-delete.png': Jm,
'/src/assets/images/buttons/btn-dropdown.png': Cm,
'/src/assets/images/buttons/btn-edit.png': Om,
'/src/assets/images/buttons/btn-main.png': zm,
'/src/assets/images/buttons/btn-mesh.png': Wm,
'/src/assets/images/buttons/btn-secondary.png': Fm,
'/src/assets/images/buttons/btn-selectall.png': Lm,
'/src/assets/images/buttons/switch-off.png': xm,
'/src/assets/images/buttons/switch-on.png': Vm,
'/src/assets/images/buttons/tool-dtqh-h.png': Qm,
'/src/assets/images/buttons/tool-dtqh.png': Xm,
'/src/assets/images/buttons/tool-fcky-h.png': Pm,
'/src/assets/images/buttons/tool-fcky.png': Hm,
'/src/assets/images/buttons/tool-hxhs-h.png': Km,
'/src/assets/images/buttons/tool-hxhs.png': qm,
'/src/assets/images/buttons/tool-kyhs-h.png': _m,
'/src/assets/images/buttons/tool-kyhs.png': $m,
'/src/assets/images/buttons/tool-kysg-h.png': ey,
'/src/assets/images/buttons/tool-kysg.png': ty,
'/src/assets/images/buttons/tool-kytc-h.png': ny,
'/src/assets/images/buttons/tool-kytc.png': iy,
'/src/assets/images/buttons/tool-qjchs-h.png': sy,
'/src/assets/images/buttons/tool-qjchs.png': oy,
'/src/assets/images/buttons/tool-qjll-h.png': ay,
'/src/assets/images/buttons/tool-qjll.png': ry,
'/src/assets/images/buttons/tool-sgzy-h.png': ly,
'/src/assets/images/buttons/tool-sgzy.png': cy,
'/src/assets/images/buttons/tool-tsjs-h.png': uy,
'/src/assets/images/buttons/tool-tsjs.png': dy,
'/src/assets/images/buttons/tool2-kypm-h.png': py,
'/src/assets/images/buttons/tool2-kypm.png': Ay,
'/src/assets/images/buttons/tool2-sgzy-h.png': gy,
'/src/assets/images/buttons/tool2-sgzy.png': fy,
'/src/assets/images/layout/arrow-down.png': by,
'/src/assets/images/layout/arrow-up.png': hy,
'/src/assets/images/layout/bg-footer-deco-left.png': vy,
'/src/assets/images/layout/bg-footer-deco-right.png': my,
'/src/assets/images/layout/bg-footer-deco.png': yy,
'/src/assets/images/layout/bg-footer.png': wy,
'/src/assets/images/layout/bg-footer_large.png': Ry,
'/src/assets/images/layout/bg-header.png': Iy,
'/src/assets/images/layout/bg-header_large.png': Ey,
'/src/assets/images/layout/bg-home.jpg': My,
'/src/assets/images/layout/bg-login-form.png': Dy,
'/src/assets/images/layout/bg-login.jpg': Zy,
'/src/assets/images/layout/bg-masking.png': Sy,
'/src/assets/images/layout/bg-text-line.png': Ny,
'/src/assets/images/layout/btn-link.png': jy,
'/src/assets/images/layout/icon-account.png': Gy,
'/src/assets/images/layout/icon-bdby-h.png': ky,
'/src/assets/images/layout/icon-bdby.png': By,
'/src/assets/images/layout/icon-code.png': Yy,
'/src/assets/images/layout/icon-csps-h.png': Uy,
'/src/assets/images/layout/icon-csps.png': Ty,
'/src/assets/images/layout/icon-password.png': Jy,
'/src/assets/images/layout/logo.png': Cy,
'/src/assets/images/layout/module-aid.png': Oy,
'/src/assets/images/layout/module-area.png': zy,
'/src/assets/images/layout/module-flight.png': Wy,
'/src/assets/images/layout/module-info.png': Fy,
'/src/assets/images/layout/module-monitor.png': Ly,
'/src/assets/images/layout/module-scene.png': xy,
'/src/assets/images/layout/user-bg.png': Vy,
'/src/assets/images/motion/bg-uav.webm': Qy,
'/src/assets/images/page/alert-bg-dl.png': Xy,
'/src/assets/images/page/alert-bg-ky.png': Py,
'/src/assets/images/page/alert-bg-ph.png': Hy,
'/src/assets/images/page/alert-bg-pz.png': Ky,
'/src/assets/images/page/alert-bg-tq.png': qy,
'/src/assets/images/page/basemap-dark-h.png': _y,
'/src/assets/images/page/basemap-dark.png': $y,
'/src/assets/images/page/basemap-light-h.png': ew,
'/src/assets/images/page/basemap-light.png': tw,
'/src/assets/images/page/basemap-rs-h.png': nw,
'/src/assets/images/page/basemap-rs.png': iw,
'/src/assets/images/page/bg-chart-title.png': sw,
'/src/assets/images/page/bg-des.png': ow,
'/src/assets/images/page/bg-dialog-l.png': aw,
'/src/assets/images/page/bg-dialog-s.png': rw,
'/src/assets/images/page/bg-dialog-wide.png': lw,
'/src/assets/images/page/bg-dialog.png': cw,
'/src/assets/images/page/bg-fxjhzs.png': uw,
'/src/assets/images/page/bg-gjzs.png': dw,
'/src/assets/images/page/bg-label.png': pw,
'/src/assets/images/page/bg-label2.png': Aw,
'/src/assets/images/page/bg-plan-h.png': gw,
'/src/assets/images/page/bg-plan.png': fw,
'/src/assets/images/page/bg-plate.png': bw,
'/src/assets/images/page/bg-rank-1.png': hw,
'/src/assets/images/page/bg-rank-2.png': vw,
'/src/assets/images/page/bg-rank-3.png': mw,
'/src/assets/images/page/bg-table-row.png': yw,
'/src/assets/images/page/bg-text-line.png': ww,
'/src/assets/images/page/bg-text-line2.png': Rw,
'/src/assets/images/page/bg-title-2.png': Iw,
'/src/assets/images/page/bg-title.png': Ew,
'/src/assets/images/page/icon-clock.png': Mw,
'/src/assets/images/page/icon-cube-1.png': Dw,
'/src/assets/images/page/icon-cube-2.png': Zw,
'/src/assets/images/page/icon-cube-3.png': Sw,
'/src/assets/images/page/icon-cube-4.png': Nw,
'/src/assets/images/page/icon-cube-5.png': jw,
'/src/assets/images/page/icon-cube-6.png': Gw,
'/src/assets/images/page/icon-distance.png': kw,
'/src/assets/images/page/icon-draw.png': Bw,
'/src/assets/images/page/icon-flag.png': Yw,
'/src/assets/images/page/icon-location.png': Uw,
'/src/assets/images/page/icon-plane.png': Tw,
'/src/assets/images/page/icon-rule.png': Jw,
'/src/assets/images/page/icon-sta-cky.png': Cw,
'/src/assets/images/page/icon-sta-hkq.png': Ow,
'/src/assets/images/page/icon-sta-hx.png': zw,
'/src/assets/images/page/icon-sta-ky.png': Ww,
'/src/assets/images/page/icon-sta-qjd.png': Fw,
'/src/assets/images/page/icon-sta-qy.png': Lw,
'/src/assets/images/page/icon-step-h.png': xw,
'/src/assets/images/page/icon-step.png': Vw,
'/src/assets/images/page/icon-uav.png': Qw,
'/src/assets/images/page/icon-upload.png': Xw,
'/src/assets/images/page/slider-bg.png': Pw,
'/src/assets/images/page/stick-1.png': Hw,
'/src/assets/images/page/stick-2.png': Kw,
'/src/assets/images/page/stick-3.png': qw,
'/src/assets/images/page/stick-4.png': _w,
'/src/assets/images/page/stick-5.png': $w,
'/src/assets/images/resources/dcgrao.png': eR,
'/src/assets/images/resources/dlu.png': tR,
'/src/assets/images/resources/dxing.png': nR,
'/src/assets/images/resources/gdjtong.png': iR,
'/src/assets/images/resources/gjdmxing.png': sR,
'/src/assets/images/resources/hliu.png': oR,
'/src/assets/images/resources/hxian.png': aR,
'/src/assets/images/resources/jfqu.png': rR,
'/src/assets/images/resources/jkqu.png': lR,
'/src/assets/images/resources/lhua.png': cR,
'/src/assets/images/resources/qjchang.png': uR,
'/src/assets/images/resources/qsjzwu.png': dR,
'/src/assets/images/resources/rkou.png': pR,
'/src/assets/images/resources/sfqu.png': AR,
'/src/assets/images/resources/tlu.png': gR,
'/src/assets/images/resources/wxtxjzhan.png': fR,
'/src/assets/images/resources/xxiao.png': bR,
'/src/assets/images/resources/ypfkyu.png': hR,
'/src/assets/images/resources/yyuan.png': vR,
'/src/assets/images/resources/zfbmen.png': mR,
'/src/assets/images/svg/close.svg': yR,
'/src/assets/images/weather/alert-haze.png': wR,
'/src/assets/images/weather/alert-rain.png': RR,
'/src/assets/images/weather/alert-wind.png': IR,
'/src/assets/images/weather/cloudy.png': ER,
'/src/assets/images/weather/foggy.png': MR,
'/src/assets/images/weather/haze.png': DR,
'/src/assets/images/weather/rain-l.png': ZR,
'/src/assets/images/weather/rain-m.png': SR,
'/src/assets/images/weather/rain-s.png': NR,
'/src/assets/images/weather/snow-l.png': jR,
'/src/assets/images/weather/snow-s.png': GR,
'/src/assets/images/weather/sunny.png': kR,
'/src/assets/images/weather/windy.png': BR,
})[`/src/assets/images/${e}`],
import.meta.url
).href
}
async function JR(e) {
return await (
await fetch(
new URL(
Object.assign({ '/src/data/MoveCar.json': YR, '/src/data/resources.json': UR, '/src/data/shifei.json': TR })[
`/src/data/${e}`
],
import.meta.url
).href
)
).json()
}
const Kt = (e, t) => {
const n = e.__vccOpts || e
for (const [i, s] of t) n[i] = s
return n
},
CR = {
uav: ['fcky', 'cube', 'kysg', 'tsjs_gis', 'layers_legend'],
kysg: ['uav', 'tsjs_gis', 'layers_legend'],
fcky: ['uav', 'cube'],
cube: ['uav', 'fcky'],
tsjs_gis: ['uav', 'kysg', 'layers_legend'],
layers_legend: ['kysg', 'uav', 'tsjs_gis'],
}
let ki = {}
const Qn = co('layout', {
state: () => ({
globalLoading: !1,
sceneLoading: !1,
leftCollapse: !0,
rightCollapse: !0,
footerCollapse: !0,
sceneType: 'gis',
mapScene: 'rs',
leftPanelType: 'default',
floatPanels: { uav: !1, kysg: !1, fcky: !1, cube: !1, tsjs_gis: !1, layers_legend: !1 },
uavMonitorOn: !1,
toolsActive: {},
}),
getters: {},
actions: {
toggleGlobalLoading(e) {
this.globalLoading = e
},
toggleAside(e, t) {
;['left', 'right'].includes(e) && (e === 'left' ? (this.leftCollapse = t) : (this.rightCollapse = t))
},
toggleFooter(e) {
this.footerCollapse = e
},
toggleScene(e) {
e && ['ue', 'gis'].includes(e) ? (this.sceneType = e) : (this.sceneType = this.sceneType === 'ue' ? 'gis' : 'ue')
},
setMapScene(e) {
this.mapScene = e
},
setLeftPanel(e) {
this.leftPanelType = e
},
toggleFloatPanel(e, t) {
;(this.floatPanels[e] = t),
t &&
CR[e].forEach((n) => {
this.floatPanels[n] = !1
})
},
toggleUavMonitor(e) {
e
? ((ki.left = this.leftCollapse),
(ki.right = this.rightCollapse),
(this.uavMonitorOn = this.leftCollapse = this.rightCollapse = !0))
: ((this.uavMonitorOn = !1), (this.leftCollapse = ki.left), (this.rightCollapse = ki.right))
},
},
})
let Uo = { bridgeContent: {} }
function ic(e, t) {
return function () {
return e.apply(t, arguments)
}
}
const { toString: OR } = Object.prototype,
{ getPrototypeOf: To } = Object,
As = ((e) => (t) => {
const n = OR.call(t)
return e[n] || (e[n] = n.slice(8, -1).toLowerCase())
})(Object.create(null)),
wt = (e) => ((e = e.toLowerCase()), (t) => As(t) === e),
gs = (e) => (t) => typeof t === e,
{ isArray: Xn } = Array,
ui = gs('undefined')
function zR(e) {
return (
e !== null &&
!ui(e) &&
e.constructor !== null &&
!ui(e.constructor) &&
nt(e.constructor.isBuffer) &&
e.constructor.isBuffer(e)
)
}
const sc = wt('ArrayBuffer')
function WR(e) {
let t
return (
typeof ArrayBuffer < 'u' && ArrayBuffer.isView ? (t = ArrayBuffer.isView(e)) : (t = e && e.buffer && sc(e.buffer)),
t
)
}
const FR = gs('string'),
nt = gs('function'),
oc = gs('number'),
fs = (e) => e !== null && typeof e == 'object',
LR = (e) => e === !0 || e === !1,
Ci = (e) => {
if (As(e) !== 'object') return !1
const t = To(e)
return (
(t === null || t === Object.prototype || Object.getPrototypeOf(t) === null) &&
!(Symbol.toStringTag in e) &&
!(Symbol.iterator in e)
)
},
xR = wt('Date'),
VR = wt('File'),
QR = wt('Blob'),
XR = wt('FileList'),
PR = (e) => fs(e) && nt(e.pipe),
HR = (e) => {
let t
return (
e &&
((typeof FormData == 'function' && e instanceof FormData) ||
(nt(e.append) &&
((t = As(e)) === 'formdata' || (t === 'object' && nt(e.toString) && e.toString() === '[object FormData]'))))
)
},
KR = wt('URLSearchParams'),
[qR, _R, $R, eI] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(wt),
tI = (e) => (e.trim ? e.trim() : e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''))
function hi(e, t, { allOwnKeys: n = !1 } = {}) {
if (e === null || typeof e > 'u') return
let i, s
if ((typeof e != 'object' && (e = [e]), Xn(e))) for (i = 0, s = e.length; i < s; i++) t.call(null, e[i], i, e)
else {
const a = n ? Object.getOwnPropertyNames(e) : Object.keys(e),
o = a.length
let r
for (i = 0; i < o; i++) (r = a[i]), t.call(null, e[r], r, e)
}
}
function ac(e, t) {
t = t.toLowerCase()
const n = Object.keys(e)
let i = n.length,
s
for (; i-- > 0; ) if (((s = n[i]), t === s.toLowerCase())) return s
return null
}
const sn = typeof globalThis < 'u' ? globalThis : typeof self < 'u' ? self : typeof window < 'u' ? window : global,
rc = (e) => !ui(e) && e !== sn
function $s() {
const { caseless: e } = (rc(this) && this) || {},
t = {},
n = (i, s) => {
const a = (e && ac(t, s)) || s
Ci(t[a]) && Ci(i) ? (t[a] = $s(t[a], i)) : Ci(i) ? (t[a] = $s({}, i)) : Xn(i) ? (t[a] = i.slice()) : (t[a] = i)
}
for (let i = 0, s = arguments.length; i < s; i++) arguments[i] && hi(arguments[i], n)
return t
}
const nI = (e, t, n, { allOwnKeys: i } = {}) => (
hi(
t,
(s, a) => {
n && nt(s) ? (e[a] = ic(s, n)) : (e[a] = s)
},
{ allOwnKeys: i }
),
e
),
iI = (e) => (e.charCodeAt(0) === 65279 && (e = e.slice(1)), e),
sI = (e, t, n, i) => {
;(e.prototype = Object.create(t.prototype, i)),
(e.prototype.constructor = e),
Object.defineProperty(e, 'super', { value: t.prototype }),
n && Object.assign(e.prototype, n)
},
oI = (e, t, n, i) => {
let s, a, o
const r = {}
if (((t = t || {}), e == null)) return t
do {
for (s = Object.getOwnPropertyNames(e), a = s.length; a-- > 0; )
(o = s[a]), (!i || i(o, e, t)) && !r[o] && ((t[o] = e[o]), (r[o] = !0))
e = n !== !1 && To(e)
} while (e && (!n || n(e, t)) && e !== Object.prototype)
return t
},
aI = (e, t, n) => {
;(e = String(e)), (n === void 0 || n > e.length) && (n = e.length), (n -= t.length)
const i = e.indexOf(t, n)
return i !== -1 && i === n
},
rI = (e) => {
if (!e) return null
if (Xn(e)) return e
let t = e.length
if (!oc(t)) return null
const n = new Array(t)
for (; t-- > 0; ) n[t] = e[t]
return n
},
lI = (
(e) => (t) =>
e && t instanceof e
)(typeof Uint8Array < 'u' && To(Uint8Array)),
cI = (e, t) => {
const i = (e && e[Symbol.iterator]).call(e)
let s
for (; (s = i.next()) && !s.done; ) {
const a = s.value
t.call(e, a[0], a[1])
}
},
uI = (e, t) => {
let n
const i = []
for (; (n = e.exec(t)) !== null; ) i.push(n)
return i
},
dI = wt('HTMLFormElement'),
pI = (e) =>
e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function (n, i, s) {
return i.toUpperCase() + s
}),
dr = (
({ hasOwnProperty: e }) =>
(t, n) =>
e.call(t, n)
)(Object.prototype),
AI = wt('RegExp'),
lc = (e, t) => {
const n = Object.getOwnPropertyDescriptors(e),
i = {}
hi(n, (s, a) => {
let o
;(o = t(s, a, e)) !== !1 && (i[a] = o || s)
}),
Object.defineProperties(e, i)
},
gI = (e) => {
lc(e, (t, n) => {
if (nt(e) && ['arguments', 'caller', 'callee'].indexOf(n) !== -1) return !1
const i = e[n]
if (nt(i)) {
if (((t.enumerable = !1), 'writable' in t)) {
t.writable = !1
return
}
t.set ||
(t.set = () => {
throw Error("Can not rewrite read-only method '" + n + "'")
})
}
})
},
fI = (e, t) => {
const n = {},
i = (s) => {
s.forEach((a) => {
n[a] = !0
})
}
return Xn(e) ? i(e) : i(String(e).split(t)), n
},
bI = () => {},
hI = (e, t) => (e != null && Number.isFinite((e = +e)) ? e : t)
function vI(e) {
return !!(e && nt(e.append) && e[Symbol.toStringTag] === 'FormData' && e[Symbol.iterator])
}
const mI = (e) => {
const t = new Array(10),
n = (i, s) => {
if (fs(i)) {
if (t.indexOf(i) >= 0) return
if (!('toJSON' in i)) {
t[s] = i
const a = Xn(i) ? [] : {}
return (
hi(i, (o, r) => {
const l = n(o, s + 1)
!ui(l) && (a[r] = l)
}),
(t[s] = void 0),
a
)
}
}
return i
}
return n(e, 0)
},
yI = wt('AsyncFunction'),
wI = (e) => e && (fs(e) || nt(e)) && nt(e.then) && nt(e.catch),
cc = ((e, t) =>
e
? setImmediate
: t
? ((n, i) => (
sn.addEventListener(
'message',
({ source: s, data: a }) => {
s === sn && a === n && i.length && i.shift()()
},
!1
),
(s) => {
i.push(s), sn.postMessage(n, '*')
}
))(`axios@${Math.random()}`, [])
: (n) => setTimeout(n))(typeof setImmediate == 'function', nt(sn.postMessage)),
RI = typeof queueMicrotask < 'u' ? queueMicrotask.bind(sn) : (typeof process < 'u' && process.nextTick) || cc,
S = {
isArray: Xn,
isArrayBuffer: sc,
isBuffer: zR,
isFormData: HR,
isArrayBufferView: WR,
isString: FR,
isNumber: oc,
isBoolean: LR,
isObject: fs,
isPlainObject: Ci,
isReadableStream: qR,
isRequest: _R,
isResponse: $R,
isHeaders: eI,
isUndefined: ui,
isDate: xR,
isFile: VR,
isBlob: QR,
isRegExp: AI,
isFunction: nt,
isStream: PR,
isURLSearchParams: KR,
isTypedArray: lI,
isFileList: XR,
forEach: hi,
merge: $s,
extend: nI,
trim: tI,
stripBOM: iI,
inherits: sI,
toFlatObject: oI,
kindOf: As,
kindOfTest: wt,
endsWith: aI,
toArray: rI,
forEachEntry: cI,
matchAll: uI,
isHTMLForm: dI,
hasOwnProperty: dr,
hasOwnProp: dr,
reduceDescriptors: lc,
freezeMethods: gI,
toObjectSet: fI,
toCamelCase: pI,
noop: bI,
toFiniteNumber: hI,
findKey: ac,
global: sn,
isContextDefined: rc,
isSpecCompliantForm: vI,
toJSONObject: mI,
isAsyncFn: yI,
isThenable: wI,
setImmediate: cc,
asap: RI,
}
function te(e, t, n, i, s) {
Error.call(this),
Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : (this.stack = new Error().stack),
(this.message = e),
(this.name = 'AxiosError'),
t && (this.code = t),
n && (this.config = n),
i && (this.request = i),
s && ((this.response = s), (this.status = s.status ? s.status : null))
}
S.inherits(te, Error, {
toJSON: function () {
return {
message: this.message,
name: this.name,
description: this.description,
number: this.number,
fileName: this.fileName,
lineNumber: this.lineNumber,
columnNumber: this.columnNumber,
stack: this.stack,
config: S.toJSONObject(this.config),
code: this.code,
status: this.status,
}
},
})
const uc = te.prototype,
dc = {}
;[
'ERR_BAD_OPTION_VALUE',
'ERR_BAD_OPTION',
'ECONNABORTED',
'ETIMEDOUT',
'ERR_NETWORK',
'ERR_FR_TOO_MANY_REDIRECTS',
'ERR_DEPRECATED',
'ERR_BAD_RESPONSE',
'ERR_BAD_REQUEST',
'ERR_CANCELED',
'ERR_NOT_SUPPORT',
'ERR_INVALID_URL',
].forEach((e) => {
dc[e] = { value: e }
})
Object.defineProperties(te, dc)
Object.defineProperty(uc, 'isAxiosError', { value: !0 })
te.from = (e, t, n, i, s, a) => {
const o = Object.create(uc)
return (
S.toFlatObject(
e,
o,
function (l) {
return l !== Error.prototype
},
(r) => r !== 'isAxiosError'
),
te.call(o, e.message, t, n, i, s),
(o.cause = e),
(o.name = e.name),
a && Object.assign(o, a),
o
)
}
const II = null
function eo(e) {
return S.isPlainObject(e) || S.isArray(e)
}
function pc(e) {
return S.endsWith(e, '[]') ? e.slice(0, -2) : e
}
function pr(e, t, n) {
return e
? e
.concat(t)
.map(function (s, a) {
return (s = pc(s)), !n && a ? '[' + s + ']' : s
})
.join(n ? '.' : '')
: t
}
function EI(e) {
return S.isArray(e) && !e.some(eo)
}
const MI = S.toFlatObject(S, {}, null, function (t) {
return /^is[A-Z]/.test(t)
})
function bs(e, t, n) {
if (!S.isObject(e)) throw new TypeError('target must be an object')
;(t = t || new FormData()),
(n = S.toFlatObject(n, { metaTokens: !0, dots: !1, indexes: !1 }, !1, function (p, v) {
return !S.isUndefined(v[p])
}))
const i = n.metaTokens,
s = n.visitor || c,
a = n.dots,
o = n.indexes,
l = (n.Blob || (typeof Blob < 'u' && Blob)) && S.isSpecCompliantForm(t)
if (!S.isFunction(s)) throw new TypeError('visitor must be a function')
function d(u) {
if (u === null) return ''
if (S.isDate(u)) return u.toISOString()
if (!l && S.isBlob(u)) throw new te('Blob is not supported. Use a Buffer instead.')
return S.isArrayBuffer(u) || S.isTypedArray(u)
? l && typeof Blob == 'function'
? new Blob([u])
: Buffer.from(u)
: u
}
function c(u, p, v) {
let f = u
if (u && !v && typeof u == 'object') {
if (S.endsWith(p, '{}')) (p = i ? p : p.slice(0, -2)), (u = JSON.stringify(u))
else if ((S.isArray(u) && EI(u)) || ((S.isFileList(u) || S.endsWith(p, '[]')) && (f = S.toArray(u))))
return (
(p = pc(p)),
f.forEach(function (R, I) {
!(S.isUndefined(R) || R === null) && t.append(o === !0 ? pr([p], I, a) : o === null ? p : p + '[]', d(R))
}),
!1
)
}
return eo(u) ? !0 : (t.append(pr(v, p, a), d(u)), !1)
}
const A = [],
g = Object.assign(MI, { defaultVisitor: c, convertValue: d, isVisitable: eo })
function b(u, p) {
if (!S.isUndefined(u)) {
if (A.indexOf(u) !== -1) throw Error('Circular reference detected in ' + p.join('.'))
A.push(u),
S.forEach(u, function (f, w) {
;(!(S.isUndefined(f) || f === null) && s.call(t, f, S.isString(w) ? w.trim() : w, p, g)) === !0 &&
b(f, p ? p.concat(w) : [w])
}),
A.pop()
}
}
if (!S.isObject(e)) throw new TypeError('data must be an object')
return b(e), t
}
function Ar(e) {
const t = { '!': '%21', "'": '%27', '(': '%28', ')': '%29', '~': '%7E', '%20': '+', '%00': '\0' }
return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g, function (i) {
return t[i]
})
}
function Jo(e, t) {
;(this._pairs = []), e && bs(e, this, t)
}
const Ac = Jo.prototype
Ac.append = function (t, n) {
this._pairs.push([t, n])
}
Ac.toString = function (t) {
const n = t
? function (i) {
return t.call(this, i, Ar)
}
: Ar
return this._pairs
.map(function (s) {
return n(s[0]) + '=' + n(s[1])
}, '')
.join('&')
}
function DI(e) {
return encodeURIComponent(e)
.replace(/%3A/gi, ':')
.replace(/%24/g, '$')
.replace(/%2C/gi, ',')
.replace(/%20/g, '+')
.replace(/%5B/gi, '[')
.replace(/%5D/gi, ']')
}
function gc(e, t, n) {
if (!t) return e
const i = (n && n.encode) || DI
S.isFunction(n) && (n = { serialize: n })
const s = n && n.serialize
let a
if ((s ? (a = s(t, n)) : (a = S.isURLSearchParams(t) ? t.toString() : new Jo(t, n).toString(i)), a)) {
const o = e.indexOf('#')
o !== -1 && (e = e.slice(0, o)), (e += (e.indexOf('?') === -1 ? '?' : '&') + a)
}
return e
}
class gr {
constructor() {
this.handlers = []
}
use(t, n, i) {
return (
this.handlers.push({
fulfilled: t,
rejected: n,
synchronous: i ? i.synchronous : !1,
runWhen: i ? i.runWhen : null,
}),
this.handlers.length - 1
)
}
eject(t) {
this.handlers[t] && (this.handlers[t] = null)
}
clear() {
this.handlers && (this.handlers = [])
}
forEach(t) {
S.forEach(this.handlers, function (i) {
i !== null && t(i)
})
}
}
const fc = { silentJSONParsing: !0, forcedJSONParsing: !0, clarifyTimeoutError: !1 },
ZI = typeof URLSearchParams < 'u' ? URLSearchParams : Jo,
SI = typeof FormData < 'u' ? FormData : null,
NI = typeof Blob < 'u' ? Blob : null,
jI = {
isBrowser: !0,
classes: { URLSearchParams: ZI, FormData: SI, Blob: NI },
protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],
},
Co = typeof window < 'u' && typeof document < 'u',
to = (typeof navigator == 'object' && navigator) || void 0,
GI = Co && (!to || ['ReactNative', 'NativeScript', 'NS'].indexOf(to.product) < 0),
kI = typeof WorkerGlobalScope < 'u' && self instanceof WorkerGlobalScope && typeof self.importScripts == 'function',
BI = (Co && window.location.href) || 'http://localhost',
YI = Object.freeze(
Object.defineProperty(
{
__proto__: null,
hasBrowserEnv: Co,
hasStandardBrowserEnv: GI,
hasStandardBrowserWebWorkerEnv: kI,
navigator: to,
origin: BI,
},
Symbol.toStringTag,
{ value: 'Module' }
)
),
Ce = { ...YI, ...jI }
function UI(e, t) {
return bs(
e,
new Ce.classes.URLSearchParams(),
Object.assign(
{
visitor: function (n, i, s, a) {
return Ce.isNode && S.isBuffer(n)
? (this.append(i, n.toString('base64')), !1)
: a.defaultVisitor.apply(this, arguments)
},
},
t
)
)
}
function TI(e) {
return S.matchAll(/\w+|\[(\w*)]/g, e).map((t) => (t[0] === '[]' ? '' : t[1] || t[0]))
}
function JI(e) {
const t = {},
n = Object.keys(e)
let i
const s = n.length
let a
for (i = 0; i < s; i++) (a = n[i]), (t[a] = e[a])
return t
}
function bc(e) {
function t(n, i, s, a) {
let o = n[a++]
if (o === '__proto__') return !0
const r = Number.isFinite(+o),
l = a >= n.length
return (
(o = !o && S.isArray(s) ? s.length : o),
l
? (S.hasOwnProp(s, o) ? (s[o] = [s[o], i]) : (s[o] = i), !r)
: ((!s[o] || !S.isObject(s[o])) && (s[o] = []), t(n, i, s[o], a) && S.isArray(s[o]) && (s[o] = JI(s[o])), !r)
)
}
if (S.isFormData(e) && S.isFunction(e.entries)) {
const n = {}
return (
S.forEachEntry(e, (i, s) => {
t(TI(i), s, n, 0)
}),
n
)
}
return null
}
function CI(e, t, n) {
if (S.isString(e))
try {
return (t || JSON.parse)(e), S.trim(e)
} catch (i) {
if (i.name !== 'SyntaxError') throw i
}
return (n || JSON.stringify)(e)
}
const vi = {
transitional: fc,
adapter: ['xhr', 'http', 'fetch'],
transformRequest: [
function (t, n) {
const i = n.getContentType() || '',
s = i.indexOf('application/json') > -1,
a = S.isObject(t)
if ((a && S.isHTMLForm(t) && (t = new FormData(t)), S.isFormData(t))) return s ? JSON.stringify(bc(t)) : t
if (S.isArrayBuffer(t) || S.isBuffer(t) || S.isStream(t) || S.isFile(t) || S.isBlob(t) || S.isReadableStream(t))
return t
if (S.isArrayBufferView(t)) return t.buffer
if (S.isURLSearchParams(t))
return n.setContentType('application/x-www-form-urlencoded;charset=utf-8', !1), t.toString()
let r
if (a) {
if (i.indexOf('application/x-www-form-urlencoded') > -1) return UI(t, this.formSerializer).toString()
if ((r = S.isFileList(t)) || i.indexOf('multipart/form-data') > -1) {
const l = this.env && this.env.FormData
return bs(r ? { 'files[]': t } : t, l && new l(), this.formSerializer)
}
}
return a || s ? (n.setContentType('application/json', !1), CI(t)) : t
},
],
transformResponse: [
function (t) {
const n = this.transitional || vi.transitional,
i = n && n.forcedJSONParsing,
s = this.responseType === 'json'
if (S.isResponse(t) || S.isReadableStream(t)) return t
if (t && S.isString(t) && ((i && !this.responseType) || s)) {
const o = !(n && n.silentJSONParsing) && s
try {
return JSON.parse(t)
} catch (r) {
if (o) throw r.name === 'SyntaxError' ? te.from(r, te.ERR_BAD_RESPONSE, this, null, this.response) : r
}
}
return t
},
],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
env: { FormData: Ce.classes.FormData, Blob: Ce.classes.Blob },
validateStatus: function (t) {
return t >= 200 && t < 300
},
headers: { common: { Accept: 'application/json, text/plain, */*', 'Content-Type': void 0 } },
}
S.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (e) => {
vi.headers[e] = {}
})
const OI = S.toObjectSet([
'age',
'authorization',
'content-length',
'content-type',
'etag',
'expires',
'from',
'host',
'if-modified-since',
'if-unmodified-since',
'last-modified',
'location',
'max-forwards',
'proxy-authorization',
'referer',
'retry-after',
'user-agent',
]),
zI = (e) => {
const t = {}
let n, i, s
return (
e &&
e
.split(
`
`
)
.forEach(function (o) {
;(s = o.indexOf(':')),
(n = o.substring(0, s).trim().toLowerCase()),
(i = o.substring(s + 1).trim()),
!(!n || (t[n] && OI[n])) &&
(n === 'set-cookie' ? (t[n] ? t[n].push(i) : (t[n] = [i])) : (t[n] = t[n] ? t[n] + ', ' + i : i))
}),
t
)
},
fr = Symbol('internals')
function ei(e) {
return e && String(e).trim().toLowerCase()
}
function Oi(e) {
return e === !1 || e == null ? e : S.isArray(e) ? e.map(Oi) : String(e)
}
function WI(e) {
const t = Object.create(null),
n = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g
let i
for (; (i = n.exec(e)); ) t[i[1]] = i[2]
return t
}
const FI = (e) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())
function Ns(e, t, n, i, s) {
if (S.isFunction(i)) return i.call(this, t, n)
if ((s && (t = n), !!S.isString(t))) {
if (S.isString(i)) return t.indexOf(i) !== -1
if (S.isRegExp(i)) return i.test(t)
}
}
function LI(e) {
return e
.trim()
.toLowerCase()
.replace(/([a-z\d])(\w*)/g, (t, n, i) => n.toUpperCase() + i)
}
function xI(e, t) {
const n = S.toCamelCase(' ' + t)
;['get', 'set', 'has'].forEach((i) => {
Object.defineProperty(e, i + n, {
value: function (s, a, o) {
return this[i].call(this, t, s, a, o)
},
configurable: !0,
})
})
}
let Ke = class {
constructor(t) {
t && this.set(t)
}
set(t, n, i) {
const s = this
function a(r, l, d) {
const c = ei(l)
if (!c) throw new Error('header name must be a non-empty string')
const A = S.findKey(s, c)
;(!A || s[A] === void 0 || d === !0 || (d === void 0 && s[A] !== !1)) && (s[A || l] = Oi(r))
}
const o = (r, l) => S.forEach(r, (d, c) => a(d, c, l))
if (S.isPlainObject(t) || t instanceof this.constructor) o(t, n)
else if (S.isString(t) && (t = t.trim()) && !FI(t)) o(zI(t), n)
else if (S.isHeaders(t)) for (const [r, l] of t.entries()) a(l, r, i)
else t != null && a(n, t, i)
return this
}
get(t, n) {
if (((t = ei(t)), t)) {
const i = S.findKey(this, t)
if (i) {
const s = this[i]
if (!n) return s
if (n === !0) return WI(s)
if (S.isFunction(n)) return n.call(this, s, i)
if (S.isRegExp(n)) return n.exec(s)
throw new TypeError('parser must be boolean|regexp|function')
}
}
}
has(t, n) {
if (((t = ei(t)), t)) {
const i = S.findKey(this, t)
return !!(i && this[i] !== void 0 && (!n || Ns(this, this[i], i, n)))
}
return !1
}
delete(t, n) {
const i = this
let s = !1
function a(o) {
if (((o = ei(o)), o)) {
const r = S.findKey(i, o)
r && (!n || Ns(i, i[r], r, n)) && (delete i[r], (s = !0))
}
}
return S.isArray(t) ? t.forEach(a) : a(t), s
}
clear(t) {
const n = Object.keys(this)
let i = n.length,
s = !1
for (; i--; ) {
const a = n[i]
;(!t || Ns(this, this[a], a, t, !0)) && (delete this[a], (s = !0))
}
return s
}
normalize(t) {
const n = this,
i = {}
return (
S.forEach(this, (s, a) => {
const o = S.findKey(i, a)
if (o) {
;(n[o] = Oi(s)), delete n[a]
return
}
const r = t ? LI(a) : String(a).trim()
r !== a && delete n[a], (n[r] = Oi(s)), (i[r] = !0)
}),
this
)
}
concat(...t) {
return this.constructor.concat(this, ...t)
}
toJSON(t) {
const n = Object.create(null)
return (
S.forEach(this, (i, s) => {
i != null && i !== !1 && (n[s] = t && S.isArray(i) ? i.join(', ') : i)
}),
n
)
}
[Symbol.iterator]() {
return Object.entries(this.toJSON())[Symbol.iterator]()
}
toString() {
return Object.entries(this.toJSON()).map(([t, n]) => t + ': ' + n).join(`
`)
}
get [Symbol.toStringTag]() {
return 'AxiosHeaders'
}
static from(t) {
return t instanceof this ? t : new this(t)
}
static concat(t, ...n) {
const i = new this(t)
return n.forEach((s) => i.set(s)), i
}
static accessor(t) {
const i = (this[fr] = this[fr] = { accessors: {} }).accessors,
s = this.prototype
function a(o) {
const r = ei(o)
i[r] || (xI(s, o), (i[r] = !0))
}
return S.isArray(t) ? t.forEach(a) : a(t), this
}
}
Ke.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization'])
S.reduceDescriptors(Ke.prototype, ({ value: e }, t) => {
let n = t[0].toUpperCase() + t.slice(1)
return {
get: () => e,
set(i) {
this[n] = i
},
}
})
S.freezeMethods(Ke)
function js(e, t) {
const n = this || vi,
i = t || n,
s = Ke.from(i.headers)
let a = i.data
return (
S.forEach(e, function (r) {
a = r.call(n, a, s.normalize(), t ? t.status : void 0)
}),
s.normalize(),
a
)
}
function hc(e) {
return !!(e && e.__CANCEL__)
}
function Pn(e, t, n) {
te.call(this, e ?? 'canceled', te.ERR_CANCELED, t, n), (this.name = 'CanceledError')
}
S.inherits(Pn, te, { __CANCEL__: !0 })
function vc(e, t, n) {
const i = n.config.validateStatus
!n.status || !i || i(n.status)
? e(n)
: t(
new te(
'Request failed with status code ' + n.status,
[te.ERR_BAD_REQUEST, te.ERR_BAD_RESPONSE][Math.floor(n.status / 100) - 4],
n.config,
n.request,
n
)
)
}
function VI(e) {
const t = /^([-+\w]{1,25})(:?\/\/|:)/.exec(e)
return (t && t[1]) || ''
}
function QI(e, t) {
e = e || 10
const n = new Array(e),
i = new Array(e)
let s = 0,
a = 0,
o
return (
(t = t !== void 0 ? t : 1e3),
function (l) {
const d = Date.now(),
c = i[a]
o || (o = d), (n[s] = l), (i[s] = d)
let A = a,
g = 0
for (; A !== s; ) (g += n[A++]), (A = A % e)
if (((s = (s + 1) % e), s === a && (a = (a + 1) % e), d - o < t)) return
const b = c && d - c
return b ? Math.round((g * 1e3) / b) : void 0
}
)
}
function XI(e, t) {
let n = 0,
i = 1e3 / t,
s,
a
const o = (d, c = Date.now()) => {
;(n = c), (s = null), a && (clearTimeout(a), (a = null)), e.apply(null, d)
}
return [
(...d) => {
const c = Date.now(),
A = c - n
A >= i
? o(d, c)
: ((s = d),
a ||
(a = setTimeout(() => {
;(a = null), o(s)
}, i - A)))
},
() => s && o(s),
]
}
const Hi = (e, t, n = 3) => {
let i = 0
const s = QI(50, 250)
return XI((a) => {
const o = a.loaded,
r = a.lengthComputable ? a.total : void 0,
l = o - i,
d = s(l),
c = o <= r
i = o
const A = {
loaded: o,
total: r,
progress: r ? o / r : void 0,
bytes: l,
rate: d || void 0,
estimated: d && r && c ? (r - o) / d : void 0,
event: a,
lengthComputable: r != null,
[t ? 'download' : 'upload']: !0,
}
e(A)
}, n)
},
br = (e, t) => {
const n = e != null
return [(i) => t[0]({ lengthComputable: n, total: e, loaded: i }), t[1]]
},
hr =
(e) =>
(...t) =>
S.asap(() => e(...t)),
PI = Ce.hasStandardBrowserEnv
? ((e, t) => (n) => (
(n = new URL(n, Ce.origin)), e.protocol === n.protocol && e.host === n.host && (t || e.port === n.port)
))(new URL(Ce.origin), Ce.navigator && /(msie|trident)/i.test(Ce.navigator.userAgent))
: () => !0,
HI = Ce.hasStandardBrowserEnv
? {
write(e, t, n, i, s, a) {
const o = [e + '=' + encodeURIComponent(t)]
S.isNumber(n) && o.push('expires=' + new Date(n).toGMTString()),
S.isString(i) && o.push('path=' + i),
S.isString(s) && o.push('domain=' + s),
a === !0 && o.push('secure'),
(document.cookie = o.join('; '))
},
read(e) {
const t = document.cookie.match(new RegExp('(^|;\\s*)(' + e + ')=([^;]*)'))
return t ? decodeURIComponent(t[3]) : null
},
remove(e) {
this.write(e, '', Date.now() - 864e5)
},
}
: {
write() {},
read() {
return null
},
remove() {},
}
function KI(e) {
return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)
}
function qI(e, t) {
return t ? e.replace(/\/?\/$/, '') + '/' + t.replace(/^\/+/, '') : e
}
function mc(e, t, n) {
let i = !KI(t)
return (e && i) || n == !1 ? qI(e, t) : t
}
const vr = (e) => (e instanceof Ke ? { ...e } : e)
function fn(e, t) {
t = t || {}
const n = {}
function i(d, c, A, g) {
return S.isPlainObject(d) && S.isPlainObject(c)
? S.merge.call({ caseless: g }, d, c)
: S.isPlainObject(c)
? S.merge({}, c)
: S.isArray(c)
? c.slice()
: c
}
function s(d, c, A, g) {
if (S.isUndefined(c)) {
if (!S.isUndefined(d)) return i(void 0, d, A, g)
} else return i(d, c, A, g)
}
function a(d, c) {
if (!S.isUndefined(c)) return i(void 0, c)
}
function o(d, c) {
if (S.isUndefined(c)) {
if (!S.isUndefined(d)) return i(void 0, d)
} else return i(void 0, c)
}
function r(d, c, A) {
if (A in t) return i(d, c)
if (A in e) return i(void 0, d)
}
const l = {
url: a,
method: a,
data: a,
baseURL: o,
transformRequest: o,
transformResponse: o,
paramsSerializer: o,
timeout: o,
timeoutMessage: o,
withCredentials: o,
withXSRFToken: o,
adapter: o,
responseType: o,
xsrfCookieName: o,
xsrfHeaderName: o,
onUploadProgress: o,
onDownloadProgress: o,
decompress: o,
maxContentLength: o,
maxBodyLength: o,
beforeRedirect: o,
transport: o,
httpAgent: o,
httpsAgent: o,
cancelToken: o,
socketPath: o,
responseEncoding: o,
validateStatus: r,
headers: (d, c, A) => s(vr(d), vr(c), A, !0),
}
return (
S.forEach(Object.keys(Object.assign({}, e, t)), function (c) {
const A = l[c] || s,
g = A(e[c], t[c], c)
;(S.isUndefined(g) && A !== r) || (n[c] = g)
}),
n
)
}
const yc = (e) => {
const t = fn({}, e)
let { data: n, withXSRFToken: i, xsrfHeaderName: s, xsrfCookieName: a, headers: o, auth: r } = t
;(t.headers = o = Ke.from(o)),
(t.url = gc(mc(t.baseURL, t.url), e.params, e.paramsSerializer)),
r &&
o.set(
'Authorization',
'Basic ' + btoa((r.username || '') + ':' + (r.password ? unescape(encodeURIComponent(r.password)) : ''))
)
let l
if (S.isFormData(n)) {
if (Ce.hasStandardBrowserEnv || Ce.hasStandardBrowserWebWorkerEnv) o.setContentType(void 0)
else if ((l = o.getContentType()) !== !1) {
const [d, ...c] = l
? l
.split(';')
.map((A) => A.trim())
.filter(Boolean)
: []
o.setContentType([d || 'multipart/form-data', ...c].join('; '))
}
}
if (Ce.hasStandardBrowserEnv && (i && S.isFunction(i) && (i = i(t)), i || (i !== !1 && PI(t.url)))) {
const d = s && a && HI.read(a)
d && o.set(s, d)
}
return t
},
_I = typeof XMLHttpRequest < 'u',
$I =
_I &&
function (e) {
return new Promise(function (n, i) {
const s = yc(e)
let a = s.data
const o = Ke.from(s.headers).normalize()
let { responseType: r, onUploadProgress: l, onDownloadProgress: d } = s,
c,
A,
g,
b,
u
function p() {
b && b(),
u && u(),
s.cancelToken && s.cancelToken.unsubscribe(c),
s.signal && s.signal.removeEventListener('abort', c)
}
let v = new XMLHttpRequest()
v.open(s.method.toUpperCase(), s.url, !0), (v.timeout = s.timeout)
function f() {
if (!v) return
const R = Ke.from('getAllResponseHeaders' in v && v.getAllResponseHeaders()),
y = {
data: !r || r === 'text' || r === 'json' ? v.responseText : v.response,
status: v.status,
statusText: v.statusText,
headers: R,
config: e,
request: v,
}
vc(
function (m) {
n(m), p()
},
function (m) {
i(m), p()
},
y
),
(v = null)
}
'onloadend' in v
? (v.onloadend = f)
: (v.onreadystatechange = function () {
!v ||
v.readyState !== 4 ||
(v.status === 0 && !(v.responseURL && v.responseURL.indexOf('file:') === 0)) ||
setTimeout(f)
}),
(v.onabort = function () {
v && (i(new te('Request aborted', te.ECONNABORTED, e, v)), (v = null))
}),
(v.onerror = function () {
i(new te('Network Error', te.ERR_NETWORK, e, v)), (v = null)
}),
(v.ontimeout = function () {
let I = s.timeout ? 'timeout of ' + s.timeout + 'ms exceeded' : 'timeout exceeded'
const y = s.transitional || fc
s.timeoutErrorMessage && (I = s.timeoutErrorMessage),
i(new te(I, y.clarifyTimeoutError ? te.ETIMEDOUT : te.ECONNABORTED, e, v)),
(v = null)
}),
a === void 0 && o.setContentType(null),
'setRequestHeader' in v &&
S.forEach(o.toJSON(), function (I, y) {
v.setRequestHeader(y, I)
}),
S.isUndefined(s.withCredentials) || (v.withCredentials = !!s.withCredentials),
r && r !== 'json' && (v.responseType = s.responseType),
d && (([g, u] = Hi(d, !0)), v.addEventListener('progress', g)),
l &&
v.upload &&
(([A, b] = Hi(l)), v.upload.addEventListener('progress', A), v.upload.addEventListener('loadend', b)),
(s.cancelToken || s.signal) &&
((c = (R) => {
v && (i(!R || R.type ? new Pn(null, e, v) : R), v.abort(), (v = null))
}),
s.cancelToken && s.cancelToken.subscribe(c),
s.signal && (s.signal.aborted ? c() : s.signal.addEventListener('abort', c)))
const w = VI(s.url)
if (w && Ce.protocols.indexOf(w) === -1) {
i(new te('Unsupported protocol ' + w + ':', te.ERR_BAD_REQUEST, e))
return
}
v.send(a || null)
})
},
e1 = (e, t) => {
const { length: n } = (e = e ? e.filter(Boolean) : [])
if (t || n) {
let i = new AbortController(),
s
const a = function (d) {
if (!s) {
;(s = !0), r()
const c = d instanceof Error ? d : this.reason
i.abort(c instanceof te ? c : new Pn(c instanceof Error ? c.message : c))
}
}
let o =
t &&
setTimeout(() => {
;(o = null), a(new te(`timeout ${t} of ms exceeded`, te.ETIMEDOUT))
}, t)
const r = () => {
e &&
(o && clearTimeout(o),
(o = null),
e.forEach((d) => {
d.unsubscribe ? d.unsubscribe(a) : d.removeEventListener('abort', a)
}),
(e = null))
}
e.forEach((d) => d.addEventListener('abort', a))
const { signal: l } = i
return (l.unsubscribe = () => S.asap(r)), l
}
},
t1 = function* (e, t) {
let n = e.byteLength
if (n < t) {
yield e
return
}
let i = 0,
s
for (; i < n; ) (s = i + t), yield e.slice(i, s), (i = s)
},
n1 = async function* (e, t) {
for await (const n of i1(e)) yield* t1(n, t)
},
i1 = async function* (e) {
if (e[Symbol.asyncIterator]) {
yield* e
return
}
const t = e.getReader()
try {
for (;;) {
const { done: n, value: i } = await t.read()
if (n) break
yield i
}
} finally {
await t.cancel()
}
},
mr = (e, t, n, i) => {
const s = n1(e, t)
let a = 0,
o,
r = (l) => {
o || ((o = !0), i && i(l))
}
return new ReadableStream(
{
async pull(l) {
try {
const { done: d, value: c } = await s.next()
if (d) {
r(), l.close()
return
}
let A = c.byteLength
if (n) {
let g = (a += A)
n(g)
}
l.enqueue(new Uint8Array(c))
} catch (d) {
throw (r(d), d)
}
},
cancel(l) {
return r(l), s.return()
},
},
{ highWaterMark: 2 }
)
},
hs = typeof fetch == 'function' && typeof Request == 'function' && typeof Response == 'function',
wc = hs && typeof ReadableStream == 'function',
s1 =
hs &&
(typeof TextEncoder == 'function'
? (
(e) => (t) =>
e.encode(t)
)(new TextEncoder())
: async (e) => new Uint8Array(await new Response(e).arrayBuffer())),
Rc = (e, ...t) => {
try {
return !!e(...t)
} catch {
return !1
}
},
o1 =
wc &&
Rc(() => {
let e = !1
const t = new Request(Ce.origin, {
body: new ReadableStream(),
method: 'POST',
get duplex() {
return (e = !0), 'half'
},
}).headers.has('Content-Type')
return e && !t
}),
yr = 64 * 1024,
no = wc && Rc(() => S.isReadableStream(new Response('').body)),
Ki = { stream: no && ((e) => e.body) }
hs &&
((e) => {
;['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((t) => {
!Ki[t] &&
(Ki[t] = S.isFunction(e[t])
? (n) => n[t]()
: (n, i) => {
throw new te(`Response type '${t}' is not supported`, te.ERR_NOT_SUPPORT, i)
})
})
})(new Response())
const a1 = async (e) => {
if (e == null) return 0
if (S.isBlob(e)) return e.size
if (S.isSpecCompliantForm(e))
return (await new Request(Ce.origin, { method: 'POST', body: e }).arrayBuffer()).byteLength
if (S.isArrayBufferView(e) || S.isArrayBuffer(e)) return e.byteLength
if ((S.isURLSearchParams(e) && (e = e + ''), S.isString(e))) return (await s1(e)).byteLength
},
r1 = async (e, t) => {
const n = S.toFiniteNumber(e.getContentLength())
return n ?? a1(t)
},
l1 =
hs &&
(async (e) => {
let {
url: t,
method: n,
data: i,
signal: s,
cancelToken: a,
timeout: o,
onDownloadProgress: r,
onUploadProgress: l,
responseType: d,
headers: c,
withCredentials: A = 'same-origin',
fetchOptions: g,
} = yc(e)
d = d ? (d + '').toLowerCase() : 'text'
let b = e1([s, a && a.toAbortSignal()], o),
u
const p =
b &&
b.unsubscribe &&
(() => {
b.unsubscribe()
})
let v
try {
if (l && o1 && n !== 'get' && n !== 'head' && (v = await r1(c, i)) !== 0) {
let y = new Request(t, { method: 'POST', body: i, duplex: 'half' }),
E
if ((S.isFormData(i) && (E = y.headers.get('content-type')) && c.setContentType(E), y.body)) {
const [m, j] = br(v, Hi(hr(l)))
i = mr(y.body, yr, m, j)
}
}
S.isString(A) || (A = A ? 'include' : 'omit')
const f = 'credentials' in Request.prototype
u = new Request(t, {
...g,
signal: b,
method: n.toUpperCase(),
headers: c.normalize().toJSON(),
body: i,
duplex: 'half',
credentials: f ? A : void 0,
})
let w = await fetch(u)
const R = no && (d === 'stream' || d === 'response')
if (no && (r || (R && p))) {
const y = {}
;['status', 'statusText', 'headers'].forEach((U) => {
y[U] = w[U]
})
const E = S.toFiniteNumber(w.headers.get('content-length')),
[m, j] = (r && br(E, Hi(hr(r), !0))) || []
w = new Response(
mr(w.body, yr, m, () => {
j && j(), p && p()
}),
y
)
}
d = d || 'text'
let I = await Ki[S.findKey(Ki, d) || 'text'](w, e)
return (
!R && p && p(),
await new Promise((y, E) => {
vc(y, E, {
data: I,
headers: Ke.from(w.headers),
status: w.status,
statusText: w.statusText,
config: e,
request: u,
})
})
)
} catch (f) {
throw (
(p && p(),
f && f.name === 'TypeError' && /fetch/i.test(f.message)
? Object.assign(new te('Network Error', te.ERR_NETWORK, e, u), { cause: f.cause || f })
: te.from(f, f && f.code, e, u))
)
}
}),
io = { http: II, xhr: $I, fetch: l1 }
S.forEach(io, (e, t) => {
if (e) {
try {
Object.defineProperty(e, 'name', { value: t })
} catch {}
Object.defineProperty(e, 'adapterName', { value: t })
}
})
const wr = (e) => `- ${e}`,
c1 = (e) => S.isFunction(e) || e === null || e === !1,
Ic = {
getAdapter: (e) => {
e = S.isArray(e) ? e : [e]
const { length: t } = e
let n, i
const s = {}
for (let a = 0; a < t; a++) {
n = e[a]
let o
if (((i = n), !c1(n) && ((i = io[(o = String(n)).toLowerCase()]), i === void 0)))
throw new te(`Unknown adapter '${o}'`)
if (i) break
s[o || '#' + a] = i
}
if (!i) {
const a = Object.entries(s).map(
([r, l]) =>
`adapter ${r} ` + (l === !1 ? 'is not supported by the environment' : 'is not available in the build')
)
let o = t
? a.length > 1
? `since :
` +
a.map(wr).join(`
`)
: ' ' + wr(a[0])
: 'as no adapter specified'
throw new te('There is no suitable adapter to dispatch the request ' + o, 'ERR_NOT_SUPPORT')
}
return i
},
adapters: io,
}
function Gs(e) {
if ((e.cancelToken && e.cancelToken.throwIfRequested(), e.signal && e.signal.aborted)) throw new Pn(null, e)
}
function Rr(e) {
return (
Gs(e),
(e.headers = Ke.from(e.headers)),
(e.data = js.call(e, e.transformRequest)),
['post', 'put', 'patch'].indexOf(e.method) !== -1 &&
e.headers.setContentType('application/x-www-form-urlencoded', !1),
Ic.getAdapter(e.adapter || vi.adapter)(e).then(
function (i) {
return Gs(e), (i.data = js.call(e, e.transformResponse, i)), (i.headers = Ke.from(i.headers)), i
},
function (i) {
return (
hc(i) ||
(Gs(e),
i &&
i.response &&
((i.response.data = js.call(e, e.transformResponse, i.response)),
(i.response.headers = Ke.from(i.response.headers)))),
Promise.reject(i)
)
}
)
)
}
const Ec = '1.8.1',
vs = {}
;['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((e, t) => {
vs[e] = function (i) {
return typeof i === e || 'a' + (t < 1 ? 'n ' : ' ') + e
}
})
const Ir = {}
vs.transitional = function (t, n, i) {
function s(a, o) {
return '[Axios v' + Ec + "] Transitional option '" + a + "'" + o + (i ? '. ' + i : '')
}
return (a, o, r) => {
if (t === !1) throw new te(s(o, ' has been removed' + (n ? ' in ' + n : '')), te.ERR_DEPRECATED)
return n && !Ir[o] && (Ir[o] = !0), t ? t(a, o, r) : !0
}
}
vs.spelling = function (t) {
return (n, i) => !0
}
function u1(e, t, n) {
if (typeof e != 'object') throw new te('options must be an object', te.ERR_BAD_OPTION_VALUE)
const i = Object.keys(e)
let s = i.length
for (; s-- > 0; ) {
const a = i[s],
o = t[a]
if (o) {
const r = e[a],
l = r === void 0 || o(r, a, e)
if (l !== !0) throw new te('option ' + a + ' must be ' + l, te.ERR_BAD_OPTION_VALUE)
continue
}
if (n !== !0) throw new te('Unknown option ' + a, te.ERR_BAD_OPTION)
}
}
const zi = { assertOptions: u1, validators: vs },
It = zi.validators
let rn = class {
constructor(t) {
;(this.defaults = t), (this.interceptors = { request: new gr(), response: new gr() })
}
async request(t, n) {
try {
return await this._request(t, n)
} catch (i) {
if (i instanceof Error) {
let s = {}
Error.captureStackTrace ? Error.captureStackTrace(s) : (s = new Error())
const a = s.stack ? s.stack.replace(/^.+\n/, '') : ''
try {
i.stack
? a &&
!String(i.stack).endsWith(a.replace(/^.+\n.+\n/, '')) &&
(i.stack +=
`
` + a)
: (i.stack = a)
} catch {}
}
throw i
}
}
_request(t, n) {
typeof t == 'string' ? ((n = n || {}), (n.url = t)) : (n = t || {}), (n = fn(this.defaults, n))
const { transitional: i, paramsSerializer: s, headers: a } = n
i !== void 0 &&
zi.assertOptions(
i,
{
silentJSONParsing: It.transitional(It.boolean),
forcedJSONParsing: It.transitional(It.boolean),
clarifyTimeoutError: It.transitional(It.boolean),
},
!1
),
s != null &&
(S.isFunction(s)
? (n.paramsSerializer = { serialize: s })
: zi.assertOptions(s, { encode: It.function, serialize: It.function }, !0)),
n.allowAbsoluteUrls !== void 0 ||
(this.defaults.allowAbsoluteUrls !== void 0
? (n.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls)
: (n.allowAbsoluteUrls = !0)),
zi.assertOptions(n, { baseUrl: It.spelling('baseURL'), withXsrfToken: It.spelling('withXSRFToken') }, !0),
(n.method = (n.method || this.defaults.method || 'get').toLowerCase())
let o = a && S.merge(a.common, a[n.method])
a &&
S.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (u) => {
delete a[u]
}),
(n.headers = Ke.concat(o, a))
const r = []
let l = !0
this.interceptors.request.forEach(function (p) {
;(typeof p.runWhen == 'function' && p.runWhen(n) === !1) ||
((l = l && p.synchronous), r.unshift(p.fulfilled, p.rejected))
})
const d = []
this.interceptors.response.forEach(function (p) {
d.push(p.fulfilled, p.rejected)
})
let c,
A = 0,
g
if (!l) {
const u = [Rr.bind(this), void 0]
for (u.unshift.apply(u, r), u.push.apply(u, d), g = u.length, c = Promise.resolve(n); A < g; )
c = c.then(u[A++], u[A++])
return c
}
g = r.length
let b = n
for (A = 0; A < g; ) {
const u = r[A++],
p = r[A++]
try {
b = u(b)
} catch (v) {
p.call(this, v)
break
}
}
try {
c = Rr.call(this, b)
} catch (u) {
return Promise.reject(u)
}
for (A = 0, g = d.length; A < g; ) c = c.then(d[A++], d[A++])
return c
}
getUri(t) {
t = fn(this.defaults, t)
const n = mc(t.baseURL, t.url, t.allowAbsoluteUrls)
return gc(n, t.params, t.paramsSerializer)
}
}
S.forEach(['delete', 'get', 'head', 'options'], function (t) {
rn.prototype[t] = function (n, i) {
return this.request(fn(i || {}, { method: t, url: n, data: (i || {}).data }))
}
})
S.forEach(['post', 'put', 'patch'], function (t) {
function n(i) {
return function (a, o, r) {
return this.request(
fn(r || {}, { method: t, headers: i ? { 'Content-Type': 'multipart/form-data' } : {}, url: a, data: o })
)
}
}
;(rn.prototype[t] = n()), (rn.prototype[t + 'Form'] = n(!0))
})
let d1 = class Mc {
constructor(t) {
if (typeof t != 'function') throw new TypeError('executor must be a function.')
let n
this.promise = new Promise(function (a) {
n = a
})
const i = this
this.promise.then((s) => {
if (!i._listeners) return
let a = i._listeners.length
for (; a-- > 0; ) i._listeners[a](s)
i._listeners = null
}),
(this.promise.then = (s) => {
let a
const o = new Promise((r) => {
i.subscribe(r), (a = r)
}).then(s)
return (
(o.cancel = function () {
i.unsubscribe(a)
}),
o
)
}),
t(function (a, o, r) {
i.reason || ((i.reason = new Pn(a, o, r)), n(i.reason))
})
}
throwIfRequested() {
if (this.reason) throw this.reason
}
subscribe(t) {
if (this.reason) {
t(this.reason)
return
}
this._listeners ? this._listeners.push(t) : (this._listeners = [t])
}
unsubscribe(t) {
if (!this._listeners) return
const n = this._listeners.indexOf(t)
n !== -1 && this._listeners.splice(n, 1)
}
toAbortSignal() {
const t = new AbortController(),
n = (i) => {
t.abort(i)
}
return this.subscribe(n), (t.signal.unsubscribe = () => this.unsubscribe(n)), t.signal
}
static source() {
let t
return {
token: new Mc(function (s) {
t = s
}),
cancel: t,
}
}
}
function p1(e) {
return function (n) {
return e.apply(null, n)
}
}
function A1(e) {
return S.isObject(e) && e.isAxiosError === !0
}
const so = {
Continue: 100,
SwitchingProtocols: 101,
Processing: 102,
EarlyHints: 103,
Ok: 200,
Created: 201,
Accepted: 202,
NonAuthoritativeInformation: 203,
NoContent: 204,
ResetContent: 205,
PartialContent: 206,
MultiStatus: 207,
AlreadyReported: 208,
ImUsed: 226,
MultipleChoices: 300,
MovedPermanently: 301,
Found: 302,
SeeOther: 303,
NotModified: 304,
UseProxy: 305,
Unused: 306,
TemporaryRedirect: 307,
PermanentRedirect: 308,
BadRequest: 400,
Unauthorized: 401,
PaymentRequired: 402,
Forbidden: 403,
NotFound: 404,
MethodNotAllowed: 405,
NotAcceptable: 406,
ProxyAuthenticationRequired: 407,
RequestTimeout: 408,
Conflict: 409,
Gone: 410,
LengthRequired: 411,
PreconditionFailed: 412,
PayloadTooLarge: 413,
UriTooLong: 414,
UnsupportedMediaType: 415,
RangeNotSatisfiable: 416,
ExpectationFailed: 417,
ImATeapot: 418,
MisdirectedRequest: 421,
UnprocessableEntity: 422,
Locked: 423,
FailedDependency: 424,
TooEarly: 425,
UpgradeRequired: 426,
PreconditionRequired: 428,
TooManyRequests: 429,
RequestHeaderFieldsTooLarge: 431,
UnavailableForLegalReasons: 451,
InternalServerError: 500,
NotImplemented: 501,
BadGateway: 502,
ServiceUnavailable: 503,
GatewayTimeout: 504,
HttpVersionNotSupported: 505,
VariantAlsoNegotiates: 506,
InsufficientStorage: 507,
LoopDetected: 508,
NotExtended: 510,
NetworkAuthenticationRequired: 511,
}
Object.entries(so).forEach(([e, t]) => {
so[t] = e
})
function Dc(e) {
const t = new rn(e),
n = ic(rn.prototype.request, t)
return (
S.extend(n, rn.prototype, t, { allOwnKeys: !0 }),
S.extend(n, t, null, { allOwnKeys: !0 }),
(n.create = function (s) {
return Dc(fn(e, s))
}),
n
)
}
const De = Dc(vi)
De.Axios = rn
De.CanceledError = Pn
De.CancelToken = d1
De.isCancel = hc
De.VERSION = Ec
De.toFormData = bs
De.AxiosError = te
De.Cancel = De.CanceledError
De.all = function (t) {
return Promise.all(t)
}
De.spread = p1
De.isAxiosError = A1
De.mergeConfig = fn
De.AxiosHeaders = Ke
De.formToJSON = (e) => bc(S.isHTMLForm(e) ? new FormData(e) : e)
De.getAdapter = Ic.getAdapter
De.HttpStatusCode = so
De.default = De
const {
Axios: EE,
AxiosError: ME,
CanceledError: DE,
isCancel: ZE,
CancelToken: SE,
VERSION: NE,
all: jE,
Cancel: GE,
isAxiosError: kE,
spread: BE,
toFormData: YE,
AxiosHeaders: UE,
HttpStatusCode: TE,
formToJSON: JE,
getAdapter: CE,
mergeConfig: OE,
} = De,
Hn = (e) => {
const t = De.create({ timeout: 12e4, ...e })
return (
t.interceptors.response.use(
(n) => n,
(n) => {
let { message: i } = n
return (
i == 'Network Error'
? (i = '后端接口连接异常')
: i.includes('timeout')
? (i = '系统接口请求超时')
: i.includes('Request failed with status code') && (i = '系统接口' + i.substr(i.length - 3) + '异常'),
Im({ message: i, type: 'error', offset: 90 }),
Promise.reject(n)
)
}
),
t
)
}
Hn({ baseURL: 'https://cimweb.zjw.sh.cegn.cn:2008/', method: 'post' })
Hn({ baseURL: 'https://cimweb.zjw.sh.cegn.cn:2008/', method: 'get' })
Hn({ baseURL: 'https://cimweb.zjw.sh.cegn.cn:2007/data-business-prod/', method: 'post' })
Hn({ baseURL: 'https://cimweb.zjw.sh.cegn.cn:2007/data-business-prod/', method: 'get' })
Hn({ baseURL: 'http://58.34.215.19:8095/low-altitude/', method: 'post' })
Hn({ baseURL: 'http://10.90.9.143:9252/', method: 'post' })
function qt(e, t) {
Uo.bridgeContent.Invoke({ ActionName: e, Parameters: { ...t } })
}
function g1(e, t, n, i, s, a = !0) {
qt('SetLocation', { x: e, y: t, z: n, heading: i, tilt: s, isfly: a })
}
function Zc() {
qt('AddBaseMapAnSeLayer', { id: 'BaseMap', title: 'BaseMap', visible: !0, opacity: 1 })
}
function f1() {
qt('AddBaseMapSuSeLayer', { id: 'BaseMap', title: 'BaseMap', visible: !0, opacity: 1 })
}
function b1(e) {
qt('AddYaoGanLayer', { id: 'YaoGan', title: 'YaoGan', type: 'tile', visible: e, opacity: 1 })
}
async function h1(e) {
e.title == '影像底图' && b1(e.visible),
e.title == '全市白模' &&
qt('AddWhiteMoldLayer', { id: 'WhiteMold', title: 'WhiteMold', type: 'scene', visible: e.visible, opacity: 1 })
}
function Sc() {
qt('Draw', { status: 'hide' })
}
function Nc(e) {
qt('Draw', { type: 'polygon', clear: !0, hasZ: (e == null ? void 0 : e.hasZ) || !1, token: '' })
}
function qi(e) {
qt(e.evaluation ? 'GetPowerCube' : 'GetOccupyCube', {
id: e.id || 'QueryCube',
status: e.show ? 'show' : 'hide',
deepShow: e.deepShow ? e.deepShow : !1,
level: e.level,
minZ: e.minZ,
maxZ: e.maxZ,
rings: e.rings,
token: '',
})
}
const v1 = ['onClick'],
m1 = ['src'],
y1 = {
__name: 'BaseMap',
emits: ['mouseMove'],
setup(e, { emit: t }) {
const n = Qn(),
i = C([
{ id: 'dark', title: '深色', pic: 'basemap-dark' },
{ id: 'light', title: '浅色', pic: 'basemap-light' },
])
function s(r) {
if (r !== n.mapScene)
switch ((n.setMapScene(r), r)) {
case 'dark':
Zc()
break
case 'light':
f1()
break
}
}
const a = t
function o(r) {
a('mouseMove', r)
}
return (r, l) => (
Z(),
T(
'ul',
{
class: 'base-map',
onMouseleave: l[0] || (l[0] = (d) => o('leave')),
onMouseenter: l[1] || (l[1] = (d) => o('enter')),
},
[
(Z(!0),
T(
je,
null,
Jt(
i.value,
(d) => (
Z(),
T(
'li',
{ onClick: Ze((c) => s(d.id), ['stop']) },
[
Y(
'img',
{ src: h(Yo)('page/' + d.pic + (h(n).mapScene === d.id ? '-h.png' : '.png')), alt: '' },
null,
8,
m1
),
Y('span', null, ce(d.title), 1),
],
8,
v1
)
)
),
256
)),
],
32
)
)
},
},
w1 = Kt(y1, [['__scopeId', 'data-v-e0d026d1']]),
R1 = [
[2793.864599595192, 901.658704419662, 0],
[2793.6509009229326, 901.0123508696659, 100],
[2798.557835382849, 960.97592212866, 100],
[2847.499187535616, 1003.583154753295, 100],
[2912.552128329501, 1039.626331293216, 99.99999999906868],
[3071.1961524066214, 1107.577257156012, 100.00000000209548],
[3278.347727182615, 1176.6387484848105, 99.99999999860302],
[3400.2541650048834, 1200.4015748868385, 100.00000000093132],
[3481.377674740545, 1212.9278557111718, 99.99999999720603],
[3572.9939249743356, 1214.6717122521584, 100.00000000279397],
[3662.1252360307035, 1229.9645778602462, 100],
[3749.04097395513, 1229.9309347879573, 100.00000000093132],
[3823.7009391081147, 1221.990974433195, 99.99999999906868],
[3899.681462008697, 1225.7976213664222, 99.99999999813735],
[4059.050414990652, 1171.4603758058506, 99.99999999906868],
[4029.8655992358576, 1097.8677174668455, 100],
[4028.35425303478, 1099.2525115894166, 0],
],
I1 = [
[1402.1217227804018, 348.37421585662935, 0],
[1401.9080241081424, 347.72786230663326, 100.00000000279397],
[1418.0720522801462, 411.97922736945713, 100.00000000186265],
[1455.7563107208257, 450.29866619026245, 100.00000000279397],
[1520.809251514711, 486.34184273018343, 100.00000000186265],
[1679.4532755918312, 554.2927685929793, 100.00000000488944],
[1886.6048503678248, 623.3542599217783, 100.00000000139698],
[2008.5112881900932, 647.1170863238062, 100.00000000372529],
[2089.634797925755, 659.6433671481394, 100],
[2181.251048159546, 661.387223689126, 100.00000000558794],
[2270.3823592159138, 676.6800892972137, 100.00000000279397],
[2357.29809714034, 676.6464462249247, 100.00000000372529],
[2431.958062293325, 668.7064858701631, 100.00000000186265],
[2507.9385851939073, 672.5131328033896, 100.00000000093132],
[2667.307538175862, 618.1758872428185, 100.00000000186265],
[2638.1227224210675, 544.5832289038129, 100.00000000279397],
[2636.61137621999, 545.968023026384, 0],
],
E1 = [
[2430.7350154096725, 217.2340145229527, 0],
[2430.521316737413, 216.5876609729566, 99.99999999906868],
[2434.961072770454, 189.01877223989482, 99.99999999906868],
[2439.400828803495, 161.44988350683306, 99.99999999906868],
[2454.0950554082074, 134.0376967409726, 99.99999999953434],
[2468.78928201292, 106.62550997511212, 100],
[2490.6404054209615, 84.35878527660374, 99.99999999860302],
[2512.4915288290035, 62.09206057809536, 99.99999999720603],
[2543.3158266027954, 30.306075153252795, 99.9999999977299],
[2574.140124376587, -1.479910271589763, 99.99999999825377],
[2604.871802260764, -31.858519253953876, 99.99999999877764],
[2635.603480144941, -62.23712823631799, 99.99999999930151],
[2668.5979849326986, -94.42764964160654, 100.0000000007567],
[2699.988639087573, -125.46742031636052, 100.00000000034925],
[2732.411532140508, -153.27240439923366, 99.99999999994179],
[2764.8344251934423, -181.07738848210684, 99.99999999953434],
[2802.369345797033, -207.4924932534358, 99.99999999959255],
[2839.904266400624, -233.90759802476478, 99.99999999965075],
[2875.5872352358456, -260.8085492725266, 99.99999999970896],
[2911.270204071067, -287.7095005202884, 99.99999999976717],
[2948.325552706232, -313.00456930892733, 99.99999999982538],
[2985.380901341397, -338.29963809756623, 99.99999999988358],
[3022.436249976562, -363.59470688620513, 99.99999999994179],
[3059.491598611727, -388.88977567484403, 100],
[3159.917209343701, -502.68096557465793, 99.99999999906868],
[3195.5171432122784, -551.7791554054247, 99.99999999906868],
[3253.5378259417926, -614.2565144157488, 100],
[3310.431345031931, -707.9072436123589, 100],
[3238.0301298849827, -774.4059018377725, 99.9999999976717],
[3189.043279460794, -822.3702496583892, 99.99999999930151],
[3138.5608017623194, -862.4484319194032, 99.99999999877764],
[3073.4600531235665, -926.408580346081, 100.00000000011642],
[3027.5815529370266, -964.6293646970702, 100.00000000145519],
[2997.7406895326567, -992.6158518535822, 100.00000000119326],
[2972.542023831212, -1015.2126689856104, 100.00000000013097],
[2941.6197549998237, -1042.7275903900004, 99.99999999906868],
[2921.002776521226, -1060.334465348369, 100.00000000093132],
[2868.70642126298, -1103.2681344438438, 99.99999999906868],
[2840.758029417479, -1130.526485005527, 99.99999999813735],
[2792.617140809583, -1175.7973589421463, 99.99999999906868],
[2716.364720491846, -1309.8712829404642, 103.78167193662375],
[2715.2061671086435, -1311.0999558706123, 0],
],
Gn = { paths1: R1, paths2: I1, paths3: E1 }
function ln(e, t) {
Uo.bridgeContent.Invoke({ ActionName: e, Parameters: { ...t } })
}
async function _i(e) {
ln('GeometryMeshEffect', { status: e.status, id: e.id, data: e.data })
}
async function M1(e) {
ln('GetFixedFlyPoint', { id: 'wrj1', status: e.status ? 'show' : 'hide', paths: Gn.paths1 }),
ln('GetFixedFlyPoint', { id: 'wrj2', status: e.status ? 'show' : 'hide', paths: Gn.paths2 }),
ln('GetFixedFlyPoint', { id: 'wrj3', status: e.status ? 'show' : 'hide', paths: Gn.paths3 })
}
async function D1(e) {
ln('PathPipe', {
id: 'wrj1',
status: e.status ? 'show' : 'hide',
paths: [Gn.paths1],
color: '#438EDB',
intensity: 1.2,
pipeRadius: 10,
}),
ln('PathPipe', {
id: 'wrj2',
status: e.status ? 'show' : 'hide',
paths: [Gn.paths2],
color: '#438EDB',
intensity: 1.2,
pipeRadius: 10,
}),
ln('PathPipe', {
id: 'wrj3',
status: e.status ? 'show' : 'hide',
paths: [Gn.paths3],
color: '#438EDB',
intensity: 1.2,
pipeRadius: 10,
})
}
const Z1 = ['onClick', 'title'],
S1 = ['src', 'onMouseenter'],
N1 = ['onMouseleave', 'onMouseenter'],
j1 = ['onClick'],
G1 = {
__name: 'ToolList',
setup(e) {
const t = Qn()
is(() => {
const c = n.value.findIndex((A) => A.id === t.leftPanelType)
c !== -1 && (n.value[c].active = !0)
})
const n = C([
{ id: 'dtqh', name: '底图切换', icon: 'tool-dtqh', active: !1 },
{ id: 'kytc', name: '空域图层', icon: 'tool-kytc', active: !1, leftPanel: !0 },
{
name: '栅格占用',
icon: 'tool-sgzy',
showSub: !1,
children: [{ id: 'sgzy', name: '网格查询', active: !1, leftPanel: !0 }],
},
{ id: 'tsjs', name: '态势监视', icon: 'tool-tsjs', active: !1 },
])
q(
n,
(c) => {
let A = {}
c.forEach((g) => {
A[g.id] = g.active
}),
(t.toolsActive = A)
},
{ deep: !0 }
),
q(
() => t.uavMonitorOn,
(c) => {
n.value[0].disabled = c
}
)
function i(c) {
t.toggleAside('left', !!(c === 'default' && t.rightCollapse)), t.setLeftPanel(c)
const A = (g) => {
if ((g.leftPanel && g.id !== c && (g.active = !1), g.children)) {
for (const b of g.children) A(b)
g.children.every((b) => !b.active) && (g.active = !1)
}
}
for (const g of n.value) A(g)
}
function s(c, A) {
if (!c.disabled)
if (A != null) {
const g = c.children[A],
b = g.active
switch (
(c.children.forEach((u) => {
u.active = !1
}),
(g.active = !b),
g.id)
) {
case 'sgzy':
case 'kypm':
i(g.active ? g.id : 'default')
break
}
} else if (c.children) {
if (c.children.some((g) => g.active)) {
c.children.forEach((g) => {
g.active = !1
}),
c.name === '栅格占用' && i('default')
return
}
n.value.forEach((g) => {
g.showSub = g.name === c.name ? !c.showSub : !1
})
} else
switch (((c.active = !c.active), c.id)) {
case 'qjll': {
t.toggleAside('right', c.active),
t.leftPanelType === 'default' && t.toggleAside('left', c.active),
(t.floatPanels.kysg && c.active) || t.toggleFooter(c.active)
break
}
case 'kyhs':
case 'qjchs':
case 'hxhs':
case 'kytc':
i(c.active ? c.id : 'default')
break
case 'kysg':
c.active && t.footerCollapse && t.toggleFooter(!1)
case 'fcky':
t.toggleFloatPanel(c.id, c.active)
break
case 'tsjs':
M1({ status: c.active }), D1({ status: c.active })
}
}
q(
t.floatPanels,
(c) => {
for (let [A, g] of Object.entries(c))
if (!g) {
const b = n.value.find((u) => u.id === A)
b && b.active && (b.active = !1)
}
},
{ deep: !0 }
)
function a(c) {
c.children && c.children.some((A) => A.active) && (c.showSub = !0)
}
let o
function r(c, A = !1) {
if (A) {
clearTimeout(o)
return
}
o = setTimeout(() => {
c.showSub = !1
}, 800)
}
let l
function d(c) {
if (c === 'enter') {
clearTimeout(l)
return
}
l = setTimeout(() => {
n.value.find((A) => A.id === 'dtqh').active = !1
}, 800)
}
return (c, A) => (
Z(),
T(
'ul',
{ class: B(['tool-list', { 'to-right': h(t).rightCollapse }]) },
[
(Z(!0),
T(
je,
null,
Jt(n.value, (g) => {
var b
return (
Z(),
T(
'li',
{ onClick: (u) => s(g), title: g.name, class: B({ disabled: g.disabled }) },
[
Y(
'img',
{
src: h(Yo)(
'buttons/' +
g.icon +
(g.active || ((b = g.children) != null && b.some((u) => u.active)) ? '-h.png' : '.png')
),
alt: '',
onMouseenter: (u) => a(g),
},
null,
40,
S1
),
P(
at,
{ name: 'emerge-right' },
{
default: x(() => [
g.id === 'dtqh' && g.active
? (Z(), _(w1, { key: 0, class: 'base-map', onMouseMove: d }))
: X('', !0),
]),
_: 2,
},
1024
),
P(
at,
{ name: 'emerge-right' },
{
default: x(() => [
g.children && g.showSub
? (Z(),
T(
'ul',
{
key: 0,
class: 'sub-wrapper',
onMouseleave: (u) => r(g),
onMouseenter: (u) => r(g, !0),
},
[
(Z(!0),
T(
je,
null,
Jt(
g.children,
(u, p) => (
Z(),
T(
'li',
{ onClick: Ze((v) => s(g, p), ['stop']) },
[Y('span', { class: B({ active: u.active }) }, ce(u.name), 3)],
8,
j1
)
)
),
256
)),
],
40,
N1
))
: X('', !0),
]),
_: 2,
},
1024
),
],
10,
Z1
)
)
}),
256
)),
],
2
)
)
},
},
k1 = Kt(G1, [['__scopeId', 'data-v-5f2f0e97']]),
Oo = co('map', {
state: () => ({
scale: null,
camera: { heading: null, tilt: null, position: { x: null, y: null, z: null } },
center: null,
extent: null,
draw_geometry: null,
gridCode: null,
uavId: null,
flyInfo: null,
currentUavInfo: null,
realTimeUAVList: [],
isFollow: !1,
queryResult: [],
cubeResult: {},
}),
persist: !0,
actions: {},
}),
B1 = { class: 'flex flex-col aside-left-inner' },
Y1 = { class: 'table-default stripe mb-6' },
U1 = { style: { 'max-height': '580px' } },
T1 = { class: 'w-16' },
J1 = { class: 'w-24' },
C1 = { class: 'text-center' },
O1 = {
__name: 'PanelSgzy',
setup(e) {
const t = Oo(),
n = nc()
is(() => {
i()
})
function i() {
const u = n.sgzy
Object.keys(u).length && ((s.value = u.form), (l.value = u.tableData))
}
const s = C({ level: '23', minZ: '0', maxZ: '120', evaluation: !1 }),
a = []
function o() {
Nc({ hasZ: !0 })
}
let r = []
const l = C([])
q(
() => t.draw_geometry,
(u) => {
;(r = u == null ? void 0 : u.rings), (l.value = r.flat())
},
{ deep: !0 }
)
function d(u) {
Sc(), c('hide'), u && (l.value = []), qi({ show: !1 })
}
function c(u) {
if (u == 'hide') {
_i({ id: 'sgzy_mesh', status: 'hide' })
return
}
let p = s.value.maxZ * 1 - s.value.minZ * 1,
v = []
for (let f = 0; f < r[0].length; f++) v.push([r[0][f][0], r[0][f][1], s.value.minZ * 1])
_i({
id: 'sgzy_mesh',
status: 'show',
data: [{ type: 'polygon', shape: { height: p, rings: [v], color: [0, 255, 0, 0.2] } }],
})
}
const A = lt({ calc: !1 })
function g() {
const { maxZ: u, minZ: p } = s.value
r &&
(!p ||
!u ||
(d(),
c('show'),
setTimeout(() => {
qi({ ...s.value, show: !0, level: Number(s.value.level), rings: r })
}, 300)))
}
function b() {
if (!l.value.length) {
n.setSgzy({})
return
}
n.setSgzy({ form: s.value, tableData: l.value })
}
return (
xe(() => {
b()
}),
(u, p) => {
const v = $l,
f = _l,
w = Hl,
R = gl,
I = Ol,
y = Vl,
E = Pl
return (
Z(),
T('div', B1, [
p[11] || (p[11] = Y('div', { class: 'title-main' }, '网格查询', -1)),
P(
E,
{
ref: 'formRef',
class: 'p-form mt-7',
model: s.value,
rules: a,
'label-position': 'left',
size: 'large',
},
{
default: x(() => [
P(
w,
{ label: '计算层级', prop: 'level' },
{
default: x(() => [
P(
f,
{
modelValue: s.value.level,
'onUpdate:modelValue': p[0] || (p[0] = (m) => (s.value.level = m)),
placeholder: '',
},
{
default: x(() => [
P(v, { label: '12级', value: '12' }),
P(v, { label: '13级', value: '13' }),
P(v, { label: '14级', value: '14' }),
P(v, { label: '15级', value: '15' }),
]),
_: 1,
},
8,
['modelValue']
),
]),
_: 1,
}
),
P(
w,
{ label: '高度', prop: 'height' },
{
default: x(() => [
P(
R,
{
modelValue: s.value.minZ,
'onUpdate:modelValue': p[1] || (p[1] = (m) => (s.value.minZ = m)),
max: s.value.maxZ,
type: 'number',
class: 'flex-1',
},
null,
8,
['modelValue', 'max']
),
p[6] || (p[6] = Y('div', { class: 'mx-2' }, '--', -1)),
P(
R,
{
modelValue: s.value.maxZ,
'onUpdate:modelValue': p[2] || (p[2] = (m) => (s.value.maxZ = m)),
min: s.value.minZ,
type: 'number',
class: 'flex-1',
},
null,
8,
['modelValue', 'min']
),
P(
I,
{ class: 'btn-secondary ml-3 -mb-1', onClick: o },
{ default: x(() => p[5] || (p[5] = [Le('绘制区域')])), _: 1 }
),
]),
_: 1,
}
),
P(
w,
{ label: '评价系数' },
{
default: x(() => [
P(
y,
{
modelValue: s.value.evaluation,
'onUpdate:modelValue': p[3] || (p[3] = (m) => (s.value.evaluation = m)),
},
{ default: x(() => p[7] || (p[7] = [Le('展示')])), _: 1 },
8,
['modelValue']
),
]),
_: 1,
}
),
]),
_: 1,
},
8,
['model']
),
Y('table', Y1, [
p[8] ||
(p[8] = Y(
'thead',
null,
[
Y('tr', null, [
Y('th', { class: 'w-16' }, '序号'),
Y('th', null, '经度'),
Y('th', null, '纬度'),
Y('th', { class: 'w-24' }, '海拔高/m'),
]),
],
-1
)),
Y('tbody', U1, [
(Z(!0),
T(
je,
null,
Jt(
l.value,
(m, j) => (
Z(),
T('tr', null, [
Y('td', T1, ce(j + 1), 1),
Y('td', null, ce(m[0]), 1),
Y('td', null, ce(m[1]), 1),
Y('td', J1, ce(m[2]), 1),
])
)
),
256
)),
]),
]),
Y('div', C1, [
P(
I,
{ class: 'btn-main', onClick: g, loading: A.calc },
{ default: x(() => p[9] || (p[9] = [Le('开始计算')])), _: 1 },
8,
['loading']
),
P(
I,
{ class: 'btn-main', onClick: p[4] || (p[4] = (m) => d(!0)) },
{ default: x(() => p[10] || (p[10] = [Le('清空结果')])), _: 1 }
),
]),
])
)
}
)
},
},
z1 = Kt(O1, [['__scopeId', 'data-v-0db935d1']]),
W1 = { class: 'flex flex-col aside-left-inner' },
F1 = { class: 'table-default stripe mb-6' },
L1 = { style: { 'max-height': '580px' } },
x1 = { class: 'w-16' },
V1 = { class: 'w-24' },
Q1 = { class: 'text-center' },
X1 = {
__name: 'PanelKypm',
setup(e) {
const t = nc(),
n = Oo()
is(() => {
i()
})
function i() {
const u = t.kypm
Object.keys(u).length && ((s.value = u.form), (l.value = u.tableData))
}
const s = C({ level: '23', height: '50', evaluation: !1 }),
a = []
function o() {
Nc({ hasZ: !0 })
}
let r = []
const l = C([])
q(
() => n.draw_geometry,
(u) => {
;(r = u == null ? void 0 : u.rings), (l.value = r.flat())
},
{ deep: !0 }
)
function d(u) {
Sc(), c('hide'), u && (l.value = []), qi({ show: !1 })
}
function c(u) {
if (u == 'hide') {
_i({ id: 'sgzy_mesh', status: 'hide' })
return
}
let p = 0.02,
v = []
for (let f = 0; f < r[0].length; f++) v.push([r[0][f][0], r[0][f][1], Number(s.value.height) - 0.01])
_i({
id: 'sgzy_mesh',
status: 'show',
data: [{ type: 'polygon', shape: { height: p, rings: [v], color: [0, 255, 0, 0.1] } }],
})
}
const A = lt({ calc: !1 })
function g() {
r &&
s.value.height &&
(d(),
c('show'),
setTimeout(() => {
qi({
...s.value,
minZ: Number(s.value.height) - 0.01,
maxZ: Number(s.value.height) + 0.01,
show: !0,
level: Number(s.value.level),
rings: r,
})
}, 300))
}
function b() {
if (!l.value.length) {
t.setKypm({})
return
}
t.setKypm({ form: s.value, tableData: l.value })
}
return (
xe(() => {
b()
}),
(u, p) => {
const v = $l,
f = _l,
w = Hl,
R = gl,
I = Ol,
y = Vl,
E = Pl
return (
Z(),
T('div', W1, [
p[9] || (p[9] = Y('div', { class: 'title-main' }, '空域剖面分析', -1)),
P(
E,
{
ref: 'formRef',
class: 'p-form mt-7',
model: s.value,
rules: a,
'label-position': 'left',
size: 'large',
},
{
default: x(() => [
P(
w,
{ label: '计算层级', prop: 'level' },
{
default: x(() => [
P(
f,
{
modelValue: s.value.level,
'onUpdate:modelValue': p[0] || (p[0] = (m) => (s.value.level = m)),
placeholder: '',
},
{
default: x(() => [
P(v, { label: '23级', value: '23' }),
P(v, { label: '24级', value: '24' }),
]),
_: 1,
},
8,
['modelValue']
),
]),
_: 1,
}
),
P(
w,
{ label: '高度', prop: 'height' },
{
default: x(() => [
P(
R,
{
modelValue: s.value.height,
'onUpdate:modelValue': p[1] || (p[1] = (m) => (s.value.height = m)),
type: 'number',
class: 'flex-1',
},
null,
8,
['modelValue']
),
P(
I,
{ class: 'btn-secondary ml-3 -mb-1', onClick: o },
{ default: x(() => p[4] || (p[4] = [Le('绘制剖面')])), _: 1 }
),
]),
_: 1,
}
),
P(
w,
{ label: '评价系数' },
{
default: x(() => [
P(
y,
{
modelValue: s.value.evaluation,
'onUpdate:modelValue': p[2] || (p[2] = (m) => (s.value.evaluation = m)),
},
{ default: x(() => p[5] || (p[5] = [Le('展示')])), _: 1 },
8,
['modelValue']
),
]),
_: 1,
}
),
]),
_: 1,
},
8,
['model']
),
Y('table', F1, [
p[6] ||
(p[6] = Y(
'thead',
null,
[
Y('tr', null, [
Y('th', { class: 'w-16' }, '序号'),
Y('th', null, '经度'),
Y('th', null, '纬度'),
Y('th', { class: 'w-24' }, '海拔高/m'),
]),
],
-1
)),
Y('tbody', L1, [
(Z(!0),
T(
je,
null,
Jt(
l.value,
(m, j) => (
Z(),
T('tr', null, [
Y('td', x1, ce(j + 1), 1),
Y('td', null, ce(m[0]), 1),
Y('td', null, ce(m[1]), 1),
Y('td', V1, ce(m[2]), 1),
])
)
),
256
)),
]),
]),
Y('div', Q1, [
P(
I,
{ class: 'btn-main', onClick: g, loading: A.calc },
{ default: x(() => p[7] || (p[7] = [Le('开始计算')])), _: 1 },
8,
['loading']
),
P(
I,
{ class: 'btn-main', onClick: p[3] || (p[3] = (m) => d(!0)) },
{ default: x(() => p[8] || (p[8] = [Le('清空结果')])), _: 1 }
),
]),
])
)
}
)
},
},
P1 = Kt(X1, [['__scopeId', 'data-v-32d9a9f0']]),
H1 = { class: 'panel-sjwg flex flex-col aside-left-inner' },
K1 = { class: 'title-sub my-4 shrink-0' },
q1 = { key: 0, class: 'pr-1', style: { flex: '2' } },
_1 = { class: 'title-shade' },
$1 = ['onClick'],
eE = ['onClick'],
tE = { key: 0 },
nE = ['src'],
iE = ['onClick'],
sE = {
__name: 'PanelSjwg',
setup(e) {
const t = Qn()
function n(c) {
;(c.active = !c.active),
c.children.forEach((A) => {
;(A.active = !c.active), a(A)
})
}
const i = C([
{
label: '服务',
show: !0,
children: [
{ label: '影像', alias: '影像底图', icon: 'dxing', active: !1 },
{ label: '全市建筑物', alias: '全市白模', icon: 'qsjzwu', active: !1 },
],
},
])
let s
async function a(c) {
if (((c.active = !c.active), c.alias)) {
const A = Array.isArray(c.alias) ? c.alias : [c.alias]
s || (s = await JR('resources.json'))
const g = s.filter((b) => A.some((u) => u === b.title))
if (g.length === 0) return
g.forEach((b) => {
h1({ ...b, visible: c.active })
})
}
}
function o(c) {
const A = i.value.find((g) => g.label === c.label)
;(A.show = !A.show),
i.value.forEach((g) => {
g.show && g.label !== c.label && (g.show = !1)
})
}
const r = lt({ b1: !0, b2: !0 })
function l(c) {
r[c] = !r[c]
}
xe(() => {
t.toggleFloatPanel('layers_legend', !1)
})
const d = {
beforeMount(c, A) {
;(c.style.height = '0'),
(c.style.overflow = A.value === 'scroll' ? 'auto' : 'hidden'),
(c.style.transition = 'height 0.5s ease')
},
mounted(c) {
const A = c.scrollHeight
c.style.height = `${A}px`
},
beforeUnmount(c) {
c.style.height = '0'
},
}
return (c, A) => (
Z(),
T('div', H1, [
Y('div', K1, [
A[1] || (A[1] = Le(' 基础数据 ')),
Y('i', { onClick: A[0] || (A[0] = (g) => l('b1')), class: B(['drop-down', { reverse: r.b1 }]) }, null, 2),
]),
P(at, null, {
default: x(() => [
r.b1
? We(
(Z(),
T('div', q1, [
(Z(!0),
T(
je,
null,
Jt(
i.value,
(g) => (
Z(),
T(
je,
null,
[
Y('div', _1, [
Y('span', null, ce(g.label), 1),
'active' in g
? (Z(),
T(
'i',
{
key: 0,
class: B(['btn-selectall', { active: g.active }]),
onClick: (b) => n(g),
},
null,
10,
$1
))
: X('', !0),
Y(
'i',
{ class: B(['drop-down', { reverse: g.show }]), onClick: (b) => o(g) },
null,
10,
eE
),
]),
P(
at,
null,
{
default: x(() => [
g.show
? We(
(Z(),
T('ul', tE, [
(Z(!0),
T(
je,
null,
Jt(
g.children,
(b) => (
Z(),
T(
'li',
{ class: B(['list-item', { disabled: b.disabled }]) },
[
Y(
'img',
{ src: h(Yo)(`resources/${b.icon}.png`), alt: '' },
null,
8,
nE
),
Y('span', null, ce(b.label), 1),
Y(
'i',
{
title: '查看',
onClick: (u) => a(b),
class: B({ active: b.active }),
},
null,
10,
iE
),
],
2
)
)
),
256
)),
])),
[[d]]
)
: X('', !0),
]),
_: 2,
},
1024
),
],
64
)
)
),
256
)),
])),
[[d, 'scroll']]
)
: X('', !0),
]),
_: 1,
}),
])
)
},
},
oE = Kt(sE, [['__scopeId', 'data-v-533a778a']]),
aE = { class: 'home-wrapper' },
rE = {
__name: 'Home',
setup(e) {
const t = Qn()
return (
Be(() => {}),
(n, i) => (
Z(),
T('div', aE, [
Y(
'div',
{ class: B(['aside aside-left', { collapse: h(t).leftCollapse }]) },
[
P(
at,
{ name: 'emerge-left' },
{ default: x(() => [h(t).leftPanelType === 'sgzy' ? (Z(), _(z1, { key: 0 })) : X('', !0)]), _: 1 }
),
P(
at,
{ name: 'emerge-left' },
{ default: x(() => [h(t).leftPanelType === 'kypm' ? (Z(), _(P1, { key: 0 })) : X('', !0)]), _: 1 }
),
P(
at,
{ name: 'emerge-left' },
{ default: x(() => [h(t).leftPanelType === 'kytc' ? (Z(), _(oE, { key: 0 })) : X('', !0)]), _: 1 }
),
],
2
),
P(k1),
])
)
)
},
},
lE = Kt(rE, [['__scopeId', 'data-v-f9ca384f']]),
cE = '10.1.80.227:3000',
ti = { Backspace: 8, ShiftLeft: 16, ControlLeft: 17, AltLeft: 18, ShiftRight: 253, ControlRight: 254, AltRight: 255 },
Er = { MainButton: 0 },
uE = { 1: 0, 2: 2, 4: 1, 8: 3, 16: 4 },
pt = {
QualityControlOwnership: 0,
Response: 1,
Command: 2,
FreezeFrame: 3,
UnfreezeFrame: 4,
VideoEncoderAvgQP: 5,
LatencyTest: 6,
InitialSettings: 7,
FileExtension: 8,
FileMimeType: 9,
FileContents: 10,
InputControlOwnership: 12,
CompositionStart: 64,
Protocol: 255,
},
Me = {
IFrameRequest: 0,
RequestQualityControl: 1,
FpsRequest: 2,
AverageBitrateRequest: 3,
StartStreaming: 4,
StopStreaming: 5,
LatencyTest: 6,
RequestInitialSettings: 7,
UIInteraction: 50,
Command: 51,
KeyDown: 60,
KeyUp: 61,
KeyPress: 62,
FindFocus: 63,
CompositionEnd: 64,
MouseEnter: 70,
MouseLeave: 71,
MouseDown: 72,
MouseUp: 73,
MouseMove: 74,
MouseWheel: 75,
TouchStart: 80,
TouchEnd: 81,
TouchMove: 82,
GamepadButtonPressed: 90,
GamepadButtonReleased: 91,
GamepadAnalog: 92,
}
let ks
class dE extends HTMLVideoElement {
constructor() {
super()
Qo(this, 'keysDown', new Set())
;(window.ps = this),
(this.ws = { send() {}, close() {} }),
(this.pc = { close() {} }),
this.setupVideo(),
this.registerKeyboardEvents(),
this.registerMouseHoverEvents(),
this.registerFakeMouseEvents(),
(this.sceneId = this.dataset.sceneId),
(this.viewMode = this.dataset.viewMode),
(this.token = this.dataset.token),
(this._onClose = null),
(this._onOpen = null),
(this._onMessage = null),
document.addEventListener(
'pointerlockchange',
() => {
document.pointerLockElement === this ? this.registerPointerLockEvents() : this.registerMouseHoverEvents()
},
!1
),
this.addEventListener('loadeddata', (n) => {
this.style['aspect-ratio'] = this.videoWidth / this.videoHeight
})
}
set onclose(n) {
typeof n == 'function' && (this._onClose = n)
}
set onopen(n) {
typeof n == 'function' && (this._onOpen = n)
}
set onmessage(n) {
typeof n == 'function' && (this._onMessage = n)
}
checkWebRTCSupport() {
const n = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection
if (!n) return !1
let i = !1,
s = null
if (n) {
try {
s = new n()
const a = s.createDataChannel('test')
;(i = !!a), a.close(), s.close()
} catch {
return !1
}
if (!i) return !1
}
return !0
}
async connectedCallback() {
if (this.checkWebRTCSupport() == !1) {
const i = document.createElement('div')
;(i.innerHTML = '你的浏览器版本过低!
推荐使用谷歌100以上版本浏览器!!'),
(i.style.position = 'absolute'),
(i.style.top = '50%'),
(i.style.left = '50%'),
(i.style.transform = 'translate(-50%, -50%)'),
(i.style.background = 'rgba(255, 255, 255, 0.8)'),
(i.style.padding = '10px'),
(i.style.borderRadius = '5px'),
(i.style.display = 'block'),
this.parentNode.appendChild(i)
}
if (!this.isConnected) return
if (this.pc.connectionState === 'connected' && this.dc.readyState === 'open' && this.ws.readyState === 1) {
this.play()
return
}
;(this.ws.onclose = null),
this.ws.close(1e3),
(this.sceneId = this.dataset.sceneId),
(this.viewMode = this.dataset.viewMode),
(this.token = this.dataset.token)
const n = 'ws:' + cE + `?sceneId=${this.sceneId}&token=${this.token}&&view_mode=${this.viewMode}`
;(this.ws = new WebSocket(n, 'peer-stream')),
this.ws.onerror,
(this.ws.onopen = () => {}),
(this.ws.onmessage = (i) => {
this.onWebSocketMessage(i.data)
}),
(this.ws.onclose = (i) => {
this.dispatchEvent(new CustomEvent('playerdisconnected', {})),
this.dispatchEvent(new CustomEvent('disConnected', {}))
})
}
static get observedAttributes() {
return ['sceneId', 'token', 'viewMode']
}
disconnectedCallback() {
this._onClose && this._onClose(),
setTimeout(() => {
this.isConnected || (this.ws.close(1e3), this.pc.close(), this.dc && this.dc.close())
}, 100)
}
adoptedCallback() {}
attributeChangedCallback(n, i, s) {
this.isConnected &&
(this.ws.close(1e3),
n === 'viewMode' ? (this.viewMode = s) : n === 'sceneId' ? (this.sceneId = s) : n === 'token' && (this.token = s))
}
async onWebSocketMessage(n) {
try {
n = JSON.parse(n)
} catch {
return
}
if (n.type === 'offer') {
this.setupPeerConnection()
const i = new RTCSessionDescription(n)
await this.pc.setRemoteDescription(i), this.pc.addTransceiver('video', { direction: 'recvonly' })
const s = await this.pc.createAnswer()
await this.pc.setLocalDescription(s), this.ws.send(JSON.stringify(s))
for (let a of this.pc.getReceivers()) a.playoutDelayHint = 0
} else if (n.type === 'iceCandidate') {
const i = new RTCIceCandidate(n.candidate)
await this.pc.addIceCandidate(i)
} else if (n.type === 'answer') {
const i = new RTCSessionDescription(n)
await this.pc.setRemoteDescription(i)
for (const s of this.pc.getReceivers()) s.playoutDelayHint = 0
} else
n.type === 'playerqueue'
? this.dispatchEvent(new CustomEvent('playerqueue', { detail: n }))
: n.type === 'setIceServers'
? (ks = n.iceServers)
: n.type === 'playerConnected'
? (this.setupPeerConnection_ue4(), this.setupDataChannel_ue4())
: n.type === 'ping'
? ((n.type = 'pong'),
this.ws.send(JSON.stringify(n)),
this.mouseReleaseTime &&
new Date() - this.lastmouseTime > this.mouseReleaseTime * 1e3 &&
((n.type = 'mouseRelease'), this.ws.send(JSON.stringify(n))))
: n.type === 'ueDisConnected'
? this.dispatchEvent(new CustomEvent('ueDisConnected', { detail: n }))
: n.type === 'setmouseReleaseTime'
? ((this.mouseReleaseTime = n.mouseReleaseTime), (this.lastmouseTime = new Date()))
: n.type === 'getStatus' && this.handleGetStatus(n)
}
handleGetStatus(n) {
if (!(this.pc instanceof RTCPeerConnection)) {
;(n.videoencoderqp = null), (n.netrate = null), this.ws.send(JSON.stringify(n))
return
}
let i = 0
this.pc.getStats(null).then((a) => {
a.forEach((o) => {
o.type === 'transport' && (i = o.bytesReceived)
})
})
let s = 0.2
setTimeout(() => {
this.pc.getStats(null).then((a) => {
a.forEach((o) => {
if (o.type === 'transport') {
const d = (((o.bytesReceived - i) / s) * 8) / 1e3 / 1e3
;(n.videoencoderqp = this.VideoEncoderQP), (n.netrate = d.toFixed(2)), this.ws.send(JSON.stringify(n))
}
})
})
}, s * 1e3)
}
onDataChannelMessage(n) {
n = new Uint8Array(n)
const i = new TextDecoder('utf-16')
switch (n[0]) {
case pt.VideoEncoderAvgQP: {
this.VideoEncoderQP = +i.decode(n.slice(1))
break
}
case pt.Response: {
const s = i.decode(n.slice(1))
this.dispatchEvent(new CustomEvent('message', { detail: s }))
break
}
case pt.Command: {
const s = JSON.parse(i.decode(n.slice(1)))
if (s.command === 'onScreenKeyboard' && s.showOnScreenKeyboard && this.enableChinese) {
let a = document.createElement('input')
;(a.style.position = 'fixed'),
(a.style.zIndex = -1),
(a.autofocus = !0),
document.body.append(a),
a.focus(),
a.addEventListener('compositionend', (o) => {
this.emitMessage(o.data, Me.CompositionEnd)
}),
a.addEventListener('blue', (o) => {
a.remove()
}),
a.addEventListener('keydown', (o) => {
this.onkeydown(o)
}),
a.addEventListener('keyup', (o) => {
this.onkeyup(o)
}),
a.addEventListener('keypress', (o) => {
this.onkeypress(o)
})
}
break
}
case pt.FreezeFrame: {
new DataView(n.slice(1, 5).buffer).getInt32(0, !0)
const s = n.slice(5)
break
}
case pt.UnfreezeFrame:
break
case pt.LatencyTest: {
const s = JSON.parse(i.decode(n.slice(1)))
break
}
case pt.QualityControlOwnership: {
this.QualityControlOwnership = n[1] !== 0
break
}
case pt.InitialSettings: {
this.InitialSettings = JSON.parse(i.decode(n.slice(1)))
break
}
case pt.InputControlOwnership: {
this.InputControlOwnership = n[1] !== 0
break
}
case pt.Protocol: {
let s = JSON.parse(i.decode(n.slice(1)))
if (s.Direction === 0) for (let a in s) Me[a] = s[a].id
else if (s.Direction === 1) for (let a in s) pt[a] = s[a].id
this.dc.send(new Uint8Array([Me.RequestInitialSettings])),
this.dc.send(new Uint8Array([Me.RequestQualityControl]))
break
}
default:
}
}
setupVideo() {
;(this.tabIndex = 0),
(this.playsInline = !0),
(this.disablepictureinpicture = !0),
(this.muted = !0),
(this.autoplay = !0),
(this.style['pointer-events'] = 'none'),
(this.style['object-fit'] = 'fill')
}
setupDataChannel(n) {
;(this.dc = n.channel),
(this.dc.binaryType = 'arraybuffer'),
(this.dc.onopen = (i) => {
this.style.pointerEvents = 'auto'
}),
(this.dc.onclose = (i) => {
;(this.style.pointerEvents = 'none'), this.blur()
}),
this.dc.onerror,
(this.dc.onmessage = (i) => {
this.onDataChannelMessage(i.data)
})
}
setupDataChannel_ue4(n = 'hello') {
;(this.dc = this.pc.createDataChannel(n, { ordered: !0 })),
(this.dc.binaryType = 'arraybuffer'),
(this.dc.onopen = (i) => {
;(this.style.pointerEvents = 'auto'),
this.dc.send(new Uint8Array([Me.RequestInitialSettings])),
this.dc.send(new Uint8Array([Me.RequestQualityControl]))
}),
(this.dc.onclose = (i) => {
this.style.pointerEvents = 'none'
}),
(this.dc.onmessage = (i) => {
this.onDataChannelMessage(i.data)
})
}
setupPeerConnection() {
this.pc.close(),
(this.pc = new RTCPeerConnection({ sdpSemantics: 'unified-plan', bundlePolicy: 'balanced', iceServers: ks })),
(this.pc.ontrack = (n) => {
n.track.kind === 'video'
? (this.srcObject = n.streams[0])
: n.track.kind === 'audio' &&
((this.audio = document.createElement('audio')),
(this.audio.autoplay = !0),
(this.audio.srcObject = n.streams[0]))
}),
(this.pc.onicecandidate = (n) => {
var i
;(i = n.candidate) != null &&
i.candidate &&
this.ws.send(JSON.stringify({ type: 'iceCandidate', candidate: n.candidate }))
}),
(this.pc.ondatachannel = (n) => {
this.setupDataChannel(n)
})
}
setupPeerConnection_ue4() {
this.pc.close(),
(this.pc = new RTCPeerConnection({ sdpSemantics: 'unified-plan', bundlePolicy: 'balanced', iceServers: ks })),
(this.pc.ontrack = (n) => {
n.track.kind === 'video'
? (this.srcObject = n.streams[0])
: n.track.kind === 'audio' &&
((this.audio = document.createElement('audio')),
(this.audio.autoplay = !0),
(this.audio.srcObject = n.streams[0]))
}),
(this.pc.onicecandidate = (n) => {
var i
;(i = n.candidate) != null &&
i.candidate &&
this.ws.send(JSON.stringify({ type: 'iceCandidate', candidate: n.candidate }))
}),
(this.pc.onnegotiationneeded = (n) => {
this.setupOffer()
})
}
async setupOffer() {
const n = await this.pc.createOffer({
offerToReceiveAudio: +this.hasAttribute('audio'),
offerToReceiveVideo: 1,
voiceActivityDetection: !1,
})
;(n.sdp = n.sdp.replace('useinbandfec=1', 'useinbandfec=1;stereo=1;sprop-maxcapturerate=48000')),
this.pc.setLocalDescription(n),
this.ws.send(JSON.stringify(n))
}
registerKeyboardEvents() {
;(this.onkeydown = (n) => {
const i = ti[n.code] || n.keyCode
this.dc.send(new Uint8Array([Me.KeyDown, i, n.repeat])),
this.keysDown.add(i),
n.keyCode === ti.Backspace && this.onkeypress({ keyCode: ti.Backspace })
}),
(this.onkeyup = (n) => {
const i = ti[n.code] || n.keyCode
this.dc.send(new Uint8Array([Me.KeyUp, i])), this.keysDown.delete(i)
}),
(this.onkeypress = (n) => {
const i = new DataView(new ArrayBuffer(3))
i.setUint8(0, Me.KeyPress), i.setUint16(1, ti[n.code] || n.keyCode, !0), this.dc.send(i)
}),
(this.onblur = (n) => {
this.keysDown.forEach((i) => {
this.dc.send(new Uint8Array([Me.KeyUp, i]))
}),
this.keysDown.clear()
})
}
registerTouchEvents() {
const n = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
i = {}
;(this.ontouchstart = (s) => {
for (const a of s.changedTouches) {
const o = n.pop()
i[a.identifier] = o
}
this.emitTouchData(Me.TouchStart, s.changedTouches, i), s.preventDefault()
}),
(this.ontouchend = (s) => {
this.emitTouchData(Me.TouchEnd, s.changedTouches, i)
for (const a of s.changedTouches) n.push(i[a.identifier]), delete i[a.identifier]
s.preventDefault()
}),
(this.ontouchmove = (s) => {
this.emitTouchData(Me.TouchMove, s.touches, i), s.preventDefault()
})
}
registerFakeMouseEvents() {
let n
const { left: i, top: s } = this.getBoundingClientRect()
;(this.ontouchstart = (a) => {
if (n === void 0) {
const o = a.changedTouches[0]
;(n = { id: o.identifier, x: o.clientX - i, y: o.clientY - s }),
this.onmouseenter(a),
this.emitMouseDown(Er.MainButton, n.x, n.y)
}
a.preventDefault()
}),
(this.ontouchend = (a) => {
if (n) {
for (const o of a.changedTouches)
if (o.identifier === n.id) {
const r = o.clientX - i,
l = o.clientY - s
this.emitMouseUp(Er.MainButton, r, l), this.onmouseleave(a), (n = void 0)
break
}
}
a.preventDefault()
}),
(this.ontouchmove = (a) => {
if (n) {
for (const o of a.touches)
if (o.identifier === n.id) {
const r = o.clientX - i,
l = o.clientY - s
this.emitMouseMove(r, l, r - n.x, l - n.y), (n.x = r), (n.y = l)
break
}
}
a.preventDefault()
})
}
registerMouseHoverEvents() {
this.registerMouseEnterAndLeaveEvents(),
(this.onmousemove = (n) => {
this.emitMouseMove(n.offsetX, n.offsetY, n.movementX, n.movementY), n.preventDefault()
}),
(this.onmousedown = (n) => {
this.emitMouseDown(n.button, n.offsetX, n.offsetY)
}),
(this.onmouseup = (n) => {
this.emitMouseUp(n.button, n.offsetX, n.offsetY)
}),
(this.oncontextmenu = (n) => {
this.emitMouseUp(n.button, n.offsetX, n.offsetY), n.preventDefault()
}),
(this.onwheel = (n) => {
this.emitMouseWheel(n.wheelDelta, n.offsetX, n.offsetY), n.preventDefault()
})
}
registerPointerLockEvents() {
this.registerMouseEnterAndLeaveEvents()
const { clientWidth: n, clientHeight: i } = this
let s = n / 2,
a = i / 2
;(this.onmousemove = (o) => {
;(s += o.movementX),
(a += o.movementY),
(s = (s + n) % n),
(a = (a + i) % i),
this.emitMouseMove(s, a, o.movementX, o.movementY)
}),
(this.onmousedown = (o) => {
this.emitMouseDown(o.button, s, a)
}),
(this.onmouseup = (o) => {
this.emitMouseUp(o.button, s, a)
}),
(this.onwheel = (o) => {
this.emitMouseWheel(o.wheelDelta, s, a)
})
}
registerMouseEnterAndLeaveEvents() {
;(this.onmouseenter = (n) => {
this.dc.send(new Uint8Array([Me.MouseEnter]))
}),
(this.onmouseleave = (n) => {
this.dc.readyState === 'open' && this.dc.send(new Uint8Array([Me.MouseLeave]))
for (let i = 1; i <= 16; i *= 2) n.buttons & i && this.emitMouseUp(uE[i], 0, 0)
})
}
emitMouseMove(n, i, s, a) {
const o = this.normalize(n, i)
;(s = (s * 65536) / this.clientWidth), (a = (a * 65536) / this.clientHeight)
const r = new DataView(new ArrayBuffer(9))
r.setUint8(0, Me.MouseMove),
r.setUint16(1, o.x, !0),
r.setUint16(3, o.y, !0),
r.setInt16(5, s, !0),
r.setInt16(7, a, !0),
this.dc.send(r),
(this.lastmouseTime = new Date())
}
emitMouseDown(n, i, s) {
const a = this.normalize(i, s),
o = new DataView(new ArrayBuffer(6))
o.setUint8(0, Me.MouseDown),
o.setUint8(1, n),
o.setUint16(2, a.x, !0),
o.setUint16(4, a.y, !0),
this.dc.send(o),
this.enableChinese && this.dc.send(new Uint8Array([Me.FindFocus]))
}
emitMouseUp(n, i, s) {
const a = this.normalize(i, s),
o = new DataView(new ArrayBuffer(6))
o.setUint8(0, Me.MouseUp), o.setUint8(1, n), o.setUint16(2, a.x, !0), o.setUint16(4, a.y, !0), this.dc.send(o)
}
emitMouseWheel(n, i, s) {
const a = this.normalize(i, s),
o = new DataView(new ArrayBuffer(7))
o.setUint8(0, Me.MouseWheel),
o.setInt16(1, n, !0),
o.setUint16(3, a.x, !0),
o.setUint16(5, a.y, !0),
this.dc.send(o)
}
emitTouchData(n, i, s) {
const a = new DataView(new ArrayBuffer(2 + 6 * i.length))
a.setUint8(0, n), a.setUint8(1, i.length)
let o = 2
for (const r of i) {
const l = r.clientX - this.offsetLeft,
d = r.clientY - this.offsetTop,
c = this.normalize(l, d)
a.setUint16(o, c.x, !0),
(o += 2),
a.setUint16(o, c.y, !0),
(o += 2),
a.setUint8(o, s[r.identifier], !0),
(o += 1),
a.setUint8(o, 255 * r.force, !0),
(o += 1)
}
this.dc.send(a)
}
emitMessage(n, i = Me.UIInteraction) {
typeof n != 'string' && (n = JSON.stringify(n))
const s = new DataView(new ArrayBuffer(3 + 2 * n.length))
let a = 0
s.setUint8(a, i), a++, s.setUint16(a, n.length, !0), (a += 2)
for (let o = 0; o < n.length; o++) s.setUint16(a, n.charCodeAt(o), !0), (a += 2)
return this.dc.send(s), new Promise((o) => this.addEventListener('message', (r) => o(r.detail), { once: !0 }))
}
normalize(n, i) {
const s = n / this.clientWidth,
a = i / this.clientHeight
return s < 0 || s > 1 || a < 0 || a > 1
? { inRange: !1, x: 65535, y: 65535 }
: { inRange: !0, x: s * 65536, y: a * 65536 }
}
}
customElements.define('peer-stream', dE, { extends: 'video' })
let Bi = function () {
return (function (e) {
var t = {}
function n(i) {
if (t[i]) return t[i].exports
var s = (t[i] = { i, l: !1, exports: {} })
return e[i].call(s.exports, s, s.exports, n), (s.l = !0), s.exports
}
return (
(n.m = e),
(n.c = t),
(n.d = function (i, s, a) {
n.o(i, s) || Object.defineProperty(i, s, { enumerable: !0, get: a })
}),
(n.r = function (i) {
typeof Symbol < 'u' &&
Symbol.toStringTag &&
Object.defineProperty(i, Symbol.toStringTag, { value: 'Module' }),
Object.defineProperty(i, '__esModule', { value: !0 })
}),
(n.t = function (i, s) {
if ((1 & s && (i = n(i)), 8 & s || (4 & s && typeof i == 'object' && i && i.__esModule))) return i
var a = Object.create(null)
if (
(n.r(a), Object.defineProperty(a, 'default', { enumerable: !0, value: i }), 2 & s && typeof i != 'string')
)
for (var o in i)
n.d(
a,
o,
function (r) {
return i[r]
}.bind(null, o)
)
return a
}),
(n.n = function (i) {
var s =
i && i.__esModule
? function () {
return i.default
}
: function () {
return i
}
return n.d(s, 'a', s), s
}),
(n.o = function (i, s) {
return Object.prototype.hasOwnProperty.call(i, s)
}),
(n.p = ''),
n((n.s = 0))
)
})([
function (e, t, n) {
;(function (i) {
var s, a
function o(g, b) {
return b - g
}
var r,
l = (function () {
var g, b
function u() {
var N = arguments[0],
k = arguments[1],
F = arguments[2],
L = arguments[3]
return new f((O, G) => {
var V = new XMLHttpRequest()
;(V.onreadystatechange = function () {
if (V.readyState === 4)
if ((V.status >= 200 && V.status < 300) || V.status === 304)
if (typeof V.responseText == 'string' && L == 'json')
try {
O(JSON.parse(V.responseText))
} catch {
O(V.responseText)
}
else O(V.responseText)
else G(V.status)
}),
V.open(N, k, !0),
N == 'get'
? (V.setRequestHeader('content-type', 'text/plain;charset=UTF-8'),
V.setRequestHeader('content-type', 'application/json'))
: V.setRequestHeader('content-Type', 'application/x-www-form-urlencoded'),
V.send(F)
})
}
function p(N, k, F, L) {
return v(N).then(k, F, L)
}
function v(N) {
var k, F, L
return (
N instanceof f
? (k = N)
: I(N)
? ((F = R()),
N.then(
function (O) {
F.resolve(O)
},
function (O) {
F.reject(O)
},
function (O) {
F.progress(O)
}
),
(k = F.promise))
: ((L = N),
(k = new f(function (O) {
try {
return v(O ? O(L) : L)
} catch (G) {
return w(G)
}
}))),
k
)
}
function f(N) {
this.then = N
}
function w(N) {
return new f(function (k, F) {
try {
return F ? v(F(N)) : w(N)
} catch (L) {
return w(L)
}
})
}
function R() {
var N, k, F, L, O, G
return (
(N = new f(V)),
(k = []),
(F = []),
(L = function (ie, we, ve) {
var fe, Re
return (
(fe = R()),
(Re =
typeof ve == 'function'
? function (pe) {
try {
fe.progress(ve(pe))
} catch (W) {
fe.progress(W)
}
}
: function (pe) {
fe.progress(pe)
}),
k.push(function (pe) {
pe.then(ie, we).then(fe.resolve, fe.reject, Re)
}),
F.push(Re),
fe.promise
)
}),
(O = function (ie) {
return j(F, ie), ie
}),
(G = function (ie) {
return (ie = v(ie)), (L = ie.then), (G = v), (O = K), j(k, ie), (F = k = void 0), ie
}),
{
then: V,
resolve: ne,
reject: re,
progress: Ie,
promise: N,
resolver: { resolve: ne, reject: re, progress: Ie },
}
)
function V(ie, we, ve) {
return L(ie, we, ve)
}
function ne(ie) {
return G(ie)
}
function re(ie) {
return G(w(ie))
}
function Ie(ie) {
return O(ie)
}
}
function I(N) {
return N && typeof N.then == 'function'
}
function y(N, k, F, L, O) {
return (
U(2, arguments),
p(N, function (G) {
var V, ne, re, Ie, ie, we, ve, fe, Re, pe
if (
((Re = G.length >>> 0),
(V = Math.max(0, Math.min(k, Re))),
(re = []),
(ne = Re - V + 1),
(Ie = []),
(ie = R()),
V)
)
for (
fe = ie.progress,
ve = function (le) {
Ie.push(le), --ne || ((we = ve = K), ie.reject(Ie))
},
we = function (le) {
re.push(le), --V || ((we = ve = K), ie.resolve(re))
},
pe = 0;
pe < Re;
++pe
)
pe in G && p(G[pe], se, W, fe)
else ie.resolve(re)
return ie.then(F, L, O)
function W(le) {
ve(le)
}
function se(le) {
we(le)
}
})
)
}
function E(N, k, F, L) {
return U(1, arguments), m(N, H).then(k, F, L)
}
function m(N, k) {
return p(N, function (F) {
var L, O, G, V, ne, re
if (((G = O = F.length >>> 0), (L = []), (re = R()), G))
for (
V = function (Ie, ie) {
p(Ie, k).then(function (we) {
;(L[ie] = we), --G || re.resolve(L)
}, re.reject)
},
ne = 0;
ne < O;
ne++
)
ne in F ? V(F[ne], ne) : --G
else re.resolve(L)
return re.promise
})
}
function j(N, k) {
for (var F, L = 0; (F = N[L++]); ) F(k)
}
function U(N, k) {
for (var F, L = k.length; L > N; )
if ((F = k[--L]) != null && typeof F != 'function')
throw new Error('arg ' + L + ' must be a function')
}
function K() {}
function H(N) {
return N
}
return (
(p.defer = R),
(p.resolve = v),
(p.reject = function (N) {
return p(N, w)
}),
(p.join = function () {
return m(arguments, H)
}),
(p.all = E),
(p.map = m),
(p.reduce = function (N, k) {
var F = b.call(arguments, 1)
return p(N, function (L) {
var O
return (
(O = L.length),
(F[0] = function (G, V, ne) {
return p(G, function (re) {
return p(V, function (Ie) {
return k(re, Ie, ne, O)
})
})
}),
g.apply(L, F)
)
})
}),
(p.any = function (N, k, F, L) {
return y(
N,
1,
function (O) {
return k ? k(O[0]) : O[0]
},
F,
L
)
}),
(p.some = y),
(p.chain = function (N, k, F) {
var L = arguments.length > 2
return p(
N,
function (O) {
return (O = L ? F : O), k.resolve(O), O
},
function (O) {
return k.reject(O), w(O)
},
k.progress
)
}),
(p.isPromise = I),
(p.getJSON = function (N) {
return u('get', N, null, 'json')
}),
(p.postJSON = function (N, k) {
return (
typeof k == 'object' &&
(k = (function (F) {
if (!F) return ''
var L = []
for (var O in F)
if (F.hasOwnProperty(O) && typeof F[O] != 'function') {
var G = F[O] != null ? F[O].toString() : ''
;(O = encodeURIComponent(O.replace('%20', '+'))),
(G = encodeURIComponent(G.replace('%20', '+'))),
L.push(O + '=' + G)
}
return L.join('&')
})(k)),
u('post', N, k || null, 'json')
)
}),
(f.prototype = {
always: function (N, k) {
return this.then(N, N, k)
},
otherwise: function (N) {
return this.then(void 0, N)
},
yield: function (N) {
return this.then(function () {
return N
})
},
spread: function (N) {
return this.then(function (k) {
return E(k, function (F) {
return N.apply(void 0, F)
})
})
},
}),
(b = [].slice),
(g =
[].reduce ||
function (N) {
var k, F, L, O, G
if (((G = 0), (O = (k = Object(this)).length >>> 0), (F = arguments).length <= 1))
for (;;) {
if (G in k) {
L = k[G++]
break
}
if (++G >= O) throw new TypeError()
}
else L = F[1]
for (; G < O; ++G) G in k && (L = N(L, k[G], G, k))
return L
}),
p
)
})()
class d {
constructor(b) {
return (
(this._create = function (u) {
var p = this
;(u = Object.assign(
{
host: '192.168.29.100',
port: 59001,
clientId: 'testmap',
group: 'groupA',
onMessage: function (v) {},
},
u
)),
(this.ready = new l.defer())
try {
;(this.client = new msc.Client({ host: u.host, port: u.port }, u.clientId)),
this.client.connect(),
this.client.onConnect(function () {
p.ready.resolve(this)
}),
this.client.join(u.group),
this.client.onMessage(u.onMessage)
} catch (v) {
p.ready.reject(v.message)
}
return this
}),
(this.send = function (u) {
var p = this
this.ready.then(function () {
p.client.pub({ sceneId: u.sceneId, targetClientIds: u.targetClientIds, data: u.data })
})
}),
(this.broadcast = function (u) {
var p = this
this.ready.then(function () {
p.client.pub({ sceneId: u.sceneId, data: u.data }, u.group)
})
}),
this._create(b)
)
}
}
class c extends class {
constructor() {
;(this._listeners = []), (this._scopes = []), (this._toRemove = []), (this._insideRaiseEvent = !1)
}
get numberOfListeners() {
return this._listeners.length - this._toRemove.length
}
addEventListener(b, u) {
if (typeof b == 'function') {
this._listeners.push(b), this._scopes.push(u)
var p = this
return function () {
p.removeEventListener(b, u)
}
}
}
removeEventListener(b, u) {
if (typeof b == 'function') {
for (var p = this._listeners, v = this._scopes, f = -1, w = 0; w < p.length; w++)
if (p[w] === b && v[w] === u) {
f = w
break
}
if (f !== -1)
return (
this._insideRaiseEvent
? (this._toRemove.push(f), (p[f] = void 0), (v[f] = void 0))
: (p.splice(f, 1), v.splice(f, 1)),
!0
)
}
return !1
}
raiseEvent() {
var b
this._insideRaiseEvent = !0
var u = this._listeners,
p = this._scopes,
v = u.length
for (b = 0; b < v; b++) {
var f = u[b]
f && f != null && u[b].apply(p[b], arguments)
}
var w = this._toRemove
if ((v = w.length) > 0) {
for (w.sort(o), b = 0; b < v; b++) {
var R = w[b]
u.splice(R, 1), p.splice(R, 1)
}
w.length = 0
}
this._insideRaiseEvent = !1
}
} {
constructor(b) {
super(), (this.commandQueue = [])
var u = this,
p = b.id,
v = b.url
function f(w) {
if (w && w.data)
try {
var R = w.data
if (typeof w.data == 'string') {
var I = w.data.replace(/^\s+|\s+$/g, '')
R = JSON.parse(I)
}
R.action &&
R.action !== '' &&
(R.action == 'MapReady' && u._onReady
? u._onReady.call(u)
: (R.action == 'Camera' && u._cameraDeferred && u._cameraDeferred.resolve(R.data),
R.action == 'QueryService' &&
((u.QueryServiceInfo = R.data), u._queryDeferred && u._queryDeferred.resolve()),
R.action == 'QueryLocalTask' &&
u._queryLocalTaskDeferred &&
u._queryLocalTaskDeferred.resolve(R.data),
u.raiseEvent(R)))
} catch {}
}
return (
(this._onReady = b.onReady),
window.attachEvent
? window.attachEvent('message', f)
: window.addEventListener && window.addEventListener('message', f, !1),
(this._iframeEle = document.getElementById(p)),
new Promise((w, R) => {
this._iframeEle
? w(this._iframeEle)
: (window.onload = function () {
;(this._iframeEle = document.getElementById(p)),
this._iframeEle ||
((this._iframeEle = document.createElement('iframe')),
this._iframeEle.setAttribute('id', p),
this._iframeEle.setAttribute('scrolling', 'no'),
this._iframeEle.setAttribute('allowtransparency', 'true'),
this._iframeEle.setAttribute('allowfullscreen', 'true'),
this._iframeEle.setAttribute('webkitallowfullscreen', 'true'),
this._iframeEle.setAttribute('mozallowfullscreen', 'true'),
document.body.appendChild(this._iframeEle)),
w(this._iframeEle)
}.bind(this))
})
.then(function (w) {
return new Promise(function (R, I) {
;(w.onload = function () {
var y = w.contentWindow,
E = w.src ? w.src : '*'
R({ iframe: y, domain: E })
}.bind(this)),
w.setAttribute('src', v.toString())
})
})
.then(
function (w) {
;(this.iframe = w.iframe),
(this.domain = w.domain),
this.commandQueue.length > 0 && (this.Invoke(this.commandQueue), (this.commandQueue = []))
}.bind(this)
),
this
)
}
Invoke(b) {
if (b != null) {
var u = Array.isArray(b) ? b : [b]
this.iframe !== void 0
? u.forEach(
function (p) {
p.hasOwnProperty('ActionName') &&
(p.Parameters &&
typeof p.Parameters != 'string' &&
(p.Parameters = JSON.stringify(p.Parameters)),
this.iframe.postMessage(JSON.stringify(p), this.domain))
}.bind(this)
)
: (this.commandQueue = this.commandQueue.concat(u))
}
}
getCamera() {
return (
(this._cameraDeferred = new l.defer()), this.Invoke({ ActionName: 'getCamera' }), this._cameraDeferred
)
}
QueryTask(b) {
return (
(this._queryDeferred = new l.defer()),
this.QueryServiceInfo && this._queryDeferred.resolve(),
this._queryDeferred.then(
function () {
return (
(this._taskjob && !this._taskjob.checkUpdate(this.QueryServiceInfo)) ||
(this._taskjob = new A(this.QueryServiceInfo)),
l.all([this._taskjob.QueryTask(b), this.QueryLocalTask(b)]).then(
function (u) {
var p = u
.filter(function (v) {
return v != null
})
.map(function (v) {
return v
})
return p.length > 0 ? p[0] : void 0
},
function (u) {}
)
)
}.bind(this)
)
)
}
QueryLocalTask(b) {
return (
(this._queryLocalTaskDeferred = new l.defer()),
this.Invoke({ ActionName: 'QueryLocalTask', Parameters: b }),
this._queryLocalTaskDeferred
)
}
}
class A {
constructor(b) {
var u = [5, 6, 4, 2, 3, 1]
function p(y, E) {
for (
var m = '', j = y.length, U = Math.floor(E.length / j), K = E.length % j, H = [], N = 0;
N < j;
N++
)
H[y[N] - 1] = U + (K-- > 0 ? 1 : 0)
for (var k = [], F = 0, L = 0; L < H.length; L++) {
var O = E.substr(F, H[L])
k.push(O.split('')), (F += H[L])
}
for (var G = f(y), V = 0; V < U + 1; V++)
for (var ne = 0; ne < j; ne++) m += k[v(G, ne + 1)].shift() || ''
return m
}
var v = function (y, E) {
for (var m = y.length - 1; m >= 0; m--) if (y[m] == E) return m
return null
},
f = function (y) {
for (var E = y.length, m = [], j = 0; j < E; j++) m[y[j] - 1] = j + 1
return m
}
;(this._optionslayers = b.data),
b &&
(this.layers = b.data.map(function (y) {
var E = {}
for (var m in y) typeof y[m] == 'string' ? (E[m] = p(u, y[m])) : (E[m] = y[m])
return E
})),
(this.layerinfo = void 0),
(this.code = b.code),
(this.filter = b.filter),
(this._loaded = !1),
(this.checkUpdate = function (y) {
if (this.code != y.code) return !0
var E = 0
return (
y.data.forEach(
function (m) {
this._optionslayers.find(function (j) {
return m.url == j.url
}) == null && E++
}.bind(this)
),
E > 0
)
})
var w = function () {
var y = l.defer()
if (this._loaded) y.resolve()
else {
if (!this.layers) return void y.reject()
var E = []
this.layers.forEach(function (m) {
m.layerinfo ||
E.push(
((j = m),
(U = l.defer()),
l.getJSON(j.url + '?f=pjson').then(function (K) {
K.error ? U.reject() : ((j.layerinfo = K), U.resolve(j))
}),
U)
)
var j, U
}),
l.all(E).then(
function () {
;(this._loaded =
this.layers.filter(function (m) {
return m.layerinfo == null
}).length == 0),
y.resolve()
}.bind(this)
)
}
return y
},
R = function (y, E) {
var m = l.defer(),
j = this.layers
.map(function (N) {
return N.layerinfo && N.layerinfo.layers
? {
url: N.url,
currentVersion: Number(N.layerinfo.currentVersion),
spatialReference: N.layerinfo.spatialReference,
layer: N.layerinfo.layers.find(function (k) {
return k.name == y
}),
}
: {}
})
.filter(function (N) {
return N.layer != null
})
if (j.length == 0) return m.reject(void 0), m
var U = (j = j[0]).layer
if (
U.defaultVisibility == 0 &&
((U.subLayerIds && U.subLayerIds.length > 0) || U.type == 'Group Layer')
) {
var K = this.layers.find(function (N) {
return N.url == j.url
}),
H = U.subLayerIds.map(
function (N) {
return K.layerinfo.layers.find(function (k) {
return k.id == N && k.minScale == 0
})
}.bind(this)
)
;(H = H.filter(function (N) {
return N != null
})),
j.currentVersion >= 10.7
? ((E = E || H[0].geometryType.toLowerCase().replace('esrigeometry', '')),
(U = H.find(function (N) {
return (
N != null && N.geometryType.toLowerCase().replace('esrigeometry', '') == E.toLowerCase()
)
})))
: (U = H.length > 0 ? H[0] : void 0)
}
return (j.layer = U), m.resolve(j), m
},
I = function (y, E) {
var m = l.defer()
if (E) {
var j = Object.assign({}, y)
delete j.name, delete j.type
var U = this.filter
;(j.where || j.geometry) && U && (j.where = j.where ? U + ' and ' + j.where : U),
j.geometry &&
typeof j.geometry != 'string' &&
((j.geometryType = 'esriGeometryPoint'),
j.geometry.hasOwnProperty('rings') && (j.geometryType = 'esriGeometryPolygon'),
j.geometry.hasOwnProperty('paths') && (j.geometryType = 'esriGeometryPolyline'),
delete j.geometry,
(j.geometry = JSON.stringify(y.geometry).replace(/"/g, '')))
var K = E.url + '/' + E.layer.id + '/query'
l.postJSON(K, j).then(
function (H) {
var N = {
geometryType: E.layer.geometryType || H.geometryType,
spatialReference: E.spatialReference,
name: y.name,
features: H.features,
}
m.resolve(N)
}.bind(this),
function (H) {
m.reject(void 0)
}
)
} else m.reject()
return m
}
return (
(this.QueryTask = function (y) {
if (
(y = Object.assign(
{
name: void 0,
where: void 0,
geometry: void 0,
returnGeometry: !1,
outFields: '*',
f: 'pjson',
type: void 0,
distance: 0,
},
y
)).name &&
(y.where || y.geometry)
)
return w
.call(this)
.then(
function () {
return R.call(this, y.name, y.type)
}.bind(this)
)
.then(
function (m) {
return I.call(this, y, m)
}.bind(this)
)
var E = l.defer()
return E.reject('查询参数不正确'), E
}),
this
)
}
}
;(r = function () {
return { MapSocket: d, Bridge: c, Task: A }
}),
i && i.exports
? (i.exports = r())
: (a = typeof (s = r) == 'function' ? s.call(t, n, t, i) : s) === void 0 || (i.exports = a)
}).call(this, n(1)(e))
},
function (e, t) {
e.exports = function (n) {
return (
n.webpackPolyfill ||
((n.deprecate = function () {}),
(n.paths = []),
n.children || (n.children = []),
Object.defineProperty(n, 'loaded', {
enumerable: !0,
get: function () {
return n.l
},
}),
Object.defineProperty(n, 'id', {
enumerable: !0,
get: function () {
return n.i
},
}),
(n.webpackPolyfill = 1)),
n
)
}
},
])
},
pE = window,
oo = {}
typeof exports == 'object' && typeof module == 'object'
? typeof define == 'function' && define.amd
? define([], Bi)
: typeof exports == 'object'
? (oo.CityGis = Bi())
: (pE.CityGis = Bi())
: (oo = Bi())
let Mr
const AE = {
name: 'Map',
setup() {
const e = Oo(),
t = Qn()
Be(() => {
t.toggleGlobalLoading(!0),
setTimeout(() => {
t.toggleGlobalLoading(!1)
}, 2500),
(Uo.bridgeContent = Mr =
new oo.Bridge({
id: 'i_map',
url: 'http://192.168.2.140:9250/map-tool-widget-interface/#/jk_map',
onReady: function () {},
})),
Zc(),
g1(1990, -1185, 1412, 13, 54),
Mr.addEventListener((n) => {
switch (n.action) {
case 'MapExtentChanged':
let i = n.data.scale
;(e.extent = n.data.extent), (e.center = n.data.center), (e.camera = n.data.camera), (e.scale = i)
break
case 'SelectedCubeInfo':
let s = n.data.grid
;(e.gridCode = s), t.toggleFloatPanel('cube', !0)
break
case 'SelectedUAVInfo':
e.uavId = n.data.uavId
break
case 'DrawComplete':
let a = n.data.geometry
e.draw_geometry = a
break
case 'CurrentUavInfo':
e.currentUavInfo = n.data.message
break
case 'RealTimeUAVList':
e.realTimeUAVList = n.data.message
break
case 'ReturnResult':
e.queryResult = n.data.message
break
case 'CubeResult':
e.cubeResult = n.data.message
break
case 'CurrentCubeLevel':
e.currentCubeLevel = n.data.level
break
}
})
})
},
},
gE = { id: 'map' }
function fE(e, t, n, i, s, a) {
return Z(), T('div', gE, t[0] || (t[0] = [Y('iframe', { id: 'i_map', name: 'i_map' }, null, -1)]))
}
const bE = Kt(AE, [
['render', fE],
['__scopeId', 'data-v-65f5e18d'],
]),
hE = { key: 0, class: 'global-loader' },
vE = { class: 'masking' },
mE = {
__name: 'Index',
setup(e) {
const t = C(Qn())
return (
(document.oncontextmenu = new Function('event.returnValue=false;')),
(document.onselectstart = new Function('event.returnValue=false;')),
(n, i) => (
Z(),
T(
'div',
{ id: 'layout', class: B({ loading: t.value.globalLoading, 'scene-loading': t.value.sceneLoading }) },
[
t.value.globalLoading || t.value.sceneLoading ? (Z(), T('div', hE)) : X('', !0),
Y('div', vE, [
Y('div', { class: B(['m-left', { collapse: t.value.leftCollapse }]) }, null, 2),
Y('div', { class: B(['m-right', { collapse: t.value.rightCollapse }]) }, null, 2),
]),
i[0] || (i[0] = Y('header', { class: 'header' }, null, -1)),
P(lE, { class: 'page' }),
t.value.sceneType === 'gis' ? (Z(), _(bE, { key: 1, class: 'scene' })) : X('', !0),
],
2
)
)
)
},
},
zE = Kt(mE, [['__scopeId', 'data-v-46392ffc']])
export { zE as default }